@whyour/qinglong 0.5.3 → 0.6.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 (124) hide show
  1. package/README-en.md +18 -0
  2. package/README.md +18 -0
  3. package/docker/docker-entrypoint.sh +4 -3
  4. package/docker/nginx.conf +1 -1
  5. package/package.json +7 -3
  6. package/shell/share.sh +6 -70
  7. package/shell/update.sh +66 -22
  8. package/static/build/api/system.js +47 -9
  9. package/static/build/config/index.js +5 -0
  10. package/static/build/config/util.js +9 -1
  11. package/static/build/data/cron.js +3 -3
  12. package/static/build/data/dependence.js +16 -4
  13. package/static/build/loaders/initData.js +1 -1
  14. package/static/build/loaders/initTask.js +3 -3
  15. package/static/build/loaders/server.js +23 -8
  16. package/static/build/services/dependence.js +37 -10
  17. package/static/build/services/system.js +44 -1
  18. package/static/build/shared/pLimit.js +6 -6
  19. package/static/dist/1138.c3a50127.async.js +4 -0
  20. package/static/dist/{4804.183d71af.async.js → 1295.06026141.async.js} +3 -3
  21. package/static/dist/3330.950e8570.async.js +1 -0
  22. package/static/dist/3669.4f05548e.async.js +3 -0
  23. package/static/dist/37.8af37a28.async.js +6 -0
  24. package/static/dist/3800.34124d62.async.js +2 -0
  25. package/static/dist/{4163.a1d279c3.async.js → 4163.a363bae0.async.js} +1 -1
  26. package/static/dist/5035.ac19ee2f.async.js +67 -0
  27. package/static/dist/{7567.a224d0a6.async.js → 6556.f0e353dc.async.js} +2 -2
  28. package/static/dist/6644.5df1dec2.async.js +62 -0
  29. package/static/dist/7393.86229389.async.js +1 -0
  30. package/static/dist/8044.a70b53d2.async.js +18 -0
  31. package/static/dist/{8844.8525fd2e.async.js → 806.b28198b3.async.js} +2 -2
  32. package/static/dist/819.a02c513d.async.js +4 -0
  33. package/static/dist/8347.c3ea8f4e.async.js +6 -0
  34. package/static/dist/8969.2ad6c360.async.js +1 -0
  35. package/static/dist/index.html +1 -1
  36. package/static/dist/layouts__index.34e4586a.async.js +1 -0
  37. package/static/dist/{src__pages__404.8794c158.async.js → src__pages__404.970a2ae1.async.js} +1 -1
  38. package/static/dist/src__pages__config__index.215d2363.async.js +22 -0
  39. package/static/dist/src__pages__crontab__detail.bd91d91a.async.js +3 -0
  40. package/static/dist/src__pages__crontab__index.26308df9.async.js +19 -0
  41. package/static/dist/src__pages__crontab__logModal.c4254d3f.async.js +2 -0
  42. package/static/dist/src__pages__crontab__modal.eebf3433.async.js +5 -0
  43. package/static/dist/src__pages__crontab__type.136454fe.async.js +1 -0
  44. package/static/dist/src__pages__crontab__viewManageModal.4013da38.async.js +1 -0
  45. package/static/dist/src__pages__dependence__index.c863e8a7.async.js +2 -0
  46. package/static/dist/{src__pages__script__saveModal.312a0beb.async.js → src__pages__dependence__logModal.d1ee1a9f.async.js} +2 -2
  47. package/static/dist/src__pages__dependence__modal.58ad2c1a.async.js +5 -0
  48. package/static/dist/src__pages__diff__index.9f5c7a8e.async.js +5 -0
  49. package/static/dist/src__pages__env__editNameModal.07873464.async.js +4 -0
  50. package/static/dist/src__pages__env__index.f90a2f57.async.js +2 -0
  51. package/static/dist/src__pages__env__modal.50ed7bfe.async.js +5 -0
  52. package/static/dist/src__pages__error__index.dd1a4c16.async.js +4 -0
  53. package/static/dist/src__pages__initialization__index.af6852bf.async.js +21 -0
  54. package/static/dist/src__pages__log__index.e6c628e8.async.js +1 -0
  55. package/static/dist/src__pages__login__index.419baa77.async.js +2 -0
  56. package/static/dist/src__pages__script__editModal.3ae4162a.async.js +4 -0
  57. package/static/dist/{src__pages__script__renameModal.ea3b6689.async.js → src__pages__script__editNameModal.c2c2fd10.async.js} +2 -2
  58. package/static/dist/src__pages__script__index.a1f04db0.async.js +23 -0
  59. package/static/dist/src__pages__script__renameModal.c7990ca9.async.js +4 -0
  60. package/static/dist/src__pages__script__saveModal.d0a7e413.async.js +4 -0
  61. package/static/dist/src__pages__script__setting.d79e1f45.async.js +4 -0
  62. package/static/dist/src__pages__setting__about.5138ea49.async.js +1 -0
  63. package/static/dist/src__pages__setting__appModal.457f03c0.async.js +4 -0
  64. package/static/dist/src__pages__setting__checkUpdate.e8512ada.async.js +1 -0
  65. package/static/dist/src__pages__setting__index.b8a741cf.async.js +2 -0
  66. package/static/dist/src__pages__setting__loginLog.195a2809.async.js +18 -0
  67. package/static/dist/src__pages__setting__notification.5156672c.async.js +21 -0
  68. package/static/dist/src__pages__setting__other.8e242852.async.js +1 -0
  69. package/static/dist/src__pages__setting__progress.bd2dfeee.async.js +1 -0
  70. package/static/dist/src__pages__setting__security.70bccf38.async.js +4 -0
  71. package/static/dist/src__pages__subscription__index.3233e4c5.async.js +2 -0
  72. package/static/dist/src__pages__subscription__logModal.ef8e52b8.async.js +2 -0
  73. package/static/dist/src__pages__subscription__modal.b8fe92d2.async.js +4 -0
  74. package/static/dist/umi.f60e35ef.js +12 -0
  75. package/version.yaml +6 -5
  76. package/static/dist/1654.e06fbac5.async.js +0 -1
  77. package/static/dist/3800.5488ae14.async.js +0 -2
  78. package/static/dist/4346.5ab6fdc1.async.js +0 -1
  79. package/static/dist/4491.3c2d8653.async.js +0 -4
  80. package/static/dist/5008.c612bbdb.async.js +0 -11
  81. package/static/dist/5035.2489750b.async.js +0 -67
  82. package/static/dist/7393.d9ed4b3a.async.js +0 -1
  83. package/static/dist/8037.386b415d.async.js +0 -1
  84. package/static/dist/8612.b6557431.async.js +0 -1
  85. package/static/dist/8657.805a96f7.async.js +0 -18
  86. package/static/dist/921.198cefa6.async.js +0 -6
  87. package/static/dist/9583.49d0845f.async.js +0 -4
  88. package/static/dist/layouts__index.3db43e0b.async.js +0 -1
  89. package/static/dist/src__pages__config__index.7fb61af5.async.js +0 -22
  90. package/static/dist/src__pages__crontab__detail.32a7846b.async.js +0 -3
  91. package/static/dist/src__pages__crontab__index.5af3329c.async.js +0 -19
  92. package/static/dist/src__pages__crontab__logModal.22faa907.async.js +0 -2
  93. package/static/dist/src__pages__crontab__modal.6d17fdcf.async.js +0 -5
  94. package/static/dist/src__pages__crontab__type.ff7e0172.async.js +0 -1
  95. package/static/dist/src__pages__crontab__viewManageModal.2dea2918.async.js +0 -1
  96. package/static/dist/src__pages__dependence__index.3b140a79.async.js +0 -2
  97. package/static/dist/src__pages__dependence__logModal.e49658d5.async.js +0 -4
  98. package/static/dist/src__pages__dependence__modal.94ff002a.async.js +0 -5
  99. package/static/dist/src__pages__diff__index.240e4991.async.js +0 -5
  100. package/static/dist/src__pages__env__editNameModal.047bb3ba.async.js +0 -4
  101. package/static/dist/src__pages__env__index.48602d18.async.js +0 -2
  102. package/static/dist/src__pages__env__modal.8b48ffa4.async.js +0 -5
  103. package/static/dist/src__pages__error__index.a4305d27.async.js +0 -4
  104. package/static/dist/src__pages__initialization__index.978a7f09.async.js +0 -21
  105. package/static/dist/src__pages__log__index.ae245070.async.js +0 -1
  106. package/static/dist/src__pages__login__index.8eb4df8e.async.js +0 -2
  107. package/static/dist/src__pages__script__editModal.02b12902.async.js +0 -4
  108. package/static/dist/src__pages__script__editNameModal.2773cb7b.async.js +0 -4
  109. package/static/dist/src__pages__script__index.679510cd.async.js +0 -6
  110. package/static/dist/src__pages__script__setting.11abc6ae.async.js +0 -4
  111. package/static/dist/src__pages__setting__about.1460b7fa.async.js +0 -1
  112. package/static/dist/src__pages__setting__appModal.74267529.async.js +0 -4
  113. package/static/dist/src__pages__setting__checkUpdate.ce2e30bb.async.js +0 -4
  114. package/static/dist/src__pages__setting__index.0bfefeff.async.js +0 -2
  115. package/static/dist/src__pages__setting__loginLog.0708083b.async.js +0 -18
  116. package/static/dist/src__pages__setting__notification.15a286d0.async.js +0 -21
  117. package/static/dist/src__pages__setting__other.00a69cf4.async.js +0 -1
  118. package/static/dist/src__pages__setting__security.62b6b562.async.js +0 -4
  119. package/static/dist/src__pages__subscription__index.708b6c8f.async.js +0 -2
  120. package/static/dist/src__pages__subscription__logModal.3a1a8e58.async.js +0 -2
  121. package/static/dist/src__pages__subscription__modal.c034f25a.async.js +0 -4
  122. package/static/dist/umi.fb5757cf.js +0 -11
  123. /package/static/dist/{9439.59dcf306.chunk.css → 1095.59dcf306.chunk.css} +0 -0
  124. /package/static/dist/{8612.d2d0a2c7.chunk.css → 8969.d2d0a2c7.chunk.css} +0 -0
@@ -32,6 +32,7 @@ const dependence_1 = require("../data/dependence");
32
32
  const cross_spawn_1 = require("cross-spawn");
33
33
  const sock_1 = __importDefault(require("./sock"));
34
34
  const sequelize_1 = require("sequelize");
35
+ const util_1 = require("../config/util");
35
36
  const dayjs_1 = __importDefault(require("dayjs"));
36
37
  const pLimit_1 = __importDefault(require("../shared/pLimit"));
37
38
  let DependenceService = class DependenceService {
@@ -116,9 +117,14 @@ let DependenceService = class DependenceService {
116
117
  return doc && doc.get({ plain: true });
117
118
  }
118
119
  async updateLog(ids, log) {
119
- const doc = await dependence_1.DependenceModel.findOne({ where: { id: ids } });
120
- const newLog = (doc === null || doc === void 0 ? void 0 : doc.log) ? [...doc.log, log] : [log];
121
- await dependence_1.DependenceModel.update({ log: newLog }, { where: { id: ids } });
120
+ pLimit_1.default.updateDepLog(async () => {
121
+ const docs = await dependence_1.DependenceModel.findAll({ where: { id: ids } });
122
+ for (const doc of docs) {
123
+ const newLog = (doc === null || doc === void 0 ? void 0 : doc.log) ? [...doc.log, log] : [log];
124
+ await dependence_1.DependenceModel.update({ log: newLog }, { where: { id: doc.id } });
125
+ }
126
+ return null;
127
+ });
122
128
  }
123
129
  installOrUninstallDependency(dependency, isInstall = true, force = false) {
124
130
  return pLimit_1.default.runOneByOne(() => {
@@ -128,10 +134,10 @@ let DependenceService = class DependenceService {
128
134
  ? dependence_1.DependenceStatus.installing
129
135
  : dependence_1.DependenceStatus.removing;
130
136
  await dependence_1.DependenceModel.update({ status }, { where: { id: depIds } });
131
- const socketMessageType = !force
137
+ const socketMessageType = isInstall
132
138
  ? 'installDependence'
133
139
  : 'uninstallDependence';
134
- const depName = dependency.name;
140
+ const depName = dependency.name.trim();
135
141
  const depRunCommand = (isInstall
136
142
  ? dependence_1.InstallDependenceCommandTypes
137
143
  : dependence_1.unInstallDependenceCommandTypes)[dependency.type];
@@ -143,7 +149,28 @@ let DependenceService = class DependenceService {
143
149
  message,
144
150
  references: depIds,
145
151
  });
146
- await this.updateLog(depIds, message);
152
+ this.updateLog(depIds, message);
153
+ // 判断是否已经安装过依赖
154
+ if (isInstall) {
155
+ const getCommandPrefix = dependence_1.GetDependenceCommandTypes[dependency.type];
156
+ const depVersionStr = dependence_1.versionDependenceCommandTypes[dependency.type];
157
+ const [_depName] = dependency.name.trim().split(depVersionStr);
158
+ const depInfo = (await (0, util_1.promiseExecSuccess)(dependency.type === dependence_1.DependenceTypes.linux
159
+ ? `${getCommandPrefix} ${_depName}`
160
+ : `${getCommandPrefix} | grep "${_depName}"`)).replace(/\s{2,}/, ' ');
161
+ if (depInfo) {
162
+ const endTime = (0, dayjs_1.default)();
163
+ const _message = `检测到已经安装 ${_depName}\n\n${depInfo}\n跳过安装\n\n依赖${actionText}成功,结束时间 ${endTime.format('YYYY-MM-DD HH:mm:ss')},耗时 ${endTime.diff(startTime, 'second')} 秒`;
164
+ this.sockService.sendMessage({
165
+ type: socketMessageType,
166
+ message: _message,
167
+ references: depIds,
168
+ });
169
+ this.updateLog(depIds, _message);
170
+ await dependence_1.DependenceModel.update({ status: dependence_1.DependenceStatus.installed }, { where: { id: depIds } });
171
+ return resolve(null);
172
+ }
173
+ }
147
174
  const cp = (0, cross_spawn_1.spawn)(`${depRunCommand} ${depName}`, {
148
175
  shell: '/bin/bash',
149
176
  });
@@ -153,7 +180,7 @@ let DependenceService = class DependenceService {
153
180
  message: data.toString(),
154
181
  references: depIds,
155
182
  });
156
- await this.updateLog(depIds, data.toString());
183
+ this.updateLog(depIds, data.toString());
157
184
  });
158
185
  cp.stderr.on('data', async (data) => {
159
186
  this.sockService.sendMessage({
@@ -161,7 +188,7 @@ let DependenceService = class DependenceService {
161
188
  message: data.toString(),
162
189
  references: depIds,
163
190
  });
164
- await this.updateLog(depIds, data.toString());
191
+ this.updateLog(depIds, data.toString());
165
192
  });
166
193
  cp.on('error', async (err) => {
167
194
  this.sockService.sendMessage({
@@ -169,7 +196,7 @@ let DependenceService = class DependenceService {
169
196
  message: JSON.stringify(err),
170
197
  references: depIds,
171
198
  });
172
- await this.updateLog(depIds, JSON.stringify(err));
199
+ this.updateLog(depIds, JSON.stringify(err));
173
200
  });
174
201
  cp.on('close', async (code) => {
175
202
  const endTime = (0, dayjs_1.default)();
@@ -181,7 +208,7 @@ let DependenceService = class DependenceService {
181
208
  message,
182
209
  references: depIds,
183
210
  });
184
- await this.updateLog(depIds, message);
211
+ this.updateLog(depIds, message);
185
212
  let status = null;
186
213
  if (isSucceed) {
187
214
  status = isInstall
@@ -27,6 +27,8 @@ const got_1 = __importDefault(require("got"));
27
27
  const util_1 = require("../config/util");
28
28
  const const_1 = require("../config/const");
29
29
  const pLimit_1 = __importDefault(require("../shared/pLimit"));
30
+ const tar_1 = __importDefault(require("tar"));
31
+ const path_1 = __importDefault(require("path"));
30
32
  let SystemService = class SystemService {
31
33
  constructor(logger, scheduleService, sockService) {
32
34
  this.logger = logger;
@@ -129,7 +131,7 @@ let SystemService = class SystemService {
129
131
  return false;
130
132
  }
131
133
  async updateSystem() {
132
- const cp = (0, cross_spawn_1.spawn)('ql -l update', { shell: '/bin/bash' });
134
+ const cp = (0, cross_spawn_1.spawn)('ql -l update false', { shell: '/bin/bash' });
133
135
  cp.stdout.on('data', (data) => {
134
136
  this.sockService.sendMessage({
135
137
  type: 'updateSystemVersion',
@@ -150,6 +152,28 @@ let SystemService = class SystemService {
150
152
  });
151
153
  return { code: 200 };
152
154
  }
155
+ async reloadSystem(target) {
156
+ const cp = (0, cross_spawn_1.spawn)(`ql -l reload ${target || ''}`, { shell: '/bin/bash' });
157
+ cp.stdout.on('data', (data) => {
158
+ this.sockService.sendMessage({
159
+ type: 'reloadSystem',
160
+ message: data.toString(),
161
+ });
162
+ });
163
+ cp.stderr.on('data', (data) => {
164
+ this.sockService.sendMessage({
165
+ type: 'reloadSystem',
166
+ message: data.toString(),
167
+ });
168
+ });
169
+ cp.on('error', (err) => {
170
+ this.sockService.sendMessage({
171
+ type: 'reloadSystem',
172
+ message: JSON.stringify(err),
173
+ });
174
+ });
175
+ return { code: 200 };
176
+ }
153
177
  async notify({ title, content }) {
154
178
  const isSuccess = await this.notificationService.notify(title, content);
155
179
  if (isSuccess) {
@@ -185,6 +209,25 @@ let SystemService = class SystemService {
185
209
  return { code: 400, message: '任务未找到' };
186
210
  }
187
211
  }
212
+ async exportData(res) {
213
+ try {
214
+ await tar_1.default.create({ gzip: true, file: config_1.default.dataTgzFile, cwd: config_1.default.rootPath }, ['data']);
215
+ res.download(config_1.default.dataTgzFile);
216
+ }
217
+ catch (error) {
218
+ return res.send({ code: 400, message: error.message });
219
+ }
220
+ }
221
+ async importData() {
222
+ try {
223
+ await (0, util_1.promiseExec)(`rm -rf ${path_1.default.join(config_1.default.tmpPath, 'data')}`);
224
+ await tar_1.default.x({ file: config_1.default.dataTgzFile, cwd: config_1.default.tmpPath });
225
+ return { code: 200 };
226
+ }
227
+ catch (error) {
228
+ return { code: 400, message: error.message };
229
+ }
230
+ }
188
231
  };
189
232
  __decorate([
190
233
  (0, typedi_1.Inject)((type) => notify_1.default),
@@ -9,6 +9,7 @@ const auth_1 = require("../data/auth");
9
9
  class TaskLimit {
10
10
  constructor() {
11
11
  this.oneLimit = (0, p_limit_1.default)(1);
12
+ this.updateLogLimit = (0, p_limit_1.default)(1);
12
13
  this.cpuLimit = (0, p_limit_1.default)(Math.max(os_1.default.cpus().length, 4));
13
14
  this.setCustomLimit();
14
15
  }
@@ -24,14 +25,13 @@ class TaskLimit {
24
25
  }
25
26
  }
26
27
  runWithCpuLimit(fn) {
27
- return this.cpuLimit(() => {
28
- return fn();
29
- });
28
+ return this.cpuLimit(fn);
30
29
  }
31
30
  runOneByOne(fn) {
32
- return this.oneLimit(() => {
33
- return fn();
34
- });
31
+ return this.oneLimit(fn);
32
+ }
33
+ updateDepLog(fn) {
34
+ return this.updateLogLimit(fn);
35
35
  }
36
36
  }
37
37
  exports.default = new TaskLimit();
@@ -0,0 +1,4 @@
1
+ "use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[1138,5812],{86755:function(I,v,t){var j=t(55258),g=(0,j.Z)({scriptUrl:["//at.alicdn.com/t/c/font_3354854_ob5y15ewlyq.js"]});v.Z=g},33538:function(I,v,t){t.r(v),t.d(v,{CrontabStatus:function(){return j},OperationName:function(){return g},OperationPath:function(){return T}});var j=function(a){return a[a.running=0]="running",a[a.queued=.5]="queued",a[a.idle=1]="idle",a[a.disabled=2]="disabled",a}({}),g=function(a){return a[a.\u542F\u7528=0]="\u542F\u7528",a[a.\u7981\u7528=1]="\u7981\u7528",a[a.\u8FD0\u884C=2]="\u8FD0\u884C",a[a.\u505C\u6B62=3]="\u505C\u6B62",a[a.\u7F6E\u9876=4]="\u7F6E\u9876",a[a.\u53D6\u6D88\u7F6E\u9876=5]="\u53D6\u6D88\u7F6E\u9876",a}({}),T=function(a){return a[a.enable=0]="enable",a[a.disable=1]="disable",a[a.run=2]="run",a[a.stop=3]="stop",a[a.pin=4]="pin",a[a.unpin=5]="unpin",a}({})},71138:function(I,v,t){t.r(v),t.d(v,{default:function(){return oe}});var j=t(12342),g=t.n(j),T=t(25359),a=t.n(T),P=t(57213),u=t.n(P),x=t(49811),q=t.n(x),U=t(54306),M=t.n(U),b=t(63313),l=t(67393),h=t(28756),f=t(84163),n=t(22159),y=t(24378),k=t(2947),C=t(95176),R=t(5558),O=t(14797),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"},Y=o,J=t(46420),L=function(F,E){return b.createElement(J.Z,(0,O.Z)((0,O.Z)({},F),{},{ref:E,icon:Y}))};L.displayName="MinusCircleOutlined";var G=b.forwardRef(L),X=t(26839),ee=t(86755),W=t(33538),e=t(11527),te=["key","name"],ae=["key","name"],_=[{name:"\u547D\u4EE4",value:"command"},{name:"\u540D\u79F0",value:"name"},{name:"\u5B9A\u65F6\u89C4\u5219",value:"schedule"},{name:"\u72B6\u6001",value:"status"},{name:"\u6807\u7B7E",value:"labels"}],re={Reg:"",NotReg:"",In:"select",Nin:"select"},ne=[{name:"\u5305\u542B",value:"Reg"},{name:"\u4E0D\u5305\u542B",value:"NotReg"},{name:"\u5C5E\u4E8E",value:"In",type:"select"},{name:"\u4E0D\u5C5E\u4E8E",value:"Nin",type:"select"}],le=[{name:"\u987A\u5E8F",value:"ASC"},{name:"\u5012\u5E8F",value:"DESC"}],ie={status:[{name:"\u8FD0\u884C\u4E2D",value:W.CrontabStatus.running},{name:"\u7A7A\u95F2\u4E2D",value:W.CrontabStatus.idle},{name:"\u5DF2\u7981\u7528",value:W.CrontabStatus.disabled}]},K=function(D){return D.and="\u4E14",D.or="\u6216",D}(K||{}),ue=function(F){var E=F.view,$=F.handleCancel,Q=F.visible,se=l.Z.useForm(),de=M()(se,1),A=de[0],ce=(0,b.useState)(!1),z=M()(ce,2),me=z[0],H=z[1],pe=(0,b.useState)("and"),N=M()(pe,2),S=N[0],ve=N[1],Z=l.Z.useWatch("filters",A),he=function(){var d=q()(a()().mark(function r(s){var c,B,p,w;return a()().wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return H(!0),s.filterRelation=S,c=E?"put":"post",i.prev=3,i.next=6,C.W[c]("".concat(R.Z.apiPrefix,"crons/views"),E?u()(u()({},s),{},{id:E.id}):s);case 6:B=i.sent,p=B.code,w=B.data,p===200&&$(w),H(!1),i.next=16;break;case 13:i.prev=13,i.t0=i.catch(3),H(!1);case 16:case"end":return i.stop()}},r,null,[[3,13]])}));return function(s){return d.apply(this,arguments)}}();(0,b.useEffect)(function(){E||A.resetFields(),A.setFieldsValue(E||{filters:[{property:"command",operation:"Reg"}]})},[E,Q]);var ge=(0,e.jsx)(h.Z,{style:{width:80},children:ne.map(function(d){return(0,e.jsx)(h.Z.Option,{value:d.value,children:d.name},d.name)})}),V=function(r){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return(0,e.jsx)(h.Z,{style:s,children:r.map(function(c){return(0,e.jsx)(h.Z.Option,{value:c.value,children:c.name},c.name)})})},be=(0,e.jsx)(h.Z,{style:{width:80},children:le.map(function(d){return(0,e.jsx)(h.Z.Option,{value:d.value,children:d.name},d.name)})}),fe=function(r){var s;return(0,e.jsx)(h.Z,{mode:"tags",allowClear:!0,placeholder:"\u8F93\u5165\u540E\u56DE\u8F66\u589E\u52A0\u81EA\u5B9A\u4E49\u9009\u9879",children:(s=ie[r])===null||s===void 0?void 0:s.map(function(c){return(0,e.jsx)(h.Z.Option,{value:c.value,children:c.name},c.name)})})};return(0,e.jsx)(f.Z,{title:E?"\u7F16\u8F91\u89C6\u56FE":"\u65B0\u5EFA\u89C6\u56FE",open:Q,forceRender:!0,width:580,centered:!0,maskClosable:!1,onOk:function(){A.validateFields().then(function(r){he(r)}).catch(function(r){console.log("Validate Failed:",r)})},onCancel:function(){return $()},confirmLoading:me,children:(0,e.jsxs)(l.Z,{form:A,layout:"vertical",name:"env_modal",children:[(0,e.jsx)(l.Z.Item,{name:"name",label:"\u89C6\u56FE\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u89C6\u56FE\u540D\u79F0"}],children:(0,e.jsx)(n.Z,{placeholder:"\u8BF7\u8F93\u5165\u89C6\u56FE\u540D\u79F0"})}),(0,e.jsx)(l.Z.List,{name:"filters",children:function(r,s){var c=s.add,B=s.remove;return(0,e.jsxs)("div",{style:{position:"relative"},className:"view-filters-container ".concat(r.length>1?"active":""),children:[r.length>1&&(0,e.jsx)("div",{style:{position:"absolute",width:50,borderRadius:10,border:"1px solid rgb(190, 220, 255)",borderRight:"none",height:56*(r.length-1),top:46,left:15},children:(0,e.jsx)(y.Z,{type:"primary",size:"small",style:{position:"absolute",top:"50%",translate:"-50% -50%",padding:"0 3px",cursor:"pointer"},onClick:function(){ve(S==="and"?"or":"and")},children:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:K[S]}),(0,e.jsx)(ee.Z,{type:"ql-icon-d-caret"})]})})}),(0,e.jsxs)("div",{children:[r.map(function(p){var w=p.key,m=p.name,i=g()(p,te);return(0,e.jsx)(l.Z.Item,{label:m===0?"\u7B5B\u9009\u6761\u4EF6":"",style:{marginBottom:0},required:!0,className:"filter-item",children:(0,e.jsxs)(k.Z,{className:"view-create-modal-filters",align:"baseline",children:[(0,e.jsx)(l.Z.Item,u()(u()({},i),{},{name:[m,"property"],rules:[{required:!0}],children:V(_,{width:90})})),(0,e.jsx)(l.Z.Item,u()(u()({},i),{},{name:[m,"operation"],rules:[{required:!0}],children:ge})),(0,e.jsx)(l.Z.Item,u()(u()({},i),{},{name:[m,"value"],rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5185\u5BB9"}],children:re[Z==null?void 0:Z[m].operation]==="select"?fe(Z==null?void 0:Z[m].property):(0,e.jsx)(n.Z,{placeholder:"\u8BF7\u8F93\u5165\u5185\u5BB9"})})),m!==0&&(0,e.jsx)(G,{onClick:function(){return B(m)}})]})},w)}),(0,e.jsx)(l.Z.Item,{children:(0,e.jsxs)("a",{onClick:function(){return c({property:"command",operation:"Reg"})},children:[(0,e.jsx)(X.Z,{}),"\u65B0\u589E\u7B5B\u9009\u6761\u4EF6"]})})]})]})}}),(0,e.jsx)(l.Z.List,{name:"sorts",children:function(r,s){var c=s.add,B=s.remove;return(0,e.jsxs)("div",{style:{position:"relative"},className:"view-filters-container ".concat(r.length>1?"active":""),children:[r.length>1&&(0,e.jsx)("div",{style:{position:"absolute",width:50,borderRadius:10,border:"1px solid rgb(190, 220, 255)",borderRight:"none",height:56*(r.length-1),top:46,left:15},children:(0,e.jsx)(y.Z,{type:"primary",size:"small",style:{position:"absolute",top:"50%",translate:"-50% -50%",padding:"0 3px",cursor:"pointer"},children:(0,e.jsx)(e.Fragment,{children:(0,e.jsx)("span",{children:K[S]})})})}),(0,e.jsxs)("div",{children:[r.map(function(p){var w=p.key,m=p.name,i=g()(p,ae);return(0,e.jsx)(l.Z.Item,{label:m===0?"\u6392\u5E8F\u65B9\u5F0F":"",style:{marginBottom:0},className:"filter-item",children:(0,e.jsxs)(k.Z,{className:"view-create-modal-sorts",align:"baseline",children:[(0,e.jsx)(l.Z.Item,u()(u()({},i),{},{name:[m,"property"],rules:[{required:!0}],children:V(_)})),(0,e.jsx)(l.Z.Item,u()(u()({},i),{},{name:[m,"type"],rules:[{required:!0}],children:be})),(0,e.jsx)(G,{onClick:function(){return B(m)}})]})},w)}),(0,e.jsx)(l.Z.Item,{children:(0,e.jsxs)("a",{onClick:function(){return c({property:"command",type:"ASC"})},children:[(0,e.jsx)(X.Z,{}),"\u65B0\u589E\u6392\u5E8F\u65B9\u5F0F"]})})]})]})}})]})})},oe=ue},5558:function(I,v){var t=window.__ENV__QlBaseUrl||"/";v.Z={siteName:"\u9752\u9F99",apiPrefix:"".concat(t,"api/"),authKey:"token",layouts:[{name:"primary",include:[/.*/],exclude:[/(\/(en|zh))*\/login/]}],i18n:{languages:[{key:"pt-br",title:"Portugu\xEAs",flag:"/portugal.svg"},{key:"en",title:"English",flag:"/america.svg"},{key:"zh",title:"\u4E2D\u6587",flag:"/china.svg"}],defaultLanguage:"en"},scopes:[{name:"\u5B9A\u65F6\u4EFB\u52A1",value:"crons"},{name:"\u73AF\u5883\u53D8\u91CF",value:"envs"},{name:"\u8BA2\u9605\u7BA1\u7406",value:"subscriptions"},{name:"\u914D\u7F6E\u6587\u4EF6",value:"configs"},{name:"\u811A\u672C\u7BA1\u7406",value:"scripts"},{name:"\u65E5\u5FD7\u7BA1\u7406",value:"logs"},{name:"\u4F9D\u8D56\u7BA1\u7406",value:"dependencies"},{name:"\u7CFB\u7EDF\u4FE1\u606F",value:"system"}],scopesMap:{crons:"\u5B9A\u65F6\u4EFB\u52A1",envs:"\u73AF\u5883\u53D8\u91CF",subscriptions:"\u8BA2\u9605\u7BA1\u7406",configs:"\u914D\u7F6E\u6587\u4EF6",scripts:"\u811A\u672C\u7BA1\u7406",logs:"\u65E5\u5FD7\u7BA1\u7406",dependencies:"\u4F9D\u8D56\u7BA1\u7406",system:"\u7CFB\u7EDF\u4FE1\u606F"},notificationModes:[{value:"gotify",label:"Gotify"},{value:"goCqHttpBot",label:"GoCqHttpBot"},{value:"serverChan",label:"Server\u9171"},{value:"pushDeer",label:"PushDeer"},{value:"bark",label:"Bark"},{value:"telegramBot",label:"Telegram\u673A\u5668\u4EBA"},{value:"dingtalkBot",label:"\u9489\u9489\u673A\u5668\u4EBA"},{value:"weWorkBot",label:"\u4F01\u4E1A\u5FAE\u4FE1\u673A\u5668\u4EBA"},{value:"weWorkApp",label:"\u4F01\u4E1A\u5FAE\u4FE1\u5E94\u7528"},{value:"aibotk",label:"\u667A\u80FD\u5FAE\u79D8\u4E66"},{value:"iGot",label:"IGot"},{value:"pushPlus",label:"PushPlus"},{value:"chat",label:"\u7FA4\u6656chat"},{value:"email",label:"\u90AE\u7BB1"},{value:"lark",label:"\u98DE\u4E66\u673A\u5668\u4EBA"},{value:"webhook",label:"\u81EA\u5B9A\u4E49\u901A\u77E5"},{value:"closed",label:"\u5DF2\u5173\u95ED"}],notificationModeMap:{gotify:[{label:"gotifyUrl",tip:"gotify\u7684url\u5730\u5740,\u4F8B\u5982 https://push.example.de:8080",required:!0},{label:"gotifyToken",tip:"gotify\u7684\u6D88\u606F\u5E94\u7528token\u7801",required:!0},{label:"gotifyPriority",tip:"\u63A8\u9001\u6D88\u606F\u7684\u4F18\u5148\u7EA7"}],chat:[{label:"chatUrl",tip:"chat\u7684url\u5730\u5740",required:!0},{label:"chatToken",tip:"chat\u7684token\u7801",required:!0}],goCqHttpBot:[{label:"goCqHttpBotUrl",tip:"\u63A8\u9001\u5230\u4E2A\u4EBAQQ: http://127.0.0.1/send_private_msg\uFF0C\u7FA4\uFF1Ahttp://127.0.0.1/send_group_msg",required:!0},{label:"goCqHttpBotToken",tip:"\u8BBF\u95EE\u5BC6\u94A5",required:!0},{label:"goCqHttpBotQq",tip:"\u5982\u679CGOBOT_URL\u8BBE\u7F6E /send_private_msg \u5219\u9700\u8981\u586B\u5165 user_id=\u4E2A\u4EBAQQ \u76F8\u53CD\u5982\u679C\u662F /send_group_msg \u5219\u9700\u8981\u586B\u5165 group_id=QQ\u7FA4",required:!0}],serverChan:[{label:"serverChanKey",tip:"Server\u9171SENDKEY",required:!0}],pushDeer:[{label:"pushDeerKey",tip:"PushDeer\u7684Key\uFF0Chttps://github.com/easychen/pushdeer",required:!0},{label:"pushDeerUrl",tip:"PushDeer\u7684\u81EA\u67B6API endpoint\uFF0C\u9ED8\u8BA4\u662F https://api2.pushdeer.com/message/push"}],bark:[{label:"barkPush",tip:"Bark\u7684\u4FE1\u606FIP/\u8BBE\u5907\u7801\uFF0C\u4F8B\u5982\uFF1Ahttps://api.day.app/XXXXXXXX",required:!0},{label:"barkIcon",tip:"BARK\u63A8\u9001\u56FE\u6807,\u81EA\u5B9A\u4E49\u63A8\u9001\u56FE\u6807 (\u9700iOS15\u6216\u4EE5\u4E0A\u624D\u80FD\u663E\u793A)"},{label:"barkSound",tip:"BARK\u63A8\u9001\u94C3\u58F0,\u94C3\u58F0\u5217\u8868\u53BBAPP\u67E5\u770B\u590D\u5236\u586B\u5199"},{label:"barkGroup",tip:"BARK\u63A8\u9001\u6D88\u606F\u7684\u5206\u7EC4, \u9ED8\u8BA4\u4E3Aqinglong"}],telegramBot:[{label:"telegramBotToken",tip:"telegram\u673A\u5668\u4EBA\u7684token\uFF0C\u4F8B\u5982\uFF1A1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw",required:!0},{label:"telegramBotUserId",tip:"telegram\u7528\u6237\u7684id\uFF0C\u4F8B\u5982\uFF1A129xxx206",required:!0},{label:"telegramBotProxyHost",tip:"\u4EE3\u7406IP"},{label:"telegramBotProxyPort",tip:"\u4EE3\u7406\u7AEF\u53E3"},{label:"telegramBotProxyAuth",tip:"telegram\u4EE3\u7406\u914D\u7F6E\u8BA4\u8BC1\u53C2\u6570, \u7528\u6237\u540D\u4E0E\u5BC6\u7801\u7528\u82F1\u6587\u5192\u53F7\u8FDE\u63A5 user:password"},{label:"telegramBotApiHost",tip:"telegram api\u81EA\u5EFA\u7684\u53CD\u5411\u4EE3\u7406\u5730\u5740\uFF0C\u9ED8\u8BA4tg\u5B98\u65B9api"}],dingtalkBot:[{label:"dingtalkBotToken",tip:"\u9489\u9489\u673A\u5668\u4EBAwebhook token\uFF0C\u4F8B\u5982\uFF1A5a544165465465645d0f31dca676e7bd07415asdasd",required:!0},{label:"dingtalkBotSecret",tip:"\u5BC6\u94A5\uFF0C\u673A\u5668\u4EBA\u5B89\u5168\u8BBE\u7F6E\u9875\u9762\uFF0C\u52A0\u7B7E\u4E00\u680F\u4E0B\u9762\u663E\u793A\u7684SEC\u5F00\u5934\u7684\u5B57\u7B26\u4E32"}],weWorkBot:[{label:"weWorkBotKey",tip:"\u4F01\u4E1A\u5FAE\u4FE1\u673A\u5668\u4EBA\u7684 webhook(\u8BE6\u89C1\u6587\u6863 https://work.weixin.qq.com/api/doc/90000/90136/91770)\uFF0C\u4F8B\u5982\uFF1A693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa",required:!0},{label:"weWorkOrigin",tip:"\u4F01\u4E1A\u5FAE\u4FE1\u4EE3\u7406\u5730\u5740"}],weWorkApp:[{label:"weWorkAppKey",tip:"corpid,corpsecret,touser(\u6CE8:\u591A\u4E2A\u6210\u5458ID\u4F7F\u7528|\u9694\u5F00),agentid,\u6D88\u606F\u7C7B\u578B(\u9009\u586B,\u4E0D\u586B\u9ED8\u8BA4\u6587\u672C\u6D88\u606F\u7C7B\u578B) \u6CE8\u610F\u7528,\u53F7\u9694\u5F00(\u82F1\u6587\u8F93\u5165\u6CD5\u7684\u9017\u53F7)\uFF0C\u4F8B\u5982\uFF1Awwcfrs,B-76WERQ,qinglong,1000001,2COat",required:!0},{label:"weWorkOrigin",tip:"\u4F01\u4E1A\u5FAE\u4FE1\u4EE3\u7406\u5730\u5740"}],aibotk:[{label:"aibotkKey",tip:"\u5BC6\u94A5key,\u667A\u80FD\u5FAE\u79D8\u4E66\u4E2A\u4EBA\u4E2D\u5FC3\u83B7\u53D6apikey\uFF0C\u7533\u8BF7\u5730\u5740\uFF1Ahttps://wechat.aibotk.com/signup?from=ql",required:!0},{label:"aibotkType",tip:"\u53D1\u9001\u7684\u76EE\u6807\uFF0C\u7FA4\u7EC4\u6216\u8005\u597D\u53CB",required:!0,placeholder:"\u8BF7\u8F93\u5165\u8981\u53D1\u9001\u7684\u76EE\u6807",items:[{value:"room",label:"\u7FA4\u804A"},{value:"contact",label:"\u597D\u53CB"}]},{label:"aibotkName",tip:"\u8981\u53D1\u9001\u7684\u7528\u6237\u6635\u79F0\u6216\u7FA4\u540D\uFF0C\u5982\u679C\u76EE\u6807\u662F\u7FA4\uFF0C\u9700\u8981\u586B\u7FA4\u540D\uFF0C\u5982\u679C\u76EE\u6807\u662F\u597D\u53CB\uFF0C\u9700\u8981\u586B\u597D\u53CB\u6635\u79F0",required:!0}],iGot:[{label:"iGotPushKey",tip:"iGot\u7684\u4FE1\u606F\u63A8\u9001key\uFF0C\u4F8B\u5982\uFF1Ahttps://push.hellyw.com/XXXXXXXX",required:!0}],pushPlus:[{label:"pushPlusToken",tip:"\u5FAE\u4FE1\u626B\u7801\u767B\u5F55\u540E\u4E00\u5BF9\u4E00\u63A8\u9001\u6216\u4E00\u5BF9\u591A\u63A8\u9001\u4E0B\u9762\u7684token(\u60A8\u7684Token)\uFF0C\u4E0D\u63D0\u4F9BPUSH_PLUS_USER\u5219\u9ED8\u8BA4\u4E3A\u4E00\u5BF9\u4E00\u63A8\u9001\uFF0C\u53C2\u8003 https://www.pushplus.plus/",required:!0},{label:"pushPlusUser",tip:"\u4E00\u5BF9\u591A\u63A8\u9001\u7684\u201C\u7FA4\u7EC4\u7F16\u7801\u201D\uFF08\u4E00\u5BF9\u591A\u63A8\u9001\u4E0B\u9762->\u60A8\u7684\u7FA4\u7EC4(\u5982\u65E0\u5219\u65B0\u5EFA)->\u7FA4\u7EC4\u7F16\u7801\uFF0C\u5982\u679C\u60A8\u662F\u521B\u5EFA\u7FA4\u7EC4\u4EBA\u3002\u4E5F\u9700\u70B9\u51FB\u201C\u67E5\u770B\u4E8C\u7EF4\u7801\u201D\u626B\u63CF\u7ED1\u5B9A\uFF0C\u5426\u5219\u4E0D\u80FD\u63A5\u53D7\u7FA4\u7EC4\u6D88\u606F\u63A8\u9001\uFF09"}],lark:[{label:"larkKey",tip:"\u98DE\u4E66\u7FA4\u7EC4\u673A\u5668\u4EBA\uFF1Ahttps://www.feishu.cn/hc/zh-CN/articles/360024984973",required:!0}],email:[{label:"emailService",tip:"\u90AE\u7BB1\u670D\u52A1\u540D\u79F0\uFF0C\u6BD4\u5982126\u3001163\u3001Gmail\u3001QQ\u7B49\uFF0C\u652F\u6301\u5217\u8868https://nodemailer.com/smtp/well-known/",required:!0},{label:"emailUser",tip:"\u90AE\u7BB1\u5730\u5740",required:!0},{label:"emailPass",tip:"\u90AE\u7BB1SMTP\u6388\u6743\u7801",required:!0}],webhook:[{label:"webhookMethod",tip:"\u8BF7\u6C42\u65B9\u6CD5",required:!0,items:[{value:"GET"},{value:"POST"},{value:"PUT"}]},{label:"webhookContentType",tip:"\u8BF7\u6C42\u5934Content-Type",required:!0,items:[{value:"application/json"},{value:"multipart/form-data"},{value:"application/x-www-form-urlencoded"}]},{label:"webhookUrl",tip:"\u8BF7\u6C42\u94FE\u63A5\u4EE5http\u6216\u8005https\u5F00\u5934\u3002url\u6216\u8005body\u4E2D\u5FC5\u987B\u5305\u542B$title\uFF0C$content\u53EF\u9009\uFF0C\u5BF9\u5E94api\u5185\u5BB9\u7684\u4F4D\u7F6E",required:!0,placeholder:`https://xxx.cn/api?content=$title
2
+ `},{label:"webhookHeaders",tip:"\u8BF7\u6C42\u5934\u683C\u5F0FCustom-Header1: Header1\uFF0C\u591A\u4E2A\u6362\u884C\u5206\u5272",placeholder:`Custom-Header1: Header1
3
+ Custom-Header2: Header2`},{label:"webhookBody",tip:"\u8BF7\u6C42\u4F53\u683C\u5F0Fkey1: value1\uFF0C\u591A\u4E2A\u6362\u884C\u5206\u5272\u3002url\u6216\u8005body\u4E2D\u5FC5\u987B\u5305\u542B$title\uFF0C$content\u53EF\u9009\uFF0C\u5BF9\u5E94api\u5185\u5BB9\u7684\u4F4D\u7F6E",placeholder:`key1: $title
4
+ key2: $content`}]},documentTitleMap:{"/login":"\u767B\u5F55","/initialization":"\u521D\u59CB\u5316","/crontab":"\u5B9A\u65F6\u4EFB\u52A1","/env":"\u73AF\u5883\u53D8\u91CF","/subscription":"\u8BA2\u9605\u7BA1\u7406","/config":"\u914D\u7F6E\u6587\u4EF6","/script":"\u811A\u672C\u7BA1\u7406","/diff":"\u5BF9\u6BD4\u5DE5\u5177","/log":"\u65E5\u5FD7\u7BA1\u7406","/setting":"\u7CFB\u7EDF\u8BBE\u7F6E","/error":"\u9519\u8BEF\u65E5\u5FD7","/dependence":"\u4F9D\u8D56\u7BA1\u7406"},dependenceTypes:["nodejs","python3","linux"]}},95176:function(I,v,t){t.d(v,{W:function(){return h}});var j=t(25359),g=t.n(j),T=t(49811),a=t.n(T),P=t(9835),u=t(5558),x=t(87075),q=t(73669);P.ZP.config({duration:2});var U=Date.now(),M=function(n){if(n.response){var y=n.response.data?n.response.data.message||n.message||n.response.data:n.response.statusText,k=n.response.status;[502,504].includes(k)?x.history.push("/error"):k===401?x.history.location.pathname!=="/login"&&(P.ZP.error("\u767B\u5F55\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55"),localStorage.removeItem(u.Z.authKey),x.history.push("/login")):P.ZP.error({content:y,style:{maxWidth:500,margin:"0 auto"}})}else console.log(n.message);return Promise.reject(n)},b=q.Z.create({timeout:6e4,params:{t:U}}),l=["/api/user/login","/open/auth/token","/api/user/two-factor/login","/api/system","/api/user/init","/api/user/notification/init"];b.interceptors.request.use(function(f){var n=localStorage.getItem(u.Z.authKey);return n&&!l.includes(f.url)&&(f.headers.Authorization="Bearer ".concat(n)),f}),b.interceptors.response.use(function(){var f=a()(g()().mark(function n(y){var k,C,R;return g()().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(k=y.status,![502,504].includes(k)){o.next=5;break}x.history.push("/error"),o.next=18;break;case 5:if(k!==401){o.next=9;break}x.history.location.pathname!=="/login"&&(localStorage.removeItem(u.Z.authKey),x.history.push("/login")),o.next=18;break;case 9:return o.prev=9,C=y.data,C.code!==200&&(R=C.message||C.data,R&&P.ZP.error({content:R,style:{maxWidth:500,margin:"0 auto"}})),o.abrupt("return",C);case 15:o.prev=15,o.t0=o.catch(9);case 17:return o.abrupt("return",y);case 18:return o.abrupt("return",y);case 19:case"end":return o.stop()}},n,null,[[9,15]])}));return function(n){return f.apply(this,arguments)}}(),M);var h=b}}]);