@whyour/qinglong 0.10.1 → 0.11.1

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 (122) hide show
  1. package/README-en.md +10 -0
  2. package/README.md +6 -0
  3. package/docker/front.conf +1 -1
  4. package/package.json +6 -6
  5. package/sample/notify.js +11 -1
  6. package/sample/notify.py +4 -0
  7. package/shell/otask.sh +1 -1
  8. package/shell/share.sh +19 -3
  9. package/shell/update.sh +7 -6
  10. package/static/build/api/cron.js +6 -0
  11. package/static/build/api/script.js +1 -1
  12. package/static/build/config/serverEnv.js +5 -2
  13. package/static/build/data/auth.js +2 -2
  14. package/static/build/data/cron.js +7 -1
  15. package/static/build/data/cronView.js +1 -1
  16. package/static/build/data/dependence.js +6 -6
  17. package/static/build/data/env.js +1 -1
  18. package/static/build/data/notify.js +3 -1
  19. package/static/build/data/subscription.js +1 -1
  20. package/static/build/loaders/db.js +12 -0
  21. package/static/build/protos/cron.js +97 -37
  22. package/static/build/protos/health.js +25 -30
  23. package/static/build/schedule/addCron.js +19 -11
  24. package/static/build/schedule/delCron.js +1 -1
  25. package/static/build/services/cron.js +23 -21
  26. package/static/build/services/notify.js +2 -2
  27. package/static/build/services/system.js +3 -3
  28. package/static/build/shared/pLimit.js +6 -6
  29. package/static/dist/1124.0d983222.async.js +1 -0
  30. package/static/dist/{4906.493cf3fd.async.js → 2393.4404a4fc.async.js} +1 -1
  31. package/static/dist/{8969.26b0efff.async.js → 3435.4a54080b.async.js} +1 -1
  32. package/static/dist/419.f84c4548.async.js +1 -0
  33. package/static/dist/7362.9fde9d80.async.js +1 -0
  34. package/static/dist/{8130.10d10b7d.async.js → 745.3be9ce9f.async.js} +1 -1
  35. package/static/dist/7987.5bace809.async.js +1 -0
  36. package/static/dist/8008.882bf214.async.js +1 -0
  37. package/static/dist/8078.4add9375.async.js +1 -0
  38. package/static/dist/833.ca85f497.async.js +1 -0
  39. package/static/dist/9120.ef78d517.async.js +1 -0
  40. package/static/dist/index.html +1 -1
  41. package/static/dist/layouts__index.0909c66d.chunk.css +1 -0
  42. package/static/dist/layouts__index.ed595716.async.js +1 -0
  43. package/static/dist/{src__pages__404.f77cf9a2.async.js → src__pages__404.e6b13931.async.js} +1 -1
  44. package/static/dist/src__pages__config__index.f41a22d4.async.js +1 -0
  45. package/static/dist/src__pages__crontab__detail.b4fc2995.async.js +1 -0
  46. package/static/dist/src__pages__crontab__index.776dba58.async.js +1 -0
  47. package/static/dist/src__pages__crontab__logModal.0fb6d62d.async.js +1 -0
  48. package/static/dist/src__pages__crontab__modal.0b01490c.async.js +1 -0
  49. package/static/dist/{src__pages__crontab__type.bd5374bd.async.js → src__pages__crontab__type.a798cac7.async.js} +1 -1
  50. package/static/dist/src__pages__crontab__viewManageModal.67aa809d.async.js +1 -0
  51. package/static/dist/src__pages__dependence__index.1908bb39.async.js +1 -0
  52. package/static/dist/src__pages__dependence__logModal.8ecc9316.async.js +1 -0
  53. package/static/dist/src__pages__dependence__modal.9c12e6bb.async.js +1 -0
  54. package/static/dist/src__pages__diff__index.e23d088b.async.js +1 -0
  55. package/static/dist/src__pages__env__editNameModal.6f1edde6.async.js +1 -0
  56. package/static/dist/src__pages__env__index.3b08292e.async.js +1 -0
  57. package/static/dist/src__pages__env__modal.ca6133e6.async.js +1 -0
  58. package/static/dist/src__pages__error__index.0b4f4a22.async.js +1 -0
  59. package/static/dist/src__pages__initialization__index.51ebefcb.async.js +1 -0
  60. package/static/dist/src__pages__log__index.4010410c.async.js +1 -0
  61. package/static/dist/{src__pages__login__index.ce467c16.async.js → src__pages__login__index.8667d8d2.async.js} +1 -1
  62. package/static/dist/src__pages__script__editModal.b020a209.async.js +1 -0
  63. package/static/dist/src__pages__script__editNameModal.9220eb1a.async.js +1 -0
  64. package/static/dist/src__pages__script__index.6184a17e.async.js +1 -0
  65. package/static/dist/src__pages__script__renameModal.d6192fed.async.js +1 -0
  66. package/static/dist/src__pages__script__saveModal.eac5e9e7.async.js +1 -0
  67. package/static/dist/src__pages__script__setting.b958297b.async.js +1 -0
  68. package/static/dist/src__pages__setting__about.992010a5.async.js +1 -0
  69. package/static/dist/src__pages__setting__appModal.7563e7b0.async.js +1 -0
  70. package/static/dist/src__pages__setting__index.2aa66013.async.js +1 -0
  71. package/static/dist/{src__pages__setting__loginLog.4f883eb7.async.js → src__pages__setting__loginLog.2f2b0a78.async.js} +1 -1
  72. package/static/dist/src__pages__setting__notification.e8ce9bdc.async.js +1 -0
  73. package/static/dist/src__pages__setting__other.c6067975.async.js +1 -0
  74. package/static/dist/{src__pages__setting__progress.ab51bf0a.async.js → src__pages__setting__progress.f58bffae.async.js} +1 -1
  75. package/static/dist/src__pages__setting__security.cae5c68d.async.js +1 -0
  76. package/static/dist/src__pages__subscription__index.3266194c.async.js +1 -0
  77. package/static/dist/{src__pages__subscription__logModal.3037cb57.async.js → src__pages__subscription__logModal.a023b07e.async.js} +1 -1
  78. package/static/dist/src__pages__subscription__modal.49a1a657.async.js +1 -0
  79. package/static/dist/umi.ff82d609.js +1 -0
  80. package/version.yaml +10 -12
  81. package/static/dist/1925.b3032a5e.async.js +0 -1
  82. package/static/dist/3330.485d94a3.async.js +0 -1
  83. package/static/dist/3639.62f45f5e.async.js +0 -1
  84. package/static/dist/4618.cc1776f5.async.js +0 -1
  85. package/static/dist/4714.bbe9fae0.async.js +0 -1
  86. package/static/dist/8044.129359a6.async.js +0 -1
  87. package/static/dist/819.525cbfda.async.js +0 -1
  88. package/static/dist/layouts__index.20e4a8b2.async.js +0 -1
  89. package/static/dist/layouts__index.ddfcd364.chunk.css +0 -1
  90. package/static/dist/src__pages__config__index.fedea3f9.async.js +0 -1
  91. package/static/dist/src__pages__crontab__detail.ad4729f7.async.js +0 -1
  92. package/static/dist/src__pages__crontab__index.a82cfa81.async.js +0 -1
  93. package/static/dist/src__pages__crontab__logModal.ad170a0f.async.js +0 -1
  94. package/static/dist/src__pages__crontab__modal.696faf3d.async.js +0 -1
  95. package/static/dist/src__pages__crontab__viewManageModal.1bb04623.async.js +0 -1
  96. package/static/dist/src__pages__dependence__index.9f871d7e.async.js +0 -1
  97. package/static/dist/src__pages__dependence__logModal.b8dfb9bf.async.js +0 -1
  98. package/static/dist/src__pages__dependence__modal.77688c64.async.js +0 -1
  99. package/static/dist/src__pages__diff__index.73c27cfb.async.js +0 -1
  100. package/static/dist/src__pages__env__editNameModal.0b8b8511.async.js +0 -1
  101. package/static/dist/src__pages__env__index.c2e7f61a.async.js +0 -1
  102. package/static/dist/src__pages__env__modal.d4bcf3f1.async.js +0 -1
  103. package/static/dist/src__pages__error__index.9d76a461.async.js +0 -1
  104. package/static/dist/src__pages__initialization__index.7cb87ba4.async.js +0 -1
  105. package/static/dist/src__pages__log__index.8da82aea.async.js +0 -1
  106. package/static/dist/src__pages__script__editModal.dddd633e.async.js +0 -1
  107. package/static/dist/src__pages__script__editNameModal.159d0a29.async.js +0 -1
  108. package/static/dist/src__pages__script__index.123b12c6.async.js +0 -1
  109. package/static/dist/src__pages__script__renameModal.d4788f88.async.js +0 -1
  110. package/static/dist/src__pages__script__saveModal.f5fc2c94.async.js +0 -1
  111. package/static/dist/src__pages__script__setting.5004f9a6.async.js +0 -1
  112. package/static/dist/src__pages__setting__about.ef6f0636.async.js +0 -1
  113. package/static/dist/src__pages__setting__appModal.52ba0fb4.async.js +0 -1
  114. package/static/dist/src__pages__setting__index.ccb20d34.async.js +0 -1
  115. package/static/dist/src__pages__setting__notification.4f6be181.async.js +0 -1
  116. package/static/dist/src__pages__setting__other.ef42b461.async.js +0 -1
  117. package/static/dist/src__pages__setting__security.fed987f7.async.js +0 -1
  118. package/static/dist/src__pages__subscription__index.a434b6c5.async.js +0 -1
  119. package/static/dist/src__pages__subscription__modal.91d85c79.async.js +0 -1
  120. package/static/dist/umi.740bd8f7.js +0 -1
  121. /package/static/dist/{1095.59dcf306.chunk.css → 2182.59dcf306.chunk.css} +0 -0
  122. /package/static/dist/{8969.d2d0a2c7.chunk.css → 3435.d2d0a2c7.chunk.css} +0 -0
@@ -3,25 +3,77 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CronClient = exports.CronService = exports.DeleteCronResponse = exports.DeleteCronRequest = exports.AddCronResponse = exports.AddCronRequest = exports.ICron = exports.protobufPackage = void 0;
6
+ exports.CronClient = exports.CronService = exports.DeleteCronResponse = exports.DeleteCronRequest = exports.AddCronResponse = exports.AddCronRequest = exports.ICron = exports.ISchedule = exports.protobufPackage = void 0;
7
7
  /* eslint-disable */
8
8
  const grpc_js_1 = require("@grpc/grpc-js");
9
9
  const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
- exports.protobufPackage = 'com.ql.cron';
10
+ exports.protobufPackage = "com.ql.cron";
11
+ function createBaseISchedule() {
12
+ return { schedule: "" };
13
+ }
14
+ exports.ISchedule = {
15
+ encode(message, writer = minimal_1.default.Writer.create()) {
16
+ if (message.schedule !== "") {
17
+ writer.uint32(10).string(message.schedule);
18
+ }
19
+ return writer;
20
+ },
21
+ decode(input, length) {
22
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
23
+ let end = length === undefined ? reader.len : reader.pos + length;
24
+ const message = createBaseISchedule();
25
+ while (reader.pos < end) {
26
+ const tag = reader.uint32();
27
+ switch (tag >>> 3) {
28
+ case 1:
29
+ if (tag !== 10) {
30
+ break;
31
+ }
32
+ message.schedule = reader.string();
33
+ continue;
34
+ }
35
+ if ((tag & 7) === 4 || tag === 0) {
36
+ break;
37
+ }
38
+ reader.skipType(tag & 7);
39
+ }
40
+ return message;
41
+ },
42
+ fromJSON(object) {
43
+ return { schedule: isSet(object.schedule) ? String(object.schedule) : "" };
44
+ },
45
+ toJSON(message) {
46
+ const obj = {};
47
+ message.schedule !== undefined && (obj.schedule = message.schedule);
48
+ return obj;
49
+ },
50
+ create(base) {
51
+ return exports.ISchedule.fromPartial(base !== null && base !== void 0 ? base : {});
52
+ },
53
+ fromPartial(object) {
54
+ var _a;
55
+ const message = createBaseISchedule();
56
+ message.schedule = (_a = object.schedule) !== null && _a !== void 0 ? _a : "";
57
+ return message;
58
+ },
59
+ };
11
60
  function createBaseICron() {
12
- return { id: '', schedule: '', command: '' };
61
+ return { id: "", schedule: "", command: "", extraSchedules: [] };
13
62
  }
14
63
  exports.ICron = {
15
64
  encode(message, writer = minimal_1.default.Writer.create()) {
16
- if (message.id !== '') {
65
+ if (message.id !== "") {
17
66
  writer.uint32(10).string(message.id);
18
67
  }
19
- if (message.schedule !== '') {
68
+ if (message.schedule !== "") {
20
69
  writer.uint32(18).string(message.schedule);
21
70
  }
22
- if (message.command !== '') {
71
+ if (message.command !== "") {
23
72
  writer.uint32(26).string(message.command);
24
73
  }
74
+ for (const v of message.extraSchedules) {
75
+ exports.ISchedule.encode(v, writer.uint32(34).fork()).ldelim();
76
+ }
25
77
  return writer;
26
78
  },
27
79
  decode(input, length) {
@@ -32,25 +84,31 @@ exports.ICron = {
32
84
  const tag = reader.uint32();
33
85
  switch (tag >>> 3) {
34
86
  case 1:
35
- if (tag != 10) {
87
+ if (tag !== 10) {
36
88
  break;
37
89
  }
38
90
  message.id = reader.string();
39
91
  continue;
40
92
  case 2:
41
- if (tag != 18) {
93
+ if (tag !== 18) {
42
94
  break;
43
95
  }
44
96
  message.schedule = reader.string();
45
97
  continue;
46
98
  case 3:
47
- if (tag != 26) {
99
+ if (tag !== 26) {
48
100
  break;
49
101
  }
50
102
  message.command = reader.string();
51
103
  continue;
104
+ case 4:
105
+ if (tag !== 34) {
106
+ break;
107
+ }
108
+ message.extraSchedules.push(exports.ISchedule.decode(reader, reader.uint32()));
109
+ continue;
52
110
  }
53
- if ((tag & 7) == 4 || tag == 0) {
111
+ if ((tag & 7) === 4 || tag === 0) {
54
112
  break;
55
113
  }
56
114
  reader.skipType(tag & 7);
@@ -59,9 +117,12 @@ exports.ICron = {
59
117
  },
60
118
  fromJSON(object) {
61
119
  return {
62
- id: isSet(object.id) ? String(object.id) : '',
63
- schedule: isSet(object.schedule) ? String(object.schedule) : '',
64
- command: isSet(object.command) ? String(object.command) : '',
120
+ id: isSet(object.id) ? String(object.id) : "",
121
+ schedule: isSet(object.schedule) ? String(object.schedule) : "",
122
+ command: isSet(object.command) ? String(object.command) : "",
123
+ extraSchedules: Array.isArray(object === null || object === void 0 ? void 0 : object.extraSchedules)
124
+ ? object.extraSchedules.map((e) => exports.ISchedule.fromJSON(e))
125
+ : [],
65
126
  };
66
127
  },
67
128
  toJSON(message) {
@@ -69,17 +130,24 @@ exports.ICron = {
69
130
  message.id !== undefined && (obj.id = message.id);
70
131
  message.schedule !== undefined && (obj.schedule = message.schedule);
71
132
  message.command !== undefined && (obj.command = message.command);
133
+ if (message.extraSchedules) {
134
+ obj.extraSchedules = message.extraSchedules.map((e) => e ? exports.ISchedule.toJSON(e) : undefined);
135
+ }
136
+ else {
137
+ obj.extraSchedules = [];
138
+ }
72
139
  return obj;
73
140
  },
74
141
  create(base) {
75
142
  return exports.ICron.fromPartial(base !== null && base !== void 0 ? base : {});
76
143
  },
77
144
  fromPartial(object) {
78
- var _a, _b, _c;
145
+ var _a, _b, _c, _d;
79
146
  const message = createBaseICron();
80
- message.id = (_a = object.id) !== null && _a !== void 0 ? _a : '';
81
- message.schedule = (_b = object.schedule) !== null && _b !== void 0 ? _b : '';
82
- message.command = (_c = object.command) !== null && _c !== void 0 ? _c : '';
147
+ message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
148
+ message.schedule = (_b = object.schedule) !== null && _b !== void 0 ? _b : "";
149
+ message.command = (_c = object.command) !== null && _c !== void 0 ? _c : "";
150
+ message.extraSchedules = ((_d = object.extraSchedules) === null || _d === void 0 ? void 0 : _d.map((e) => exports.ISchedule.fromPartial(e))) || [];
83
151
  return message;
84
152
  },
85
153
  };
@@ -101,13 +169,13 @@ exports.AddCronRequest = {
101
169
  const tag = reader.uint32();
102
170
  switch (tag >>> 3) {
103
171
  case 1:
104
- if (tag != 10) {
172
+ if (tag !== 10) {
105
173
  break;
106
174
  }
107
175
  message.crons.push(exports.ICron.decode(reader, reader.uint32()));
108
176
  continue;
109
177
  }
110
- if ((tag & 7) == 4 || tag == 0) {
178
+ if ((tag & 7) === 4 || tag === 0) {
111
179
  break;
112
180
  }
113
181
  reader.skipType(tag & 7);
@@ -115,16 +183,12 @@ exports.AddCronRequest = {
115
183
  return message;
116
184
  },
117
185
  fromJSON(object) {
118
- return {
119
- crons: Array.isArray(object === null || object === void 0 ? void 0 : object.crons)
120
- ? object.crons.map((e) => exports.ICron.fromJSON(e))
121
- : [],
122
- };
186
+ return { crons: Array.isArray(object === null || object === void 0 ? void 0 : object.crons) ? object.crons.map((e) => exports.ICron.fromJSON(e)) : [] };
123
187
  },
124
188
  toJSON(message) {
125
189
  const obj = {};
126
190
  if (message.crons) {
127
- obj.crons = message.crons.map((e) => (e ? exports.ICron.toJSON(e) : undefined));
191
+ obj.crons = message.crons.map((e) => e ? exports.ICron.toJSON(e) : undefined);
128
192
  }
129
193
  else {
130
194
  obj.crons = [];
@@ -156,7 +220,7 @@ exports.AddCronResponse = {
156
220
  const tag = reader.uint32();
157
221
  switch (tag >>> 3) {
158
222
  }
159
- if ((tag & 7) == 4 || tag == 0) {
223
+ if ((tag & 7) === 4 || tag === 0) {
160
224
  break;
161
225
  }
162
226
  reader.skipType(tag & 7);
@@ -196,13 +260,13 @@ exports.DeleteCronRequest = {
196
260
  const tag = reader.uint32();
197
261
  switch (tag >>> 3) {
198
262
  case 1:
199
- if (tag != 10) {
263
+ if (tag !== 10) {
200
264
  break;
201
265
  }
202
266
  message.ids.push(reader.string());
203
267
  continue;
204
268
  }
205
- if ((tag & 7) == 4 || tag == 0) {
269
+ if ((tag & 7) === 4 || tag === 0) {
206
270
  break;
207
271
  }
208
272
  reader.skipType(tag & 7);
@@ -210,11 +274,7 @@ exports.DeleteCronRequest = {
210
274
  return message;
211
275
  },
212
276
  fromJSON(object) {
213
- return {
214
- ids: Array.isArray(object === null || object === void 0 ? void 0 : object.ids)
215
- ? object.ids.map((e) => String(e))
216
- : [],
217
- };
277
+ return { ids: Array.isArray(object === null || object === void 0 ? void 0 : object.ids) ? object.ids.map((e) => String(e)) : [] };
218
278
  },
219
279
  toJSON(message) {
220
280
  const obj = {};
@@ -251,7 +311,7 @@ exports.DeleteCronResponse = {
251
311
  const tag = reader.uint32();
252
312
  switch (tag >>> 3) {
253
313
  }
254
- if ((tag & 7) == 4 || tag == 0) {
314
+ if ((tag & 7) === 4 || tag === 0) {
255
315
  break;
256
316
  }
257
317
  reader.skipType(tag & 7);
@@ -275,7 +335,7 @@ exports.DeleteCronResponse = {
275
335
  };
276
336
  exports.CronService = {
277
337
  addCron: {
278
- path: '/com.ql.cron.Cron/addCron',
338
+ path: "/com.ql.cron.Cron/addCron",
279
339
  requestStream: false,
280
340
  responseStream: false,
281
341
  requestSerialize: (value) => Buffer.from(exports.AddCronRequest.encode(value).finish()),
@@ -284,7 +344,7 @@ exports.CronService = {
284
344
  responseDeserialize: (value) => exports.AddCronResponse.decode(value),
285
345
  },
286
346
  delCron: {
287
- path: '/com.ql.cron.Cron/delCron',
347
+ path: "/com.ql.cron.Cron/delCron",
288
348
  requestStream: false,
289
349
  responseStream: false,
290
350
  requestSerialize: (value) => Buffer.from(exports.DeleteCronRequest.encode(value).finish()),
@@ -293,7 +353,7 @@ exports.CronService = {
293
353
  responseDeserialize: (value) => exports.DeleteCronResponse.decode(value),
294
354
  },
295
355
  };
296
- exports.CronClient = (0, grpc_js_1.makeGenericClientConstructor)(exports.CronService, 'com.ql.cron.Cron');
356
+ exports.CronClient = (0, grpc_js_1.makeGenericClientConstructor)(exports.CronService, "com.ql.cron.Cron");
297
357
  function isSet(value) {
298
358
  return value !== null && value !== undefined;
299
359
  }
@@ -7,7 +7,7 @@ exports.HealthClient = exports.HealthService = exports.HealthCheckResponse = exp
7
7
  /* eslint-disable */
8
8
  const grpc_js_1 = require("@grpc/grpc-js");
9
9
  const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
- exports.protobufPackage = 'com.ql.health';
10
+ exports.protobufPackage = "com.ql.health";
11
11
  var HealthCheckResponse_ServingStatus;
12
12
  (function (HealthCheckResponse_ServingStatus) {
13
13
  HealthCheckResponse_ServingStatus[HealthCheckResponse_ServingStatus["UNKNOWN"] = 0] = "UNKNOWN";
@@ -15,23 +15,23 @@ var HealthCheckResponse_ServingStatus;
15
15
  HealthCheckResponse_ServingStatus[HealthCheckResponse_ServingStatus["NOT_SERVING"] = 2] = "NOT_SERVING";
16
16
  HealthCheckResponse_ServingStatus[HealthCheckResponse_ServingStatus["SERVICE_UNKNOWN"] = 3] = "SERVICE_UNKNOWN";
17
17
  HealthCheckResponse_ServingStatus[HealthCheckResponse_ServingStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
18
- })(HealthCheckResponse_ServingStatus = exports.HealthCheckResponse_ServingStatus || (exports.HealthCheckResponse_ServingStatus = {}));
18
+ })(HealthCheckResponse_ServingStatus || (exports.HealthCheckResponse_ServingStatus = HealthCheckResponse_ServingStatus = {}));
19
19
  function healthCheckResponse_ServingStatusFromJSON(object) {
20
20
  switch (object) {
21
21
  case 0:
22
- case 'UNKNOWN':
22
+ case "UNKNOWN":
23
23
  return HealthCheckResponse_ServingStatus.UNKNOWN;
24
24
  case 1:
25
- case 'SERVING':
25
+ case "SERVING":
26
26
  return HealthCheckResponse_ServingStatus.SERVING;
27
27
  case 2:
28
- case 'NOT_SERVING':
28
+ case "NOT_SERVING":
29
29
  return HealthCheckResponse_ServingStatus.NOT_SERVING;
30
30
  case 3:
31
- case 'SERVICE_UNKNOWN':
31
+ case "SERVICE_UNKNOWN":
32
32
  return HealthCheckResponse_ServingStatus.SERVICE_UNKNOWN;
33
33
  case -1:
34
- case 'UNRECOGNIZED':
34
+ case "UNRECOGNIZED":
35
35
  default:
36
36
  return HealthCheckResponse_ServingStatus.UNRECOGNIZED;
37
37
  }
@@ -40,25 +40,25 @@ exports.healthCheckResponse_ServingStatusFromJSON = healthCheckResponse_ServingS
40
40
  function healthCheckResponse_ServingStatusToJSON(object) {
41
41
  switch (object) {
42
42
  case HealthCheckResponse_ServingStatus.UNKNOWN:
43
- return 'UNKNOWN';
43
+ return "UNKNOWN";
44
44
  case HealthCheckResponse_ServingStatus.SERVING:
45
- return 'SERVING';
45
+ return "SERVING";
46
46
  case HealthCheckResponse_ServingStatus.NOT_SERVING:
47
- return 'NOT_SERVING';
47
+ return "NOT_SERVING";
48
48
  case HealthCheckResponse_ServingStatus.SERVICE_UNKNOWN:
49
- return 'SERVICE_UNKNOWN';
49
+ return "SERVICE_UNKNOWN";
50
50
  case HealthCheckResponse_ServingStatus.UNRECOGNIZED:
51
51
  default:
52
- return 'UNRECOGNIZED';
52
+ return "UNRECOGNIZED";
53
53
  }
54
54
  }
55
55
  exports.healthCheckResponse_ServingStatusToJSON = healthCheckResponse_ServingStatusToJSON;
56
56
  function createBaseHealthCheckRequest() {
57
- return { service: '' };
57
+ return { service: "" };
58
58
  }
59
59
  exports.HealthCheckRequest = {
60
60
  encode(message, writer = minimal_1.default.Writer.create()) {
61
- if (message.service !== '') {
61
+ if (message.service !== "") {
62
62
  writer.uint32(10).string(message.service);
63
63
  }
64
64
  return writer;
@@ -71,13 +71,13 @@ exports.HealthCheckRequest = {
71
71
  const tag = reader.uint32();
72
72
  switch (tag >>> 3) {
73
73
  case 1:
74
- if (tag != 10) {
74
+ if (tag !== 10) {
75
75
  break;
76
76
  }
77
77
  message.service = reader.string();
78
78
  continue;
79
79
  }
80
- if ((tag & 7) == 4 || tag == 0) {
80
+ if ((tag & 7) === 4 || tag === 0) {
81
81
  break;
82
82
  }
83
83
  reader.skipType(tag & 7);
@@ -85,7 +85,7 @@ exports.HealthCheckRequest = {
85
85
  return message;
86
86
  },
87
87
  fromJSON(object) {
88
- return { service: isSet(object.service) ? String(object.service) : '' };
88
+ return { service: isSet(object.service) ? String(object.service) : "" };
89
89
  },
90
90
  toJSON(message) {
91
91
  const obj = {};
@@ -98,7 +98,7 @@ exports.HealthCheckRequest = {
98
98
  fromPartial(object) {
99
99
  var _a;
100
100
  const message = createBaseHealthCheckRequest();
101
- message.service = (_a = object.service) !== null && _a !== void 0 ? _a : '';
101
+ message.service = (_a = object.service) !== null && _a !== void 0 ? _a : "";
102
102
  return message;
103
103
  },
104
104
  };
@@ -120,13 +120,13 @@ exports.HealthCheckResponse = {
120
120
  const tag = reader.uint32();
121
121
  switch (tag >>> 3) {
122
122
  case 1:
123
- if (tag != 8) {
123
+ if (tag !== 8) {
124
124
  break;
125
125
  }
126
126
  message.status = reader.int32();
127
127
  continue;
128
128
  }
129
- if ((tag & 7) == 4 || tag == 0) {
129
+ if ((tag & 7) === 4 || tag === 0) {
130
130
  break;
131
131
  }
132
132
  reader.skipType(tag & 7);
@@ -134,16 +134,11 @@ exports.HealthCheckResponse = {
134
134
  return message;
135
135
  },
136
136
  fromJSON(object) {
137
- return {
138
- status: isSet(object.status)
139
- ? healthCheckResponse_ServingStatusFromJSON(object.status)
140
- : 0,
141
- };
137
+ return { status: isSet(object.status) ? healthCheckResponse_ServingStatusFromJSON(object.status) : 0 };
142
138
  },
143
139
  toJSON(message) {
144
140
  const obj = {};
145
- message.status !== undefined &&
146
- (obj.status = healthCheckResponse_ServingStatusToJSON(message.status));
141
+ message.status !== undefined && (obj.status = healthCheckResponse_ServingStatusToJSON(message.status));
147
142
  return obj;
148
143
  },
149
144
  create(base) {
@@ -158,7 +153,7 @@ exports.HealthCheckResponse = {
158
153
  };
159
154
  exports.HealthService = {
160
155
  check: {
161
- path: '/com.ql.health.Health/Check',
156
+ path: "/com.ql.health.Health/Check",
162
157
  requestStream: false,
163
158
  responseStream: false,
164
159
  requestSerialize: (value) => Buffer.from(exports.HealthCheckRequest.encode(value).finish()),
@@ -167,7 +162,7 @@ exports.HealthService = {
167
162
  responseDeserialize: (value) => exports.HealthCheckResponse.decode(value),
168
163
  },
169
164
  watch: {
170
- path: '/com.ql.health.Health/Watch',
165
+ path: "/com.ql.health.Health/Watch",
171
166
  requestStream: false,
172
167
  responseStream: true,
173
168
  requestSerialize: (value) => Buffer.from(exports.HealthCheckRequest.encode(value).finish()),
@@ -176,7 +171,7 @@ exports.HealthService = {
176
171
  responseDeserialize: (value) => exports.HealthCheckResponse.decode(value),
177
172
  },
178
173
  };
179
- exports.HealthClient = (0, grpc_js_1.makeGenericClientConstructor)(exports.HealthService, 'com.ql.health.Health');
174
+ exports.HealthClient = (0, grpc_js_1.makeGenericClientConstructor)(exports.HealthService, "com.ql.health.Health");
180
175
  function isSet(value) {
181
176
  return value !== null && value !== undefined;
182
177
  }
@@ -7,24 +7,32 @@ exports.addCron = void 0;
7
7
  const node_schedule_1 = __importDefault(require("node-schedule"));
8
8
  const data_1 = require("./data");
9
9
  const runCron_1 = require("../shared/runCron");
10
- const const_1 = require("../config/const");
11
10
  const logger_1 = __importDefault(require("../loaders/logger"));
12
11
  const addCron = (call, callback) => {
13
12
  var _a;
14
13
  for (const item of call.request.crons) {
15
- const { id, schedule, command } = item;
14
+ const { id, schedule, command, extraSchedules } = item;
16
15
  if (data_1.scheduleStacks.has(id)) {
17
- (_a = data_1.scheduleStacks.get(id)) === null || _a === void 0 ? void 0 : _a.cancel();
18
- }
19
- let cmdStr = command.trim();
20
- if (!cmdStr.startsWith(const_1.TASK_PREFIX) && !cmdStr.startsWith(const_1.QL_PREFIX)) {
21
- cmdStr = `${const_1.TASK_PREFIX}${cmdStr}`;
16
+ (_a = data_1.scheduleStacks.get(id)) === null || _a === void 0 ? void 0 : _a.forEach((x) => x.cancel());
22
17
  }
23
18
  logger_1.default.info('[schedule][创建定时任务], 任务ID: %s, cron: %s, 执行命令: %s', id, schedule, command);
24
- data_1.scheduleStacks.set(id, node_schedule_1.default.scheduleJob(id, schedule, async () => {
25
- logger_1.default.info(`[schedule][准备运行任务] 命令: ${cmdStr}`);
26
- (0, runCron_1.runCron)(`ID=${id} ${cmdStr}`);
27
- }));
19
+ if (extraSchedules === null || extraSchedules === void 0 ? void 0 : extraSchedules.length) {
20
+ extraSchedules.forEach(x => {
21
+ logger_1.default.info('[schedule][创建定时任务], 任务ID: %s, cron: %s, 执行命令: %s', id, x.schedule, command);
22
+ });
23
+ }
24
+ data_1.scheduleStacks.set(id, [
25
+ node_schedule_1.default.scheduleJob(id, schedule, async () => {
26
+ logger_1.default.info(`[schedule][准备运行任务] 命令: ${command}`);
27
+ (0, runCron_1.runCron)(command);
28
+ }),
29
+ ...((extraSchedules === null || extraSchedules === void 0 ? void 0 : extraSchedules.length)
30
+ ? extraSchedules.map((x) => node_schedule_1.default.scheduleJob(id, x.schedule, async () => {
31
+ logger_1.default.info(`[schedule][准备运行任务] 命令: ${command}`);
32
+ (0, runCron_1.runCron)(command);
33
+ }))
34
+ : []),
35
+ ]);
28
36
  }
29
37
  callback(null, null);
30
38
  };
@@ -11,7 +11,7 @@ const delCron = (call, callback) => {
11
11
  for (const id of call.request.ids) {
12
12
  if (data_1.scheduleStacks.has(id)) {
13
13
  logger_1.default.info('[schedule][取消定时任务], 任务ID: %s', id);
14
- (_a = data_1.scheduleStacks.get(id)) === null || _a === void 0 ? void 0 : _a.cancel();
14
+ (_a = data_1.scheduleStacks.get(id)) === null || _a === void 0 ? void 0 : _a.forEach(x => x.cancel());
15
15
  data_1.scheduleStacks.delete(id);
16
16
  }
17
17
  }
@@ -47,7 +47,7 @@ let CronService = class CronService {
47
47
  tab.saved = false;
48
48
  const doc = await this.insert(tab);
49
49
  await client_1.default.addCron([
50
- { id: String(doc.id), schedule: doc.schedule, command: doc.command },
50
+ { id: String(doc.id), schedule: doc.schedule, command: this.makeCommand(doc), extraSchedules: doc.extra_schedules || [] },
51
51
  ]);
52
52
  await this.set_crontab();
53
53
  return doc;
@@ -68,7 +68,8 @@ let CronService = class CronService {
68
68
  {
69
69
  id: String(newDoc.id),
70
70
  schedule: newDoc.schedule,
71
- command: newDoc.command,
71
+ command: this.makeCommand(newDoc),
72
+ extraSchedules: newDoc.extra_schedules || []
72
73
  },
73
74
  ]);
74
75
  await this.set_crontab();
@@ -357,18 +358,7 @@ let CronService = class CronService {
357
358
  this.logger.silly('Running job');
358
359
  this.logger.silly('ID: ' + id);
359
360
  this.logger.silly('Original command: ' + command);
360
- let cmdStr = command;
361
- if (!cmdStr.startsWith(const_1.TASK_PREFIX) && !cmdStr.startsWith(const_1.QL_PREFIX)) {
362
- cmdStr = `${const_1.TASK_PREFIX}${cmdStr}`;
363
- }
364
- if (cmdStr.endsWith('.js') ||
365
- cmdStr.endsWith('.py') ||
366
- cmdStr.endsWith('.pyc') ||
367
- cmdStr.endsWith('.sh') ||
368
- cmdStr.endsWith('.ts')) {
369
- cmdStr = `${cmdStr} now`;
370
- }
371
- const cp = (0, cross_spawn_1.spawn)(`real_log_path=${logPath} ID=${id} ${cmdStr}`, { shell: '/bin/bash' });
361
+ const cp = (0, cross_spawn_1.spawn)(`real_log_path=${logPath} no_delay=true ${this.makeCommand(cron)}`, { shell: '/bin/bash' });
372
362
  await cron_1.CrontabModel.update({ status: cron_1.CrontabStatus.running, pid: cp.pid, log_path: logPath }, { where: { id } });
373
363
  cp.stderr.on('data', (data) => {
374
364
  fs_1.default.appendFileSync(`${absolutePath}`, `${data.toString()}`);
@@ -397,7 +387,8 @@ let CronService = class CronService {
397
387
  const crons = docs.map((doc) => ({
398
388
  id: String(doc.id),
399
389
  schedule: doc.schedule,
400
- command: doc.command,
390
+ command: this.makeCommand(doc),
391
+ extraSchedules: doc.extra_schedules || []
401
392
  }));
402
393
  await client_1.default.addCron(crons);
403
394
  await this.set_crontab();
@@ -437,30 +428,40 @@ let CronService = class CronService {
437
428
  return [];
438
429
  }
439
430
  }
440
- make_command(tab) {
431
+ makeCommand(tab) {
441
432
  let command = tab.command.trim();
442
433
  if (!command.startsWith(const_1.TASK_PREFIX) && !command.startsWith(const_1.QL_PREFIX)) {
443
434
  command = `${const_1.TASK_PREFIX}${tab.command}`;
444
435
  }
445
- const crontab_job_string = `ID=${tab.id} ${command}`;
436
+ let commandVariable = `ID=${tab.id} `;
437
+ if (tab.task_before) {
438
+ commandVariable += `task_before='${tab.task_before.replace(/'/g, "'\\''")
439
+ .trim()}' `;
440
+ }
441
+ if (tab.task_after) {
442
+ commandVariable += `task_after='${tab.task_after.replace(/'/g, "'\\''")
443
+ .trim()}' `;
444
+ }
445
+ const crontab_job_string = `${commandVariable}${command}`;
446
446
  return crontab_job_string;
447
447
  }
448
448
  async set_crontab(data) {
449
449
  const tabs = data !== null && data !== void 0 ? data : (await this.crontabs());
450
450
  var crontab_string = '';
451
451
  tabs.data.forEach((tab) => {
452
+ var _a;
452
453
  const _schedule = tab.schedule && tab.schedule.split(/ +/);
453
- if (tab.isDisabled === 1 || _schedule.length !== 5) {
454
+ if (tab.isDisabled === 1 || _schedule.length !== 5 || ((_a = tab.extra_schedules) === null || _a === void 0 ? void 0 : _a.length)) {
454
455
  crontab_string += '# ';
455
456
  crontab_string += tab.schedule;
456
457
  crontab_string += ' ';
457
- crontab_string += this.make_command(tab);
458
+ crontab_string += this.makeCommand(tab);
458
459
  crontab_string += '\n';
459
460
  }
460
461
  else {
461
462
  crontab_string += tab.schedule;
462
463
  crontab_string += ' ';
463
- crontab_string += this.make_command(tab);
464
+ crontab_string += this.makeCommand(tab);
464
465
  crontab_string += '\n';
465
466
  }
466
467
  });
@@ -503,7 +504,8 @@ let CronService = class CronService {
503
504
  .map((doc) => ({
504
505
  id: String(doc.id),
505
506
  schedule: doc.schedule,
506
- command: doc.command,
507
+ command: this.makeCommand(doc),
508
+ extraSchedules: doc.extra_schedules || []
507
509
  }));
508
510
  await client_1.default.addCron(sixCron);
509
511
  }
@@ -184,11 +184,11 @@ let NotificationService = class NotificationService {
184
184
  }
185
185
  }
186
186
  async bark() {
187
- let { barkPush, barkIcon, barkSound, barkGroup } = this.params;
187
+ let { barkPush, barkIcon, barkSound, barkGroup, barkLevel, barkUrl } = this.params;
188
188
  if (!barkPush.startsWith('http')) {
189
189
  barkPush = `https://api.day.app/${barkPush}`;
190
190
  }
191
- const url = `${barkPush}/${encodeURIComponent(this.title)}/${encodeURIComponent(this.content)}?icon=${barkIcon}&sound=${barkSound}&group=${barkGroup}`;
191
+ const url = `${barkPush}/${encodeURIComponent(this.title)}/${encodeURIComponent(this.content)}?icon=${barkIcon}&sound=${barkSound}&group=${barkGroup}&level=${barkLevel}&url=${barkUrl}`;
192
192
  try {
193
193
  const res = await got_1.default
194
194
  .get(url, Object.assign(Object.assign({}, this.gotOption), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }))
@@ -30,7 +30,7 @@ const pLimit_1 = __importDefault(require("../shared/pLimit"));
30
30
  const tar_1 = __importDefault(require("tar"));
31
31
  const path_1 = __importDefault(require("path"));
32
32
  const fs_1 = __importDefault(require("fs"));
33
- const lodash_1 = require("lodash");
33
+ const sum_1 = __importDefault(require("lodash/sum"));
34
34
  let SystemService = class SystemService {
35
35
  constructor(logger, scheduleService, sockService) {
36
36
  this.logger = logger;
@@ -69,7 +69,7 @@ let SystemService = class SystemService {
69
69
  const result = await this.updateAuthDb(Object.assign(Object.assign({}, oDoc), { type: auth_1.AuthDataType.systemConfig, info }));
70
70
  if (info.logRemoveFrequency) {
71
71
  const cron = {
72
- id: result.id,
72
+ id: result.id || NaN,
73
73
  name: '删除日志',
74
74
  command: `ql rmlog ${info.logRemoveFrequency}`,
75
75
  };
@@ -234,7 +234,7 @@ let SystemService = class SystemService {
234
234
  const result = (0, util_1.readDirs)(config_1.default.systemLogPath, config_1.default.systemLogPath);
235
235
  const logs = result.reverse().filter((x) => x.title.endsWith('.log'));
236
236
  res.set({
237
- 'Content-Length': (0, lodash_1.sum)(logs.map((x) => x.size)),
237
+ 'Content-Length': (0, sum_1.default)(logs.map((x) => x.size)),
238
238
  });
239
239
  (function sendFiles(res, fileNames) {
240
240
  if (fileNames.length === 0) {
@@ -8,18 +8,18 @@ const os_1 = __importDefault(require("os"));
8
8
  const auth_1 = require("../data/auth");
9
9
  const logger_1 = __importDefault(require("../loaders/logger"));
10
10
  class TaskLimit {
11
- constructor() {
12
- this.oneLimit = (0, p_limit_1.default)(1);
13
- this.updateLogLimit = (0, p_limit_1.default)(1);
14
- this.cpuLimit = (0, p_limit_1.default)(Math.max(os_1.default.cpus().length, 4));
15
- this.setCustomLimit();
16
- }
17
11
  get cpuLimitActiveCount() {
18
12
  return this.cpuLimit.activeCount;
19
13
  }
20
14
  get cpuLimitPendingCount() {
21
15
  return this.cpuLimit.pendingCount;
22
16
  }
17
+ constructor() {
18
+ this.oneLimit = (0, p_limit_1.default)(1);
19
+ this.updateLogLimit = (0, p_limit_1.default)(1);
20
+ this.cpuLimit = (0, p_limit_1.default)(Math.max(os_1.default.cpus().length, 4));
21
+ this.setCustomLimit();
22
+ }
23
23
  async setCustomLimit(limit) {
24
24
  var _a, _b;
25
25
  if (limit) {