@certd/pipeline 1.24.0 → 1.24.2
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.
- package/CHANGELOG.md +16 -0
- package/build.md +1 -1
- package/dist/access/api.d.ts +1 -0
- package/dist/core/executor.d.ts +3 -1
- package/dist/core/executor.js +59 -44
- package/dist/core/license.d.ts +2 -20
- package/dist/core/license.js +7 -107
- package/dist/core/run-history.d.ts +1 -0
- package/dist/core/run-history.js +11 -5
- package/dist/dt/pipeline.d.ts +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/plugin/api.d.ts +2 -0
- package/dist/plugin/api.js +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +2 -1
- package/dist/utils/util.hash.d.ts +5 -0
- package/dist/utils/util.hash.js +8 -0
- package/dist/utils/util.request.d.ts +13 -0
- package/dist/utils/util.request.js +29 -30
- package/dist/utils/util.sp.d.ts +1 -1
- package/dist/utils/util.sp.js +4 -1
- package/package.json +3 -2
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.24.2](https://github.com/certd/certd/compare/v1.24.1...v1.24.2) (2024-09-06)
|
|
7
|
+
|
|
8
|
+
### Performance Improvements
|
|
9
|
+
|
|
10
|
+
* 优化跳过处理逻辑 ([b80210f](https://github.com/certd/certd/commit/b80210f24bf5db1c958d06ab27c9e5d3db452eda))
|
|
11
|
+
* 支持pfx、der ([fbeaed2](https://github.com/certd/certd/commit/fbeaed203519f59b6d9396c4e8953353ccb5e723))
|
|
12
|
+
|
|
13
|
+
## [1.24.1](https://github.com/certd/certd/compare/v1.24.0...v1.24.1) (2024-09-02)
|
|
14
|
+
|
|
15
|
+
### Performance Improvements
|
|
16
|
+
|
|
17
|
+
* 部署插件支持宝塔、易盾云等 ([ee61709](https://github.com/certd/certd/commit/ee617095efa1171548cf52fd45f0f98a368555a3))
|
|
18
|
+
* 授权配置支持加密 ([42a56b5](https://github.com/certd/certd/commit/42a56b581d754c3e5f9838179d19ab0d004ef2eb))
|
|
19
|
+
* 支持阿里云 DCDN ([98b77f8](https://github.com/certd/certd/commit/98b77f80843834616fb26f83b4c42245326abd06))
|
|
20
|
+
* 支持已跳过的步骤重新运行 ([ea775ad](https://github.com/certd/certd/commit/ea775adae18d57a04470cfba6b9460d761d74035))
|
|
21
|
+
|
|
6
22
|
# [1.24.0](https://github.com/certd/certd/compare/v1.23.1...v1.24.0) (2024-08-25)
|
|
7
23
|
|
|
8
24
|
### Bug Fixes
|
package/build.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
22:33
|
package/dist/access/api.d.ts
CHANGED
package/dist/core/executor.d.ts
CHANGED
|
@@ -25,16 +25,18 @@ export declare class Executor {
|
|
|
25
25
|
lastRuntime: RunHistory;
|
|
26
26
|
options: ExecutorOptions;
|
|
27
27
|
abort: AbortController;
|
|
28
|
+
_inited: boolean;
|
|
28
29
|
onChanged: (history: RunHistory) => Promise<void>;
|
|
29
30
|
constructor(options: ExecutorOptions);
|
|
30
31
|
init(): Promise<void>;
|
|
31
32
|
cancel(): Promise<void>;
|
|
32
33
|
run(runtimeId: any, triggerType: string): Promise<void>;
|
|
33
|
-
runWithHistory(runnable: Runnable, runnableType: string, run: () => Promise<void>): Promise<ResultType.success | ResultType.canceled | ResultType.skip>;
|
|
34
|
+
runWithHistory(runnable: Runnable, runnableType: string, run: () => Promise<ResultType | void>): Promise<ResultType.success | ResultType.canceled | ResultType.skip>;
|
|
34
35
|
private runStages;
|
|
35
36
|
runStage(stage: Stage): Promise<ResultType.success | ResultType.error>;
|
|
36
37
|
compositionResultType(resList: ResultType[]): ResultType.success | ResultType.error;
|
|
37
38
|
private runTask;
|
|
38
39
|
private runStep;
|
|
39
40
|
notification(when: NotificationWhen, error?: any): Promise<void>;
|
|
41
|
+
clearLastStatus(stepId: string): void;
|
|
40
42
|
}
|
package/dist/core/executor.js
CHANGED
|
@@ -7,6 +7,7 @@ import { logger } from "../utils/util.log.js";
|
|
|
7
7
|
import { createAxiosService } from "../utils/util.request.js";
|
|
8
8
|
import { Decorator } from "../decorator/index.js";
|
|
9
9
|
import { FileStore } from "./file-store.js";
|
|
10
|
+
import { hashUtils } from "../utils/index.js";
|
|
10
11
|
export class Executor {
|
|
11
12
|
pipeline;
|
|
12
13
|
runtime;
|
|
@@ -18,6 +19,7 @@ export class Executor {
|
|
|
18
19
|
lastRuntime;
|
|
19
20
|
options;
|
|
20
21
|
abort = new AbortController();
|
|
22
|
+
_inited = false;
|
|
21
23
|
onChanged;
|
|
22
24
|
constructor(options) {
|
|
23
25
|
this.options = options;
|
|
@@ -31,6 +33,10 @@ export class Executor {
|
|
|
31
33
|
this.pipelineContext = this.contextFactory.getContext("pipeline", this.pipeline.id);
|
|
32
34
|
}
|
|
33
35
|
async init() {
|
|
36
|
+
if (this._inited) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this._inited = true;
|
|
34
40
|
const lastRuntime = await this.pipelineContext.getObj(`lastRuntime`);
|
|
35
41
|
this.lastRuntime = lastRuntime;
|
|
36
42
|
this.lastStatusMap = new RunnableCollection(lastRuntime?.pipeline);
|
|
@@ -42,6 +48,7 @@ export class Executor {
|
|
|
42
48
|
await this.onChanged(this.runtime);
|
|
43
49
|
}
|
|
44
50
|
async run(runtimeId = 0, triggerType) {
|
|
51
|
+
let intervalFlushLogId = undefined;
|
|
45
52
|
try {
|
|
46
53
|
await this.init();
|
|
47
54
|
const trigger = { type: triggerType };
|
|
@@ -49,8 +56,12 @@ export class Executor {
|
|
|
49
56
|
this.runtime = new RunHistory(runtimeId, trigger, this.pipeline);
|
|
50
57
|
this.logger.info(`pipeline.${this.pipeline.id} start`);
|
|
51
58
|
await this.notification("start");
|
|
59
|
+
this.runtime.start(this.pipeline);
|
|
60
|
+
intervalFlushLogId = setInterval(async () => {
|
|
61
|
+
await this.onChanged(this.runtime);
|
|
62
|
+
}, 5000);
|
|
52
63
|
await this.runWithHistory(this.pipeline, "pipeline", async () => {
|
|
53
|
-
await this.runStages(this.pipeline);
|
|
64
|
+
return await this.runStages(this.pipeline);
|
|
54
65
|
});
|
|
55
66
|
if (this.lastRuntime && this.lastRuntime.pipeline.status?.status === ResultType.error) {
|
|
56
67
|
await this.notification("turnToSuccess");
|
|
@@ -59,9 +70,11 @@ export class Executor {
|
|
|
59
70
|
}
|
|
60
71
|
catch (e) {
|
|
61
72
|
await this.notification("error", e);
|
|
62
|
-
this.logger.error("pipeline 执行失败", e);
|
|
73
|
+
this.logger.error("pipeline 执行失败", e.stack);
|
|
63
74
|
}
|
|
64
75
|
finally {
|
|
76
|
+
clearInterval(intervalFlushLogId);
|
|
77
|
+
await this.onChanged(this.runtime);
|
|
65
78
|
await this.pipelineContext.setObj("lastRuntime", this.runtime);
|
|
66
79
|
this.logger.info(`pipeline.${this.pipeline.id} end`);
|
|
67
80
|
}
|
|
@@ -69,43 +82,22 @@ export class Executor {
|
|
|
69
82
|
async runWithHistory(runnable, runnableType, run) {
|
|
70
83
|
runnable.runnableType = runnableType;
|
|
71
84
|
this.runtime.start(runnable);
|
|
72
|
-
await this.onChanged(this.runtime);
|
|
73
|
-
if (runnable.strategy?.runStrategy === RunStrategy.SkipWhenSucceed) {
|
|
74
|
-
//如果是成功后跳过策略
|
|
75
|
-
const lastNode = this.lastStatusMap.get(runnable.id);
|
|
76
|
-
const lastResult = lastNode?.status?.status;
|
|
77
|
-
const lastInput = JSON.stringify(lastNode?.status?.input);
|
|
78
|
-
let inputChanged = false;
|
|
79
|
-
if (runnableType === "step") {
|
|
80
|
-
const step = runnable;
|
|
81
|
-
const input = JSON.stringify(step.input);
|
|
82
|
-
if (input != null && lastInput !== input) {
|
|
83
|
-
//参数有变化
|
|
84
|
-
inputChanged = true;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (lastResult != null && lastResult === ResultType.success && !inputChanged) {
|
|
88
|
-
runnable.status.output = lastNode?.status?.output;
|
|
89
|
-
runnable.status.files = lastNode?.status?.files;
|
|
90
|
-
this.runtime.skip(runnable);
|
|
91
|
-
await this.onChanged(this.runtime);
|
|
92
|
-
return ResultType.skip;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
const intervalFlushLogId = setInterval(async () => {
|
|
96
|
-
await this.onChanged(this.runtime);
|
|
97
|
-
}, 5000);
|
|
98
85
|
// const timeout = runnable.timeout ?? 20 * 60 * 1000;
|
|
86
|
+
await this.onChanged(this.runtime);
|
|
99
87
|
try {
|
|
100
88
|
if (this.abort.signal.aborted) {
|
|
101
89
|
this.runtime.cancel(runnable);
|
|
102
90
|
return ResultType.canceled;
|
|
103
91
|
}
|
|
104
|
-
await run();
|
|
92
|
+
const resultType = await run();
|
|
105
93
|
if (this.abort.signal.aborted) {
|
|
106
94
|
this.runtime.cancel(runnable);
|
|
107
95
|
return ResultType.canceled;
|
|
108
96
|
}
|
|
97
|
+
if (resultType == ResultType.skip) {
|
|
98
|
+
this.runtime.skip(runnable);
|
|
99
|
+
return resultType;
|
|
100
|
+
}
|
|
109
101
|
this.runtime.success(runnable);
|
|
110
102
|
return ResultType.success;
|
|
111
103
|
}
|
|
@@ -115,7 +107,6 @@ export class Executor {
|
|
|
115
107
|
}
|
|
116
108
|
finally {
|
|
117
109
|
this.runtime.finally(runnable);
|
|
118
|
-
clearInterval(intervalFlushLogId);
|
|
119
110
|
await this.onChanged(this.runtime);
|
|
120
111
|
}
|
|
121
112
|
}
|
|
@@ -123,7 +114,7 @@ export class Executor {
|
|
|
123
114
|
const resList = [];
|
|
124
115
|
for (const stage of pipeline.stages) {
|
|
125
116
|
const res = await this.runWithHistory(stage, "stage", async () => {
|
|
126
|
-
await this.runStage(stage);
|
|
117
|
+
return await this.runStage(stage);
|
|
127
118
|
});
|
|
128
119
|
resList.push(res);
|
|
129
120
|
}
|
|
@@ -135,6 +126,7 @@ export class Executor {
|
|
|
135
126
|
const runner = async () => {
|
|
136
127
|
return this.runWithHistory(task, "task", async () => {
|
|
137
128
|
await this.runTask(task);
|
|
129
|
+
return ResultType.success;
|
|
138
130
|
});
|
|
139
131
|
};
|
|
140
132
|
runnerList.push(runner);
|
|
@@ -175,7 +167,7 @@ export class Executor {
|
|
|
175
167
|
for (const step of task.steps) {
|
|
176
168
|
step.runnableType = "step";
|
|
177
169
|
const res = await this.runWithHistory(step, "step", async () => {
|
|
178
|
-
await this.runStep(step);
|
|
170
|
+
return await this.runStep(step);
|
|
179
171
|
});
|
|
180
172
|
resList.push(res);
|
|
181
173
|
}
|
|
@@ -192,18 +184,38 @@ export class Executor {
|
|
|
192
184
|
// @ts-ignore
|
|
193
185
|
const define = plugin.define;
|
|
194
186
|
//从outputContext读取输入参数
|
|
195
|
-
|
|
187
|
+
const input = _.cloneDeep(step.input);
|
|
188
|
+
Decorator.inject(define.input, instance, input, (item, key) => {
|
|
196
189
|
if (item.component?.name === "pi-output-selector") {
|
|
197
|
-
const contextKey =
|
|
190
|
+
const contextKey = input[key];
|
|
198
191
|
if (contextKey != null) {
|
|
199
192
|
// "cert": "step.-BNFVPMKPu2O-i9NiOQxP.cert",
|
|
200
193
|
const arr = contextKey.split(".");
|
|
201
194
|
const id = arr[1];
|
|
202
195
|
const outputKey = arr[2];
|
|
203
|
-
|
|
196
|
+
input[key] = this.currentStatusMap.get(id)?.status?.output[outputKey] ?? this.lastStatusMap.get(id)?.status?.output[outputKey];
|
|
204
197
|
}
|
|
205
198
|
}
|
|
206
199
|
});
|
|
200
|
+
const newInputHash = hashUtils.md5(JSON.stringify(input));
|
|
201
|
+
step.status.inputHash = newInputHash;
|
|
202
|
+
//判断是否需要跳过
|
|
203
|
+
const lastNode = this.lastStatusMap.get(step.id);
|
|
204
|
+
const lastResult = lastNode?.status?.status;
|
|
205
|
+
if (step.strategy?.runStrategy === RunStrategy.SkipWhenSucceed) {
|
|
206
|
+
//如果是成功后跳过策略
|
|
207
|
+
let inputChanged = true;
|
|
208
|
+
const lastInputHash = lastNode?.status?.inputHash;
|
|
209
|
+
if (lastInputHash && newInputHash && lastInputHash === newInputHash) {
|
|
210
|
+
//参数有变化
|
|
211
|
+
inputChanged = false;
|
|
212
|
+
}
|
|
213
|
+
if (lastResult != null && lastResult === ResultType.success && !inputChanged) {
|
|
214
|
+
step.status.output = lastNode?.status?.output;
|
|
215
|
+
step.status.files = lastNode?.status?.files;
|
|
216
|
+
return ResultType.skip;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
207
219
|
const http = createAxiosService({ logger: currentLogger });
|
|
208
220
|
const taskCtx = {
|
|
209
221
|
pipeline: this.pipeline,
|
|
@@ -252,20 +264,20 @@ export class Executor {
|
|
|
252
264
|
let subject = "";
|
|
253
265
|
let content = "";
|
|
254
266
|
if (when === "start") {
|
|
255
|
-
subject = `【CertD
|
|
256
|
-
content =
|
|
267
|
+
subject = `【CertD】开始执行,【${this.pipeline.id}】${this.pipeline.title}`;
|
|
268
|
+
content = `buildId:${this.runtime.id}`;
|
|
257
269
|
}
|
|
258
270
|
else if (when === "success") {
|
|
259
|
-
subject = `【CertD
|
|
260
|
-
content =
|
|
271
|
+
subject = `【CertD】执行成功,【${this.pipeline.id}】${this.pipeline.title}`;
|
|
272
|
+
content = `buildId:${this.runtime.id}`;
|
|
261
273
|
}
|
|
262
274
|
else if (when === "turnToSuccess") {
|
|
263
|
-
subject = `【CertD
|
|
264
|
-
content =
|
|
275
|
+
subject = `【CertD】执行成功(错误转成功),【${this.pipeline.id}】${this.pipeline.title}`;
|
|
276
|
+
content = `buildId:${this.runtime.id}`;
|
|
265
277
|
}
|
|
266
278
|
else if (when === "error") {
|
|
267
|
-
subject = `【CertD
|
|
268
|
-
content =
|
|
279
|
+
subject = `【CertD】执行失败,【${this.pipeline.id}】${this.pipeline.title}`;
|
|
280
|
+
content = `buildId:${this.runtime.id}\nerror:${error.message}`;
|
|
269
281
|
}
|
|
270
282
|
else {
|
|
271
283
|
return;
|
|
@@ -289,5 +301,8 @@ export class Executor {
|
|
|
289
301
|
}
|
|
290
302
|
}
|
|
291
303
|
}
|
|
304
|
+
clearLastStatus(stepId) {
|
|
305
|
+
this.lastStatusMap.clearById(stepId);
|
|
306
|
+
}
|
|
292
307
|
}
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQThCLFVBQVUsRUFBWSxXQUFXLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkksT0FBTyxDQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQW9DLGNBQWMsRUFBdUIsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sY0FBYyxDQUFDO0FBRXhELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBYTVDLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFFBQVEsQ0FBVztJQUNuQixPQUFPLENBQWM7SUFDckIsY0FBYyxDQUFpQjtJQUMvQixNQUFNLENBQVM7SUFDZixlQUFlLENBQVk7SUFDM0IsZ0JBQWdCLENBQXNCO0lBQ3RDLGFBQWEsQ0FBc0I7SUFDbkMsV0FBVyxDQUFjO0lBQ3pCLE9BQU8sQ0FBa0I7SUFDekIsS0FBSyxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO0lBRS9DLFNBQVMsQ0FBeUM7SUFDbEQsWUFBWSxPQUF3QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcs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
|
|
308
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQThCLFVBQVUsRUFBWSxXQUFXLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkksT0FBTyxDQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQW9DLGNBQWMsRUFBdUIsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sY0FBYyxDQUFDO0FBRXhELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWE5QyxNQUFNLE9BQU8sUUFBUTtJQUNuQixRQUFRLENBQVc7SUFDbkIsT0FBTyxDQUFjO0lBQ3JCLGNBQWMsQ0FBaUI7SUFDL0IsTUFBTSxDQUFTO0lBQ2YsZUFBZSxDQUFZO0lBQzNCLGdCQUFnQixDQUFzQjtJQUN0QyxhQUFhLENBQXNCO0lBQ25DLFdBQVcsQ0FBYztJQUN6QixPQUFPLENBQWtCO0lBQ3pCLEtBQUssR0FBb0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUUvQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWhCLFNBQVMsQ0FBeUM7SUFDbEQsWUFBWSxPQUF3QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLENB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
|
package/dist/core/license.d.ts
CHANGED
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
subjectId: string;
|
|
4
|
-
license: string;
|
|
5
|
-
};
|
|
6
|
-
export declare function isPlus(): boolean;
|
|
7
|
-
export declare function isCommercial(): boolean;
|
|
8
|
-
export declare function getPlusInfo(): {
|
|
9
|
-
isPlus: boolean;
|
|
10
|
-
vipType: string;
|
|
11
|
-
expireTime: number;
|
|
12
|
-
secret: string | undefined;
|
|
13
|
-
};
|
|
14
|
-
export declare function verify(req: LicenseVerifyReq): Promise<{
|
|
15
|
-
isPlus: boolean;
|
|
16
|
-
expireTime: number;
|
|
17
|
-
vipType: string;
|
|
18
|
-
message?: string | undefined;
|
|
19
|
-
secret?: string | undefined;
|
|
20
|
-
}>;
|
|
1
|
+
export * from "@certd/plus";
|
|
2
|
+
export declare function checkPlus(): void;
|
package/dist/core/license.js
CHANGED
|
@@ -1,110 +1,10 @@
|
|
|
1
|
-
import { createVerify } from "node:crypto";
|
|
2
1
|
import { logger } from "../utils/index.js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"
|
|
9
|
-
appKey = "z4nXOeTeSnnpUpnmsV1";
|
|
10
|
-
}
|
|
11
|
-
export const AppKey = appKey;
|
|
12
|
-
class LicenseHolder {
|
|
13
|
-
isPlus = false;
|
|
14
|
-
expireTime = 0;
|
|
15
|
-
vipType = "";
|
|
16
|
-
message = undefined;
|
|
17
|
-
secret = undefined;
|
|
18
|
-
}
|
|
19
|
-
const holder = new LicenseHolder();
|
|
20
|
-
holder.isPlus = false;
|
|
21
|
-
class LicenseVerifier {
|
|
22
|
-
checked = false;
|
|
23
|
-
licenseReq = undefined;
|
|
24
|
-
async reVerify(req) {
|
|
25
|
-
this.checked = false;
|
|
26
|
-
return await this.verify(req);
|
|
27
|
-
}
|
|
28
|
-
setPlus(value, info = {}) {
|
|
29
|
-
if (value && info) {
|
|
30
|
-
holder.isPlus = true;
|
|
31
|
-
holder.expireTime = info.expireTime;
|
|
32
|
-
holder.secret = info.secret;
|
|
33
|
-
holder.vipType = info.vipType;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
holder.isPlus = false;
|
|
37
|
-
holder.expireTime = 0;
|
|
38
|
-
holder.vipType = "";
|
|
39
|
-
holder.message = info.message;
|
|
40
|
-
holder.secret = undefined;
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
...holder,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
async verify(req) {
|
|
47
|
-
this.licenseReq = req;
|
|
48
|
-
if (this.checked) {
|
|
49
|
-
return this.setPlus(false);
|
|
50
|
-
}
|
|
51
|
-
const license = req?.license;
|
|
52
|
-
if (!license) {
|
|
53
|
-
this.checked = true;
|
|
54
|
-
return this.setPlus(false);
|
|
55
|
-
}
|
|
56
|
-
const licenseJson = Buffer.from(license, "base64").toString();
|
|
57
|
-
const json = JSON.parse(licenseJson);
|
|
58
|
-
if (json.expireTime < Date.now()) {
|
|
59
|
-
logger.warn("授权已过期");
|
|
60
|
-
return this.setPlus(false, { message: "授权已过期" });
|
|
61
|
-
}
|
|
62
|
-
const content = `${appKey},${this.licenseReq.subjectId},${json.code},${json.secret},${json.vipType},${json.activeTime},${json.duration},${json.expireTime},${json.version}`;
|
|
63
|
-
// content := fmt.Sprintf("%s,%s,%s,%s,%d,%d,%d,%d,%d", entity.AppKey, entity.SubjectId, entity.Code, entity.Secret, entity.Level, entity.ActiveTime, entity.Duration, entity.ExpireTime, entity.Version)
|
|
64
|
-
//z4nXOeTeSnnpUpnmsV,_m9jFTdNHktdaEN4xBDw_,HZz7rAAR3h3zGlDMhScO1wGBYPjXpZ9S_1,uUpr9I8p6K3jWSzu2Wh5NECvgG2FNynU,0,1724199847470,365,1787271324416,1
|
|
65
|
-
logger.debug("content:", content);
|
|
66
|
-
const publicKey = Buffer.from(SecreteKey, "base64").toString();
|
|
67
|
-
const res = this.verifySignature(content, json.signature, publicKey);
|
|
68
|
-
this.checked = true;
|
|
69
|
-
if (!res) {
|
|
70
|
-
logger.warn("授权校验失败");
|
|
71
|
-
return this.setPlus(false, { message: "授权校验失败" });
|
|
72
|
-
}
|
|
73
|
-
logger.info(`授权校验成功,到期时间:${dayjs(json.expireTime).format("YYYY-MM-DD HH:mm:ss")}`);
|
|
74
|
-
return this.setPlus(true, {
|
|
75
|
-
expireTime: json.expireTime,
|
|
76
|
-
vipType: json.vipType || "plus",
|
|
77
|
-
secret: json.secret,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
verifySignature(content, signature, publicKey) {
|
|
81
|
-
const verify = createVerify("RSA-SHA256");
|
|
82
|
-
verify.update(content);
|
|
83
|
-
return verify.verify(publicKey, signature, "base64");
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
const verifier = new LicenseVerifier();
|
|
87
|
-
export function isPlus() {
|
|
88
|
-
return holder.isPlus && holder.expireTime > Date.now();
|
|
89
|
-
}
|
|
90
|
-
export function isCommercial() {
|
|
91
|
-
return holder.isPlus && holder.vipType === "comm" && holder.expireTime > Date.now();
|
|
92
|
-
}
|
|
93
|
-
export function getPlusInfo() {
|
|
94
|
-
return {
|
|
95
|
-
isPlus: holder.isPlus,
|
|
96
|
-
vipType: holder.vipType,
|
|
97
|
-
expireTime: holder.expireTime,
|
|
98
|
-
secret: holder.secret,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
export async function verify(req) {
|
|
102
|
-
try {
|
|
103
|
-
return await verifier.reVerify(req);
|
|
104
|
-
}
|
|
105
|
-
catch (e) {
|
|
106
|
-
logger.error(e);
|
|
107
|
-
return verifier.setPlus(false, { message: "授权校验失败" });
|
|
2
|
+
import { setLogger, isPlus } from "@certd/plus";
|
|
3
|
+
setLogger(logger);
|
|
4
|
+
export * from "@certd/plus";
|
|
5
|
+
export function checkPlus() {
|
|
6
|
+
if (!isPlus()) {
|
|
7
|
+
throw new Error("此为专业版功能,请升级到专业版");
|
|
108
8
|
}
|
|
109
9
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2xpY2Vuc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQixjQUFjLGFBQWEsQ0FBQztBQUU1QixNQUFNLFVBQVUsU0FBUztJQUN2QixJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDcEM7QUFDSCxDQUFDIn0=
|
package/dist/core/run-history.js
CHANGED
|
@@ -24,10 +24,8 @@ export class RunHistory {
|
|
|
24
24
|
this._loggers[runnable.id] = buildLogger((text) => {
|
|
25
25
|
this.logs[runnable.id].push(text);
|
|
26
26
|
});
|
|
27
|
-
const input = runnable.input;
|
|
28
27
|
const status = {
|
|
29
28
|
output: {},
|
|
30
|
-
input: _.cloneDeep(input),
|
|
31
29
|
status: ResultType.start,
|
|
32
30
|
startTime: now,
|
|
33
31
|
result: ResultType.start,
|
|
@@ -80,11 +78,12 @@ export class RunHistory {
|
|
|
80
78
|
}
|
|
81
79
|
log(runnable, text) {
|
|
82
80
|
// @ts-ignore
|
|
83
|
-
this._loggers[runnable.id].info(`[${runnable.title}]<id:${runnable.id}>
|
|
81
|
+
this._loggers[runnable.id].info(`[${runnable.runnableType}] [${runnable.title}]<id:${runnable.id}> :`, text);
|
|
84
82
|
}
|
|
85
83
|
logError(runnable, e) {
|
|
86
84
|
// @ts-ignore
|
|
87
|
-
|
|
85
|
+
const errorInfo = runnable.runnableType == "step" ? e.stack : e.message;
|
|
86
|
+
this._loggers[runnable.id].error(`[${runnable.runnableType}] [${runnable.title}]<id:${runnable.id}> :${errorInfo}`);
|
|
88
87
|
}
|
|
89
88
|
finally(runnable) {
|
|
90
89
|
//
|
|
@@ -136,8 +135,15 @@ export class RunnableCollection {
|
|
|
136
135
|
item.status = undefined;
|
|
137
136
|
});
|
|
138
137
|
}
|
|
138
|
+
clearById(id) {
|
|
139
|
+
const runnable = this.collection[id];
|
|
140
|
+
if (runnable?.status) {
|
|
141
|
+
runnable.status.status = ResultType.none;
|
|
142
|
+
runnable.status.result = ResultType.none;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
139
145
|
add(runnable) {
|
|
140
146
|
this.collection[runnable.id] = runnable;
|
|
141
147
|
}
|
|
142
148
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9ydW4taGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFVBQVUsRUFBNEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLENBQUMsTUFBTSxXQUFXLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBWW5ELE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBUTtJQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN4QixPQUFPLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDL0IsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUNELE1BQU0sT0FBTyxVQUFVO0lBQ3JCLEVBQUUsQ0FBVTtJQUNaLFFBQVEsQ0FBWTtJQUNwQixJQUFJLEdBRUEsRUFBRSxDQUFDO0lBQ1AsUUFBUSxHQUVKLEVBQUUsQ0FBQztJQUNQLE9BQU8sQ0FBYztJQUVyQixZQUFZLFNBQWMsRUFBRSxPQUFtQixFQUFFLFFBQWtCO1FBQ2pFLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBa0I7UUFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFF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
|
package/dist/dt/pipeline.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/plugin/api.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare enum ContextScope {
|
|
|
16
16
|
export type TaskOutputDefine = {
|
|
17
17
|
title: string;
|
|
18
18
|
value?: any;
|
|
19
|
+
type?: string;
|
|
19
20
|
};
|
|
20
21
|
export type TaskInputDefine = FormItemProps;
|
|
21
22
|
export type PluginDefine = Registrable & {
|
|
@@ -35,6 +36,7 @@ export type PluginDefine = Registrable & {
|
|
|
35
36
|
dest: string;
|
|
36
37
|
type: "computed";
|
|
37
38
|
}[];
|
|
39
|
+
needPlus?: boolean;
|
|
38
40
|
};
|
|
39
41
|
export type ITaskPlugin = {
|
|
40
42
|
onInstance(): Promise<void>;
|
package/dist/plugin/api.js
CHANGED
|
@@ -49,4 +49,4 @@ export class AbstractTaskPlugin {
|
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE1BQU0sQ0FBTixJQUFZLFlBSVg7QUFKRCxXQUFZLFlBQVk7SUFDdEIsbURBQU0sQ0FBQTtJQUNOLHVEQUFRLENBQUE7SUFDUixxREFBTyxDQUFBO0FBQ1QsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBMERELE1BQU0sT0FBZ0Isa0JBQWtCO0lBQ3RDLE9BQU8sR0FBZSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDOUUsR0FBRyxDQUF1QjtJQUMxQixNQUFNLENBQVc7SUFDakIsYUFBYSxDQUFrQjtJQUUvQixlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQXdCO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxJQUFZO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ3ZCLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLFFBQVE7WUFDUixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsT0FBTztJQUNULENBQUM7Q0FHRiJ9
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./util.log.js";
|
|
|
3
3
|
export * from "./util.file.js";
|
|
4
4
|
export * from "./util.sp.js";
|
|
5
5
|
export * as promises from "./util.promise.js";
|
|
6
|
+
export * from "./util.hash.js";
|
|
6
7
|
export declare const utils: {
|
|
7
8
|
sleep: typeof sleep;
|
|
8
9
|
http: import("axios").AxiosInstance;
|
package/dist/utils/index.js
CHANGED
|
@@ -4,8 +4,9 @@ export * from "./util.log.js";
|
|
|
4
4
|
export * from "./util.file.js";
|
|
5
5
|
export * from "./util.sp.js";
|
|
6
6
|
export * as promises from "./util.promise.js";
|
|
7
|
+
export * from "./util.hash.js";
|
|
7
8
|
export const utils = {
|
|
8
9
|
sleep,
|
|
9
10
|
http: request,
|
|
10
11
|
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRztJQUNuQixLQUFLO0lBQ0wsSUFBSSxFQUFFLE9BQU87Q0FDZCxDQUFDIn0=
|