plugin-git-manager 1.0.3

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 (156) hide show
  1. package/client.d.ts +3 -0
  2. package/client.js +1 -0
  3. package/dist/client/100.e08d760e0b01997c.js +10 -0
  4. package/dist/client/components/CommitHistory.d.ts +2 -0
  5. package/dist/client/components/FileExplorer.d.ts +2 -0
  6. package/dist/client/components/GitManagerSettings.d.ts +2 -0
  7. package/dist/client/components/GitOperations.d.ts +2 -0
  8. package/dist/client/components/RepositoryConfig.d.ts +2 -0
  9. package/dist/client/context/GitManagerContext.d.ts +24 -0
  10. package/dist/client/index.d.ts +5 -0
  11. package/dist/client/index.js +10 -0
  12. package/dist/client/locale.d.ts +2 -0
  13. package/dist/externalVersion.js +18 -0
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.js +48 -0
  16. package/dist/locale/en-US.json +45 -0
  17. package/dist/locale/vi-VN.json +45 -0
  18. package/dist/node_modules/simple-git/dist/cjs/index.js +7399 -0
  19. package/dist/node_modules/simple-git/dist/esm/index.js +4745 -0
  20. package/dist/node_modules/simple-git/dist/esm/package.json +3 -0
  21. package/dist/node_modules/simple-git/dist/src/lib/api.d.ts +13 -0
  22. package/dist/node_modules/simple-git/dist/src/lib/args/log-format.d.ts +9 -0
  23. package/dist/node_modules/simple-git/dist/src/lib/errors/git-construct-error.d.ts +15 -0
  24. package/dist/node_modules/simple-git/dist/src/lib/errors/git-error.d.ts +30 -0
  25. package/dist/node_modules/simple-git/dist/src/lib/errors/git-plugin-error.d.ts +7 -0
  26. package/dist/node_modules/simple-git/dist/src/lib/errors/git-response-error.d.ts +32 -0
  27. package/dist/node_modules/simple-git/dist/src/lib/errors/task-configuration-error.d.ts +12 -0
  28. package/dist/node_modules/simple-git/dist/src/lib/git-factory.d.ts +15 -0
  29. package/dist/node_modules/simple-git/dist/src/lib/git-logger.d.ts +21 -0
  30. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-branch-delete.d.ts +5 -0
  31. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-branch.d.ts +2 -0
  32. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-commit.d.ts +2 -0
  33. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-diff-summary.d.ts +3 -0
  34. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-fetch.d.ts +2 -0
  35. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-list-log-summary.d.ts +6 -0
  36. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-merge.d.ts +11 -0
  37. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-move.d.ts +2 -0
  38. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-pull.d.ts +6 -0
  39. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-push.d.ts +4 -0
  40. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-remote-messages.d.ts +5 -0
  41. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-remote-objects.d.ts +3 -0
  42. package/dist/node_modules/simple-git/dist/src/lib/plugins/abort-plugin.d.ts +3 -0
  43. package/dist/node_modules/simple-git/dist/src/lib/plugins/block-unsafe-operations-plugin.d.ts +3 -0
  44. package/dist/node_modules/simple-git/dist/src/lib/plugins/command-config-prefixing-plugin.d.ts +2 -0
  45. package/dist/node_modules/simple-git/dist/src/lib/plugins/completion-detection.plugin.d.ts +3 -0
  46. package/dist/node_modules/simple-git/dist/src/lib/plugins/custom-binary.plugin.d.ts +3 -0
  47. package/dist/node_modules/simple-git/dist/src/lib/plugins/error-detection.plugin.d.ts +7 -0
  48. package/dist/node_modules/simple-git/dist/src/lib/plugins/index.d.ts +11 -0
  49. package/dist/node_modules/simple-git/dist/src/lib/plugins/plugin-store.d.ts +11 -0
  50. package/dist/node_modules/simple-git/dist/src/lib/plugins/progress-monitor-plugin.d.ts +3 -0
  51. package/dist/node_modules/simple-git/dist/src/lib/plugins/simple-git-plugin.d.ts +48 -0
  52. package/dist/node_modules/simple-git/dist/src/lib/plugins/spawn-options-plugin.d.ts +3 -0
  53. package/dist/node_modules/simple-git/dist/src/lib/plugins/suffix-paths.plugin.d.ts +2 -0
  54. package/dist/node_modules/simple-git/dist/src/lib/plugins/timout-plugin.d.ts +3 -0
  55. package/dist/node_modules/simple-git/dist/src/lib/responses/BranchDeleteSummary.d.ts +12 -0
  56. package/dist/node_modules/simple-git/dist/src/lib/responses/BranchSummary.d.ts +14 -0
  57. package/dist/node_modules/simple-git/dist/src/lib/responses/CheckIgnore.d.ts +4 -0
  58. package/dist/node_modules/simple-git/dist/src/lib/responses/CleanSummary.d.ts +9 -0
  59. package/dist/node_modules/simple-git/dist/src/lib/responses/ConfigList.d.ts +13 -0
  60. package/dist/node_modules/simple-git/dist/src/lib/responses/DiffSummary.d.ts +10 -0
  61. package/dist/node_modules/simple-git/dist/src/lib/responses/FileStatusSummary.d.ts +9 -0
  62. package/dist/node_modules/simple-git/dist/src/lib/responses/GetRemoteSummary.d.ts +11 -0
  63. package/dist/node_modules/simple-git/dist/src/lib/responses/InitSummary.d.ts +9 -0
  64. package/dist/node_modules/simple-git/dist/src/lib/responses/MergeSummary.d.ts +16 -0
  65. package/dist/node_modules/simple-git/dist/src/lib/responses/PullSummary.d.ts +25 -0
  66. package/dist/node_modules/simple-git/dist/src/lib/responses/StatusSummary.d.ts +19 -0
  67. package/dist/node_modules/simple-git/dist/src/lib/responses/TagList.d.ts +7 -0
  68. package/dist/node_modules/simple-git/dist/src/lib/runners/git-executor-chain.d.ts +25 -0
  69. package/dist/node_modules/simple-git/dist/src/lib/runners/git-executor.d.ts +14 -0
  70. package/dist/node_modules/simple-git/dist/src/lib/runners/promise-wrapped.d.ts +2 -0
  71. package/dist/node_modules/simple-git/dist/src/lib/runners/scheduler.d.ts +11 -0
  72. package/dist/node_modules/simple-git/dist/src/lib/runners/tasks-pending-queue.d.ts +23 -0
  73. package/dist/node_modules/simple-git/dist/src/lib/simple-git-api.d.ts +20 -0
  74. package/dist/node_modules/simple-git/dist/src/lib/task-callback.d.ts +2 -0
  75. package/dist/node_modules/simple-git/dist/src/lib/tasks/apply-patch.d.ts +3 -0
  76. package/dist/node_modules/simple-git/dist/src/lib/tasks/branch.d.ts +7 -0
  77. package/dist/node_modules/simple-git/dist/src/lib/tasks/change-working-directory.d.ts +2 -0
  78. package/dist/node_modules/simple-git/dist/src/lib/tasks/check-ignore.d.ts +2 -0
  79. package/dist/node_modules/simple-git/dist/src/lib/tasks/check-is-repo.d.ts +9 -0
  80. package/dist/node_modules/simple-git/dist/src/lib/tasks/checkout.d.ts +2 -0
  81. package/dist/node_modules/simple-git/dist/src/lib/tasks/clean.d.ts +25 -0
  82. package/dist/node_modules/simple-git/dist/src/lib/tasks/clone.d.ts +9 -0
  83. package/dist/node_modules/simple-git/dist/src/lib/tasks/commit.d.ts +4 -0
  84. package/dist/node_modules/simple-git/dist/src/lib/tasks/config.d.ts +8 -0
  85. package/dist/node_modules/simple-git/dist/src/lib/tasks/count-objects.d.ts +12 -0
  86. package/dist/node_modules/simple-git/dist/src/lib/tasks/diff-name-status.d.ts +12 -0
  87. package/dist/node_modules/simple-git/dist/src/lib/tasks/diff.d.ts +5 -0
  88. package/dist/node_modules/simple-git/dist/src/lib/tasks/fetch.d.ts +4 -0
  89. package/dist/node_modules/simple-git/dist/src/lib/tasks/first-commit.d.ts +2 -0
  90. package/dist/node_modules/simple-git/dist/src/lib/tasks/grep.d.ts +12 -0
  91. package/dist/node_modules/simple-git/dist/src/lib/tasks/hash-object.d.ts +5 -0
  92. package/dist/node_modules/simple-git/dist/src/lib/tasks/init.d.ts +3 -0
  93. package/dist/node_modules/simple-git/dist/src/lib/tasks/log.d.ts +32 -0
  94. package/dist/node_modules/simple-git/dist/src/lib/tasks/merge.d.ts +4 -0
  95. package/dist/node_modules/simple-git/dist/src/lib/tasks/move.d.ts +3 -0
  96. package/dist/node_modules/simple-git/dist/src/lib/tasks/pull.d.ts +3 -0
  97. package/dist/node_modules/simple-git/dist/src/lib/tasks/push.d.ts +9 -0
  98. package/dist/node_modules/simple-git/dist/src/lib/tasks/remote.d.ts +8 -0
  99. package/dist/node_modules/simple-git/dist/src/lib/tasks/reset.d.ts +11 -0
  100. package/dist/node_modules/simple-git/dist/src/lib/tasks/show.d.ts +2 -0
  101. package/dist/node_modules/simple-git/dist/src/lib/tasks/stash-list.d.ts +4 -0
  102. package/dist/node_modules/simple-git/dist/src/lib/tasks/status.d.ts +3 -0
  103. package/dist/node_modules/simple-git/dist/src/lib/tasks/sub-module.d.ts +5 -0
  104. package/dist/node_modules/simple-git/dist/src/lib/tasks/tag.d.ts +18 -0
  105. package/dist/node_modules/simple-git/dist/src/lib/tasks/task.d.ts +14 -0
  106. package/dist/node_modules/simple-git/dist/src/lib/tasks/version.d.ts +9 -0
  107. package/dist/node_modules/simple-git/dist/src/lib/types/handlers.d.ts +21 -0
  108. package/dist/node_modules/simple-git/dist/src/lib/types/index.d.ts +136 -0
  109. package/dist/node_modules/simple-git/dist/src/lib/types/tasks.d.ts +19 -0
  110. package/dist/node_modules/simple-git/dist/src/lib/utils/argument-filters.d.ts +14 -0
  111. package/dist/node_modules/simple-git/dist/src/lib/utils/exit-codes.d.ts +10 -0
  112. package/dist/node_modules/simple-git/dist/src/lib/utils/git-output-streams.d.ts +7 -0
  113. package/dist/node_modules/simple-git/dist/src/lib/utils/index.d.ts +8 -0
  114. package/dist/node_modules/simple-git/dist/src/lib/utils/line-parser.d.ts +15 -0
  115. package/dist/node_modules/simple-git/dist/src/lib/utils/simple-git-options.d.ts +2 -0
  116. package/dist/node_modules/simple-git/dist/src/lib/utils/task-options.d.ts +13 -0
  117. package/dist/node_modules/simple-git/dist/src/lib/utils/task-parser.d.ts +5 -0
  118. package/dist/node_modules/simple-git/dist/src/lib/utils/util.d.ts +47 -0
  119. package/dist/node_modules/simple-git/dist/typings/errors.d.ts +5 -0
  120. package/dist/node_modules/simple-git/dist/typings/index.d.ts +14 -0
  121. package/dist/node_modules/simple-git/dist/typings/response.d.ts +556 -0
  122. package/dist/node_modules/simple-git/dist/typings/simple-git.d.ts +1033 -0
  123. package/dist/node_modules/simple-git/dist/typings/types.d.ts +22 -0
  124. package/dist/node_modules/simple-git/node_modules/debug/package.json +64 -0
  125. package/dist/node_modules/simple-git/node_modules/debug/src/browser.js +272 -0
  126. package/dist/node_modules/simple-git/node_modules/debug/src/common.js +292 -0
  127. package/dist/node_modules/simple-git/node_modules/debug/src/index.js +10 -0
  128. package/dist/node_modules/simple-git/node_modules/debug/src/node.js +263 -0
  129. package/dist/node_modules/simple-git/package.json +1 -0
  130. package/dist/node_modules/simple-git/promise.js +17 -0
  131. package/dist/server/actions/git-actions.d.ts +13 -0
  132. package/dist/server/actions/git-actions.js +354 -0
  133. package/dist/server/collections/gitRepositories.d.ts +2 -0
  134. package/dist/server/collections/gitRepositories.js +75 -0
  135. package/dist/server/index.d.ts +2 -0
  136. package/dist/server/index.js +48 -0
  137. package/dist/server/plugin.d.ts +6 -0
  138. package/dist/server/plugin.js +120 -0
  139. package/package.json +32 -0
  140. package/server.d.ts +2 -0
  141. package/server.js +1 -0
  142. package/src/client/components/CommitHistory.tsx +326 -0
  143. package/src/client/components/FileExplorer.tsx +329 -0
  144. package/src/client/components/GitManagerSettings.tsx +123 -0
  145. package/src/client/components/GitOperations.tsx +195 -0
  146. package/src/client/components/RepositoryConfig.tsx +188 -0
  147. package/src/client/context/GitManagerContext.tsx +84 -0
  148. package/src/client/index.tsx +19 -0
  149. package/src/client/locale.ts +9 -0
  150. package/src/index.ts +2 -0
  151. package/src/locale/en-US.json +45 -0
  152. package/src/locale/vi-VN.json +45 -0
  153. package/src/server/actions/git-actions.ts +346 -0
  154. package/src/server/collections/gitRepositories.ts +45 -0
  155. package/src/server/index.ts +2 -0
  156. package/src/server/plugin.ts +81 -0
package/client.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ // @ts-nocheck
2
+ export * from './dist/client';
3
+ export { default } from './dist/client';
package/client.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/client/index.js');
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).push([["100"],{45:function(e,t,n){n.r(t),n.d(t,{GitManagerSettings:function(){return el}});var r=n(156),l=n.n(r),a=n(721),o=n(482),i=n(772);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function s(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){u(a,r,l,o,i,"next",e)}function i(e){u(a,r,l,o,i,"throw",e)}o(void 0)})}}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var m=(0,r.createContext)(null);function p(){return(0,r.useContext)(m)}var y=function(e){var t=e.children,n=(0,i.useAPIClient)(),a=d((0,r.useState)([]),2),o=a[0],c=a[1],u=d((0,r.useState)(null),2),p=u[0],y=u[1],h=d((0,r.useState)(!1),2),b=h[0],g=h[1],v=d((0,r.useState)([]),2),E=v[0],S=v[1],w=d((0,r.useState)(""),2),O=w[0],k=w[1],x=(0,r.useRef)(p);x.current=p;var C=(0,r.useCallback)(s(function(){var e,t,r,l;return f(this,function(a){switch(a.label){case 0:if(!(e=x.current)||"connected"!==e.status)return S([]),k(""),[2];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,n.request({url:"gitManager:branches",params:{repositoryId:e.id}})];case 2:return(l=(null==(r=a.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data))&&(S(l.all||[]),k(l.current||"")),[3,4];case 3:return a.sent(),S([]),k(""),[3,4];case 4:return[2]}})}),[n]),I=(0,r.useCallback)(s(function(){var e,t,r,l;return f(this,function(a){switch(a.label){case 0:g(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,n.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return c(t=(null==(e=a.sent().data)?void 0:e.data)||[]),(r=x.current)&&(l=t.find(function(e){return e.id===r.id}))&&y(l),[3,4];case 3:return g(!1),[7];case 4:return[2]}})}),[n]);return l().createElement(m.Provider,{value:{repos:o,selectedRepo:p,loading:b,branches:E,currentBranch:O,setSelectedRepo:y,refreshRepos:I,refreshBranches:C}},t)};function h(){var e=(0,i.useApp)();return function(t,n){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:["plugin-git-manager","client"]},n))}}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function v(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){g(a,r,l,o,i,"next",e)}function i(e){g(a,r,l,o,i,"throw",e)}o(void 0)})}}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var w=function(){var e,t,n,c=h(),u=(0,i.useAPIClient)(),s=p(),d=s.repos,f=s.refreshRepos,m=s.selectedRepo,y=s.setSelectedRepo,b=E((0,r.useState)(!1),2),g=b[0],w=b[1],O=E((0,r.useState)(null),2),k=O[0],x=O[1],C=E(a.Form.useForm(),1)[0],I=E((0,r.useState)(null),2),P=I[0],j=I[1],A=(e=v(function(){var e,t;return S(this,function(n){switch(n.label){case 0:return[4,C.validateFields()];case 1:e=n.sent(),k&&(!e.pat||"••••••••"===e.pat)&&delete e.pat,n.label=2;case 2:if(n.trys.push([2,8,,9]),!k)return[3,4];return[4,u.request({url:"gitRepositories:update",method:"post",params:{filterByTk:k.id},data:e})];case 3:return n.sent(),a.message.success(c("Repository updated")),[3,6];case 4:return[4,u.request({url:"gitRepositories:create",method:"post",data:e})];case 5:n.sent(),a.message.success(c("Repository added")),n.label=6;case 6:return w(!1),x(null),C.resetFields(),[4,f()];case 7:return n.sent(),[3,9];case 8:return t=n.sent(),a.message.error((null==t?void 0:t.message)||c("Failed to save")),[3,9];case 9:return[2]}})}),function(){return e.apply(this,arguments)}),B=(t=v(function(e){return S(this,function(t){switch(t.label){case 0:return[4,u.request({url:"gitRepositories:destroy",method:"post",params:{filterByTk:e}})];case 1:return t.sent(),(null==m?void 0:m.id)===e&&y(null),a.message.success(c("Deleted")),[4,f()];case 2:return t.sent(),[2]}})}),function(e){return t.apply(this,arguments)}),T=(n=v(function(e){var t,n,r,l,o;return S(this,function(i){switch(i.label){case 0:j("clone-".concat(e.id)),i.label=1;case 1:return i.trys.push([1,4,5,6]),[4,u.request({url:"gitManager:clone",method:"post",params:{repositoryId:e.id}})];case 2:return i.sent(),a.message.success(c("Clone successful")),[4,f()];case 3:return i.sent(),[3,6];case 4:return t=i.sent(),a.message.error((null==t||null==(o=t.response)||null==(l=o.data)||null==(r=l.errors)||null==(n=r[0])?void 0:n.message)||c("Clone failed")),[3,6];case 5:return j(null),[7];case 6:return[2]}})}),function(e){return n.apply(this,arguments)}),R=[{title:c("Repository Name"),dataIndex:"name",key:"name",render:function(e,t){return l().createElement("a",{onClick:function(){return y(t)}},e)}},{title:c("Repository URL"),dataIndex:"repoUrl",key:"repoUrl",ellipsis:!0},{title:c("Local Path"),dataIndex:"localPath",key:"localPath",ellipsis:!0},{title:c("Default Branch"),dataIndex:"defaultBranch",key:"defaultBranch",width:120},{title:c("Status"),dataIndex:"status",key:"status",width:120,render:function(e){var t={connected:{color:"green",label:c("Connected")},error:{color:"red",label:c("Error")}}[e]||{color:"default",label:c("Disconnected")};return l().createElement(a.Tag,{color:t.color},t.label)}},{title:"",key:"actions",width:200,render:function(e,t){return l().createElement(a.Space,{size:"small"},"connected"!==t.status&&l().createElement(a.Button,{size:"small",icon:l().createElement(o.LinkOutlined,null),loading:P==="clone-".concat(t.id),onClick:function(){return T(t)}},c("Clone")),l().createElement(a.Button,{size:"small",onClick:function(){var e,n;x(t),C.setFieldsValue((e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},t),n=n={pat:""},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e)),w(!0)}},c("Edit")),l().createElement(a.Popconfirm,{title:c("Delete this repository?"),onConfirm:function(){return B(t.id)}},l().createElement(a.Button,{size:"small",danger:!0,icon:l().createElement(o.DeleteOutlined,null)})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:16}},l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){x(null),C.resetFields(),w(!0)}},c("Add Repository"))),l().createElement(a.Table,{dataSource:d,columns:R,rowKey:"id",size:"small",pagination:!1,rowClassName:function(e){return(null==m?void 0:m.id)===e.id?"ant-table-row-selected":""}}),l().createElement(a.Modal,{title:k?c("Edit Repository"):c("Add Repository"),open:g,onOk:A,onCancel:function(){w(!1),x(null)},width:520},l().createElement(a.Form,{form:C,layout:"vertical",initialValues:{defaultBranch:"main"}},l().createElement(a.Form.Item,{name:"name",label:c("Repository Name"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:"my-project"})),l().createElement(a.Form.Item,{name:"repoUrl",label:c("Repository URL"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:"https://github.com/user/repo.git"})),l().createElement(a.Form.Item,{name:"localPath",label:c("Local Path"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:"my-project"})),l().createElement(a.Form.Item,{name:"pat",label:c("Personal Access Token"),rules:k?[]:[{required:!0}]},l().createElement(a.Input.Password,{placeholder:k?"Leave empty to keep current":"ghp_xxxx..."})),l().createElement(a.Form.Item,{name:"defaultBranch",label:c("Default Branch")},l().createElement(a.Input,{placeholder:"main"})))))};function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function x(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){k(a,r,l,o,i,"next",e)}function i(e){k(a,r,l,o,i,"throw",e)}o(void 0)})}}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function I(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var A=a.Typography.Text,B=a.Input.Search,T=a.theme.useToken,R={ts:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),tsx:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),js:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),jsx:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),json:l().createElement(o.CodeOutlined,{style:{color:"#5b5b5b"}}),md:l().createElement(o.FileMarkdownOutlined,{style:{color:"#083fa1"}}),html:l().createElement(o.Html5Outlined,{style:{color:"#e34c26"}}),css:l().createElement(o.FileTextOutlined,{style:{color:"#563d7c"}}),py:l().createElement(o.CodeOutlined,{style:{color:"#3572A5"}}),png:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),jpg:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),svg:l().createElement(o.FileImageOutlined,{style:{color:"#ffb13b"}})},z=function(){var e,t,n,c=h(),u=T().token,s=(0,i.useAPIClient)(),d=p(),f=d.selectedRepo,m=d.branches,y=d.currentBranch,b=d.refreshBranches,g=P((0,r.useState)([]),2),v=g[0],E=g[1],S=P((0,r.useState)(!1),2),w=S[0],O=S[1],k=P((0,r.useState)(null),2),z=k[0],D=k[1],F=P((0,r.useState)(null),2),M=F[0],L=F[1],q=P((0,r.useState)("HEAD"),2),W=q[0],U=q[1],H=P((0,r.useState)(""),2),_=H[0],N=H[1],G=P((0,r.useState)(""),2),K=G[0],$=G[1],Q=P((0,r.useState)(!1),2),J=Q[0],V=Q[1],X=(0,r.useCallback)(x(function(){var e,t,n,r,a=arguments;return j(this,function(i){switch(i.label){case 0:if(e=a.length>0&&void 0!==a[0]?a[0]:"",t=a.length>1&&void 0!==a[1]?a[1]:W,!f)return[2,[]];return[4,s.request({url:"gitManager:fileTree",params:{repositoryId:f.id,ref:t,treePath:e}})];case 1:return[2,(Array.isArray(r=(null==(n=i.sent().data)?void 0:n.data)||n||[])?r:Array.isArray(null==r?void 0:r.data)?r.data:[]).map(function(e){return{key:e.path,title:l().createElement(A,{style:{fontSize:13}},e.name,"blob"===e.type&&e.size>0&&l().createElement(A,{type:"secondary",style:{fontSize:11,marginLeft:8}},e.size>1024?"".concat((e.size/1024).toFixed(1),"KB"):"".concat(e.size,"B"))),icon:function(e,t){if("tree"!==t){var n;return R[(null==(n=e.split(".").pop())?void 0:n.toLowerCase())||""]||l().createElement(o.FileOutlined,null)}}(e.name,e.type),isLeaf:"blob"===e.type,filePath:e.path,fileType:e.type}})]}})}),[s,f,W]),Y=(0,r.useCallback)(x(function(){return j(this,function(e){switch(e.label){case 0:O(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,X("",W)];case 2:return E(e.sent()),[3,4];case 3:return O(!1),[7];case 4:return[2]}})}),[X,W]);(0,r.useEffect)(function(){(null==f?void 0:f.status)==="connected"?(b(),D(null),L(null)):E([])},[f]),(0,r.useEffect)(function(){y&&"HEAD"===W&&U(y)},[y]),(0,r.useEffect)(function(){(null==f?void 0:f.status)==="connected"&&Y()},[W,f]);var Z=(e=x(function(e){var t;return j(this,function(n){switch(n.label){case 0:if(e.children)return[2];return[4,X(e.filePath,W)];case 1:return t=n.sent(),E(function(n){return function e(t,n,r){return t.map(function(t){return t.key===n?I(C({},t),{children:r}):t.children?I(C({},t),{children:e(t.children,n,r)}):t})}(n,e.key,t)}),[2]}})}),function(t){return e.apply(this,arguments)}),ee=(t=x(function(e,t){var n,r,l,a;return j(this,function(e){switch(e.label){case 0:if(!(n=t.node).isLeaf)return[2];V(!0),L(n.filePath),e.label=1;case 1:return e.trys.push([1,3,4,5]),[4,s.request({url:"gitManager:fileContent",params:{repositoryId:f.id,ref:W,filePath:n.filePath}})];case 2:return D((null==(a=(null==(l=e.sent().data)||null==(r=l.data)?void 0:r.data)||(null==l?void 0:l.data))?void 0:a.content)||""),[3,5];case 3:return e.sent(),D("// Failed to load file content"),[3,5];case 4:return V(!1),[7];case 5:return[2]}})}),function(e,n){return t.apply(this,arguments)}),et=(0,r.useRef)();if((0,r.useEffect)(function(){return et.current=setTimeout(function(){return $(_)},300),function(){return clearTimeout(et.current)}},[_]),!f)return l().createElement(a.Empty,{description:c("No repository selected")});if("connected"!==f.status)return l().createElement(a.Empty,{description:c("Repository not cloned yet")});var en=K?function e(t,n){return t.map(function(t){if(t.children){var r=e(t.children,n);if(r.length>0)return I(C({},t),{children:r})}return(t.filePath||"").toLowerCase().includes(n)?t:null}).filter(Boolean)}(v,K.toLowerCase()):v;return l().createElement("div",{style:{display:"flex",height:"calc(100vh - 280px)",gap:0}},l().createElement("div",{style:{width:320,minWidth:280,borderRight:"1px solid ".concat(u.colorBorderSecondary),display:"flex",flexDirection:"column",background:u.colorBgContainer}},l().createElement("div",{style:{padding:"8px 12px",borderBottom:"1px solid ".concat(u.colorBorderSecondary)}},l().createElement(a.Space,{direction:"vertical",style:{width:"100%"},size:6},l().createElement(a.Select,{size:"small",style:{width:"100%"},value:W,onChange:function(e){U(e),D(null),L(null)},options:m.map(function(e){return{label:e,value:e}}),placeholder:"Branch"}),l().createElement(B,{size:"small",placeholder:"Filter files...",allowClear:!0,onChange:function(e){return N(e.target.value)}}))),l().createElement("div",{style:{flex:1,overflow:"auto",padding:"4px 0"}},w?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement(a.Tree,{showIcon:!0,treeData:en,loadData:Z,onSelect:ee,selectedKeys:M?[M]:[],style:{fontSize:13},blockNode:!0}))),l().createElement("div",{style:{flex:1,display:"flex",flexDirection:"column",background:u.colorBgLayout}},M?l().createElement(l().Fragment,null,l().createElement("div",{style:{padding:"6px 16px",borderBottom:"1px solid ".concat(u.colorBorderSecondary),background:u.colorBgContainer,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Breadcrumb,{items:M.split("/").map(function(e,t,n){return{title:t===n.length-1?l().createElement(A,{strong:!0},e):e}})}),l().createElement(A,{type:"secondary",style:{marginLeft:"auto",fontSize:12}},{ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",html:"html",css:"css",scss:"scss",py:"python",sh:"bash",yml:"yaml",yaml:"yaml",sql:"sql",xml:"xml",java:"java",go:"go",rs:"rust",rb:"ruby"}[(null==(n=M.split(".").pop())?void 0:n.toLowerCase())||""]||"text")),l().createElement("div",{style:{flex:1,overflow:"auto"}},J?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement("pre",{style:{margin:0,padding:16,fontSize:13,lineHeight:1.6,fontFamily:"'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace",whiteSpace:"pre-wrap",wordBreak:"break-all",background:u.colorBgContainer,minHeight:"100%"}},(z||"").split("\n").map(function(e,t){return l().createElement("div",{key:t,style:{display:"flex"}},l().createElement("span",{style:{display:"inline-block",width:50,textAlign:"right",paddingRight:16,color:u.colorTextQuaternary,userSelect:"none",flexShrink:0}},t+1),l().createElement("span",{style:{flex:1}},e||" "))})))):l().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}},l().createElement(A,{type:"secondary"},"Select a file to view its content"))))};function D(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function F(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function M(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){F(a,r,l,o,i,"next",e)}function i(e){F(a,r,l,o,i,"throw",e)}o(void 0)})}}function L(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return D(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return D(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var W=a.Typography.Text,U=a.theme.useToken,H={A:{color:"green",icon:l().createElement(o.PlusCircleOutlined,null),label:"Added"},M:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},D:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},R:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"}},_=function(){var e,t,n,c,u=h(),s=U().token,d=(0,i.useAPIClient)(),f=p(),m=f.selectedRepo,y=f.branches,b=f.currentBranch,g=L((0,r.useState)([]),2),v=g[0],E=g[1],S=L((0,r.useState)(!1),2),w=S[0],O=S[1],k=L((0,r.useState)(null),2),x=k[0],C=k[1],I=L((0,r.useState)(null),2),P=I[0],j=I[1],A=L((0,r.useState)(!1),2),B=A[0],T=A[1],R=L((0,r.useState)(null),2),z=R[0],D=R[1],F=L((0,r.useState)(null),2),_=F[0],K=F[1],$=(0,r.useCallback)(M(function(){var e,t,n;return q(this,function(r){switch(r.label){case 0:if(!m)return[2];O(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,d.request({url:"gitManager:log",params:{repositoryId:m.id,maxCount:100}})];case 2:return E((null==(n=(null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data))?void 0:n.all)||[]),[3,4];case 3:return O(!1),[7];case 4:return[2]}})}),[d,m]);(0,r.useEffect)(function(){(null==m?void 0:m.status)==="connected"?$():E([])},[m]);var Q=(e=M(function(e){var t,n;return q(this,function(r){switch(r.label){case 0:C(e),T(!0),D(null),K(null),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:commitDetail",params:{repositoryId:m.id,commitHash:e.hash}})];case 2:return j((null==(n=r.sent().data)||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)),[3,5];case 3:return r.sent(),j(null),[3,5];case 4:return T(!1),[7];case 5:return[2]}})}),function(t){return e.apply(this,arguments)}),J=(t=M(function(e,t){var n,r;return q(this,function(l){switch(l.label){case 0:K(t),l.label=1;case 1:return l.trys.push([1,3,,4]),[4,d.request({url:"gitManager:diff",params:{repositoryId:m.id,commitHash:e,file:t}})];case 2:return D((null==(r=l.sent().data)||null==(n=r.data)?void 0:n.data)||(null==r?void 0:r.data)||""),[3,4];case 3:return l.sent(),D("// Failed to load diff"),[3,4];case 4:return[2]}})}),function(e,n){return t.apply(this,arguments)});if(!m)return l().createElement(a.Empty,{description:u("No repository selected")});if("connected"!==m.status)return l().createElement(a.Empty,{description:u("Repository not cloned yet")});var V=[{title:"",key:"graph",width:40,render:function(e,t,n){return l().createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",height:"100%"}},l().createElement("div",{style:{width:10,height:10,borderRadius:"50%",background:0===n?s.colorPrimary:s.colorBorder,border:"2px solid ".concat(0===n?s.colorPrimary:s.colorBorder),zIndex:1}}))}},{title:u("Message"),dataIndex:"message",key:"message",render:function(e,t){return l().createElement("div",null,l().createElement(W,{strong:!0,style:{fontSize:13}},e),l().createElement("div",{style:{marginTop:2}},l().createElement(W,{type:"secondary",style:{fontSize:12}},l().createElement(o.UserOutlined,{style:{marginRight:4}}),t.author_name,l().createElement("span",{style:{margin:"0 8px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:4}}),G(t.date))))}},{title:"Hash",dataIndex:"hash",key:"hash",width:100,render:function(e){return l().createElement(W,{code:!0,copyable:!0,style:{fontSize:12}},null==e?void 0:e.substring(0,7))}},{title:"",key:"action",width:80,render:function(e,t){return l().createElement(a.Button,{size:"small",icon:l().createElement(o.DiffOutlined,null),onClick:function(){return Q(t)}},"Detail")}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12}},l().createElement(o.BranchesOutlined,null),l().createElement(a.Select,{size:"small",style:{width:200},value:b,options:y.map(function(e){return{label:e,value:e}}),disabled:!0}),l().createElement(W,{type:"secondary"},v.length," commits")),w?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:v,columns:V,rowKey:"hash",size:"small",pagination:{pageSize:30,showSizeChanger:!0},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return Q(e)}}}}),l().createElement(a.Drawer,{title:x?l().createElement("div",null,l().createElement(W,{strong:!0},x.message),l().createElement("div",null,l().createElement(W,{type:"secondary",style:{fontSize:12}},null==(n=x.hash)?void 0:n.substring(0,7)," \xb7 ",x.author_name," \xb7 ",G(x.date)))):"Commit Detail",open:!!x,onClose:function(){C(null),j(null),D(null),K(null)},width:800},B?l().createElement(a.Spin,null):P?l().createElement("div",null,l().createElement(W,{strong:!0},"Changed Files (",(null==(c=P.files)?void 0:c.length)||0,")"),l().createElement(a.List,{size:"small",style:{marginTop:8},dataSource:P.files||[],renderItem:function(e){var t=H[e.status]||H.M,n=_===e.file;return l().createElement(a.List.Item,{style:{cursor:"pointer",background:n?s.colorPrimaryBg:void 0,padding:"6px 12px",borderRadius:4},onClick:function(){return J(x.hash,e.file)}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:70,textAlign:"center"}},t.icon," ",t.label),l().createElement(W,{style:{fontSize:13}},e.file)))}}),null!==z&&l().createElement("div",{style:{marginTop:16}},l().createElement(W,{strong:!0,style:{display:"block",marginBottom:8}},l().createElement(o.FileTextOutlined,null)," ",_),l().createElement(N,{content:z}))):null))},N=(0,r.memo)(function(e){var t=e.content,n=U().token,r=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(n.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:500}},r.map(function(e,t){var r="transparent",a=n.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(r="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(r="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(r="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=n.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:r,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:n.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function G(e){if(!e)return"";var t=new Date(e),n=new Date().getTime()-t.getTime(),r=n/36e5;return r<1?"".concat(Math.round(n/6e4),"m ago"):r<24?"".concat(Math.round(r),"h ago"):r<168?"".concat(Math.round(r/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function $(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function Q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||V(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||V(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function V(e,t){if(e){if("string"==typeof e)return K(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return K(e,t)}}var X=a.Typography.Text,Y=a.theme.useToken,Z={not_added:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"New"},modified:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},deleted:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},renamed:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"},conflicted:{color:"red",icon:l().createElement(o.WarningOutlined,null),label:"Conflict"},created:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"Created"}},ee=function(){var e,t,n,c,u,s,d,f,m=h(),y=Y().token,b=(0,i.useAPIClient)(),g=p(),v=g.selectedRepo,E=g.refreshRepos,S=Q((0,r.useState)(null),2),w=S[0],O=S[1],k=Q((0,r.useState)(null),2),x=k[0],C=k[1],I=Q((0,r.useState)(null),2),P=I[0],j=I[1],A=(0,r.useCallback)((e=function(e){var t,n,r,l,o,i,c,u;return function(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:if(!v)return[2];O(e),j(null),s.label=1;case 1:return s.trys.push([1,4,5,6]),[4,b.request({url:"gitManager:".concat(e),method:"post",params:{repositoryId:v.id}})];case 2:return t=s.sent().data,j({action:e,success:!0,message:m("{{action}} completed successfully",{action:e})}),a.message.success(m("{{action}} completed",{action:e})),"status"===e&&C((null==t||null==(n=t.data)?void 0:n.data)||(null==t?void 0:t.data)),[4,E()];case 3:return s.sent(),[3,6];case 4:return u=(null==(r=s.sent())||null==(c=r.response)||null==(i=c.data)||null==(o=i.errors)||null==(l=o[0])?void 0:l.message)||m("{{action}} failed",{action:e}),j({action:e,success:!1,message:u}),a.message.error(u),[3,6];case 5:return O(null),[7];case 6:return[2]}})},t=function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){$(a,r,l,o,i,"next",e)}function i(e){$(a,r,l,o,i,"throw",e)}o(void 0)})},function(e){return t.apply(this,arguments)}),[b,v,E]);if(!v)return l().createElement(a.Empty,{description:m("No repository selected")});if("connected"!==v.status)return l().createElement(a.Empty,{description:m("Repository not cloned yet")});var B=x?J((null==(n=x.not_added)?void 0:n.map(function(e){return{file:e,status:"not_added"}}))||[]).concat(J((null==(c=x.modified)?void 0:c.map(function(e){return{file:e,status:"modified"}}))||[]),J((null==(u=x.deleted)?void 0:u.map(function(e){return{file:e,status:"deleted"}}))||[]),J((null==(s=x.renamed)?void 0:s.map(function(e){return{file:"string"==typeof e?e:e.to,status:"renamed"}}))||[]),J((null==(d=x.conflicted)?void 0:d.map(function(e){return{file:e,status:"conflicted"}}))||[]),J((null==(f=x.created)?void 0:f.map(function(e){return{file:e,status:"created"}}))||[])):[];return l().createElement("div",null,l().createElement(a.Space,{size:"middle",wrap:!0,style:{marginBottom:24}},l().createElement(a.Button,{size:"large",icon:l().createElement(o.SyncOutlined,null),loading:"fetch"===w,onClick:function(){return A("fetch")}},m("Fetch")),l().createElement(a.Button,{size:"large",type:"primary",icon:l().createElement(o.CloudDownloadOutlined,null),loading:"pull"===w,onClick:function(){return A("pull")}},m("Pull")),l().createElement(a.Button,{size:"large",icon:l().createElement(o.CloudUploadOutlined,null),loading:"push"===w,onClick:function(){return A("push")}},m("Push")),l().createElement(a.Button,{size:"large",icon:l().createElement(o.BranchesOutlined,null),loading:"status"===w,onClick:function(){return A("status")}},m("Status"))),P&&l().createElement(a.Card,{size:"small",style:{marginBottom:16,borderColor:P.success?y.colorSuccessBorder:y.colorErrorBorder}},l().createElement(a.Space,null,P.success?l().createElement(o.CheckCircleOutlined,{style:{color:y.colorSuccess}}):l().createElement(o.WarningOutlined,{style:{color:y.colorError}}),l().createElement(X,{strong:!0},P.action),l().createElement(X,null,P.message))),x&&l().createElement(a.Card,{title:m("Working Directory Status"),size:"small"},l().createElement(a.Descriptions,{column:3,size:"small",style:{marginBottom:16}},l().createElement(a.Descriptions.Item,{label:"Branch"},l().createElement(a.Tag,{icon:l().createElement(o.BranchesOutlined,null),color:"blue"},x.current)),l().createElement(a.Descriptions.Item,{label:"Tracking"},l().createElement(X,null,x.tracking||"N/A")),l().createElement(a.Descriptions.Item,{label:"Changes"},l().createElement(a.Space,null,x.ahead>0&&l().createElement(a.Badge,{count:"".concat(x.ahead," ahead"),style:{backgroundColor:y.colorPrimary}}),x.behind>0&&l().createElement(a.Badge,{count:"".concat(x.behind," behind"),style:{backgroundColor:y.colorWarning}}),0===x.ahead&&0===x.behind&&l().createElement(a.Tag,{color:"green",icon:l().createElement(o.CheckCircleOutlined,null)},"Up to date")))),B.length>0?l().createElement(l().Fragment,null,l().createElement(X,{strong:!0,style:{display:"block",marginBottom:8}},B.length," changed file(s)"),l().createElement(a.List,{size:"small",dataSource:B,renderItem:function(e){var t=Z[e.status]||{color:"default",icon:l().createElement(o.QuestionCircleOutlined,null),label:e.status};return l().createElement(a.List.Item,{style:{padding:"4px 0"}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:80,textAlign:"center"}},t.icon," ",t.label),l().createElement(X,{code:!0,style:{fontSize:13}},e.file)))}})):l().createElement(X,{type:"secondary"},"Working directory clean")))},et=a.Typography.Text,en=a.theme.useToken,er=function(){var e=h(),t=en().token,n=p(),i=n.repos,c=n.selectedRepo,u=n.setSelectedRepo,s=n.refreshRepos;return(0,r.useEffect)(function(){s()},[]),l().createElement("div",{style:{height:"100%"}},l().createElement("div",{style:{padding:"12px 0",marginBottom:16,display:"flex",alignItems:"center",gap:12,borderBottom:"1px solid ".concat(t.colorBorderSecondary)}},l().createElement(o.DatabaseOutlined,{style:{fontSize:16}}),l().createElement(et,{strong:!0},"Repository:"),l().createElement(a.Select,{style:{minWidth:250},placeholder:e("Select a repository"),value:null==c?void 0:c.id,onChange:function(e){u(i.find(function(t){return t.id===e})||null)},options:i.map(function(t){return{label:l().createElement(a.Space,null,t.name,l().createElement(a.Tag,{color:"connected"===t.status?"green":"default",style:{fontSize:11}},"connected"===t.status?e("Connected"):e("Disconnected"))),value:t.id}}),allowClear:!0,onClear:function(){return u(null)}}),c&&l().createElement(et,{type:"secondary",style:{fontSize:12}},c.repoUrl)),l().createElement(a.Tabs,{type:"card",defaultActiveKey:"repos",destroyInactiveTabPane:!0,items:[{key:"repos",label:l().createElement("span",null,l().createElement(o.DatabaseOutlined,null)," ",e("Repositories")),children:l().createElement(w,null)},{key:"explorer",label:l().createElement("span",null,l().createElement(o.FolderOutlined,null)," ",e("File Explorer")),children:l().createElement(z,null)},{key:"history",label:l().createElement("span",null,l().createElement(o.HistoryOutlined,null)," ",e("History")),children:l().createElement(_,null)},{key:"operations",label:l().createElement("span",null,l().createElement(o.ToolOutlined,null)," ",e("Operations")),children:l().createElement(ee,null)}]}))},el=function(){return l().createElement(y,null,l().createElement(er,null))}}}]);
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const CommitHistory: React.FC;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const FileExplorer: React.FC;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const GitManagerSettings: React.FC;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const GitOperations: React.FC;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const RepositoryConfig: React.FC;
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ interface Repository {
3
+ id: number;
4
+ name: string;
5
+ repoUrl: string;
6
+ localPath: string;
7
+ defaultBranch: string;
8
+ status: string;
9
+ }
10
+ interface GitManagerContextType {
11
+ repos: Repository[];
12
+ selectedRepo: Repository | null;
13
+ loading: boolean;
14
+ branches: string[];
15
+ currentBranch: string;
16
+ setSelectedRepo: (repo: Repository | null) => void;
17
+ refreshRepos: () => Promise<void>;
18
+ refreshBranches: () => Promise<void>;
19
+ }
20
+ export declare function useGitManager(): GitManagerContextType;
21
+ export declare const GitManagerProvider: React.FC<{
22
+ children: React.ReactNode;
23
+ }>;
24
+ export {};
@@ -0,0 +1,5 @@
1
+ import { Plugin } from '@nocobase/client';
2
+ export declare class PluginGitManagerClient extends Plugin {
3
+ load(): Promise<void>;
4
+ }
5
+ export default PluginGitManagerClient;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@nocobase/client"),require("react"),require("@ant-design/icons"),require("antd")):"function"==typeof define&&define.amd?define("plugin-git-manager",["@nocobase/client","react","@ant-design/icons","antd"],t):"object"==typeof exports?exports["plugin-git-manager"]=t(require("@nocobase/client"),require("react"),require("@ant-design/icons"),require("antd")):e["plugin-git-manager"]=t(e["@nocobase/client"],e.react,e["@ant-design/icons"],e.antd)}(self,function(e,t,n,r){return function(){var o,i,u,a,c,f,l={41:function(e){e.exports=function(e,t){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(e,t),t}},482:function(e){"use strict";e.exports=n},772:function(t){"use strict";t.exports=e},721:function(e){"use strict";e.exports=r},156:function(e){"use strict";e.exports=t}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return l[e](n,n.exports,p),n.exports}p.m=l,p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.f={},p.e=function(e){return Promise.all(Object.keys(p.f).reduce(function(t,n){return p.f[n](e,t),t},[]))},p.u=function(e){return""+e+".e08d760e0b01997c.js"},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o={},i="plugin-git-manager:",p.l=function(e,t,n,r){if(o[e])return void o[e].push(t);if(void 0!==n)for(var u,a,c=document.getElementsByTagName("script"),f=0;f<c.length;f++){var l=c[f];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==i+n){u=l;break}}u||(a=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,p.nc&&u.setAttribute("nonce",p.nc),u.setAttribute("data-webpack",i+n),u.src=e),o[e]=[t];var s=function(t,n){u.onerror=u.onload=null,clearTimeout(d);var r=o[e];if(delete o[e],u.parentNode&&u.parentNode.removeChild(u),r&&r.forEach(function(e){return e(n)}),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),a&&document.head.appendChild(u)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(u=window.__webpack_public_path__||"/").endsWith("/")||(u+="/"),p.p=u+"static/plugins/plugin-git-manager/dist/client/",a={909:0},p.f.j=function(e,t){var n=p.o(a,e)?a[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=a[e]=[t,r]});t.push(n[2]=r);var o=p.p+p.u(e),i=Error();p.l(o,function(t){if(p.o(a,e)&&(0!==(n=a[e])&&(a[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},c=function(e,t){var n,r,o=t[0],i=t[1],u=t[2],c=0;if(o.some(function(e){return 0!==a[e]})){for(n in i)p.o(i,n)&&(p.m[n]=i[n]);u&&u(p)}for(e&&e(t);c<o.length;c++)r=o[c],p.o(a,r)&&a[r]&&a[r][0](),a[r]=0},(f=self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).forEach(c.bind(null,0)),f.push=c.bind(null,f.push.bind(f));var d={};return!function(){"use strict";p.r(d),p.d(d,{PluginGitManagerClient:function(){return s}});var e=p(772),t=p(156),n=p.n(t),r=p(41);function o(e,t,n,r,o,i,u){try{var a=e[i](u),c=a.value}catch(e){n(e);return}a.done?t(c):Promise.resolve(c).then(r,o)}function i(e,t,n){return(i=f()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&a(o,n.prototype),o}).apply(null,arguments)}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){var t="function"==typeof Map?new Map:void 0;return(c=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return i(e,arguments,u(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),a(n,e)})(e)}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(f=function(){return!!e})()}var l=n().lazy(function(){return r("imported_7nc0nn_component",p.e("100").then(p.bind(p,45))).then(function(e){return{default:e.GitManagerSettings}})}),s=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=u(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,f()?Reflect.construct(e,t||[],u(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&a(n,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var c=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=t.call(e,u)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(e){return t.app.pluginSettingsManager.add("git-manager",{title:t.t("Git Manager"),icon:"BranchesOutlined",Component:l,aclSnippet:"pm.plugin-git-manager"}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,i){var u=e.apply(t,n);function a(e){o(u,r,i,a,c,"next",e)}function c(e){o(u,r,i,a,c,"throw",e)}a(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(c(e.Plugin));d.default=s}(),d}()});
@@ -0,0 +1,2 @@
1
+ export declare const namespace = "plugin-git-manager";
2
+ export declare function useT(): (str: string, options?: any) => string;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ module.exports = {
11
+ "@nocobase/client": "2.0.41",
12
+ "react": "18.2.0",
13
+ "@nocobase/server": "2.0.41",
14
+ "antd": "5.24.2",
15
+ "@ant-design/icons": "5.6.1",
16
+ "@nocobase/actions": "2.0.41",
17
+ "@nocobase/database": "2.0.41"
18
+ };
@@ -0,0 +1,2 @@
1
+ export * from './server';
2
+ export { default } from './server';
package/dist/index.js ADDED
@@ -0,0 +1,48 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __create = Object.create;
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropNames = Object.getOwnPropertyNames;
14
+ var __getProtoOf = Object.getPrototypeOf;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __export = (target, all) => {
17
+ for (var name in all)
18
+ __defProp(target, name, { get: all[name], enumerable: true });
19
+ };
20
+ var __copyProps = (to, from, except, desc) => {
21
+ if (from && typeof from === "object" || typeof from === "function") {
22
+ for (let key of __getOwnPropNames(from))
23
+ if (!__hasOwnProp.call(to, key) && key !== except)
24
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
25
+ }
26
+ return to;
27
+ };
28
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
29
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
30
+ // If the importer is in node compatibility mode or this is not an ESM
31
+ // file that has been converted to a CommonJS file using a Babel-
32
+ // compatible transform (i.e. "__esModule" has not been set), then set
33
+ // "default" to the CommonJS "module.exports" for node compatibility.
34
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
+ mod
36
+ ));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var src_exports = {};
39
+ __export(src_exports, {
40
+ default: () => import_server.default
41
+ });
42
+ module.exports = __toCommonJS(src_exports);
43
+ __reExport(src_exports, require("./server"), module.exports);
44
+ var import_server = __toESM(require("./server"));
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ ...require("./server")
48
+ });
@@ -0,0 +1,45 @@
1
+ {
2
+ "Git Manager": "Git Manager",
3
+ "Repositories": "Repositories",
4
+ "File Explorer": "File Explorer",
5
+ "History": "History",
6
+ "Operations": "Operations",
7
+ "Repository Name": "Repository Name",
8
+ "Repository URL": "Repository URL",
9
+ "Local Path": "Local Path",
10
+ "Personal Access Token": "Personal Access Token",
11
+ "Default Branch": "Default Branch",
12
+ "Add Repository": "Add Repository",
13
+ "Edit Repository": "Edit Repository",
14
+ "Clone": "Clone",
15
+ "Pull": "Pull",
16
+ "Push": "Push",
17
+ "Fetch": "Fetch",
18
+ "Status": "Status",
19
+ "Commit": "Commit",
20
+ "Author": "Author",
21
+ "Date": "Date",
22
+ "Message": "Message",
23
+ "Files Changed": "Files Changed",
24
+ "No repository selected": "No repository selected",
25
+ "Select a repository": "Select a repository",
26
+ "Connected": "Connected",
27
+ "Disconnected": "Disconnected",
28
+ "Error": "Error",
29
+ "Loading...": "Loading...",
30
+ "View Diff": "View Diff",
31
+ "File Content": "File Content",
32
+ "Edit": "Edit",
33
+ "Deleted": "Deleted",
34
+ "Repository updated": "Repository updated",
35
+ "Repository added": "Repository added",
36
+ "Failed to save": "Failed to save",
37
+ "Clone successful": "Clone successful",
38
+ "Clone failed": "Clone failed",
39
+ "Delete this repository?": "Delete this repository?",
40
+ "Repository not cloned yet": "Repository not cloned yet",
41
+ "Working Directory Status": "Working Directory Status",
42
+ "{{action}} completed successfully": "{{action}} completed successfully",
43
+ "{{action}} completed": "{{action}} completed",
44
+ "{{action}} failed": "{{action}} failed"
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "Git Manager": "Quản lý Git",
3
+ "Repositories": "Kho mã nguồn",
4
+ "File Explorer": "Trình duyệt tệp",
5
+ "History": "Lịch sử",
6
+ "Operations": "Thao tác",
7
+ "Repository Name": "Tên kho",
8
+ "Repository URL": "URL kho",
9
+ "Local Path": "Đường dẫn cục bộ",
10
+ "Personal Access Token": "Mã truy cập cá nhân",
11
+ "Default Branch": "Nhánh mặc định",
12
+ "Add Repository": "Thêm kho",
13
+ "Edit Repository": "Sửa kho",
14
+ "Clone": "Sao chép",
15
+ "Pull": "Kéo về",
16
+ "Push": "Đẩy lên",
17
+ "Fetch": "Lấy về",
18
+ "Status": "Trạng thái",
19
+ "Commit": "Commit",
20
+ "Author": "Tác giả",
21
+ "Date": "Ngày",
22
+ "Message": "Tin nhắn",
23
+ "Files Changed": "Tệp thay đổi",
24
+ "No repository selected": "Chưa chọn kho mã nguồn",
25
+ "Select a repository": "Chọn một kho mã nguồn",
26
+ "Connected": "Đã kết nối",
27
+ "Disconnected": "Chưa kết nối",
28
+ "Error": "Lỗi",
29
+ "Loading...": "Đang tải...",
30
+ "View Diff": "Xem khác biệt",
31
+ "File Content": "Nội dung tệp",
32
+ "Edit": "Sửa",
33
+ "Deleted": "Đã xóa",
34
+ "Repository updated": "Đã cập nhật kho",
35
+ "Repository added": "Đã thêm kho",
36
+ "Failed to save": "Lưu thất bại",
37
+ "Clone successful": "Sao chép thành công",
38
+ "Clone failed": "Sao chép thất bại",
39
+ "Delete this repository?": "Xóa kho này?",
40
+ "Repository not cloned yet": "Kho chưa được sao chép",
41
+ "Working Directory Status": "Trạng thái thư mục làm việc",
42
+ "{{action}} completed successfully": "{{action}} hoàn tất thành công",
43
+ "{{action}} completed": "{{action}} hoàn tất",
44
+ "{{action}} failed": "{{action}} thất bại"
45
+ }