cnpmcore 1.10.0 → 1.11.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/History.md +37 -0
- package/README.md +4 -4
- package/dist/app/common/LogUtil.d.ts +1 -0
- package/dist/app/common/LogUtil.js +8 -0
- package/dist/app/common/adapter/NPMRegistry.d.ts +2 -0
- package/dist/app/common/adapter/NPMRegistry.js +5 -2
- package/dist/app/common/adapter/binary/NodePreGypBinary.js +20 -5
- package/dist/app/common/adapter/changesStream/AbstractChangesStream.d.ts +17 -0
- package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +30 -0
- package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.d.ts +9 -0
- package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.js +60 -0
- package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.d.ts +10 -0
- package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.js +71 -0
- package/dist/app/common/adapter/changesStream/NpmChangesStream.d.ts +6 -0
- package/dist/app/common/adapter/changesStream/NpmChangesStream.js +61 -0
- package/dist/app/common/enum/Hook.d.ts +18 -0
- package/dist/app/common/enum/Hook.js +24 -0
- package/dist/app/common/enum/Registry.d.ts +5 -0
- package/dist/app/common/enum/Registry.js +10 -0
- package/dist/app/common/enum/Task.d.ts +3 -1
- package/dist/app/common/enum/Task.js +3 -1
- package/dist/app/core/entity/Hook.d.ts +30 -0
- package/dist/app/core/entity/Hook.js +43 -0
- package/dist/app/core/entity/HookEvent.d.ts +36 -0
- package/dist/app/core/entity/HookEvent.js +59 -0
- package/dist/app/core/entity/Package.d.ts +2 -0
- package/dist/app/core/entity/Package.js +2 -1
- package/dist/app/core/entity/Registry.d.ts +23 -0
- package/dist/app/core/entity/Registry.js +22 -0
- package/dist/app/core/entity/Scope.d.ts +16 -0
- package/dist/app/core/entity/Scope.js +19 -0
- package/dist/app/core/entity/Task.d.ts +50 -8
- package/dist/app/core/entity/Task.js +61 -9
- package/dist/app/core/event/ChangesStream.d.ts +13 -5
- package/dist/app/core/event/ChangesStream.js +70 -15
- package/dist/app/core/event/index.d.ts +12 -4
- package/dist/app/core/event/index.js +1 -1
- package/dist/app/core/service/BinarySyncerService.d.ts +3 -3
- package/dist/app/core/service/ChangesStreamService.d.ts +15 -5
- package/dist/app/core/service/ChangesStreamService.js +120 -112
- package/dist/app/core/service/CreateHookTriggerService.d.ts +10 -0
- package/dist/app/core/service/CreateHookTriggerService.js +83 -0
- package/dist/app/core/service/HookManageService.d.ts +29 -0
- package/dist/app/core/service/HookManageService.js +77 -0
- package/dist/app/core/service/HookTriggerService.d.ts +14 -0
- package/dist/app/core/service/HookTriggerService.js +113 -0
- package/dist/app/core/service/PackageManagerService.d.ts +1 -0
- package/dist/app/core/service/PackageManagerService.js +8 -5
- package/dist/app/core/service/PackageSyncerService.d.ts +7 -4
- package/dist/app/core/service/PackageSyncerService.js +23 -4
- package/dist/app/core/service/RegistryManagerService.d.ts +29 -0
- package/dist/app/core/service/RegistryManagerService.js +97 -0
- package/dist/app/core/service/ScopeManagerService.d.ts +27 -0
- package/dist/app/core/service/ScopeManagerService.js +58 -0
- package/dist/app/core/service/TaskService.d.ts +4 -3
- package/dist/app/core/service/TaskService.js +10 -5
- package/dist/app/core/service/UserService.d.ts +1 -1
- package/dist/app/core/service/UserService.js +3 -3
- package/dist/app/core/util/EntityUtil.d.ts +13 -0
- package/dist/app/core/util/EntityUtil.js +13 -1
- package/dist/app/port/UserRoleManager.d.ts +1 -2
- package/dist/app/port/controller/HookController.d.ts +23 -0
- package/dist/app/port/controller/HookController.js +133 -0
- package/dist/app/port/controller/PackageSyncController.d.ts +1 -0
- package/dist/app/port/controller/PackageSyncController.js +13 -2
- package/dist/app/port/controller/RegistryController.d.ts +20 -0
- package/dist/app/port/controller/RegistryController.js +131 -0
- package/dist/app/port/controller/ScopeController.d.ts +14 -0
- package/dist/app/port/controller/ScopeController.js +68 -0
- package/dist/app/port/controller/convertor/HookConvertor.d.ts +37 -0
- package/dist/app/port/controller/convertor/HookConvertor.js +29 -0
- package/dist/app/port/middleware/AdminAccess.d.ts +2 -0
- package/dist/app/port/middleware/AdminAccess.js +15 -0
- package/dist/app/port/typebox.d.ts +48 -0
- package/dist/app/port/typebox.js +126 -2
- package/dist/app/repository/HookRepository.d.ts +19 -0
- package/dist/app/repository/HookRepository.js +69 -0
- package/dist/app/repository/RegistryRepository.d.ts +12 -0
- package/dist/app/repository/RegistryRepository.js +64 -0
- package/dist/app/repository/ScopeRepository.d.ts +14 -0
- package/dist/app/repository/ScopeRepository.js +73 -0
- package/dist/app/repository/TaskRepository.d.ts +5 -3
- package/dist/app/repository/TaskRepository.js +32 -2
- package/dist/app/repository/UserRepository.d.ts +1 -0
- package/dist/app/repository/UserRepository.js +7 -1
- package/dist/app/repository/model/HistoryTask.js +2 -2
- package/dist/app/repository/model/Hook.d.ts +15 -0
- package/dist/app/repository/model/Hook.js +58 -0
- package/dist/app/repository/model/Package.d.ts +1 -0
- package/dist/app/repository/model/Package.js +4 -1
- package/dist/app/repository/model/PackageVersionBlock.js +2 -2
- package/dist/app/repository/model/Registry.d.ts +13 -0
- package/dist/app/repository/model/Registry.js +50 -0
- package/dist/app/repository/model/Scope.d.ts +9 -0
- package/dist/app/repository/model/Scope.js +39 -0
- package/dist/app/repository/model/Task.d.ts +1 -0
- package/dist/app/repository/model/Task.js +7 -2
- package/dist/app/schedule/CreateTriggerHookWorker.d.ts +8 -0
- package/dist/app/schedule/CreateTriggerHookWorker.js +51 -0
- package/dist/app/schedule/TriggerHookWorker.d.ts +8 -0
- package/dist/app/schedule/TriggerHookWorker.js +49 -0
- package/dist/config/binaries.js +15 -1
- package/dist/config/config.default.js +5 -1
- package/package.json +2 -2
|
@@ -10,21 +10,38 @@ exports.PackageMetaChanged = exports.PackageMaintainerRemoved = exports.PackageM
|
|
|
10
10
|
const tegg_1 = require("@eggjs/tegg");
|
|
11
11
|
const index_1 = require("./index");
|
|
12
12
|
const Change_1 = require("../entity/Change");
|
|
13
|
+
const HookEvent_1 = require("../entity/HookEvent");
|
|
14
|
+
const Task_1 = require("../entity/Task");
|
|
13
15
|
class ChangesStreamEvent {
|
|
16
|
+
get hookEnable() {
|
|
17
|
+
return this.config.hookEnable;
|
|
18
|
+
}
|
|
14
19
|
async addChange(type, fullname, data) {
|
|
15
|
-
|
|
20
|
+
const change = Change_1.Change.create({
|
|
16
21
|
type,
|
|
17
22
|
targetName: fullname,
|
|
18
23
|
data,
|
|
19
|
-
})
|
|
24
|
+
});
|
|
25
|
+
await this.changeRepository.addChange(change);
|
|
26
|
+
return change;
|
|
20
27
|
}
|
|
21
28
|
}
|
|
22
29
|
__decorate([
|
|
23
30
|
(0, tegg_1.Inject)()
|
|
24
31
|
], ChangesStreamEvent.prototype, "changeRepository", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, tegg_1.Inject)()
|
|
34
|
+
], ChangesStreamEvent.prototype, "taskService", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, tegg_1.Inject)()
|
|
37
|
+
], ChangesStreamEvent.prototype, "config", void 0);
|
|
25
38
|
let PackageUnpublished = class PackageUnpublished extends ChangesStreamEvent {
|
|
26
39
|
async handle(fullname) {
|
|
27
|
-
await this.addChange(index_1.PACKAGE_UNPUBLISHED, fullname, {});
|
|
40
|
+
const change = await this.addChange(index_1.PACKAGE_UNPUBLISHED, fullname, {});
|
|
41
|
+
if (this.hookEnable) {
|
|
42
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createUnpublishEvent(fullname, change.changeId));
|
|
43
|
+
await this.taskService.createTask(task, true);
|
|
44
|
+
}
|
|
28
45
|
}
|
|
29
46
|
};
|
|
30
47
|
PackageUnpublished = __decorate([
|
|
@@ -32,8 +49,12 @@ PackageUnpublished = __decorate([
|
|
|
32
49
|
], PackageUnpublished);
|
|
33
50
|
exports.PackageUnpublished = PackageUnpublished;
|
|
34
51
|
let PackageVersionAdded = class PackageVersionAdded extends ChangesStreamEvent {
|
|
35
|
-
async handle(fullname, version) {
|
|
36
|
-
await this.addChange(index_1.PACKAGE_VERSION_ADDED, fullname, { version });
|
|
52
|
+
async handle(fullname, version, tag) {
|
|
53
|
+
const change = await this.addChange(index_1.PACKAGE_VERSION_ADDED, fullname, { version });
|
|
54
|
+
if (this.hookEnable) {
|
|
55
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createPublishEvent(fullname, change.changeId, version, tag));
|
|
56
|
+
await this.taskService.createTask(task, true);
|
|
57
|
+
}
|
|
37
58
|
}
|
|
38
59
|
};
|
|
39
60
|
PackageVersionAdded = __decorate([
|
|
@@ -41,8 +62,12 @@ PackageVersionAdded = __decorate([
|
|
|
41
62
|
], PackageVersionAdded);
|
|
42
63
|
exports.PackageVersionAdded = PackageVersionAdded;
|
|
43
64
|
let PackageVersionRemoved = class PackageVersionRemoved extends ChangesStreamEvent {
|
|
44
|
-
async handle(fullname, version) {
|
|
45
|
-
await this.addChange(index_1.PACKAGE_VERSION_REMOVED, fullname, { version });
|
|
65
|
+
async handle(fullname, version, tag) {
|
|
66
|
+
const change = await this.addChange(index_1.PACKAGE_VERSION_REMOVED, fullname, { version });
|
|
67
|
+
if (this.hookEnable) {
|
|
68
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createUnpublishEvent(fullname, change.changeId, version, tag));
|
|
69
|
+
await this.taskService.createTask(task, true);
|
|
70
|
+
}
|
|
46
71
|
}
|
|
47
72
|
};
|
|
48
73
|
PackageVersionRemoved = __decorate([
|
|
@@ -51,7 +76,11 @@ PackageVersionRemoved = __decorate([
|
|
|
51
76
|
exports.PackageVersionRemoved = PackageVersionRemoved;
|
|
52
77
|
let PackageTagAdded = class PackageTagAdded extends ChangesStreamEvent {
|
|
53
78
|
async handle(fullname, tag) {
|
|
54
|
-
await this.addChange(index_1.PACKAGE_TAG_ADDED, fullname, { tag });
|
|
79
|
+
const change = await this.addChange(index_1.PACKAGE_TAG_ADDED, fullname, { tag });
|
|
80
|
+
if (this.hookEnable) {
|
|
81
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDistTagEvent(fullname, change.changeId, tag));
|
|
82
|
+
await this.taskService.createTask(task, true);
|
|
83
|
+
}
|
|
55
84
|
}
|
|
56
85
|
};
|
|
57
86
|
PackageTagAdded = __decorate([
|
|
@@ -60,7 +89,11 @@ PackageTagAdded = __decorate([
|
|
|
60
89
|
exports.PackageTagAdded = PackageTagAdded;
|
|
61
90
|
let PackageTagChanged = class PackageTagChanged extends ChangesStreamEvent {
|
|
62
91
|
async handle(fullname, tag) {
|
|
63
|
-
await this.addChange(index_1.PACKAGE_TAG_CHANGED, fullname, { tag });
|
|
92
|
+
const change = await this.addChange(index_1.PACKAGE_TAG_CHANGED, fullname, { tag });
|
|
93
|
+
if (this.hookEnable) {
|
|
94
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDistTagEvent(fullname, change.changeId, tag));
|
|
95
|
+
await this.taskService.createTask(task, true);
|
|
96
|
+
}
|
|
64
97
|
}
|
|
65
98
|
};
|
|
66
99
|
PackageTagChanged = __decorate([
|
|
@@ -69,7 +102,11 @@ PackageTagChanged = __decorate([
|
|
|
69
102
|
exports.PackageTagChanged = PackageTagChanged;
|
|
70
103
|
let PackageTagRemoved = class PackageTagRemoved extends ChangesStreamEvent {
|
|
71
104
|
async handle(fullname, tag) {
|
|
72
|
-
await this.addChange(index_1.PACKAGE_TAG_REMOVED, fullname, { tag });
|
|
105
|
+
const change = await this.addChange(index_1.PACKAGE_TAG_REMOVED, fullname, { tag });
|
|
106
|
+
if (this.hookEnable) {
|
|
107
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDistTagRmEvent(fullname, change.changeId, tag));
|
|
108
|
+
await this.taskService.createTask(task, true);
|
|
109
|
+
}
|
|
73
110
|
}
|
|
74
111
|
};
|
|
75
112
|
PackageTagRemoved = __decorate([
|
|
@@ -77,8 +114,15 @@ PackageTagRemoved = __decorate([
|
|
|
77
114
|
], PackageTagRemoved);
|
|
78
115
|
exports.PackageTagRemoved = PackageTagRemoved;
|
|
79
116
|
let PackageMaintainerChanged = class PackageMaintainerChanged extends ChangesStreamEvent {
|
|
80
|
-
async handle(fullname) {
|
|
81
|
-
await this.addChange(index_1.PACKAGE_MAINTAINER_CHANGED, fullname, {});
|
|
117
|
+
async handle(fullname, maintainers) {
|
|
118
|
+
const change = await this.addChange(index_1.PACKAGE_MAINTAINER_CHANGED, fullname, {});
|
|
119
|
+
// TODO 应该比较差值,而不是全量推送
|
|
120
|
+
if (this.hookEnable) {
|
|
121
|
+
for (const maintainer of maintainers) {
|
|
122
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createOwnerEvent(fullname, change.changeId, maintainer.name));
|
|
123
|
+
await this.taskService.createTask(task, true);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
82
126
|
}
|
|
83
127
|
};
|
|
84
128
|
PackageMaintainerChanged = __decorate([
|
|
@@ -87,7 +131,11 @@ PackageMaintainerChanged = __decorate([
|
|
|
87
131
|
exports.PackageMaintainerChanged = PackageMaintainerChanged;
|
|
88
132
|
let PackageMaintainerRemoved = class PackageMaintainerRemoved extends ChangesStreamEvent {
|
|
89
133
|
async handle(fullname, maintainer) {
|
|
90
|
-
await this.addChange(index_1.PACKAGE_MAINTAINER_REMOVED, fullname, { maintainer });
|
|
134
|
+
const change = await this.addChange(index_1.PACKAGE_MAINTAINER_REMOVED, fullname, { maintainer });
|
|
135
|
+
if (this.hookEnable) {
|
|
136
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createOwnerRmEvent(fullname, change.changeId, maintainer));
|
|
137
|
+
await this.taskService.createTask(task, true);
|
|
138
|
+
}
|
|
91
139
|
}
|
|
92
140
|
};
|
|
93
141
|
PackageMaintainerRemoved = __decorate([
|
|
@@ -96,11 +144,18 @@ PackageMaintainerRemoved = __decorate([
|
|
|
96
144
|
exports.PackageMaintainerRemoved = PackageMaintainerRemoved;
|
|
97
145
|
let PackageMetaChanged = class PackageMetaChanged extends ChangesStreamEvent {
|
|
98
146
|
async handle(fullname, meta) {
|
|
99
|
-
await this.addChange(index_1.PACKAGE_META_CHANGED, fullname, { ...meta });
|
|
147
|
+
const change = await this.addChange(index_1.PACKAGE_META_CHANGED, fullname, { ...meta });
|
|
148
|
+
const { deprecateds } = meta;
|
|
149
|
+
if (this.hookEnable) {
|
|
150
|
+
for (const deprecated of deprecateds || []) {
|
|
151
|
+
const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDeprecatedEvent(fullname, change.changeId, deprecated.version));
|
|
152
|
+
await this.taskService.createTask(task, true);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
100
155
|
}
|
|
101
156
|
};
|
|
102
157
|
PackageMetaChanged = __decorate([
|
|
103
158
|
(0, tegg_1.Event)(index_1.PACKAGE_META_CHANGED)
|
|
104
159
|
], PackageMetaChanged);
|
|
105
160
|
exports.PackageMetaChanged = PackageMetaChanged;
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2V2ZW50L0NoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0Esc0NBQTRDO0FBQzVDLG1DQVVpQjtBQUVqQiw2Q0FBMEM7QUFDMUMsbURBQWdEO0FBQ2hELHlDQUFzQztBQUl0QyxNQUFNLGtCQUFrQjtJQVV0QixJQUFjLFVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxJQUFZO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLGVBQU0sQ0FBQyxNQUFNLENBQUM7WUFDM0IsSUFBSTtZQUNKLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLElBQUk7U0FDTCxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBckJDO0lBREMsSUFBQSxhQUFNLEdBQUU7NERBQzJDO0FBR3BEO0lBREMsSUFBQSxhQUFNLEdBQUU7dURBQ21DO0FBRzVDO0lBREMsSUFBQSxhQUFNLEdBQUU7a0RBQytCO0FBa0IxQyxJQUFhLGtCQUFrQixHQUEvQixNQUFhLGtCQUFtQixTQUFRLGtCQUFrQjtJQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBbUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLFdBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBUyxDQUFDLG9CQUFvQixDQUFDLFFB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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import '@eggjs/tegg';
|
|
2
|
+
import { User } from '../entity/User';
|
|
2
3
|
export declare const PACKAGE_UNPUBLISHED = "PACKAGE_UNPUBLISHED";
|
|
3
4
|
export declare const PACKAGE_BLOCKED = "PACKAGE_BLOCKED";
|
|
4
5
|
export declare const PACKAGE_UNBLOCKED = "PACKAGE_UNBLOCKED";
|
|
@@ -10,18 +11,25 @@ export declare const PACKAGE_TAG_REMOVED = "PACKAGE_TAG_REMOVED";
|
|
|
10
11
|
export declare const PACKAGE_MAINTAINER_CHANGED = "PACKAGE_MAINTAINER_CHANGED";
|
|
11
12
|
export declare const PACKAGE_MAINTAINER_REMOVED = "PACKAGE_MAINTAINER_REMOVED";
|
|
12
13
|
export declare const PACKAGE_META_CHANGED = "PACKAGE_META_CHANGED";
|
|
14
|
+
export interface PackageDeprecated {
|
|
15
|
+
version: string;
|
|
16
|
+
deprecated: string;
|
|
17
|
+
}
|
|
18
|
+
export interface PackageMetaChange {
|
|
19
|
+
deprecateds?: Array<PackageDeprecated>;
|
|
20
|
+
}
|
|
13
21
|
declare module '@eggjs/tegg' {
|
|
14
22
|
interface Events {
|
|
15
23
|
[PACKAGE_UNPUBLISHED]: (fullname: string) => Promise<void>;
|
|
16
24
|
[PACKAGE_BLOCKED]: (fullname: string) => Promise<void>;
|
|
17
25
|
[PACKAGE_UNBLOCKED]: (fullname: string) => Promise<void>;
|
|
18
|
-
[PACKAGE_VERSION_ADDED]: (fullname: string, version: string) => Promise<void>;
|
|
19
|
-
[PACKAGE_VERSION_REMOVED]: (fullname: string, version: string) => Promise<void>;
|
|
26
|
+
[PACKAGE_VERSION_ADDED]: (fullname: string, version: string, tag?: string) => Promise<void>;
|
|
27
|
+
[PACKAGE_VERSION_REMOVED]: (fullname: string, version: string, tag?: string) => Promise<void>;
|
|
20
28
|
[PACKAGE_TAG_ADDED]: (fullname: string, tag: string) => Promise<void>;
|
|
21
29
|
[PACKAGE_TAG_CHANGED]: (fullname: string, tag: string) => Promise<void>;
|
|
22
30
|
[PACKAGE_TAG_REMOVED]: (fullname: string, tag: string) => Promise<void>;
|
|
23
|
-
[PACKAGE_MAINTAINER_CHANGED]: (fullname: string) => Promise<void>;
|
|
31
|
+
[PACKAGE_MAINTAINER_CHANGED]: (fullname: string, maintainers: User[]) => Promise<void>;
|
|
24
32
|
[PACKAGE_MAINTAINER_REMOVED]: (fullname: string, maintainer: string) => Promise<void>;
|
|
25
|
-
[PACKAGE_META_CHANGED]: (fullname: string, meta:
|
|
33
|
+
[PACKAGE_META_CHANGED]: (fullname: string, meta: PackageMetaChange) => Promise<void>;
|
|
26
34
|
}
|
|
27
35
|
}
|
|
@@ -13,4 +13,4 @@ exports.PACKAGE_TAG_REMOVED = 'PACKAGE_TAG_REMOVED';
|
|
|
13
13
|
exports.PACKAGE_MAINTAINER_CHANGED = 'PACKAGE_MAINTAINER_CHANGED';
|
|
14
14
|
exports.PACKAGE_MAINTAINER_REMOVED = 'PACKAGE_MAINTAINER_REMOVED';
|
|
15
15
|
exports.PACKAGE_META_CHANGED = 'PACKAGE_META_CHANGED';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9ldmVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1QkFBcUI7QUFHUixRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBQzVDLFFBQUEsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBQ3BDLFFBQUEsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsUUFBQSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUNoRCxRQUFBLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBQ3BELFFBQUEsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsUUFBQSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUM1QyxRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBQzVDLFFBQUEsMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFDMUQsUUFBQSwwQkFBMEIsR0FBRyw0QkFBNEIsQ0FBQztBQUMxRCxRQUFBLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDIn0=
|
|
@@ -11,10 +11,10 @@ export declare class BinarySyncerService extends AbstractService {
|
|
|
11
11
|
listDirBinaries(binary: Binary): Promise<Binary[]>;
|
|
12
12
|
listRootBinaries(binaryName: string): Promise<Binary[]>;
|
|
13
13
|
downloadBinary(binary: Binary): Promise<string | import("stream").Readable | undefined>;
|
|
14
|
-
createTask(binaryName: string, lastData?: any): Promise<Task
|
|
15
|
-
findTask(taskId: string): Promise<Task | null>;
|
|
14
|
+
createTask(binaryName: string, lastData?: any): Promise<Task<import("../entity/Task").TaskBaseData>>;
|
|
15
|
+
findTask(taskId: string): Promise<Task<import("../entity/Task").TaskBaseData> | null>;
|
|
16
16
|
findTaskLog(task: Task): Promise<string | import("stream").Readable | undefined>;
|
|
17
|
-
findExecuteTask(): Promise<Task | null>;
|
|
17
|
+
findExecuteTask(): Promise<Task<import("../entity/Task").TaskBaseData> | null>;
|
|
18
18
|
executeTask(task: Task): Promise<void>;
|
|
19
19
|
private syncDir;
|
|
20
20
|
private diff;
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { AbstractService } from '../../common/AbstractService';
|
|
2
|
-
import {
|
|
2
|
+
import { ChangesStreamTask } from '../entity/Task';
|
|
3
|
+
import { Registry } from '../entity/Registry';
|
|
3
4
|
export declare class ChangesStreamService extends AbstractService {
|
|
4
5
|
private readonly taskRepository;
|
|
5
|
-
private readonly httpclient;
|
|
6
6
|
private readonly packageSyncerService;
|
|
7
7
|
private readonly taskService;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
private
|
|
8
|
+
private readonly registryManagerService;
|
|
9
|
+
private readonly scopeManagerService;
|
|
10
|
+
private readonly eggObjectFactory;
|
|
11
|
+
private readonly packageRepository;
|
|
12
|
+
findExecuteTask(): Promise<ChangesStreamTask | null>;
|
|
13
|
+
executeTask(task: ChangesStreamTask): Promise<void>;
|
|
14
|
+
prepareRegistry(task: ChangesStreamTask): Promise<Registry>;
|
|
15
|
+
needSync(registry: Registry, fullname: string): Promise<boolean>;
|
|
16
|
+
getInitialSince(task: ChangesStreamTask): Promise<string>;
|
|
17
|
+
executeSync(since: string, task: ChangesStreamTask): Promise<{
|
|
18
|
+
lastSince: string;
|
|
19
|
+
taskCount: number;
|
|
20
|
+
}>;
|
|
11
21
|
}
|
|
@@ -16,42 +16,38 @@ const tegg_1 = require("@eggjs/tegg");
|
|
|
16
16
|
const Task_1 = require("../../common/enum/Task");
|
|
17
17
|
const AbstractService_1 = require("../../common/AbstractService");
|
|
18
18
|
const Task_2 = require("../entity/Task");
|
|
19
|
+
const egg_errors_1 = require("egg-errors");
|
|
20
|
+
const AbstractChangesStream_1 = require("../../common/adapter/changesStream/AbstractChangesStream");
|
|
21
|
+
const PackageUtil_1 = require("../../common/PackageUtil");
|
|
19
22
|
let ChangesStreamService = class ChangesStreamService extends AbstractService_1.AbstractService {
|
|
23
|
+
// 出于向下兼容考虑, changes_stream 类型 Task 分为
|
|
24
|
+
// GLOBAL_WORKER: 默认的同步源
|
|
25
|
+
// `{registryName}_WORKER`: 自定义 scope 的同步源
|
|
20
26
|
async findExecuteTask() {
|
|
21
27
|
const targetName = 'GLOBAL_WORKER';
|
|
22
|
-
const
|
|
23
|
-
|
|
28
|
+
const globalRegistryTask = await this.taskRepository.findTaskByTargetName(targetName, Task_1.TaskType.ChangesStream);
|
|
29
|
+
// 如果没有配置默认同步源,先进行初始化
|
|
30
|
+
if (!globalRegistryTask) {
|
|
24
31
|
await this.taskService.createTask(Task_2.Task.createChangesStream(targetName), false);
|
|
25
32
|
}
|
|
33
|
+
// 自定义 scope 由 admin 手动创建
|
|
34
|
+
// 根据 TaskType.ChangesStream 从队列中获取
|
|
26
35
|
return await this.taskService.findExecuteTask(Task_1.TaskType.ChangesStream);
|
|
27
36
|
}
|
|
28
37
|
async executeTask(task) {
|
|
29
38
|
task.authorIp = os_1.default.hostname();
|
|
30
39
|
task.authorId = `pid_${process.pid}`;
|
|
31
40
|
await this.taskRepository.saveTask(task);
|
|
32
|
-
|
|
33
|
-
//
|
|
34
|
-
// default "update_seq": 7138885,
|
|
41
|
+
// 初始化 changeStream 任务
|
|
42
|
+
// since 默认从 1 开始
|
|
35
43
|
try {
|
|
36
44
|
let since = task.data.since;
|
|
37
|
-
// get update_seq from ${changesStreamRegistry} on the first time
|
|
38
45
|
if (!since) {
|
|
39
|
-
|
|
40
|
-
followRedirect: true,
|
|
41
|
-
timeout: 10000,
|
|
42
|
-
dataType: 'json',
|
|
43
|
-
});
|
|
44
|
-
if (data.update_seq) {
|
|
45
|
-
since = String(data.update_seq - 10);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
since = '7139538';
|
|
49
|
-
}
|
|
50
|
-
this.logger.warn('[ChangesStreamService.executeTask:firstSeq] GET %s status: %s, data: %j, since: %s', changesStreamRegistry, status, data, since);
|
|
46
|
+
since = await this.getInitialSince(task);
|
|
51
47
|
}
|
|
52
48
|
// allow disable changesStream dynamic
|
|
53
49
|
while (since && this.config.cnpmcore.enableChangesStream) {
|
|
54
|
-
const { lastSince, taskCount } = await this.
|
|
50
|
+
const { lastSince, taskCount } = await this.executeSync(since, task);
|
|
55
51
|
this.logger.warn('[ChangesStreamService.executeTask:changes] since: %s => %s, %d new tasks, taskId: %s, updatedAt: %j', since, lastSince, taskCount, task.taskId, task.updatedAt);
|
|
56
52
|
since = lastSince;
|
|
57
53
|
if (taskCount === 0 && this.config.env === 'unittest') {
|
|
@@ -67,100 +63,103 @@ let ChangesStreamService = class ChangesStreamService extends AbstractService_1.
|
|
|
67
63
|
await this.taskRepository.saveTask(task);
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
streaming: true,
|
|
80
|
-
timeout: 10000,
|
|
81
|
-
});
|
|
82
|
-
for await (const chunk of res) {
|
|
83
|
-
const text = chunk.toString();
|
|
84
|
-
// {"seq":7138879,"id":"@danydodson/prettier-config","changes":[{"rev":"5-a56057032714af25400d93517773a82a"}]}
|
|
85
|
-
// console.log('😄%j😄', text);
|
|
86
|
-
// 😄"{\"seq\":7138738,\"id\":\"wargerm\",\"changes\":[{\"rev\":\"59-f0a0d326db4c62ed480987a04ba3bf8f\"}]}"😄
|
|
87
|
-
// 😄",\n{\"seq\":7138739,\"id\":\"@laffery/webpack-starter-kit\",\"changes\":[{\"rev\":\"4-84a8dc470a07872f4cdf85cf8ef892a1\"}]},\n{\"seq\":7138741,\"id\":\"venom-bot\",\"changes\":[{\"rev\":\"103-908654b1ad4b0e0fd40b468d75730674\"}]}"😄
|
|
88
|
-
// 😄",\n{\"seq\":7138743,\"id\":\"react-native-template-pytorch-live\",\"changes\":[{\"rev\":\"40-871c686b200312303ba7c4f7f93e0362\"}]}"😄
|
|
89
|
-
// 😄",\n{\"seq\":7138745,\"id\":\"ccxt\",\"changes\":[{\"rev\":\"10205-25367c525a0a3bd61be3a72223ce212c\"}]}"😄
|
|
90
|
-
const matchs = text.matchAll(/"seq":(\d+),"id":"([^"]+)"/gm);
|
|
91
|
-
let count = 0;
|
|
92
|
-
let lastPackage = '';
|
|
93
|
-
for (const match of matchs) {
|
|
94
|
-
const seq = match[1];
|
|
95
|
-
const fullname = match[2];
|
|
96
|
-
if (seq && fullname) {
|
|
97
|
-
await this.packageSyncerService.createTask(fullname, {
|
|
98
|
-
authorIp: os_1.default.hostname(),
|
|
99
|
-
authorId: 'ChangesStreamService',
|
|
100
|
-
skipDependencies: true,
|
|
101
|
-
tips: `Sync cause by changes_stream(${changesStreamRegistry}) update seq: ${seq}`,
|
|
102
|
-
});
|
|
103
|
-
count++;
|
|
104
|
-
lastSince = seq;
|
|
105
|
-
lastPackage = fullname;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (count > 0) {
|
|
109
|
-
taskCount += count;
|
|
110
|
-
task.data = {
|
|
111
|
-
...task.data,
|
|
112
|
-
since: lastSince,
|
|
113
|
-
last_package: lastPackage,
|
|
114
|
-
last_package_created: new Date(),
|
|
115
|
-
task_count: (task.data.task_count || 0) + count,
|
|
116
|
-
};
|
|
117
|
-
await this.taskRepository.saveTask(task);
|
|
118
|
-
}
|
|
66
|
+
// 优先从 registryId 获取,如果没有的话再返回默认的 registry
|
|
67
|
+
async prepareRegistry(task) {
|
|
68
|
+
const { registryId } = task.data || {};
|
|
69
|
+
// 如果已有 registryId, 查询 DB 直接获取
|
|
70
|
+
if (registryId) {
|
|
71
|
+
const registry = await this.registryManagerService.findByRegistryId(registryId);
|
|
72
|
+
if (!registry) {
|
|
73
|
+
this.logger.error('[ChangesStreamService.getRegistry:error] registryId %s not found', registryId);
|
|
74
|
+
throw new egg_errors_1.E500(`invalid change stream registry: ${registryId}`);
|
|
119
75
|
}
|
|
76
|
+
return registry;
|
|
120
77
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
78
|
+
// 从配置文件默认生成
|
|
79
|
+
const { changesStreamRegistryMode, changesStreamRegistry: host } = this.config.cnpmcore;
|
|
80
|
+
const type = changesStreamRegistryMode === 'json' ? 'cnpmcore' : 'npm';
|
|
81
|
+
const registry = await this.registryManagerService.createRegistry({
|
|
82
|
+
name: 'default',
|
|
83
|
+
type: type,
|
|
84
|
+
userPrefix: 'npm:',
|
|
85
|
+
host,
|
|
86
|
+
changeStream: `${host}/_changes`,
|
|
87
|
+
});
|
|
88
|
+
task.data = {
|
|
89
|
+
...(task.data || {}),
|
|
90
|
+
registryId: registry.registryId,
|
|
91
|
+
};
|
|
92
|
+
await this.taskRepository.saveTask(task);
|
|
93
|
+
return registry;
|
|
94
|
+
}
|
|
95
|
+
// 根据 regsitry 判断是否需要添加同步任务
|
|
96
|
+
// 1. 如果该包已经指定了 registryId 则以 registryId 为准
|
|
97
|
+
// 1. 该包的 scope 在当前 registry 下
|
|
98
|
+
// 2. 如果 registry 下没有配置 scope (认为是通用 registry 地址) ,且该包的 scope 不在其他 registry 下
|
|
99
|
+
async needSync(registry, fullname) {
|
|
100
|
+
const [scopeName, name] = (0, PackageUtil_1.getScopeAndName)(fullname);
|
|
101
|
+
const packageEntity = await this.packageRepository.findPackage(scopeName, name);
|
|
102
|
+
if (packageEntity === null || packageEntity === void 0 ? void 0 : packageEntity.registryId) {
|
|
103
|
+
return registry.registryId === packageEntity.registryId;
|
|
104
|
+
}
|
|
105
|
+
const scope = await this.scopeManagerService.findByName(scopeName);
|
|
106
|
+
const inCurrentRegistry = scope && (scope === null || scope === void 0 ? void 0 : scope.registryId) === registry.registryId;
|
|
107
|
+
if (inCurrentRegistry) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
const registryScopeCount = await this.scopeManagerService.countByRegistryId(registry.registryId);
|
|
111
|
+
// 当前包没有 scope 信息,且当前 registry 下没有 scope,是通用 registry,需要同步
|
|
112
|
+
return !scope && !registryScopeCount;
|
|
113
|
+
}
|
|
114
|
+
async getInitialSince(task) {
|
|
115
|
+
const registry = await this.prepareRegistry(task);
|
|
116
|
+
const changesStreamAdapter = await this.eggObjectFactory.getEggObject(AbstractChangesStream_1.AbstractChangeStream, registry.type);
|
|
117
|
+
const since = await changesStreamAdapter.getInitialSince(registry);
|
|
118
|
+
return since;
|
|
119
|
+
}
|
|
120
|
+
// 从 changesStream 获取需要同步的数据
|
|
121
|
+
// 更新任务的 since 和 taskCount 相关字段
|
|
122
|
+
async executeSync(since, task) {
|
|
123
|
+
const registry = await this.prepareRegistry(task);
|
|
124
|
+
const changesStreamAdapter = await this.eggObjectFactory.getEggObject(AbstractChangesStream_1.AbstractChangeStream, registry.type);
|
|
125
|
+
let taskCount = 0;
|
|
126
|
+
let lastSince = since;
|
|
127
|
+
// 获取需要同步的数据
|
|
128
|
+
// 只获取需要同步的 task 信息
|
|
129
|
+
const stream = await changesStreamAdapter.fetchChanges(registry, since);
|
|
130
|
+
let lastPackage;
|
|
131
|
+
// 创建同步任务
|
|
132
|
+
for await (const change of stream) {
|
|
133
|
+
const { fullname, seq } = change;
|
|
134
|
+
lastPackage = fullname;
|
|
135
|
+
lastSince = seq;
|
|
136
|
+
const valid = await this.needSync(registry, fullname);
|
|
137
|
+
if (valid) {
|
|
138
|
+
taskCount++;
|
|
139
|
+
await this.packageSyncerService.createTask(fullname, {
|
|
140
|
+
authorIp: Task_2.HOST_NAME,
|
|
141
|
+
authorId: 'ChangesStreamService',
|
|
142
|
+
registryId: registry.registryId,
|
|
143
|
+
skipDependencies: true,
|
|
144
|
+
tips: `Sync cause by changes_stream(${registry.changeStream}) update seq: ${seq}`,
|
|
145
|
+
});
|
|
146
|
+
// 实时更新 task 信息
|
|
147
|
+
task.updateSyncData({
|
|
148
|
+
lastSince,
|
|
149
|
+
lastPackage,
|
|
150
|
+
taskCount,
|
|
151
|
+
});
|
|
152
|
+
await this.taskRepository.saveTask(task);
|
|
159
153
|
}
|
|
160
154
|
}
|
|
155
|
+
// 如果没有需要同步的任务,也更新一下 taskData 里的信息
|
|
161
156
|
if (taskCount === 0) {
|
|
162
|
-
//
|
|
163
|
-
task.
|
|
157
|
+
// 实时更新 task 信息
|
|
158
|
+
task.updateSyncData({
|
|
159
|
+
lastSince,
|
|
160
|
+
lastPackage,
|
|
161
|
+
taskCount,
|
|
162
|
+
});
|
|
164
163
|
await this.taskRepository.saveTask(task);
|
|
165
164
|
}
|
|
166
165
|
return { lastSince, taskCount };
|
|
@@ -169,19 +168,28 @@ let ChangesStreamService = class ChangesStreamService extends AbstractService_1.
|
|
|
169
168
|
__decorate([
|
|
170
169
|
(0, tegg_1.Inject)()
|
|
171
170
|
], ChangesStreamService.prototype, "taskRepository", void 0);
|
|
172
|
-
__decorate([
|
|
173
|
-
(0, tegg_1.Inject)()
|
|
174
|
-
], ChangesStreamService.prototype, "httpclient", void 0);
|
|
175
171
|
__decorate([
|
|
176
172
|
(0, tegg_1.Inject)()
|
|
177
173
|
], ChangesStreamService.prototype, "packageSyncerService", void 0);
|
|
178
174
|
__decorate([
|
|
179
175
|
(0, tegg_1.Inject)()
|
|
180
176
|
], ChangesStreamService.prototype, "taskService", void 0);
|
|
177
|
+
__decorate([
|
|
178
|
+
(0, tegg_1.Inject)()
|
|
179
|
+
], ChangesStreamService.prototype, "registryManagerService", void 0);
|
|
180
|
+
__decorate([
|
|
181
|
+
(0, tegg_1.Inject)()
|
|
182
|
+
], ChangesStreamService.prototype, "scopeManagerService", void 0);
|
|
183
|
+
__decorate([
|
|
184
|
+
(0, tegg_1.Inject)()
|
|
185
|
+
], ChangesStreamService.prototype, "eggObjectFactory", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
(0, tegg_1.Inject)()
|
|
188
|
+
], ChangesStreamService.prototype, "packageRepository", void 0);
|
|
181
189
|
ChangesStreamService = __decorate([
|
|
182
190
|
(0, tegg_1.ContextProto)({
|
|
183
191
|
accessLevel: tegg_1.AccessLevel.PUBLIC,
|
|
184
192
|
})
|
|
185
193
|
], ChangesStreamService);
|
|
186
194
|
exports.ChangesStreamService = ChangesStreamService;
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL0NoYW5nZXNTdHJlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQiw4Q0FBNkM7QUFDN0Msc0NBS3FCO0FBQ3JCLGlEQUFrRDtBQUNsRCxrRUFBK0Q7QUFFL0QseUNBQW9FO0FBS3BFLDJDQUFrQztBQUVsQyxvR0FBcUg7QUFDckgsMERBQTJEO0FBTzNELElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQXFCLFNBQVEsaUNBQWU7SUFnQnZELHNDQUFzQztJQUN0Qyx3QkFBd0I7SUFDeEIsMENBQTBDO0lBQ25DLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQztRQUNuQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsZUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlHLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEY7UUFDRCx5QkFBeUI7UUFDekIsbUNBQW1DO1FBQ25DLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFRLENBQUMsYUFBYSxDQUFzQixDQUFDO0lBQzdGLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQXVCO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractService } from '../../common/AbstractService';
|
|
2
|
+
import { CreateHookTask } from '../entity/Task';
|
|
3
|
+
export declare class CreateHookTriggerService extends AbstractService {
|
|
4
|
+
private readonly hookRepository;
|
|
5
|
+
private readonly packageRepository;
|
|
6
|
+
private readonly taskService;
|
|
7
|
+
executeTask(task: CreateHookTask): Promise<void>;
|
|
8
|
+
private createTriggerByMethod;
|
|
9
|
+
private createTriggerTasks;
|
|
10
|
+
}
|