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.
Files changed (104) hide show
  1. package/History.md +37 -0
  2. package/README.md +4 -4
  3. package/dist/app/common/LogUtil.d.ts +1 -0
  4. package/dist/app/common/LogUtil.js +8 -0
  5. package/dist/app/common/adapter/NPMRegistry.d.ts +2 -0
  6. package/dist/app/common/adapter/NPMRegistry.js +5 -2
  7. package/dist/app/common/adapter/binary/NodePreGypBinary.js +20 -5
  8. package/dist/app/common/adapter/changesStream/AbstractChangesStream.d.ts +17 -0
  9. package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +30 -0
  10. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.d.ts +9 -0
  11. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.js +60 -0
  12. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.d.ts +10 -0
  13. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.js +71 -0
  14. package/dist/app/common/adapter/changesStream/NpmChangesStream.d.ts +6 -0
  15. package/dist/app/common/adapter/changesStream/NpmChangesStream.js +61 -0
  16. package/dist/app/common/enum/Hook.d.ts +18 -0
  17. package/dist/app/common/enum/Hook.js +24 -0
  18. package/dist/app/common/enum/Registry.d.ts +5 -0
  19. package/dist/app/common/enum/Registry.js +10 -0
  20. package/dist/app/common/enum/Task.d.ts +3 -1
  21. package/dist/app/common/enum/Task.js +3 -1
  22. package/dist/app/core/entity/Hook.d.ts +30 -0
  23. package/dist/app/core/entity/Hook.js +43 -0
  24. package/dist/app/core/entity/HookEvent.d.ts +36 -0
  25. package/dist/app/core/entity/HookEvent.js +59 -0
  26. package/dist/app/core/entity/Package.d.ts +2 -0
  27. package/dist/app/core/entity/Package.js +2 -1
  28. package/dist/app/core/entity/Registry.d.ts +23 -0
  29. package/dist/app/core/entity/Registry.js +22 -0
  30. package/dist/app/core/entity/Scope.d.ts +16 -0
  31. package/dist/app/core/entity/Scope.js +19 -0
  32. package/dist/app/core/entity/Task.d.ts +50 -8
  33. package/dist/app/core/entity/Task.js +61 -9
  34. package/dist/app/core/event/ChangesStream.d.ts +13 -5
  35. package/dist/app/core/event/ChangesStream.js +70 -15
  36. package/dist/app/core/event/index.d.ts +12 -4
  37. package/dist/app/core/event/index.js +1 -1
  38. package/dist/app/core/service/BinarySyncerService.d.ts +3 -3
  39. package/dist/app/core/service/ChangesStreamService.d.ts +15 -5
  40. package/dist/app/core/service/ChangesStreamService.js +120 -112
  41. package/dist/app/core/service/CreateHookTriggerService.d.ts +10 -0
  42. package/dist/app/core/service/CreateHookTriggerService.js +83 -0
  43. package/dist/app/core/service/HookManageService.d.ts +29 -0
  44. package/dist/app/core/service/HookManageService.js +77 -0
  45. package/dist/app/core/service/HookTriggerService.d.ts +14 -0
  46. package/dist/app/core/service/HookTriggerService.js +113 -0
  47. package/dist/app/core/service/PackageManagerService.d.ts +1 -0
  48. package/dist/app/core/service/PackageManagerService.js +8 -5
  49. package/dist/app/core/service/PackageSyncerService.d.ts +7 -4
  50. package/dist/app/core/service/PackageSyncerService.js +23 -4
  51. package/dist/app/core/service/RegistryManagerService.d.ts +29 -0
  52. package/dist/app/core/service/RegistryManagerService.js +97 -0
  53. package/dist/app/core/service/ScopeManagerService.d.ts +27 -0
  54. package/dist/app/core/service/ScopeManagerService.js +58 -0
  55. package/dist/app/core/service/TaskService.d.ts +4 -3
  56. package/dist/app/core/service/TaskService.js +10 -5
  57. package/dist/app/core/service/UserService.d.ts +1 -1
  58. package/dist/app/core/service/UserService.js +3 -3
  59. package/dist/app/core/util/EntityUtil.d.ts +13 -0
  60. package/dist/app/core/util/EntityUtil.js +13 -1
  61. package/dist/app/port/UserRoleManager.d.ts +1 -2
  62. package/dist/app/port/controller/HookController.d.ts +23 -0
  63. package/dist/app/port/controller/HookController.js +133 -0
  64. package/dist/app/port/controller/PackageSyncController.d.ts +1 -0
  65. package/dist/app/port/controller/PackageSyncController.js +13 -2
  66. package/dist/app/port/controller/RegistryController.d.ts +20 -0
  67. package/dist/app/port/controller/RegistryController.js +131 -0
  68. package/dist/app/port/controller/ScopeController.d.ts +14 -0
  69. package/dist/app/port/controller/ScopeController.js +68 -0
  70. package/dist/app/port/controller/convertor/HookConvertor.d.ts +37 -0
  71. package/dist/app/port/controller/convertor/HookConvertor.js +29 -0
  72. package/dist/app/port/middleware/AdminAccess.d.ts +2 -0
  73. package/dist/app/port/middleware/AdminAccess.js +15 -0
  74. package/dist/app/port/typebox.d.ts +48 -0
  75. package/dist/app/port/typebox.js +126 -2
  76. package/dist/app/repository/HookRepository.d.ts +19 -0
  77. package/dist/app/repository/HookRepository.js +69 -0
  78. package/dist/app/repository/RegistryRepository.d.ts +12 -0
  79. package/dist/app/repository/RegistryRepository.js +64 -0
  80. package/dist/app/repository/ScopeRepository.d.ts +14 -0
  81. package/dist/app/repository/ScopeRepository.js +73 -0
  82. package/dist/app/repository/TaskRepository.d.ts +5 -3
  83. package/dist/app/repository/TaskRepository.js +32 -2
  84. package/dist/app/repository/UserRepository.d.ts +1 -0
  85. package/dist/app/repository/UserRepository.js +7 -1
  86. package/dist/app/repository/model/HistoryTask.js +2 -2
  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/PackageVersionBlock.js +2 -2
  92. package/dist/app/repository/model/Registry.d.ts +13 -0
  93. package/dist/app/repository/model/Registry.js +50 -0
  94. package/dist/app/repository/model/Scope.d.ts +9 -0
  95. package/dist/app/repository/model/Scope.js +39 -0
  96. package/dist/app/repository/model/Task.d.ts +1 -0
  97. package/dist/app/repository/model/Task.js +7 -2
  98. package/dist/app/schedule/CreateTriggerHookWorker.d.ts +8 -0
  99. package/dist/app/schedule/CreateTriggerHookWorker.js +51 -0
  100. package/dist/app/schedule/TriggerHookWorker.d.ts +8 -0
  101. package/dist/app/schedule/TriggerHookWorker.js +49 -0
  102. package/dist/config/binaries.js +15 -1
  103. package/dist/config/config.default.js +5 -1
  104. package/package.json +2 -2
package/History.md CHANGED
@@ -1,4 +1,41 @@
1
1
 
2
+ 1.11.2 / 2022-08-28
3
+ ==================
4
+
5
+ **fixes**
6
+ * [[`4e8700c`](http://github.com/cnpm/cnpmcore/commit/4e8700c4f7c6fb5c4f4d4a2b9a9546096c5d10e2)] - fix: only create createHookTask if hook enable (#299) (killa <<killa123@126.com>>)
7
+
8
+ **others**
9
+ * [[`e06c841`](http://github.com/cnpm/cnpmcore/commit/e06c841537113fdb0c00beb22b0a55378c61ce80)] - 🐛 FIX: Should sync public package when registryName not exists (#303) (fengmk2 <<fengmk2@gmail.com>>)
10
+ * [[`f139444`](http://github.com/cnpm/cnpmcore/commit/f139444213403494ebe9bf073df62125413892d9)] - 📖 DOC: Update contributors (fengmk2 <<fengmk2@gmail.com>>)
11
+ * [[`c4a9de5`](http://github.com/cnpm/cnpmcore/commit/c4a9de598dce9a1b82bbcdd91968a15bbc5a4b6b)] - Create SECURITY.md (fengmk2 <<fengmk2@gmail.com>>)
12
+ * [[`709d65b`](http://github.com/cnpm/cnpmcore/commit/709d65bd0473856c9bfc4416ea2ca375136e354f)] - 🤖 TEST: Use diff bucket on OSS test (#301) (fengmk2 <<fengmk2@gmail.com>>)
13
+ * [[`9576699`](http://github.com/cnpm/cnpmcore/commit/95766990fa9c4c2c43d462f6b151557425b0c741)] - chore: use AsyncGenerator insteadof Transform stream (#300) (killa <<killa123@126.com>>)
14
+ * [[`3ed5269`](http://github.com/cnpm/cnpmcore/commit/3ed5269f1d22ca3aaca89a90a4fff90f293e2464)] - 📦 NEW: Mirror better-sqlite3 binary (#296) (fengmk2 <<fengmk2@gmail.com>>)
15
+
16
+ 1.11.1 / 2022-08-24
17
+ ==================
18
+
19
+ **fixes**
20
+ * [[`359a150`](http://github.com/cnpm/cnpmcore/commit/359a150eb450d69e6523b20efcc5c7cfe3efab4d)] - fix: changes stream (#297) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
21
+
22
+ 1.11.0 / 2022-08-23
23
+ ==================
24
+
25
+ **features**
26
+ * [[`a91c8ac`](http://github.com/cnpm/cnpmcore/commit/a91c8ac4d05dc903780fda516b09364a05a2b1e6)] - feat: sync package from spec regsitry (#293) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
27
+ * [[`de37008`](http://github.com/cnpm/cnpmcore/commit/de37008261b05845f392d66764cdfe14ae324756)] - feat: changesStream adapter & needSync() method (#292) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
28
+ * [[`4b506c8`](http://github.com/cnpm/cnpmcore/commit/4b506c8371697ddacdbe99a8ecb330bfc1911ec6)] - feat: init registry & scope (#286) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
29
+ * [[`41c6e24`](http://github.com/cnpm/cnpmcore/commit/41c6e24c84d546eb9d5515cc0940cc3e4274687b)] - feat: impl trigger Hooks (#289) (killa <<killa123@126.com>>)
30
+ * [[`79cb826`](http://github.com/cnpm/cnpmcore/commit/79cb82615f04bdb3da3ccbe09bb6a861608b69c5)] - feat: impl migration sql (#290) (killa <<killa123@126.com>>)
31
+ * [[`4cfa8ed`](http://github.com/cnpm/cnpmcore/commit/4cfa8ed9d687ce7d950d7d20c0ea28221763ba5f)] - feat: impl hooks api (#287) (killa <<killa123@126.com>>)
32
+ * [[`47d53d2`](http://github.com/cnpm/cnpmcore/commit/47d53d22ad03c02ee9cb9035a38ae205a6d38381)] - feat: add bizId for task (#285) (killa <<killa123@126.com>>)
33
+ * [[`3b1536b`](http://github.com/cnpm/cnpmcore/commit/3b1536b070b2f9062bc2cc377db96d2f4a160efc)] - feat: add node-webrtc mirror (#274) (Opportunity <<opportunity@live.in>>)
34
+
35
+ **others**
36
+ * [[`7106807`](http://github.com/cnpm/cnpmcore/commit/710680742a078b2faf4cb18c3a39c0397308712e)] - 🐛 FIX: Should show queue size on logging (#280) (fengmk2 <<fengmk2@gmail.com>>)
37
+ * [[`3a41b21`](http://github.com/cnpm/cnpmcore/commit/3a41b2161cc99bb2f6f6dd7cbaa7abef25ff4393)] - 🐛 FIX: Handle binary configuration value (#278) (fengmk2 <<fengmk2@gmail.com>>)
38
+
2
39
  1.10.0 / 2022-08-04
3
40
  ==================
4
41
 
package/README.md CHANGED
@@ -24,12 +24,12 @@ See [DEVELOPER.md](DEVELOPER.md)
24
24
 
25
25
  ## Contributors
26
26
 
27
- |[<img src="https://avatars.githubusercontent.com/u/156269?v=4" width="100px;"/><br/><sub><b>fengmk2</b></sub>](https://github.com/fengmk2)<br/>|[<img src="https://avatars.githubusercontent.com/u/6897780?v=4" width="100px;"/><br/><sub><b>killagu</b></sub>](https://github.com/killagu)<br/>|[<img src="https://avatars.githubusercontent.com/u/26033663?v=4" width="100px;"/><br/><sub><b>Zian502</b></sub>](https://github.com/Zian502)<br/>|[<img src="https://avatars.githubusercontent.com/u/13284978?v=4" width="100px;"/><br/><sub><b>Beace</b></sub>](https://github.com/Beace)<br/>|[<img src="https://avatars.githubusercontent.com/u/227713?v=4" width="100px;"/><br/><sub><b>atian25</b></sub>](https://github.com/atian25)<br/>|[<img src="https://avatars.githubusercontent.com/u/17879221?v=4" width="100px;"/><br/><sub><b>laibao101</b></sub>](https://github.com/laibao101)<br/>|
27
+ |[<img src="https://avatars.githubusercontent.com/u/156269?v=4" width="100px;"/><br/><sub><b>fengmk2</b></sub>](https://github.com/fengmk2)<br/>|[<img src="https://avatars.githubusercontent.com/u/6897780?v=4" width="100px;"/><br/><sub><b>killagu</b></sub>](https://github.com/killagu)<br/>|[<img src="https://avatars.githubusercontent.com/u/5574625?v=4" width="100px;"/><br/><sub><b>elrrrrrrr</b></sub>](https://github.com/elrrrrrrr)<br/>|[<img src="https://avatars.githubusercontent.com/u/26033663?v=4" width="100px;"/><br/><sub><b>Zian502</b></sub>](https://github.com/Zian502)<br/>|[<img src="https://avatars.githubusercontent.com/u/13284978?v=4" width="100px;"/><br/><sub><b>Beace</b></sub>](https://github.com/Beace)<br/>|[<img src="https://avatars.githubusercontent.com/u/227713?v=4" width="100px;"/><br/><sub><b>atian25</b></sub>](https://github.com/atian25)<br/>|
28
28
  | :---: | :---: | :---: | :---: | :---: | :---: |
29
- |[<img src="https://avatars.githubusercontent.com/u/8198408?v=4" width="100px;"/><br/><sub><b>BlackHole1</b></sub>](https://github.com/BlackHole1)<br/>|[<img src="https://avatars.githubusercontent.com/u/1814071?v=4" width="100px;"/><br/><sub><b>xiekw2010</b></sub>](https://github.com/xiekw2010)<br/>|[<img src="https://avatars.githubusercontent.com/u/958063?v=4" width="100px;"/><br/><sub><b>thonatos</b></sub>](https://github.com/thonatos)<br/>|[<img src="https://avatars.githubusercontent.com/u/11039003?v=4" width="100px;"/><br/><sub><b>chenpx976</b></sub>](https://github.com/chenpx976)<br/>|[<img src="https://avatars.githubusercontent.com/u/29791463?v=4" width="100px;"/><br/><sub><b>fossabot</b></sub>](https://github.com/fossabot)<br/>|[<img src="https://avatars.githubusercontent.com/u/1119126?v=4" width="100px;"/><br/><sub><b>looksgood</b></sub>](https://github.com/looksgood)<br/>|
30
- [<img src="https://avatars.githubusercontent.com/u/3478550?v=4" width="100px;"/><br/><sub><b>coolyuantao</b></sub>](https://github.com/coolyuantao)<br/>
29
+ |[<img src="https://avatars.githubusercontent.com/u/17879221?v=4" width="100px;"/><br/><sub><b>laibao101</b></sub>](https://github.com/laibao101)<br/>|[<img src="https://avatars.githubusercontent.com/u/8198408?v=4" width="100px;"/><br/><sub><b>BlackHole1</b></sub>](https://github.com/BlackHole1)<br/>|[<img src="https://avatars.githubusercontent.com/u/1814071?v=4" width="100px;"/><br/><sub><b>xiekw2010</b></sub>](https://github.com/xiekw2010)<br/>|[<img src="https://avatars.githubusercontent.com/u/13471233?v=4" width="100px;"/><br/><sub><b>OpportunityLiu</b></sub>](https://github.com/OpportunityLiu)<br/>|[<img src="https://avatars.githubusercontent.com/u/958063?v=4" width="100px;"/><br/><sub><b>thonatos</b></sub>](https://github.com/thonatos)<br/>|[<img src="https://avatars.githubusercontent.com/u/11039003?v=4" width="100px;"/><br/><sub><b>chenpx976</b></sub>](https://github.com/chenpx976)<br/>|
30
+ [<img src="https://avatars.githubusercontent.com/u/29791463?v=4" width="100px;"/><br/><sub><b>fossabot</b></sub>](https://github.com/fossabot)<br/>|[<img src="https://avatars.githubusercontent.com/u/1119126?v=4" width="100px;"/><br/><sub><b>looksgood</b></sub>](https://github.com/looksgood)<br/>|[<img src="https://avatars.githubusercontent.com/u/3478550?v=4" width="100px;"/><br/><sub><b>coolyuantao</b></sub>](https://github.com/coolyuantao)<br/>
31
31
 
32
- This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Sat Jul 09 2022 08:59:28 GMT+0800`.
32
+ This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Sun Aug 28 2022 19:00:22 GMT+0800`.
33
33
 
34
34
  <!-- GITCONTRIBUTOR_END -->
35
35
 
@@ -0,0 +1 @@
1
+ export declare function isoNow(): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isoNow = void 0;
4
+ function isoNow() {
5
+ return new Date().toISOString();
6
+ }
7
+ exports.isoNow = isoNow;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9jb21tb24vTG9nVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixNQUFNO0lBQ3BCLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRkQsd0JBRUMifQ==
@@ -5,7 +5,9 @@ export declare class NPMRegistry {
5
5
  private readonly httpclient;
6
6
  private config;
7
7
  private timeout;
8
+ registryHost: string;
8
9
  get registry(): string;
10
+ setRegistryHost(registryHost?: string): void;
9
11
  getFullManifests(fullname: string, retries?: number): Promise<{
10
12
  data: any;
11
13
  status: number;
@@ -15,7 +15,10 @@ let NPMRegistry = class NPMRegistry {
15
15
  this.timeout = 10000;
16
16
  }
17
17
  get registry() {
18
- return this.config.cnpmcore.sourceRegistry;
18
+ return this.registryHost || this.config.cnpmcore.sourceRegistry;
19
+ }
20
+ setRegistryHost(registryHost = '') {
21
+ this.registryHost = registryHost;
19
22
  }
20
23
  async getFullManifests(fullname, retries = 3) {
21
24
  // set query t=timestamp, make sure CDN cache disable
@@ -95,4 +98,4 @@ NPMRegistry = __decorate([
95
98
  })
96
99
  ], NPMRegistry);
97
100
  exports.NPMRegistry = NPMRegistry;
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlBNUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29tbW9uL2FkYXB0ZXIvTlBNUmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsOENBQTZDO0FBQzdDLHNDQUlxQjtBQVFyQixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUM7QUFNcEMsSUFBYSxXQUFXLEdBQXhCLE1BQWEsV0FBVztJQUF4QjtRQU9VLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFxRTFCLENBQUM7SUFuRUMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ3pELHFEQUFxRDtRQUNyRCxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDO1FBQ3ZGLElBQUksU0FBYyxDQUFDO1FBQ25CLE9BQU8sT0FBTyxHQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJO2dCQUNGLDhEQUE4RDtnQkFDOUQsOENBQThDO2dCQUM5QyxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZFO1lBQUMsT0FBTyxHQUFRLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxzQkFBc0I7b0JBQUUsTUFBTSxHQUFHLENBQUM7Z0JBQ25ELFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDakI7WUFDRCxPQUFPLEVBQUUsQ0FBQztZQUNWLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtnQkFD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
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlBNUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29tbW9uL2FkYXB0ZXIvTlBNUmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsOENBQTZDO0FBQzdDLHNDQUlxQjtBQVFyQixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUM7QUFNcEMsSUFBYSxXQUFXLEdBQXhCLE1BQWEsV0FBVztJQUF4QjtRQU9VLFlBQU8sR0FBRyxLQUFLLENBQUM7SUEwRTFCLENBQUM7SUF2RUMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUNsRSxDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQVksR0FBRyxFQUFFO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxPQUFPLEdBQUcsQ0FBQztRQUN6RCxxREFBcUQ7UUFDckQsc0NBQXNDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUN2RixJQUFJLFNBQWMsQ0FBQztRQUNuQixPQUFPLE9BQU8sR0FBRyxDQUFDLEVBQUU7WUFDbEIsSUFBSTtnQkFDRiw4REFBOEQ7Z0JBQzlELDhDQUE4QztnQkFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUN2RTtZQUFDLE9BQU8sR0FBUSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssc0JBQXNCO29CQUFFLE1BQU0sR0FBRyxDQUFDO2dCQUNuRCxTQUFTLEdBQUcsR0FBRyxDQUFDO2FBQ2pCO1lBQ0QsT0FBTyxFQUFFLENBQUM7WUFDVixJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUU7Z0JBQ2YsMEJBQTBCO2dCQUMxQixNQUFNLElBQUEscUJBQVUsRUFBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQy9DO1NBQ0Y7UUFDRCxNQUFNLFNBQVMsQ0FBQztJQUNsQixDQUFDO0lBRUQscUNBQXFDO0lBQzlCLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBZ0I7UUFDMUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxzQ0FBc0MsQ0FBQztRQUNuRyxJQUFJO1FBQ0osY0FBYztRQUNkLGlCQUFpQjtRQUNqQixLQUFLO1FBQ0wsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxtREFBbUQ7SUFDNUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFnQixFQUFFLEVBQVUsRUFBRSxNQUFjO1FBQ25FLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVcsTUFBTSxFQUFFLENBQUM7UUFDL0YsNkNBQTZDO1FBQzdDLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxLQUFhLEVBQUUsR0FBVztRQUMzRixNQUFNLEdBQUcsR0FBRyxHQUFHLFFBQVEsb0JBQW9CLEtBQUssSUFBSSxHQUFHLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMxRixPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBa0IsRUFBRSxHQUFXLEVBQUUsTUFBZSxFQUFFLE9BQWdCO1FBQ3RGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQzdDLE1BQU07WUFDTixJQUFJLEVBQUUsTUFBTTtZQUNaLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxJQUFJO1lBQ1osT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLElBQUksRUFBRSxJQUFJO1lBQ1YsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUNBQXlDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckYsT0FBTztZQUNMLE1BQU07WUFDTixHQUFHO1lBQ0gsR0FBRyxHQUFHO1NBQ1AsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBL0VDO0lBREMsSUFBQSxhQUFNLEdBQUU7MkNBQzBCO0FBRW5DO0lBREMsSUFBQSxhQUFNLEdBQUU7K0NBQ3lDO0FBRWxEO0lBREMsSUFBQSxhQUFNLEdBQUU7MkNBQ29CO0FBTmxCLFdBQVc7SUFKdkIsSUFBQSxtQkFBWSxFQUFDO1FBQ1osSUFBSSxFQUFFLGFBQWE7UUFDbkIsV0FBVyxFQUFFLGtCQUFXLENBQUMsTUFBTTtLQUNoQyxDQUFDO0dBQ1csV0FBVyxDQWlGdkI7QUFqRlksa0NBQVcifQ==
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodePreGypBinary = void 0;
4
+ const path_1 = require("path");
4
5
  const AbstractBinary_1 = require("./AbstractBinary");
5
6
  class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
6
7
  // https://github.com/mapbox/node-pre-gyp
@@ -32,7 +33,7 @@ class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
32
33
  .replace('{module_name}', moduleName);
33
34
  let currentDir = this.dirItems['/'];
34
35
  let versionPrefix = '';
35
- const remotePath = pkgVersion.binary.remote_path;
36
+ let remotePath = pkgVersion.binary.remote_path;
36
37
  const napiVersions = (_a = pkgVersion.binary.napi_versions) !== null && _a !== void 0 ? _a : [];
37
38
  if (((_b = this.binaryConfig.options) === null || _b === void 0 ? void 0 : _b.requiredNapiVersions) && napiVersions.length === 0)
38
39
  continue;
@@ -151,17 +152,31 @@ class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
151
152
  // "package_name": "{platform}-{arch}.tar.gz",
152
153
  // "module_path": "bin"
153
154
  // },
155
+ // handle {configuration}
156
+ // "binary": {
157
+ // "module_name": "wrtc",
158
+ // "module_path": "./build/{configuration}/",
159
+ // "remote_path": "./{module_name}/v{version}/{configuration}/",
160
+ // "package_name": "{platform}-{arch}.tar.gz",
161
+ // "host": "https://node-webrtc.s3.amazonaws.com"
162
+ // },
154
163
  for (const platform of nodePlatforms) {
155
164
  const archs = nodeArchs[platform];
156
165
  for (const arch of archs) {
157
- const name = binaryFile.replace('{platform}', platform)
166
+ const binaryFileName = binaryFile.replace('{platform}', platform)
158
167
  .replace('{arch}', arch);
168
+ remotePath = remotePath.replace('{module_name}', moduleName)
169
+ .replace('{name}', this.binaryConfig.category)
170
+ .replace('{version}', version)
171
+ .replace('{configuration}', 'Release');
172
+ const binaryFilePath = (0, path_1.join)('/', remotePath, binaryFileName);
173
+ const remoteUrl = `${this.binaryConfig.distUrl}${binaryFilePath}`;
159
174
  currentDir.push({
160
- name,
175
+ name: binaryFileName,
161
176
  date,
162
177
  size: '-',
163
178
  isDir: false,
164
- url: `${this.binaryConfig.distUrl}/${this.binaryConfig.category}${versionPrefix}/${name}`,
179
+ url: remoteUrl,
165
180
  ignoreDownloadStatuses: [404],
166
181
  });
167
182
  }
@@ -173,4 +188,4 @@ class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
173
188
  }
174
189
  }
175
190
  exports.NodePreGypBinary = NodePreGypBinary;
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZVByZUd5cEJpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvTm9kZVByZUd5cEJpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBMkU7QUFFM0UsTUFBYSxnQkFBaUIsU0FBUSwrQkFBYztJQUtsRCx5Q0FBeUM7SUFDekMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFXOztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLE1BQU0sR0FBRyw4QkFBOEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxRSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFVB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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZVByZUd5cEJpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvTm9kZVByZUd5cEJpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNEI7QUFDNUIscURBQTJFO0FBRTNFLE1BQWEsZ0JBQWlCLFNBQVEsK0JBQWM7SUFLbEQseUNBQXlDO0lBQ3pDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBVzs7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxNQUFNLEdBQUcsOEJBQThCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFD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
@@ -0,0 +1,17 @@
1
+ import { ImplDecorator } from '@eggjs/tegg';
2
+ import { RegistryType } from '../../../common/enum/Registry';
3
+ import { Registry } from '../../../core/entity/Registry';
4
+ import { EggHttpClient, EggLogger } from 'egg';
5
+ export declare const CHANGE_STREAM_ATTRIBUTE = "CHANGE_STREAM_ATTRIBUTE";
6
+ export declare type ChangesStreamChange = {
7
+ seq: string;
8
+ fullname: string;
9
+ };
10
+ export declare abstract class AbstractChangeStream {
11
+ protected logger: EggLogger;
12
+ protected httpclient: EggHttpClient;
13
+ abstract getInitialSince(registry: Registry): Promise<string>;
14
+ abstract fetchChanges(registry: Registry, since: string): AsyncGenerator<ChangesStreamChange>;
15
+ getChangesStreamUrl(registry: Registry, since: string, limit?: number): string;
16
+ }
17
+ export declare const RegistryChangesStream: ImplDecorator<AbstractChangeStream, typeof RegistryType>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RegistryChangesStream = exports.AbstractChangeStream = exports.CHANGE_STREAM_ATTRIBUTE = void 0;
10
+ const tegg_1 = require("@eggjs/tegg");
11
+ exports.CHANGE_STREAM_ATTRIBUTE = 'CHANGE_STREAM_ATTRIBUTE';
12
+ class AbstractChangeStream {
13
+ getChangesStreamUrl(registry, since, limit) {
14
+ const url = new URL(registry.changeStream);
15
+ url.searchParams.set('since', since);
16
+ if (limit) {
17
+ url.searchParams.set('limit', String(limit));
18
+ }
19
+ return url.toString();
20
+ }
21
+ }
22
+ __decorate([
23
+ (0, tegg_1.Inject)()
24
+ ], AbstractChangeStream.prototype, "logger", void 0);
25
+ __decorate([
26
+ (0, tegg_1.Inject)()
27
+ ], AbstractChangeStream.prototype, "httpclient", void 0);
28
+ exports.AbstractChangeStream = AbstractChangeStream;
29
+ exports.RegistryChangesStream = tegg_1.QualifierImplDecoratorUtil.generatorDecorator(AbstractChangeStream, exports.CHANGE_STREAM_ATTRIBUTE);
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RDaGFuZ2VzU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL2NvbW1vbi9hZGFwdGVyL2NoYW5nZXNTdHJlYW0vQWJzdHJhY3RDaGFuZ2VzU3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHNDQUlxQjtBQVFSLFFBQUEsdUJBQXVCLEdBQUcseUJBQXlCLENBQUM7QUFNakUsTUFBc0Isb0JBQW9CO0lBVXhDLG1CQUFtQixDQUFDLFFBQWtCLEVBQUUsS0FBYSxFQUFFLEtBQWM7UUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRTtZQUNULEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUNELE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQWhCQztJQURDLElBQUEsYUFBTSxHQUFFO29EQUNtQjtBQUc1QjtJQURDLElBQUEsYUFBTSxHQUFFO3dEQUMyQjtBQUx0QyxvREFrQkM7QUFFWSxRQUFBLHFCQUFxQixHQUNoQyxpQ0FBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSwrQkFBdUIsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,9 @@
1
+ import { Registry } from '../../../core/entity/Registry';
2
+ import { AbstractChangeStream } from './AbstractChangesStream';
3
+ export declare class CnpmcoreChangesStream extends AbstractChangeStream {
4
+ getInitialSince(registry: Registry): Promise<string>;
5
+ fetchChanges(registry: Registry, since: string): AsyncGenerator<{
6
+ fullname: any;
7
+ seq: string;
8
+ }, void, unknown>;
9
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CnpmcoreChangesStream = void 0;
10
+ const tegg_1 = require("@eggjs/tegg");
11
+ const Registry_1 = require("../../../common/enum/Registry");
12
+ const egg_errors_1 = require("egg-errors");
13
+ const AbstractChangesStream_1 = require("./AbstractChangesStream");
14
+ let CnpmcoreChangesStream = class CnpmcoreChangesStream extends AbstractChangesStream_1.AbstractChangeStream {
15
+ async getInitialSince(registry) {
16
+ const db = (new URL(registry.changeStream)).origin;
17
+ const { status, data } = await this.httpclient.request(db, {
18
+ followRedirect: true,
19
+ timeout: 10000,
20
+ dataType: 'json',
21
+ });
22
+ if (!data.update_seq) {
23
+ throw new egg_errors_1.E500(`get getInitialSince failed: ${data.update_seq}`);
24
+ }
25
+ const since = String(data.update_seq - 10);
26
+ this.logger.warn('[NpmChangesStream.getInitialSince:firstSeq] GET %s status: %s, data: %j, since: %s', registry.name, status, data, since);
27
+ return since;
28
+ }
29
+ async *fetchChanges(registry, since) {
30
+ var _a;
31
+ const db = this.getChangesStreamUrl(registry, since);
32
+ // json mode
33
+ const { data } = await this.httpclient.request(db, {
34
+ followRedirect: true,
35
+ timeout: 30000,
36
+ dataType: 'json',
37
+ gzip: true,
38
+ });
39
+ if (((_a = data.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
40
+ for (const change of data.results) {
41
+ const seq = String(change.seq);
42
+ const fullname = change.id;
43
+ // cnpmcore 默认返回 >= 需要做特殊判断
44
+ if (seq && fullname && seq !== since) {
45
+ const change = {
46
+ fullname,
47
+ seq,
48
+ };
49
+ yield change;
50
+ }
51
+ }
52
+ }
53
+ }
54
+ };
55
+ CnpmcoreChangesStream = __decorate([
56
+ (0, tegg_1.ContextProto)(),
57
+ (0, AbstractChangesStream_1.RegistryChangesStream)(Registry_1.RegistryType.Cnpmcore)
58
+ ], CnpmcoreChangesStream);
59
+ exports.CnpmcoreChangesStream = CnpmcoreChangesStream;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ25wbWNvcmVDaGFuZ2VzU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL2NvbW1vbi9hZGFwdGVyL2NoYW5nZXNTdHJlYW0vQ25wbWNvcmVDaGFuZ2VzU3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHNDQUEyQztBQUMzQyw0REFBNkQ7QUFFN0QsMkNBQWtDO0FBQ2xDLG1FQUFzRjtBQUl0RixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFzQixTQUFRLDRDQUFvQjtJQUU3RCxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQWtCO1FBQ3RDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ25ELE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDekQsY0FBYyxFQUFFLElBQUk7WUFDcEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsTUFBTTtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixNQUFNLElBQUksaUJBQUksQ0FBQywrQkFBK0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDbEU7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvRkFBb0YsRUFDbkcsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQSxDQUFFLFlBQVksQ0FBQyxRQUFrQixFQUFFLEtBQWE7O1FBQ25ELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsWUFBWTtRQUNaLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNqRCxjQUFjLEVBQUUsSUFBSTtZQUNwQixPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUM1QixLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLDJCQUEyQjtnQkFDM0IsSUFBSSxHQUFHLElBQUksUUFBUSxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7b0JBQ3BDLE1BQU0sTUFBTSxHQUFHO3dCQUNiLFFBQVE7d0JBQ1IsR0FBRztxQkFDSixDQUFDO29CQUNGLE1BQU0sTUFBTSxDQUFDO2lCQUNkO2FBQ0Y7U0FDRjtJQUNILENBQUM7Q0FDRixDQUFBO0FBM0NZLHFCQUFxQjtJQUZqQyxJQUFBLG1CQUFZLEdBQUU7SUFDZCxJQUFBLDZDQUFxQixFQUFDLHVCQUFZLENBQUMsUUFBUSxDQUFDO0dBQ2hDLHFCQUFxQixDQTJDakM7QUEzQ1ksc0RBQXFCIn0=
@@ -0,0 +1,10 @@
1
+ import { Registry } from '../../../core/entity/Registry';
2
+ import { AbstractChangeStream } from './AbstractChangesStream';
3
+ export declare class CnpmjsorgChangesStream extends AbstractChangeStream {
4
+ getInitialSince(registry: Registry): Promise<string>;
5
+ private tryFetch;
6
+ fetchChanges(registry: Registry, since: string): AsyncGenerator<{
7
+ fullname: any;
8
+ seq: string;
9
+ }, void, unknown>;
10
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CnpmjsorgChangesStream = void 0;
10
+ const tegg_1 = require("@eggjs/tegg");
11
+ const Registry_1 = require("../../../common/enum/Registry");
12
+ const egg_errors_1 = require("egg-errors");
13
+ const AbstractChangesStream_1 = require("./AbstractChangesStream");
14
+ const MAX_LIMIT = 10000;
15
+ let CnpmjsorgChangesStream = class CnpmjsorgChangesStream extends AbstractChangesStream_1.AbstractChangeStream {
16
+ // cnpmjsorg 未实现 update_seq 字段
17
+ // 默认返回当前时间戳字符串
18
+ async getInitialSince(registry) {
19
+ const since = String((new Date()).getTime());
20
+ this.logger.warn(`[CnpmjsorgChangesStream.getInitialSince] since: ${since}, skip query ${registry.changeStream}`);
21
+ return since;
22
+ }
23
+ async tryFetch(registry, since, limit = 1000) {
24
+ if (limit > MAX_LIMIT) {
25
+ throw new egg_errors_1.E500(`limit too large, current since: ${since}, limit: ${limit}`);
26
+ }
27
+ const db = this.getChangesStreamUrl(registry, since, limit);
28
+ // json mode
29
+ const res = await this.httpclient.request(db, {
30
+ followRedirect: true,
31
+ timeout: 30000,
32
+ dataType: 'json',
33
+ gzip: true,
34
+ });
35
+ const { results = [] } = res.data;
36
+ if ((results === null || results === void 0 ? void 0 : results.length) > 1) {
37
+ const [first] = results;
38
+ const last = results[results.length - 1];
39
+ if (first.gmt_modified === last.gmt_modified) {
40
+ return await this.tryFetch(registry, last.seq, limit + 1000);
41
+ }
42
+ }
43
+ return res;
44
+ }
45
+ async *fetchChanges(registry, since) {
46
+ var _a;
47
+ // ref: https://github.com/cnpm/cnpmjs.org/pull/1734
48
+ // 由于 cnpmjsorg 无法计算准确的 seq
49
+ // since 是一个时间戳,需要确保一次返回的结果中首尾两个 gmtModified 不相等
50
+ const { data } = await this.tryFetch(registry, since);
51
+ if (((_a = data.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
52
+ for (const change of data.results) {
53
+ const seq = new Date(change.gmt_modified).getTime() + '';
54
+ const fullname = change.id;
55
+ if (seq && fullname && seq !== since) {
56
+ const change = {
57
+ fullname,
58
+ seq,
59
+ };
60
+ yield change;
61
+ }
62
+ }
63
+ }
64
+ }
65
+ };
66
+ CnpmjsorgChangesStream = __decorate([
67
+ (0, tegg_1.ContextProto)(),
68
+ (0, AbstractChangesStream_1.RegistryChangesStream)(Registry_1.RegistryType.Cnpmjsorg)
69
+ ], CnpmjsorgChangesStream);
70
+ exports.CnpmjsorgChangesStream = CnpmjsorgChangesStream;
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ25wbWpzb3JnQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9jaGFuZ2VzU3RyZWFtL0NucG1qc29yZ0NoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsc0NBQTJDO0FBQzNDLDREQUE2RDtBQUU3RCwyQ0FBa0M7QUFDbEMsbUVBQXNGO0FBRXRGLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQztBQUl4QixJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUF1QixTQUFRLDRDQUFvQjtJQUU5RCw4QkFBOEI7SUFDOUIsZUFBZTtJQUNmLEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBa0I7UUFDdEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbURBQW1ELEtBQUssZ0JBQWdCLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2xILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBa0IsRUFBRSxLQUFhLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDcEUsSUFBSSxLQUFLLEdBQUcsU0FBUyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxpQkFBSSxDQUFDLG1DQUFtQyxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM3RTtRQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELFlBQVk7UUFDWixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxjQUFjLEVBQUUsSUFBSTtZQUNwQixPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUN2QixNQUFNLENBQUUsS0FBSyxDQUFFLEdBQUcsT0FBTyxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUM1QyxPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDOUQ7U0FDRjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQSxDQUFFLFlBQVksQ0FBQyxRQUFrQixFQUFFLEtBQWE7O1FBQ25ELG9EQUFvRDtRQUNwRCwyQkFBMkI7UUFDM0IsZ0RBQWdEO1FBQ2hELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDNUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO2dCQUN6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMzQixJQUFJLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtvQkFDcEMsTUFBTSxNQUFNLEdBQUc7d0JBQ2IsUUFBUTt3QkFDUixHQUFHO3FCQUNKLENBQUM7b0JBQ0YsTUFBTSxNQUFNLENBQUM7aUJBQ2Q7YUFDRjtTQUNGO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUF0RFksc0JBQXNCO0lBRmxDLElBQUEsbUJBQVksR0FBRTtJQUNkLElBQUEsNkNBQXFCLEVBQUMsdUJBQVksQ0FBQyxTQUFTLENBQUM7R0FDakMsc0JBQXNCLENBc0RsQztBQXREWSx3REFBc0IifQ==
@@ -0,0 +1,6 @@
1
+ import { Registry } from '../../../core/entity/Registry';
2
+ import { AbstractChangeStream, ChangesStreamChange } from './AbstractChangesStream';
3
+ export declare class NpmChangesStream extends AbstractChangeStream {
4
+ getInitialSince(registry: Registry): Promise<string>;
5
+ fetchChanges(registry: Registry, since: string): AsyncGenerator<ChangesStreamChange, void, unknown>;
6
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.NpmChangesStream = void 0;
10
+ const tegg_1 = require("@eggjs/tegg");
11
+ const egg_errors_1 = require("egg-errors");
12
+ const Registry_1 = require("../../../common/enum/Registry");
13
+ const AbstractChangesStream_1 = require("./AbstractChangesStream");
14
+ let NpmChangesStream = class NpmChangesStream extends AbstractChangesStream_1.AbstractChangeStream {
15
+ async getInitialSince(registry) {
16
+ const db = (new URL(registry.changeStream)).origin;
17
+ const { status, data } = await this.httpclient.request(db, {
18
+ followRedirect: true,
19
+ timeout: 10000,
20
+ dataType: 'json',
21
+ });
22
+ const since = String(data.update_seq - 10);
23
+ if (!data.update_seq) {
24
+ throw new egg_errors_1.E500(`get getInitialSince failed: ${data.update_seq}`);
25
+ }
26
+ this.logger.warn('[NpmChangesStream.getInitialSince] GET %s status: %s, data: %j, since: %s', registry.name, registry.changeStream, status, data, since);
27
+ return since;
28
+ }
29
+ async *fetchChanges(registry, since) {
30
+ const db = this.getChangesStreamUrl(registry, since);
31
+ const { res } = await this.httpclient.request(db, {
32
+ streaming: true,
33
+ timeout: 10000,
34
+ });
35
+ let buf = '';
36
+ for await (const chunk of res) {
37
+ const text = chunk.toString();
38
+ const lines = text.split('\n');
39
+ for (const line of lines) {
40
+ const content = buf + line;
41
+ const match = /"seq":(\d+),"id":"([^"]+)"/g.exec(content);
42
+ const seq = match === null || match === void 0 ? void 0 : match[1];
43
+ const fullname = match === null || match === void 0 ? void 0 : match[2];
44
+ if (seq && fullname) {
45
+ buf = '';
46
+ const change = { fullname, seq };
47
+ yield change;
48
+ }
49
+ else {
50
+ buf += line;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ };
56
+ NpmChangesStream = __decorate([
57
+ (0, tegg_1.ContextProto)(),
58
+ (0, AbstractChangesStream_1.RegistryChangesStream)(Registry_1.RegistryType.Npm)
59
+ ], NpmChangesStream);
60
+ exports.NpmChangesStream = NpmChangesStream;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnBtQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9jaGFuZ2VzU3RyZWFtL05wbUNoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsc0NBQTJDO0FBQzNDLDJDQUFrQztBQUNsQyw0REFBNkQ7QUFFN0QsbUVBQTJHO0FBSTNHLElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWlCLFNBQVEsNENBQW9CO0lBRXhELEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBa0I7UUFDdEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUN6RCxjQUFjLEVBQUUsSUFBSTtZQUNwQixPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxpQkFBSSxDQUFDLCtCQUErQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUNsRTtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJFQUEyRSxFQUMxRixRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUEsQ0FBRSxZQUFZLENBQUMsUUFBa0IsRUFBRSxLQUFhO1FBQ25ELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFL0IsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ3hCLE1BQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixNQUFNLFFBQVEsR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLElBQUksR0FBRyxJQUFJLFFBQVEsRUFBRTtvQkFDbkIsR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDVCxNQUFNLE1BQU0sR0FBd0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQ3RELE1BQU0sTUFBTSxDQUFDO2lCQUNkO3FCQUFNO29CQUNMLEdBQUcsSUFBSSxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO0lBQ0gsQ0FBQztDQUVGLENBQUE7QUE5Q1ksZ0JBQWdCO0lBRjVCLElBQUEsbUJBQVksR0FBRTtJQUNkLElBQUEsNkNBQXFCLEVBQUMsdUJBQVksQ0FBQyxHQUFHLENBQUM7R0FDM0IsZ0JBQWdCLENBOEM1QjtBQTlDWSw0Q0FBZ0IifQ==
@@ -0,0 +1,18 @@
1
+ export declare enum HookType {
2
+ Package = "package",
3
+ Scope = "scope",
4
+ Owner = "owner"
5
+ }
6
+ export declare enum HookEventType {
7
+ Star = "package:star",
8
+ Unstar = "package:unstar",
9
+ Publish = "package:publish",
10
+ Unpublish = "package:unpublish",
11
+ Owner = "package:owner",
12
+ OwnerRm = "package:owner-rm",
13
+ DistTag = "package:dist-tag",
14
+ DistTagRm = "package:dist-tag-rm",
15
+ Deprecated = "package:deprecated",
16
+ Undeprecated = "package:undeprecated",
17
+ Change = "package:change"
18
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HookEventType = exports.HookType = void 0;
4
+ var HookType;
5
+ (function (HookType) {
6
+ HookType["Package"] = "package";
7
+ HookType["Scope"] = "scope";
8
+ HookType["Owner"] = "owner";
9
+ })(HookType = exports.HookType || (exports.HookType = {}));
10
+ var HookEventType;
11
+ (function (HookEventType) {
12
+ HookEventType["Star"] = "package:star";
13
+ HookEventType["Unstar"] = "package:unstar";
14
+ HookEventType["Publish"] = "package:publish";
15
+ HookEventType["Unpublish"] = "package:unpublish";
16
+ HookEventType["Owner"] = "package:owner";
17
+ HookEventType["OwnerRm"] = "package:owner-rm";
18
+ HookEventType["DistTag"] = "package:dist-tag";
19
+ HookEventType["DistTagRm"] = "package:dist-tag-rm";
20
+ HookEventType["Deprecated"] = "package:deprecated";
21
+ HookEventType["Undeprecated"] = "package:undeprecated";
22
+ HookEventType["Change"] = "package:change";
23
+ })(HookEventType = exports.HookEventType || (exports.HookEventType = {}));
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vZW51bS9Ib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQiwrQkFBbUIsQ0FBQTtJQUNuQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFFRCxJQUFZLGFBWVg7QUFaRCxXQUFZLGFBQWE7SUFDdkIsc0NBQXFCLENBQUE7SUFDckIsMENBQXlCLENBQUE7SUFDekIsNENBQTJCLENBQUE7SUFDM0IsZ0RBQStCLENBQUE7SUFDL0Isd0NBQXVCLENBQUE7SUFDdkIsNkNBQTRCLENBQUE7SUFDNUIsNkNBQTRCLENBQUE7SUFDNUIsa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsc0RBQXFDLENBQUE7SUFDckMsMENBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVpXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBWXhCIn0=
@@ -0,0 +1,5 @@
1
+ export declare enum RegistryType {
2
+ Npm = "npm",
3
+ Cnpmcore = "cnpmcore",
4
+ Cnpmjsorg = "cnpmjsorg"
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegistryType = void 0;
4
+ var RegistryType;
5
+ (function (RegistryType) {
6
+ RegistryType["Npm"] = "npm";
7
+ RegistryType["Cnpmcore"] = "cnpmcore";
8
+ RegistryType["Cnpmjsorg"] = "cnpmjsorg";
9
+ })(RegistryType = exports.RegistryType || (exports.RegistryType = {}));
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29tbW9uL2VudW0vUmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3RCLDJCQUFXLENBQUE7SUFDWCxxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFJdkIifQ==
@@ -1,7 +1,9 @@
1
1
  export declare enum TaskType {
2
2
  SyncPackage = "sync_package",
3
3
  ChangesStream = "changes_stream",
4
- SyncBinary = "sync_binary"
4
+ SyncBinary = "sync_binary",
5
+ CreateHook = "create_hook",
6
+ TriggerHook = "trigger_hook"
5
7
  }
6
8
  export declare enum TaskState {
7
9
  Waiting = "waiting",
@@ -6,6 +6,8 @@ var TaskType;
6
6
  TaskType["SyncPackage"] = "sync_package";
7
7
  TaskType["ChangesStream"] = "changes_stream";
8
8
  TaskType["SyncBinary"] = "sync_binary";
9
+ TaskType["CreateHook"] = "create_hook";
10
+ TaskType["TriggerHook"] = "trigger_hook";
9
11
  })(TaskType = exports.TaskType || (exports.TaskType = {}));
10
12
  var TaskState;
11
13
  (function (TaskState) {
@@ -15,4 +17,4 @@ var TaskState;
15
17
  TaskState["Fail"] = "fail";
16
18
  TaskState["Timeout"] = "timeout";
17
19
  })(TaskState = exports.TaskState || (exports.TaskState = {}));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vZW51bS9UYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix3Q0FBNEIsQ0FBQTtJQUM1Qiw0Q0FBZ0MsQ0FBQTtJQUNoQyxzQ0FBMEIsQ0FBQTtBQUM1QixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFFRCxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsZ0NBQW1CLENBQUE7SUFDbkIsc0NBQXlCLENBQUE7SUFDekIsZ0NBQW1CLENBQUE7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiJ9
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vZW51bS9UYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQix3Q0FBNEIsQ0FBQTtJQUM1Qiw0Q0FBZ0MsQ0FBQTtJQUNoQyxzQ0FBMEIsQ0FBQTtJQUMxQixzQ0FBMEIsQ0FBQTtJQUMxQix3Q0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFNbkI7QUFFRCxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsZ0NBQW1CLENBQUE7SUFDbkIsc0NBQXlCLENBQUE7SUFDekIsZ0NBQW1CLENBQUE7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiJ9