cnpmcore 1.9.1 → 1.11.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 (110) hide show
  1. package/dist/app/common/LogUtil.d.ts +1 -0
  2. package/dist/app/common/LogUtil.js +8 -0
  3. package/dist/app/common/adapter/NPMRegistry.d.ts +2 -0
  4. package/dist/app/common/adapter/NPMRegistry.js +5 -2
  5. package/dist/app/common/adapter/binary/NodePreGypBinary.js +20 -5
  6. package/dist/app/common/adapter/changesStream/AbstractChangesStream.d.ts +19 -0
  7. package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +30 -0
  8. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.d.ts +8 -0
  9. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.js +62 -0
  10. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.d.ts +9 -0
  11. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.js +73 -0
  12. package/dist/app/common/adapter/changesStream/NpmChangesStream.d.ts +8 -0
  13. package/dist/app/common/adapter/changesStream/NpmChangesStream.js +51 -0
  14. package/dist/app/common/enum/Hook.d.ts +18 -0
  15. package/dist/app/common/enum/Hook.js +24 -0
  16. package/dist/app/common/enum/Registry.d.ts +5 -0
  17. package/dist/app/common/enum/Registry.js +10 -0
  18. package/dist/app/common/enum/Task.d.ts +3 -1
  19. package/dist/app/common/enum/Task.js +3 -1
  20. package/dist/app/common/typing.d.ts +5 -0
  21. package/dist/app/core/entity/Hook.d.ts +30 -0
  22. package/dist/app/core/entity/Hook.js +43 -0
  23. package/dist/app/core/entity/HookEvent.d.ts +36 -0
  24. package/dist/app/core/entity/HookEvent.js +59 -0
  25. package/dist/app/core/entity/Package.d.ts +2 -0
  26. package/dist/app/core/entity/Package.js +2 -1
  27. package/dist/app/core/entity/Registry.d.ts +23 -0
  28. package/dist/app/core/entity/Registry.js +22 -0
  29. package/dist/app/core/entity/Scope.d.ts +16 -0
  30. package/dist/app/core/entity/Scope.js +19 -0
  31. package/dist/app/core/entity/Task.d.ts +50 -8
  32. package/dist/app/core/entity/Task.js +61 -9
  33. package/dist/app/core/event/ChangesStream.d.ts +10 -5
  34. package/dist/app/core/event/ChangesStream.js +46 -15
  35. package/dist/app/core/event/index.d.ts +12 -4
  36. package/dist/app/core/event/index.js +1 -1
  37. package/dist/app/core/service/BinarySyncerService.d.ts +3 -3
  38. package/dist/app/core/service/ChangesStreamService.d.ts +15 -5
  39. package/dist/app/core/service/ChangesStreamService.js +120 -112
  40. package/dist/app/core/service/CreateHookTriggerService.d.ts +10 -0
  41. package/dist/app/core/service/CreateHookTriggerService.js +83 -0
  42. package/dist/app/core/service/HookManageService.d.ts +29 -0
  43. package/dist/app/core/service/HookManageService.js +77 -0
  44. package/dist/app/core/service/HookTriggerService.d.ts +14 -0
  45. package/dist/app/core/service/HookTriggerService.js +113 -0
  46. package/dist/app/core/service/PackageManagerService.d.ts +1 -0
  47. package/dist/app/core/service/PackageManagerService.js +8 -5
  48. package/dist/app/core/service/PackageSyncerService.d.ts +7 -4
  49. package/dist/app/core/service/PackageSyncerService.js +23 -4
  50. package/dist/app/core/service/RegistryManagerService.d.ts +29 -0
  51. package/dist/app/core/service/RegistryManagerService.js +97 -0
  52. package/dist/app/core/service/ScopeManagerService.d.ts +27 -0
  53. package/dist/app/core/service/ScopeManagerService.js +58 -0
  54. package/dist/app/core/service/TaskService.d.ts +4 -3
  55. package/dist/app/core/service/TaskService.js +10 -5
  56. package/dist/app/core/service/UserService.d.ts +1 -1
  57. package/dist/app/core/service/UserService.js +3 -3
  58. package/dist/app/core/util/ChangesStreamTransform.d.ts +8 -0
  59. package/dist/app/core/util/ChangesStreamTransform.js +50 -0
  60. package/dist/app/core/util/EntityUtil.d.ts +13 -0
  61. package/dist/app/core/util/EntityUtil.js +13 -1
  62. package/dist/app/infra/QueueAdapter.d.ts +16 -0
  63. package/dist/app/infra/QueueAdapter.js +50 -0
  64. package/dist/app/port/UserRoleManager.d.ts +1 -2
  65. package/dist/app/port/controller/HookController.d.ts +23 -0
  66. package/dist/app/port/controller/HookController.js +133 -0
  67. package/dist/app/port/controller/PackageSyncController.d.ts +1 -0
  68. package/dist/app/port/controller/PackageSyncController.js +13 -2
  69. package/dist/app/port/controller/RegistryController.d.ts +20 -0
  70. package/dist/app/port/controller/RegistryController.js +131 -0
  71. package/dist/app/port/controller/ScopeController.d.ts +14 -0
  72. package/dist/app/port/controller/ScopeController.js +68 -0
  73. package/dist/app/port/controller/convertor/HookConvertor.d.ts +37 -0
  74. package/dist/app/port/controller/convertor/HookConvertor.js +29 -0
  75. package/dist/app/port/middleware/AdminAccess.d.ts +2 -0
  76. package/dist/app/port/middleware/AdminAccess.js +15 -0
  77. package/dist/app/port/typebox.d.ts +48 -0
  78. package/dist/app/port/typebox.js +126 -2
  79. package/dist/app/repository/HookRepository.d.ts +19 -0
  80. package/dist/app/repository/HookRepository.js +69 -0
  81. package/dist/app/repository/RegistryRepository.d.ts +12 -0
  82. package/dist/app/repository/RegistryRepository.js +64 -0
  83. package/dist/app/repository/ScopeRepository.d.ts +14 -0
  84. package/dist/app/repository/ScopeRepository.js +73 -0
  85. package/dist/app/repository/TaskRepository.d.ts +5 -3
  86. package/dist/app/repository/TaskRepository.js +32 -2
  87. package/dist/app/repository/UserRepository.d.ts +1 -0
  88. package/dist/app/repository/UserRepository.js +7 -1
  89. package/dist/app/repository/model/HistoryTask.js +2 -2
  90. package/dist/app/repository/model/Hook.d.ts +15 -0
  91. package/dist/app/repository/model/Hook.js +58 -0
  92. package/dist/app/repository/model/Package.d.ts +1 -0
  93. package/dist/app/repository/model/Package.js +4 -1
  94. package/dist/app/repository/model/PackageVersionBlock.js +2 -2
  95. package/dist/app/repository/model/Registry.d.ts +13 -0
  96. package/dist/app/repository/model/Registry.js +50 -0
  97. package/dist/app/repository/model/Scope.d.ts +9 -0
  98. package/dist/app/repository/model/Scope.js +39 -0
  99. package/dist/app/repository/model/Task.d.ts +1 -0
  100. package/dist/app/repository/model/Task.js +7 -2
  101. package/dist/app/schedule/CreateTriggerHookWorker.d.ts +8 -0
  102. package/dist/app/schedule/CreateTriggerHookWorker.js +51 -0
  103. package/dist/app/schedule/TriggerHookWorker.d.ts +8 -0
  104. package/dist/app/schedule/TriggerHookWorker.js +49 -0
  105. package/dist/config/binaries.js +8 -1
  106. package/dist/config/config.default.js +5 -1
  107. package/package.json +1 -1
  108. package/History.md +0 -101
  109. package/dist/app/common/adapter/QueueAdapter.d.ts +0 -7
  110. package/dist/app/common/adapter/QueueAdapter.js +0 -37
@@ -0,0 +1 @@
1
+ export declare function isoNow(): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isoNow = void 0;
4
+ function isoNow() {
5
+ return new Date().toISOString();
6
+ }
7
+ exports.isoNow = isoNow;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9jb21tb24vTG9nVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixNQUFNO0lBQ3BCLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRkQsd0JBRUMifQ==
@@ -5,7 +5,9 @@ export declare class NPMRegistry {
5
5
  private readonly httpclient;
6
6
  private config;
7
7
  private timeout;
8
+ registryHost: string;
8
9
  get registry(): string;
10
+ setRegistryHost(registryHost?: string): void;
9
11
  getFullManifests(fullname: string, retries?: number): Promise<{
10
12
  data: any;
11
13
  status: number;
@@ -15,7 +15,10 @@ let NPMRegistry = class NPMRegistry {
15
15
  this.timeout = 10000;
16
16
  }
17
17
  get registry() {
18
- return this.config.cnpmcore.sourceRegistry;
18
+ return this.registryHost || this.config.cnpmcore.sourceRegistry;
19
+ }
20
+ setRegistryHost(registryHost = '') {
21
+ this.registryHost = registryHost;
19
22
  }
20
23
  async getFullManifests(fullname, retries = 3) {
21
24
  // set query t=timestamp, make sure CDN cache disable
@@ -95,4 +98,4 @@ NPMRegistry = __decorate([
95
98
  })
96
99
  ], NPMRegistry);
97
100
  exports.NPMRegistry = NPMRegistry;
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlBNUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29tbW9uL2FkYXB0ZXIvTlBNUmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsOENBQTZDO0FBQzdDLHNDQUlxQjtBQVFyQixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUM7QUFNcEMsSUFBYSxXQUFXLEdBQXhCLE1BQWEsV0FBVztJQUF4QjtRQU9VLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFxRTFCLENBQUM7SUFuRUMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ3pELHFEQUFxRDtRQUNyRCxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDO1FBQ3ZGLElBQUksU0FBYyxDQUFDO1FBQ25CLE9BQU8sT0FBTyxHQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJO2dCQUNGLDhEQUE4RDtnQkFDOUQsOENBQThDO2dCQUM5QyxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZFO1lBQUMsT0FBTyxHQUFRLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxzQkFBc0I7b0JBQUUsTUFBTSxHQUFHLENBQUM7Z0JBQ25ELFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDakI7WUFDRCxPQUFPLEVBQUUsQ0FBQztZQUNWLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtnQkFD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
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlBNUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29tbW9uL2FkYXB0ZXIvTlBNUmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsOENBQTZDO0FBQzdDLHNDQUlxQjtBQVFyQixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUM7QUFNcEMsSUFBYSxXQUFXLEdBQXhCLE1BQWEsV0FBVztJQUF4QjtRQU9VLFlBQU8sR0FBRyxLQUFLLENBQUM7SUEwRTFCLENBQUM7SUF2RUMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUNsRSxDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQVksR0FBRyxFQUFFO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxPQUFPLEdBQUcsQ0FBQztRQUN6RCxxREFBcUQ7UUFDckQsc0NBQXNDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUN2RixJQUFJLFNBQWMsQ0FBQztRQUNuQixPQUFPLE9BQU8sR0FBRyxDQUFDLEVBQUU7WUFDbEIsSUFBSTtnQkFDRiw4REFBOEQ7Z0JBQzlELDhDQUE4QztnQkFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUN2RTtZQUFDLE9BQU8sR0FBUSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssc0JBQXNCO29CQUFFLE1BQU0s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
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodePreGypBinary = void 0;
4
+ const path_1 = require("path");
4
5
  const AbstractBinary_1 = require("./AbstractBinary");
5
6
  class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
6
7
  // https://github.com/mapbox/node-pre-gyp
@@ -32,7 +33,7 @@ class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
32
33
  .replace('{module_name}', moduleName);
33
34
  let currentDir = this.dirItems['/'];
34
35
  let versionPrefix = '';
35
- const remotePath = pkgVersion.binary.remote_path;
36
+ let remotePath = pkgVersion.binary.remote_path;
36
37
  const napiVersions = (_a = pkgVersion.binary.napi_versions) !== null && _a !== void 0 ? _a : [];
37
38
  if (((_b = this.binaryConfig.options) === null || _b === void 0 ? void 0 : _b.requiredNapiVersions) && napiVersions.length === 0)
38
39
  continue;
@@ -151,17 +152,31 @@ class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
151
152
  // "package_name": "{platform}-{arch}.tar.gz",
152
153
  // "module_path": "bin"
153
154
  // },
155
+ // handle {configuration}
156
+ // "binary": {
157
+ // "module_name": "wrtc",
158
+ // "module_path": "./build/{configuration}/",
159
+ // "remote_path": "./{module_name}/v{version}/{configuration}/",
160
+ // "package_name": "{platform}-{arch}.tar.gz",
161
+ // "host": "https://node-webrtc.s3.amazonaws.com"
162
+ // },
154
163
  for (const platform of nodePlatforms) {
155
164
  const archs = nodeArchs[platform];
156
165
  for (const arch of archs) {
157
- const name = binaryFile.replace('{platform}', platform)
166
+ const binaryFileName = binaryFile.replace('{platform}', platform)
158
167
  .replace('{arch}', arch);
168
+ remotePath = remotePath.replace('{module_name}', moduleName)
169
+ .replace('{name}', this.binaryConfig.category)
170
+ .replace('{version}', version)
171
+ .replace('{configuration}', 'Release');
172
+ const binaryFilePath = (0, path_1.join)('/', remotePath, binaryFileName);
173
+ const remoteUrl = `${this.binaryConfig.distUrl}${binaryFilePath}`;
159
174
  currentDir.push({
160
- name,
175
+ name: binaryFileName,
161
176
  date,
162
177
  size: '-',
163
178
  isDir: false,
164
- url: `${this.binaryConfig.distUrl}/${this.binaryConfig.category}${versionPrefix}/${name}`,
179
+ url: remoteUrl,
165
180
  ignoreDownloadStatuses: [404],
166
181
  });
167
182
  }
@@ -173,4 +188,4 @@ class NodePreGypBinary extends AbstractBinary_1.AbstractBinary {
173
188
  }
174
189
  }
175
190
  exports.NodePreGypBinary = NodePreGypBinary;
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZVByZUd5cEJpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvTm9kZVByZUd5cEJpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBMkU7QUFFM0UsTUFBYSxnQkFBaUIsU0FBUSwrQkFBYztJQUtsRCx5Q0FBeUM7SUFDekMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFXOztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLE1BQU0sR0FBRyw4QkFBOEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxRSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFVB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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZVByZUd5cEJpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvTm9kZVByZUd5cEJpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNEI7QUFDNUIscURBQTJFO0FBRTNFLE1BQWEsZ0JBQWlCLFNBQVEsK0JBQWM7SUFLbEQseUNBQXlDO0lBQ3pDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBVzs7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxNQUFNLEdBQUcsOEJBQThCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFD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
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import { ImplDecorator } from '@eggjs/tegg';
3
+ import { Readable } from 'node:stream';
4
+ import { RegistryType } from '../../../common/enum/Registry';
5
+ import { Registry } from '../../../core/entity/Registry';
6
+ import { EggHttpClient, EggLogger } from 'egg';
7
+ export declare const CHANGE_STREAM_ATTRIBUTE = "CHANGE_STREAM_ATTRIBUTE";
8
+ export declare type ChangesStreamChange = {
9
+ seq: string;
10
+ fullname: string;
11
+ };
12
+ export declare abstract class AbstractChangeStream {
13
+ protected logger: EggLogger;
14
+ protected httpclient: EggHttpClient;
15
+ abstract getInitialSince(registry: Registry): Promise<string>;
16
+ abstract fetchChanges(registry: Registry, since: string): Promise<Readable>;
17
+ getChangesStreamUrl(registry: Registry, since: string, limit?: number): string;
18
+ }
19
+ export declare const RegistryChangesStream: ImplDecorator<AbstractChangeStream, typeof RegistryType>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RegistryChangesStream = exports.AbstractChangeStream = exports.CHANGE_STREAM_ATTRIBUTE = void 0;
10
+ const tegg_1 = require("@eggjs/tegg");
11
+ exports.CHANGE_STREAM_ATTRIBUTE = 'CHANGE_STREAM_ATTRIBUTE';
12
+ class AbstractChangeStream {
13
+ getChangesStreamUrl(registry, since, limit) {
14
+ const url = new URL(registry.changeStream);
15
+ url.searchParams.set('since', since);
16
+ if (limit) {
17
+ url.searchParams.set('limit', String(limit));
18
+ }
19
+ return url.toString();
20
+ }
21
+ }
22
+ __decorate([
23
+ (0, tegg_1.Inject)()
24
+ ], AbstractChangeStream.prototype, "logger", void 0);
25
+ __decorate([
26
+ (0, tegg_1.Inject)()
27
+ ], AbstractChangeStream.prototype, "httpclient", void 0);
28
+ exports.AbstractChangeStream = AbstractChangeStream;
29
+ exports.RegistryChangesStream = tegg_1.QualifierImplDecoratorUtil.generatorDecorator(AbstractChangeStream, exports.CHANGE_STREAM_ATTRIBUTE);
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RDaGFuZ2VzU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL2NvbW1vbi9hZGFwdGVyL2NoYW5nZXNTdHJlYW0vQWJzdHJhY3RDaGFuZ2VzU3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHNDQUlxQjtBQVNSLFFBQUEsdUJBQXVCLEdBQUcseUJBQXlCLENBQUM7QUFNakUsTUFBc0Isb0JBQW9CO0lBVXhDLG1CQUFtQixDQUFDLFFBQWtCLEVBQUUsS0FBYSxFQUFFLEtBQWM7UUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRTtZQUNULEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUNELE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQWhCQztJQURDLElBQUEsYUFBTSxHQUFFO29EQUNtQjtBQUc1QjtJQURDLElBQUEsYUFBTSxHQUFFO3dEQUMyQjtBQUx0QyxvREFrQkM7QUFFWSxRQUFBLHFCQUFxQixHQUNoQyxpQ0FBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSwrQkFBdUIsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from 'node:stream';
3
+ import { Registry } from '../../../core/entity/Registry';
4
+ import { AbstractChangeStream } from './AbstractChangesStream';
5
+ export declare class CnpmcoreChangesStream extends AbstractChangeStream {
6
+ getInitialSince(registry: Registry): Promise<string>;
7
+ fetchChanges(registry: Registry, since: string): Promise<Readable>;
8
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CnpmcoreChangesStream = void 0;
10
+ const node_stream_1 = require("node:stream");
11
+ const tegg_1 = require("@eggjs/tegg");
12
+ const Registry_1 = require("../../../common/enum/Registry");
13
+ const egg_errors_1 = require("egg-errors");
14
+ const AbstractChangesStream_1 = require("./AbstractChangesStream");
15
+ let CnpmcoreChangesStream = class CnpmcoreChangesStream extends AbstractChangesStream_1.AbstractChangeStream {
16
+ async getInitialSince(registry) {
17
+ const db = (new URL(registry.changeStream)).origin;
18
+ const { status, data } = await this.httpclient.request(db, {
19
+ followRedirect: true,
20
+ timeout: 10000,
21
+ dataType: 'json',
22
+ });
23
+ if (!data.update_seq) {
24
+ throw new egg_errors_1.E500(`get getInitialSince failed: ${data.update_seq}`);
25
+ }
26
+ const since = String(data.update_seq - 10);
27
+ this.logger.warn('[NpmChangesStream.getInitialSince:firstSeq] GET %s status: %s, data: %j, since: %s', registry.name, status, data, since);
28
+ return since;
29
+ }
30
+ async fetchChanges(registry, since) {
31
+ var _a;
32
+ const changes = [];
33
+ const db = this.getChangesStreamUrl(registry, since);
34
+ // json mode
35
+ const { data } = await this.httpclient.request(db, {
36
+ followRedirect: true,
37
+ timeout: 30000,
38
+ dataType: 'json',
39
+ gzip: true,
40
+ });
41
+ if (((_a = data.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
42
+ for (const change of data.results) {
43
+ const seq = String(change.seq);
44
+ const fullname = change.id;
45
+ // cnpmcore 默认返回 >= 需要做特殊判断
46
+ if (seq && fullname && seq !== since) {
47
+ changes.push({
48
+ fullname,
49
+ seq,
50
+ });
51
+ }
52
+ }
53
+ }
54
+ return node_stream_1.Readable.from(changes);
55
+ }
56
+ };
57
+ CnpmcoreChangesStream = __decorate([
58
+ (0, tegg_1.ContextProto)(),
59
+ (0, AbstractChangesStream_1.RegistryChangesStream)(Registry_1.RegistryType.Cnpmcore)
60
+ ], CnpmcoreChangesStream);
61
+ exports.CnpmcoreChangesStream = CnpmcoreChangesStream;
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ25wbWNvcmVDaGFuZ2VzU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL2NvbW1vbi9hZGFwdGVyL2NoYW5nZXNTdHJlYW0vQ25wbWNvcmVDaGFuZ2VzU3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDZDQUF1QztBQUN2QyxzQ0FBMkM7QUFDM0MsNERBQTZEO0FBRTdELDJDQUFrQztBQUNsQyxtRUFBMkc7QUFJM0csSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBc0IsU0FBUSw0Q0FBb0I7SUFFN0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFrQjtRQUN0QyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuRCxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ3pELGNBQWMsRUFBRSxJQUFJO1lBQ3BCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxJQUFJLGlCQUFJLENBQUMsK0JBQStCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0ZBQW9GLEVBQ25HLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQWtCLEVBQUUsS0FBYTs7UUFDbEQsTUFBTSxPQUFPLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JELFlBQVk7UUFDWixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDakQsY0FBYyxFQUFFLElBQUk7WUFDcEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDNUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMzQiwyQkFBMkI7Z0JBQzNCLElBQUksR0FBRyxJQUFJLFFBQVEsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO29CQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNYLFFBQVE7d0JBQ1IsR0FBRztxQkFDSixDQUFDLENBQUM7aUJBQ0o7YUFDRjtTQUNGO1FBRUQsT0FBTyxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0YsQ0FBQTtBQTlDWSxxQkFBcUI7SUFGakMsSUFBQSxtQkFBWSxHQUFFO0lBQ2QsSUFBQSw2Q0FBcUIsRUFBQyx1QkFBWSxDQUFDLFFBQVEsQ0FBQztHQUNoQyxxQkFBcUIsQ0E4Q2pDO0FBOUNZLHNEQUFxQiJ9
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from 'node:stream';
3
+ import { Registry } from '../../../core/entity/Registry';
4
+ import { AbstractChangeStream } from './AbstractChangesStream';
5
+ export declare class CnpmjsorgChangesStream extends AbstractChangeStream {
6
+ getInitialSince(registry: Registry): Promise<string>;
7
+ private tryFetch;
8
+ fetchChanges(registry: Registry, since: string): Promise<Readable>;
9
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CnpmjsorgChangesStream = void 0;
10
+ const tegg_1 = require("@eggjs/tegg");
11
+ const node_stream_1 = require("node:stream");
12
+ const Registry_1 = require("../../../common/enum/Registry");
13
+ const egg_errors_1 = require("egg-errors");
14
+ const AbstractChangesStream_1 = require("./AbstractChangesStream");
15
+ const MAX_LIMIT = 10000;
16
+ let CnpmjsorgChangesStream = class CnpmjsorgChangesStream extends AbstractChangesStream_1.AbstractChangeStream {
17
+ // cnpmjsorg 未实现 update_seq 字段
18
+ // 默认返回当前时间戳字符串
19
+ async getInitialSince(registry) {
20
+ const since = String((new Date()).getTime());
21
+ this.logger.warn(`[CnpmjsorgChangesStream.getInitialSince] since: ${since}, skip query ${registry.changeStream}`);
22
+ return since;
23
+ }
24
+ async tryFetch(registry, since, limit = 1000) {
25
+ if (limit > MAX_LIMIT) {
26
+ throw new egg_errors_1.E500(`limit too large, current since: ${since}, limit: ${limit}`);
27
+ }
28
+ const db = this.getChangesStreamUrl(registry, since, limit);
29
+ // json mode
30
+ const res = await this.httpclient.request(db, {
31
+ followRedirect: true,
32
+ timeout: 30000,
33
+ dataType: 'json',
34
+ gzip: true,
35
+ });
36
+ const { results = [] } = res.data;
37
+ if ((results === null || results === void 0 ? void 0 : results.length) > 1) {
38
+ const [first] = results;
39
+ const last = results[results.length - 1];
40
+ if (first.gmt_modified === last.gmt_modified) {
41
+ return await this.tryFetch(registry, last.seq, limit + 1000);
42
+ }
43
+ }
44
+ return res;
45
+ }
46
+ async fetchChanges(registry, since) {
47
+ var _a;
48
+ const changes = [];
49
+ // ref: https://github.com/cnpm/cnpmjs.org/pull/1734
50
+ // 由于 cnpmjsorg 无法计算准确的 seq
51
+ // since 是一个时间戳,需要确保一次返回的结果中首尾两个 gmtModified 不相等
52
+ const { data } = await this.tryFetch(registry, since);
53
+ if (((_a = data.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
54
+ for (const change of data.results) {
55
+ const seq = new Date(change.gmt_modified).getTime() + '';
56
+ const fullname = change.id;
57
+ if (seq && fullname && seq !== since) {
58
+ changes.push({
59
+ fullname,
60
+ seq,
61
+ });
62
+ }
63
+ }
64
+ }
65
+ return node_stream_1.Readable.from(changes);
66
+ }
67
+ };
68
+ CnpmjsorgChangesStream = __decorate([
69
+ (0, tegg_1.ContextProto)(),
70
+ (0, AbstractChangesStream_1.RegistryChangesStream)(Registry_1.RegistryType.Cnpmjsorg)
71
+ ], CnpmjsorgChangesStream);
72
+ exports.CnpmjsorgChangesStream = CnpmjsorgChangesStream;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ25wbWpzb3JnQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9jaGFuZ2VzU3RyZWFtL0NucG1qc29yZ0NoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsc0NBQTJDO0FBQzNDLDZDQUF1QztBQUN2Qyw0REFBNkQ7QUFFN0QsMkNBQWtDO0FBQ2xDLG1FQUEyRztBQUUzRyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFJeEIsSUFBYSxzQkFBc0IsR0FBbkMsTUFBYSxzQkFBdUIsU0FBUSw0Q0FBb0I7SUFFOUQsOEJBQThCO0lBQzlCLGVBQWU7SUFDZixLQUFLLENBQUMsZUFBZSxDQUFDLFFBQWtCO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxLQUFLLGdCQUFnQixRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNsSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWtCLEVBQUUsS0FBYSxFQUFFLEtBQUssR0FBRyxJQUFJO1FBQ3BFLElBQUksS0FBSyxHQUFHLFNBQVMsRUFBRTtZQUNyQixNQUFNLElBQUksaUJBQUksQ0FBQyxtQ0FBbUMsS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDN0U7UUFDRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxZQUFZO1FBQ1osTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDNUMsY0FBYyxFQUFFLElBQUk7WUFDcEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUNILE1BQU0sRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFFLEtBQUssQ0FBRSxHQUFHLE9BQU8sQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDNUMsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQzlEO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQWtCLEVBQUUsS0FBYTs7UUFDbEQsTUFBTSxPQUFPLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxvREFBb0Q7UUFDcEQsMkJBQTJCO1FBQzNCLGdEQUFnRDtRQUNoRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxNQUFNLElBQUcsQ0FBQyxFQUFFO1lBQzVCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxHQUFHLElBQUksUUFBUSxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7b0JBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUM7d0JBQ1gsUUFBUTt3QkFDUixHQUFHO3FCQUNKLENBQUMsQ0FBQztpQkFDSjthQUNGO1NBQ0Y7UUFFRCxPQUFPLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRixDQUFBO0FBekRZLHNCQUFzQjtJQUZsQyxJQUFBLG1CQUFZLEdBQUU7SUFDZCxJQUFBLDZDQUFxQixFQUFDLHVCQUFZLENBQUMsU0FBUyxDQUFDO0dBQ2pDLHNCQUFzQixDQXlEbEM7QUF6RFksd0RBQXNCIn0=
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from 'node:stream';
3
+ import { Registry } from '../../../core/entity/Registry';
4
+ import { AbstractChangeStream } from './AbstractChangesStream';
5
+ export declare class NpmChangesStream extends AbstractChangeStream {
6
+ getInitialSince(registry: Registry): Promise<string>;
7
+ fetchChanges(registry: Registry, since: string): Promise<Readable>;
8
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NpmChangesStream = void 0;
13
+ const tegg_1 = require("@eggjs/tegg");
14
+ const node_stream_1 = require("node:stream");
15
+ const egg_errors_1 = require("egg-errors");
16
+ const Registry_1 = require("../../../common/enum/Registry");
17
+ const AbstractChangesStream_1 = require("./AbstractChangesStream");
18
+ const ChangesStreamTransform_1 = __importDefault(require("../../../core/util/ChangesStreamTransform"));
19
+ let NpmChangesStream = class NpmChangesStream extends AbstractChangesStream_1.AbstractChangeStream {
20
+ async getInitialSince(registry) {
21
+ const db = (new URL(registry.changeStream)).origin;
22
+ const { status, data } = await this.httpclient.request(db, {
23
+ followRedirect: true,
24
+ timeout: 10000,
25
+ dataType: 'json',
26
+ });
27
+ const since = String(data.update_seq - 10);
28
+ if (!data.update_seq) {
29
+ throw new egg_errors_1.E500(`get getInitialSince failed: ${data.update_seq}`);
30
+ }
31
+ this.logger.warn('[NpmChangesStream.getInitialSince] GET %s status: %s, data: %j, since: %s', registry.name, registry.changeStream, status, data, since);
32
+ return since;
33
+ }
34
+ async fetchChanges(registry, since) {
35
+ const db = this.getChangesStreamUrl(registry, since);
36
+ const { res } = await this.httpclient.request(db, {
37
+ streaming: true,
38
+ timeout: 10000,
39
+ });
40
+ const transform = new ChangesStreamTransform_1.default();
41
+ return (0, node_stream_1.pipeline)(res, transform, error => {
42
+ this.logger.error('[NpmChangesStream.fetchChanges] pipeline error: %s', error);
43
+ });
44
+ }
45
+ };
46
+ NpmChangesStream = __decorate([
47
+ (0, tegg_1.ContextProto)(),
48
+ (0, AbstractChangesStream_1.RegistryChangesStream)(Registry_1.RegistryType.Npm)
49
+ ], NpmChangesStream);
50
+ exports.NpmChangesStream = NpmChangesStream;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnBtQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9jaGFuZ2VzU3RyZWFtL05wbUNoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQTJDO0FBQzNDLDZDQUFpRDtBQUNqRCwyQ0FBa0M7QUFDbEMsNERBQTZEO0FBRTdELG1FQUFzRjtBQUN0Rix1R0FBK0U7QUFJL0UsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBaUIsU0FBUSw0Q0FBb0I7SUFFeEQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFrQjtRQUN0QyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuRCxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ3pELGNBQWMsRUFBRSxJQUFJO1lBQ3BCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxJQUFJLGlCQUFJLENBQUMsK0JBQStCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkVBQTJFLEVBQzFGLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBa0IsRUFBRSxLQUFhO1FBQ2xELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFJLGdDQUFzQixFQUFFLENBQUM7UUFDL0MsT0FBTyxJQUFBLHNCQUFRLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvREFBb0QsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRixDQUFBO0FBL0JZLGdCQUFnQjtJQUY1QixJQUFBLG1CQUFZLEdBQUU7SUFDZCxJQUFBLDZDQUFxQixFQUFDLHVCQUFZLENBQUMsR0FBRyxDQUFDO0dBQzNCLGdCQUFnQixDQStCNUI7QUEvQlksNENBQWdCIn0=
@@ -0,0 +1,18 @@
1
+ export declare enum HookType {
2
+ Package = "package",
3
+ Scope = "scope",
4
+ Owner = "owner"
5
+ }
6
+ export declare enum HookEventType {
7
+ Star = "package:star",
8
+ Unstar = "package:unstar",
9
+ Publish = "package:publish",
10
+ Unpublish = "package:unpublish",
11
+ Owner = "package:owner",
12
+ OwnerRm = "package:owner-rm",
13
+ DistTag = "package:dist-tag",
14
+ DistTagRm = "package:dist-tag-rm",
15
+ Deprecated = "package:deprecated",
16
+ Undeprecated = "package:undeprecated",
17
+ Change = "package:change"
18
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HookEventType = exports.HookType = void 0;
4
+ var HookType;
5
+ (function (HookType) {
6
+ HookType["Package"] = "package";
7
+ HookType["Scope"] = "scope";
8
+ HookType["Owner"] = "owner";
9
+ })(HookType = exports.HookType || (exports.HookType = {}));
10
+ var HookEventType;
11
+ (function (HookEventType) {
12
+ HookEventType["Star"] = "package:star";
13
+ HookEventType["Unstar"] = "package:unstar";
14
+ HookEventType["Publish"] = "package:publish";
15
+ HookEventType["Unpublish"] = "package:unpublish";
16
+ HookEventType["Owner"] = "package:owner";
17
+ HookEventType["OwnerRm"] = "package:owner-rm";
18
+ HookEventType["DistTag"] = "package:dist-tag";
19
+ HookEventType["DistTagRm"] = "package:dist-tag-rm";
20
+ HookEventType["Deprecated"] = "package:deprecated";
21
+ HookEventType["Undeprecated"] = "package:undeprecated";
22
+ HookEventType["Change"] = "package:change";
23
+ })(HookEventType = exports.HookEventType || (exports.HookEventType = {}));
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vZW51bS9Ib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQiwrQkFBbUIsQ0FBQTtJQUNuQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFFRCxJQUFZLGFBWVg7QUFaRCxXQUFZLGFBQWE7SUFDdkIsc0NBQXFCLENBQUE7SUFDckIsMENBQXlCLENBQUE7SUFDekIsNENBQTJCLENBQUE7SUFDM0IsZ0RBQStCLENBQUE7SUFDL0Isd0NBQXVCLENBQUE7SUFDdkIsNkNBQTRCLENBQUE7SUFDNUIsNkNBQTRCLENBQUE7SUFDNUIsa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsc0RBQXFDLENBQUE7SUFDckMsMENBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVpXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBWXhCIn0=
@@ -0,0 +1,5 @@
1
+ export declare enum RegistryType {
2
+ Npm = "npm",
3
+ Cnpmcore = "cnpmcore",
4
+ Cnpmjsorg = "cnpmjsorg"
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegistryType = void 0;
4
+ var RegistryType;
5
+ (function (RegistryType) {
6
+ RegistryType["Npm"] = "npm";
7
+ RegistryType["Cnpmcore"] = "cnpmcore";
8
+ RegistryType["Cnpmjsorg"] = "cnpmjsorg";
9
+ })(RegistryType = exports.RegistryType || (exports.RegistryType = {}));
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29tbW9uL2VudW0vUmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3RCLDJCQUFXLENBQUE7SUFDWCxxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFJdkIifQ==
@@ -1,7 +1,9 @@
1
1
  export declare enum TaskType {
2
2
  SyncPackage = "sync_package",
3
3
  ChangesStream = "changes_stream",
4
- SyncBinary = "sync_binary"
4
+ SyncBinary = "sync_binary",
5
+ CreateHook = "create_hook",
6
+ TriggerHook = "trigger_hook"
5
7
  }
6
8
  export declare enum TaskState {
7
9
  Waiting = "waiting",
@@ -6,6 +6,8 @@ var TaskType;
6
6
  TaskType["SyncPackage"] = "sync_package";
7
7
  TaskType["ChangesStream"] = "changes_stream";
8
8
  TaskType["SyncBinary"] = "sync_binary";
9
+ TaskType["CreateHook"] = "create_hook";
10
+ TaskType["TriggerHook"] = "trigger_hook";
9
11
  })(TaskType = exports.TaskType || (exports.TaskType = {}));
10
12
  var TaskState;
11
13
  (function (TaskState) {
@@ -15,4 +17,4 @@ var TaskState;
15
17
  TaskState["Fail"] = "fail";
16
18
  TaskState["Timeout"] = "timeout";
17
19
  })(TaskState = exports.TaskState || (exports.TaskState = {}));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vZW51bS9UYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix3Q0FBNEIsQ0FBQTtJQUM1Qiw0Q0FBZ0MsQ0FBQTtJQUNoQyxzQ0FBMEIsQ0FBQTtBQUM1QixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFFRCxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsZ0NBQW1CLENBQUE7SUFDbkIsc0NBQXlCLENBQUE7SUFDekIsZ0NBQW1CLENBQUE7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiJ9
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vZW51bS9UYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQix3Q0FBNEIsQ0FBQTtJQUM1Qiw0Q0FBZ0MsQ0FBQTtJQUNoQyxzQ0FBMEIsQ0FBQTtJQUMxQixzQ0FBMEIsQ0FBQTtJQUMxQix3Q0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFNbkI7QUFFRCxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsZ0NBQW1CLENBQUE7SUFDbkIsc0NBQXlCLENBQUE7SUFDekIsZ0NBQW1CLENBQUE7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiJ9
@@ -26,3 +26,8 @@ export interface NFSClient {
26
26
  createDownloadStream(key: string): Promise<Readable | undefined>;
27
27
  url?(key: string): string;
28
28
  }
29
+ export interface QueueAdapter {
30
+ push<T>(key: string, item: T): Promise<boolean>;
31
+ pop<T>(key: string): Promise<T | null>;
32
+ length(key: string): Promise<number>;
33
+ }
@@ -0,0 +1,30 @@
1
+ import { Entity, EntityData } from './Entity';
2
+ import { EasyData } from '../util/EntityUtil';
3
+ import { HookType } from '../../common/enum/Hook';
4
+ export declare type CreateHookData = Omit<EasyData<HookData, 'hookId'>, 'enable' | 'latestTaskId'>;
5
+ export interface HookData extends EntityData {
6
+ hookId: string;
7
+ type: HookType;
8
+ ownerId: string;
9
+ name: string;
10
+ endpoint: string;
11
+ secret: string;
12
+ latestTaskId?: string;
13
+ enable: boolean;
14
+ }
15
+ export declare class Hook extends Entity {
16
+ readonly hookId: string;
17
+ readonly type: HookType;
18
+ readonly ownerId: string;
19
+ readonly name: string;
20
+ endpoint: string;
21
+ secret: string;
22
+ enable: boolean;
23
+ latestTaskId?: string;
24
+ constructor(data: HookData);
25
+ static create(data: CreateHookData): Hook;
26
+ signPayload(payload: object): {
27
+ digest: any;
28
+ payloadStr: any;
29
+ };
30
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Hook = void 0;
7
+ const Entity_1 = require("./Entity");
8
+ const EntityUtil_1 = require("../util/EntityUtil");
9
+ const crypto_1 = __importDefault(require("crypto"));
10
+ class Hook extends Entity_1.Entity {
11
+ constructor(data) {
12
+ super(data);
13
+ this.hookId = data.hookId;
14
+ this.type = data.type;
15
+ this.ownerId = data.ownerId;
16
+ this.name = data.name;
17
+ this.endpoint = data.endpoint;
18
+ this.secret = data.secret;
19
+ this.latestTaskId = data.latestTaskId;
20
+ this.enable = data.enable;
21
+ }
22
+ static create(data) {
23
+ const hookData = Object.assign({}, data, {
24
+ enable: true,
25
+ latestTaskId: undefined,
26
+ });
27
+ const newData = EntityUtil_1.EntityUtil.defaultData(hookData, 'hookId');
28
+ return new Hook(newData);
29
+ }
30
+ // payload 可能会特别大,如果做多次 stringify 浪费太多 cpu
31
+ signPayload(payload) {
32
+ const payloadStr = JSON.stringify(payload);
33
+ const digest = crypto_1.default.createHmac('sha256', this.secret)
34
+ .update(JSON.stringify(payload))
35
+ .digest('hex');
36
+ return {
37
+ digest,
38
+ payloadStr,
39
+ };
40
+ }
41
+ }
42
+ exports.Hook = Hook;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2VudGl0eS9Ib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFDQUE4QztBQUM5QyxtREFBMEQ7QUFFMUQsb0RBQTRCO0FBZTVCLE1BQWEsSUFBSyxTQUFRLGVBQU07SUFVOUIsWUFBWSxJQUFjO1FBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBb0I7UUFDaEMsTUFBTSxRQUFRLEdBQWlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUNyRSxNQUFNLEVBQUUsSUFBSTtZQUNaLFlBQVksRUFBRSxTQUFTO1NBQ3hCLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLHVCQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsV0FBVyxDQUFDLE9BQWU7UUFDekIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakIsT0FBTztZQUNMLE1BQU07WUFDTixVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFDRCxvQkEwQ0MifQ==