@certd/lib-server 1.36.25 → 1.37.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.
@@ -1,5 +1,3 @@
1
1
  export * from './api/index.js';
2
2
  export * from './entity/addon.js';
3
3
  export * from './service/addon-service.js';
4
- export * from './service/addon-getter.js';
5
- export * from './service/addon-sys-getter.js';
@@ -1,6 +1,4 @@
1
1
  export * from './api/index.js';
2
2
  export * from './entity/addon.js';
3
3
  export * from './service/addon-service.js';
4
- export * from './service/addon-getter.js';
5
- export * from './service/addon-sys-getter.js';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXNlci9hZGRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsK0JBQStCLENBQUEifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXNlci9hZGRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyw0QkFBNEIsQ0FBQSJ9
@@ -6,7 +6,6 @@ import { AddonEntity } from "../entity/addon.js";
6
6
  */
7
7
  export declare class AddonService extends BaseService<AddonEntity> {
8
8
  repository: Repository<AddonEntity>;
9
- private taskServiceBuilder;
10
9
  getRepository(): Repository<AddonEntity>;
11
10
  page(pageReq: PageReq<AddonEntity>): Promise<{
12
11
  records: AddonEntity[];
@@ -29,8 +28,6 @@ export declare class AddonService extends BaseService<AddonEntity> {
29
28
  addonType: string;
30
29
  type: string;
31
30
  }>;
32
- getAddonById(id: any, checkUserId: boolean, userId?: number): Promise<any>;
33
- getById(id: any, userId: number): Promise<any>;
34
31
  getDefineList(addonType: string): {
35
32
  key: string;
36
33
  name: string;
@@ -7,20 +7,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Inject, Provide, Scope, ScopeEnum } from "@midwayjs/core";
10
+ import { Provide, Scope, ScopeEnum } from "@midwayjs/core";
11
11
  import { InjectEntityModel } from "@midwayjs/typeorm";
12
12
  import { In, Repository } from "typeorm";
13
- import { BaseService, PermissionException, ValidateException } from "../../../index.js";
14
- import { addonRegistry, newAddon } from "../api/index.js";
13
+ import { BaseService, ValidateException } from "../../../index.js";
14
+ import { addonRegistry } from "../api/index.js";
15
15
  import { AddonEntity } from "../entity/addon.js";
16
- import { http, logger, utils } from "@certd/basic";
17
- import { TaskServiceBuilder } from "@certd/ui-server/dist/modules/pipeline/service/getter/task-service-getter.js";
18
16
  /**
19
17
  * Addon
20
18
  */
21
19
  let AddonService = class AddonService extends BaseService {
22
20
  repository;
23
- taskServiceBuilder;
24
21
  //@ts-ignore
25
22
  getRepository() {
26
23
  return this.repository;
@@ -37,10 +34,10 @@ let AddonService = class AddonService extends BaseService {
37
34
  if (param._copyFrom) {
38
35
  oldEntity = await this.info(param._copyFrom);
39
36
  if (oldEntity == null) {
40
- throw new ValidateException('该Addon配置不存在,请确认是否已被删除');
37
+ throw new ValidateException("该Addon配置不存在,请确认是否已被删除");
41
38
  }
42
39
  if (oldEntity.userId !== param.userId) {
43
- throw new ValidateException('您无权查看该Addon配置');
40
+ throw new ValidateException("您无权查看该Addon配置");
44
41
  }
45
42
  }
46
43
  if (!param.userId) {
@@ -59,58 +56,23 @@ let AddonService = class AddonService extends BaseService {
59
56
  async update(param) {
60
57
  const oldEntity = await this.info(param.id);
61
58
  if (oldEntity == null) {
62
- throw new ValidateException('该Addon配置不存在,请确认是否已被删除');
59
+ throw new ValidateException("该Addon配置不存在,请确认是否已被删除");
63
60
  }
64
61
  return await super.update(param);
65
62
  }
66
63
  async getSimpleInfo(id) {
67
64
  const entity = await this.info(id);
68
65
  if (entity == null) {
69
- throw new ValidateException('该Addon配置不存在,请确认是否已被删除');
66
+ throw new ValidateException("该Addon配置不存在,请确认是否已被删除");
70
67
  }
71
68
  return {
72
69
  id: entity.id,
73
70
  name: entity.name,
74
71
  userId: entity.userId,
75
72
  addonType: entity.addonType,
76
- type: entity.type,
73
+ type: entity.type
77
74
  };
78
75
  }
79
- async getAddonById(id, checkUserId, userId) {
80
- const serviceGetter = this.taskServiceBuilder.create({ userId: userId ?? 0 });
81
- const ctx = {
82
- http: http,
83
- logger: logger,
84
- utils: utils,
85
- serviceGetter
86
- };
87
- if (!id) {
88
- //使用图片验证码
89
- return await newAddon("captcha", "image", {}, ctx);
90
- }
91
- const entity = await this.info(id);
92
- if (entity == null) {
93
- //使用图片验证码
94
- return await newAddon("captcha", "image", {}, ctx);
95
- }
96
- if (checkUserId) {
97
- if (userId == null) {
98
- throw new ValidateException('userId不能为空');
99
- }
100
- if (userId !== entity.userId) {
101
- throw new PermissionException('您对该Addon无访问权限');
102
- }
103
- }
104
- const setting = JSON.parse(entity.setting ?? "{}");
105
- const input = {
106
- id: entity.id,
107
- ...setting,
108
- };
109
- return await newAddon(entity.addonType, entity.type, input, ctx);
110
- }
111
- async getById(id, userId) {
112
- return await this.getAddonById(id, true, userId);
113
- }
114
76
  getDefineList(addonType) {
115
77
  return addonRegistry.getDefineList();
116
78
  }
@@ -127,7 +89,7 @@ let AddonService = class AddonService extends BaseService {
127
89
  return await this.repository.find({
128
90
  where: {
129
91
  id: In(ids),
130
- userId,
92
+ userId
131
93
  },
132
94
  select: {
133
95
  id: true,
@@ -135,8 +97,8 @@ let AddonService = class AddonService extends BaseService {
135
97
  addonType: true,
136
98
  type: true,
137
99
  userId: true,
138
- isSystem: true,
139
- },
100
+ isSystem: true
101
+ }
140
102
  });
141
103
  }
142
104
  async getDefault(userId, addonType) {
@@ -146,8 +108,8 @@ let AddonService = class AddonService extends BaseService {
146
108
  addonType
147
109
  },
148
110
  order: {
149
- isDefault: 'DESC',
150
- },
111
+ isDefault: "DESC"
112
+ }
151
113
  });
152
114
  if (!res) {
153
115
  return null;
@@ -162,28 +124,28 @@ let AddonService = class AddonService extends BaseService {
162
124
  type: res.type,
163
125
  name: res.name,
164
126
  userId: res.userId,
165
- setting,
127
+ setting
166
128
  };
167
129
  }
168
130
  async setDefault(id, userId, addonType) {
169
131
  if (!id) {
170
- throw new ValidateException('id不能为空');
132
+ throw new ValidateException("id不能为空");
171
133
  }
172
134
  if (!userId) {
173
- throw new ValidateException('userId不能为空');
135
+ throw new ValidateException("userId不能为空");
174
136
  }
175
137
  await this.repository.update({
176
138
  userId,
177
139
  addonType
178
140
  }, {
179
- isDefault: false,
141
+ isDefault: false
180
142
  });
181
143
  await this.repository.update({
182
144
  id,
183
145
  userId,
184
146
  addonType
185
147
  }, {
186
- isDefault: true,
148
+ isDefault: true
187
149
  });
188
150
  }
189
151
  async getOrCreateDefault(opts) {
@@ -194,7 +156,7 @@ let AddonService = class AddonService extends BaseService {
194
156
  return defaultConfig;
195
157
  }
196
158
  const setting = {
197
- ...inputs,
159
+ ...inputs
198
160
  };
199
161
  const res = await this.repository.save({
200
162
  userId,
@@ -202,7 +164,7 @@ let AddonService = class AddonService extends BaseService {
202
164
  type: type,
203
165
  name: addonDefine.title,
204
166
  setting: JSON.stringify(setting),
205
- isDefault: true,
167
+ isDefault: true
206
168
  });
207
169
  return this.buildAddonInstanceConfig(res);
208
170
  }
@@ -211,13 +173,9 @@ __decorate([
211
173
  InjectEntityModel(AddonEntity),
212
174
  __metadata("design:type", Repository)
213
175
  ], AddonService.prototype, "repository", void 0);
214
- __decorate([
215
- Inject(),
216
- __metadata("design:type", TaskServiceBuilder)
217
- ], AddonService.prototype, "taskServiceBuilder", void 0);
218
176
  AddonService = __decorate([
219
177
  Provide(),
220
178
  Scope(ScopeEnum.Request, { allowDowngrade: true })
221
179
  ], AddonService);
222
180
  export { AddonService };
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91c2VyL2FkZG9uL3NlcnZpY2UvYWRkb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFlLFdBQVcsRUFBVyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUVsSDs7R0FFRztBQUdJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxXQUF3QjtJQUV4RCxVQUFVLENBQTBCO0lBRzVCLGtCQUFrQixDQUFxQjtJQUUvQyxZQUFZO0lBQ1osYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUE2QjtRQUN0QyxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMs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
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91c2VyL2FkZG9uL3NlcnZpY2UvYWRkb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQWUsV0FBVyxFQUFXLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRDs7R0FFRztBQUdJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxXQUF3QjtJQUV4RCxVQUFVLENBQTBCO0lBRXBDLFlBQVk7SUFDWixhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQTZCO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7UUFDYixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUMs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@certd/lib-server",
3
- "version": "1.36.25",
3
+ "version": "1.37.1",
4
4
  "description": "midway with flyway, sql upgrade way ",
5
5
  "private": false,
6
6
  "type": "module",
@@ -27,11 +27,11 @@
27
27
  ],
28
28
  "license": "AGPL",
29
29
  "dependencies": {
30
- "@certd/acme-client": "^1.36.25",
31
- "@certd/basic": "^1.36.25",
32
- "@certd/pipeline": "^1.36.25",
33
- "@certd/plugin-lib": "^1.36.25",
34
- "@certd/plus-core": "^1.36.25",
30
+ "@certd/acme-client": "^1.37.1",
31
+ "@certd/basic": "^1.37.1",
32
+ "@certd/pipeline": "^1.37.1",
33
+ "@certd/plugin-lib": "^1.37.1",
34
+ "@certd/plus-core": "^1.37.1",
35
35
  "@midwayjs/cache": "3.14.0",
36
36
  "@midwayjs/core": "3.20.11",
37
37
  "@midwayjs/i18n": "3.20.13",
@@ -63,5 +63,5 @@
63
63
  "typeorm": "^0.3.11",
64
64
  "typescript": "^5.4.2"
65
65
  },
66
- "gitHead": "6b43007c44e1b8ccdb87081b0cf3f99fc2c09d53"
66
+ "gitHead": "c725cee0445dbe1ebd1b6588373bde31697113da"
67
67
  }
@@ -1,8 +0,0 @@
1
- import { IAddonGetter } from "../api/index.js";
2
- export declare class AddonGetter implements IAddonGetter {
3
- userId: number;
4
- getter: <T>(id: any, userId?: number) => Promise<T>;
5
- constructor(userId: number, getter: (id: any, userId: number) => Promise<any>);
6
- getById<T = any>(id: any): Promise<T>;
7
- getCommonById<T = any>(id: any): Promise<T>;
8
- }
@@ -1,15 +0,0 @@
1
- export class AddonGetter {
2
- userId;
3
- getter;
4
- constructor(userId, getter) {
5
- this.userId = userId;
6
- this.getter = getter;
7
- }
8
- async getById(id) {
9
- return await this.getter(id, this.userId);
10
- }
11
- async getCommonById(id) {
12
- return await this.getter(id, 0);
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tZ2V0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3VzZXIvYWRkb24vc2VydmljZS9hZGRvbi1nZXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUE4QztJQUNwRCxZQUFZLE1BQWMsRUFBRSxNQUFpRDtRQUMzRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBVSxFQUFPO1FBQzVCLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQVUsRUFBTztRQUNsQyxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
@@ -1,8 +0,0 @@
1
- import { IAccessService } from '@certd/pipeline';
2
- import { AddonService } from './addon-service.js';
3
- export declare class AddonSysGetter implements IAccessService {
4
- addonService: AddonService;
5
- constructor(addonService: AddonService);
6
- getById<T = any>(id: any): Promise<any>;
7
- getCommonById<T = any>(id: any): Promise<any>;
8
- }
@@ -1,13 +0,0 @@
1
- export class AddonSysGetter {
2
- addonService;
3
- constructor(addonService) {
4
- this.addonService = addonService;
5
- }
6
- async getById(id) {
7
- return await this.addonService.getById(id, 0);
8
- }
9
- async getCommonById(id) {
10
- return await this.addonService.getById(id, 0);
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tc3lzLWdldHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91c2VyL2FkZG9uL3NlcnZpY2UvYWRkb24tc3lzLWdldHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFZLENBQWU7SUFDM0IsWUFBWSxZQUEwQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBVSxFQUFPO1FBQzVCLE9BQU8sTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQVUsRUFBTztRQUNsQyxPQUFPLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDRiJ9