trident-git 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +9 -8
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +5 -5
  6. package/.next/required-server-files.json +5 -5
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_global-error/page.js +3 -3
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +2 -2
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/_not-found/page.js +2 -2
  19. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/_not-found.html +1 -1
  22. package/.next/server/app/_not-found.rsc +3 -3
  23. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  26. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/.next/server/app/api/credentials/route.js +1 -1
  30. package/.next/server/app/api/credentials/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/custom-scripts/route.js +2 -2
  32. package/.next/server/app/api/custom-scripts/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/fs/route.js +1 -1
  34. package/.next/server/app/api/fs/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/git/action/route.js +1 -1
  36. package/.next/server/app/api/git/action/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/git/branches/route.js +1 -1
  38. package/.next/server/app/api/git/branches/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/git/diff/route.js +1 -1
  40. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/git/log/route.js +1 -1
  42. package/.next/server/app/api/git/log/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/git/status/route.js +1 -1
  44. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repos/clone/route.js +1 -0
  46. package/.next/server/app/api/repos/clone/route.js.nft.json +1 -0
  47. package/.next/server/app/api/repos/clone/route_client-reference-manifest.js +1 -0
  48. package/.next/server/app/api/repos/route.js +1 -1
  49. package/.next/server/app/api/repos/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/settings/route.js +1 -1
  51. package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/credentials/page.js +3 -3
  53. package/.next/server/app/credentials/page.js.nft.json +1 -1
  54. package/.next/server/app/credentials/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/credentials.html +1 -1
  56. package/.next/server/app/credentials.rsc +4 -4
  57. package/.next/server/app/credentials.segments/_full.segment.rsc +4 -4
  58. package/.next/server/app/credentials.segments/_head.segment.rsc +1 -1
  59. package/.next/server/app/credentials.segments/_index.segment.rsc +3 -3
  60. package/.next/server/app/credentials.segments/_tree.segment.rsc +2 -2
  61. package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +2 -2
  62. package/.next/server/app/credentials.segments/credentials.segment.rsc +1 -1
  63. package/.next/server/app/icon.png/route.js +1 -1
  64. package/.next/server/app/index.html +1 -1
  65. package/.next/server/app/index.rsc +4 -4
  66. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  67. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  68. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  69. package/.next/server/app/index.segments/_index.segment.rsc +3 -3
  70. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  71. package/.next/server/app/page.js +2 -2
  72. package/.next/server/app/page.js.nft.json +1 -1
  73. package/.next/server/app/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/workspace/changes/page.js +3 -3
  75. package/.next/server/app/workspace/changes/page.js.nft.json +1 -1
  76. package/.next/server/app/workspace/changes/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/workspace/changes.html +1 -1
  78. package/.next/server/app/workspace/changes.rsc +6 -6
  79. package/.next/server/app/workspace/changes.segments/_full.segment.rsc +6 -6
  80. package/.next/server/app/workspace/changes.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/workspace/changes.segments/_index.segment.rsc +3 -3
  82. package/.next/server/app/workspace/changes.segments/_tree.segment.rsc +2 -2
  83. package/.next/server/app/workspace/changes.segments/workspace/changes/__PAGE__.segment.rsc +2 -2
  84. package/.next/server/app/workspace/changes.segments/workspace/changes.segment.rsc +1 -1
  85. package/.next/server/app/workspace/changes.segments/workspace.segment.rsc +3 -3
  86. package/.next/server/app/workspace/custom-scripts/page.js +2 -2
  87. package/.next/server/app/workspace/custom-scripts/page.js.nft.json +1 -1
  88. package/.next/server/app/workspace/custom-scripts/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/workspace/custom-scripts.html +1 -1
  90. package/.next/server/app/workspace/custom-scripts.rsc +6 -6
  91. package/.next/server/app/workspace/custom-scripts.segments/_full.segment.rsc +6 -6
  92. package/.next/server/app/workspace/custom-scripts.segments/_head.segment.rsc +1 -1
  93. package/.next/server/app/workspace/custom-scripts.segments/_index.segment.rsc +3 -3
  94. package/.next/server/app/workspace/custom-scripts.segments/_tree.segment.rsc +2 -2
  95. package/.next/server/app/workspace/custom-scripts.segments/workspace/custom-scripts/__PAGE__.segment.rsc +2 -2
  96. package/.next/server/app/workspace/custom-scripts.segments/workspace/custom-scripts.segment.rsc +1 -1
  97. package/.next/server/app/workspace/custom-scripts.segments/workspace.segment.rsc +3 -3
  98. package/.next/server/app/workspace/history/page.js +2 -2
  99. package/.next/server/app/workspace/history/page.js.nft.json +1 -1
  100. package/.next/server/app/workspace/history/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/workspace/history.html +1 -1
  102. package/.next/server/app/workspace/history.rsc +6 -6
  103. package/.next/server/app/workspace/history.segments/_full.segment.rsc +6 -6
  104. package/.next/server/app/workspace/history.segments/_head.segment.rsc +1 -1
  105. package/.next/server/app/workspace/history.segments/_index.segment.rsc +3 -3
  106. package/.next/server/app/workspace/history.segments/_tree.segment.rsc +2 -2
  107. package/.next/server/app/workspace/history.segments/workspace/history/__PAGE__.segment.rsc +2 -2
  108. package/.next/server/app/workspace/history.segments/workspace/history.segment.rsc +1 -1
  109. package/.next/server/app/workspace/history.segments/workspace.segment.rsc +3 -3
  110. package/.next/server/app/workspace/page.js +2 -2
  111. package/.next/server/app/workspace/page.js.nft.json +1 -1
  112. package/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
  113. package/.next/server/app/workspace/settings/page.js +2 -2
  114. package/.next/server/app/workspace/settings/page.js.nft.json +1 -1
  115. package/.next/server/app/workspace/settings/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/workspace/settings.html +1 -1
  117. package/.next/server/app/workspace/settings.rsc +6 -6
  118. package/.next/server/app/workspace/settings.segments/_full.segment.rsc +6 -6
  119. package/.next/server/app/workspace/settings.segments/_head.segment.rsc +1 -1
  120. package/.next/server/app/workspace/settings.segments/_index.segment.rsc +3 -3
  121. package/.next/server/app/workspace/settings.segments/_tree.segment.rsc +2 -2
  122. package/.next/server/app/workspace/settings.segments/workspace/settings/__PAGE__.segment.rsc +2 -2
  123. package/.next/server/app/workspace/settings.segments/workspace/settings.segment.rsc +1 -1
  124. package/.next/server/app/workspace/settings.segments/workspace.segment.rsc +3 -3
  125. package/.next/server/app/workspace/stashes/page.js +2 -2
  126. package/.next/server/app/workspace/stashes/page.js.nft.json +1 -1
  127. package/.next/server/app/workspace/stashes/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/workspace/stashes.html +1 -1
  129. package/.next/server/app/workspace/stashes.rsc +6 -6
  130. package/.next/server/app/workspace/stashes.segments/_full.segment.rsc +6 -6
  131. package/.next/server/app/workspace/stashes.segments/_head.segment.rsc +1 -1
  132. package/.next/server/app/workspace/stashes.segments/_index.segment.rsc +3 -3
  133. package/.next/server/app/workspace/stashes.segments/_tree.segment.rsc +2 -2
  134. package/.next/server/app/workspace/stashes.segments/workspace/stashes/__PAGE__.segment.rsc +2 -2
  135. package/.next/server/app/workspace/stashes.segments/workspace/stashes.segment.rsc +1 -1
  136. package/.next/server/app/workspace/stashes.segments/workspace.segment.rsc +3 -3
  137. package/.next/server/app/workspace.html +1 -1
  138. package/.next/server/app/workspace.rsc +6 -6
  139. package/.next/server/app/workspace.segments/_full.segment.rsc +6 -6
  140. package/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
  141. package/.next/server/app/workspace.segments/_index.segment.rsc +3 -3
  142. package/.next/server/app/workspace.segments/_tree.segment.rsc +2 -2
  143. package/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +2 -2
  144. package/.next/server/app/workspace.segments/workspace.segment.rsc +3 -3
  145. package/.next/server/app-paths-manifest.json +9 -8
  146. package/.next/server/chunks/386.js +1 -0
  147. package/.next/server/chunks/471.js +3 -3
  148. package/.next/server/chunks/557.js +1 -1
  149. package/.next/server/chunks/781.js +1 -1
  150. package/.next/server/chunks/946.js +1 -0
  151. package/.next/server/middleware-build-manifest.js +1 -1
  152. package/.next/server/next-font-manifest.js +1 -1
  153. package/.next/server/next-font-manifest.json +1 -1
  154. package/.next/server/pages/404.html +1 -1
  155. package/.next/server/pages/500.html +2 -2
  156. package/.next/server/server-reference-manifest.json +1 -1
  157. package/.next/static/chunks/{131-6237c77d708182b1.js → 131-7599c38c2eb54305.js} +1 -1
  158. package/.next/static/chunks/26-0e6386c43f055f59.js +1 -0
  159. package/.next/static/chunks/app/_global-error/page-10b66af9ca2c453f.js +1 -0
  160. package/.next/static/chunks/app/_not-found/{page-5bea07380837254f.js → page-57dae00b22f032ec.js} +1 -1
  161. package/.next/static/chunks/app/api/credentials/route-10b66af9ca2c453f.js +1 -0
  162. package/.next/static/chunks/app/api/custom-scripts/route-10b66af9ca2c453f.js +1 -0
  163. package/.next/static/chunks/app/api/fs/route-10b66af9ca2c453f.js +1 -0
  164. package/.next/static/chunks/app/api/git/action/route-10b66af9ca2c453f.js +1 -0
  165. package/.next/static/chunks/app/api/git/branches/route-10b66af9ca2c453f.js +1 -0
  166. package/.next/static/chunks/app/api/git/diff/route-10b66af9ca2c453f.js +1 -0
  167. package/.next/static/chunks/app/api/git/log/route-10b66af9ca2c453f.js +1 -0
  168. package/.next/static/chunks/app/api/git/status/route-10b66af9ca2c453f.js +1 -0
  169. package/.next/static/chunks/app/api/repos/clone/route-10b66af9ca2c453f.js +1 -0
  170. package/.next/static/chunks/app/api/repos/route-10b66af9ca2c453f.js +1 -0
  171. package/.next/static/chunks/app/api/settings/route-10b66af9ca2c453f.js +1 -0
  172. package/.next/static/chunks/app/credentials/{page-23c1807ad9f68a40.js → page-9d0b6c0a8cf1ce2f.js} +1 -1
  173. package/.next/static/chunks/app/layout-dda593914e513c38.js +1 -0
  174. package/.next/static/chunks/app/page-157b05e7d700b845.js +1 -0
  175. package/.next/static/chunks/app/workspace/changes/{page-8cca17f80e66f534.js → page-e8bc3001e0ce1bb9.js} +1 -1
  176. package/.next/static/chunks/app/workspace/custom-scripts/page-8948e627574c391b.js +1 -0
  177. package/.next/static/chunks/app/workspace/history/page-89bfc9747faed53b.js +1 -0
  178. package/.next/static/chunks/app/workspace/layout-75643230bfa68574.js +1 -0
  179. package/.next/static/chunks/app/workspace/{history/page-b7017fea285c804c.js → page-2b043ff528917d81.js} +1 -1
  180. package/.next/static/chunks/app/workspace/settings/page-b42cabafb9d3c3fe.js +1 -0
  181. package/.next/static/chunks/app/workspace/stashes/page-be8d99eec6bfb023.js +1 -0
  182. package/.next/static/chunks/{main-app-221e1b945693a142.js → main-app-9697367bdd1cd307.js} +1 -1
  183. package/.next/static/chunks/next/dist/client/components/builtin/app-error-10b66af9ca2c453f.js +1 -0
  184. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-10b66af9ca2c453f.js +1 -0
  185. package/.next/static/chunks/next/dist/client/components/builtin/global-error-24e6fb8a3a0a87ef.js +1 -0
  186. package/.next/static/chunks/next/dist/client/components/builtin/not-found-10b66af9ca2c453f.js +1 -0
  187. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-10b66af9ca2c453f.js +1 -0
  188. package/.next/static/css/{c56c0e57397a3a60.css → aba7f1cbfd108b5e.css} +1 -1
  189. package/.next/static/rozD2mKp-fnaizXZhYJKN/_buildManifest.js +1 -0
  190. package/README.md +1 -1
  191. package/{next.config.ts → next.config.mjs} +7 -8
  192. package/package.json +2 -2
  193. package/.next/server/chunks/170.js +0 -1
  194. package/.next/server/chunks/356.js +0 -1
  195. package/.next/static/chunks/26-d93e82c9c09ff972.js +0 -1
  196. package/.next/static/chunks/app/_global-error/page-9eb8a19109bbd711.js +0 -1
  197. package/.next/static/chunks/app/api/credentials/route-9eb8a19109bbd711.js +0 -1
  198. package/.next/static/chunks/app/api/custom-scripts/route-9eb8a19109bbd711.js +0 -1
  199. package/.next/static/chunks/app/api/fs/route-9eb8a19109bbd711.js +0 -1
  200. package/.next/static/chunks/app/api/git/action/route-9eb8a19109bbd711.js +0 -1
  201. package/.next/static/chunks/app/api/git/branches/route-9eb8a19109bbd711.js +0 -1
  202. package/.next/static/chunks/app/api/git/diff/route-9eb8a19109bbd711.js +0 -1
  203. package/.next/static/chunks/app/api/git/log/route-9eb8a19109bbd711.js +0 -1
  204. package/.next/static/chunks/app/api/git/status/route-9eb8a19109bbd711.js +0 -1
  205. package/.next/static/chunks/app/api/repos/route-9eb8a19109bbd711.js +0 -1
  206. package/.next/static/chunks/app/api/settings/route-9eb8a19109bbd711.js +0 -1
  207. package/.next/static/chunks/app/layout-a06241c385e50ae0.js +0 -1
  208. package/.next/static/chunks/app/page-c8404790f5191fd7.js +0 -1
  209. package/.next/static/chunks/app/workspace/custom-scripts/page-ee24b9dd7779244f.js +0 -1
  210. package/.next/static/chunks/app/workspace/layout-cb86c00fdcd8db08.js +0 -1
  211. package/.next/static/chunks/app/workspace/page-21211acc90c08509.js +0 -1
  212. package/.next/static/chunks/app/workspace/settings/page-7ccb58ece31492e9.js +0 -1
  213. package/.next/static/chunks/app/workspace/stashes/page-0e1b8304c4b0f4f3.js +0 -1
  214. package/.next/static/chunks/next/dist/client/components/builtin/app-error-9eb8a19109bbd711.js +0 -1
  215. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-9eb8a19109bbd711.js +0 -1
  216. package/.next/static/chunks/next/dist/client/components/builtin/global-error-f2a2c324f3740ed8.js +0 -1
  217. package/.next/static/chunks/next/dist/client/components/builtin/not-found-9eb8a19109bbd711.js +0 -1
  218. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9eb8a19109bbd711.js +0 -1
  219. package/.next/static/i5Fy6fyWcq44ejS8h_y1c/_buildManifest.js +0 -1
  220. /package/.next/static/{i5Fy6fyWcq44ejS8h_y1c → rozD2mKp-fnaizXZhYJKN}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- exports.id=557,exports.ids=[557],exports.modules={6487:()=>{},8335:()=>{},9617:(a,b,c)=>{"use strict";c.d(b,{Y:()=>l});var d=c(3680),e=c(1421),f=c(7975),g=c(1455),h=c(6760),i=c(8161);let j=(0,f.promisify)(e.execFile),k={};class l{constructor(a){this.repoPath=a}get git(){var a=this.repoPath;if(!k[a]){let b=(0,d.Lp)({baseDir:a,binary:"git",maxConcurrentProcesses:6,trimmed:!1});b.env({...process.env,GIT_TERMINAL_PROMPT:"0",GIT_SSH_COMMAND:"ssh -o BatchMode=yes -o StrictHostKeyChecking=no"}),k[a]=b}return k[a]}async cleanupLockFile(){let a=(0,h.join)(this.repoPath,".git","index.lock");try{return await (0,g.unlink)(a),!0}catch(a){return!1}}async getStatus(){return await this.git.status()}async getLog(a=100){let b=await this.git.log({"--all":null,"--decorate":"short","--max-count":a,format:{hash:"%h",parents:"%p",date:"%ai",message:"%s",refs:"%d",author_name:"%an",author_email:"%ae",body:"%b"}}),c=b.all.map(a=>({...a,parents:a.parents?a.parents.split(" ").filter(Boolean):[]}));return{all:c,total:b.total,latest:c[0]||null}}async getLatestCommitMessage(a){return(await this.git.raw(["show","-s","--format=%B",a])).trimEnd()}async fetch(){await this.git.raw(["fetch","--prune"])}async fetchRemote(a){await this.git.raw(["fetch","--prune",a])}async fetchAllRemotes(){await this.git.raw(["fetch","--all","--prune"])}async addRemote(a,b){let c=a.trim(),d=b.trim();if(!c)throw Error("Remote name is required");if(!d)throw Error("Remote URL is required");await this.git.raw(["remote","add",c,d]),await this.git.raw(["fetch","--prune",c])}async renameRemote(a,b){let c=a.trim(),d=b.trim();if(!c)throw Error("Old remote name is required");if(!d)throw Error("New remote name is required");c!==d&&await this.git.raw(["remote","rename",c,d])}async deleteRemote(a){let b=a.trim();if(!b)throw Error("Remote name is required to delete remote");await this.git.raw(["remote","remove",b])}async pull(){await this.git.pull()}async push(a={}){let{credentials:b}=a;if(b){let a=(await this.git.branchLocal()).current,c=await this.getTrackingBranch(a);if(!c)throw Error(`No upstream configured for branch '${a}'. Cannot push with credentials.`);await this.pushToRemote(a,c.remote,c.branch,{credentials:b})}else await this.git.push()}async commit(a,b){b&&b.length>0&&await this.git.add(b),await this.git.commit(a)}async stage(a){await this.git.add(a)}async unstage(a){await this.git.reset(["HEAD",...a])}async discardUnstagedChanges(a={}){let{includeUntracked:b=!0}=a;await this.git.raw(["checkout","--","."]),b&&await this.git.raw(["clean","-fd"])}async getFileContent(a,b="HEAD"){try{return await this.git.show([`${b}:${a}`])}catch(a){return console.error(a),""}}async getBlobFromRef(a){try{let{stdout:b}=await j("git",["show",a],{cwd:this.repoPath,encoding:"buffer",maxBuffer:0x3200000});return Buffer.isBuffer(b)?b:Buffer.from(b)}catch{return null}}async getFileContentBuffer(a,b="HEAD"){return this.getBlobFromRef(`${b}:${a}`)}async getDiff(a){return await this.git.diff(["HEAD","--",a])}async getBranches(){let a="";try{a=(await this.git.revparse(["--abbrev-ref","HEAD"])).trim()}catch(a){console.warn("Failed to get current branch:",a)}let b="";try{b=await this.git.raw(["for-each-ref","--format=%(refname)|%(objectname:short)|%(upstream:short)|%(upstream:track)","refs/heads","refs/remotes"])}catch(a){throw console.error("Failed to get refs:",a),a}let c=[],d={},e={},f={};for(let a of b.trim().split("\n")){if(!a)continue;let[b,g,h,i]=a.split("|");if(b.startsWith("refs/heads/")){let a=b.slice(11);if(c.push(a),d[a]=g,h){let b=0,c=0;if(i){let a=i.match(/ahead (\d+)/);a&&(b=parseInt(a[1],10));let d=i.match(/behind (\d+)/);d&&(c=parseInt(d[1],10))}f[a]={upstream:h,ahead:b,behind:c}}}else if(b.startsWith("refs/remotes/")){let a=b.slice(13),c=a.indexOf("/");if(c>0){let b=a.slice(0,c),f=a.slice(c+1);if("HEAD"===f||f.startsWith("HEAD "))continue;e[b]||(e[b]=[]),e[b].push(f),d[`remotes/${a}`]=g}}}let g=await this.git.getRemotes(!0),h={};for(let a of g)h[a.name]=a.refs.fetch||a.refs.push,e[a.name]||(e[a.name]=[]);return{branches:c,current:a,branchCommits:d,remotes:e,remoteUrls:h,trackingInfo:f}}async checkout(a){await this.git.checkout(a)}async checkoutRemoteToLocal(a,b){try{await this.git.revparse(["--verify",`refs/${a}`])}catch{throw Error(`Remote branch '${a}' does not exist`)}try{throw await this.git.revparse(["--verify",`refs/heads/${b}`]),Error(`Local branch '${b}' already exists`)}catch(a){if(a.message.includes("already exists"))throw a}let c=a.replace(/^remotes\//,""),d=c.indexOf("/");if(d<=0)throw Error(`Invalid remote branch format: ${a}`);let e=c.slice(0,d),f=c.slice(d+1);await this.git.checkout(["-b",b,"--track",`${e}/${f}`])}async createBranch(a,b){if(!b)return void await this.git.checkoutLocalBranch(a);let c=b.startsWith("remotes/")?b.replace(/^remotes\//,""):b;await this.git.checkout(["-b",a,c])}async createTag(a,b,c={}){let{pushToRemote:d=!1,remote:e,credentials:f}=c,g=a.trim(),h=b.trim();if(!g)throw Error("Tag name is required");if(!h)throw Error("Commit hash is required");if(await this.git.raw(["tag",g,h]),!d)return;let i=await this.git.getRemotes();if(0===i.length)throw Error("No remotes configured for this repository");let j=e?.trim()||"";if(!j){let a=(await this.git.branchLocal()).current;if(a){let b=await this.getTrackingBranch(a);b?.remote&&(j=b.remote)}}j&&i.some(a=>a.name===j)||(j=i.some(a=>"origin"===a.name)?"origin":i[0].name);let k=j;if(f){let a=await this.getRemoteUrl(j);if(a)try{let b=new URL(a);b.username=f.username,b.password=f.token,k=b.toString()}catch(a){console.warn("[createTag] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[createTag] Could not resolve URL for remote '${j}', falling back to remote name`)}await this.git.push([k,`refs/tags/${g}`])}async deleteBranch(a){await this.git.deleteLocalBranch(a,!0)}async deleteRemoteBranch(a,b,c){let d=a;if(c){let b=await this.getRemoteUrl(a);if(b)try{let a=new URL(b);a.username=c.username,a.password=c.token,d=a.toString()}catch(a){console.warn("[deleteRemoteBranch] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[deleteRemoteBranch] Could not resolve URL for remote '${a}', falling back to remote name`)}try{await this.git.push([d,"--delete",b])}catch(c){if((c?.message||"").includes("remote ref does not exist"))console.debug(`[deleteRemoteBranch] Remote branch ${b} does not exist on remote ${a}, ignoring error.`);else throw c}try{await this.git.branch(["-r","-D",`${a}/${b}`])}catch(c){console.debug(`[deleteRemoteBranch] Could not delete local remote-tracking branch ${a}/${b}:`,c)}}async deleteTag(a){await this.git.raw(["tag","-d",a])}async deleteRemoteTag(a,b,c){let d=a;if(c){let b=await this.getRemoteUrl(a);if(b)try{let a=new URL(b);a.username=c.username,a.password=c.token,d=a.toString()}catch(a){console.warn("[deleteRemoteTag] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[deleteRemoteTag] Could not resolve URL for remote '${a}', falling back to remote name`)}await this.git.push([d,"--delete",`refs/tags/${b}`])}async renameBranch(a,b,c={}){let{renameTrackingRemote:d=!1,credentials:e}=c,f=d?await this.getTrackingBranch(a):null;if(await this.git.branch(["-m",a,b]),d&&f){await this.renameRemoteBranch(f.remote,f.branch,b,e);try{await this.git.branch(["--set-upstream-to",`${f.remote}/${b}`,b])}catch(a){console.debug(`[renameBranch] Could not set upstream for ${b} to ${f.remote}/${b}:`,a)}}}async renameRemoteBranch(a,b,c,d){if(b===c)return;let e=a;if(d){let b=await this.getRemoteUrl(a);if(b)try{let a=new URL(b);a.username=d.username,a.password=d.token,e=a.toString()}catch(a){console.warn("[renameRemoteBranch] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[renameRemoteBranch] Could not resolve URL for remote '${a}', falling back to remote name`)}let f=`refs/remotes/${a}/${b}`;await this.git.push([e,`${f}:refs/heads/${c}`]),await this.git.push([e,"--delete",b]);let g=`refs/remotes/${a}/${c}`;try{let a=(await this.git.revparse([f])).trim();await this.git.raw(["update-ref",g,a])}catch(a){console.debug(`[renameRemoteBranch] Could not update local tracking ref ${g}:`,a)}try{await this.git.branch(["-r","-D",`${a}/${b}`])}catch(c){console.debug(`[renameRemoteBranch] Could not delete old local remote-tracking branch ${a}/${b}:`,c)}}async reset(a,b="hard"){await this.git.reset([`--${b}`,a])}async revert(a){await this.git.raw(["revert","--no-edit",a])}async cherryPick(a){await this.git.raw(["cherry-pick",a])}async cherryPickMultiple(a){0!==a.length&&await this.git.raw(["cherry-pick",...a])}async abortCherryPick(){await this.git.raw(["cherry-pick","--abort"])}async rebase(a,b=!0){if(b){let b=(await this.git.status()).files.length>0;b&&await this.git.stash(["push","-m","auto-stash before rebase"]);try{await this.git.rebase([a]),b&&await this.git.stash(["pop"])}catch(a){if(b)try{await this.git.stash(["pop"])}catch{}throw a}}else await this.git.reset(["--hard","HEAD"]),await this.git.rebase([a])}async reword(a,b,c){let d=(await this.git.branchLocal()).current,e=c||d,f=e!==d,g=(await this.git.status()).files.length>0;g&&await this.git.stash(["push","-m","auto-stash before reword"]),f&&await this.git.checkout(e);try{let c=await this.git.revparse(["HEAD"]),h=await this.git.revparse([a]);if(c.trim()!==h.trim())throw Error(`Commit ${a} is not the latest commit on branch ${e}. Only the latest commit can be reworded.`);if(await this.git.raw(["commit","--amend","-m",b]),f&&await this.git.checkout(d),g)try{await this.git.stash(["pop"])}catch{console.warn("Failed to pop stash after reword")}}catch(a){if(f)try{await this.git.checkout(d)}catch{}if(g)try{await this.git.stash(["pop"])}catch{}throw a}}async getCommitDiff(a){return{files:(await this.git.raw(["diff-tree","-m","--first-parent","--no-commit-id","--name-status","-r",a])).trim().split("\n").filter(Boolean).map(a=>{let[b,...c]=a.split(" ");return{path:c.join(" "),status:b,additions:0,deletions:0}}),diff:await this.git.raw(["show","-m","--first-parent","--format=",a])}}async getCommitFileDiff(a,b){let c="",d="";try{c=await this.git.show([`${a}^:${b}`])}catch{c=""}try{d=await this.git.show([`${a}:${b}`])}catch{d=""}return{before:c,after:d,diff:await this.getCommitFilePatch(a,b)}}async getCommitFilePatch(a,b){try{return await this.git.raw(["show","--format=",a,"--",b])}catch(a){return console.warn("Failed to get commit file diff:",a),""}}async willMergeHaveConflicts(a,b){let c=await this.git.branchLocal(),d=b||c.current;if(!d)throw Error("Could not determine target branch for merge conflict check");if(a===d)return!1;await this.git.revparse(["--verify",a]),await this.git.revparse(["--verify",d]);try{return await this.git.raw(["merge-tree","--write-tree",d,a]),!1}catch(b){let a=`${b.message??""}
1
+ exports.id=557,exports.ids=[557],exports.modules={6487:()=>{},8335:()=>{},9617:(a,b,c)=>{"use strict";c.d(b,{Y:()=>m});var d=c(3680),e=c(1421),f=c(7975),g=c(1455),h=c(6760),i=c(8161);let j=(0,f.promisify)(e.execFile),k={};function l(a){if(!k[a]){let b=(0,d.Lp)({baseDir:a,binary:"git",maxConcurrentProcesses:6,trimmed:!1});b.env({...process.env,GIT_TERMINAL_PROMPT:"0",GIT_SSH_COMMAND:"ssh -o BatchMode=yes -o StrictHostKeyChecking=no"}),k[a]=b}return k[a]}class m{constructor(a){this.repoPath=a}get git(){return l(this.repoPath)}static async cloneRepository(a,b,c={}){let e=a.trim(),f=b.trim();if(!e)throw Error("Repository URL is required");if(!f)throw Error("Destination path is required");let g=(0,d.Lp)({binary:"git",maxConcurrentProcesses:2,trimmed:!1});g.env({...process.env,GIT_TERMINAL_PROMPT:"0",GIT_SSH_COMMAND:"ssh -o BatchMode=yes -o StrictHostKeyChecking=no"});let h=c.credentials?function(a,b){let c=function(a){if(a.startsWith("http://")||a.startsWith("https://"))return a;let b=a.match(/^git@([^:]+):(.+)$/);return b?`https://${b[1]}/${b[2]}`:null}(a);if(!c)return a;let d=new URL(c);return d.username=b.username,d.password=b.token,d.toString()}(e,c.credentials):e;if(await g.clone(h,f),h!==e){let a=l(f);await a.raw(["remote","set-url","origin",e])}}async cleanupLockFile(){let a=(0,h.join)(this.repoPath,".git","index.lock");try{return await (0,g.unlink)(a),!0}catch(a){return!1}}async getStatus(){return await this.git.status()}async getLog(a=100){let b=await this.git.log({"--all":null,"--decorate":"short","--max-count":a,format:{hash:"%h",parents:"%p",date:"%ai",message:"%s",refs:"%d",author_name:"%an",author_email:"%ae",body:"%b"}}),c=b.all.map(a=>({...a,parents:a.parents?a.parents.split(" ").filter(Boolean):[]}));return{all:c,total:b.total,latest:c[0]||null}}async getLatestCommitMessage(a){return(await this.git.raw(["show","-s","--format=%B",a])).trimEnd()}async fetch(){await this.git.raw(["fetch","--prune"])}async fetchRemote(a){await this.git.raw(["fetch","--prune",a])}async fetchAllRemotes(){await this.git.raw(["fetch","--all","--prune"])}async addRemote(a,b){let c=a.trim(),d=b.trim();if(!c)throw Error("Remote name is required");if(!d)throw Error("Remote URL is required");await this.git.raw(["remote","add",c,d]),await this.git.raw(["fetch","--prune",c])}async renameRemote(a,b){let c=a.trim(),d=b.trim();if(!c)throw Error("Old remote name is required");if(!d)throw Error("New remote name is required");c!==d&&await this.git.raw(["remote","rename",c,d])}async deleteRemote(a){let b=a.trim();if(!b)throw Error("Remote name is required to delete remote");await this.git.raw(["remote","remove",b])}async pull(){await this.git.pull()}async push(a={}){let{credentials:b}=a;if(b){let a=(await this.git.branchLocal()).current,c=await this.getTrackingBranch(a);if(!c)throw Error(`No upstream configured for branch '${a}'. Cannot push with credentials.`);await this.pushToRemote(a,c.remote,c.branch,{credentials:b})}else await this.git.push()}async commit(a,b){b&&b.length>0&&await this.git.add(b),await this.git.commit(a)}async stage(a){await this.git.add(a)}async unstage(a){await this.git.reset(["HEAD",...a])}async discardUnstagedChanges(a={}){let{includeUntracked:b=!0}=a;await this.git.raw(["checkout","--","."]),b&&await this.git.raw(["clean","-fd"])}async getFileContent(a,b="HEAD"){try{return await this.git.show([`${b}:${a}`])}catch(a){return console.error(a),""}}async getBlobFromRef(a){try{let{stdout:b}=await j("git",["show",a],{cwd:this.repoPath,encoding:"buffer",maxBuffer:0x3200000});return Buffer.isBuffer(b)?b:Buffer.from(b)}catch{return null}}async getFileContentBuffer(a,b="HEAD"){return this.getBlobFromRef(`${b}:${a}`)}async getDiff(a){return await this.git.diff(["HEAD","--",a])}async getBranches(){let a="";try{a=(await this.git.revparse(["--abbrev-ref","HEAD"])).trim()}catch(a){console.warn("Failed to get current branch:",a)}let b="";try{b=await this.git.raw(["for-each-ref","--format=%(refname)|%(objectname:short)|%(upstream:short)|%(upstream:track)","refs/heads","refs/remotes"])}catch(a){throw console.error("Failed to get refs:",a),a}let c=[],d={},e={},f={};for(let a of b.trim().split("\n")){if(!a)continue;let[b,g,h,i]=a.split("|");if(b.startsWith("refs/heads/")){let a=b.slice(11);if(c.push(a),d[a]=g,h){let b=0,c=0;if(i){let a=i.match(/ahead (\d+)/);a&&(b=parseInt(a[1],10));let d=i.match(/behind (\d+)/);d&&(c=parseInt(d[1],10))}f[a]={upstream:h,ahead:b,behind:c}}}else if(b.startsWith("refs/remotes/")){let a=b.slice(13),c=a.indexOf("/");if(c>0){let b=a.slice(0,c),f=a.slice(c+1);if("HEAD"===f||f.startsWith("HEAD "))continue;e[b]||(e[b]=[]),e[b].push(f),d[`remotes/${a}`]=g}}}let g=await this.git.getRemotes(!0),h={};for(let a of g)h[a.name]=a.refs.fetch||a.refs.push,e[a.name]||(e[a.name]=[]);return{branches:c,current:a,branchCommits:d,remotes:e,remoteUrls:h,trackingInfo:f}}async checkout(a){await this.git.checkout(a)}async checkoutRemoteToLocal(a,b){try{await this.git.revparse(["--verify",`refs/${a}`])}catch{throw Error(`Remote branch '${a}' does not exist`)}try{throw await this.git.revparse(["--verify",`refs/heads/${b}`]),Error(`Local branch '${b}' already exists`)}catch(a){if(a.message.includes("already exists"))throw a}let c=a.replace(/^remotes\//,""),d=c.indexOf("/");if(d<=0)throw Error(`Invalid remote branch format: ${a}`);let e=c.slice(0,d),f=c.slice(d+1);await this.git.checkout(["-b",b,"--track",`${e}/${f}`])}async createBranch(a,b){if(!b)return void await this.git.checkoutLocalBranch(a);let c=b.startsWith("remotes/")?b.replace(/^remotes\//,""):b;await this.git.checkout(["-b",a,c])}async createTag(a,b,c={}){let{pushToRemote:d=!1,remote:e,credentials:f}=c,g=a.trim(),h=b.trim();if(!g)throw Error("Tag name is required");if(!h)throw Error("Commit hash is required");if(await this.git.raw(["tag",g,h]),!d)return;let i=await this.git.getRemotes();if(0===i.length)throw Error("No remotes configured for this repository");let j=e?.trim()||"";if(!j){let a=(await this.git.branchLocal()).current;if(a){let b=await this.getTrackingBranch(a);b?.remote&&(j=b.remote)}}j&&i.some(a=>a.name===j)||(j=i.some(a=>"origin"===a.name)?"origin":i[0].name);let k=j;if(f){let a=await this.getRemoteUrl(j);if(a)try{let b=new URL(a);b.username=f.username,b.password=f.token,k=b.toString()}catch(a){console.warn("[createTag] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[createTag] Could not resolve URL for remote '${j}', falling back to remote name`)}await this.git.push([k,`refs/tags/${g}`])}async deleteBranch(a){await this.git.deleteLocalBranch(a,!0)}async deleteRemoteBranch(a,b,c){let d=a;if(c){let b=await this.getRemoteUrl(a);if(b)try{let a=new URL(b);a.username=c.username,a.password=c.token,d=a.toString()}catch(a){console.warn("[deleteRemoteBranch] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[deleteRemoteBranch] Could not resolve URL for remote '${a}', falling back to remote name`)}try{await this.git.push([d,"--delete",b])}catch(c){if((c?.message||"").includes("remote ref does not exist"))console.debug(`[deleteRemoteBranch] Remote branch ${b} does not exist on remote ${a}, ignoring error.`);else throw c}try{await this.git.branch(["-r","-D",`${a}/${b}`])}catch(c){console.debug(`[deleteRemoteBranch] Could not delete local remote-tracking branch ${a}/${b}:`,c)}}async deleteTag(a){await this.git.raw(["tag","-d",a])}async deleteRemoteTag(a,b,c){let d=a;if(c){let b=await this.getRemoteUrl(a);if(b)try{let a=new URL(b);a.username=c.username,a.password=c.token,d=a.toString()}catch(a){console.warn("[deleteRemoteTag] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[deleteRemoteTag] Could not resolve URL for remote '${a}', falling back to remote name`)}await this.git.push([d,"--delete",`refs/tags/${b}`])}async renameBranch(a,b,c={}){let{renameTrackingRemote:d=!1,credentials:e}=c,f=d?await this.getTrackingBranch(a):null;if(await this.git.branch(["-m",a,b]),d&&f){await this.renameRemoteBranch(f.remote,f.branch,b,e);try{await this.git.branch(["--set-upstream-to",`${f.remote}/${b}`,b])}catch(a){console.debug(`[renameBranch] Could not set upstream for ${b} to ${f.remote}/${b}:`,a)}}}async renameRemoteBranch(a,b,c,d){if(b===c)return;let e=a;if(d){let b=await this.getRemoteUrl(a);if(b)try{let a=new URL(b);a.username=d.username,a.password=d.token,e=a.toString()}catch(a){console.warn("[renameRemoteBranch] Failed to construct authenticated URL, falling back to remote name",a)}else console.warn(`[renameRemoteBranch] Could not resolve URL for remote '${a}', falling back to remote name`)}let f=`refs/remotes/${a}/${b}`;await this.git.push([e,`${f}:refs/heads/${c}`]),await this.git.push([e,"--delete",b]);let g=`refs/remotes/${a}/${c}`;try{let a=(await this.git.revparse([f])).trim();await this.git.raw(["update-ref",g,a])}catch(a){console.debug(`[renameRemoteBranch] Could not update local tracking ref ${g}:`,a)}try{await this.git.branch(["-r","-D",`${a}/${b}`])}catch(c){console.debug(`[renameRemoteBranch] Could not delete old local remote-tracking branch ${a}/${b}:`,c)}}async reset(a,b="hard"){await this.git.reset([`--${b}`,a])}async revert(a){await this.git.raw(["revert","--no-edit",a])}async cherryPick(a){await this.git.raw(["cherry-pick",a])}async cherryPickMultiple(a){0!==a.length&&await this.git.raw(["cherry-pick",...a])}async abortCherryPick(){await this.git.raw(["cherry-pick","--abort"])}async rebase(a,b=!0){if(b){let b=(await this.git.status()).files.length>0;b&&await this.git.stash(["push","-m","auto-stash before rebase"]);try{await this.git.rebase([a]),b&&await this.git.stash(["pop"])}catch(a){if(b)try{await this.git.stash(["pop"])}catch{}throw a}}else await this.git.reset(["--hard","HEAD"]),await this.git.rebase([a])}async reword(a,b,c){let d=(await this.git.branchLocal()).current,e=c||d,f=e!==d,g=(await this.git.status()).files.length>0;g&&await this.git.stash(["push","-m","auto-stash before reword"]),f&&await this.git.checkout(e);try{let c=await this.git.revparse(["HEAD"]),h=await this.git.revparse([a]);if(c.trim()!==h.trim())throw Error(`Commit ${a} is not the latest commit on branch ${e}. Only the latest commit can be reworded.`);if(await this.git.raw(["commit","--amend","-m",b]),f&&await this.git.checkout(d),g)try{await this.git.stash(["pop"])}catch{console.warn("Failed to pop stash after reword")}}catch(a){if(f)try{await this.git.checkout(d)}catch{}if(g)try{await this.git.stash(["pop"])}catch{}throw a}}async getCommitDiff(a){return{files:(await this.git.raw(["diff-tree","-m","--first-parent","--no-commit-id","--name-status","-r",a])).trim().split("\n").filter(Boolean).map(a=>{let[b,...c]=a.split(" ");return{path:c.join(" "),status:b,additions:0,deletions:0}}),diff:await this.git.raw(["show","-m","--first-parent","--format=",a])}}async getCommitFileDiff(a,b){let c="",d="";try{c=await this.git.show([`${a}^:${b}`])}catch{c=""}try{d=await this.git.show([`${a}:${b}`])}catch{d=""}return{before:c,after:d,diff:await this.getCommitFilePatch(a,b)}}async getCommitFilePatch(a,b){try{return await this.git.raw(["show","--format=",a,"--",b])}catch(a){return console.warn("Failed to get commit file diff:",a),""}}async willMergeHaveConflicts(a,b){let c=await this.git.branchLocal(),d=b||c.current;if(!d)throw Error("Could not determine target branch for merge conflict check");if(a===d)return!1;await this.git.revparse(["--verify",a]),await this.git.revparse(["--verify",d]);try{return await this.git.raw(["merge-tree","--write-tree",d,a]),!1}catch(b){let a=`${b.message??""}
2
2
  ${b.stdout??""}
3
3
  ${b.stderr??""}`.toLowerCase();if(a.includes("conflict"))return!0;if(!(a.includes("unknown option")||a.includes("usage: git merge-tree")))throw b}let e=(await this.git.raw(["merge-base",d,a])).trim(),f=await this.git.raw(["merge-tree",e,d,a]),g=f.toLowerCase();return f.includes("<<<<<<<")||g.includes("changed in both")||g.includes("added in both")||g.includes("removed in both")||g.includes("conflict")}async willRebaseHaveConflicts(a,b){let c=await this.git.branchLocal(),e=b||c.current;if(!e)throw Error("Could not determine source branch for rebase conflict check");if(e===a)return!1;await this.git.revparse(["--verify",e]),await this.git.revparse(["--verify",a]);let f=await (0,g.mkdtemp)((0,h.join)((0,i.tmpdir)(),"git-web-rebase-check-")),j=!1;try{await this.git.raw(["worktree","add","--detach",f,e]),j=!0;let b=(0,d.Lp)({baseDir:f,binary:"git",maxConcurrentProcesses:2,trimmed:!1});return b.env({...process.env,GIT_TERMINAL_PROMPT:"0",GIT_SSH_COMMAND:"ssh -o BatchMode=yes -o StrictHostKeyChecking=no"}),await b.rebase([a]),!1}catch(b){let a=`${b.message??""}
4
4
  ${b.stdout??""}
@@ -1 +1 @@
1
- "use strict";exports.id=781,exports.ids=[781],exports.modules={781:(a,b,c)=>{c.d(b,{g:()=>i});var d=c(8249),e=c(7484),f=c(8696),g=c(6816),h=c(8550);function i({open:a,onOpenChange:b,onSettingsChange:c}){let{theme:i,setTheme:j}=(0,f.D)(),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)("");(0,h.v)(a,()=>b(!1));let w=async()=>{r(!0);try{let a=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultRootFolder:u.trim()||null})});if(a.ok){let d=await a.json();n(d),c?.(d),b(!1)}}catch(a){console.error("Failed to save settings:",a)}finally{r(!1)}};return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("dialog",{className:"modal modal-open",children:[(0,d.jsxs)("div",{className:"modal-box",children:[(0,d.jsx)("h3",{className:"font-bold text-lg",children:"Settings"}),(0,d.jsx)("p",{className:"py-4 opacity-70",children:"Configure your application preferences."}),o?(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)("span",{className:"loading loading-spinner loading-md"})}):(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{className:"form-control w-full",children:[(0,d.jsx)("label",{className:"label",children:(0,d.jsx)("span",{className:"label-text",children:"Color Theme"})}),(0,d.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"Choose your preferred color theme for the application."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("button",{className:`btn flex-1 ${"system"===i?"btn-primary":""}`,onClick:()=>j("system"),disabled:!k,children:[(0,d.jsx)("i",{className:"iconoir-computer text-[20px] mr-2","aria-hidden":"true"}),"System"]}),(0,d.jsxs)("button",{className:`btn flex-1 ${"light"===i?"btn-primary":""}`,onClick:()=>j("light"),disabled:!k,children:[(0,d.jsx)("i",{className:"iconoir-sun-light text-[20px] mr-2","aria-hidden":"true"}),"Light"]}),(0,d.jsxs)("button",{className:`btn flex-1 ${"dark"===i?"btn-primary":""}`,onClick:()=>j("dark"),disabled:!k,children:[(0,d.jsx)("i",{className:"iconoir-moon-sat text-[20px] mr-2","aria-hidden":"true"}),"Dark"]})]})]}),(0,d.jsxs)("div",{className:"form-control w-full",children:[(0,d.jsx)("label",{className:"label",children:(0,d.jsx)("span",{className:"label-text",children:"Default Root Folder"})}),(0,d.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"The starting folder when browsing for new repositories. Leave empty to use your home folder."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{type:"text",placeholder:m?.resolvedDefaultFolder||"User home folder",className:"input input-bordered w-full font-mono text-sm",value:u,onChange:a=>v(a.target.value),autoFocus:!0}),(0,d.jsx)("button",{className:"btn btn-square",onClick:()=>t(!0),title:"Browse folders",children:(0,d.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"})})]}),u&&(0,d.jsx)("div",{className:"mt-2",children:(0,d.jsx)("button",{type:"button",className:"link link-hover text-primary text-xs",onClick:()=>{v("")},children:"Reset to default (home folder)"})})]})]}),(0,d.jsxs)("div",{className:"modal-action",children:[(0,d.jsx)("button",{className:"btn",onClick:()=>b(!1),children:"Close"}),(0,d.jsxs)("button",{className:"btn btn-primary",onClick:w,disabled:q||o,children:[q&&(0,d.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Save Folder Settings"]})]})]}),(0,d.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,d.jsx)("button",{onClick:()=>b(!1),children:"close"})})]}),(0,d.jsx)(g.K,{open:s,onOpenChange:t,onSelect:a=>{v(a)},initialPath:u||m?.resolvedDefaultFolder,title:"Select default root folder"})]}):null}},6816:(a,b,c)=>{c.d(b,{K:()=>h});var d=c(8249),e=c(7484),f=c(4490),g=c(8550);function h({open:a,onOpenChange:b,onSelect:c,initialPath:h,title:i="Select Repository"}){let[j,k]=(0,e.useState)(""),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=async a=>{o(!0);try{let b=a?`/api/fs?path=${encodeURIComponent(a)}`:"/api/fs",c=await fetch(b),d=await c.json();c.ok?(m(d),k(d.path)):console.error(d.error)}catch(a){console.error(a)}finally{o(!1)}};(0,g.v)(a,()=>b(!1));let s=a=>{r(a)};return a?(0,d.jsxs)("dialog",{className:"modal modal-open",children:[(0,d.jsxs)("div",{className:"modal-box w-11/12 max-w-2xl h-[80vh] flex flex-col p-0 overflow-hidden bg-base-100",children:[(0,d.jsxs)("div",{className:"p-4 border-b border-base-300 flex justify-between items-center bg-base-200/50",children:[(0,d.jsxs)("div",{className:"overflow-hidden",children:[(0,d.jsx)("h3",{className:"font-bold text-lg",children:i}),(0,d.jsx)("div",{className:"text-xs opacity-70 font-mono truncate pt-1",title:j,children:j||"Loading..."})]}),(0,d.jsx)("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:()=>b(!1),children:(0,d.jsx)("i",{className:"iconoir-xmark text-[16px]","aria-hidden":"true"})})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-hidden relative bg-base-100",children:[n&&(0,d.jsx)("div",{className:"absolute inset-0 bg-base-100/50 flex items-center justify-center z-10",children:(0,d.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"})}),(0,d.jsx)("div",{className:"h-full overflow-y-auto",children:(0,d.jsxs)("div",{className:"divide-y divide-base-200",children:[l?.parent&&(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 hover:bg-base-200 cursor-pointer opacity-70 transition-colors",onClick:()=>s(l.parent),children:[(0,d.jsx)("i",{className:"iconoir-u-turn-arrow-left text-[20px]","aria-hidden":"true"}),(0,d.jsx)("span",{className:"text-sm",children:".."})]}),l?.folders.map(a=>(0,d.jsxs)("div",{className:(0,f.cn)("flex items-center justify-between px-4 py-3 hover:bg-base-200 cursor-pointer group transition-colors",a.name.startsWith(".")&&"opacity-60"),onClick:()=>s(a.path),children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 truncate",children:[a.isRepo?(0,d.jsx)("i",{className:"iconoir-bookmark text-[20px]","aria-hidden":"true"}):(0,d.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"}),(0,d.jsx)("span",{className:(0,f.cn)("text-sm font-mono",a.isRepo&&"font-medium"),children:a.name})]}),a.isRepo&&(0,d.jsx)("button",{className:"btn btn-xs btn-outline",onClick:d=>{d.stopPropagation(),c(a.path),b(!1)},children:"Select"})]},a.path)),l?.folders.length===0&&(0,d.jsx)("div",{className:"p-8 text-center opacity-70 text-sm",children:"No folders found"})]})})]}),(0,d.jsxs)("div",{className:"p-4 border-t border-base-300 flex items-center justify-between bg-base-200/30",children:[(0,d.jsx)("div",{className:"text-xs opacity-70",children:"Click folder to navigate."}),(0,d.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>{c(j),b(!1)},children:"Select Current Folder"})]})]}),(0,d.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,d.jsx)("button",{onClick:()=>b(!1),children:"close"})})]}):null}}};
1
+ "use strict";exports.id=781,exports.ids=[781],exports.modules={781:(a,b,c)=>{c.d(b,{g:()=>i});var d=c(8249),e=c(7484),f=c(8696),g=c(6816),h=c(8550);function i({open:a,onOpenChange:b,onSettingsChange:c}){let{theme:i,setTheme:j}=(0,f.D)(),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)("");(0,h.v)(a,()=>b(!1));let w=async()=>{r(!0);try{let a=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultRootFolder:u.trim()||null})});if(a.ok){let d=await a.json();n(d),c?.(d),b(!1)}}catch(a){console.error("Failed to save settings:",a)}finally{r(!1)}};return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("dialog",{className:"modal modal-open",children:[(0,d.jsxs)("div",{className:"modal-box",children:[(0,d.jsx)("h3",{className:"font-bold text-lg",children:"Settings"}),(0,d.jsx)("p",{className:"py-4 opacity-70",children:"Configure your application preferences."}),o?(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)("span",{className:"loading loading-spinner loading-md"})}):(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{className:"form-control w-full",children:[(0,d.jsx)("label",{className:"label",children:(0,d.jsx)("span",{className:"label-text",children:"Color Theme"})}),(0,d.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"Choose your preferred color theme for the application."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("button",{className:`btn flex-1 ${"system"===i?"btn-primary":""}`,onClick:()=>j("system"),disabled:!k,children:[(0,d.jsx)("i",{className:"iconoir-computer text-[20px] mr-2","aria-hidden":"true"}),"System"]}),(0,d.jsxs)("button",{className:`btn flex-1 ${"light"===i?"btn-primary":""}`,onClick:()=>j("light"),disabled:!k,children:[(0,d.jsx)("i",{className:"iconoir-sun-light text-[20px] mr-2","aria-hidden":"true"}),"Light"]}),(0,d.jsxs)("button",{className:`btn flex-1 ${"dark"===i?"btn-primary":""}`,onClick:()=>j("dark"),disabled:!k,children:[(0,d.jsx)("i",{className:"iconoir-moon-sat text-[20px] mr-2","aria-hidden":"true"}),"Dark"]})]})]}),(0,d.jsxs)("div",{className:"form-control w-full",children:[(0,d.jsx)("label",{className:"label",children:(0,d.jsx)("span",{className:"label-text",children:"Default Root Folder"})}),(0,d.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"The starting folder when browsing for new repositories. Leave empty to use your home folder."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{type:"text",placeholder:m?.resolvedDefaultFolder||"User home folder",className:"input input-bordered w-full font-mono text-sm",value:u,onChange:a=>v(a.target.value),autoFocus:!0}),(0,d.jsx)("button",{className:"btn btn-square",onClick:()=>t(!0),title:"Browse folders",children:(0,d.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"})})]}),u&&(0,d.jsx)("div",{className:"mt-2",children:(0,d.jsx)("button",{type:"button",className:"link link-hover text-primary text-xs",onClick:()=>{v("")},children:"Reset to default (home folder)"})})]})]}),(0,d.jsxs)("div",{className:"modal-action",children:[(0,d.jsx)("button",{className:"btn",onClick:()=>b(!1),children:"Close"}),(0,d.jsxs)("button",{className:"btn btn-primary",onClick:w,disabled:q||o,children:[q&&(0,d.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Save Folder Settings"]})]})]}),(0,d.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,d.jsx)("button",{onClick:()=>b(!1),children:"close"})})]}),(0,d.jsx)(g.K,{open:s,onOpenChange:t,onSelect:a=>{v(a)},initialPath:u||m?.resolvedDefaultFolder,title:"Select default root folder"})]}):null}},6816:(a,b,c)=>{c.d(b,{K:()=>i});var d=c(8249),e=c(7484),f=c(4490),g=c(8550),h=c(3381);function i({open:a,onOpenChange:b,onSelect:c,initialPath:i,title:j="Select Repository",selectionMode:k="repository"}){let[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),v=async a=>{q(!0);try{let b=a?`/api/fs?path=${encodeURIComponent(a)}`:"/api/fs",c=await fetch(b),d=await c.json();c.ok?(o(d),m(d.path)):console.error(d.error)}catch(a){console.error(a)}finally{q(!1)}};(0,g.v)(a,()=>b(!1));let w=a=>{v(a)},x=async()=>{if("folder"!==k||!l||t)return;let a=window.prompt("New folder name"),b=a?.trim()||"";if(b){u(!0);try{let a=await fetch("/api/fs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:l,name:b})}),c=await a.json().catch(()=>({}));if(!a.ok)throw Error(c.error||"Failed to create folder");await v(l),(0,h.oR)({type:"success",title:"Folder created",description:`Created "${b}" in ${l}`})}catch(b){let a=b instanceof Error?b.message:"Unknown error";(0,h.oR)({type:"error",title:"Failed to create folder",description:a})}finally{u(!1)}}};return a?(0,d.jsxs)("dialog",{className:"modal modal-open",children:[(0,d.jsxs)("div",{className:"modal-box w-11/12 max-w-2xl h-[80vh] flex flex-col p-0 overflow-hidden bg-base-100",children:[(0,d.jsxs)("div",{className:"p-4 border-b border-base-300 flex justify-between items-center bg-base-200/50",children:[(0,d.jsxs)("div",{className:"overflow-hidden",children:[(0,d.jsx)("h3",{className:"font-bold text-lg",children:j}),(0,d.jsx)("div",{className:"text-xs opacity-70 font-mono truncate pt-1",title:l,children:l||"Loading..."})]}),(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsx)("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:()=>b(!1),children:(0,d.jsx)("i",{className:"iconoir-xmark text-[16px]","aria-hidden":"true"})})})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-hidden relative bg-base-100",children:[p&&(0,d.jsx)("div",{className:"absolute inset-0 bg-base-100/50 flex items-center justify-center z-10",children:(0,d.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"})}),(0,d.jsx)("div",{className:"h-full overflow-y-auto",children:(0,d.jsxs)("div",{className:"divide-y divide-base-200",children:[n?.parent&&(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 hover:bg-base-200 cursor-pointer opacity-70 transition-colors",onClick:()=>w(n.parent),children:[(0,d.jsx)("i",{className:"iconoir-u-turn-arrow-left text-[20px]","aria-hidden":"true"}),(0,d.jsx)("span",{className:"text-sm",children:".."})]}),n?.folders.map(a=>{let e="folder"===k||a.isRepo;return(0,d.jsxs)("div",{className:(0,f.cn)("flex items-center justify-between px-4 py-3 hover:bg-base-200 cursor-pointer group transition-colors",a.name.startsWith(".")&&"opacity-60"),onClick:()=>w(a.path),children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 truncate",children:[a.isRepo?(0,d.jsx)("i",{className:"iconoir-bookmark text-[20px]","aria-hidden":"true"}):(0,d.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"}),(0,d.jsx)("span",{className:(0,f.cn)("text-sm font-mono",a.isRepo&&"font-medium"),children:a.name})]}),e&&(0,d.jsx)("button",{className:"btn btn-xs btn-outline",onClick:d=>{d.stopPropagation(),c(a.path),b(!1)},children:"folder"===k?"Use Folder":"Select"})]},a.path)}),n?.folders.length===0&&(0,d.jsx)("div",{className:"p-8 text-center opacity-70 text-sm",children:"No folders found"})]})})]}),(0,d.jsxs)("div",{className:"p-4 border-t border-base-300 flex items-center justify-between bg-base-200/30",children:[(0,d.jsx)("div",{className:"text-xs opacity-70",children:"folder"===k?"Click folder to navigate or select it.":"Click folder to navigate."}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:["folder"===k&&(0,d.jsx)("button",{className:"btn btn-sm btn-outline",onClick:x,disabled:t||p||!l,children:t?(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Creating..."]}):"New Folder"}),(0,d.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>{c(l),b(!1)},children:"folder"===k?"Use Current Folder":"Select Current Folder"})]})]})]}),(0,d.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,d.jsx)("button",{onClick:()=>b(!1),children:"close"})})]}):null}}};
@@ -0,0 +1 @@
1
+ exports.id=946,exports.ids=[946],exports.modules={1135:()=>{},3381:(a,b,c)=>{"use strict";c.d(b,{dj:()=>o,oR:()=>n,tk:()=>p});var d=c(7484);let e=5e3;async function f(a){try{return await navigator.clipboard.writeText(a),!0}catch{let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.left="-9999px",document.body.appendChild(b),b.select();try{return document.execCommand("copy"),!0}catch{return!1}finally{document.body.removeChild(b)}}}let g=0;function h(){return(g=(g+1)%Number.MAX_SAFE_INTEGER).toString()}let i=new Map,j=(a,b=e)=>{if(i.has(a))return;let c=setTimeout(()=>{i.delete(a),m({type:"REMOVE_TOAST",toastId:a})},b);i.set(a,c)},k=[],l={toasts:[]};function m(a){l=((a,b)=>{switch(b.type){case"ADD_TOAST":return{...a,toasts:[b.toast,...a.toasts].slice(0,5)};case"UPDATE_TOAST":return{...a,toasts:a.toasts.map(a=>a.id===b.toast.id?{...a,...b.toast}:a)};case"DISMISS_TOAST":{let{toastId:c}=b;return c?j(c,0):a.toasts.forEach(a=>{j(a.id,0)}),{...a,toasts:a.toasts.filter(a=>a.id!==c&&void 0!==c)}}case"REMOVE_TOAST":if(void 0===b.toastId)return{...a,toasts:[]};return{...a,toasts:a.toasts.filter(a=>a.id!==b.toastId)}}})(l,a),k.forEach(a=>{a(l)})}function n(a){let b=h();return m({type:"ADD_TOAST",toast:{...a,id:b}}),j(b,a.duration||e),{id:b,dismiss:()=>m({type:"DISMISS_TOAST",toastId:b}),update:a=>m({type:"UPDATE_TOAST",toast:{...a,id:b}})}}function o(){let[a,b]=d.useState(l);return d.useEffect(()=>(k.push(b),()=>{let a=k.indexOf(b);a>-1&&k.splice(a,1)}),[a]),{...a,toast:n,dismiss:a=>m({type:"DISMISS_TOAST",toastId:a})}}function p(a,b={}){let c="string"==typeof a?a:a.message,e=b.title||(b.operation?`${b.operation} Failed`:"Git Operation Failed"),g=h();return n({type:"error",title:e,description:d.createElement(()=>{let[a,e]=d.useState(!1),[h,i]=d.useState(!1),j=async a=>{a.stopPropagation(),await f(c)&&(e(!0),setTimeout(()=>e(!1),2e3))},k=async a=>{if(a.stopPropagation(),b.onFix){i(!0);try{await b.onFix(),m({type:"DISMISS_TOAST",toastId:g})}catch(a){console.error("Fix failed",a),i(!1)}}};return d.createElement("div",{className:"mt-2 space-y-3"},d.createElement("div",{className:"max-h-[120px] overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed bg-black/20 p-3 rounded-md break-all text-error-content/90 border border-error-content/20"},c),d.createElement("div",{className:"flex gap-2"},d.createElement("button",{onClick:j,type:"button",className:`btn btn-xs ${a?"btn-success text-white":"bg-white/20 hover:bg-white/30 text-white border-white/20"}`},a?"Copied!":"Copy Error"),b.onFix?d.createElement("button",{onClick:k,type:"button",disabled:h,className:"btn btn-xs btn-warning text-white"},h?"Fixing...":b.fixLabel||"Fix Issue"):null))}),duration:1e4}),{id:g,dismiss:()=>m({type:"DISMISS_TOAST",toastId:g})}}},3571:(a,b,c)=>{Promise.resolve().then(c.bind(c,4709))},4180:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23))},4490:(a,b,c)=>{"use strict";c.d(b,{L9:()=>q,cn:()=>f,iu:()=>h,kO:()=>n,kj:()=>g,tq:()=>p,u:()=>o});var d=c(9314),e=c(6862);function f(...a){return(0,e.QP)((0,d.$)(a))}function g(a){let b=a.replace(/[\\/]+$/,"").split(/[/\\]/).filter(Boolean);return b[b.length-1]||a}function h(a){let b=a.displayName?.trim();return b||(a.name?.trim()?a.name:g(a.path))}function i(a){if(!a)return"";let b=a.split("/").pop()||"",c=b.lastIndexOf(".");return -1===c||0===c?b.toLowerCase():b.slice(c+1).toLowerCase()}let j=new Set(["js","jsx","ts","tsx","mjs","cjs","mts","cts","py","pyw","pyi","pyx","rb","rake","gemspec","java","kt","kts","scala","sc","groovy","gradle","c","h","cpp","cc","cxx","hpp","hh","hxx","c++","h++","cs","fs","fsx","fsi","go","rs","swift","dart","zig","nim","v","odin","php","phtml","php3","php4","php5","php7","phps","pl","pm","pod","t","psgi","lua","tcl","r","R","jl","ex","exs","erl","hrl","clj","cljs","cljc","edn","lisp","lsp","el","scm","ss","rkt","hs","lhs","elm","purs","ml","mli","f90","f95","f03","f08","for","asm","s","S","vhd","vhdl","v","sv","svh","bas","vb","vbs","vba","pas","pp","inc","dpr","dpk","sh","bash","zsh","fish","ksh","csh","tcsh","ps1","psm1","psd1","bat","cmd","html","htm","xhtml","shtml","css","scss","sass","less","styl","stylus","pcss","postcss","svg","xml","xsl","xslt","xsd","dtd","rss","atom","rdf","wsdl","soap","vue","svelte","astro","mdx","hbs","handlebars","mustache","ejs","pug","jade","haml","slim","erb","graphql","gql","json","json5","jsonc","jsonl","ndjson","geojson","yaml","yml","toml","ini","cfg","conf","config","properties","env","csv","tsv","psv","txt","text","log","out","md","markdown","mdown","mkd","mkdn","mdwn","rst","rest","adoc","asciidoc","asc","org","tex","latex","ltx","bib","sty","cls","rtf","diff","patch","gitignore","gitattributes","gitmodules","gitconfig","dockerignore","dockerfile","containerfile","editorconfig","prettierrc","eslintrc","babelrc","stylelintrc","browserslistrc","npmrc","nvmrc","yarnrc","pnpmfile","makefile","mk","cmake","make","mak","rake","podfile","gemfile","fastfile","sql","plsql","pgsql","mysql","sqlite","hql","cql","proto","protobuf","thrift","avro","capnp","fbs","flatc","tf","tfvars","hcl","nomad","sentinel","prisma","graphqls","lock"]),k=new Set(["jpg","jpeg","png","gif","bmp","ico","icns","tiff","tif","webp","avif","heic","heif","psd","ai","eps","raw","cr2","nef","orf","sr2","dng","mp4","avi","mov","wmv","flv","mkv","webm","m4v","mpeg","mpg","3gp","3g2","ogv","mp3","wav","ogg","oga","flac","aac","m4a","wma","aiff","aif","mid","midi","opus","zip","rar","7z","tar","gz","bz2","xz","lz","lzma","lz4","zst","cab","iso","dmg","exe","dll","so","dylib","a","lib","obj","o","app","msi","deb","rpm","apk","ipa","pkg","snap","flatpak","appimage","class","jar","war","ear","pyc","pyo","pyd","beam","wasm","wat","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","pages","numbers","key","ttf","otf","woff","woff2","eot","fon","fnt","db","sqlite","sqlite3","mdb","accdb","frm","myd","myi","ibd","bin","dat","data","sav","bak","swf","fla","blend","fbx","obj","stl","gltf","glb","3ds","dae","ply","sketch","fig","xd","unity","unitypackage","asset","prefab","meta"]),l=new Set(["png","jpg","jpeg","gif","bmp","ico","icns","tiff","tif","webp","avif","heic","heif","svg"]);function m(a){if(!a)return!1;if(a.includes("\0"))return!0;let b=a.slice(0,8192),c=0;for(let a=0;a<b.length;a++){let d=b.charCodeAt(a);d<32&&9!==d&&10!==d&&13!==d&&c++}return b.length>0&&c/b.length>.1}function n(a,b,c){let d=function(a){if(!a)return"unknown";let b=i(a);return j.has(b)?"text":k.has(b)?"binary":"unknown"}(a);return"binary"===d||"text"!==d&&(m(b||"")||m(c||""))}function o(a){return l.has(i(a))}function p(a){return a?a.split("\n").reduce((a,b)=>b.startsWith("+++ ")||b.startsWith("--- ")?a:b.startsWith("+")||b.startsWith("-")?a+1:a,0):0}function q(a){return a.replace(/[\s~^:?*\[\]\\@{}<>|"'`!#$%&()+=;,]/g,"-").replace(/\.{2,}/g,"-").replace(/\/{2,}/g,"/").replace(/-{2,}/g,"-")}},4626:(a,b,c)=>{"use strict";c.d(b,{F3:()=>n,GK:()=>m,Jy:()=>x,Lp:()=>p,Ud:()=>z,X0:()=>q,Y5:()=>k,_6:()=>t,_X:()=>s,a3:()=>D,cT:()=>y,en:()=>r,fr:()=>o,gg:()=>v,st:()=>w,t0:()=>j,uG:()=>l,xV:()=>u});var d=c(7484),e=c(434),f=c(5023),g=c(3241),h=c(3381);let i="/api";function j(){return(0,e.I)({queryKey:["settings"],queryFn:async()=>{let a=await fetch(`${i}/settings`);if(!a.ok)throw Error("Failed to fetch settings");return a.json()}})}function k(){let a=(0,f.jE)();return(0,g.n)({mutationFn:async a=>{let b=await fetch(`${i}/settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Failed to update settings");return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["settings"]})}})}function l(){return(0,e.I)({queryKey:["repos"],queryFn:async()=>{let a=await fetch(`${i}/repos`);if(!a.ok)throw Error("Failed to fetch repositories");return a.json()}})}function m(a){let{data:b}=l();return(0,d.useMemo)(()=>b?.find(b=>b.path===a)||null,[b,a])}function n(){let a=(0,f.jE)();return(0,g.n)({mutationFn:async({path:a,name:b})=>{let c=await fetch(`${i}/repos`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a,name:b})});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||"Failed to add repository");return c.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["repos"]})}})}function o(){let a=(0,f.jE)();return(0,g.n)({mutationFn:async a=>{let b=await fetch(`${i}/repos/clone`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error||"Failed to clone repository");return c},onSuccess:()=>{a.invalidateQueries({queryKey:["repos"]})}})}function p(){let a=(0,f.jE)();return(0,g.n)({mutationFn:async({path:a,updates:b})=>{let c=await fetch(`${i}/repos`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a,updates:b})});if(!c.ok)throw Error(await c.text());return c.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["repos"]})}})}function q(){let a=(0,f.jE)();return(0,g.n)({mutationFn:async({path:a,deleteLocalFolder:b=!1})=>{let c=await fetch(`${i}/repos`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a,deleteLocalFolder:b})});if(!c.ok)throw Error(await c.text());return c.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["repos"]})}})}function r(a){return(0,e.I)({queryKey:["git",a,"status"],queryFn:async()=>{if(!a)return null;let b=await fetch(`${i}/git/status?path=${encodeURIComponent(a)}`);if(!b.ok){let a=Error((await b.json().catch(()=>({}))).error||"Failed to fetch status");throw a.status=b.status,a}return b.json()},enabled:!!a,refetchOnWindowFocus:!0,refetchOnReconnect:!0,retry:(a,b)=>404!==b.status&&400!==b.status&&a<3})}function s(a,b=50){return(0,e.I)({queryKey:["git",a,"log",b],queryFn:async()=>{if(!a)return null;let c=await fetch(`${i}/git/log?path=${encodeURIComponent(a)}&limit=${b}`);if(!c.ok){let a=Error((await c.json().catch(()=>({}))).error||"Failed to fetch log");throw a.status=c.status,a}return c.json()},enabled:!!a,placeholderData:a=>a,retry:(a,b)=>404!==b.status&&400!==b.status&&a<3})}function t(a){return(0,e.I)({queryKey:["git",a,"branches"],queryFn:async()=>{if(!a)return null;let b=await fetch(`${i}/git/branches?path=${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to fetch branches");return b.json()},enabled:!!a})}function u(a,b){return(0,e.I)({queryKey:["git",a,"diff",b],queryFn:async()=>{if(!a||!b)return null;let c=await fetch(`${i}/git/diff?path=${encodeURIComponent(a)}&file=${encodeURIComponent(b)}`);if(!c.ok){let a=Error((await c.json().catch(()=>({}))).error||"Failed to fetch diff");throw a.status=c.status,a}return c.json()},enabled:!!a&&!!b,retry:(a,b)=>404!==b.status&&400!==b.status&&a<3})}function v(a,b){return(0,e.I)({queryKey:["git",a,"commit-diff",b],queryFn:async()=>{if(!a||!b)return null;let c=await fetch(`${i}/git/diff?path=${encodeURIComponent(a)}&commit=${encodeURIComponent(b)}`);if(!c.ok){let a=Error((await c.json().catch(()=>({}))).error||"Failed to fetch commit diff");throw a.status=c.status,a}return c.json()},enabled:!!a&&!!b,retry:(a,b)=>404!==b.status&&400!==b.status&&a<3})}function w(a,b,c){return(0,e.I)({queryKey:["git",a,"commit-file-diff",b,c],queryFn:async()=>{if(!a||!b||!c)return null;let d=await fetch(`${i}/git/diff?path=${encodeURIComponent(a)}&commit=${encodeURIComponent(b)}&file=${encodeURIComponent(c)}`);if(!d.ok){let a=Error((await d.json().catch(()=>({}))).error||"Failed to fetch file diff");throw a.status=d.status,a}return d.json()},enabled:!!a&&!!b&&!!c,retry:(a,b)=>404!==b.status&&400!==b.status&&a<3})}function x(a){return(0,e.I)({queryKey:["git",a,"stashes"],queryFn:async()=>{if(!a)return[];let b=await fetch(`${i}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:a,action:"stash-list"})});if(!b.ok)throw Error("Failed to fetch stashes");return(await b.json()).stashes||[]},enabled:!!a})}function y(a,b){return(0,e.I)({queryKey:["git",a,"stash-files",b],queryFn:async()=>{if(!a||null===b)return[];let c=await fetch(`${i}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:a,action:"stash-files",data:{index:b}})});if(!c.ok)throw Error("Failed to fetch stash files");return(await c.json()).files||[]},enabled:!!a&&null!==b})}function z(a,b,c){return(0,e.I)({queryKey:["git",a,"stash-file-diff",b,c],queryFn:async()=>{if(!a||null===b||!c)return{left:"",right:"",diff:""};let d=await fetch(`${i}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:a,action:"stash-file-diff",data:{index:b,file:c}})});if(!d.ok)throw Error("Failed to fetch stash file diff");return d.json()},enabled:!!a&&null!==b&&!!c})}let A={commit:"Commit",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Stage",unstage:"Unstage",checkout:"Checkout","checkout-to-local":"Checkout",branch:"Create Branch","create-tag":"Create Tag","delete-branch":"Delete Branch","delete-remote-branch":"Delete Remote Branch","delete-remote":"Delete Remote","delete-tag":"Delete Tag","delete-remote-tag":"Delete Remote Tag","rename-branch":"Rename Branch","rename-remote-branch":"Rename Remote Branch","rename-remote":"Rename Remote","add-remote":"Add Remote",reset:"Reset",revert:"Revert Commit","cherry-pick":"Cherry Pick","cherry-pick-multiple":"Cherry Pick","cherry-pick-abort":"Cherry Pick",rebase:"Rebase",merge:"Merge","check-merge-conflicts":"Check Merge Conflicts","check-rebase-conflicts":"Check Rebase Conflicts","get-remotes":"Get Remotes","get-remote-branches":"Get Remote Branches","get-tracking-branch":"Get Tracking Branch","get-latest-commit-message":"Get Latest Commit Message","push-to-remote":"Push","pull-from-remote":"Pull",stash:"Stash","stash-apply":"Apply Stash","stash-drop":"Drop Stash","stash-pop":"Pop Stash",reword:"Reword Commit",discard:"Discard Changes","cleanup-lock-file":"Cleanup Lock File"},B=["check-merge-conflicts","check-rebase-conflicts","get-remotes","get-remote-branches","get-tracking-branch","get-latest-commit-message"];async function C(a){let b=await fetch(`${i}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:a,action:"cleanup-lock-file"})});if(!b.ok)throw Error("Failed to cleanup lock file");return b.json()}function D(){let a=(0,f.jE)();return(0,g.n)({mutationFn:async({repoPath:a,action:b,data:c})=>{let d=await fetch(`${i}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:a,action:b,data:c})});if(!d.ok)throw Error((await d.json()).error||"Failed to execute action");return d.json()},onSuccess:(b,c)=>{B.includes(c.action)||a.invalidateQueries({queryKey:["git",c.repoPath]})},onError:(b,c)=>{if(!B.includes(c.action)&&!c.suppressErrorToast){let d=A[c.action]||c.action;b.message.includes("Unable to create")&&b.message.includes(".git/index.lock")?(0,h.tk)(b,{operation:d,fixLabel:"Remove Lock File",onFix:async()=>{await C(c.repoPath),a.invalidateQueries({queryKey:["git",c.repoPath]})}}):(0,h.tk)(b,{operation:d})}}})}},4709:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call Providers() from the server but Providers is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/tangqh/Downloads/projects/trident/src/app/providers.tsx","Providers")},5620:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5547,23))},6487:()=>{},6537:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>k,metadata:()=>j});var d=c(5735),e=c(210),f=c.n(e),g=c(84),h=c.n(g);c(1135);var i=c(4709);let j={title:"Trident",description:"Git repository management tool"};function k({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsx)("head",{children:(0,d.jsx)("link",{rel:"stylesheet",href:"https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css"})}),(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased`,children:(0,d.jsx)(i.Providers,{children:a})})]})}},6576:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23)),Promise.resolve().then(c.t.bind(c,440,23)),Promise.resolve().then(c.t.bind(c,4342,23)),Promise.resolve().then(c.t.bind(c,2265,23)),Promise.resolve().then(c.t.bind(c,5421,23)),Promise.resolve().then(c.t.bind(c,1335,23)),Promise.resolve().then(c.t.bind(c,664,23)),Promise.resolve().then(c.bind(c,4661))},8162:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(8868);let e=async a=>[{type:"image/png",sizes:"256x256",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.png")+"?91e8b75214a43d69"}]},8335:()=>{},8550:(a,b,c)=>{"use strict";c.d(b,{v:()=>e});var d=c(7484);function e(a,b){(0,d.useRef)(b)}},9227:(a,b,c)=>{Promise.resolve().then(c.bind(c,9633))},9633:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>q});var d=c(8249),e=c(7351),f=c(5023),g=c(7484),h=c(8696),i=c(3381);function j(){let{toasts:a}=(0,i.dj)(),[b,c]=(0,g.useState)(!1);return b?(0,d.jsx)("div",{className:"toast toast-bottom toast-end z-50 p-4 gap-2",children:a.map(a=>{let b="alert-info";return"success"===a.type?b="alert-success":"warning"===a.type||"warning"===a.variant?b="alert-warning":("error"===a.type||"destructive"===a.variant)&&(b="alert-error"),(0,d.jsxs)("div",{className:`alert ${b} shadow-lg max-w-md w-auto flex-col items-start gap-1 p-3 text-sm animate-in fade-in slide-in-from-bottom-2 duration-300`,children:[(0,d.jsxs)("div",{className:"w-full",children:[a.title&&(0,d.jsx)("h3",{className:"font-bold",children:a.title}),a.description&&(0,d.jsx)("div",{className:"opacity-90 break-words",children:a.description})]}),a.action&&(0,d.jsx)("div",{className:"mt-2 w-full",children:a.action})]},a.id)})}):null}var k=c(9099),l=c(4626),m=c(4490),n=c(8550);function o(a,b){return new Date(b.lastOpenedAt||0).getTime()-new Date(a.lastOpenedAt||0).getTime()}function p(){let a=(0,k.useRouter)(),{data:b}=(0,l.uG)(),[c,e]=(0,g.useState)(!1),[f,h]=(0,g.useState)(""),[i,j]=(0,g.useState)(0),p=(0,g.useRef)(null),q=(0,g.useMemo)(()=>(b||[]).filter(a=>!!a.lastOpenedAt).sort(o).slice(0,5),[b]),r=(0,g.useMemo)(()=>{let a=f.trim().toLowerCase();return a?q.filter(b=>{let c=(0,m.iu)(b).toLowerCase(),d=b.path.toLowerCase();return c.includes(a)||d.includes(a)}):q},[f,q]),s=(0,g.useCallback)(()=>{e(!1),h(""),j(0)},[]),t=0===r.length?-1:Math.min(i,r.length-1),u=(0,g.useCallback)(b=>{s(),a.push(`/workspace?path=${encodeURIComponent(b)}`)},[s,a]);return((0,n.v)(c,s),c)?(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/40 px-4 py-16",onMouseDown:s,role:"dialog","aria-modal":"true","aria-label":"Command palette",children:(0,d.jsxs)("div",{className:"mx-auto w-full max-w-2xl overflow-hidden rounded-xl border border-base-300 bg-base-100 shadow-2xl",onMouseDown:a=>a.stopPropagation(),children:[(0,d.jsx)("div",{className:"border-b border-base-300 p-3",children:(0,d.jsx)("input",{ref:p,type:"text",value:f,onChange:a=>{h(a.target.value),j(0)},onKeyDown:a=>{if("ArrowDown"===a.key){a.preventDefault(),r.length>0&&j(a=>(a+1)%r.length);return}if("ArrowUp"===a.key){a.preventDefault(),r.length>0&&j(a=>a<=0?r.length-1:a-1);return}if("Enter"===a.key){a.preventDefault();let b=t>=0?r[t]:null;b&&u(b.path)}},placeholder:"Type a command...",className:"input input-ghost w-full text-base focus:outline-none"})}),(0,d.jsxs)("div",{className:"max-h-80 overflow-y-auto py-2",children:[(0,d.jsx)("div",{className:"px-4 pb-2 text-xs font-semibold uppercase tracking-wider opacity-60",children:"Recent repositories"}),0===q.length&&(0,d.jsx)("div",{className:"px-4 py-6 text-sm opacity-60",children:"No recently opened repositories yet."}),q.length>0&&0===r.length&&(0,d.jsx)("div",{className:"px-4 py-6 text-sm opacity-60",children:"No matching repositories."}),r.map((a,b)=>{let c=(0,m.iu)(a);return(0,d.jsxs)("button",{type:"button",className:(0,m.cn)("flex w-full items-center justify-between gap-4 px-4 py-3 text-left",t===b?"bg-base-200":"hover:bg-base-200/70"),onMouseEnter:()=>j(b),onClick:()=>u(a.path),children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"truncate text-sm font-medium",children:c}),(0,d.jsx)("div",{className:"truncate text-xs opacity-65",children:a.path})]}),(0,d.jsx)("span",{className:"text-xs opacity-60",children:"Open"})]},a.path)})]}),(0,d.jsx)("div",{className:"border-t border-base-300 px-4 py-2 text-xs opacity-60",children:"Use ↑ ↓ to navigate, Enter to open, Esc to close."})]})}):null}function q({children:a}){let[b]=(0,g.useState)(()=>new e.E);return(0,d.jsx)(f.Ht,{client:b,children:(0,d.jsxs)(h.N,{attribute:"data-theme",defaultTheme:"system",enableSystem:!0,children:[a,(0,d.jsx)(p,{}),(0,d.jsx)(j,{})]})})}},9728:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5547,23)),Promise.resolve().then(c.t.bind(c,5098,23)),Promise.resolve().then(c.t.bind(c,7644,23)),Promise.resolve().then(c.t.bind(c,3859,23)),Promise.resolve().then(c.t.bind(c,8099,23)),Promise.resolve().then(c.t.bind(c,6237,23)),Promise.resolve().then(c.t.bind(c,8562,23)),Promise.resolve().then(c.t.bind(c,6675,23))}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-7dec27dc3bfe207a.js","static/chunks/4bd1b696-096d35a2bd1da3af.js","static/chunks/794-37dad9bbc14b04b8.js","static/chunks/main-app-221e1b945693a142.js"],rootMainFilesTree:{},pages:{"/_app":[]}},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js","/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-7dec27dc3bfe207a.js","static/chunks/4bd1b696-096d35a2bd1da3af.js","static/chunks/794-37dad9bbc14b04b8.js","static/chunks/main-app-9697367bdd1cd307.js"],rootMainFilesTree:{},pages:{"/_app":[]}},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js","/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
@@ -1 +1 @@
1
- self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{"/Users/tangqh/Downloads/projects/.viba/trident/20260219-1449-18950ba2/src/app/layout":["static/media/4cf2300e9c8272f7-s.p.woff2","static/media/93f479601ee12b01-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}';
1
+ self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{"/Users/tangqh/Downloads/projects/trident/src/app/layout":["static/media/4cf2300e9c8272f7-s.p.woff2","static/media/93f479601ee12b01-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}';
@@ -1 +1 @@
1
- {"pages":{},"app":{"/Users/tangqh/Downloads/projects/.viba/trident/20260219-1449-18950ba2/src/app/layout":["static/media/4cf2300e9c8272f7-s.p.woff2","static/media/93f479601ee12b01-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}
1
+ {"pages":{},"app":{"/Users/tangqh/Downloads/projects/trident/src/app/layout":["static/media/4cf2300e9c8272f7-s.p.woff2","static/media/93f479601ee12b01-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}
@@ -1 +1 @@
1
- <!DOCTYPE html><!--i5Fy6fyWcq44ejS8h_y1c--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/de70bee13400563f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c56c0e57397a3a60.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-7dec27dc3bfe207a.js"/><script src="/_next/static/chunks/4bd1b696-096d35a2bd1da3af.js" async=""></script><script src="/_next/static/chunks/794-37dad9bbc14b04b8.js" async=""></script><script src="/_next/static/chunks/main-app-221e1b945693a142.js" async=""></script><script src="/_next/static/chunks/176-b068120641913226.js" async=""></script><script src="/_next/static/chunks/785-e6d755147ff87934.js" async=""></script><script src="/_next/static/chunks/200-3664e65687e716a2.js" async=""></script><script src="/_next/static/chunks/26-d93e82c9c09ff972.js" async=""></script><script src="/_next/static/chunks/app/layout-a06241c385e50ae0.js" async=""></script><link rel="preload" href="https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Trident</title><meta name="description" content="Git repository management tool"/><link rel="icon" href="/icon.png?91e8b75214a43d69" type="image/png" sizes="256x256"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("data-theme","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-7dec27dc3bfe207a.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2246,[\"176\",\"static/chunks/176-b068120641913226.js\",\"785\",\"static/chunks/785-e6d755147ff87934.js\",\"200\",\"static/chunks/200-3664e65687e716a2.js\",\"26\",\"static/chunks/26-d93e82c9c09ff972.js\",\"558\",\"static/chunks/app/layout-a06241c385e50ae0.js\"],\"Providers\"]\n3:I[7121,[],\"\"]\n4:I[4581,[],\"\"]\n5:I[484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[484,[],\"ViewportBoundary\"]\na:I[484,[],\"MetadataBoundary\"]\nc:I[7123,[],\"\"]\n:HL[\"/_next/static/media/4cf2300e9c8272f7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/de70bee13400563f.css\",\"style\"]\n:HL[\"/_next/static/css/c56c0e57397a3a60.css\",\"style\"]\n:HL[\"https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"i5Fy6fyWcq44ejS8h_y1c\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/de70bee13400563f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c56c0e57397a3a60.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css\"}]}],[\"$\",\"body\",null,{\"className\":\"__variable_188709 __variable_9a8899 antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[6869,[],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Trident\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Git repository management tool\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.png?91e8b75214a43d69\",\"type\":\"image/png\",\"sizes\":\"256x256\"}],[\"$\",\"$Ld\",\"3\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--rozD2mKp_fnaizXZhYJKN--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/de70bee13400563f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/aba7f1cbfd108b5e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-7dec27dc3bfe207a.js"/><script src="/_next/static/chunks/4bd1b696-096d35a2bd1da3af.js" async=""></script><script src="/_next/static/chunks/794-37dad9bbc14b04b8.js" async=""></script><script src="/_next/static/chunks/main-app-9697367bdd1cd307.js" async=""></script><script src="/_next/static/chunks/176-b068120641913226.js" async=""></script><script src="/_next/static/chunks/785-e6d755147ff87934.js" async=""></script><script src="/_next/static/chunks/200-3664e65687e716a2.js" async=""></script><script src="/_next/static/chunks/26-0e6386c43f055f59.js" async=""></script><script src="/_next/static/chunks/app/layout-dda593914e513c38.js" async=""></script><link rel="preload" href="https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Trident</title><meta name="description" content="Git repository management tool"/><link rel="icon" href="/icon.png?91e8b75214a43d69" type="image/png" sizes="256x256"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("data-theme","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-7dec27dc3bfe207a.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2246,[\"176\",\"static/chunks/176-b068120641913226.js\",\"785\",\"static/chunks/785-e6d755147ff87934.js\",\"200\",\"static/chunks/200-3664e65687e716a2.js\",\"26\",\"static/chunks/26-0e6386c43f055f59.js\",\"558\",\"static/chunks/app/layout-dda593914e513c38.js\"],\"Providers\"]\n3:I[7121,[],\"\"]\n4:I[4581,[],\"\"]\n5:I[484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[484,[],\"ViewportBoundary\"]\na:I[484,[],\"MetadataBoundary\"]\nc:I[7123,[],\"\"]\n:HL[\"/_next/static/media/4cf2300e9c8272f7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/de70bee13400563f.css\",\"style\"]\n:HL[\"/_next/static/css/aba7f1cbfd108b5e.css\",\"style\"]\n:HL[\"https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"rozD2mKp-fnaizXZhYJKN\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/de70bee13400563f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/aba7f1cbfd108b5e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css\"}]}],[\"$\",\"body\",null,{\"className\":\"__variable_188709 __variable_9a8899 antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[6869,[],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Trident\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Git repository management tool\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.png?91e8b75214a43d69\",\"type\":\"image/png\",\"sizes\":\"256x256\"}],[\"$\",\"$Ld\",\"3\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--i5Fy6fyWcq44ejS8h_y1c--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-7dec27dc3bfe207a.js"/><script src="/_next/static/chunks/4bd1b696-096d35a2bd1da3af.js" async=""></script><script src="/_next/static/chunks/794-37dad9bbc14b04b8.js" async=""></script><script src="/_next/static/chunks/main-app-221e1b945693a142.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-7dec27dc3bfe207a.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7121,[],\"\"]\n3:I[4581,[],\"\"]\n4:I[484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[484,[],\"ViewportBoundary\"]\n9:I[484,[],\"MetadataBoundary\"]\nb:I[7123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"i5Fy6fyWcq44ejS8h_y1c\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--rozD2mKp_fnaizXZhYJKN--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-7dec27dc3bfe207a.js"/><script src="/_next/static/chunks/4bd1b696-096d35a2bd1da3af.js" async=""></script><script src="/_next/static/chunks/794-37dad9bbc14b04b8.js" async=""></script><script src="/_next/static/chunks/main-app-9697367bdd1cd307.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-7dec27dc3bfe207a.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7121,[],\"\"]\n3:I[4581,[],\"\"]\n4:I[484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[484,[],\"ViewportBoundary\"]\n9:I[484,[],\"MetadataBoundary\"]\nb:I[7123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"rozD2mKp-fnaizXZhYJKN\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"Hb67mXpq4jn/jMlTkDlBvhnv2hc9oUdbQ/KvkBjCnWQ="}
1
+ {"node":{},"edge":{},"encryptionKey":"bPq/45oy+OQct/nVtsZJaTAyB0niixHcXKZi7G0WLBM="}
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[131],{302:(e,t,s)=>{s.d(t,{v:()=>i});var a=s(2115);let l=[],n=0,r=!1;function o(e){if("Escape"!==e.key)return;let t=l[l.length-1];t&&(e.preventDefault(),t.onEscape())}function i(e,t){let s=(0,a.useRef)(t);(0,a.useEffect)(()=>{s.current=t},[t]),(0,a.useEffect)(()=>{if(!e)return;let t=++n;return l.push({id:t,onEscape:()=>s.current()}),!r&&"u">typeof document&&(document.addEventListener("keydown",o),r=!0),()=>{let e=l.findIndex(e=>e.id===t);e>=0&&l.splice(e,1),r&&"u">typeof document&&!(l.length>0)&&(document.removeEventListener("keydown",o),r=!1)}},[e])}},460:(e,t,s)=>{s.d(t,{D:()=>c,N:()=>d});var a=s(2115),l=(e,t,s,a,l,n,r,o)=>{let i=document.documentElement,c=["light","dark"];function d(t){var s;(Array.isArray(e)?e:[e]).forEach(e=>{let s="class"===e,a=s&&n?l.map(e=>n[e]||e):l;s?(i.classList.remove(...a),i.classList.add(n&&n[t]?n[t]:t)):i.setAttribute(e,t)}),s=t,o&&c.includes(s)&&(i.style.colorScheme=s)}if(a)d(a);else try{let e=localStorage.getItem(t)||s,a=r&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(a)}catch(e){}},n=["light","dark"],r="(prefers-color-scheme: dark)",o=a.createContext(void 0),i={setTheme:e=>{},themes:[]},c=()=>{var e;return null!=(e=a.useContext(o))?e:i},d=e=>a.useContext(o)?a.createElement(a.Fragment,null,e.children):a.createElement(u,{...e}),m=["light","dark"],u=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:s=!0,enableColorScheme:l=!0,storageKey:i="theme",themes:c=m,defaultTheme:d=s?"system":"light",attribute:u="data-theme",value:b,children:y,nonce:g,scriptProps:v})=>{let[j,N]=a.useState(()=>x(i,d)),[k,w]=a.useState(()=>"system"===j?f():j),C=b?Object.values(b):c,S=a.useCallback(e=>{let a=e;if(!a)return;"system"===e&&s&&(a=f());let r=b?b[a]:a,o=t?p(g):null,i=document.documentElement,c=e=>{"class"===e?(i.classList.remove(...C),r&&i.classList.add(r)):e.startsWith("data-")&&(r?i.setAttribute(e,r):i.removeAttribute(e))};if(Array.isArray(u)?u.forEach(c):c(u),l){let e=n.includes(d)?d:null,t=n.includes(a)?a:e;i.style.colorScheme=t}null==o||o()},[g]),E=a.useCallback(e=>{let t="function"==typeof e?e(j):e;N(t);try{localStorage.setItem(i,t)}catch(e){}},[j]),T=a.useCallback(t=>{w(f(t)),"system"===j&&s&&!e&&S("system")},[j,e]);a.useEffect(()=>{let e=window.matchMedia(r);return e.addListener(T),T(e),()=>e.removeListener(T)},[T]),a.useEffect(()=>{let e=e=>{e.key===i&&(e.newValue?N(e.newValue):E(d))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[E]),a.useEffect(()=>{S(null!=e?e:j)},[e,j]);let L=a.useMemo(()=>({theme:j,setTheme:E,forcedTheme:e,resolvedTheme:"system"===j?k:j,themes:s?[...c,"system"]:c,systemTheme:s?k:void 0}),[j,E,e,k,s,c]);return a.createElement(o.Provider,{value:L},a.createElement(h,{forcedTheme:e,storageKey:i,attribute:u,enableSystem:s,enableColorScheme:l,defaultTheme:d,value:b,themes:c,nonce:g,scriptProps:v}),y)},h=a.memo(({forcedTheme:e,storageKey:t,attribute:s,enableSystem:n,enableColorScheme:r,defaultTheme:o,value:i,themes:c,nonce:d,scriptProps:m})=>{let u=JSON.stringify([s,t,o,e,c,i,n,r]).slice(1,-1);return a.createElement("script",{...m,suppressHydrationWarning:!0,nonce:"",dangerouslySetInnerHTML:{__html:`(${l.toString()})(${u})`}})}),x=(e,t)=>{let s;try{s=localStorage.getItem(e)||void 0}catch(e){}return s||t},p=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},f=e=>(e||(e=window.matchMedia(r)),e.matches?"dark":"light")},4131:(e,t,s)=>{s.d(t,{g:()=>i});var a=s(5155),l=s(2115),n=s(460),r=s(6848),o=s(302);function i({open:e,onOpenChange:t,onSettingsChange:s}){let{theme:i,setTheme:c}=(0,n.D)(),[d,m]=(0,l.useState)(!1),[u,h]=(0,l.useState)(null),[x,p]=(0,l.useState)(!1),[f,b]=(0,l.useState)(!1),[y,g]=(0,l.useState)(!1),[v,j]=(0,l.useState)("");(0,l.useEffect)(()=>{m(!0)},[]);let N=async()=>{p(!0);try{let e=await fetch("/api/settings");if(e.ok){let t=await e.json();h(t),j(t.defaultRootFolder||"")}}catch(e){console.error("Failed to load settings:",e)}finally{p(!1)}};(0,l.useEffect)(()=>{e&&N()},[e]),(0,o.v)(e,()=>t(!1));let k=async()=>{b(!0);try{let e=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultRootFolder:v.trim()||null})});if(e.ok){let a=await e.json();h(a),s?.(a),t(!1)}}catch(e){console.error("Failed to save settings:",e)}finally{b(!1)}};return e?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Settings"}),(0,a.jsx)("p",{className:"py-4 opacity-70",children:"Configure your application preferences."}),x?(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsx)("span",{className:"loading loading-spinner loading-md"})}):(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"form-control w-full",children:[(0,a.jsx)("label",{className:"label",children:(0,a.jsx)("span",{className:"label-text",children:"Color Theme"})}),(0,a.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"Choose your preferred color theme for the application."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("button",{className:`btn flex-1 ${"system"===i?"btn-primary":""}`,onClick:()=>c("system"),disabled:!d,children:[(0,a.jsx)("i",{className:"iconoir-computer text-[20px] mr-2","aria-hidden":"true"}),"System"]}),(0,a.jsxs)("button",{className:`btn flex-1 ${"light"===i?"btn-primary":""}`,onClick:()=>c("light"),disabled:!d,children:[(0,a.jsx)("i",{className:"iconoir-sun-light text-[20px] mr-2","aria-hidden":"true"}),"Light"]}),(0,a.jsxs)("button",{className:`btn flex-1 ${"dark"===i?"btn-primary":""}`,onClick:()=>c("dark"),disabled:!d,children:[(0,a.jsx)("i",{className:"iconoir-moon-sat text-[20px] mr-2","aria-hidden":"true"}),"Dark"]})]})]}),(0,a.jsxs)("div",{className:"form-control w-full",children:[(0,a.jsx)("label",{className:"label",children:(0,a.jsx)("span",{className:"label-text",children:"Default Root Folder"})}),(0,a.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"The starting folder when browsing for new repositories. Leave empty to use your home folder."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("input",{type:"text",placeholder:u?.resolvedDefaultFolder||"User home folder",className:"input input-bordered w-full font-mono text-sm",value:v,onChange:e=>j(e.target.value),autoFocus:!0}),(0,a.jsx)("button",{className:"btn btn-square",onClick:()=>g(!0),title:"Browse folders",children:(0,a.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"})})]}),v&&(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)("button",{type:"button",className:"link link-hover text-primary text-xs",onClick:()=>{j("")},children:"Reset to default (home folder)"})})]})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>t(!1),children:"Close"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:k,disabled:f||x,children:[f&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Save Folder Settings"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>t(!1),children:"close"})})]}),(0,a.jsx)(r.K,{open:y,onOpenChange:g,onSelect:e=>{j(e)},initialPath:v||u?.resolvedDefaultFolder,title:"Select default root folder"})]}):null}},6848:(e,t,s)=>{s.d(t,{K:()=>o});var a=s(5155),l=s(2115),n=s(8599),r=s(302);function o({open:e,onOpenChange:t,onSelect:s,initialPath:o,title:i="Select Repository"}){let[c,d]=(0,l.useState)(""),[m,u]=(0,l.useState)(null),[h,x]=(0,l.useState)(!1),[p,f]=(0,l.useState)(!1),b=async e=>{x(!0);try{let t=e?`/api/fs?path=${encodeURIComponent(e)}`:"/api/fs",s=await fetch(t),a=await s.json();s.ok?(u(a),d(a.path)):console.error(a.error)}catch(e){console.error(e)}finally{x(!1)}};(0,l.useEffect)(()=>{e&&!p&&(b(o),f(!0)),e||f(!1)},[e,o]),(0,r.v)(e,()=>t(!1));let y=e=>{b(e)};return e?(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box w-11/12 max-w-2xl h-[80vh] flex flex-col p-0 overflow-hidden bg-base-100",children:[(0,a.jsxs)("div",{className:"p-4 border-b border-base-300 flex justify-between items-center bg-base-200/50",children:[(0,a.jsxs)("div",{className:"overflow-hidden",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:i}),(0,a.jsx)("div",{className:"text-xs opacity-70 font-mono truncate pt-1",title:c,children:c||"Loading..."})]}),(0,a.jsx)("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:()=>t(!1),children:(0,a.jsx)("i",{className:"iconoir-xmark text-[16px]","aria-hidden":"true"})})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-hidden relative bg-base-100",children:[h&&(0,a.jsx)("div",{className:"absolute inset-0 bg-base-100/50 flex items-center justify-center z-10",children:(0,a.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"})}),(0,a.jsx)("div",{className:"h-full overflow-y-auto",children:(0,a.jsxs)("div",{className:"divide-y divide-base-200",children:[m?.parent&&(0,a.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 hover:bg-base-200 cursor-pointer opacity-70 transition-colors",onClick:()=>y(m.parent),children:[(0,a.jsx)("i",{className:"iconoir-u-turn-arrow-left text-[20px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:"text-sm",children:".."})]}),m?.folders.map(e=>(0,a.jsxs)("div",{className:(0,n.cn)("flex items-center justify-between px-4 py-3 hover:bg-base-200 cursor-pointer group transition-colors",e.name.startsWith(".")&&"opacity-60"),onClick:()=>y(e.path),children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 truncate",children:[e.isRepo?(0,a.jsx)("i",{className:"iconoir-bookmark text-[20px]","aria-hidden":"true"}):(0,a.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:(0,n.cn)("text-sm font-mono",e.isRepo&&"font-medium"),children:e.name})]}),e.isRepo&&(0,a.jsx)("button",{className:"btn btn-xs btn-outline",onClick:a=>{a.stopPropagation(),s(e.path),t(!1)},children:"Select"})]},e.path)),m?.folders.length===0&&(0,a.jsx)("div",{className:"p-8 text-center opacity-70 text-sm",children:"No folders found"})]})})]}),(0,a.jsxs)("div",{className:"p-4 border-t border-base-300 flex items-center justify-between bg-base-200/30",children:[(0,a.jsx)("div",{className:"text-xs opacity-70",children:"Click folder to navigate."}),(0,a.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>{s(c),t(!1)},children:"Select Current Folder"})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>t(!1),children:"close"})})]}):null}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[131],{302:(e,t,s)=>{s.d(t,{v:()=>i});var a=s(2115);let l=[],n=0,r=!1;function o(e){if("Escape"!==e.key)return;let t=l[l.length-1];t&&(e.preventDefault(),t.onEscape())}function i(e,t){let s=(0,a.useRef)(t);(0,a.useEffect)(()=>{s.current=t},[t]),(0,a.useEffect)(()=>{if(!e)return;let t=++n;return l.push({id:t,onEscape:()=>s.current()}),!r&&"u">typeof document&&(document.addEventListener("keydown",o),r=!0),()=>{let e=l.findIndex(e=>e.id===t);e>=0&&l.splice(e,1),r&&"u">typeof document&&!(l.length>0)&&(document.removeEventListener("keydown",o),r=!1)}},[e])}},460:(e,t,s)=>{s.d(t,{D:()=>c,N:()=>d});var a=s(2115),l=(e,t,s,a,l,n,r,o)=>{let i=document.documentElement,c=["light","dark"];function d(t){var s;(Array.isArray(e)?e:[e]).forEach(e=>{let s="class"===e,a=s&&n?l.map(e=>n[e]||e):l;s?(i.classList.remove(...a),i.classList.add(n&&n[t]?n[t]:t)):i.setAttribute(e,t)}),s=t,o&&c.includes(s)&&(i.style.colorScheme=s)}if(a)d(a);else try{let e=localStorage.getItem(t)||s,a=r&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(a)}catch(e){}},n=["light","dark"],r="(prefers-color-scheme: dark)",o=a.createContext(void 0),i={setTheme:e=>{},themes:[]},c=()=>{var e;return null!=(e=a.useContext(o))?e:i},d=e=>a.useContext(o)?a.createElement(a.Fragment,null,e.children):a.createElement(u,{...e}),m=["light","dark"],u=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:s=!0,enableColorScheme:l=!0,storageKey:i="theme",themes:c=m,defaultTheme:d=s?"system":"light",attribute:u="data-theme",value:b,children:y,nonce:g,scriptProps:j})=>{let[v,N]=a.useState(()=>p(i,d)),[k,w]=a.useState(()=>"system"===v?x():v),C=b?Object.values(b):c,S=a.useCallback(e=>{let a=e;if(!a)return;"system"===e&&s&&(a=x());let r=b?b[a]:a,o=t?f(g):null,i=document.documentElement,c=e=>{"class"===e?(i.classList.remove(...C),r&&i.classList.add(r)):e.startsWith("data-")&&(r?i.setAttribute(e,r):i.removeAttribute(e))};if(Array.isArray(u)?u.forEach(c):c(u),l){let e=n.includes(d)?d:null,t=n.includes(a)?a:e;i.style.colorScheme=t}null==o||o()},[g]),E=a.useCallback(e=>{let t="function"==typeof e?e(v):e;N(t);try{localStorage.setItem(i,t)}catch(e){}},[v]),T=a.useCallback(t=>{w(x(t)),"system"===v&&s&&!e&&S("system")},[v,e]);a.useEffect(()=>{let e=window.matchMedia(r);return e.addListener(T),T(e),()=>e.removeListener(T)},[T]),a.useEffect(()=>{let e=e=>{e.key===i&&(e.newValue?N(e.newValue):E(d))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[E]),a.useEffect(()=>{S(null!=e?e:v)},[e,v]);let F=a.useMemo(()=>({theme:v,setTheme:E,forcedTheme:e,resolvedTheme:"system"===v?k:v,themes:s?[...c,"system"]:c,systemTheme:s?k:void 0}),[v,E,e,k,s,c]);return a.createElement(o.Provider,{value:F},a.createElement(h,{forcedTheme:e,storageKey:i,attribute:u,enableSystem:s,enableColorScheme:l,defaultTheme:d,value:b,themes:c,nonce:g,scriptProps:j}),y)},h=a.memo(({forcedTheme:e,storageKey:t,attribute:s,enableSystem:n,enableColorScheme:r,defaultTheme:o,value:i,themes:c,nonce:d,scriptProps:m})=>{let u=JSON.stringify([s,t,o,e,c,i,n,r]).slice(1,-1);return a.createElement("script",{...m,suppressHydrationWarning:!0,nonce:"",dangerouslySetInnerHTML:{__html:`(${l.toString()})(${u})`}})}),p=(e,t)=>{let s;try{s=localStorage.getItem(e)||void 0}catch(e){}return s||t},f=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},x=e=>(e||(e=window.matchMedia(r)),e.matches?"dark":"light")},4131:(e,t,s)=>{s.d(t,{g:()=>i});var a=s(5155),l=s(2115),n=s(460),r=s(6848),o=s(302);function i({open:e,onOpenChange:t,onSettingsChange:s}){let{theme:i,setTheme:c}=(0,n.D)(),[d,m]=(0,l.useState)(!1),[u,h]=(0,l.useState)(null),[p,f]=(0,l.useState)(!1),[x,b]=(0,l.useState)(!1),[y,g]=(0,l.useState)(!1),[j,v]=(0,l.useState)("");(0,l.useEffect)(()=>{m(!0)},[]);let N=async()=>{f(!0);try{let e=await fetch("/api/settings");if(e.ok){let t=await e.json();h(t),v(t.defaultRootFolder||"")}}catch(e){console.error("Failed to load settings:",e)}finally{f(!1)}};(0,l.useEffect)(()=>{e&&N()},[e]),(0,o.v)(e,()=>t(!1));let k=async()=>{b(!0);try{let e=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultRootFolder:j.trim()||null})});if(e.ok){let a=await e.json();h(a),s?.(a),t(!1)}}catch(e){console.error("Failed to save settings:",e)}finally{b(!1)}};return e?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Settings"}),(0,a.jsx)("p",{className:"py-4 opacity-70",children:"Configure your application preferences."}),p?(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsx)("span",{className:"loading loading-spinner loading-md"})}):(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"form-control w-full",children:[(0,a.jsx)("label",{className:"label",children:(0,a.jsx)("span",{className:"label-text",children:"Color Theme"})}),(0,a.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"Choose your preferred color theme for the application."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("button",{className:`btn flex-1 ${"system"===i?"btn-primary":""}`,onClick:()=>c("system"),disabled:!d,children:[(0,a.jsx)("i",{className:"iconoir-computer text-[20px] mr-2","aria-hidden":"true"}),"System"]}),(0,a.jsxs)("button",{className:`btn flex-1 ${"light"===i?"btn-primary":""}`,onClick:()=>c("light"),disabled:!d,children:[(0,a.jsx)("i",{className:"iconoir-sun-light text-[20px] mr-2","aria-hidden":"true"}),"Light"]}),(0,a.jsxs)("button",{className:`btn flex-1 ${"dark"===i?"btn-primary":""}`,onClick:()=>c("dark"),disabled:!d,children:[(0,a.jsx)("i",{className:"iconoir-moon-sat text-[20px] mr-2","aria-hidden":"true"}),"Dark"]})]})]}),(0,a.jsxs)("div",{className:"form-control w-full",children:[(0,a.jsx)("label",{className:"label",children:(0,a.jsx)("span",{className:"label-text",children:"Default Root Folder"})}),(0,a.jsx)("div",{className:"text-xs opacity-70 mb-2",children:"The starting folder when browsing for new repositories. Leave empty to use your home folder."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("input",{type:"text",placeholder:u?.resolvedDefaultFolder||"User home folder",className:"input input-bordered w-full font-mono text-sm",value:j,onChange:e=>v(e.target.value),autoFocus:!0}),(0,a.jsx)("button",{className:"btn btn-square",onClick:()=>g(!0),title:"Browse folders",children:(0,a.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"})})]}),j&&(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)("button",{type:"button",className:"link link-hover text-primary text-xs",onClick:()=>{v("")},children:"Reset to default (home folder)"})})]})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>t(!1),children:"Close"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:k,disabled:x||p,children:[x&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Save Folder Settings"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>t(!1),children:"close"})})]}),(0,a.jsx)(r.K,{open:y,onOpenChange:g,onSelect:e=>{v(e)},initialPath:j||u?.resolvedDefaultFolder,title:"Select default root folder"})]}):null}},6848:(e,t,s)=>{s.d(t,{K:()=>i});var a=s(5155),l=s(2115),n=s(8599),r=s(302),o=s(6695);function i({open:e,onOpenChange:t,onSelect:s,initialPath:i,title:c="Select Repository",selectionMode:d="repository"}){let[m,u]=(0,l.useState)(""),[h,p]=(0,l.useState)(null),[f,x]=(0,l.useState)(!1),[b,y]=(0,l.useState)(!1),[g,j]=(0,l.useState)(!1),v=async e=>{x(!0);try{let t=e?`/api/fs?path=${encodeURIComponent(e)}`:"/api/fs",s=await fetch(t),a=await s.json();s.ok?(p(a),u(a.path)):console.error(a.error)}catch(e){console.error(e)}finally{x(!1)}};(0,l.useEffect)(()=>{e&&!b&&(v(i),y(!0)),e||y(!1)},[e,i]),(0,r.v)(e,()=>t(!1));let N=e=>{v(e)},k=async()=>{if("folder"!==d||!m||g)return;let e=window.prompt("New folder name"),t=e?.trim()||"";if(t){j(!0);try{let e=await fetch("/api/fs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:m,name:t})}),s=await e.json().catch(()=>({}));if(!e.ok)throw Error(s.error||"Failed to create folder");await v(m),(0,o.oR)({type:"success",title:"Folder created",description:`Created "${t}" in ${m}`})}catch(t){let e=t instanceof Error?t.message:"Unknown error";(0,o.oR)({type:"error",title:"Failed to create folder",description:e})}finally{j(!1)}}};return e?(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box w-11/12 max-w-2xl h-[80vh] flex flex-col p-0 overflow-hidden bg-base-100",children:[(0,a.jsxs)("div",{className:"p-4 border-b border-base-300 flex justify-between items-center bg-base-200/50",children:[(0,a.jsxs)("div",{className:"overflow-hidden",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:c}),(0,a.jsx)("div",{className:"text-xs opacity-70 font-mono truncate pt-1",title:m,children:m||"Loading..."})]}),(0,a.jsx)("div",{className:"flex items-center gap-2",children:(0,a.jsx)("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:()=>t(!1),children:(0,a.jsx)("i",{className:"iconoir-xmark text-[16px]","aria-hidden":"true"})})})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-hidden relative bg-base-100",children:[f&&(0,a.jsx)("div",{className:"absolute inset-0 bg-base-100/50 flex items-center justify-center z-10",children:(0,a.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"})}),(0,a.jsx)("div",{className:"h-full overflow-y-auto",children:(0,a.jsxs)("div",{className:"divide-y divide-base-200",children:[h?.parent&&(0,a.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 hover:bg-base-200 cursor-pointer opacity-70 transition-colors",onClick:()=>N(h.parent),children:[(0,a.jsx)("i",{className:"iconoir-u-turn-arrow-left text-[20px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:"text-sm",children:".."})]}),h?.folders.map(e=>{let l="folder"===d||e.isRepo;return(0,a.jsxs)("div",{className:(0,n.cn)("flex items-center justify-between px-4 py-3 hover:bg-base-200 cursor-pointer group transition-colors",e.name.startsWith(".")&&"opacity-60"),onClick:()=>N(e.path),children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 truncate",children:[e.isRepo?(0,a.jsx)("i",{className:"iconoir-bookmark text-[20px]","aria-hidden":"true"}):(0,a.jsx)("i",{className:"iconoir-folder text-[20px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:(0,n.cn)("text-sm font-mono",e.isRepo&&"font-medium"),children:e.name})]}),l&&(0,a.jsx)("button",{className:"btn btn-xs btn-outline",onClick:a=>{a.stopPropagation(),s(e.path),t(!1)},children:"folder"===d?"Use Folder":"Select"})]},e.path)}),h?.folders.length===0&&(0,a.jsx)("div",{className:"p-8 text-center opacity-70 text-sm",children:"No folders found"})]})})]}),(0,a.jsxs)("div",{className:"p-4 border-t border-base-300 flex items-center justify-between bg-base-200/30",children:[(0,a.jsx)("div",{className:"text-xs opacity-70",children:"folder"===d?"Click folder to navigate or select it.":"Click folder to navigate."}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:["folder"===d&&(0,a.jsx)("button",{className:"btn btn-sm btn-outline",onClick:k,disabled:g||f||!m,children:g?(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Creating..."]}):"New Folder"}),(0,a.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>{s(m),t(!1)},children:"folder"===d?"Use Current Folder":"Select Current Folder"})]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>t(!1),children:"close"})})]}):null}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26],{696:(e,t,r)=>{r.d(t,{F3:()=>d,GK:()=>p,Jy:()=>S,Lp:()=>m,Ud:()=>T,X0:()=>y,Y5:()=>u,_6:()=>w,_X:()=>b,a3:()=>q,cT:()=>v,en:()=>g,fr:()=>h,gg:()=>j,st:()=>x,t0:()=>l,uG:()=>f,xV:()=>k});var n=r(2115),a=r(4109),s=r(5625),o=r(8934),i=r(6695);let c="/api";function l(){return(0,a.I)({queryKey:["settings"],queryFn:async()=>{let e=await fetch(`${c}/settings`);if(!e.ok)throw Error("Failed to fetch settings");return e.json()}})}function u(){let e=(0,s.jE)();return(0,o.n)({mutationFn:async e=>{let t=await fetch(`${c}/settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error("Failed to update settings");return t.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["settings"]})}})}function f(){return(0,a.I)({queryKey:["repos"],queryFn:async()=>{let e=await fetch(`${c}/repos`);if(!e.ok)throw Error("Failed to fetch repositories");return e.json()}})}function p(e){let{data:t}=f();return(0,n.useMemo)(()=>t?.find(t=>t.path===e)||null,[t,e])}function d(){let e=(0,s.jE)();return(0,o.n)({mutationFn:async({path:e,name:t})=>{let r=await fetch(`${c}/repos`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,name:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||"Failed to add repository");return r.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["repos"]})}})}function h(){let e=(0,s.jE)();return(0,o.n)({mutationFn:async e=>{let t=await fetch(`${c}/repos/clone`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r.error||"Failed to clone repository");return r},onSuccess:()=>{e.invalidateQueries({queryKey:["repos"]})}})}function m(){let e=(0,s.jE)();return(0,o.n)({mutationFn:async({path:e,updates:t})=>{let r=await fetch(`${c}/repos`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,updates:t})});if(!r.ok)throw Error(await r.text());return r.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["repos"]})}})}function y(){let e=(0,s.jE)();return(0,o.n)({mutationFn:async({path:e,deleteLocalFolder:t=!1})=>{let r=await fetch(`${c}/repos`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,deleteLocalFolder:t})});if(!r.ok)throw Error(await r.text());return r.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["repos"]})}})}function g(e){return(0,a.I)({queryKey:["git",e,"status"],queryFn:async()=>{if(!e)return null;let t=await fetch(`${c}/git/status?path=${encodeURIComponent(e)}`);if(!t.ok){let e=Error((await t.json().catch(()=>({}))).error||"Failed to fetch status");throw e.status=t.status,e}return t.json()},enabled:!!e,refetchOnWindowFocus:!0,refetchOnReconnect:!0,retry:(e,t)=>404!==t.status&&400!==t.status&&e<3})}function b(e,t=50){return(0,a.I)({queryKey:["git",e,"log",t],queryFn:async()=>{if(!e)return null;let r=await fetch(`${c}/git/log?path=${encodeURIComponent(e)}&limit=${t}`);if(!r.ok){let e=Error((await r.json().catch(()=>({}))).error||"Failed to fetch log");throw e.status=r.status,e}return r.json()},enabled:!!e,placeholderData:e=>e,retry:(e,t)=>404!==t.status&&400!==t.status&&e<3})}function w(e){return(0,a.I)({queryKey:["git",e,"branches"],queryFn:async()=>{if(!e)return null;let t=await fetch(`${c}/git/branches?path=${encodeURIComponent(e)}`);if(!t.ok)throw Error("Failed to fetch branches");return t.json()},enabled:!!e})}function k(e,t){return(0,a.I)({queryKey:["git",e,"diff",t],queryFn:async()=>{if(!e||!t)return null;let r=await fetch(`${c}/git/diff?path=${encodeURIComponent(e)}&file=${encodeURIComponent(t)}`);if(!r.ok){let e=Error((await r.json().catch(()=>({}))).error||"Failed to fetch diff");throw e.status=r.status,e}return r.json()},enabled:!!e&&!!t,retry:(e,t)=>404!==t.status&&400!==t.status&&e<3})}function j(e,t){return(0,a.I)({queryKey:["git",e,"commit-diff",t],queryFn:async()=>{if(!e||!t)return null;let r=await fetch(`${c}/git/diff?path=${encodeURIComponent(e)}&commit=${encodeURIComponent(t)}`);if(!r.ok){let e=Error((await r.json().catch(()=>({}))).error||"Failed to fetch commit diff");throw e.status=r.status,e}return r.json()},enabled:!!e&&!!t,retry:(e,t)=>404!==t.status&&400!==t.status&&e<3})}function x(e,t,r){return(0,a.I)({queryKey:["git",e,"commit-file-diff",t,r],queryFn:async()=>{if(!e||!t||!r)return null;let n=await fetch(`${c}/git/diff?path=${encodeURIComponent(e)}&commit=${encodeURIComponent(t)}&file=${encodeURIComponent(r)}`);if(!n.ok){let e=Error((await n.json().catch(()=>({}))).error||"Failed to fetch file diff");throw e.status=n.status,e}return n.json()},enabled:!!e&&!!t&&!!r,retry:(e,t)=>404!==t.status&&400!==t.status&&e<3})}function S(e){return(0,a.I)({queryKey:["git",e,"stashes"],queryFn:async()=>{if(!e)return[];let t=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:e,action:"stash-list"})});if(!t.ok)throw Error("Failed to fetch stashes");return(await t.json()).stashes||[]},enabled:!!e})}function v(e,t){return(0,a.I)({queryKey:["git",e,"stash-files",t],queryFn:async()=>{if(!e||null===t)return[];let r=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:e,action:"stash-files",data:{index:t}})});if(!r.ok)throw Error("Failed to fetch stash files");return(await r.json()).files||[]},enabled:!!e&&null!==t})}function T(e,t,r){return(0,a.I)({queryKey:["git",e,"stash-file-diff",t,r],queryFn:async()=>{if(!e||null===t||!r)return{left:"",right:"",diff:""};let n=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:e,action:"stash-file-diff",data:{index:t,file:r}})});if(!n.ok)throw Error("Failed to fetch stash file diff");return n.json()},enabled:!!e&&null!==t&&!!r})}let E={commit:"Commit",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Stage",unstage:"Unstage",checkout:"Checkout","checkout-to-local":"Checkout",branch:"Create Branch","create-tag":"Create Tag","delete-branch":"Delete Branch","delete-remote-branch":"Delete Remote Branch","delete-remote":"Delete Remote","delete-tag":"Delete Tag","delete-remote-tag":"Delete Remote Tag","rename-branch":"Rename Branch","rename-remote-branch":"Rename Remote Branch","rename-remote":"Rename Remote","add-remote":"Add Remote",reset:"Reset",revert:"Revert Commit","cherry-pick":"Cherry Pick","cherry-pick-multiple":"Cherry Pick","cherry-pick-abort":"Cherry Pick",rebase:"Rebase",merge:"Merge","check-merge-conflicts":"Check Merge Conflicts","check-rebase-conflicts":"Check Rebase Conflicts","get-remotes":"Get Remotes","get-remote-branches":"Get Remote Branches","get-tracking-branch":"Get Tracking Branch","get-latest-commit-message":"Get Latest Commit Message","push-to-remote":"Push","pull-from-remote":"Pull",stash:"Stash","stash-apply":"Apply Stash","stash-drop":"Drop Stash","stash-pop":"Pop Stash",reword:"Reword Commit",discard:"Discard Changes","cleanup-lock-file":"Cleanup Lock File"},C=["check-merge-conflicts","check-rebase-conflicts","get-remotes","get-remote-branches","get-tracking-branch","get-latest-commit-message"];async function F(e){let t=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:e,action:"cleanup-lock-file"})});if(!t.ok)throw Error("Failed to cleanup lock file");return t.json()}function q(){let e=(0,s.jE)();return(0,o.n)({mutationFn:async({repoPath:e,action:t,data:r})=>{let n=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:e,action:t,data:r})});if(!n.ok)throw Error((await n.json()).error||"Failed to execute action");return n.json()},onSuccess:(t,r)=>{C.includes(r.action)||e.invalidateQueries({queryKey:["git",r.repoPath]})},onError:(t,r)=>{if(!C.includes(r.action)&&!r.suppressErrorToast){let n=E[r.action]||r.action;t.message.includes("Unable to create")&&t.message.includes(".git/index.lock")?(0,i.tk)(t,{operation:n,fixLabel:"Remove Lock File",onFix:async()=>{await F(r.repoPath),e.invalidateQueries({queryKey:["git",r.repoPath]})}}):(0,i.tk)(t,{operation:n})}}})}},6695:(e,t,r)=>{r.d(t,{dj:()=>h,oR:()=>d,tk:()=>m});var n=r(2115);let a=5e3;async function s(e){try{return await navigator.clipboard.writeText(e),!0}catch{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-9999px",document.body.appendChild(t),t.select();try{return document.execCommand("copy"),!0}catch{return!1}finally{document.body.removeChild(t)}}}let o=0;function i(){return(o=(o+1)%Number.MAX_SAFE_INTEGER).toString()}let c=new Map,l=(e,t=a)=>{if(c.has(e))return;let r=setTimeout(()=>{c.delete(e),p({type:"REMOVE_TOAST",toastId:e})},t);c.set(e,r)},u=[],f={toasts:[]};function p(e){f=((e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,5)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?l(r,0):e.toasts.forEach(e=>{l(e.id,0)}),{...e,toasts:e.toasts.filter(e=>e.id!==r&&void 0!==r)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}})(f,e),u.forEach(e=>{e(f)})}function d(e){let t=i();return p({type:"ADD_TOAST",toast:{...e,id:t}}),l(t,e.duration||a),{id:t,dismiss:()=>p({type:"DISMISS_TOAST",toastId:t}),update:e=>p({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function h(){let[e,t]=n.useState(f);return n.useEffect(()=>(u.push(t),()=>{let e=u.indexOf(t);e>-1&&u.splice(e,1)}),[e]),{...e,toast:d,dismiss:e=>p({type:"DISMISS_TOAST",toastId:e})}}function m(e,t={}){let r="string"==typeof e?e:e.message,a=t.title||(t.operation?`${t.operation} Failed`:"Git Operation Failed"),o=i();return d({type:"error",title:a,description:n.createElement(()=>{let[e,a]=n.useState(!1),[i,c]=n.useState(!1),l=async e=>{e.stopPropagation(),await s(r)&&(a(!0),setTimeout(()=>a(!1),2e3))},u=async e=>{if(e.stopPropagation(),t.onFix){c(!0);try{await t.onFix(),p({type:"DISMISS_TOAST",toastId:o})}catch(e){console.error("Fix failed",e),c(!1)}}};return n.createElement("div",{className:"mt-2 space-y-3"},n.createElement("div",{className:"max-h-[120px] overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed bg-black/20 p-3 rounded-md break-all text-error-content/90 border border-error-content/20"},r),n.createElement("div",{className:"flex gap-2"},n.createElement("button",{onClick:l,type:"button",className:`btn btn-xs ${e?"btn-success text-white":"bg-white/20 hover:bg-white/30 text-white border-white/20"}`},e?"Copied!":"Copy Error"),t.onFix?n.createElement("button",{onClick:u,type:"button",disabled:i,className:"btn btn-xs btn-warning text-white"},i?"Fixing...":t.fixLabel||"Fix Issue"):null))}),duration:1e4}),{id:o,dismiss:()=>p({type:"DISMISS_TOAST",toastId:o})}}},8599:(e,t,r)=>{r.d(t,{L9:()=>y,cn:()=>s,iu:()=>i,kO:()=>d,kj:()=>o,tq:()=>m,u:()=>h});var n=r(9722),a=r(622);function s(...e){return(0,a.QP)((0,n.$)(e))}function o(e){let t=e.replace(/[\\/]+$/,"").split(/[/\\]/).filter(Boolean);return t[t.length-1]||e}function i(e){let t=e.displayName?.trim();return t||(e.name?.trim()?e.name:o(e.path))}function c(e){if(!e)return"";let t=e.split("/").pop()||"",r=t.lastIndexOf(".");return -1===r||0===r?t.toLowerCase():t.slice(r+1).toLowerCase()}let l=new Set(["js","jsx","ts","tsx","mjs","cjs","mts","cts","py","pyw","pyi","pyx","rb","rake","gemspec","java","kt","kts","scala","sc","groovy","gradle","c","h","cpp","cc","cxx","hpp","hh","hxx","c++","h++","cs","fs","fsx","fsi","go","rs","swift","dart","zig","nim","v","odin","php","phtml","php3","php4","php5","php7","phps","pl","pm","pod","t","psgi","lua","tcl","r","R","jl","ex","exs","erl","hrl","clj","cljs","cljc","edn","lisp","lsp","el","scm","ss","rkt","hs","lhs","elm","purs","ml","mli","f90","f95","f03","f08","for","asm","s","S","vhd","vhdl","v","sv","svh","bas","vb","vbs","vba","pas","pp","inc","dpr","dpk","sh","bash","zsh","fish","ksh","csh","tcsh","ps1","psm1","psd1","bat","cmd","html","htm","xhtml","shtml","css","scss","sass","less","styl","stylus","pcss","postcss","svg","xml","xsl","xslt","xsd","dtd","rss","atom","rdf","wsdl","soap","vue","svelte","astro","mdx","hbs","handlebars","mustache","ejs","pug","jade","haml","slim","erb","graphql","gql","json","json5","jsonc","jsonl","ndjson","geojson","yaml","yml","toml","ini","cfg","conf","config","properties","env","csv","tsv","psv","txt","text","log","out","md","markdown","mdown","mkd","mkdn","mdwn","rst","rest","adoc","asciidoc","asc","org","tex","latex","ltx","bib","sty","cls","rtf","diff","patch","gitignore","gitattributes","gitmodules","gitconfig","dockerignore","dockerfile","containerfile","editorconfig","prettierrc","eslintrc","babelrc","stylelintrc","browserslistrc","npmrc","nvmrc","yarnrc","pnpmfile","makefile","mk","cmake","make","mak","rake","podfile","gemfile","fastfile","sql","plsql","pgsql","mysql","sqlite","hql","cql","proto","protobuf","thrift","avro","capnp","fbs","flatc","tf","tfvars","hcl","nomad","sentinel","prisma","graphqls","lock"]),u=new Set(["jpg","jpeg","png","gif","bmp","ico","icns","tiff","tif","webp","avif","heic","heif","psd","ai","eps","raw","cr2","nef","orf","sr2","dng","mp4","avi","mov","wmv","flv","mkv","webm","m4v","mpeg","mpg","3gp","3g2","ogv","mp3","wav","ogg","oga","flac","aac","m4a","wma","aiff","aif","mid","midi","opus","zip","rar","7z","tar","gz","bz2","xz","lz","lzma","lz4","zst","cab","iso","dmg","exe","dll","so","dylib","a","lib","obj","o","app","msi","deb","rpm","apk","ipa","pkg","snap","flatpak","appimage","class","jar","war","ear","pyc","pyo","pyd","beam","wasm","wat","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","pages","numbers","key","ttf","otf","woff","woff2","eot","fon","fnt","db","sqlite","sqlite3","mdb","accdb","frm","myd","myi","ibd","bin","dat","data","sav","bak","swf","fla","blend","fbx","obj","stl","gltf","glb","3ds","dae","ply","sketch","fig","xd","unity","unitypackage","asset","prefab","meta"]),f=new Set(["png","jpg","jpeg","gif","bmp","ico","icns","tiff","tif","webp","avif","heic","heif","svg"]);function p(e){if(!e)return!1;if(e.includes("\0"))return!0;let t=e.slice(0,8192),r=0;for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<32&&9!==n&&10!==n&&13!==n&&r++}return t.length>0&&r/t.length>.1}function d(e,t,r){let n=function(e){if(!e)return"unknown";let t=c(e);return l.has(t)?"text":u.has(t)?"binary":"unknown"}(e);return"binary"===n||"text"!==n&&(p(t||"")||p(r||""))}function h(e){return f.has(c(e))}function m(e){return e?e.split("\n").reduce((e,t)=>t.startsWith("+++ ")||t.startsWith("--- ")?e:t.startsWith("+")||t.startsWith("-")?e+1:e,0):0}function y(e){return e.replace(/[\s~^:?*\[\]\\@{}<>|"'`!#$%&()+=;,]/g,"-").replace(/\.{2,}/g,"-").replace(/\/{2,}/g,"/").replace(/-{2,}/g,"-")}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[492],{5949:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(5155),n=l(7356);function o({status:e,message:t}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:`${e}: ${t}`}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:e}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:t})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6989:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(9541)}])},7356:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9541:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(5155),n=l(5949),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[441,794,358],()=>e(e.s=6989)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[492],{5419:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(9541)}])},5949:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(5155),n=l(7356);function o({status:e,message:t}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:`${e}: ${t}`}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:e}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:t})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7356:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9541:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(5155),n=l(5949),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[441,794,358],()=>e(e.s=5419)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[71,167,171,177,429,504,507,645,748,799,819,833,851,896,916,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);