cnpmcore 1.10.0 → 1.11.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.
Files changed (103) hide show
  1. package/History.md +17 -0
  2. package/dist/app/common/LogUtil.d.ts +1 -0
  3. package/dist/app/common/LogUtil.js +8 -0
  4. package/dist/app/common/adapter/NPMRegistry.d.ts +2 -0
  5. package/dist/app/common/adapter/NPMRegistry.js +5 -2
  6. package/dist/app/common/adapter/binary/NodePreGypBinary.js +20 -5
  7. package/dist/app/common/adapter/changesStream/AbstractChangesStream.d.ts +19 -0
  8. package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +30 -0
  9. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.d.ts +8 -0
  10. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.js +62 -0
  11. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.d.ts +9 -0
  12. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.js +73 -0
  13. package/dist/app/common/adapter/changesStream/NpmChangesStream.d.ts +8 -0
  14. package/dist/app/common/adapter/changesStream/NpmChangesStream.js +51 -0
  15. package/dist/app/common/enum/Hook.d.ts +18 -0
  16. package/dist/app/common/enum/Hook.js +24 -0
  17. package/dist/app/common/enum/Registry.d.ts +5 -0
  18. package/dist/app/common/enum/Registry.js +10 -0
  19. package/dist/app/common/enum/Task.d.ts +3 -1
  20. package/dist/app/common/enum/Task.js +3 -1
  21. package/dist/app/core/entity/Hook.d.ts +30 -0
  22. package/dist/app/core/entity/Hook.js +43 -0
  23. package/dist/app/core/entity/HookEvent.d.ts +36 -0
  24. package/dist/app/core/entity/HookEvent.js +59 -0
  25. package/dist/app/core/entity/Package.d.ts +2 -0
  26. package/dist/app/core/entity/Package.js +2 -1
  27. package/dist/app/core/entity/Registry.d.ts +23 -0
  28. package/dist/app/core/entity/Registry.js +22 -0
  29. package/dist/app/core/entity/Scope.d.ts +16 -0
  30. package/dist/app/core/entity/Scope.js +19 -0
  31. package/dist/app/core/entity/Task.d.ts +50 -8
  32. package/dist/app/core/entity/Task.js +60 -9
  33. package/dist/app/core/event/ChangesStream.d.ts +10 -5
  34. package/dist/app/core/event/ChangesStream.js +46 -15
  35. package/dist/app/core/event/index.d.ts +12 -4
  36. package/dist/app/core/event/index.js +1 -1
  37. package/dist/app/core/service/BinarySyncerService.d.ts +3 -3
  38. package/dist/app/core/service/ChangesStreamService.d.ts +15 -5
  39. package/dist/app/core/service/ChangesStreamService.js +113 -115
  40. package/dist/app/core/service/CreateHookTriggerService.d.ts +10 -0
  41. package/dist/app/core/service/CreateHookTriggerService.js +83 -0
  42. package/dist/app/core/service/HookManageService.d.ts +29 -0
  43. package/dist/app/core/service/HookManageService.js +77 -0
  44. package/dist/app/core/service/HookTriggerService.d.ts +14 -0
  45. package/dist/app/core/service/HookTriggerService.js +113 -0
  46. package/dist/app/core/service/PackageManagerService.d.ts +1 -0
  47. package/dist/app/core/service/PackageManagerService.js +8 -5
  48. package/dist/app/core/service/PackageSyncerService.d.ts +7 -4
  49. package/dist/app/core/service/PackageSyncerService.js +23 -4
  50. package/dist/app/core/service/RegistryManagerService.d.ts +29 -0
  51. package/dist/app/core/service/RegistryManagerService.js +97 -0
  52. package/dist/app/core/service/ScopeManagerService.d.ts +27 -0
  53. package/dist/app/core/service/ScopeManagerService.js +58 -0
  54. package/dist/app/core/service/TaskService.d.ts +4 -3
  55. package/dist/app/core/service/TaskService.js +10 -5
  56. package/dist/app/core/service/UserService.d.ts +1 -1
  57. package/dist/app/core/service/UserService.js +3 -3
  58. package/dist/app/core/util/ChangesStreamTransform.d.ts +8 -0
  59. package/dist/app/core/util/ChangesStreamTransform.js +50 -0
  60. package/dist/app/core/util/EntityUtil.d.ts +13 -0
  61. package/dist/app/core/util/EntityUtil.js +13 -1
  62. package/dist/app/port/UserRoleManager.d.ts +1 -2
  63. package/dist/app/port/controller/HookController.d.ts +23 -0
  64. package/dist/app/port/controller/HookController.js +133 -0
  65. package/dist/app/port/controller/PackageSyncController.d.ts +1 -0
  66. package/dist/app/port/controller/PackageSyncController.js +13 -2
  67. package/dist/app/port/controller/RegistryController.d.ts +20 -0
  68. package/dist/app/port/controller/RegistryController.js +131 -0
  69. package/dist/app/port/controller/ScopeController.d.ts +14 -0
  70. package/dist/app/port/controller/ScopeController.js +68 -0
  71. package/dist/app/port/controller/convertor/HookConvertor.d.ts +37 -0
  72. package/dist/app/port/controller/convertor/HookConvertor.js +29 -0
  73. package/dist/app/port/middleware/AdminAccess.d.ts +2 -0
  74. package/dist/app/port/middleware/AdminAccess.js +15 -0
  75. package/dist/app/port/typebox.d.ts +48 -0
  76. package/dist/app/port/typebox.js +126 -2
  77. package/dist/app/repository/HookRepository.d.ts +19 -0
  78. package/dist/app/repository/HookRepository.js +69 -0
  79. package/dist/app/repository/RegistryRepository.d.ts +12 -0
  80. package/dist/app/repository/RegistryRepository.js +64 -0
  81. package/dist/app/repository/ScopeRepository.d.ts +14 -0
  82. package/dist/app/repository/ScopeRepository.js +73 -0
  83. package/dist/app/repository/TaskRepository.d.ts +5 -3
  84. package/dist/app/repository/TaskRepository.js +32 -2
  85. package/dist/app/repository/UserRepository.d.ts +1 -0
  86. package/dist/app/repository/UserRepository.js +7 -1
  87. package/dist/app/repository/model/Hook.d.ts +15 -0
  88. package/dist/app/repository/model/Hook.js +58 -0
  89. package/dist/app/repository/model/Package.d.ts +1 -0
  90. package/dist/app/repository/model/Package.js +4 -1
  91. package/dist/app/repository/model/Registry.d.ts +13 -0
  92. package/dist/app/repository/model/Registry.js +50 -0
  93. package/dist/app/repository/model/Scope.d.ts +9 -0
  94. package/dist/app/repository/model/Scope.js +39 -0
  95. package/dist/app/repository/model/Task.d.ts +1 -0
  96. package/dist/app/repository/model/Task.js +6 -1
  97. package/dist/app/schedule/CreateTriggerHookWorker.d.ts +8 -0
  98. package/dist/app/schedule/CreateTriggerHookWorker.js +51 -0
  99. package/dist/app/schedule/TriggerHookWorker.d.ts +8 -0
  100. package/dist/app/schedule/TriggerHookWorker.js +49 -0
  101. package/dist/config/binaries.js +8 -1
  102. package/dist/config/config.default.js +5 -1
  103. package/package.json +1 -1
@@ -10,21 +10,30 @@ 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 {
14
16
  async addChange(type, fullname, data) {
15
- await this.changeRepository.addChange(Change_1.Change.create({
17
+ const change = Change_1.Change.create({
16
18
  type,
17
19
  targetName: fullname,
18
20
  data,
19
- }));
21
+ });
22
+ await this.changeRepository.addChange(change);
23
+ return change;
20
24
  }
21
25
  }
22
26
  __decorate([
23
27
  (0, tegg_1.Inject)()
24
28
  ], ChangesStreamEvent.prototype, "changeRepository", void 0);
29
+ __decorate([
30
+ (0, tegg_1.Inject)()
31
+ ], ChangesStreamEvent.prototype, "taskService", void 0);
25
32
  let PackageUnpublished = class PackageUnpublished extends ChangesStreamEvent {
26
33
  async handle(fullname) {
27
- await this.addChange(index_1.PACKAGE_UNPUBLISHED, fullname, {});
34
+ const change = await this.addChange(index_1.PACKAGE_UNPUBLISHED, fullname, {});
35
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createUnpublishEvent(fullname, change.changeId));
36
+ await this.taskService.createTask(task, true);
28
37
  }
29
38
  };
30
39
  PackageUnpublished = __decorate([
@@ -32,8 +41,10 @@ PackageUnpublished = __decorate([
32
41
  ], PackageUnpublished);
33
42
  exports.PackageUnpublished = PackageUnpublished;
34
43
  let PackageVersionAdded = class PackageVersionAdded extends ChangesStreamEvent {
35
- async handle(fullname, version) {
36
- await this.addChange(index_1.PACKAGE_VERSION_ADDED, fullname, { version });
44
+ async handle(fullname, version, tag) {
45
+ const change = await this.addChange(index_1.PACKAGE_VERSION_ADDED, fullname, { version });
46
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createPublishEvent(fullname, change.changeId, version, tag));
47
+ await this.taskService.createTask(task, true);
37
48
  }
38
49
  };
39
50
  PackageVersionAdded = __decorate([
@@ -41,8 +52,10 @@ PackageVersionAdded = __decorate([
41
52
  ], PackageVersionAdded);
42
53
  exports.PackageVersionAdded = PackageVersionAdded;
43
54
  let PackageVersionRemoved = class PackageVersionRemoved extends ChangesStreamEvent {
44
- async handle(fullname, version) {
45
- await this.addChange(index_1.PACKAGE_VERSION_REMOVED, fullname, { version });
55
+ async handle(fullname, version, tag) {
56
+ const change = await this.addChange(index_1.PACKAGE_VERSION_REMOVED, fullname, { version });
57
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createUnpublishEvent(fullname, change.changeId, version, tag));
58
+ await this.taskService.createTask(task, true);
46
59
  }
47
60
  };
48
61
  PackageVersionRemoved = __decorate([
@@ -51,7 +64,9 @@ PackageVersionRemoved = __decorate([
51
64
  exports.PackageVersionRemoved = PackageVersionRemoved;
52
65
  let PackageTagAdded = class PackageTagAdded extends ChangesStreamEvent {
53
66
  async handle(fullname, tag) {
54
- await this.addChange(index_1.PACKAGE_TAG_ADDED, fullname, { tag });
67
+ const change = await this.addChange(index_1.PACKAGE_TAG_ADDED, fullname, { tag });
68
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDistTagEvent(fullname, change.changeId, tag));
69
+ await this.taskService.createTask(task, true);
55
70
  }
56
71
  };
57
72
  PackageTagAdded = __decorate([
@@ -60,7 +75,9 @@ PackageTagAdded = __decorate([
60
75
  exports.PackageTagAdded = PackageTagAdded;
61
76
  let PackageTagChanged = class PackageTagChanged extends ChangesStreamEvent {
62
77
  async handle(fullname, tag) {
63
- await this.addChange(index_1.PACKAGE_TAG_CHANGED, fullname, { tag });
78
+ const change = await this.addChange(index_1.PACKAGE_TAG_CHANGED, fullname, { tag });
79
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDistTagEvent(fullname, change.changeId, tag));
80
+ await this.taskService.createTask(task, true);
64
81
  }
65
82
  };
66
83
  PackageTagChanged = __decorate([
@@ -69,7 +86,9 @@ PackageTagChanged = __decorate([
69
86
  exports.PackageTagChanged = PackageTagChanged;
70
87
  let PackageTagRemoved = class PackageTagRemoved extends ChangesStreamEvent {
71
88
  async handle(fullname, tag) {
72
- await this.addChange(index_1.PACKAGE_TAG_REMOVED, fullname, { tag });
89
+ const change = await this.addChange(index_1.PACKAGE_TAG_REMOVED, fullname, { tag });
90
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDistTagRmEvent(fullname, change.changeId, tag));
91
+ await this.taskService.createTask(task, true);
73
92
  }
74
93
  };
75
94
  PackageTagRemoved = __decorate([
@@ -77,8 +96,13 @@ PackageTagRemoved = __decorate([
77
96
  ], PackageTagRemoved);
78
97
  exports.PackageTagRemoved = PackageTagRemoved;
79
98
  let PackageMaintainerChanged = class PackageMaintainerChanged extends ChangesStreamEvent {
80
- async handle(fullname) {
81
- await this.addChange(index_1.PACKAGE_MAINTAINER_CHANGED, fullname, {});
99
+ async handle(fullname, maintainers) {
100
+ const change = await this.addChange(index_1.PACKAGE_MAINTAINER_CHANGED, fullname, {});
101
+ // TODO 应该比较差值,而不是全量推送
102
+ for (const maintainer of maintainers) {
103
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createOwnerEvent(fullname, change.changeId, maintainer.name));
104
+ await this.taskService.createTask(task, true);
105
+ }
82
106
  }
83
107
  };
84
108
  PackageMaintainerChanged = __decorate([
@@ -87,7 +111,9 @@ PackageMaintainerChanged = __decorate([
87
111
  exports.PackageMaintainerChanged = PackageMaintainerChanged;
88
112
  let PackageMaintainerRemoved = class PackageMaintainerRemoved extends ChangesStreamEvent {
89
113
  async handle(fullname, maintainer) {
90
- await this.addChange(index_1.PACKAGE_MAINTAINER_REMOVED, fullname, { maintainer });
114
+ const change = await this.addChange(index_1.PACKAGE_MAINTAINER_REMOVED, fullname, { maintainer });
115
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createOwnerRmEvent(fullname, change.changeId, maintainer));
116
+ await this.taskService.createTask(task, true);
91
117
  }
92
118
  };
93
119
  PackageMaintainerRemoved = __decorate([
@@ -96,11 +122,16 @@ PackageMaintainerRemoved = __decorate([
96
122
  exports.PackageMaintainerRemoved = PackageMaintainerRemoved;
97
123
  let PackageMetaChanged = class PackageMetaChanged extends ChangesStreamEvent {
98
124
  async handle(fullname, meta) {
99
- await this.addChange(index_1.PACKAGE_META_CHANGED, fullname, { ...meta });
125
+ const change = await this.addChange(index_1.PACKAGE_META_CHANGED, fullname, { ...meta });
126
+ const { deprecateds } = meta;
127
+ for (const deprecated of deprecateds || []) {
128
+ const task = Task_1.Task.createCreateHookTask(HookEvent_1.HookEvent.createDeprecatedEvent(fullname, change.changeId, deprecated.version));
129
+ await this.taskService.createTask(task, true);
130
+ }
100
131
  }
101
132
  };
102
133
  PackageMetaChanged = __decorate([
103
134
  (0, tegg_1.Event)(index_1.PACKAGE_META_CHANGED)
104
135
  ], PackageMetaChanged);
105
136
  exports.PackageMetaChanged = PackageMetaChanged;
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2V2ZW50L0NoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsc0NBQTRDO0FBQzVDLG1DQVVpQjtBQUVqQiw2Q0FBMEM7QUFFMUMsTUFBTSxrQkFBa0I7SUFJWixLQUFLLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLElBQVk7UUFDcEUsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGVBQU0sQ0FBQyxNQUFNLENBQUM7WUFDbEQsSUFBSTtZQUNKLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLElBQUk7U0FDTCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDRjtBQVRDO0lBREMsSUFBQSxhQUFNLEdBQUU7NERBQzJDO0FBWXRELElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQW1CLFNBQVEsa0JBQWtCO0lBQ3hELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBZ0I7UUFDM0IsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUFtQixFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0YsQ0FBQTtBQUpZLGtCQUFrQjtJQUQ5QixJQUFBLFlBQUssRUFBQywyQkFBbUIsQ0FBQztHQUNkLGtCQUFrQixDQUk5QjtBQUpZLGdEQUFrQjtBQU8vQixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFvQixTQUFRLGtCQUFrQjtJQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCLEVBQUUsT0FBZTtRQUM1QyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsNkJBQXFCLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YsQ0FBQTtBQUpZLG1CQUFtQjtJQUQvQixJQUFBLFlBQUssRUFBQyw2QkFBcUIsQ0FB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
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2V2ZW50L0NoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsc0NBQTRDO0FBQzVDLG1DQVVpQjtBQUVqQiw2Q0FBMEM7QUFDMUMsbURBQWdEO0FBQ2hELHlDQUFzQztBQUl0QyxNQUFNLGtCQUFrQjtJQU9aLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsSUFBWTtRQUNwRSxNQUFNLE1BQU0sR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDO1lBQzNCLElBQUk7WUFDSixVQUFVLEVBQUUsUUFBUTtZQUNwQixJQUFJO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQWRDO0lBREMsSUFBQSxhQUFNLEdBQUU7NERBQzJDO0FBR3BEO0lBREMsSUFBQSxhQUFNLEdBQUU7dURBQ21DO0FBYzlDLElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQW1CLFNBQVEsa0JBQWtCO0lBQ3hELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBZ0I7UUFDM0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUFtQixFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLElBQUksR0FBRyxXQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGLENBQUE7QUFOWSxrQkFB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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: object) => Promise<void>;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9ldmVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1QkFBcUI7QUFFUixRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBQzVDLFFBQUEsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBQ3BDLFFBQUEsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsUUFBQSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUNoRCxRQUFBLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBQ3BELFFBQUEsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsUUFBQSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUM1QyxRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBQzVDLFFBQUEsMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFDMUQsUUFBQSwwQkFBMEIsR0FBRyw0QkFBNEIsQ0FBQztBQUMxRCxRQUFBLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDIn0=
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 { Task } from '../entity/Task';
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
- findExecuteTask(): Promise<Task | null>;
9
- executeTask(task: Task): Promise<void>;
10
- private handleChanges;
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 existsTask = await this.taskRepository.findTaskByTargetName(targetName, Task_1.TaskType.ChangesStream);
23
- if (!existsTask) {
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
- const changesStreamRegistry = this.config.cnpmcore.changesStreamRegistry;
33
- // https://github.com/npm/registry-follower-tutorial
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
- const { status, data } = await this.httpclient.request(changesStreamRegistry, {
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.handleChanges(since, task);
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,101 +63,94 @@ let ChangesStreamService = class ChangesStreamService extends AbstractService_1.
67
63
  await this.taskRepository.saveTask(task);
68
64
  }
69
65
  }
70
- async handleChanges(since, task) {
71
- var _a;
72
- const changesStreamRegistry = this.config.cnpmcore.changesStreamRegistry;
73
- const changesStreamRegistryMode = this.config.cnpmcore.changesStreamRegistryMode;
74
- const db = `${changesStreamRegistry}/_changes?since=${since}`;
75
- let lastSince = since;
76
- let taskCount = 0;
77
- if (changesStreamRegistryMode === 'streaming') {
78
- const { res } = await this.httpclient.request(db, {
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
- else {
122
- // json mode
123
- // {"results":[{"seq":1988653,"type":"PACKAGE_VERSION_ADDED","id":"dsr-package-mercy-magot-thorp-sward","changes":[{"version":"1.0.1"}]},
124
- const { data } = await this.httpclient.request(db, {
125
- followRedirect: true,
126
- timeout: 30000,
127
- dataType: 'json',
128
- gzip: true,
129
- });
130
- if (((_a = data.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
131
- let count = 0;
132
- let lastPackage = '';
133
- for (const change of data.results) {
134
- const seq = change.seq;
135
- const fullname = change.id;
136
- if (seq && fullname && seq !== since) {
137
- await this.packageSyncerService.createTask(fullname, {
138
- authorIp: os_1.default.hostname(),
139
- authorId: 'ChangesStreamService',
140
- skipDependencies: true,
141
- tips: `Sync cause by changes_stream(${changesStreamRegistry}) update seq: ${seq}, change: ${JSON.stringify(change)}`,
142
- });
143
- count++;
144
- lastSince = seq;
145
- lastPackage = fullname;
146
- }
147
- }
148
- if (count > 0) {
149
- taskCount += count;
150
- task.data = {
151
- ...task.data,
152
- since: lastSince,
153
- last_package: lastPackage,
154
- last_package_created: new Date(),
155
- task_count: (task.data.task_count || 0) + count,
156
- };
157
- await this.taskRepository.saveTask(task);
158
- }
159
- }
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;
160
104
  }
161
- if (taskCount === 0) {
162
- // keep update task, make sure updatedAt changed
163
- task.updatedAt = new Date();
164
- await this.taskRepository.saveTask(task);
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
+ const valid = await this.needSync(registry, fullname);
136
+ if (valid) {
137
+ taskCount++;
138
+ lastSince = seq;
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);
153
+ }
165
154
  }
166
155
  return { lastSince, taskCount };
167
156
  }
@@ -169,19 +158,28 @@ let ChangesStreamService = class ChangesStreamService extends AbstractService_1.
169
158
  __decorate([
170
159
  (0, tegg_1.Inject)()
171
160
  ], ChangesStreamService.prototype, "taskRepository", void 0);
172
- __decorate([
173
- (0, tegg_1.Inject)()
174
- ], ChangesStreamService.prototype, "httpclient", void 0);
175
161
  __decorate([
176
162
  (0, tegg_1.Inject)()
177
163
  ], ChangesStreamService.prototype, "packageSyncerService", void 0);
178
164
  __decorate([
179
165
  (0, tegg_1.Inject)()
180
166
  ], ChangesStreamService.prototype, "taskService", void 0);
167
+ __decorate([
168
+ (0, tegg_1.Inject)()
169
+ ], ChangesStreamService.prototype, "registryManagerService", void 0);
170
+ __decorate([
171
+ (0, tegg_1.Inject)()
172
+ ], ChangesStreamService.prototype, "scopeManagerService", void 0);
173
+ __decorate([
174
+ (0, tegg_1.Inject)()
175
+ ], ChangesStreamService.prototype, "eggObjectFactory", void 0);
176
+ __decorate([
177
+ (0, tegg_1.Inject)()
178
+ ], ChangesStreamService.prototype, "packageRepository", void 0);
181
179
  ChangesStreamService = __decorate([
182
180
  (0, tegg_1.ContextProto)({
183
181
  accessLevel: tegg_1.AccessLevel.PUBLIC,
184
182
  })
185
183
  ], ChangesStreamService);
186
184
  exports.ChangesStreamService = ChangesStreamService;
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL0NoYW5nZXNTdHJlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQiw4Q0FBNkM7QUFDN0Msc0NBSXFCO0FBSXJCLGlEQUFrRDtBQUNsRCxrRUFBK0Q7QUFFL0QseUNBQXNDO0FBT3RDLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQXFCLFNBQVEsaUNBQWU7SUFVaEQsS0FBSyxDQUFDLGVBQWU7UUFDMUIsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsZUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNoRjtRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBVTtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsTUFBTSxxQkFBcUIsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQztRQUNq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
185
+ //# 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
+ }