@certd/pipeline 1.41.4 → 1.42.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
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.42.0](https://github.com/certd/certd/compare/v1.41.4...v1.42.0) (2026-07-05)
7
+
8
+ ### Features
9
+
10
+ * 通过插件配置懒加载依赖,动态加载第三方依赖包,精简安装镜像大小 ([01568ca](https://github.com/certd/certd/commit/01568ca1489069046b5a89ebdd4ced2f7f6ddf93))
11
+
6
12
  ## [1.41.4](https://github.com/certd/certd/compare/v1.41.3...v1.41.4) (2026-06-14)
7
13
 
8
14
  **Note:** Version bump only for package @certd/pipeline
@@ -2,6 +2,7 @@ import { Registrable } from "../registry/index.js";
2
2
  import { FormItemProps } from "../dt/index.js";
3
3
  import { HttpClient, ILogger, utils } from "@certd/basic";
4
4
  import { PluginRequestHandleReq } from "../plugin/index.js";
5
+ import { IRuntimeDepsService, IServiceGetter } from "../service/index.js";
5
6
  export type AccessRequestHandleReq<T = any> = PluginRequestHandleReq<T>;
6
7
  export type AccessInputDefine = FormItemProps & {
7
8
  title: string;
@@ -11,6 +12,8 @@ export type AccessInputDefine = FormItemProps & {
11
12
  export type AccessDefine = Registrable & {
12
13
  icon?: string;
13
14
  subtype?: string;
15
+ dependPlugins?: Record<string, string>;
16
+ dependPackages?: Record<string, string>;
14
17
  input?: {
15
18
  [key: string]: AccessInputDefine;
16
19
  };
@@ -28,10 +31,14 @@ export type AccessContext = {
28
31
  logger: ILogger;
29
32
  utils: typeof utils;
30
33
  accessService: IAccessService;
34
+ serviceGetter?: IServiceGetter;
35
+ define?: AccessDefine;
31
36
  };
32
37
  export declare abstract class BaseAccess implements IAccess {
33
38
  ctx: AccessContext;
34
- setCtx(ctx: AccessContext): void;
39
+ runtimeDepsService?: IRuntimeDepsService;
40
+ importRuntime(specifier: string): Promise<any>;
41
+ setCtx(ctx: AccessContext): Promise<void>;
35
42
  onRequest(req: AccessRequestHandleReq): Promise<any>;
36
43
  normalizeEndpoint(endpoint: string): string;
37
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/access/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAQ5D,MAAM,MAAM,sBAAsB,CAAC,CAAC,GAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;KAClC,CAAC;CACH,CAAC;AACF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,aAAa,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,8BAAsB,UAAW,YAAW,OAAO;IACjD,GAAG,EAAG,aAAa,CAAC;IAEpB,MAAM,CAAC,GAAG,EAAE,aAAa;IAInB,SAAS,CAAC,GAAG,EAAE,sBAAsB;IAmB3C,iBAAiB,CAAC,QAAQ,EAAE,MAAM;CAGnC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/access/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQ1E,MAAM,MAAM,sBAAsB,CAAC,CAAC,GAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;KAClC,CAAC;CACH,CAAC;AACF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,aAAa,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,aAAa,EAAE,cAAc,CAAC;IAC9B,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,8BAAsB,UAAW,YAAW,OAAO;IACjD,GAAG,EAAG,aAAa,CAAC;IACpB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IAEnC,aAAa,CAAC,SAAS,EAAE,MAAM;IAO/B,MAAM,CAAC,GAAG,EAAE,aAAa;IAUzB,SAAS,CAAC,GAAG,EAAE,sBAAsB;IAmB3C,iBAAiB,CAAC,QAAQ,EAAE,MAAM;CAGnC"}
@@ -1,8 +1,21 @@
1
1
  import * as _ from "lodash-es";
2
2
  export class BaseAccess {
3
3
  ctx;
4
- setCtx(ctx) {
4
+ runtimeDepsService;
5
+ async importRuntime(specifier) {
6
+ if (!this.runtimeDepsService) {
7
+ throw new Error("runtimeDepsService 未初始化");
8
+ }
9
+ return await this.runtimeDepsService.importRuntime(specifier, this.ctx.logger);
10
+ }
11
+ async setCtx(ctx) {
5
12
  this.ctx = ctx;
13
+ if (!this.runtimeDepsService && this.ctx.serviceGetter) {
14
+ this.runtimeDepsService = await this.ctx.serviceGetter.get("runtimeDepsService");
15
+ }
16
+ if (this.runtimeDepsService && this.ctx.define?.name) {
17
+ await this.runtimeDepsService.ensureRuntimeDependencies({ pluginKeys: `access:${this.ctx.define.name}`, logger: this.ctx.logger });
18
+ }
6
19
  }
7
20
  async onRequest(req) {
8
21
  if (!req.action) {
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/access/decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO1F,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAClD,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAyB7D;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CASxE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,aAAa,gBAuB3G"}
1
+ {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/access/decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO1F,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAClD,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAyB7D;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CASxE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,aAAa,gBAyB3G"}
@@ -60,7 +60,9 @@ export async function newAccess(type, input, accessService, ctx) {
60
60
  accessService,
61
61
  };
62
62
  }
63
- access.setCtx(ctx);
63
+ ctx.define = ctx.define || register.define;
64
+ access.runtimeDepsService = accessService.runtimeDepsService;
65
+ await access.setCtx(ctx);
64
66
  access._type = type;
65
67
  return access;
66
68
  }
@@ -349,7 +349,7 @@ export class Executor {
349
349
  }),
350
350
  serviceGetter: this.options.serviceGetter,
351
351
  };
352
- instance.setCtx(taskCtx);
352
+ await instance.setCtx(taskCtx);
353
353
  await instance.onInstance();
354
354
  const result = await instance.execute();
355
355
  //执行结果处理
@@ -2,7 +2,7 @@ import { PluginRequestHandleReq } from "../plugin";
2
2
  import { Registrable } from "../registry/index.js";
3
3
  import { FormItemProps, HistoryResult, Pipeline } from "../dt/index.js";
4
4
  import { HttpClient, ILogger, utils } from "@certd/basic";
5
- import { IEmailService } from "../service/index.js";
5
+ import { IEmailService, IRuntimeDepsService, IServiceGetter } from "../service/index.js";
6
6
  export type NotificationBody = {
7
7
  userId?: number;
8
8
  projectId?: number;
@@ -34,6 +34,8 @@ export type NotificationInputDefine = FormItemProps & {
34
34
  };
35
35
  export type NotificationDefine = Registrable & {
36
36
  needPlus?: boolean;
37
+ dependPlugins?: Record<string, string>;
38
+ dependPackages?: Record<string, string>;
37
39
  input?: {
38
40
  [key: string]: NotificationInputDefine;
39
41
  };
@@ -69,16 +71,20 @@ export type NotificationContext = {
69
71
  logger: ILogger;
70
72
  utils: typeof utils;
71
73
  emailService: IEmailService;
74
+ serviceGetter?: IServiceGetter;
75
+ define?: NotificationDefine;
72
76
  };
73
77
  export declare abstract class BaseNotification implements INotification {
74
78
  define: NotificationDefine;
75
79
  ctx: NotificationContext;
76
80
  http: HttpClient;
77
81
  logger: ILogger;
82
+ runtimeDepsService?: IRuntimeDepsService;
83
+ importRuntime(specifier: string): Promise<any>;
78
84
  doSend(body: NotificationBody): Promise<void>;
79
85
  abstract send(body: NotificationBody): Promise<void>;
80
86
  onInstance(): Promise<void>;
81
- setCtx(ctx: NotificationContext): void;
87
+ setCtx(ctx: NotificationContext): Promise<void>;
82
88
  setDefine: (define: NotificationDefine) => void;
83
89
  onRequest(req: NotificationRequestHandleReq): Promise<any>;
84
90
  onTestRequest(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/notification/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/notification/api.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,28 @@ export class BaseNotification {
4
4
  ctx;
5
5
  http;
6
6
  logger;
7
+ runtimeDepsService;
8
+ async importRuntime(specifier) {
9
+ if (!this.runtimeDepsService) {
10
+ return await import(specifier);
11
+ }
12
+ return await this.runtimeDepsService.importRuntime(specifier, this.logger);
13
+ }
7
14
  async doSend(body) {
8
15
  return await this.send(body);
9
16
  }
10
17
  // eslint-disable-next-line @typescript-eslint/no-empty-function
11
18
  async onInstance() { }
12
- setCtx(ctx) {
19
+ async setCtx(ctx) {
13
20
  this.ctx = ctx;
14
21
  this.http = ctx.http;
15
22
  this.logger = ctx.logger;
23
+ if (!this.runtimeDepsService && this.ctx.serviceGetter) {
24
+ this.runtimeDepsService = await this.ctx.serviceGetter.get("runtimeDepsService");
25
+ }
26
+ if (this.runtimeDepsService && this.ctx.define?.name) {
27
+ await this.runtimeDepsService.ensureRuntimeDependencies({ pluginKeys: `notification:${this.ctx.define.name}`, logger: this.logger });
28
+ }
16
29
  }
17
30
  setDefine = (define) => {
18
31
  this.define = define;
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/notification/decorator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAG5J,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AAEpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAyBzE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,uBAAuB,GAAG,iBAAiB,CASpF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,mBAAmB,gBAiBvF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,0BAA0B,CAAC;IAAC,GAAG,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,iBAGpI"}
1
+ {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/notification/decorator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAG5J,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AAEpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAyBzE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,uBAAuB,GAAG,iBAAiB,CASpF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,mBAAmB,gBAkBvF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,0BAA0B,CAAC;IAAC,GAAG,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,iBAGpI"}
@@ -55,7 +55,8 @@ export async function newNotification(type, input, ctx) {
55
55
  throw new Error("ctx is required");
56
56
  }
57
57
  plugin.setDefine(register.define);
58
- plugin.setCtx(ctx);
58
+ ctx.define = ctx.define || register.define;
59
+ await plugin.setCtx(ctx);
59
60
  await plugin.onInstance();
60
61
  return plugin;
61
62
  }
@@ -8,7 +8,7 @@ import { INotificationService } from "../notification/index.js";
8
8
  import { Registrable } from "../registry/index.js";
9
9
  import { IPluginConfigService } from "../service/config.js";
10
10
  import { TaskEmitter } from "../service/emit.js";
11
- import { ICnameProxyService, IEmailService, IServiceGetter, IUrlService } from "../service/index.js";
11
+ import { ICnameProxyService, IEmailService, IRuntimeDepsService, IServiceGetter, IUrlService } from "../service/index.js";
12
12
  export type PluginRequestHandleReq<T = any> = {
13
13
  typeName: string;
14
14
  action: string;
@@ -43,6 +43,8 @@ export type PluginDefine = Registrable & {
43
43
  default?: any;
44
44
  group?: string;
45
45
  icon?: string;
46
+ dependPlugins?: Record<string, string>;
47
+ dependPackages?: Record<string, string>;
46
48
  input?: {
47
49
  [key: string]: TaskInputDefine;
48
50
  };
@@ -68,6 +70,8 @@ export type ITaskPlugin = {
68
70
  onInstance(): Promise<void>;
69
71
  execute(): Promise<void | string>;
70
72
  onRequest(req: PluginRequestHandleReq<any>): Promise<any>;
73
+ setCtx(ctx: TaskInstanceContext): Promise<void>;
74
+ importRuntime?(specifier: string): Promise<any>;
71
75
  [key: string]: any;
72
76
  };
73
77
  export type TaskResult = {
@@ -113,10 +117,12 @@ export declare abstract class AbstractTaskPlugin implements ITaskPlugin {
113
117
  logger: ILogger;
114
118
  http: HttpClient;
115
119
  accessService: IAccessService;
120
+ runtimeDepsService: IRuntimeDepsService;
121
+ importRuntime(specifier: string): Promise<any>;
116
122
  clearLastStatus(): void;
117
123
  getFiles(): FileItem[] | undefined;
118
124
  checkSignal(): void;
119
- setCtx(ctx: TaskInstanceContext): void;
125
+ setCtx(ctx: TaskInstanceContext): Promise<void>;
120
126
  getAccess<T = any>(accessId: string | number, isCommon?: boolean): Promise<T>;
121
127
  registerSecret(value: string): void;
122
128
  randomFileId(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/plugin/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAU,KAAK,EAAE,MAAM,cAAc,CAAC;AAGlG,OAAO,EAAkB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAe,QAAQ,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAErG,MAAM,MAAM,sBAAsB,CAAC,CAAC,GAAG,GAAG,IAAI;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,EAAE,EAAE,GAAG,CAAC;CACT,CAAC;AACF,oBAAY,YAAY;IACtB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,OAAO,IAAA;CACR;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACvC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAChC,CAAC;IACF,MAAM,CAAC,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;KACjC,CAAC;IAEF,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,GAAG,CAAC;SACX,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,QAAQ,EAAE,QAAQ,CAAC;IAEnB,OAAO,EAAE,UAAU,CAAC;IAEpB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IAErB,MAAM,EAAE,OAAO,CAAC;IAEhB,YAAY,EAAE,OAAO,CAAC;IAEtB,aAAa,EAAE,cAAc,CAAC;IAE9B,YAAY,EAAE,aAAa,CAAC;IAE5B,iBAAiB,EAAE,kBAAkB,CAAC;IAEtC,mBAAmB,EAAE,oBAAoB,CAAC;IAE1C,mBAAmB,EAAE,oBAAoB,CAAC;IAE1C,UAAU,EAAE,WAAW,CAAC;IAExB,eAAe,EAAE,QAAQ,CAAC;IAE1B,WAAW,EAAE,QAAQ,CAAC;IAEtB,IAAI,EAAE,UAAU,CAAC;IAEjB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,SAAS,EAAE,SAAS,CAAC;IAErB,UAAU,CAAC,EAAE,QAAQ,CAAC;IAEtB,MAAM,EAAE,WAAW,CAAC;IAEpB,KAAK,EAAE,OAAO,KAAK,CAAC;IAEpB,IAAI,EAAE,QAAQ,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,WAAW,CAAC;IAGrB,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,8BAAsB,kBAAmB,YAAW,WAAW;IAC7D,OAAO,EAAE,UAAU,CAAoF;IACvG,GAAG,EAAG,mBAAmB,CAAC;IAC1B,MAAM,EAAG,OAAO,CAAC;IACjB,IAAI,EAAG,UAAU,CAAC;IAClB,aAAa,EAAG,cAAc,CAAC;IAE/B,eAAe;IAIf,QAAQ;IAIR,WAAW;IAMX,MAAM,CAAC,GAAG,EAAE,mBAAmB;IAqBzB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,UAAQ;IAkCpE,cAAc,CAAC,KAAK,EAAE,MAAM;IAQ5B,YAAY;IAGZ,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAUvC,YAAY;IAOZ,IAAI,QAAQ,aAEX;IAED,IAAI,IAAI,SAEP;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;IAE1C,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM;IAI9B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK;IAKnC,SAAS,CAAC,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC;IAmBhD,OAAO;IAIP,UAAU;IAMV,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAWlC,qBAAqB,CAAC,GAAG,SAAM;IAI/B,uBAAuB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;IAIzD,aAAa,IAAI,QAAQ;IAIzB,aAAa,CAAC,GAAG,EAAE,MAAM;IAIzB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO;IAK9E,YAAY;IAKN,qBAAqB,CAAC,GAAG,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,mBAAmB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9F,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAoCvB,iBAAiB,CAAC,GAAG,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,UAAU,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,SAAS,EAAE,CAAC,GAAG,EAAE;YAAE,MAAM,EAAE,cAAc,CAAC;YAAC,IAAI,EAAE,GAAG,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,mBAAmB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9F,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAuCxD;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/plugin/api.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,13 @@ export class AbstractTaskPlugin {
15
15
  logger;
16
16
  http;
17
17
  accessService;
18
+ runtimeDepsService;
19
+ async importRuntime(specifier) {
20
+ if (!this.runtimeDepsService) {
21
+ throw new Error("runtimeDepsService 未初始化");
22
+ }
23
+ return await this.runtimeDepsService.importRuntime(specifier, this.logger);
24
+ }
18
25
  clearLastStatus() {
19
26
  this._result.clearLastStatus = true;
20
27
  }
@@ -26,11 +33,17 @@ export class AbstractTaskPlugin {
26
33
  throw new CancelError("用户取消");
27
34
  }
28
35
  }
29
- setCtx(ctx) {
36
+ async setCtx(ctx) {
30
37
  this.ctx = ctx;
31
38
  this.logger = ctx.logger;
32
39
  this.accessService = ctx.accessService;
33
40
  this.http = ctx.http;
41
+ if (!this.runtimeDepsService && this.ctx.serviceGetter) {
42
+ this.runtimeDepsService = await this.ctx.serviceGetter.get("runtimeDepsService");
43
+ }
44
+ if (this.runtimeDepsService && this.ctx.define?.name) {
45
+ await this.runtimeDepsService.ensureRuntimeDependencies({ pluginKeys: `plugin:${this.ctx.define.name}`, logger: this.logger });
46
+ }
34
47
  // 将证书加入secret
35
48
  // @ts-ignore
36
49
  if (this.cert && this.cert.crt && this.cert.key) {
@@ -25,7 +25,7 @@ export class PipelineEmitter {
25
25
  }
26
26
  off(event, listener) {
27
27
  if (this.events[event]) {
28
- this.events[event] = this.events[event].filter((l) => l !== listener);
28
+ this.events[event] = this.events[event].filter(l => l !== listener);
29
29
  }
30
30
  }
31
31
  once(event, listener) {
@@ -3,6 +3,7 @@ export * from "./cname.js";
3
3
  export * from "./config.js";
4
4
  export * from "./url.js";
5
5
  export * from "./emit.js";
6
+ export * from "./runtime.js";
6
7
  export type IServiceGetter = {
7
8
  get: <T>(name: string) => Promise<T>;
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACtC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACtC,CAAC"}
@@ -3,3 +3,4 @@ export * from "./cname.js";
3
3
  export * from "./config.js";
4
4
  export * from "./url.js";
5
5
  export * from "./emit.js";
6
+ export * from "./runtime.js";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 运行时动态导入函数类型
3
+ */
4
+ export type ImportRuntime = (specifier: string, logger?: ILogger) => Promise<any>;
5
+ /**
6
+ * 日志接口
7
+ */
8
+ export type ILogger = {
9
+ info: (message: string) => void;
10
+ };
11
+ /**
12
+ * 运行时依赖服务参数
13
+ */
14
+ export type EnsureRuntimeDepsOptions = {
15
+ pluginKeys: string | string[];
16
+ logger?: ILogger;
17
+ };
18
+ /**
19
+ * 运行时依赖服务接口
20
+ */
21
+ export interface IRuntimeDepsService {
22
+ ensureRuntimeDependencies(options: EnsureRuntimeDepsOptions): Promise<any>;
23
+ importRuntime: ImportRuntime;
24
+ }
25
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/service/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yBAAyB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,aAAa,EAAE,aAAa,CAAC;CAC9B"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@certd/pipeline",
3
3
  "private": false,
4
- "version": "1.41.4",
4
+ "version": "1.42.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -16,14 +16,16 @@
16
16
  "test": "mocha --loader=ts-node/esm",
17
17
  "test:unit": "cross-env NODE_ENV=unittest mocha --no-config --node-option no-warnings --node-option loader=ts-node/esm \"src/**/*.test.ts\"",
18
18
  "pub": "npm publish",
19
- "compile": "tsc --skipLibCheck --watch"
19
+ "compile": "tsc --skipLibCheck --watch",
20
+ "format": "prettier --write src",
21
+ "lint": "eslint --fix"
20
22
  },
21
23
  "dependencies": {
22
- "@certd/basic": "^1.41.4",
23
- "@certd/plus-core": "^1.41.4",
24
+ "@certd/basic": "^1.42.0",
25
+ "@certd/plus-core": "^1.42.0",
24
26
  "dayjs": "^1.11.7",
25
27
  "lodash-es": "^4.17.21",
26
- "reflect-metadata": "^0.1.13"
28
+ "reflect-metadata": "^0.2.2"
27
29
  },
28
30
  "devDependencies": {
29
31
  "@rollup/plugin-commonjs": "^23.0.4",
@@ -31,23 +33,23 @@
31
33
  "@rollup/plugin-node-resolve": "^15.0.1",
32
34
  "@rollup/plugin-terser": "^0.4.3",
33
35
  "@rollup/plugin-typescript": "^11.0.0",
34
- "@types/chai": "^4.3.10",
36
+ "@types/chai": "^4.3.12",
35
37
  "@types/lodash-es": "^4.17.12",
36
- "@types/mocha": "^10.0.1",
38
+ "@types/mocha": "^10.0.6",
37
39
  "@typescript-eslint/eslint-plugin": "^8.26.1",
38
40
  "@typescript-eslint/parser": "^8.26.1",
39
- "chai": "4.3.10",
41
+ "chai": "^5.1.0",
40
42
  "cross-env": "^7.0.3",
41
- "eslint": "^8.41.0",
42
- "eslint-config-prettier": "^8.8.0",
43
- "eslint-plugin-prettier": "^4.2.1",
43
+ "eslint": "^8.57.0",
44
+ "eslint-config-prettier": "^9.1.0",
45
+ "eslint-plugin-prettier": "^5.1.3",
44
46
  "esmock": "^2.7.5",
45
- "mocha": "^10.2.0",
46
- "prettier": "^2.8.8",
47
+ "mocha": "^10.6.0",
48
+ "prettier": "3.3.3",
47
49
  "rimraf": "^5.0.5",
48
50
  "ts-node": "^10.9.2",
49
51
  "tslib": "^2.8.1",
50
52
  "typescript": "^5.4.2"
51
53
  },
52
- "gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
54
+ "gitHead": "b46948c0ba67069ebcd2bb71b21b6c289d99f1b8"
53
55
  }