cnpmcore 0.0.2 → 1.2.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 (243) hide show
  1. package/History.md +19 -0
  2. package/LICENSE +1 -1
  3. package/README.md +13 -4
  4. package/dist/app/common/AbstractService.d.ts +5 -0
  5. package/dist/app/{port/type/BaseController.js → common/AbstractService.js} +11 -9
  6. package/dist/app/common/FileUtil.d.ts +15 -0
  7. package/dist/app/common/FileUtil.js +77 -0
  8. package/dist/app/common/PackageUtil.d.ts +9 -0
  9. package/dist/app/common/PackageUtil.js +38 -16
  10. package/dist/app/common/SyncUtil.d.ts +2 -0
  11. package/dist/app/common/SyncUtil.js +17 -0
  12. package/dist/app/common/UserUtil.d.ts +5 -0
  13. package/dist/app/common/UserUtil.js +72 -0
  14. package/dist/app/common/adapter/BugVersionStore.d.ts +7 -0
  15. package/dist/app/common/adapter/BugVersionStore.js +28 -0
  16. package/dist/app/common/adapter/CacheAdapter.d.ts +13 -0
  17. package/dist/app/common/adapter/CacheAdapter.js +78 -0
  18. package/dist/app/common/adapter/NFSAdapter.d.ts +16 -0
  19. package/dist/app/common/adapter/NFSAdapter.js +62 -22
  20. package/dist/app/common/adapter/NPMRegistry.d.ts +78 -0
  21. package/dist/app/common/adapter/NPMRegistry.js +98 -0
  22. package/dist/app/common/adapter/QueueAdapter.d.ts +7 -0
  23. package/dist/app/common/adapter/QueueAdapter.js +37 -0
  24. package/dist/app/common/adapter/binary/AbstractBinary.d.ts +33 -0
  25. package/dist/app/common/adapter/binary/AbstractBinary.js +76 -0
  26. package/dist/app/common/adapter/binary/ApiBinary.d.ts +8 -0
  27. package/dist/app/common/adapter/binary/ApiBinary.js +31 -0
  28. package/dist/app/common/adapter/binary/BucketBinary.d.ts +5 -0
  29. package/dist/app/common/adapter/binary/BucketBinary.js +77 -0
  30. package/dist/app/common/adapter/binary/CypressBinary.d.ts +5 -0
  31. package/dist/app/common/adapter/binary/CypressBinary.js +63 -0
  32. package/dist/app/common/adapter/binary/ElectronBinary.d.ts +5 -0
  33. package/dist/app/common/adapter/binary/ElectronBinary.js +44 -0
  34. package/dist/app/common/adapter/binary/GithubBinary.d.ts +7 -0
  35. package/dist/app/common/adapter/binary/GithubBinary.js +93 -0
  36. package/dist/app/common/adapter/binary/ImageminBinary.d.ts +5 -0
  37. package/dist/app/common/adapter/binary/ImageminBinary.js +96 -0
  38. package/dist/app/common/adapter/binary/NodeBinary.d.ts +4 -0
  39. package/dist/app/common/adapter/binary/NodeBinary.js +41 -0
  40. package/dist/app/common/adapter/binary/NodePreGypBinary.d.ts +5 -0
  41. package/dist/app/common/adapter/binary/NodePreGypBinary.js +136 -0
  42. package/dist/app/common/adapter/binary/NwjsBinary.d.ts +6 -0
  43. package/dist/app/common/adapter/binary/NwjsBinary.js +47 -0
  44. package/dist/app/common/adapter/binary/PlaywrightBinary.d.ts +5 -0
  45. package/dist/app/common/adapter/binary/PlaywrightBinary.js +214 -0
  46. package/dist/app/common/adapter/binary/PuppeteerBinary.d.ts +6 -0
  47. package/dist/app/common/adapter/binary/PuppeteerBinary.js +125 -0
  48. package/dist/app/common/adapter/binary/SqlcipherBinary.d.ts +5 -0
  49. package/dist/app/common/adapter/binary/SqlcipherBinary.js +78 -0
  50. package/dist/app/common/aop/AsyncTimer.d.ts +9 -0
  51. package/dist/app/common/aop/AsyncTimer.js +36 -0
  52. package/dist/app/common/constants.d.ts +2 -0
  53. package/dist/app/common/constants.js +6 -0
  54. package/dist/app/common/dayjs.d.ts +2 -0
  55. package/dist/app/common/dayjs.js +10 -0
  56. package/dist/app/common/enum/Task.d.ts +12 -0
  57. package/dist/app/common/enum/Task.js +18 -0
  58. package/dist/app/common/enum/User.d.ts +5 -0
  59. package/dist/app/common/enum/User.js +10 -0
  60. package/dist/app/common/typing.d.ts +28 -0
  61. package/dist/app/common/typing.js +3 -0
  62. package/dist/app/core/entity/Binary.d.ts +28 -0
  63. package/dist/app/core/entity/Binary.js +29 -0
  64. package/dist/app/core/entity/BugVersion.d.ts +14 -0
  65. package/dist/app/core/entity/BugVersion.js +43 -0
  66. package/dist/app/core/entity/Change.d.ts +17 -0
  67. package/dist/app/core/entity/Change.js +20 -0
  68. package/dist/app/core/entity/Dist.d.ts +21 -0
  69. package/dist/app/core/entity/Dist.js +1 -2
  70. package/dist/app/core/entity/Entity.d.ts +11 -0
  71. package/dist/app/core/entity/Entity.js +3 -3
  72. package/dist/app/core/entity/Package.d.ts +45 -0
  73. package/dist/app/core/entity/Package.js +33 -25
  74. package/dist/app/core/entity/PackageTag.d.ts +17 -0
  75. package/dist/app/core/entity/PackageVersion.d.ts +26 -0
  76. package/dist/app/core/entity/PackageVersionBlock.d.ts +17 -0
  77. package/dist/app/core/entity/PackageVersionBlock.js +20 -0
  78. package/dist/app/core/entity/PackageVersionManifest.d.ts +17 -0
  79. package/dist/app/core/entity/PackageVersionManifest.js +20 -0
  80. package/dist/app/core/entity/Task.d.ts +43 -0
  81. package/dist/app/core/entity/Task.js +94 -0
  82. package/dist/app/core/entity/Token.d.ts +24 -0
  83. package/dist/app/core/entity/Token.js +23 -0
  84. package/dist/app/core/entity/User.d.ts +25 -0
  85. package/dist/app/core/entity/User.js +24 -0
  86. package/dist/app/core/event/BugVersionFixHandler.d.ts +6 -0
  87. package/dist/app/core/event/BugVersionFixHandler.js +42 -0
  88. package/dist/app/core/event/CacheCleaner.d.ts +38 -0
  89. package/dist/app/core/event/CacheCleaner.js +119 -0
  90. package/dist/app/core/event/ChangesStream.d.ts +32 -0
  91. package/dist/app/core/event/ChangesStream.js +106 -0
  92. package/dist/app/core/event/StoreManifest.d.ts +11 -0
  93. package/dist/app/core/event/StoreManifest.js +54 -0
  94. package/dist/app/core/event/index.d.ts +27 -0
  95. package/dist/app/core/event/index.js +11 -3
  96. package/dist/app/core/service/BinarySyncerService.d.ts +23 -0
  97. package/dist/app/core/service/BinarySyncerService.js +281 -0
  98. package/dist/app/core/service/BugVersionService.d.ts +11 -0
  99. package/dist/app/core/service/BugVersionService.js +86 -0
  100. package/dist/app/core/service/CacheService.d.ts +33 -0
  101. package/dist/app/core/service/CacheService.js +75 -0
  102. package/dist/app/core/service/ChangesStreamService.d.ts +11 -0
  103. package/dist/app/core/service/ChangesStreamService.js +186 -0
  104. package/dist/app/core/service/PackageManagerService.d.ts +83 -0
  105. package/dist/app/core/service/PackageManagerService.js +675 -78
  106. package/dist/app/core/service/PackageSyncerService.d.ts +24 -0
  107. package/dist/app/core/service/PackageSyncerService.js +667 -0
  108. package/dist/app/core/service/TaskService.d.ts +22 -0
  109. package/dist/app/core/service/TaskService.js +142 -0
  110. package/dist/app/core/service/UserService.d.ts +36 -0
  111. package/dist/app/core/service/UserService.js +120 -0
  112. package/dist/app/core/util/EntityUtil.d.ts +8 -0
  113. package/dist/app/core/util/EntityUtil.js +3 -3
  114. package/dist/app/infra/NFSClientAdapter.d.ts +18 -0
  115. package/dist/app/infra/NFSClientAdapter.js +74 -0
  116. package/dist/app/infra/package.json +6 -0
  117. package/dist/app/port/UserRoleManager.d.ts +24 -0
  118. package/dist/app/port/UserRoleManager.js +146 -0
  119. package/dist/app/port/controller/AbstractController.d.ts +32 -0
  120. package/dist/app/port/controller/AbstractController.js +112 -0
  121. package/dist/app/port/controller/BinarySyncController.d.ts +36 -0
  122. package/dist/app/port/controller/BinarySyncController.js +123 -0
  123. package/dist/app/port/controller/ChangesStreamController.d.ts +13 -0
  124. package/dist/app/port/controller/ChangesStreamController.js +53 -0
  125. package/dist/app/port/controller/DownloadController.d.ts +18 -0
  126. package/dist/app/port/controller/DownloadController.js +134 -0
  127. package/dist/app/port/controller/HomeController.d.ts +37 -0
  128. package/dist/app/port/controller/HomeController.js +72 -0
  129. package/dist/app/port/controller/PackageBlockController.d.ts +24 -0
  130. package/dist/app/port/controller/PackageBlockController.js +108 -0
  131. package/dist/app/port/controller/PackageSyncController.d.ts +35 -0
  132. package/dist/app/port/controller/PackageSyncController.js +205 -0
  133. package/dist/app/port/controller/PackageTagController.d.ts +12 -0
  134. package/dist/app/port/controller/PackageTagController.js +88 -0
  135. package/dist/app/port/controller/TokenController.d.ts +38 -0
  136. package/dist/app/port/controller/TokenController.js +125 -0
  137. package/dist/app/port/controller/UserController.d.ts +39 -0
  138. package/dist/app/port/controller/UserController.js +223 -0
  139. package/dist/app/port/controller/package/DownloadPackageVersionTar.d.ts +9 -0
  140. package/dist/app/port/controller/package/DownloadPackageVersionTar.js +82 -0
  141. package/dist/app/port/controller/package/RemovePackageVersionController.d.ts +8 -0
  142. package/dist/app/port/controller/package/RemovePackageVersionController.js +56 -0
  143. package/dist/app/port/controller/package/SavePackageVersionController.d.ts +48 -0
  144. package/dist/app/port/controller/package/SavePackageVersionController.js +221 -0
  145. package/dist/app/port/controller/package/ShowPackageController.d.ts +8 -0
  146. package/dist/app/port/controller/package/ShowPackageController.js +99 -0
  147. package/dist/app/port/controller/package/ShowPackageVersionController.d.ts +6 -0
  148. package/dist/app/port/controller/package/ShowPackageVersionController.js +55 -0
  149. package/dist/app/port/controller/package/UpdatePackageController.d.ts +17 -0
  150. package/dist/app/port/controller/package/UpdatePackageController.js +68 -0
  151. package/dist/app/port/middleware/AlwaysAuth.d.ts +2 -0
  152. package/dist/app/port/middleware/AlwaysAuth.js +17 -0
  153. package/dist/app/port/middleware/ErrorHandler.d.ts +2 -0
  154. package/dist/app/port/middleware/ErrorHandler.js +27 -5
  155. package/dist/app/port/middleware/Tracing.d.ts +2 -0
  156. package/dist/app/port/middleware/Tracing.js +22 -0
  157. package/dist/app/port/middleware/index.d.ts +2 -0
  158. package/dist/app/port/middleware/index.js +22 -0
  159. package/dist/app/port/typebox.d.ts +29 -0
  160. package/dist/app/port/typebox.js +71 -0
  161. package/dist/app/repository/AbstractRepository.d.ts +4 -0
  162. package/dist/app/repository/AbstractRepository.js +17 -0
  163. package/dist/app/repository/BinaryRepository.d.ts +7 -0
  164. package/dist/app/repository/BinaryRepository.js +45 -0
  165. package/dist/app/repository/ChangeRepository.d.ts +8 -0
  166. package/dist/app/repository/ChangeRepository.js +31 -0
  167. package/dist/app/repository/DistRepository.d.ts +15 -0
  168. package/dist/app/repository/DistRepository.js +69 -0
  169. package/dist/app/repository/PackageRepository.d.ts +39 -0
  170. package/dist/app/repository/PackageRepository.js +223 -36
  171. package/dist/app/repository/PackageVersionBlockRepository.d.ts +10 -0
  172. package/dist/app/repository/PackageVersionBlockRepository.js +51 -0
  173. package/dist/app/repository/PackageVersionDownloadRepository.d.ts +7 -0
  174. package/dist/app/repository/PackageVersionDownloadRepository.js +77 -0
  175. package/dist/app/repository/TaskRepository.d.ts +10 -0
  176. package/dist/app/repository/TaskRepository.js +82 -0
  177. package/dist/app/repository/UserRepository.d.ts +15 -0
  178. package/dist/app/repository/UserRepository.js +81 -0
  179. package/dist/app/repository/model/Binary.d.ts +13 -0
  180. package/dist/app/repository/model/Binary.js +53 -0
  181. package/dist/app/repository/model/Change.d.ts +10 -0
  182. package/dist/app/repository/model/Change.js +44 -0
  183. package/dist/app/repository/model/Dist.d.ts +12 -0
  184. package/dist/app/repository/model/Dist.js +10 -13
  185. package/dist/app/repository/model/HistoryTask.d.ts +18 -0
  186. package/dist/app/repository/model/HistoryTask.js +65 -0
  187. package/dist/app/repository/model/Maintainer.d.ts +8 -0
  188. package/dist/app/repository/model/Maintainer.js +36 -0
  189. package/dist/app/repository/model/Package.d.ts +13 -0
  190. package/dist/app/repository/model/Package.js +18 -9
  191. package/dist/app/repository/model/PackageDep.d.ts +11 -0
  192. package/dist/app/repository/model/PackageDep.js +9 -9
  193. package/dist/app/repository/model/PackageTag.d.ts +10 -0
  194. package/dist/app/repository/model/PackageTag.js +9 -9
  195. package/dist/app/repository/model/PackageVersion.d.ts +14 -0
  196. package/dist/app/repository/model/PackageVersion.js +9 -9
  197. package/dist/app/repository/model/PackageVersionBlock.d.ts +10 -0
  198. package/dist/app/repository/model/PackageVersionBlock.js +44 -0
  199. package/dist/app/repository/model/PackageVersionDownload.d.ts +40 -0
  200. package/dist/app/repository/model/PackageVersionDownload.js +132 -0
  201. package/dist/app/repository/model/PackageVersionManifest.d.ts +10 -0
  202. package/dist/app/repository/model/PackageVersionManifest.js +46 -0
  203. package/dist/app/repository/model/Task.d.ts +18 -0
  204. package/dist/app/repository/model/Task.js +65 -0
  205. package/dist/app/repository/model/Token.d.ts +13 -0
  206. package/dist/app/repository/model/Token.js +55 -0
  207. package/dist/app/repository/model/User.d.ts +14 -0
  208. package/dist/app/repository/model/User.js +56 -0
  209. package/dist/app/repository/util/EntityProperty.d.ts +1 -0
  210. package/dist/app/repository/util/ModelConvertor.d.ts +7 -0
  211. package/dist/app/repository/util/ModelConvertor.js +35 -2
  212. package/dist/app/repository/util/ModelConvertorUtil.d.ts +8 -0
  213. package/dist/app/schedule/ChangesStreamWorker.d.ts +8 -0
  214. package/dist/app/schedule/ChangesStreamWorker.js +27 -0
  215. package/dist/app/schedule/CheckRecentlyUpdatedPackages.d.ts +8 -0
  216. package/dist/app/schedule/CheckRecentlyUpdatedPackages.js +66 -0
  217. package/dist/app/schedule/CleanTempDir.d.ts +8 -0
  218. package/dist/app/schedule/CleanTempDir.js +48 -0
  219. package/dist/app/schedule/CreateSyncBinaryTask.d.ts +8 -0
  220. package/dist/app/schedule/CreateSyncBinaryTask.js +34 -0
  221. package/dist/app/schedule/SavePackageVersionDownloadCounter.d.ts +8 -0
  222. package/dist/app/schedule/SavePackageVersionDownloadCounter.js +21 -0
  223. package/dist/app/schedule/SyncBinaryWorker.d.ts +8 -0
  224. package/dist/app/schedule/SyncBinaryWorker.js +30 -0
  225. package/dist/app/schedule/SyncPackageWorker.d.ts +8 -0
  226. package/dist/app/schedule/SyncPackageWorker.js +44 -0
  227. package/dist/app/schedule/TaskTimeoutHandler.d.ts +9 -0
  228. package/dist/app/schedule/TaskTimeoutHandler.js +27 -0
  229. package/dist/app/schedule/UpdateTotalData.d.ts +9 -0
  230. package/dist/app/schedule/UpdateTotalData.js +103 -0
  231. package/dist/app.d.ts +11 -0
  232. package/dist/app.js +22 -0
  233. package/dist/config/binaries.d.ts +38 -0
  234. package/dist/config/binaries.js +810 -0
  235. package/dist/config/config.default.d.ts +3 -0
  236. package/dist/config/config.default.js +128 -9
  237. package/dist/config/config.unittest.d.ts +3 -0
  238. package/dist/config/config.unittest.js +18 -0
  239. package/dist/config/plugin.d.ts +3 -0
  240. package/dist/config/plugin.js +19 -3
  241. package/package.json +76 -21
  242. package/dist/app/common/adapter/NFSClientAdapter.js +0 -43
  243. package/dist/app/port/controller/PackageController.js +0 -273
@@ -0,0 +1,186 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ChangesStreamService = void 0;
13
+ const os_1 = __importDefault(require("os"));
14
+ const promises_1 = require("timers/promises");
15
+ const tegg_1 = require("@eggjs/tegg");
16
+ const Task_1 = require("../../common/enum/Task");
17
+ const AbstractService_1 = require("../../common/AbstractService");
18
+ const Task_2 = require("../entity/Task");
19
+ let ChangesStreamService = class ChangesStreamService extends AbstractService_1.AbstractService {
20
+ async findExecuteTask() {
21
+ const targetName = 'GLOBAL_WORKER';
22
+ const existsTask = await this.taskRepository.findTaskByTargetName(targetName, Task_1.TaskType.ChangesStream);
23
+ if (!existsTask) {
24
+ await this.taskService.createTask(Task_2.Task.createChangesStream(targetName), false);
25
+ }
26
+ return await this.taskService.findExecuteTask(Task_1.TaskType.ChangesStream);
27
+ }
28
+ async executeTask(task) {
29
+ task.authorIp = os_1.default.hostname();
30
+ task.authorId = `pid_${process.pid}`;
31
+ 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,
35
+ try {
36
+ let since = task.data.since;
37
+ // get update_seq from ${changesStreamRegistry} on the first time
38
+ 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);
51
+ }
52
+ while (since) {
53
+ const { lastSince, taskCount } = await this.handleChanges(since, task);
54
+ this.logger.warn('[ChangesStreamService.executeTask:changes] since: %s => %s, %d new tasks, taskId: %s, updatedAt: %j', since, lastSince, taskCount, task.taskId, task.updatedAt);
55
+ since = lastSince;
56
+ if (taskCount === 0 && this.config.env === 'unittest') {
57
+ break;
58
+ }
59
+ await (0, promises_1.setTimeout)(this.config.cnpmcore.checkChangesStreamInterval);
60
+ }
61
+ }
62
+ catch (err) {
63
+ this.logger.error('[ChangesStreamService.executeTask:error] %s, exit now', err);
64
+ this.logger.error(err);
65
+ task.error = `${err}`;
66
+ await this.taskRepository.saveTask(task);
67
+ }
68
+ }
69
+ async handleChanges(since, task) {
70
+ var _a;
71
+ const changesStreamRegistry = this.config.cnpmcore.changesStreamRegistry;
72
+ const changesStreamRegistryMode = this.config.cnpmcore.changesStreamRegistryMode;
73
+ const db = `${changesStreamRegistry}/_changes?since=${since}`;
74
+ let lastSince = since;
75
+ let taskCount = 0;
76
+ if (changesStreamRegistryMode === 'streaming') {
77
+ const { res } = await this.httpclient.request(db, {
78
+ streaming: true,
79
+ timeout: 10000,
80
+ });
81
+ for await (const chunk of res) {
82
+ const text = chunk.toString();
83
+ // {"seq":7138879,"id":"@danydodson/prettier-config","changes":[{"rev":"5-a56057032714af25400d93517773a82a"}]}
84
+ // console.log('😄%j😄', text);
85
+ // 😄"{\"seq\":7138738,\"id\":\"wargerm\",\"changes\":[{\"rev\":\"59-f0a0d326db4c62ed480987a04ba3bf8f\"}]}"😄
86
+ // 😄",\n{\"seq\":7138739,\"id\":\"@laffery/webpack-starter-kit\",\"changes\":[{\"rev\":\"4-84a8dc470a07872f4cdf85cf8ef892a1\"}]},\n{\"seq\":7138741,\"id\":\"venom-bot\",\"changes\":[{\"rev\":\"103-908654b1ad4b0e0fd40b468d75730674\"}]}"😄
87
+ // 😄",\n{\"seq\":7138743,\"id\":\"react-native-template-pytorch-live\",\"changes\":[{\"rev\":\"40-871c686b200312303ba7c4f7f93e0362\"}]}"😄
88
+ // 😄",\n{\"seq\":7138745,\"id\":\"ccxt\",\"changes\":[{\"rev\":\"10205-25367c525a0a3bd61be3a72223ce212c\"}]}"😄
89
+ const matchs = text.matchAll(/"seq":(\d+),"id":"([^"]+)"/gm);
90
+ let count = 0;
91
+ let lastPackage = '';
92
+ for (const match of matchs) {
93
+ const seq = match[1];
94
+ const fullname = match[2];
95
+ if (seq && fullname) {
96
+ await this.packageSyncerService.createTask(fullname, {
97
+ authorIp: os_1.default.hostname(),
98
+ authorId: 'ChangesStreamService',
99
+ skipDependencies: true,
100
+ tips: `Sync cause by changes_stream(${changesStreamRegistry}) update seq: ${seq}`,
101
+ });
102
+ count++;
103
+ lastSince = seq;
104
+ lastPackage = fullname;
105
+ }
106
+ }
107
+ if (count > 0) {
108
+ taskCount += count;
109
+ task.data = {
110
+ ...task.data,
111
+ since: lastSince,
112
+ last_package: lastPackage,
113
+ last_package_created: new Date(),
114
+ task_count: (task.data.task_count || 0) + count,
115
+ };
116
+ await this.taskRepository.saveTask(task);
117
+ }
118
+ }
119
+ }
120
+ else {
121
+ // json mode
122
+ // {"results":[{"seq":1988653,"type":"PACKAGE_VERSION_ADDED","id":"dsr-package-mercy-magot-thorp-sward","changes":[{"version":"1.0.1"}]},
123
+ const { data } = await this.httpclient.request(db, {
124
+ followRedirect: true,
125
+ timeout: 30000,
126
+ dataType: 'json',
127
+ gzip: true,
128
+ });
129
+ if (((_a = data.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
130
+ let count = 0;
131
+ let lastPackage = '';
132
+ for (const change of data.results) {
133
+ const seq = change.seq;
134
+ const fullname = change.id;
135
+ if (seq && fullname) {
136
+ await this.packageSyncerService.createTask(fullname, {
137
+ authorIp: os_1.default.hostname(),
138
+ authorId: 'ChangesStreamService',
139
+ skipDependencies: true,
140
+ tips: `Sync cause by changes_stream(${changesStreamRegistry}) update seq: ${seq}, change: ${JSON.stringify(change)}`,
141
+ });
142
+ count++;
143
+ lastSince = seq;
144
+ lastPackage = fullname;
145
+ }
146
+ }
147
+ if (count > 0) {
148
+ taskCount += count;
149
+ task.data = {
150
+ ...task.data,
151
+ since: lastSince,
152
+ last_package: lastPackage,
153
+ last_package_created: new Date(),
154
+ task_count: (task.data.task_count || 0) + count,
155
+ };
156
+ await this.taskRepository.saveTask(task);
157
+ }
158
+ }
159
+ }
160
+ if (taskCount === 0) {
161
+ // keep update task, make sure updatedAt changed
162
+ task.updatedAt = new Date();
163
+ await this.taskRepository.saveTask(task);
164
+ }
165
+ return { lastSince, taskCount };
166
+ }
167
+ };
168
+ __decorate([
169
+ (0, tegg_1.Inject)()
170
+ ], ChangesStreamService.prototype, "taskRepository", void 0);
171
+ __decorate([
172
+ (0, tegg_1.Inject)()
173
+ ], ChangesStreamService.prototype, "httpclient", void 0);
174
+ __decorate([
175
+ (0, tegg_1.Inject)()
176
+ ], ChangesStreamService.prototype, "packageSyncerService", void 0);
177
+ __decorate([
178
+ (0, tegg_1.Inject)()
179
+ ], ChangesStreamService.prototype, "taskService", void 0);
180
+ ChangesStreamService = __decorate([
181
+ (0, tegg_1.ContextProto)({
182
+ accessLevel: tegg_1.AccessLevel.PUBLIC,
183
+ })
184
+ ], ChangesStreamService);
185
+ exports.ChangesStreamService = ChangesStreamService;
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL0NoYW5nZXNTdHJlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQiw4Q0FBNkM7QUFDN0Msc0NBSXFCO0FBSXJCLGlEQUFrRDtBQUNsRCxrRUFBK0Q7QUFFL0QseUNBQXNDO0FBT3RDLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQXFCLFNBQVEsaUNBQWU7SUFVaEQsS0FBSyxDQUFDLGVBQWU7UUFDMUIsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsZUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNoRjtRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBVTtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsTUFBTSxxQkFBcUIsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQztRQUNq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
@@ -0,0 +1,83 @@
1
+ /// <reference types="node" />
2
+ import { RequireAtLeastOne } from 'type-fest';
3
+ import { AbstractService } from '../../common/AbstractService';
4
+ import { Package } from '../entity/Package';
5
+ import { PackageVersion } from '../entity/PackageVersion';
6
+ import { PackageVersionBlock } from '../entity/PackageVersionBlock';
7
+ import { User } from '../entity/User';
8
+ import { BugVersion } from '../entity/BugVersion';
9
+ export interface PublishPackageCmd {
10
+ scope: string;
11
+ name: string;
12
+ version: string;
13
+ description: string;
14
+ packageJson: any;
15
+ readme: string;
16
+ dist: RequireAtLeastOne<{
17
+ content?: Uint8Array;
18
+ localFile?: string;
19
+ }, 'content' | 'localFile'>;
20
+ tag?: string;
21
+ isPrivate: boolean;
22
+ publishTime?: Date;
23
+ skipRefreshPackageManifests?: boolean;
24
+ }
25
+ export declare class PackageManagerService extends AbstractService {
26
+ private readonly eventBus;
27
+ private readonly packageRepository;
28
+ private readonly packageVersionBlockRepository;
29
+ private readonly packageVersionDownloadRepository;
30
+ private readonly bugVersionService;
31
+ private readonly bugVersionStore;
32
+ private readonly distRepository;
33
+ private static downloadCounters;
34
+ publish(cmd: PublishPackageCmd, publisher: User): Promise<PackageVersion>;
35
+ blockPackage(pkg: Package, reason: string): Promise<PackageVersionBlock>;
36
+ unblockPackage(pkg: Package): Promise<void>;
37
+ replacePackageMaintainers(pkg: Package, maintainers: User[]): Promise<void>;
38
+ savePackageMaintainers(pkg: Package, maintainers: User[]): Promise<void>;
39
+ removePackageMaintainer(pkg: Package, maintainer: User): Promise<void>;
40
+ refreshPackageMaintainersToDists(pkg: Package): Promise<void>;
41
+ refreshPackageDistTagsToDists(pkg: Package): Promise<void>;
42
+ listPackageFullManifests(scope: string, name: string, isSync?: boolean): Promise<{
43
+ etag: string;
44
+ data: any;
45
+ blockReason: string;
46
+ }>;
47
+ listPackageAbbreviatedManifests(scope: string, name: string, isSync?: boolean): Promise<{
48
+ etag: string;
49
+ data: any;
50
+ blockReason: string;
51
+ }>;
52
+ showPackageVersionManifest(scope: string, name: string, versionOrTag: string, isSync?: boolean): Promise<{
53
+ blockReason: string;
54
+ manifest: any;
55
+ pkgId: string | undefined;
56
+ }>;
57
+ downloadPackageVersionTar(packageVersion: PackageVersion): Promise<string | import("stream").Readable | undefined>;
58
+ plusPackageVersionCounter(fullname: string, version: string): void;
59
+ savePackageVersionCounters(): Promise<void>;
60
+ saveDeprecatedVersions(pkg: Package, deprecateds: {
61
+ version: string;
62
+ deprecated: string;
63
+ }[]): Promise<void>;
64
+ savePackageVersionManifest(pkgVersion: PackageVersion, mergeManifest: object, mergeAbbreviated: object): Promise<void>;
65
+ private _removePackageVersionAndDist;
66
+ unpublishPackage(pkg: Package): Promise<void>;
67
+ removePackageVersion(pkg: Package, pkgVersion: PackageVersion, skipRefreshPackageManifests?: boolean): Promise<void>;
68
+ savePackageTag(pkg: Package, tag: string, version: string, skipEvent?: boolean): Promise<boolean>;
69
+ removePackageTag(pkg: Package, tag: string): Promise<boolean>;
70
+ refreshPackageChangeVersionsToDists(pkg: Package, updateVersions?: string[], removeVersions?: string[]): Promise<void>;
71
+ getBugVersion(): Promise<BugVersion | undefined>;
72
+ private _listPackageDistTags;
73
+ private _refreshPackageManifestsToDists;
74
+ private _refreshPackageManifestRootAttributeOnlyToDists;
75
+ private _mergeLatestManifestFields;
76
+ private _setPackageDistTagsAndLatestInfos;
77
+ private _mergeManifestDist;
78
+ private _updatePackageManifestsToDists;
79
+ private _listPackageFullOrAbbreviatedManifests;
80
+ private _listPackageMaintainers;
81
+ private _listPackageFullManifests;
82
+ private _listPackageAbbreviatedManifests;
83
+ }