cnpmcore 4.0.2 → 4.1.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.
- package/README.md +5 -3
- package/dist/app/common/AbstractService.js +5 -9
- package/dist/app/common/CryptoUtil.js +9 -17
- package/dist/app/common/ErrorUtil.js +2 -5
- package/dist/app/common/FileUtil.js +22 -31
- package/dist/app/common/LogUtil.js +2 -5
- package/dist/app/common/PackageUtil.d.ts +1 -1
- package/dist/app/common/PackageUtil.js +27 -75
- package/dist/app/common/SyncUtil.js +2 -5
- package/dist/app/common/UserUtil.js +19 -64
- package/dist/app/common/adapter/BugVersionStore.d.ts +1 -1
- package/dist/app/common/adapter/BugVersionStore.js +6 -9
- package/dist/app/common/adapter/CacheAdapter.js +7 -10
- package/dist/app/common/adapter/NFSAdapter.js +18 -21
- package/dist/app/common/adapter/NPMRegistry.d.ts +1 -1
- package/dist/app/common/adapter/NPMRegistry.js +13 -16
- package/dist/app/common/adapter/binary/AbstractBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/AbstractBinary.js +7 -11
- package/dist/app/common/adapter/binary/ApiBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/ApiBinary.js +10 -13
- package/dist/app/common/adapter/binary/BucketBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/BucketBinary.js +14 -20
- package/dist/app/common/adapter/binary/ChromeForTestingBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/ChromeForTestingBinary.js +11 -14
- package/dist/app/common/adapter/binary/CypressBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/CypressBinary.js +9 -12
- package/dist/app/common/adapter/binary/EdgedriverBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/EdgedriverBinary.js +12 -18
- package/dist/app/common/adapter/binary/ElectronBinary.d.ts +3 -3
- package/dist/app/common/adapter/binary/ElectronBinary.js +13 -19
- package/dist/app/common/adapter/binary/GithubBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/GithubBinary.js +11 -17
- package/dist/app/common/adapter/binary/ImageminBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/ImageminBinary.js +11 -17
- package/dist/app/common/adapter/binary/NodeBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/NodeBinary.js +14 -20
- package/dist/app/common/adapter/binary/NodePreGypBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/NodePreGypBinary.js +14 -20
- package/dist/app/common/adapter/binary/NwjsBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/NwjsBinary.js +12 -18
- package/dist/app/common/adapter/binary/PlaywrightBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/PlaywrightBinary.js +13 -19
- package/dist/app/common/adapter/binary/PrismaBinary.d.ts +2 -2
- package/dist/app/common/adapter/binary/PrismaBinary.js +14 -20
- package/dist/app/common/adapter/binary/PuppeteerBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/PuppeteerBinary.js +10 -13
- package/dist/app/common/adapter/binary/SqlcipherBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/SqlcipherBinary.js +9 -12
- package/dist/app/common/adapter/changesStream/AbstractChangesStream.d.ts +2 -2
- package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +7 -11
- package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.d.ts +2 -2
- package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.js +11 -14
- package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.d.ts +2 -2
- package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.js +11 -14
- package/dist/app/common/adapter/changesStream/NpmChangesStream.d.ts +2 -2
- package/dist/app/common/adapter/changesStream/NpmChangesStream.js +11 -14
- package/dist/app/common/aop/AsyncTimer.js +10 -13
- package/dist/app/common/constants.js +17 -20
- package/dist/app/common/dayjs.js +5 -10
- package/dist/app/common/enum/Binary.js +3 -6
- package/dist/app/common/enum/Hook.js +5 -8
- package/dist/app/common/enum/Registry.js +3 -6
- package/dist/app/common/enum/Task.js +5 -8
- package/dist/app/common/enum/User.js +5 -8
- package/dist/app/common/package.json +2 -1
- package/dist/app/common/typing.d.ts +1 -1
- package/dist/app/common/typing.js +1 -2
- package/dist/app/core/entity/Binary.d.ts +2 -2
- package/dist/app/core/entity/Binary.js +5 -9
- package/dist/app/core/entity/BugVersion.js +2 -6
- package/dist/app/core/entity/Change.d.ts +2 -2
- package/dist/app/core/entity/Change.js +5 -9
- package/dist/app/core/entity/Dist.d.ts +2 -2
- package/dist/app/core/entity/Dist.js +5 -9
- package/dist/app/core/entity/Entity.js +2 -6
- package/dist/app/core/entity/Hook.d.ts +3 -3
- package/dist/app/core/entity/Hook.js +7 -14
- package/dist/app/core/entity/HookEvent.d.ts +1 -1
- package/dist/app/core/entity/HookEvent.js +11 -15
- package/dist/app/core/entity/Package.d.ts +4 -3
- package/dist/app/core/entity/Package.js +14 -15
- package/dist/app/core/entity/PackageTag.d.ts +2 -2
- package/dist/app/core/entity/PackageTag.js +5 -9
- package/dist/app/core/entity/PackageVersion.d.ts +3 -3
- package/dist/app/core/entity/PackageVersion.js +7 -11
- package/dist/app/core/entity/PackageVersionBlock.d.ts +2 -2
- package/dist/app/core/entity/PackageVersionBlock.js +5 -9
- package/dist/app/core/entity/PackageVersionFile.d.ts +3 -3
- package/dist/app/core/entity/PackageVersionFile.js +5 -9
- package/dist/app/core/entity/PackageVersionManifest.d.ts +2 -2
- package/dist/app/core/entity/PackageVersionManifest.js +5 -9
- package/dist/app/core/entity/PaddingSemVer.js +5 -9
- package/dist/app/core/entity/ProxyCache.d.ts +3 -3
- package/dist/app/core/entity/ProxyCache.js +8 -12
- package/dist/app/core/entity/Registry.d.ts +3 -3
- package/dist/app/core/entity/Registry.js +5 -9
- package/dist/app/core/entity/Scope.d.ts +2 -2
- package/dist/app/core/entity/Scope.js +5 -9
- package/dist/app/core/entity/SqlRange.js +8 -12
- package/dist/app/core/entity/Task.d.ts +4 -4
- package/dist/app/core/entity/Task.js +46 -53
- package/dist/app/core/entity/Token.d.ts +2 -2
- package/dist/app/core/entity/Token.js +10 -18
- package/dist/app/core/entity/User.d.ts +2 -2
- package/dist/app/core/entity/User.js +7 -11
- package/dist/app/core/entity/WebauthnCredential.d.ts +2 -2
- package/dist/app/core/entity/WebauthnCredential.js +5 -9
- package/dist/app/core/event/BugVersionFixHandler.js +12 -15
- package/dist/app/core/event/CacheCleaner.js +39 -42
- package/dist/app/core/event/ChangesStream.d.ts +4 -4
- package/dist/app/core/event/ChangesStream.js +59 -62
- package/dist/app/core/event/StoreManifest.js +17 -20
- package/dist/app/core/event/SyncESPackage.d.ts +1 -1
- package/dist/app/core/event/SyncESPackage.js +22 -25
- package/dist/app/core/event/SyncPackageVersionFile.js +25 -28
- package/dist/app/core/event/index.d.ts +1 -1
- package/dist/app/core/event/index.js +13 -16
- package/dist/app/core/package.json +2 -1
- package/dist/app/core/service/BinarySyncerService.d.ts +7 -7
- package/dist/app/core/service/BinarySyncerService.js +44 -50
- package/dist/app/core/service/BugVersionService.d.ts +1 -1
- package/dist/app/core/service/BugVersionService.js +28 -34
- package/dist/app/core/service/CacheService.d.ts +2 -2
- package/dist/app/core/service/CacheService.js +15 -18
- package/dist/app/core/service/ChangesStreamService.d.ts +3 -3
- package/dist/app/core/service/ChangesStreamService.js +52 -58
- package/dist/app/core/service/CreateHookTriggerService.d.ts +2 -2
- package/dist/app/core/service/CreateHookTriggerService.js +39 -45
- package/dist/app/core/service/EventCorkerAdvice.js +7 -10
- package/dist/app/core/service/FixNoPaddingVersionService.js +14 -20
- package/dist/app/core/service/HomeService.d.ts +1 -1
- package/dist/app/core/service/HomeService.js +13 -16
- package/dist/app/core/service/HookManageService.d.ts +2 -2
- package/dist/app/core/service/HookManageService.js +20 -23
- package/dist/app/core/service/HookTriggerService.d.ts +3 -3
- package/dist/app/core/service/HookTriggerService.js +32 -35
- package/dist/app/core/service/PackageManagerService.d.ts +7 -7
- package/dist/app/core/service/PackageManagerService.js +98 -104
- package/dist/app/core/service/PackageSearchService.d.ts +4 -4
- package/dist/app/core/service/PackageSearchService.js +31 -37
- package/dist/app/core/service/PackageSyncerService.d.ts +6 -6
- package/dist/app/core/service/PackageSyncerService.js +92 -99
- package/dist/app/core/service/PackageVersionFileService.d.ts +4 -4
- package/dist/app/core/service/PackageVersionFileService.js +64 -69
- package/dist/app/core/service/PackageVersionService.d.ts +4 -1
- package/dist/app/core/service/PackageVersionService.js +41 -59
- package/dist/app/core/service/ProxyCacheService.d.ts +5 -6
- package/dist/app/core/service/ProxyCacheService.js +62 -69
- package/dist/app/core/service/RegistryManagerService.d.ts +3 -3
- package/dist/app/core/service/RegistryManagerService.js +33 -36
- package/dist/app/core/service/ScopeManagerService.d.ts +3 -3
- package/dist/app/core/service/ScopeManagerService.js +13 -16
- package/dist/app/core/service/TaskService.d.ts +7 -7
- package/dist/app/core/service/TaskService.js +28 -29
- package/dist/app/core/service/TokenService.d.ts +4 -4
- package/dist/app/core/service/TokenService.js +30 -36
- package/dist/app/core/service/UserService.d.ts +6 -6
- package/dist/app/core/service/UserService.js +43 -49
- package/dist/app/core/util/EntityUtil.d.ts +1 -1
- package/dist/app/core/util/EntityUtil.js +7 -13
- package/dist/app/infra/AuthAdapter.d.ts +1 -1
- package/dist/app/infra/AuthAdapter.js +12 -15
- package/dist/app/infra/NFSClientAdapter.d.ts +1 -1
- package/dist/app/infra/NFSClientAdapter.js +11 -17
- package/dist/app/infra/QueueAdapter.d.ts +1 -1
- package/dist/app/infra/QueueAdapter.js +9 -12
- package/dist/app/infra/SearchAdapter.d.ts +1 -1
- package/dist/app/infra/SearchAdapter.js +10 -13
- package/dist/app/infra/package.json +2 -1
- package/dist/app/port/UserRoleManager.d.ts +3 -3
- package/dist/app/port/UserRoleManager.js +30 -33
- package/dist/app/port/config.d.ts +3 -3
- package/dist/app/port/config.js +2 -6
- package/dist/app/port/controller/AbstractController.d.ts +8 -8
- package/dist/app/port/controller/AbstractController.js +33 -37
- package/dist/app/port/controller/AccessController.d.ts +1 -1
- package/dist/app/port/controller/AccessController.js +22 -25
- package/dist/app/port/controller/BinarySyncController.d.ts +2 -2
- package/dist/app/port/controller/BinarySyncController.js +42 -48
- package/dist/app/port/controller/ChangesStreamController.d.ts +1 -1
- package/dist/app/port/controller/ChangesStreamController.js +17 -20
- package/dist/app/port/controller/DownloadController.d.ts +1 -1
- package/dist/app/port/controller/DownloadController.js +30 -36
- package/dist/app/port/controller/HomeController.d.ts +2 -2
- package/dist/app/port/controller/HomeController.js +29 -31
- package/dist/app/port/controller/HookController.d.ts +5 -5
- package/dist/app/port/controller/HookController.js +43 -46
- package/dist/app/port/controller/PackageBlockController.d.ts +2 -2
- package/dist/app/port/controller/PackageBlockController.js +37 -40
- package/dist/app/port/controller/PackageSyncController.d.ts +5 -5
- package/dist/app/port/controller/PackageSyncController.js +64 -67
- package/dist/app/port/controller/PackageTagController.d.ts +1 -1
- package/dist/app/port/controller/PackageTagController.js +33 -36
- package/dist/app/port/controller/PackageVersionFileController.d.ts +1 -1
- package/dist/app/port/controller/PackageVersionFileController.js +56 -59
- package/dist/app/port/controller/ProxyCacheController.d.ts +7 -7
- package/dist/app/port/controller/ProxyCacheController.js +56 -58
- package/dist/app/port/controller/RegistryController.d.ts +7 -7
- package/dist/app/port/controller/RegistryController.js +57 -60
- package/dist/app/port/controller/ScopeController.d.ts +3 -3
- package/dist/app/port/controller/ScopeController.js +28 -31
- package/dist/app/port/controller/TokenController.d.ts +17 -17
- package/dist/app/port/controller/TokenController.js +52 -55
- package/dist/app/port/controller/UserController.d.ts +8 -8
- package/dist/app/port/controller/UserController.js +52 -55
- package/dist/app/port/controller/admin/PaddingVersionController.d.ts +1 -1
- package/dist/app/port/controller/admin/PaddingVersionController.js +14 -17
- package/dist/app/port/controller/convertor/HookConvertor.d.ts +4 -4
- package/dist/app/port/controller/convertor/HookConvertor.js +2 -6
- package/dist/app/port/controller/package/DownloadPackageVersionTar.d.ts +6 -6
- package/dist/app/port/controller/package/DownloadPackageVersionTar.js +69 -60
- package/dist/app/port/controller/package/RemovePackageVersionController.d.ts +1 -1
- package/dist/app/port/controller/package/RemovePackageVersionController.js +26 -29
- package/dist/app/port/controller/package/SavePackageVersionController.d.ts +9 -9
- package/dist/app/port/controller/package/SavePackageVersionController.js +57 -96
- package/dist/app/port/controller/package/SearchPackageController.d.ts +4 -4
- package/dist/app/port/controller/package/SearchPackageController.js +31 -34
- package/dist/app/port/controller/package/ShowPackageController.d.ts +1 -1
- package/dist/app/port/controller/package/ShowPackageController.js +32 -35
- package/dist/app/port/controller/package/ShowPackageVersionController.d.ts +2 -2
- package/dist/app/port/controller/package/ShowPackageVersionController.js +33 -36
- package/dist/app/port/controller/package/UpdatePackageController.d.ts +6 -6
- package/dist/app/port/controller/package/UpdatePackageController.js +25 -28
- package/dist/app/port/middleware/AdminAccess.js +6 -9
- package/dist/app/port/middleware/AlwaysAuth.js +4 -7
- package/dist/app/port/middleware/ErrorHandler.js +4 -7
- package/dist/app/port/middleware/Tracing.js +2 -5
- package/dist/app/port/middleware/index.js +10 -13
- package/dist/app/port/package.json +2 -1
- package/dist/app/port/schedule/ChangesStreamWorker.js +12 -15
- package/dist/app/port/schedule/CheckProxyCacheUpdateWorker.js +19 -21
- package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.js +20 -23
- package/dist/app/port/schedule/CleanTempDir.js +23 -30
- package/dist/app/port/schedule/CreateSyncBinaryTask.js +13 -19
- package/dist/app/port/schedule/CreateTriggerHookWorker.js +18 -21
- package/dist/app/port/schedule/SavePackageVersionDownloadCounter.js +10 -13
- package/dist/app/port/schedule/SyncBinaryWorker.js +14 -17
- package/dist/app/port/schedule/SyncPackageWorker.js +14 -17
- package/dist/app/port/schedule/SyncProxyCacheWorker.js +14 -17
- package/dist/app/port/schedule/TaskTimeoutHandler.js +14 -17
- package/dist/app/port/schedule/TriggerHookWorker.js +18 -21
- package/dist/app/port/schedule/UpdateTotalData.js +32 -38
- package/dist/app/port/typebox.d.ts +73 -73
- package/dist/app/port/typebox.js +83 -90
- package/dist/app/port/webauth/WebauthController.d.ts +6 -6
- package/dist/app/port/webauth/WebauthController.js +91 -91
- package/dist/app/repository/AbstractRepository.js +4 -8
- package/dist/app/repository/BinaryRepository.d.ts +2 -2
- package/dist/app/repository/BinaryRepository.js +15 -18
- package/dist/app/repository/ChangeRepository.d.ts +3 -3
- package/dist/app/repository/ChangeRepository.js +11 -14
- package/dist/app/repository/DistRepository.d.ts +2 -2
- package/dist/app/repository/DistRepository.js +12 -15
- package/dist/app/repository/HookRepository.d.ts +2 -2
- package/dist/app/repository/HookRepository.js +14 -17
- package/dist/app/repository/PackageRepository.d.ts +8 -8
- package/dist/app/repository/PackageRepository.js +59 -62
- package/dist/app/repository/PackageVersionBlockRepository.d.ts +3 -3
- package/dist/app/repository/PackageVersionBlockRepository.js +14 -17
- package/dist/app/repository/PackageVersionDownloadRepository.d.ts +2 -2
- package/dist/app/repository/PackageVersionDownloadRepository.js +9 -12
- package/dist/app/repository/PackageVersionFileRepository.d.ts +2 -2
- package/dist/app/repository/PackageVersionFileRepository.js +19 -22
- package/dist/app/repository/PackageVersionRepository.d.ts +3 -3
- package/dist/app/repository/PackageVersionRepository.js +12 -15
- package/dist/app/repository/ProxyCacheRepository.d.ts +5 -5
- package/dist/app/repository/ProxyCacheRepository.js +16 -19
- package/dist/app/repository/RegistryRepository.d.ts +4 -4
- package/dist/app/repository/RegistryRepository.js +19 -22
- package/dist/app/repository/ScopeRepository.d.ts +4 -4
- package/dist/app/repository/ScopeRepository.js +19 -22
- package/dist/app/repository/SearchRepository.d.ts +1 -1
- package/dist/app/repository/SearchRepository.js +7 -10
- package/dist/app/repository/TaskRepository.d.ts +8 -8
- package/dist/app/repository/TaskRepository.js +31 -34
- package/dist/app/repository/UserRepository.d.ts +4 -4
- package/dist/app/repository/UserRepository.js +38 -41
- package/dist/app/repository/model/Binary.d.ts +1 -1
- package/dist/app/repository/model/Binary.js +17 -20
- package/dist/app/repository/model/Change.d.ts +1 -1
- package/dist/app/repository/model/Change.js +14 -17
- package/dist/app/repository/model/Dist.d.ts +1 -1
- package/dist/app/repository/model/Dist.js +16 -19
- package/dist/app/repository/model/HistoryTask.d.ts +2 -2
- package/dist/app/repository/model/HistoryTask.js +22 -25
- package/dist/app/repository/model/Hook.d.ts +2 -2
- package/dist/app/repository/model/Hook.js +19 -22
- package/dist/app/repository/model/Maintainer.d.ts +1 -1
- package/dist/app/repository/model/Maintainer.js +12 -15
- package/dist/app/repository/model/Package.d.ts +1 -1
- package/dist/app/repository/model/Package.js +21 -24
- package/dist/app/repository/model/PackageDep.d.ts +1 -1
- package/dist/app/repository/model/PackageDep.js +15 -18
- package/dist/app/repository/model/PackageTag.d.ts +1 -1
- package/dist/app/repository/model/PackageTag.js +14 -17
- package/dist/app/repository/model/PackageVersion.d.ts +1 -1
- package/dist/app/repository/model/PackageVersion.js +27 -30
- package/dist/app/repository/model/PackageVersionBlock.d.ts +1 -1
- package/dist/app/repository/model/PackageVersionBlock.js +14 -17
- package/dist/app/repository/model/PackageVersionDownload.d.ts +1 -1
- package/dist/app/repository/model/PackageVersionDownload.js +44 -47
- package/dist/app/repository/model/PackageVersionFile.d.ts +1 -1
- package/dist/app/repository/model/PackageVersionFile.js +19 -22
- package/dist/app/repository/model/PackageVersionManifest.d.ts +1 -1
- package/dist/app/repository/model/PackageVersionManifest.js +14 -17
- package/dist/app/repository/model/ProxyCache.d.ts +2 -2
- package/dist/app/repository/model/ProxyCache.js +15 -18
- package/dist/app/repository/model/Registry.d.ts +2 -2
- package/dist/app/repository/model/Registry.js +18 -21
- package/dist/app/repository/model/Scope.d.ts +1 -1
- package/dist/app/repository/model/Scope.js +13 -16
- package/dist/app/repository/model/Task.d.ts +2 -2
- package/dist/app/repository/model/Task.js +23 -26
- package/dist/app/repository/model/Token.d.ts +1 -1
- package/dist/app/repository/model/Token.js +23 -26
- package/dist/app/repository/model/TokenPackage.d.ts +1 -1
- package/dist/app/repository/model/TokenPackage.js +12 -15
- package/dist/app/repository/model/User.d.ts +1 -1
- package/dist/app/repository/model/User.js +18 -21
- package/dist/app/repository/model/WebauthnCredential.d.ts +1 -1
- package/dist/app/repository/model/WebauthnCredential.js +15 -18
- package/dist/app/repository/package.json +1 -3
- package/dist/app/repository/util/EntityProperty.js +6 -9
- package/dist/app/repository/util/ErrorUtil.js +2 -5
- package/dist/app/repository/util/ModelConvertor.d.ts +5 -5
- package/dist/app/repository/util/ModelConvertor.js +17 -24
- package/dist/app/repository/util/ModelConvertorUtil.js +5 -9
- package/dist/app/repository/util/leoric.d.ts +4 -0
- package/dist/app/repository/util/leoric.js +4 -0
- package/dist/app.d.ts +3 -3
- package/dist/app.js +9 -15
- package/dist/config/binaries.d.ts +8 -1
- package/dist/config/binaries.js +99 -94
- package/dist/config/config.default.d.ts +1 -1
- package/dist/config/config.default.js +69 -74
- package/dist/config/config.unittest.d.ts +1 -2
- package/dist/config/config.unittest.js +11 -16
- package/dist/config/database.js +20 -23
- package/dist/config/plugin.js +3 -5
- package/package.json +17 -16
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,14 +7,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const PackageManagerService_1 = require("../service/PackageManagerService");
|
|
18
|
-
const PackageVersionFileService_1 = require("../service/PackageVersionFileService");
|
|
10
|
+
import { Event, Inject } from '@eggjs/tegg';
|
|
11
|
+
import { ForbiddenError } from 'egg-errors';
|
|
12
|
+
import { PACKAGE_VERSION_ADDED, PACKAGE_TAG_ADDED, PACKAGE_TAG_CHANGED } from './index.js';
|
|
13
|
+
import { getScopeAndName } from '../../common/PackageUtil.js';
|
|
14
|
+
import { PackageManagerService } from '../service/PackageManagerService.js';
|
|
15
|
+
import { PackageVersionFileService } from '../service/PackageVersionFileService.js';
|
|
19
16
|
class SyncPackageVersionFileEvent {
|
|
20
17
|
async syncPackageVersionFile(fullname, version) {
|
|
21
18
|
// must set enableUnpkg and enableSyncUnpkgFiles = true both
|
|
@@ -26,7 +23,7 @@ class SyncPackageVersionFileEvent {
|
|
|
26
23
|
// ignore sync on unittest
|
|
27
24
|
if (this.config.env === 'unittest' && fullname !== '@cnpm/unittest-unpkg-demo')
|
|
28
25
|
return;
|
|
29
|
-
const [scope, name] =
|
|
26
|
+
const [scope, name] = getScopeAndName(fullname);
|
|
30
27
|
const { packageVersion } = await this.packageManagerService.showPackageVersionByVersionOrTag(scope, name, version);
|
|
31
28
|
if (!packageVersion)
|
|
32
29
|
return;
|
|
@@ -34,7 +31,7 @@ class SyncPackageVersionFileEvent {
|
|
|
34
31
|
await this.packageVersionFileService.syncPackageVersionFiles(packageVersion);
|
|
35
32
|
}
|
|
36
33
|
catch (err) {
|
|
37
|
-
if (err instanceof
|
|
34
|
+
if (err instanceof ForbiddenError) {
|
|
38
35
|
this.logger.info('[SyncPackageVersionFileEvent.syncPackageVersionFile] ignore sync files, cause: %s', err.message);
|
|
39
36
|
return;
|
|
40
37
|
}
|
|
@@ -42,7 +39,7 @@ class SyncPackageVersionFileEvent {
|
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
async syncPackageReadmeToLatestVersion(fullname) {
|
|
45
|
-
const [scope, name] =
|
|
42
|
+
const [scope, name] = getScopeAndName(fullname);
|
|
46
43
|
const { pkg, packageVersion } = await this.packageManagerService.showPackageVersionByVersionOrTag(scope, name, 'latest');
|
|
47
44
|
if (!pkg || !packageVersion)
|
|
48
45
|
return;
|
|
@@ -50,30 +47,30 @@ class SyncPackageVersionFileEvent {
|
|
|
50
47
|
}
|
|
51
48
|
}
|
|
52
49
|
__decorate([
|
|
53
|
-
|
|
50
|
+
Inject(),
|
|
54
51
|
__metadata("design:type", Object)
|
|
55
52
|
], SyncPackageVersionFileEvent.prototype, "config", void 0);
|
|
56
53
|
__decorate([
|
|
57
|
-
|
|
54
|
+
Inject(),
|
|
58
55
|
__metadata("design:type", Function)
|
|
59
56
|
], SyncPackageVersionFileEvent.prototype, "logger", void 0);
|
|
60
57
|
__decorate([
|
|
61
|
-
|
|
62
|
-
__metadata("design:type",
|
|
58
|
+
Inject(),
|
|
59
|
+
__metadata("design:type", PackageManagerService)
|
|
63
60
|
], SyncPackageVersionFileEvent.prototype, "packageManagerService", void 0);
|
|
64
61
|
__decorate([
|
|
65
|
-
|
|
66
|
-
__metadata("design:type",
|
|
62
|
+
Inject(),
|
|
63
|
+
__metadata("design:type", PackageVersionFileService)
|
|
67
64
|
], SyncPackageVersionFileEvent.prototype, "packageVersionFileService", void 0);
|
|
68
65
|
let PackageVersionAddedSyncPackageVersionFileEvent = class PackageVersionAddedSyncPackageVersionFileEvent extends SyncPackageVersionFileEvent {
|
|
69
66
|
async handle(fullname, version) {
|
|
70
67
|
await this.syncPackageVersionFile(fullname, version);
|
|
71
68
|
}
|
|
72
69
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
(0, tegg_1.Event)(index_1.PACKAGE_VERSION_ADDED)
|
|
70
|
+
PackageVersionAddedSyncPackageVersionFileEvent = __decorate([
|
|
71
|
+
Event(PACKAGE_VERSION_ADDED)
|
|
76
72
|
], PackageVersionAddedSyncPackageVersionFileEvent);
|
|
73
|
+
export { PackageVersionAddedSyncPackageVersionFileEvent };
|
|
77
74
|
let PackageTagAddedSyncPackageVersionFileEvent = class PackageTagAddedSyncPackageVersionFileEvent extends SyncPackageVersionFileEvent {
|
|
78
75
|
async handle(fullname, tag) {
|
|
79
76
|
if (tag !== 'latest')
|
|
@@ -81,10 +78,10 @@ let PackageTagAddedSyncPackageVersionFileEvent = class PackageTagAddedSyncPackag
|
|
|
81
78
|
await this.syncPackageReadmeToLatestVersion(fullname);
|
|
82
79
|
}
|
|
83
80
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
(0, tegg_1.Event)(index_1.PACKAGE_TAG_ADDED)
|
|
81
|
+
PackageTagAddedSyncPackageVersionFileEvent = __decorate([
|
|
82
|
+
Event(PACKAGE_TAG_ADDED)
|
|
87
83
|
], PackageTagAddedSyncPackageVersionFileEvent);
|
|
84
|
+
export { PackageTagAddedSyncPackageVersionFileEvent };
|
|
88
85
|
let PackageTagChangedSyncPackageVersionFileEvent = class PackageTagChangedSyncPackageVersionFileEvent extends SyncPackageVersionFileEvent {
|
|
89
86
|
async handle(fullname, tag) {
|
|
90
87
|
if (tag !== 'latest')
|
|
@@ -92,8 +89,8 @@ let PackageTagChangedSyncPackageVersionFileEvent = class PackageTagChangedSyncPa
|
|
|
92
89
|
await this.syncPackageReadmeToLatestVersion(fullname);
|
|
93
90
|
}
|
|
94
91
|
};
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
(0, tegg_1.Event)(index_1.PACKAGE_TAG_CHANGED)
|
|
92
|
+
PackageTagChangedSyncPackageVersionFileEvent = __decorate([
|
|
93
|
+
Event(PACKAGE_TAG_CHANGED)
|
|
98
94
|
], PackageTagChangedSyncPackageVersionFileEvent);
|
|
99
|
-
|
|
95
|
+
export { PackageTagChangedSyncPackageVersionFileEvent };
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY1BhY2thZ2VWZXJzaW9uRmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2V2ZW50L1N5bmNQYWNrYWdlVmVyc2lvbkZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXBGLE1BQU0sMkJBQTJCO0lBVXJCLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLE9BQWU7UUFDdEUsNERBQTREO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsb0JBQW9CO1lBQUUsT0FBTztRQUN2RCwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxVQUFVLElBQUksUUFBUSxLQUFLLDJCQUEyQjtZQUFFLE9BQU87UUFDdkYsTUFBTSxDQUFFLEtBQUssRUFBRSxJQUFJLENBQUUsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUMxRixLQUFLLEVBQUUsSUFBSSxFQUFF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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@eggjs/tegg';
|
|
2
|
-
import { User } from '../entity/User';
|
|
2
|
+
import { User } from '../entity/User.js';
|
|
3
3
|
export declare const PACKAGE_UNPUBLISHED = "PACKAGE_UNPUBLISHED";
|
|
4
4
|
export declare const PACKAGE_BLOCKED = "PACKAGE_BLOCKED";
|
|
5
5
|
export declare const PACKAGE_UNBLOCKED = "PACKAGE_UNBLOCKED";
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
exports.PACKAGE_MAINTAINER_REMOVED = 'PACKAGE_MAINTAINER_REMOVED';
|
|
15
|
-
exports.PACKAGE_META_CHANGED = 'PACKAGE_META_CHANGED';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9ldmVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1QkFBcUI7QUFHUixRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBQzVDLFFBQUEsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBQ3BDLFFBQUEsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsUUFBQSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUNoRCxRQUFBLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBQ3BELFFBQUEsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsUUFBQSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUM1QyxRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBQzVDLFFBQUEsMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFDMUQsUUFBQSwwQkFBMEIsR0FBRyw0QkFBNEIsQ0FBQztBQUMxRCxRQUFBLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDIn0=
|
|
1
|
+
import '@eggjs/tegg';
|
|
2
|
+
export const PACKAGE_UNPUBLISHED = 'PACKAGE_UNPUBLISHED';
|
|
3
|
+
export const PACKAGE_BLOCKED = 'PACKAGE_BLOCKED';
|
|
4
|
+
export const PACKAGE_UNBLOCKED = 'PACKAGE_UNBLOCKED';
|
|
5
|
+
export const PACKAGE_VERSION_ADDED = 'PACKAGE_VERSION_ADDED';
|
|
6
|
+
export const PACKAGE_VERSION_REMOVED = 'PACKAGE_VERSION_REMOVED';
|
|
7
|
+
export const PACKAGE_TAG_ADDED = 'PACKAGE_TAG_ADDED';
|
|
8
|
+
export const PACKAGE_TAG_CHANGED = 'PACKAGE_TAG_CHANGED';
|
|
9
|
+
export const PACKAGE_TAG_REMOVED = 'PACKAGE_TAG_REMOVED';
|
|
10
|
+
export const PACKAGE_MAINTAINER_CHANGED = 'PACKAGE_MAINTAINER_CHANGED';
|
|
11
|
+
export const PACKAGE_MAINTAINER_REMOVED = 'PACKAGE_MAINTAINER_REMOVED';
|
|
12
|
+
export const PACKAGE_META_CHANGED = 'PACKAGE_META_CHANGED';
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9ldmVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGFBQWEsQ0FBQztBQUdyQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcseUJBQXlCLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUMifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BinaryName, CategoryName } from '../../../config/binaries';
|
|
2
|
-
import { Task } from '../entity/Task';
|
|
3
|
-
import { Binary } from '../entity/Binary';
|
|
4
|
-
import { AbstractService } from '../../common/AbstractService';
|
|
1
|
+
import { BinaryName, CategoryName } from '../../../config/binaries.js';
|
|
2
|
+
import { Task } from '../entity/Task.js';
|
|
3
|
+
import { Binary } from '../entity/Binary.js';
|
|
4
|
+
import { AbstractService } from '../../common/AbstractService.js';
|
|
5
5
|
export declare class BinarySyncerService extends AbstractService {
|
|
6
6
|
private readonly binaryRepository;
|
|
7
7
|
private readonly taskService;
|
|
@@ -12,10 +12,10 @@ export declare class BinarySyncerService extends AbstractService {
|
|
|
12
12
|
listDirBinaries(binary: Binary): Promise<Binary[]>;
|
|
13
13
|
listRootBinaries(binaryName: BinaryName): Promise<Binary[]>;
|
|
14
14
|
downloadBinary(binary: Binary): Promise<string | import("stream").Readable | undefined>;
|
|
15
|
-
createTask(binaryName: BinaryName, lastData?: any): Promise<Task<import("../entity/Task").TaskBaseData> | undefined>;
|
|
16
|
-
findTask(taskId: string): Promise<Task<import("../entity/Task").TaskBaseData> | null>;
|
|
15
|
+
createTask(binaryName: BinaryName, lastData?: any): Promise<Task<import("../entity/Task.js").TaskBaseData> | undefined>;
|
|
16
|
+
findTask(taskId: string): Promise<Task<import("../entity/Task.js").TaskBaseData> | null>;
|
|
17
17
|
findTaskLog(task: Task): Promise<string | import("stream").Readable | undefined>;
|
|
18
|
-
findExecuteTask(): Promise<Task<import("../entity/Task").TaskBaseData> | null>;
|
|
18
|
+
findExecuteTask(): Promise<Task<import("../entity/Task.js").TaskBaseData> | null>;
|
|
19
19
|
executeTask(task: Task): Promise<void>;
|
|
20
20
|
private syncDir;
|
|
21
21
|
private diff;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,30 +7,25 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const ErrorUtil_1 = require("../../common/ErrorUtil");
|
|
27
|
-
const AbstractBinary_1 = require("../../common/adapter/binary/AbstractBinary");
|
|
28
|
-
const AbstractService_1 = require("../../common/AbstractService");
|
|
29
|
-
const Binary_2 = require("../../common/enum/Binary");
|
|
30
|
-
const Task_2 = require("../../common/enum/Task");
|
|
10
|
+
import { AccessLevel, SingletonProto, Inject, } from '@eggjs/tegg';
|
|
11
|
+
import fs from 'node:fs/promises';
|
|
12
|
+
import { sortBy } from 'lodash-es';
|
|
13
|
+
import binaries from '../../../config/binaries.js';
|
|
14
|
+
import { BinaryRepository } from '../../repository/BinaryRepository.js';
|
|
15
|
+
import { Task } from '../entity/Task.js';
|
|
16
|
+
import { Binary } from '../entity/Binary.js';
|
|
17
|
+
import { TaskService } from './TaskService.js';
|
|
18
|
+
import { NFSAdapter } from '../../common/adapter/NFSAdapter.js';
|
|
19
|
+
import { downloadToTempfile } from '../../common/FileUtil.js';
|
|
20
|
+
import { isTimeoutError } from '../../common/ErrorUtil.js';
|
|
21
|
+
import { AbstractBinary } from '../../common/adapter/binary/AbstractBinary.js';
|
|
22
|
+
import { AbstractService } from '../../common/AbstractService.js';
|
|
23
|
+
import { BinaryType } from '../../common/enum/Binary.js';
|
|
24
|
+
import { TaskType, TaskState } from '../../common/enum/Task.js';
|
|
31
25
|
function isoNow() {
|
|
32
26
|
return new Date().toISOString();
|
|
33
27
|
}
|
|
34
|
-
let BinarySyncerService = class BinarySyncerService extends
|
|
28
|
+
let BinarySyncerService = class BinarySyncerService extends AbstractService {
|
|
35
29
|
// canvas/v2.6.1/canvas-v2.6.1-node-v57-linux-glibc-x64.tar.gz
|
|
36
30
|
// -> node-canvas-prebuilt/v2.6.1/node-canvas-prebuilt-v2.6.1-node-v57-linux-glibc-x64.tar.gz
|
|
37
31
|
// canvas 历史版本的 targetName 可能是 category 需要兼容
|
|
@@ -44,7 +38,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
44
38
|
async listRootBinaries(binaryName) {
|
|
45
39
|
// 通常 binaryName 和 category 是一样的,但是有些特殊的 binaryName 会有多个 category,比如 canvas
|
|
46
40
|
// 所以查询 canvas 的时候,需要将 binaryName 和 category 的数据都查出来
|
|
47
|
-
const { category, } =
|
|
41
|
+
const { category, } = binaries[binaryName];
|
|
48
42
|
const reqs = [
|
|
49
43
|
this.binaryRepository.listBinaries(binaryName, '/'),
|
|
50
44
|
];
|
|
@@ -67,7 +61,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
67
61
|
}
|
|
68
62
|
async createTask(binaryName, lastData) {
|
|
69
63
|
try {
|
|
70
|
-
return await this.taskService.createTask(
|
|
64
|
+
return await this.taskService.createTask(Task.createSyncBinary(binaryName, lastData), false);
|
|
71
65
|
}
|
|
72
66
|
catch (e) {
|
|
73
67
|
this.logger.error('[BinarySyncerService.createTask] binaryName: %s, error: %s', binaryName, e);
|
|
@@ -80,7 +74,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
80
74
|
return await this.taskService.findTaskLog(task);
|
|
81
75
|
}
|
|
82
76
|
async findExecuteTask() {
|
|
83
|
-
return await this.taskService.findExecuteTask(
|
|
77
|
+
return await this.taskService.findExecuteTask(TaskType.SyncBinary);
|
|
84
78
|
}
|
|
85
79
|
async executeTask(task) {
|
|
86
80
|
const binaryName = task.targetName;
|
|
@@ -93,7 +87,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
93
87
|
logs.push(`[${isoNow()}] ❌ Synced "${binaryName}" fail, ${task.error}, log: ${logUrl}`);
|
|
94
88
|
logs.push(`[${isoNow()}] ❌❌❌❌❌ "${binaryName}" ❌❌❌❌❌`);
|
|
95
89
|
this.logger.error('[BinarySyncerService.executeTask:fail] taskId: %s, targetName: %s, %s', task.taskId, task.targetName, task.error);
|
|
96
|
-
await this.taskService.finishTask(task,
|
|
90
|
+
await this.taskService.finishTask(task, TaskState.Fail, logs.join('\n'));
|
|
97
91
|
return;
|
|
98
92
|
}
|
|
99
93
|
await this.taskService.appendTaskLog(task, logs.join('\n'));
|
|
@@ -103,7 +97,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
103
97
|
const [hasDownloadError] = await this.syncDir(binaryAdapter, task, '/');
|
|
104
98
|
logs.push(`[${isoNow()}] 🟢 log: ${logUrl}`);
|
|
105
99
|
logs.push(`[${isoNow()}] 🟢🟢🟢🟢🟢 "${binaryName}" 🟢🟢🟢🟢🟢`);
|
|
106
|
-
await this.taskService.finishTask(task,
|
|
100
|
+
await this.taskService.finishTask(task, TaskState.Success, logs.join('\n'));
|
|
107
101
|
// 确保没有下载异常才算 success
|
|
108
102
|
await binaryAdapter.finishFetch(!hasDownloadError, binaryName);
|
|
109
103
|
this.logger.info('[BinarySyncerService.executeTask:success] taskId: %s, targetName: %s, log: %s, hasDownloadError: %s', task.taskId, task.targetName, logUrl, hasDownloadError);
|
|
@@ -112,7 +106,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
112
106
|
task.error = `${err.name}: ${err.message}`;
|
|
113
107
|
logs.push(`[${isoNow()}] ❌ Synced "${binaryName}" fail, ${task.error}, log: ${logUrl}`);
|
|
114
108
|
logs.push(`[${isoNow()}] ❌❌❌❌❌ "${binaryName}" ❌❌❌❌❌`);
|
|
115
|
-
if (
|
|
109
|
+
if (isTimeoutError(err)) {
|
|
116
110
|
this.logger.warn('[BinarySyncerService.executeTask:fail] taskId: %s, targetName: %s, %s', task.taskId, task.targetName, task.error);
|
|
117
111
|
this.logger.warn(err);
|
|
118
112
|
}
|
|
@@ -121,7 +115,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
121
115
|
this.logger.error(err);
|
|
122
116
|
}
|
|
123
117
|
await binaryAdapter.finishFetch(false, binaryName);
|
|
124
|
-
await this.taskService.finishTask(task,
|
|
118
|
+
await this.taskService.finishTask(task, TaskState.Fail, logs.join('\n'));
|
|
125
119
|
}
|
|
126
120
|
}
|
|
127
121
|
async syncDir(binaryAdapter, task, dir, parentIndex = '', latestVersionParent = '/') {
|
|
@@ -166,7 +160,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
166
160
|
logs = [];
|
|
167
161
|
let localFile = '';
|
|
168
162
|
try {
|
|
169
|
-
const { tmpfile, headers, timing } = await
|
|
163
|
+
const { tmpfile, headers, timing } = await downloadToTempfile(this.httpclient, this.config.dataDir, item.sourceUrl, { ignoreDownloadStatuses: item.ignoreDownloadStatuses });
|
|
170
164
|
const log = `[${isoNow()}][${dir}] 🟢 [${parentIndex}${index}] HTTP content-length: ${headers['content-length']}, timing: ${JSON.stringify(timing)}, ${item.sourceUrl} => ${tmpfile}`;
|
|
171
165
|
logs.push(log);
|
|
172
166
|
this.logger.info('[BinarySyncerService.syncDir:downloadToTempfile] %s', log);
|
|
@@ -196,7 +190,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
196
190
|
}
|
|
197
191
|
finally {
|
|
198
192
|
if (localFile) {
|
|
199
|
-
await
|
|
193
|
+
await fs.rm(localFile, { force: true });
|
|
200
194
|
}
|
|
201
195
|
}
|
|
202
196
|
}
|
|
@@ -227,7 +221,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
227
221
|
const existsItem = existsMap.get(item.name);
|
|
228
222
|
if (!existsItem) {
|
|
229
223
|
diffItems.push({
|
|
230
|
-
item:
|
|
224
|
+
item: Binary.create({
|
|
231
225
|
category: binaryName,
|
|
232
226
|
parent: dir,
|
|
233
227
|
name: item.name,
|
|
@@ -251,7 +245,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
251
245
|
}
|
|
252
246
|
else if (dir.endsWith(latestVersionParent)) {
|
|
253
247
|
if (!latestItem) {
|
|
254
|
-
latestItem =
|
|
248
|
+
latestItem = sortBy(fetchItems, ['date']).pop();
|
|
255
249
|
}
|
|
256
250
|
const isLatestItem = latestItem?.name === item.name;
|
|
257
251
|
if (isLatestItem && existsItem.isDir) {
|
|
@@ -270,7 +264,7 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
270
264
|
}
|
|
271
265
|
async saveBinaryItem(binary, tmpfile) {
|
|
272
266
|
if (tmpfile) {
|
|
273
|
-
const stat = await
|
|
267
|
+
const stat = await fs.stat(tmpfile);
|
|
274
268
|
binary.size = stat.size;
|
|
275
269
|
await this.nfsAdapter.uploadFile(binary.storePath, tmpfile);
|
|
276
270
|
this.logger.info('[BinarySyncerService.saveBinaryItem:uploadFile] binaryId: %s, size: %d, %s => %s', binary.binaryId, stat.size, tmpfile, binary.storePath);
|
|
@@ -280,42 +274,42 @@ let BinarySyncerService = class BinarySyncerService extends AbstractService_1.Ab
|
|
|
280
274
|
}
|
|
281
275
|
async getBinaryAdapter(binaryName) {
|
|
282
276
|
const config = this.config.cnpmcore;
|
|
283
|
-
const binaryConfig =
|
|
277
|
+
const binaryConfig = binaries[binaryName];
|
|
284
278
|
let binaryAdapter;
|
|
285
279
|
if (config.sourceRegistryIsCNpm) {
|
|
286
|
-
binaryAdapter = await this.eggObjectFactory.getEggObject(
|
|
280
|
+
binaryAdapter = await this.eggObjectFactory.getEggObject(AbstractBinary, BinaryType.Api);
|
|
287
281
|
}
|
|
288
282
|
else {
|
|
289
|
-
binaryAdapter = await this.eggObjectFactory.getEggObject(
|
|
283
|
+
binaryAdapter = await this.eggObjectFactory.getEggObject(AbstractBinary, binaryConfig.type);
|
|
290
284
|
}
|
|
291
285
|
await binaryAdapter.initFetch(binaryName);
|
|
292
286
|
return binaryAdapter;
|
|
293
287
|
}
|
|
294
288
|
};
|
|
295
|
-
exports.BinarySyncerService = BinarySyncerService;
|
|
296
289
|
__decorate([
|
|
297
|
-
|
|
298
|
-
__metadata("design:type",
|
|
290
|
+
Inject(),
|
|
291
|
+
__metadata("design:type", BinaryRepository)
|
|
299
292
|
], BinarySyncerService.prototype, "binaryRepository", void 0);
|
|
300
293
|
__decorate([
|
|
301
|
-
|
|
302
|
-
__metadata("design:type",
|
|
294
|
+
Inject(),
|
|
295
|
+
__metadata("design:type", TaskService)
|
|
303
296
|
], BinarySyncerService.prototype, "taskService", void 0);
|
|
304
297
|
__decorate([
|
|
305
|
-
|
|
298
|
+
Inject(),
|
|
306
299
|
__metadata("design:type", Function)
|
|
307
300
|
], BinarySyncerService.prototype, "httpclient", void 0);
|
|
308
301
|
__decorate([
|
|
309
|
-
|
|
310
|
-
__metadata("design:type",
|
|
302
|
+
Inject(),
|
|
303
|
+
__metadata("design:type", NFSAdapter)
|
|
311
304
|
], BinarySyncerService.prototype, "nfsAdapter", void 0);
|
|
312
305
|
__decorate([
|
|
313
|
-
|
|
306
|
+
Inject(),
|
|
314
307
|
__metadata("design:type", Object)
|
|
315
308
|
], BinarySyncerService.prototype, "eggObjectFactory", void 0);
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
accessLevel:
|
|
309
|
+
BinarySyncerService = __decorate([
|
|
310
|
+
SingletonProto({
|
|
311
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
319
312
|
})
|
|
320
313
|
], BinarySyncerService);
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5U3luY2VyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL3NlcnZpY2UvQmluYXJ5U3luY2VyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FLcUI7QUFJckIsZ0VBQWtDO0FBQ2xDLG1DQUFnQztBQUNoQyx3RUFBOEU7QUFDOUUsd0VBQXFFO0FBQ3JFLHlDQUFzQztBQUN0Qyw2Q0FBMEM7QUFDMUMsK0NBQTRDO0FBQzVDLGdFQUE2RDtBQUM3RCxvREFBMkQ7QUFDM0Qsc0RBQXdEO0FBQ3hELCtFQUF3RjtBQUN4RixrRUFBK0Q7QUFDL0QscURBQXNEO0FBQ3RELGlEQUE2RDtBQUU3RCxTQUFTLE1BQU07SUFDYixPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUtNLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW9CLFNBQVEsaUNBQWU7SUFZdEQsOERBQThEO0lBQzlELDZGQUE2RjtJQUM3Riw0Q0FBNEM7SUFDckMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFxQyxFQUFFLE1BQWMsRUFBRSxJQUFZO1FBQ3pGLE9BQU8sTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBYztRQUN6QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQXNCO1FBQ2xELDJFQUEyRTtRQUMzRSxvREFBb0Q7UUFDcEQsTUFBTSxFQUNK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
|
|
314
|
+
export { BinarySyncerService };
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5U3luY2VyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL3NlcnZpY2UvQmluYXJ5U3luY2VyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGNBQWMsRUFDZCxNQUFNLEdBRVAsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLFFBQXNDLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFjLE1BQU0sK0NBQStDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLFNBQVMsTUFBTTtJQUNiLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBS00sSUFBTSxtQkFB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
|