cnpmcore 4.33.2 → 4.34.1

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 (57) hide show
  1. package/dist/app/common/AbstractService.js +4 -4
  2. package/dist/app/common/adapter/NFSAdapter.js +3 -3
  3. package/dist/app/common/adapter/NPMRegistry.js +4 -4
  4. package/dist/app/common/adapter/binary/AbstractBinary.js +3 -3
  5. package/dist/app/common/adapter/binary/ApiBinary.js +3 -3
  6. package/dist/app/common/adapter/binary/PlaywrightBinary.js +7 -4
  7. package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +3 -3
  8. package/dist/app/common/aop/AsyncTimer.js +3 -3
  9. package/dist/app/core/entity/PackageVersionBlock.d.ts +6 -0
  10. package/dist/app/core/entity/PackageVersionBlock.js +8 -1
  11. package/dist/app/core/event/BugVersionFixHandler.js +3 -3
  12. package/dist/app/core/event/ChangesStream.js +3 -3
  13. package/dist/app/core/event/StoreManifest.js +3 -3
  14. package/dist/app/core/event/SyncESPackage.js +3 -3
  15. package/dist/app/core/event/SyncPackageVersionFile.js +4 -4
  16. package/dist/app/core/service/BugVersionService.js +3 -3
  17. package/dist/app/core/service/FixNoPaddingVersionService.js +3 -3
  18. package/dist/app/core/service/HookManageService.js +3 -3
  19. package/dist/app/core/service/PackageManagerService.d.ts +28 -0
  20. package/dist/app/core/service/PackageManagerService.js +305 -5
  21. package/dist/app/core/service/PackageSyncerService.d.ts +1 -0
  22. package/dist/app/core/service/PackageSyncerService.js +15 -1
  23. package/dist/app/infra/NFSClientAdapter.js +4 -4
  24. package/dist/app/infra/SearchAdapter.js +3 -3
  25. package/dist/app/port/UserRoleManager.js +4 -4
  26. package/dist/app/port/config.d.ts +42 -0
  27. package/dist/app/port/controller/AbstractController.d.ts +2 -0
  28. package/dist/app/port/controller/AbstractController.js +15 -4
  29. package/dist/app/port/controller/PackageBlockController.d.ts +10 -1
  30. package/dist/app/port/controller/PackageBlockController.js +68 -5
  31. package/dist/app/port/controller/PackageVersionFileController.js +5 -2
  32. package/dist/app/port/schedule/BufferReleaseDispatcher.d.ts +8 -0
  33. package/dist/app/port/schedule/BufferReleaseDispatcher.js +72 -0
  34. package/dist/app/port/schedule/BufferReleaseWorker.d.ts +6 -0
  35. package/dist/app/port/schedule/BufferReleaseWorker.js +68 -0
  36. package/dist/app/port/schedule/ChangesStreamWorker.js +4 -4
  37. package/dist/app/port/schedule/CheckProxyCacheUpdateWorker.js +4 -4
  38. package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.js +4 -4
  39. package/dist/app/port/schedule/CleanTempDir.js +4 -4
  40. package/dist/app/port/schedule/CreateSyncBinaryTask.js +3 -3
  41. package/dist/app/port/schedule/CreateTriggerHookWorker.js +4 -4
  42. package/dist/app/port/schedule/SyncBinaryWorker.js +4 -4
  43. package/dist/app/port/schedule/SyncPackageWorker.js +4 -4
  44. package/dist/app/port/schedule/SyncProxyCacheWorker.js +4 -4
  45. package/dist/app/port/schedule/TaskTimeoutHandler.js +3 -3
  46. package/dist/app/port/schedule/TriggerHookWorker.js +4 -4
  47. package/dist/app/port/schedule/UpdateTotalData.js +3 -3
  48. package/dist/app/port/webauth/WebauthController.js +1 -1
  49. package/dist/app/repository/AbstractRepository.js +3 -3
  50. package/dist/app/repository/PackageRepository.d.ts +1 -0
  51. package/dist/app/repository/PackageRepository.js +1 -1
  52. package/dist/app/repository/PackageVersionBlockRepository.d.ts +9 -0
  53. package/dist/app/repository/PackageVersionBlockRepository.js +60 -2
  54. package/dist/app/repository/model/PackageVersionBlock.d.ts +2 -0
  55. package/dist/app/repository/model/PackageVersionBlock.js +9 -1
  56. package/dist/config/config.default.js +5 -1
  57. package/package.json +1 -1
@@ -5,6 +5,7 @@ import type { PackageVersion as PackageVersionEntity } from '../../core/entity/P
5
5
  import type { User as UserEntity } from '../../core/entity/User.ts';
6
6
  import type { UserService } from '../../core/service/UserService.ts';
7
7
  import type { PackageRepository } from '../../repository/PackageRepository.ts';
8
+ import type { PackageVersionBlockRepository } from '../../repository/PackageVersionBlockRepository.ts';
8
9
  import type { UserRepository } from '../../repository/UserRepository.ts';
9
10
  import { MiddlewareController } from '../middleware/index.ts';
10
11
  import type { UserRoleManager } from '../UserRoleManager.ts';
@@ -20,6 +21,7 @@ export declare abstract class AbstractController extends MiddlewareController {
20
21
  protected config: EggAppConfig;
21
22
  protected userRoleManager: UserRoleManager;
22
23
  protected packageRepository: PackageRepository;
24
+ protected packageVersionBlockRepository: PackageVersionBlockRepository;
23
25
  protected userRepository: UserRepository;
24
26
  protected userService: UserService;
25
27
  protected get sourceRegistry(): string;
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Inject } from 'egg';
10
+ import { Inject, EggAppConfig, Logger } from 'egg';
11
11
  import { NotFoundError, UnavailableForLegalReasonsError } from 'egg/errors';
12
12
  import { SyncMode } from "../../common/constants.js";
13
13
  import { getFullname, getScopeAndName } from "../../common/PackageUtil.js";
@@ -127,6 +127,13 @@ export class AbstractController extends MiddlewareController {
127
127
  if (!packageVersion) {
128
128
  throw this.createPackageNotFoundErrorWithRedirect(pkg.fullname, version, allowSync);
129
129
  }
130
+ // version block (incl. dependency-isolation buffer): reject direct access to a blocked version
131
+ if (this.config.cnpmcore.enableBlockPackageVersion) {
132
+ const blockResult = await this.packageVersionBlockRepository.isVersionBlocked(pkg.packageId, version);
133
+ if (blockResult.blocked) {
134
+ throw this.createPackageBlockError(blockResult.reason, pkg.fullname, version);
135
+ }
136
+ }
130
137
  return packageVersion;
131
138
  }
132
139
  getAndCheckVersionFromFilename(ctx, fullname, filenameWithVersion) {
@@ -150,11 +157,11 @@ export class AbstractController extends MiddlewareController {
150
157
  }
151
158
  __decorate([
152
159
  Inject(),
153
- __metadata("design:type", Function)
160
+ __metadata("design:type", Logger)
154
161
  ], AbstractController.prototype, "logger", void 0);
155
162
  __decorate([
156
163
  Inject(),
157
- __metadata("design:type", Object)
164
+ __metadata("design:type", EggAppConfig)
158
165
  ], AbstractController.prototype, "config", void 0);
159
166
  __decorate([
160
167
  Inject(),
@@ -164,6 +171,10 @@ __decorate([
164
171
  Inject(),
165
172
  __metadata("design:type", Function)
166
173
  ], AbstractController.prototype, "packageRepository", void 0);
174
+ __decorate([
175
+ Inject(),
176
+ __metadata("design:type", Function)
177
+ ], AbstractController.prototype, "packageVersionBlockRepository", void 0);
167
178
  __decorate([
168
179
  Inject(),
169
180
  __metadata("design:type", Function)
@@ -172,4 +183,4 @@ __decorate([
172
183
  Inject(),
173
184
  __metadata("design:type", Function)
174
185
  ], AbstractController.prototype, "userService", void 0);
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9BYnN0cmFjdENvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFnQixNQUFNLEVBQXdCLE1BQU0sS0FBSyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1QyxNQUFNLG9CQUFxQixTQUFRLGFBQWE7Q0FFL0M7QUFFRCxNQUFNLHVCQUF3QixTQUFRLGFBQWE7SUFFakQsWUFBWSxRQUFnQjtRQUMxQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBZ0Isa0JBQW1CLFNBQVEsb0JBQW9CO0lBY25FLElBQWMsY0FBYztRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBYyxVQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDekQsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFhO1FBQ3BDLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENB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
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9BYnN0cmFjdENvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLCtCQUErQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBUTNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUMsTUFBTSxvQkFBcUIsU0FBUSxhQUFhO0NBRS9DO0FBRUQsTUFBTSx1QkFBd0IsU0FBUSxhQUFhO0lBRWpELFlBQVksUUFBZ0I7UUFDMUIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLG9CQUFvQjtJQWdCbkUsSUFBYyxjQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFjLFVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFB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
@@ -3,7 +3,6 @@ import { type BlockPackageType } from '../typebox.ts';
3
3
  import { AbstractController } from './AbstractController.ts';
4
4
  export declare class PackageBlockController extends AbstractController {
5
5
  private packageManagerService;
6
- private packageVersionBlockRepository;
7
6
  blockPackage(ctx: Context, fullname: string, data: BlockPackageType): Promise<{
8
7
  ok: boolean;
9
8
  id: string;
@@ -17,8 +16,18 @@ export declare class PackageBlockController extends AbstractController {
17
16
  id: string;
18
17
  version: string;
19
18
  reason: string;
19
+ scope: string;
20
20
  created: Date;
21
21
  modified: Date;
22
22
  }[];
23
23
  }>;
24
+ blockPackageVersion(ctx: Context, fullname: string, version: string, data: BlockPackageType): Promise<{
25
+ ok: boolean;
26
+ id: string;
27
+ package_id: string;
28
+ version: string;
29
+ }>;
30
+ unblockPackageVersion(ctx: Context, fullname: string, version: string): Promise<{
31
+ ok: boolean;
32
+ }>;
24
33
  }
@@ -54,21 +54,55 @@ let PackageBlockController = class PackageBlockController extends AbstractContro
54
54
  id: block.packageVersionBlockId,
55
55
  version: block.version,
56
56
  reason: block.reason,
57
+ scope: block.version === '*' ? 'package' : 'version',
57
58
  created: block.createdAt,
58
59
  modified: block.updatedAt,
59
60
  };
60
61
  }),
61
62
  };
62
63
  }
64
+ async blockPackageVersion(ctx, fullname, version, data) {
65
+ // Check if feature is enabled
66
+ if (!this.config.cnpmcore.enableBlockPackageVersion) {
67
+ throw new ForbiddenError('Block package version feature is not enabled');
68
+ }
69
+ const params = { fullname, reason: data.reason };
70
+ ctx.tValidate(BlockPackageRule, params);
71
+ const packageEntity = await this.getPackageEntityByFullname(params.fullname);
72
+ if (packageEntity.isPrivate) {
73
+ throw new ForbiddenError(`Can't block private package "${params.fullname}"`);
74
+ }
75
+ const authorized = await this.userRoleManager.getAuthorizedUserAndToken(ctx);
76
+ const block = await this.packageManagerService.blockPackageVersion(packageEntity, version, `${params.reason} (operator: ${authorized?.user.name}/${authorized?.user.userId})`);
77
+ ctx.logger.info('[PackageBlockController.blockPackageVersion:success] fullname: %s, version: %s, packageId: %s, packageVersionBlockId: %s', fullname, version, packageEntity.packageId, block.packageVersionBlockId);
78
+ ctx.status = 201;
79
+ return {
80
+ ok: true,
81
+ id: block.packageVersionBlockId,
82
+ package_id: packageEntity.packageId,
83
+ version,
84
+ };
85
+ }
86
+ async unblockPackageVersion(ctx, fullname, version) {
87
+ // Check if feature is enabled
88
+ if (!this.config.cnpmcore.enableBlockPackageVersion) {
89
+ throw new ForbiddenError('Block package version feature is not enabled');
90
+ }
91
+ const packageEntity = await this.getPackageEntityByFullname(fullname);
92
+ if (packageEntity.isPrivate) {
93
+ throw new ForbiddenError(`Can't unblock private package "${fullname}"`);
94
+ }
95
+ await this.packageManagerService.unblockPackageVersion(packageEntity, version);
96
+ ctx.logger.info('[PackageBlockController.unblockPackageVersion:success] fullname: %s, version: %s, packageId: %s', fullname, version, packageEntity.packageId);
97
+ return {
98
+ ok: true,
99
+ };
100
+ }
63
101
  };
64
102
  __decorate([
65
103
  Inject(),
66
104
  __metadata("design:type", Function)
67
105
  ], PackageBlockController.prototype, "packageManagerService", void 0);
68
- __decorate([
69
- Inject(),
70
- __metadata("design:type", Function)
71
- ], PackageBlockController.prototype, "packageVersionBlockRepository", void 0);
72
106
  __decorate([
73
107
  HTTPMethod({
74
108
  // PUT /-/package/:fullname/blocks
@@ -107,8 +141,37 @@ __decorate([
107
141
  __metadata("design:paramtypes", [String]),
108
142
  __metadata("design:returntype", Promise)
109
143
  ], PackageBlockController.prototype, "listPackageBlocks", null);
144
+ __decorate([
145
+ HTTPMethod({
146
+ // PUT /-/package/:fullname/blocks/:version
147
+ path: `/-/package/:fullname(${FULLNAME_REG_STRING})/blocks/:version`,
148
+ method: HTTPMethodEnum.PUT,
149
+ }),
150
+ Middleware(AdminAccess),
151
+ __param(0, HTTPContext()),
152
+ __param(1, HTTPParam()),
153
+ __param(2, HTTPParam()),
154
+ __param(3, HTTPBody()),
155
+ __metadata("design:type", Function),
156
+ __metadata("design:paramtypes", [Context, String, String, Object]),
157
+ __metadata("design:returntype", Promise)
158
+ ], PackageBlockController.prototype, "blockPackageVersion", null);
159
+ __decorate([
160
+ HTTPMethod({
161
+ // DELETE /-/package/:fullname/blocks/:version
162
+ path: `/-/package/:fullname(${FULLNAME_REG_STRING})/blocks/:version`,
163
+ method: HTTPMethodEnum.DELETE,
164
+ }),
165
+ Middleware(AdminAccess),
166
+ __param(0, HTTPContext()),
167
+ __param(1, HTTPParam()),
168
+ __param(2, HTTPParam()),
169
+ __metadata("design:type", Function),
170
+ __metadata("design:paramtypes", [Context, String, String]),
171
+ __metadata("design:returntype", Promise)
172
+ ], PackageBlockController.prototype, "unblockPackageVersion", null);
110
173
  PackageBlockController = __decorate([
111
174
  HTTPController()
112
175
  ], PackageBlockController);
113
176
  export { PackageBlockController };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUJsb2NrQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZUJsb2NrQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEVBQ1IsY0FBYyxFQUNkLFVBQVUsRUFDVixjQUFjLEVBQ2QsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxLQUFLLENBQUM7QUFDYixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3RELElBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXVCLFNBQVEsa0JBQWtCO0lBWXRELEFBQU4sS0FBSyxDQUFDLFlBQVksQ0FBZ0IsR0FBWSxFQUFlLFFBQWdCLEVBQWMsSUFBc0I7UUFDL0csTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksY0FBYyxDQUFDLGdDQUFnQyxNQUFNLENBQUMsUUFBUSxHQUFH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
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUJsb2NrQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZUJsb2NrQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEVBQ1IsY0FBYyxFQUNkLFVBQVUsRUFDVixjQUFjLEVBQ2QsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxLQUFLLENBQUM7QUFDYixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3RELElBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXVCLFNBQVEsa0JBQWtCO0lBVXRELEFBQU4sS0FBSyxDQUFDLFlBQVksQ0FBZ0IsR0FBWSxFQUFlLFFBQWdCLEVBQWMsSUFBc0I7UUFDL0csTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksY0FBYyxDQUFDLGdDQUFnQyxNQUFNLENBQUMsUUFBUSxHQUFH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
@@ -70,7 +70,10 @@ let PackageVersionFileController = class PackageVersionFileController extends Ab
70
70
  }
71
71
  return files;
72
72
  }
73
- const { manifest } = await this.packageManagerService.showPackageVersionManifest(scope, name, versionSpec, false, true);
73
+ const { blockReason, manifest } = await this.packageManagerService.showPackageVersionManifest(scope, name, versionSpec, false, true);
74
+ if (blockReason) {
75
+ throw this.createPackageBlockError(blockReason, fullname, versionSpec);
76
+ }
74
77
  // GET /foo/1.0.0/files => /foo/1.0.0/files/{main}
75
78
  // ignore empty entry exp: @types/node@20.2.5/
76
79
  const indexFile = manifest?.main || 'index.js';
@@ -245,4 +248,4 @@ PackageVersionFileController = __decorate([
245
248
  HTTPController()
246
249
  ], PackageVersionFileController);
247
250
  export { PackageVersionFileController };
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsT0FBTyxFQUNQLGNBQWMsRUFDZCxVQUFVLEVBQ1YsY0FBYyxFQUNkLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLEtBQUssQ0FBQztBQUNiLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBTW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBaUI3RCxTQUFTLGNBQWMsQ0FBQyxJQUF3QjtJQUM5QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLE1BQU07UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztRQUM5QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sa0JBQWtCLEdBQUcsa0NBQWtD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
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsT0FBTyxFQUNQLGNBQWMsRUFDZCxVQUFVLEVBQ1YsY0FBYyxFQUNkLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLEtBQUssQ0FBQztBQUNiLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBTW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBaUI3RCxTQUFTLGNBQWMsQ0FBQyxJQUF3QjtJQUM5QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLE1BQU07UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztRQUM5QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sa0JBQWtCLEdBQUcsa0NBQWtD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
@@ -0,0 +1,8 @@
1
+ export declare const DEPENDENCY_ISOLATION_RELEASE_QUEUE = "dependency_isolation_release";
2
+ export declare class BufferReleaseDispatcher {
3
+ private readonly packageVersionBlockRepository;
4
+ private readonly queueAdapter;
5
+ private readonly cacheAdapter;
6
+ private readonly logger;
7
+ subscribe(): Promise<void>;
8
+ }
@@ -0,0 +1,72 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Inject, Logger } from 'egg';
11
+ import { Schedule, ScheduleType } from 'egg/schedule';
12
+ // dependency isolation release work queue: https://github.com/cnpm/cnpmcore/issues/1057
13
+ export const DEPENDENCY_ISOLATION_RELEASE_QUEUE = 'dependency_isolation_release';
14
+ // Dispatcher: lightweight single-instance scan of expired buffer records, grouped by
15
+ // package and pushed to the release queue. The heavy unblock work is done by
16
+ // BufferReleaseWorker (ScheduleType.ALL) so it is distributed across the cluster.
17
+ // The DB rows are the source of truth — a dropped queue message is re-enqueued on the
18
+ // next run, and the batch release is idempotent.
19
+ let BufferReleaseDispatcher = class BufferReleaseDispatcher {
20
+ async subscribe() {
21
+ // intentionally NOT gated on enableDependencyIsolation: the flag only gates *new* isolation
22
+ // decisions at publish; existing buffer rows must still be drained/released even after the
23
+ // flag is turned off (e.g. rollback), otherwise those versions stay blocked forever.
24
+ // lock TTL is kept comfortably larger than the schedule interval (60s) so a slow scan/enqueue
25
+ // run cannot let the lock expire mid-run and a parallel node re-scan + double-enqueue.
26
+ await this.cacheAdapter.usingLock('BufferReleaseDispatcher', 120, async () => {
27
+ // per-cycle batch cap: bounds backlog catch-up / re-enqueue churn (indexed query, cheap)
28
+ const expiredBlocks = await this.packageVersionBlockRepository.findExpiredBufferedVersions(500);
29
+ if (expiredBlocks.length === 0)
30
+ return;
31
+ // group by package so the worker rebuilds each package's manifest only once
32
+ const versionsByPackageId = new Map();
33
+ for (const block of expiredBlocks) {
34
+ const versions = versionsByPackageId.get(block.packageId) ?? [];
35
+ versions.push(block.version);
36
+ versionsByPackageId.set(block.packageId, versions);
37
+ }
38
+ for (const [packageId, versions] of versionsByPackageId) {
39
+ await this.queueAdapter.push(DEPENDENCY_ISOLATION_RELEASE_QUEUE, { packageId, versions });
40
+ }
41
+ this.logger.info('[BufferReleaseDispatcher:subscribe] enqueued %d packages, %d versions', versionsByPackageId.size, expiredBlocks.length);
42
+ });
43
+ }
44
+ };
45
+ __decorate([
46
+ Inject(),
47
+ __metadata("design:type", Function)
48
+ ], BufferReleaseDispatcher.prototype, "packageVersionBlockRepository", void 0);
49
+ __decorate([
50
+ Inject(),
51
+ __metadata("design:type", Object)
52
+ ], BufferReleaseDispatcher.prototype, "queueAdapter", void 0);
53
+ __decorate([
54
+ Inject(),
55
+ __metadata("design:type", Function)
56
+ ], BufferReleaseDispatcher.prototype, "cacheAdapter", void 0);
57
+ __decorate([
58
+ Inject(),
59
+ __metadata("design:type", Logger)
60
+ ], BufferReleaseDispatcher.prototype, "logger", void 0);
61
+ BufferReleaseDispatcher = __decorate([
62
+ Schedule({
63
+ type: ScheduleType.WORKER,
64
+ scheduleData: {
65
+ interval: 60_000,
66
+ },
67
+ }, {
68
+ immediate: process.env.NODE_ENV !== 'test',
69
+ })
70
+ ], BufferReleaseDispatcher);
71
+ export { BufferReleaseDispatcher };
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVmZmVyUmVsZWFzZURpc3BhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9zY2hlZHVsZS9CdWZmZXJSZWxlYXNlRGlzcGF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBdUIsTUFBTSxjQUFjLENBQUM7QUFNM0Usd0ZBQXdGO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLDhCQUE4QixDQUFDO0FBRWpGLHFGQUFxRjtBQUNyRiw2RUFBNkU7QUFDN0Usa0ZBQWtGO0FBQ2xGLHNGQUFzRjtBQUN0RixpREFBaUQ7QUFZMUMsSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUFhbEMsS0FBSyxDQUFDLFNBQVM7UUFDYiw0RkFBNEY7UUFDNUYsMkZBQTJGO1FBQzNGLHFGQUFxRjtRQUNyRiw4RkFBOEY7UUFDOUYsdUZBQXVGO1FBQ3ZGLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzNFLHlGQUF5RjtZQUN6RixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyw2QkFBNkIsQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPO1lBQ3ZDLDRFQUE0RTtZQUM1RSxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO1lBQ3hELEtBQUssTUFBTSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0IsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUNELEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4RCxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUYsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHVFQUF1RSxFQUN2RSxtQkFBbUIsQ0FBQyxJQUFJLEVBQ3hCLGFBQWEsQ0FBQyxNQUFNLENBQ3JCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBdENrQjtJQURoQixNQUFNLEVBQUU7OzhFQUNxRTtBQUc3RDtJQURoQixNQUFNLEVBQUU7OzZEQUNtQztBQUczQjtJQURoQixNQUFNLEVBQUU7OzZEQUNtQztBQUczQjtJQURoQixNQUFNLEVBQUU7OEJBQ2dCLE1BQU07dURBQUM7QUFYckIsdUJBQXVCO0lBWG5DLFFBQVEsQ0FDUDtRQUNFLElBQUksRUFBRSxZQUFZLENBQUMsTUFBTTtRQUN6QixZQUFZLEVBQUU7WUFDWixRQUFRLEVBQUUsTUFBTTtTQUNqQjtLQUNGLEVBQ0Q7UUFDRSxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtLQUMzQyxDQUNGO0dBQ1ksdUJBQXVCLENBd0NuQyJ9
@@ -0,0 +1,6 @@
1
+ export declare class BufferReleaseWorker {
2
+ private readonly queueAdapter;
3
+ private readonly packageManagerService;
4
+ private readonly logger;
5
+ subscribe(): Promise<void>;
6
+ }
@@ -0,0 +1,68 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Inject, Logger } from 'egg';
11
+ import { Schedule, ScheduleType } from 'egg/schedule';
12
+ import { DEPENDENCY_ISOLATION_RELEASE_QUEUE } from "./BufferReleaseDispatcher.js";
13
+ // re-entrancy guard: each release job does a full manifest rebuild + storage write, which can
14
+ // exceed the 1s interval; without this the scheduler would run overlapping drains on the same
15
+ // node (same pattern as SyncPackageWorker / TriggerHookWorker).
16
+ let executing = false;
17
+ // Worker: runs on every node (ScheduleType.ALL) and pops release jobs enqueued by
18
+ // BufferReleaseDispatcher, then performs the heavy per-package batch unblock. The queue
19
+ // pop is atomic, so each job is handled by a single node and the unblock load (manifest
20
+ // rebuild + storage write) is distributed across the cluster — same model as SyncPackageWorker.
21
+ let BufferReleaseWorker = class BufferReleaseWorker {
22
+ async subscribe() {
23
+ // intentionally NOT gated on enableDependencyIsolation: must keep draining/releasing buffer
24
+ // rows enqueued before the flag was turned off. when no rows are buffered the queue is empty,
25
+ // so this is a cheap no-op pop.
26
+ // skip this tick if a previous drain on this node is still running
27
+ if (executing)
28
+ return;
29
+ executing = true;
30
+ try {
31
+ let job = await this.queueAdapter.pop(DEPENDENCY_ISOLATION_RELEASE_QUEUE);
32
+ while (job) {
33
+ try {
34
+ await this.packageManagerService.releaseBufferedVersions(job.packageId, job.versions);
35
+ }
36
+ catch (err) {
37
+ this.logger.error('[BufferReleaseWorker:subscribe] release packageId: %s failed: %s', job.packageId, err);
38
+ }
39
+ job = await this.queueAdapter.pop(DEPENDENCY_ISOLATION_RELEASE_QUEUE);
40
+ }
41
+ }
42
+ finally {
43
+ executing = false;
44
+ }
45
+ }
46
+ };
47
+ __decorate([
48
+ Inject(),
49
+ __metadata("design:type", Object)
50
+ ], BufferReleaseWorker.prototype, "queueAdapter", void 0);
51
+ __decorate([
52
+ Inject(),
53
+ __metadata("design:type", Function)
54
+ ], BufferReleaseWorker.prototype, "packageManagerService", void 0);
55
+ __decorate([
56
+ Inject(),
57
+ __metadata("design:type", Logger)
58
+ ], BufferReleaseWorker.prototype, "logger", void 0);
59
+ BufferReleaseWorker = __decorate([
60
+ Schedule({
61
+ type: ScheduleType.ALL,
62
+ scheduleData: {
63
+ interval: 1000,
64
+ },
65
+ })
66
+ ], BufferReleaseWorker);
67
+ export { BufferReleaseWorker };
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVmZmVyUmVsZWFzZVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0J1ZmZlclJlbGVhc2VXb3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBSTNFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT2xGLDhGQUE4RjtBQUM5Riw4RkFBOEY7QUFDOUYsZ0VBQWdFO0FBQ2hFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUV0QixrRkFBa0Y7QUFDbEYsd0ZBQXdGO0FBQ3hGLHdGQUF3RjtBQUN4RixnR0FBZ0c7QUFPekYsSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFVOUIsS0FBSyxDQUFDLFNBQVM7UUFDYiw0RkFBNEY7UUFDNUYsOEZBQThGO1FBQzlGLGdDQUFnQztRQUNoQyxtRUFBbUU7UUFDbkUsSUFBSSxTQUFTO1lBQUUsT0FBTztRQUN0QixTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQztZQUNILElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQWEsa0NBQWtDLENBQUMsQ0FBQztZQUN0RixPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEYsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtFQUFrRSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzVHLENBQUM7Z0JBQ0QsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQWEsa0NBQWtDLENBQUMsQ0FBQztZQUNwRixDQUFDO1FBQ0gsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUE3QmtCO0lBRGhCLE1BQU0sRUFBRTs7eURBQ21DO0FBRzNCO0lBRGhCLE1BQU0sRUFBRTs7a0VBQ3FEO0FBRzdDO0lBRGhCLE1BQU0sRUFBRTs4QkFDZ0IsTUFBTTttREFBQztBQVJyQixtQkFBbUI7SUFOL0IsUUFBUSxDQUFpQjtRQUN4QixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUc7UUFDdEIsWUFBWSxFQUFFO1lBQ1osUUFBUSxFQUFFLElBQUk7U0FDZjtLQUNGLENBQUM7R0FDVyxtQkFBbUIsQ0ErQi9CIn0=
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Inject } from 'egg';
10
+ import { Inject, Config, Logger } from 'egg';
11
11
  import { Schedule, ScheduleType } from 'egg/schedule';
12
12
  let ChangesStreamWorker = class ChangesStreamWorker {
13
13
  async subscribe() {
@@ -26,11 +26,11 @@ __decorate([
26
26
  ], ChangesStreamWorker.prototype, "changesStreamService", void 0);
27
27
  __decorate([
28
28
  Inject(),
29
- __metadata("design:type", Object)
29
+ __metadata("design:type", Config)
30
30
  ], ChangesStreamWorker.prototype, "config", void 0);
31
31
  __decorate([
32
32
  Inject(),
33
- __metadata("design:type", Function)
33
+ __metadata("design:type", Logger)
34
34
  ], ChangesStreamWorker.prototype, "logger", void 0);
35
35
  ChangesStreamWorker = __decorate([
36
36
  Schedule({
@@ -41,4 +41,4 @@ ChangesStreamWorker = __decorate([
41
41
  })
42
42
  ], ChangesStreamWorker);
43
43
  export { ChangesStreamWorker };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0NoYW5nZXNTdHJlYW1Xb3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxLQUFLLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBVXBFLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBVTlCLEtBQUssQ0FBQyxTQUFTO1FBQ2IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQUUsT0FBTztRQUNsRyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0YsQ0FBQTtBQWZrQjtJQURoQixNQUFNLEVBQUU7O2lFQUNtRDtBQUczQztJQURoQixNQUFNLEVBQUU7O21EQUN1QjtBQUdmO0lBRGhCLE1BQU0sRUFBRTs7bURBQ3VCO0FBUnJCLG1CQUFtQjtJQU4vQixRQUFRLENBQWlCO1FBQ3hCLElBQUksRUFBRSxZQUFZLENBQUMsTUFBTTtRQUN6QixZQUFZLEVBQUU7WUFDWixRQUFRLEVBQUUsTUFBTTtTQUNqQjtLQUNGLENBQUM7R0FDVyxtQkFBbUIsQ0FpQi9CIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0NoYW5nZXNTdHJlYW1Xb3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQVVwRSxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQVU5QixLQUFLLENBQUMsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtZQUFFLE9BQU87UUFDbEcsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RSxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGLENBQUE7QUFma0I7SUFEaEIsTUFBTSxFQUFFOztpRUFDbUQ7QUFHM0M7SUFEaEIsTUFBTSxFQUFFOzhCQUNnQixNQUFNO21EQUFDO0FBR2Y7SUFEaEIsTUFBTSxFQUFFOzhCQUNnQixNQUFNO21EQUFDO0FBUnJCLG1CQUFtQjtJQU4vQixRQUFRLENBQWlCO1FBQ3hCLElBQUksRUFBRSxZQUFZLENBQUMsTUFBTTtRQUN6QixZQUFZLEVBQUU7WUFDWixRQUFRLEVBQUUsTUFBTTtTQUNqQjtLQUNGLENBQUM7R0FDVyxtQkFBbUIsQ0FpQi9CIn0=
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Inject } from 'egg';
10
+ import { Inject, Logger, EggAppConfig } from 'egg';
11
11
  import { Schedule, ScheduleType } from 'egg/schedule';
12
12
  import { SyncMode } from "../../common/constants.js";
13
13
  import { isPkgManifest } from "../../core/entity/Package.js";
@@ -47,11 +47,11 @@ let CheckProxyCacheUpdateWorker = class CheckProxyCacheUpdateWorker {
47
47
  };
48
48
  __decorate([
49
49
  Inject(),
50
- __metadata("design:type", Object)
50
+ __metadata("design:type", EggAppConfig)
51
51
  ], CheckProxyCacheUpdateWorker.prototype, "config", void 0);
52
52
  __decorate([
53
53
  Inject(),
54
- __metadata("design:type", Function)
54
+ __metadata("design:type", Logger)
55
55
  ], CheckProxyCacheUpdateWorker.prototype, "logger", void 0);
56
56
  __decorate([
57
57
  Inject(),
@@ -70,4 +70,4 @@ CheckProxyCacheUpdateWorker = __decorate([
70
70
  })
71
71
  ], CheckProxyCacheUpdateWorker);
72
72
  export { CheckProxyCacheUpdateWorker };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tQcm94eUNhY2hlVXBkYXRlV29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvc2NoZWR1bGUvQ2hlY2tQcm94eUNhY2hlVXBkYXRlV29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sS0FBSyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVXRELElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO0lBYXRDLEtBQUssQ0FBQyxTQUFTO1FBQ2IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQzdELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztZQUNuRSxRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVM7U0FDVixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDO29CQUNILElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO3dCQUNqQyw0Q0FBNEM7d0JBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFOzRCQUN4RixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7NEJBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTt5QkFDeEIsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLG1GQUFtRixFQUNuRixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUNELFNBQVMsRUFBRSxDQUFDO1lBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDO2dCQUM3RCxRQUFRLEVBQUUsQ0FBQztnQkFDWCxTQUFTO2FBQ1YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBOUNrQjtJQURoQixNQUFNLEVBQUU7OzJEQUM2QjtBQUdyQjtJQURoQixNQUFNLEVBQUU7OzJEQUN1QjtBQUd4QjtJQURQLE1BQU0sRUFBRTs7c0VBQ29DO0FBRzVCO0lBRGhCLE1BQU0sRUFBRTs7eUVBQ21EO0FBWGpELDJCQUEyQjtJQU52QyxRQUFRLENBQWE7UUFDcEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNO1FBQ3pCLFlBQVksRUFBRTtZQUNaLElBQUksRUFBRSxXQUFXLEVBQUUseUJBQXlCO1NBQzdDO0tBQ0YsQ0FBQztHQUNXLDJCQUEyQixDQWdEdkMifQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tQcm94eUNhY2hlVXBkYXRlV29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvc2NoZWR1bGUvQ2hlY2tQcm94eUNhY2hlVXBkYXRlV29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFFdkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVV0RCxJQUFNLDJCQUEyQixHQUFqQyxNQUFNLDJCQUEyQjtJQWF0QyxLQUFLLENBQUMsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUM3RCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUM7WUFDbkUsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTO1NBQ1YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQztvQkFDSCxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzt3QkFDakMsNENBQTRDO3dCQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTs0QkFDeEYsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFROzRCQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7eUJBQ3hCLENBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxtRkFBbUYsRUFDbkYsU0FBUyxFQUNULElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztvQkFDSixDQUFDO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUM7WUFDRCxTQUFTLEVBQUUsQ0FBQztZQUNaLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztnQkFDN0QsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsU0FBUzthQUNWLENBQUMsQ0FBQztZQUNILElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQTlDa0I7SUFEaEIsTUFBTSxFQUFFOzhCQUNnQixZQUFZOzJEQUFDO0FBR3JCO0lBRGhCLE1BQU0sRUFBRTs4QkFDZ0IsTUFBTTsyREFBQztBQUd4QjtJQURQLE1BQU0sRUFBRTs7c0VBQ29DO0FBRzVCO0lBRGhCLE1BQU0sRUFBRTs7eUVBQ21EO0FBWGpELDJCQUEyQjtJQU52QyxRQUFRLENBQWE7UUFDcEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNO1FBQ3pCLFlBQVksRUFBRTtZQUNaLElBQUksRUFBRSxXQUFXLEVBQUUseUJBQXlCO1NBQzdDO0tBQ0YsQ0FBQztHQUNXLDJCQUEyQixDQWdEdkMifQ==
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Inject } from 'egg';
10
+ import { Inject, EggAppConfig, Logger } from 'egg';
11
11
  import { Schedule, ScheduleType } from 'egg/schedule';
12
12
  import { SyncMode } from "../../common/constants.js";
13
13
  import { getScopeAndName } from "../../common/PackageUtil.js";
@@ -80,11 +80,11 @@ __decorate([
80
80
  ], CheckRecentlyUpdatedPackages.prototype, "packageRepository", void 0);
81
81
  __decorate([
82
82
  Inject(),
83
- __metadata("design:type", Object)
83
+ __metadata("design:type", EggAppConfig)
84
84
  ], CheckRecentlyUpdatedPackages.prototype, "config", void 0);
85
85
  __decorate([
86
86
  Inject(),
87
- __metadata("design:type", Function)
87
+ __metadata("design:type", Logger)
88
88
  ], CheckRecentlyUpdatedPackages.prototype, "logger", void 0);
89
89
  __decorate([
90
90
  Inject(),
@@ -100,4 +100,4 @@ CheckRecentlyUpdatedPackages = __decorate([
100
100
  })
101
101
  ], CheckRecentlyUpdatedPackages);
102
102
  export { CheckRecentlyUpdatedPackages };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tSZWNlbnRseVVwZGF0ZWRQYWNrYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0NoZWNrUmVjZW50bHlVcGRhdGVkUGFja2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBb0MsTUFBTSxLQUFLLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJOUQsNENBQTRDO0FBUXJDLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTRCO0lBZXZDLEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsSUFDRSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzlELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCO1lBRWhELE9BQU87UUFDVCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxLQUFLLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDM0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztZ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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tSZWNlbnRseVVwZGF0ZWRQYWNrYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0NoZWNrUmVjZW50bHlVcGRhdGVkUGFja2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSTlELDRDQUE0QztBQVFyQyxJQUFNLDRCQUE0QixHQUFsQyxNQUFNLDRCQUE0QjtJQWV2QyxLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLElBQ0Usc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM5RCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQjtZQUVoRCxPQUFPO1FBQ1QsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsS0FBSyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQzNELE1BQU0sTUFBTSxHQUFHLFFB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