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
@@ -5,8 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ModelConvertor = void 0;
7
7
  const tegg_orm_decorator_1 = require("@eggjs/tegg-orm-decorator");
8
- const ModelConvertorUtil_1 = require("./ModelConvertorUtil");
9
8
  const lodash_1 = __importDefault(require("lodash"));
9
+ const ModelConvertorUtil_1 = require("./ModelConvertorUtil");
10
+ const CREATED_AT = 'createdAt';
11
+ const UPDATED_AT = 'updatedAt';
12
+ const ID = 'id';
10
13
  class ModelConvertor {
11
14
  static async convertEntityToModel(entity, ModelClazz, options) {
12
15
  const metadata = tegg_orm_decorator_1.ModelMetadataUtil.getControllerMetadata(ModelClazz);
@@ -17,12 +20,42 @@ class ModelConvertor {
17
20
  for (const attributeMeta of metadata.attributes) {
18
21
  const modelPropertyName = attributeMeta.propertyName;
19
22
  const entityPropertyName = ModelConvertorUtil_1.ModelConvertorUtil.getEntityPropertyName(ModelClazz, modelPropertyName);
23
+ if (entityPropertyName === UPDATED_AT || entityPropertyName === CREATED_AT || entityPropertyName === ID)
24
+ continue;
20
25
  const attributeValue = lodash_1.default.get(entity, entityPropertyName);
21
26
  attributes[modelPropertyName] = attributeValue;
22
27
  }
23
28
  const model = await ModelClazz.create(attributes, options);
29
+ // auto set entity id to model id
30
+ entity[ID] = model[ID];
31
+ // use model dates
32
+ entity[UPDATED_AT] = model[UPDATED_AT];
33
+ entity[CREATED_AT] = model[CREATED_AT];
24
34
  return model;
25
35
  }
36
+ // TODO: options is QueryOptions, should let leoric export it to use
37
+ // Find out which attributes changed and set `updatedAt` to now
38
+ static async saveEntityToModel(entity, model, options) {
39
+ const ModelClazz = model.constructor;
40
+ const metadata = tegg_orm_decorator_1.ModelMetadataUtil.getControllerMetadata(ModelClazz);
41
+ if (!metadata) {
42
+ throw new Error(`Model ${ModelClazz.name} has no metadata`);
43
+ }
44
+ for (const attributeMeta of metadata.attributes) {
45
+ const modelPropertyName = attributeMeta.propertyName;
46
+ const entityPropertyName = ModelConvertorUtil_1.ModelConvertorUtil.getEntityPropertyName(ModelClazz, modelPropertyName);
47
+ if (entityPropertyName === CREATED_AT)
48
+ continue;
49
+ const attributeValue = lodash_1.default.get(entity, entityPropertyName);
50
+ model[modelPropertyName] = attributeValue;
51
+ }
52
+ if (!model.changed()) {
53
+ return false;
54
+ }
55
+ await model.save(options);
56
+ entity[UPDATED_AT] = model[UPDATED_AT];
57
+ return true;
58
+ }
26
59
  static convertModelToEntity(bone, entityClazz, data) {
27
60
  data = data || {};
28
61
  const ModelClazz = bone.constructor;
@@ -41,4 +74,4 @@ class ModelConvertor {
41
74
  }
42
75
  }
43
76
  exports.ModelConvertor = ModelConvertor;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxDb252ZXJ0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS91dGlsL01vZGVsQ29udmVydG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtFQUE4RDtBQUU5RCw2REFBMEQ7QUFFMUQsb0RBQXVCO0FBRXZCLE1BQWEsY0FBYztJQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFpQixNQUFjLEVBQUUsVUFBZ0MsRUFBRSxPQUFRO1FBQzFHLE1BQU0sUUFBUSxHQUFHLHNDQUFpQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsVUFBVSxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUM3RDtRQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLE1BQU0sYUFBYSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ3JELE1BQU0sa0JBQWtCLEdBQUcsdUNBQWtCLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDbkcsTUFBTSxjQUFjLEdBQUcsZ0JBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDekQsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsY0FBYyxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTyxVQUFxQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkYsT0FBTyxLQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBSSxJQUFVLEVBQUUsV0FBaUMsRUFBRSxJQUFhO1FBQ3pGLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsTUFBTSxRQUFRLEdBQUcsc0NBQWlCLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxVQUFVLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsS0FBSyxNQUFNLGFBQWEsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQy9DLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztZQUNyRCxNQUFNLGtCQUFrQixHQUFHLHVDQUFrQixDQUFDLHFCQUFxQixDQUFDLFVBQStCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN4SCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hELGdCQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNqRDtRQUNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQztRQUN2RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQWpDRCx3Q0FpQ0MifQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxDb252ZXJ0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS91dGlsL01vZGVsQ29udmVydG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtFQUE4RDtBQUc5RCxvREFBdUI7QUFDdkIsNkRBQTBEO0FBRTFELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUMvQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRWhCLE1BQWEsY0FBYztJQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFpQixNQUFjLEVBQUUsVUFBZ0MsRUFBRSxPQUFRO1FBQzFHLE1BQU0sUUFBUSxHQUFHLHNDQUFpQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsVUFBVSxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUM3RDtRQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLE1BQU0sYUFBYSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ3JELE1BQU0sa0JBQWtCLEdBQUcsdUNBQWtCLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDbkcsSUFBSSxrQkFBa0IsS0FBSyxVQUFVLElBQUksa0JBQWtCLEtBQUssVUFBVSxJQUFJLGtCQUFrQixLQUFLLEVBQUU7Z0JBQUUsU0FBUztZQUNsSCxNQUFNLGNBQWMsR0FBRyxnQkFBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUN6RCxVQUFVLENBQUMsaUJBQWlCLENBQUMsR0FBRyxjQUFjLENB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
@@ -0,0 +1,8 @@
1
+ import { EggProtoImplClass } from '@eggjs/tegg';
2
+ export declare class ModelConvertorUtil {
3
+ static addEntityPropertyName(entityProperty: string, clazz: EggProtoImplClass, modelProperty: string): void;
4
+ /**
5
+ * If has no entity property info, use modelProperty as default value
6
+ */
7
+ static getEntityPropertyName(clazz: EggProtoImplClass, modelProperty: string): string;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { Subscription } from 'egg';
2
+ export default class ChangesStreamWorker extends Subscription {
3
+ static get schedule(): {
4
+ interval: number;
5
+ type: string;
6
+ };
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const egg_1 = require("egg");
4
+ const cnpmcoreCore = 'cnpmcoreCore';
5
+ class ChangesStreamWorker extends egg_1.Subscription {
6
+ static get schedule() {
7
+ return {
8
+ interval: 60000,
9
+ type: 'worker',
10
+ };
11
+ }
12
+ async subscribe() {
13
+ const { ctx, app } = this;
14
+ if (app.config.cnpmcore.syncMode !== 'all' || !app.config.cnpmcore.enableChangesStream)
15
+ return;
16
+ await ctx.beginModuleScope(async () => {
17
+ const changesStreamService = ctx.module[cnpmcoreCore].changesStreamService;
18
+ const task = await changesStreamService.findExecuteTask();
19
+ if (!task)
20
+ return;
21
+ ctx.logger.warn('[ChangesStreamWorker:start] taskId: %s', task.taskId);
22
+ await changesStreamService.executeTask(task);
23
+ });
24
+ }
25
+ }
26
+ exports.default = ChangesStreamWorker;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9zY2hlZHVsZS9DaGFuZ2VzU3RyZWFtV29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQW1DO0FBR25DLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztBQUVwQyxNQUFxQixtQkFBb0IsU0FBUSxrQkFBWTtJQUMzRCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPO1lBQ0wsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7WUFBRSxPQUFPO1FBRS9GLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE1BQU0sb0JBQW9CLEdBQXlCLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsb0JBQW9CLENBQUM7WUFDakcsTUFBTSxJQUFJLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPO1lBQ2xCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RSxNQUFNLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXBCRCxzQ0FvQkMifQ==
@@ -0,0 +1,8 @@
1
+ import { Subscription } from 'egg';
2
+ export default class CheckRecentlyUpdatedPackages extends Subscription {
3
+ static get schedule(): {
4
+ interval: number;
5
+ type: string;
6
+ };
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const egg_1 = require("egg");
4
+ const cnpmcoreCore = 'cnpmcoreCore';
5
+ // https://github.com/cnpm/cnpmcore/issues/9
6
+ class CheckRecentlyUpdatedPackages extends egg_1.Subscription {
7
+ static get schedule() {
8
+ return {
9
+ // every 5 mins
10
+ interval: 60000 * 5,
11
+ type: 'worker',
12
+ };
13
+ }
14
+ async subscribe() {
15
+ const { ctx, app } = this;
16
+ if (app.config.cnpmcore.syncMode !== 'all' || !app.config.cnpmcore.enableCheckRecentlyUpdated)
17
+ return;
18
+ await ctx.beginModuleScope(async () => {
19
+ const packageSyncerService = ctx.module[cnpmcoreCore].packageSyncerService;
20
+ const pageSize = 36;
21
+ const pageCount = app.config.env === 'unittest' ? 2 : 5;
22
+ for (let pageIndex = 0; pageIndex < pageCount; pageIndex++) {
23
+ const offset = pageSize * pageIndex;
24
+ const pageUrl = `https://www.npmjs.com/browse/updated?offset=${offset}`;
25
+ let html = '';
26
+ try {
27
+ const { status, data } = await ctx.httpclient.request(pageUrl, {
28
+ followRedirect: true,
29
+ timeout: 10000,
30
+ });
31
+ ctx.logger.info('[CheckRecentlyUpdatedPackages.subscribe][%s] request %s status: %s, data size: %s', pageIndex, pageUrl, status, data.length);
32
+ if (status === 200) {
33
+ html = data.toString();
34
+ }
35
+ }
36
+ catch (err) {
37
+ ctx.logger.info('[CheckRecentlyUpdatedPackages.subscribe:error][%s] request %s error: %s', pageIndex, pageUrl, err);
38
+ ctx.logger.error(err);
39
+ continue;
40
+ }
41
+ const matchs = /window\.__context__ = ([^<]+?)<\/script>/.exec(html);
42
+ if (!matchs)
43
+ continue;
44
+ try {
45
+ const data = JSON.parse(matchs[1]);
46
+ const packages = data.context.packages || [];
47
+ if (Array.isArray(packages)) {
48
+ ctx.logger.info('[CheckRecentlyUpdatedPackages.subscribe][%s] parse %d packages on %s', pageIndex, packages.length, pageUrl);
49
+ for (const pkg of packages) {
50
+ const task = await packageSyncerService.createTask(pkg.name, {
51
+ tips: `Sync cause by recently updated packages ${pageUrl}`,
52
+ });
53
+ ctx.logger.info('[CheckRecentlyUpdatedPackages.subscribe:createTask][%s] taskId: %s, targetName: %s', pageIndex, task.taskId, task.targetName);
54
+ }
55
+ }
56
+ }
57
+ catch (err) {
58
+ ctx.logger.info('[CheckRecentlyUpdatedPackages.subscribe:error][%s] parse %s context json error: %s', pageIndex, pageUrl, err);
59
+ ctx.logger.error(err);
60
+ }
61
+ }
62
+ });
63
+ }
64
+ }
65
+ exports.default = CheckRecentlyUpdatedPackages;
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tSZWNlbnRseVVwZGF0ZWRQYWNrYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9zY2hlZHVsZS9DaGVja1JlY2VudGx5VXBkYXRlZFBhY2thZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQW1DO0FBR25DLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztBQUVwQyw0Q0FBNEM7QUFDNUMsTUFBcUIsNEJBQTZCLFNBQVEsa0JBQVk7SUFDcEUsTUFBTSxLQUFLLFFBQVE7UUFDakIsT0FBTztZQUNMLGVBQWU7WUFDZixRQUFRLEVBQUUsS0FBSyxHQUFHLENBQUM7WUFDbkIsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCO1lBQUUsT0FBTztRQUV0RyxNQUFNLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLG9CQUFvQixHQUF5QixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQ2pHLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNwQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELEtBQUssSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUU7Z0JBQzFELE1BQU0sTUFBTSxHQUFHLFFBQVEsR0FBRyxTQUFTLENBQUM7Z0JBQ3BDLE1BQU0sT0FBTyxHQUFHLCtDQUErQyxNQUFNLEVBQUUsQ0FBQztnQkFDeEUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNkLElBQUk7b0JBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTt3QkFDN0QsY0FBYyxFQUFFLElBQUk7d0JBQ3BCLE9BQU8sRUFBRSxLQUFLO3FCQUNmLENBQUMsQ0FBQztvQkFDSCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtRkFBbUYsRUFDakcsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMzQyxJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUU7d0JBQ2xCLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQ3hCO2lCQUNGO2dCQUFDLE9BQU8sR0FBRyxFQUFFO29CQUNaLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHlFQUF5RSxFQUN2RixTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUMzQixHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEIsU0FBUztpQkFDVjtnQkFFRCxNQUFNLE1BQU0sR0FBRywwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxNQUFNO29CQUFFLFNBQVM7Z0JBRXRCLElBQUk7b0JBQ0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO29CQUM3QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBQzNCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNFQUFzRSxFQUNwRixTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUU7NEJBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0NBQzNELElBQUksRUFBRSwyQ0FBMkMsT0FBTyxFQUFFOzZCQUMzRCxDQUFDLENBQUM7NEJBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0ZBQW9GLEVBQ2xHLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzt5QkFDNUM7cUJBQ0Y7aUJBQ0Y7Z0JBQUMsT0FBTyxHQUFHLEVBQUU7b0JBQ1osR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0ZBQW9GLEVBQ2xHLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzNCLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN2QjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEvREQsK0NBK0RDIn0=
@@ -0,0 +1,8 @@
1
+ import { Subscription } from 'egg';
2
+ export default class CleanTempDir extends Subscription {
3
+ static get schedule(): {
4
+ cron: string;
5
+ type: string;
6
+ };
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const egg_1 = require("egg");
7
+ const promises_1 = require("fs/promises");
8
+ const path_1 = __importDefault(require("path"));
9
+ const dayjs_1 = __importDefault(require("../common/dayjs"));
10
+ class CleanTempDir extends egg_1.Subscription {
11
+ static get schedule() {
12
+ return {
13
+ cron: '0 2 * * *',
14
+ type: 'worker',
15
+ };
16
+ }
17
+ async subscribe() {
18
+ const { ctx, app } = this;
19
+ const downloadDir = path_1.default.join(app.config.dataDir, 'downloads');
20
+ const oldDirs = [
21
+ path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(1, 'day').format('YYYY/MM/DD')),
22
+ path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(2, 'day').format('YYYY/MM/DD')),
23
+ path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(3, 'day').format('YYYY/MM/DD')),
24
+ path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(4, 'day').format('YYYY/MM/DD')),
25
+ path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(1, 'month').format('YYYY/MM')),
26
+ path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(2, 'month').format('YYYY/MM')),
27
+ path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(1, 'year').format('YYYY')),
28
+ ];
29
+ for (const dir of oldDirs) {
30
+ let exists = false;
31
+ try {
32
+ await (0, promises_1.access)(dir);
33
+ exists = true;
34
+ }
35
+ catch (err) {
36
+ // console.log(err);
37
+ exists = false;
38
+ }
39
+ ctx.logger.info('[CleanTempDir.subscribe] dir "%s" exists: %s', dir, exists);
40
+ if (exists) {
41
+ await (0, promises_1.rm)(dir, { recursive: true, force: true });
42
+ ctx.logger.info('[CleanTempDir.subscribe] remove dir "%s"', dir);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ exports.default = CleanTempDir;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xlYW5UZW1wRGlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBwL3NjaGVkdWxlL0NsZWFuVGVtcERpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUFtQztBQUNuQywwQ0FBeUM7QUFDekMsZ0RBQXdCO0FBQ3hCLDREQUFvQztBQUVwQyxNQUFxQixZQUFhLFNBQVEsa0JBQVk7SUFDcEQsTUFBTSxLQUFLLFFBQVE7UUFDakIsT0FBTztZQUNMLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzFCLE1BQU0sV0FBVyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQUc7WUFDZCxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFBLGVBQUssR0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZFLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUEsZUFBSyxHQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkUsY0FBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBQSxlQUFLLEdBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN2RSxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFBLGVBQUssR0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZFLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUEsZUFBSyxHQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEUsY0FBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBQSxlQUFLLEdBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RSxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFBLGVBQUssR0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25FLENBQUM7UUFDRixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSTtnQkFDRixNQUFNLElBQUEsaUJBQU0sRUFBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNmO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osb0JBQW9CO2dCQUNwQixNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQ2hCO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdFLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sSUFBQSxhQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDaEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMENBQTBDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDbEU7U0FDRjtJQUNILENBQUM7Q0FDRjtBQXBDRCwrQkFvQ0MifQ==
@@ -0,0 +1,8 @@
1
+ import { Subscription } from 'egg';
2
+ export default class CreateSyncBinaryTask extends Subscription {
3
+ static get schedule(): {
4
+ interval: number;
5
+ type: string;
6
+ };
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const egg_1 = require("egg");
7
+ const binaries_1 = __importDefault(require("../../config/binaries"));
8
+ const cnpmcoreCore = 'cnpmcoreCore';
9
+ class CreateSyncBinaryTask extends egg_1.Subscription {
10
+ static get schedule() {
11
+ return {
12
+ // every 5 mins
13
+ interval: 60000 * 5,
14
+ type: 'worker',
15
+ };
16
+ }
17
+ async subscribe() {
18
+ const { ctx, app } = this;
19
+ if (!app.config.cnpmcore.enableSyncBinary)
20
+ return;
21
+ await ctx.beginModuleScope(async () => {
22
+ const binarySyncerService = ctx.module[cnpmcoreCore].binarySyncerService;
23
+ for (const binary of Object.values(binaries_1.default)) {
24
+ if (app.config.env === 'unittest' && binary.category !== 'node')
25
+ continue;
26
+ if (binary.disable)
27
+ continue;
28
+ await binarySyncerService.createTask(binary.category);
29
+ }
30
+ });
31
+ }
32
+ }
33
+ exports.default = CreateSyncBinaryTask;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlU3luY0JpbmFyeVRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcHAvc2NoZWR1bGUvQ3JlYXRlU3luY0JpbmFyeVRhc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBbUM7QUFFbkMscUVBQTZDO0FBRTdDLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztBQUVwQyxNQUFxQixvQkFBcUIsU0FBUSxrQkFBWTtJQUM1RCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPO1lBQ0wsZUFBZTtZQUNmLFFBQVEsRUFBRSxLQUFLLEdBQUcsQ0FBQztZQUNuQixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVsRCxNQUFNLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLG1CQUFtQixHQUF3QixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQzlGLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBUSxDQUFDLEVBQUU7Z0JBQzVDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssVUFBVSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssTUFBTTtvQkFBRSxTQUFTO2dCQUMxRSxJQUFJLE1BQU0sQ0FBQyxPQUFPO29CQUFFLFNBQVM7Z0JBQzdCLE1BQU0sbUJBQW1CLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN2RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdEJELHVDQXNCQyJ9
@@ -0,0 +1,8 @@
1
+ import { Subscription } from 'egg';
2
+ export default class SavePackageVersionDownloadCounter extends Subscription {
3
+ static get schedule(): {
4
+ interval: number;
5
+ type: string;
6
+ };
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const egg_1 = require("egg");
4
+ const cnpmcoreCore = 'cnpmcoreCore';
5
+ class SavePackageVersionDownloadCounter extends egg_1.Subscription {
6
+ static get schedule() {
7
+ return {
8
+ interval: 1000,
9
+ type: 'all',
10
+ };
11
+ }
12
+ async subscribe() {
13
+ const { ctx } = this;
14
+ await ctx.beginModuleScope(async () => {
15
+ const packageManagerService = ctx.module[cnpmcoreCore].packageManagerService;
16
+ await packageManagerService.savePackageVersionCounters();
17
+ });
18
+ }
19
+ }
20
+ exports.default = SavePackageVersionDownloadCounter;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F2ZVBhY2thZ2VWZXJzaW9uRG93bmxvYWRDb3VudGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBwL3NjaGVkdWxlL1NhdmVQYWNrYWdlVmVyc2lvbkRvd25sb2FkQ291bnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZCQUFtQztBQUVuQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUM7QUFFcEMsTUFBcUIsaUNBQWtDLFNBQVEsa0JBQVk7SUFDekUsTUFBTSxLQUFLLFFBQVE7UUFDakIsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJO1lBQ2QsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNyQixNQUFNLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLHFCQUFxQixHQUEwQixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1lBQ3BHLE1BQU0scUJBQXFCLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWZELG9EQWVDIn0=
@@ -0,0 +1,8 @@
1
+ import { Subscription } from 'egg';
2
+ export default class SyncBinaryWorker extends Subscription {
3
+ static get schedule(): {
4
+ interval: number;
5
+ type: string;
6
+ };
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const egg_1 = require("egg");
4
+ const cnpmcoreCore = 'cnpmcoreCore';
5
+ class SyncBinaryWorker extends egg_1.Subscription {
6
+ static get schedule() {
7
+ return {
8
+ interval: 10000,
9
+ type: 'all',
10
+ };
11
+ }
12
+ async subscribe() {
13
+ const { ctx, app } = this;
14
+ if (!app.config.cnpmcore.enableSyncBinary)
15
+ return;
16
+ await ctx.beginModuleScope(async () => {
17
+ const binarySyncerService = ctx.module[cnpmcoreCore].binarySyncerService;
18
+ const task = await binarySyncerService.findExecuteTask();
19
+ if (!task)
20
+ return;
21
+ const startTime = Date.now();
22
+ ctx.logger.info('[SyncBinaryWorker:executeTask:start] taskId: %s, targetName: %s, attempts: %s, params: %j, updatedAt: %s, delay %sms', task.taskId, task.targetName, task.attempts, task.data, task.updatedAt, startTime - task.updatedAt.getTime());
23
+ await binarySyncerService.executeTask(task);
24
+ const use = Date.now() - startTime;
25
+ ctx.logger.info('[SyncBinaryWorker:executeTask:success] taskId: %s, targetName: %s, use %sms', task.taskId, task.targetName, use);
26
+ });
27
+ }
28
+ }
29
+ exports.default = SyncBinaryWorker;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY0JpbmFyeVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9zY2hlZHVsZS9TeW5jQmluYXJ5V29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQW1DO0FBR25DLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztBQUVwQyxNQUFxQixnQkFBaUIsU0FBUSxrQkFBWTtJQUN4RCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPO1lBQ0wsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsS0FBSztTQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVsRCxNQUFNLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLG1CQUFtQixHQUF3QixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQzlGLE1BQU0sSUFBSSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTztZQUVsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDN0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0hBQXNILEVBQ3BJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFDdEUsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4QyxNQUFNLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZFQUE2RSxFQUMzRixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzQkQsbUNBMkJDIn0=
@@ -0,0 +1,8 @@
1
+ import { Subscription } from 'egg';
2
+ export default class SyncPackageWorker extends Subscription {
3
+ static get schedule(): {
4
+ interval: number;
5
+ type: string;
6
+ };
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const egg_1 = require("egg");
4
+ const cnpmcoreCore = 'cnpmcoreCore';
5
+ let executingCount = 0;
6
+ class SyncPackageWorker extends egg_1.Subscription {
7
+ static get schedule() {
8
+ return {
9
+ interval: 1000,
10
+ type: 'all',
11
+ };
12
+ }
13
+ async subscribe() {
14
+ const { ctx, app } = this;
15
+ if (app.config.cnpmcore.syncMode !== 'all')
16
+ return;
17
+ if (executingCount >= app.config.cnpmcore.syncPackageWorkerMaxConcurrentTasks)
18
+ return;
19
+ await ctx.beginModuleScope(async () => {
20
+ const packageSyncerService = ctx.module[cnpmcoreCore].packageSyncerService;
21
+ executingCount++;
22
+ try {
23
+ let task = await packageSyncerService.findExecuteTask();
24
+ while (task) {
25
+ const startTime = Date.now();
26
+ ctx.logger.info('[SyncPackageWorker:subscribe:executeTask:start][%s] taskId: %s, targetName: %s, attempts: %s, params: %j, updatedAt: %s, delay %sms', executingCount, task.taskId, task.targetName, task.attempts, task.data, task.updatedAt, startTime - task.updatedAt.getTime());
27
+ await packageSyncerService.executeTask(task);
28
+ const use = Date.now() - startTime;
29
+ ctx.logger.info('[SyncPackageWorker:subscribe:executeTask:success][%s] taskId: %s, targetName: %s, use %sms', executingCount, task.taskId, task.targetName, use);
30
+ // try next task
31
+ task = await packageSyncerService.findExecuteTask();
32
+ }
33
+ }
34
+ catch (err) {
35
+ ctx.logger.error('[SyncPackageWorker:subscribe:executeTask:error][%s] %s', executingCount, err);
36
+ }
37
+ finally {
38
+ executingCount--;
39
+ }
40
+ });
41
+ }
42
+ }
43
+ exports.default = SyncPackageWorker;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY1BhY2thZ2VXb3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcHAvc2NoZWR1bGUvU3luY1BhY2thZ2VXb3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBbUM7QUFHbkMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO0FBRXBDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFxQixpQkFBa0IsU0FBUSxrQkFBWTtJQUN6RCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsS0FBSztTQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxLQUFLO1lBQUUsT0FBTztRQUNuRCxJQUFJLGNBQWMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQ0FBbUM7WUFBRSxPQUFPO1FBRXRGLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE1BQU0sb0JBQW9CLEdBQXlCLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsb0JBQW9CLENBQUM7WUFDakcsY0FBYyxFQUFFLENBQUM7WUFDakIsSUFBSTtnQkFDRixJQUFJLElBQUksR0FBRyxNQUFNLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4RCxPQUFPLElBQUksRUFBRTtvQkFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFJQUFxSSxFQUNuSixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUN0RixTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUN4QyxNQUFNLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztvQkFDbkMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEZBQTRGLEVBQzFHLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3JELGdCQUFnQjtvQkFDaEIsSUFBSSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7aUJBQ3JEO2FBQ0Y7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3REFBd0QsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDakc7b0JBQVM7Z0JBQ1IsY0FBYyxFQUFFLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXJDRCxvQ0FxQ0MifQ==
@@ -0,0 +1,9 @@
1
+ import { Subscription } from 'egg';
2
+ export default class TaskTimeoutHandler extends Subscription {
3
+ static get schedule(): {
4
+ immediate: boolean;
5
+ interval: number;
6
+ type: string;
7
+ };
8
+ subscribe(): Promise<void>;
9
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const egg_1 = require("egg");
4
+ const CacheAdapter_1 = require("../common/adapter/CacheAdapter");
5
+ const cnpmcoreCore = 'cnpmcoreCore';
6
+ class TaskTimeoutHandler extends egg_1.Subscription {
7
+ static get schedule() {
8
+ return {
9
+ immediate: process.env.NODE_ENV !== 'test',
10
+ interval: 60000,
11
+ type: 'worker',
12
+ };
13
+ }
14
+ async subscribe() {
15
+ const { ctx } = this;
16
+ await ctx.beginModuleScope(async () => {
17
+ const taskService = ctx.module[cnpmcoreCore].taskService;
18
+ const cache = await ctx.getEggObject(CacheAdapter_1.CacheAdapter);
19
+ await cache.usingLock('TaskTimeoutHandler', 60, async () => {
20
+ const result = await taskService.retryExecuteTimeoutTasks();
21
+ ctx.logger.info('[TaskTimeoutHandler:subscribe] retry execute timeout tasks: %j', result);
22
+ });
23
+ });
24
+ }
25
+ }
26
+ exports.default = TaskTimeoutHandler;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFza1RpbWVvdXRIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBwL3NjaGVkdWxlL1Rhc2tUaW1lb3V0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUFtQztBQUVuQyxpRUFBOEQ7QUFFOUQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO0FBRXBDLE1BQXFCLGtCQUFtQixTQUFRLGtCQUFZO0lBQzFELE1BQU0sS0FBSyxRQUFRO1FBQ2pCLE9BQU87WUFDTCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtZQUMxQyxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDckIsTUFBTSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDcEMsTUFBTSxXQUFXLEdBQWdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ3RFLE1BQU0sS0FBSyxHQUFpQixNQUFNLEdBQUcsQ0FBQyxZQUFZLENBQUMsMkJBQVksQ0FBQyxDQUFDO1lBRWpFLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQzVELEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdFQUFnRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFyQkQscUNBcUJDIn0=
@@ -0,0 +1,9 @@
1
+ import { Subscription } from 'egg';
2
+ export default class UpdateTotalData extends Subscription {
3
+ static get schedule(): {
4
+ immediate: boolean;
5
+ interval: number;
6
+ type: string;
7
+ };
8
+ subscribe(): Promise<void>;
9
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const egg_1 = require("egg");
7
+ const Task_1 = require("../common/enum/Task");
8
+ const dayjs_1 = __importDefault(require("../common/dayjs"));
9
+ const cnpmcoreRepository = 'cnpmcoreRepository';
10
+ const cnpmcoreCore = 'cnpmcoreCore';
11
+ class UpdateTotalData extends egg_1.Subscription {
12
+ static get schedule() {
13
+ return {
14
+ // immediate = false on unittest env
15
+ immediate: process.env.NODE_ENV !== 'test',
16
+ interval: 60000,
17
+ type: 'worker',
18
+ };
19
+ }
20
+ async subscribe() {
21
+ const { ctx } = this;
22
+ await ctx.beginModuleScope(async () => {
23
+ const packageVersionDownloadRepository = ctx.module[cnpmcoreRepository].packageVersionDownloadRepository;
24
+ const packageRepository = ctx.module[cnpmcoreRepository].packageRepository;
25
+ const taskRepository = ctx.module[cnpmcoreRepository].taskRepository;
26
+ const changeRepository = ctx.module[cnpmcoreRepository].changeRepository;
27
+ const cacheService = ctx.module[cnpmcoreCore].cacheService;
28
+ const changesStreamTask = await taskRepository.findTaskByTargetName('GLOBAL_WORKER', Task_1.TaskType.ChangesStream);
29
+ const packageTotal = await packageRepository.queryTotal();
30
+ const download = {
31
+ today: 0,
32
+ yesterday: 0,
33
+ samedayLastweek: 0,
34
+ thisweek: 0,
35
+ thismonth: 0,
36
+ thisyear: 0,
37
+ lastweek: 0,
38
+ lastmonth: 0,
39
+ lastyear: 0,
40
+ };
41
+ const today = (0, dayjs_1.default)();
42
+ const lastYearStartDay = today.subtract(1, 'year').startOf('year');
43
+ const rows = await packageVersionDownloadRepository.query('total', lastYearStartDay.toDate(), today.toDate());
44
+ if (rows.length > 0) {
45
+ const todayInt = Number(today.format('YYYYMMDD'));
46
+ const yesterdayInt = Number(today.subtract(1, 'day').format('YYYYMMDD'));
47
+ const samedayLastweekInt = Number(today.subtract(1, 'week').startOf('week').format('YYYYMMDD'));
48
+ const thisWeekStartDayInt = Number(today.startOf('week').format('YYYYMMDD'));
49
+ const thisWeekEndDayInt = Number(today.endOf('week').format('YYYYMMDD'));
50
+ const thisMonthStartDayInt = Number(today.startOf('month').format('YYYYMMDD'));
51
+ const thisMonthEndDayInt = Number(today.endOf('month').format('YYYYMMDD'));
52
+ const thisYearStartDayInt = Number(today.startOf('year').format('YYYYMMDD'));
53
+ const thisYearEndDayInt = Number(today.endOf('year').format('YYYYMMDD'));
54
+ const lastWeekStartDayInt = Number(today.subtract(1, 'week').startOf('week').format('YYYYMMDD'));
55
+ const lastWeekEndDayInt = Number(today.subtract(1, 'week').endOf('week').format('YYYYMMDD'));
56
+ const lastMonthStartDayInt = Number(today.subtract(1, 'month').startOf('month').format('YYYYMMDD'));
57
+ const lastMonthEndDayInt = Number(today.subtract(1, 'month').endOf('month').format('YYYYMMDD'));
58
+ const lastYearStartDayInt = Number(today.subtract(1, 'year').startOf('year').format('YYYYMMDD'));
59
+ const lastYearEndDayInt = Number(today.subtract(1, 'year').endOf('year').format('YYYYMMDD'));
60
+ for (const row of rows) {
61
+ for (let i = 1; i <= 31; i++) {
62
+ const day = String(i).padStart(2, '0');
63
+ const field = `d${day}`;
64
+ const counter = row[field];
65
+ if (!counter)
66
+ continue;
67
+ const dayInt = row.yearMonth * 100 + i;
68
+ if (dayInt === todayInt)
69
+ download.today += counter;
70
+ if (dayInt === yesterdayInt)
71
+ download.yesterday += counter;
72
+ if (dayInt === samedayLastweekInt)
73
+ download.samedayLastweek += counter;
74
+ if (dayInt >= thisWeekStartDayInt && dayInt <= thisWeekEndDayInt)
75
+ download.thisweek += counter;
76
+ if (dayInt >= thisMonthStartDayInt && dayInt <= thisMonthEndDayInt)
77
+ download.thismonth += counter;
78
+ if (dayInt >= thisYearStartDayInt && dayInt <= thisYearEndDayInt)
79
+ download.thisyear += counter;
80
+ if (dayInt >= lastWeekStartDayInt && dayInt <= lastWeekEndDayInt)
81
+ download.lastweek += counter;
82
+ if (dayInt >= lastMonthStartDayInt && dayInt <= lastMonthEndDayInt)
83
+ download.lastmonth += counter;
84
+ if (dayInt >= lastYearStartDayInt && dayInt <= lastYearEndDayInt)
85
+ download.lastyear += counter;
86
+ }
87
+ }
88
+ }
89
+ const lastChange = await changeRepository.getLastChange();
90
+ const totalData = {
91
+ ...packageTotal,
92
+ download,
93
+ changesStream: changesStreamTask && changesStreamTask.data || {},
94
+ lastChangeId: lastChange && lastChange.id || 0,
95
+ cacheTime: new Date().toISOString(),
96
+ };
97
+ await cacheService.saveTotalData(totalData);
98
+ ctx.logger.info('[UpdateTotalData.subscribe] total data: %j', totalData);
99
+ });
100
+ }
101
+ }
102
+ exports.default = UpdateTotalData;
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlVG90YWxEYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBwL3NjaGVkdWxlL1VwZGF0ZVRvdGFsRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUFtQztBQU1uQyw4Q0FBK0M7QUFDL0MsNERBQW9DO0FBRXBDLE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLENBQUM7QUFDaEQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO0FBRXBDLE1BQXFCLGVBQWdCLFNBQVEsa0JBQVk7SUFDdkQsTUFBTSxLQUFLLFFBQVE7UUFDakIsT0FBTztZQUNMLG9DQUFvQztZQUNwQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtZQUMxQyxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDckIsTUFBTSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDcEMsTUFBTSxnQ0FBZ0MsR0FDcEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1lBQ2xFLE1BQU0saUJBQWlCLEdBQXNCLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUM5RixNQUFNLGNBQWMsR0FBbUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUNyRixNQUFNLGdCQUFnQixHQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsZ0JBQWdCLENBQUM7WUFDM0YsTUFBTSxZQUFZLEdBQWlCLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDO1lBRXpFLE1B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
package/dist/app.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { Application } from 'egg';
2
+ declare module 'egg' {
3
+ interface Application {
4
+ binaryHTML: string;
5
+ }
6
+ }
7
+ export default class CnpmcoreAppHook {
8
+ private readonly app;
9
+ constructor(app: Application);
10
+ didReady(): Promise<void>;
11
+ }