cnpmcore 1.10.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/History.md +17 -0
- package/dist/app/common/LogUtil.d.ts +1 -0
- package/dist/app/common/LogUtil.js +8 -0
- package/dist/app/common/adapter/NPMRegistry.d.ts +2 -0
- package/dist/app/common/adapter/NPMRegistry.js +5 -2
- package/dist/app/common/adapter/binary/NodePreGypBinary.js +20 -5
- package/dist/app/common/adapter/changesStream/AbstractChangesStream.d.ts +19 -0
- package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +30 -0
- package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.d.ts +8 -0
- package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.js +62 -0
- package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.d.ts +9 -0
- package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.js +73 -0
- package/dist/app/common/adapter/changesStream/NpmChangesStream.d.ts +8 -0
- package/dist/app/common/adapter/changesStream/NpmChangesStream.js +51 -0
- package/dist/app/common/enum/Hook.d.ts +18 -0
- package/dist/app/common/enum/Hook.js +24 -0
- package/dist/app/common/enum/Registry.d.ts +5 -0
- package/dist/app/common/enum/Registry.js +10 -0
- package/dist/app/common/enum/Task.d.ts +3 -1
- package/dist/app/common/enum/Task.js +3 -1
- package/dist/app/core/entity/Hook.d.ts +30 -0
- package/dist/app/core/entity/Hook.js +43 -0
- package/dist/app/core/entity/HookEvent.d.ts +36 -0
- package/dist/app/core/entity/HookEvent.js +59 -0
- package/dist/app/core/entity/Package.d.ts +2 -0
- package/dist/app/core/entity/Package.js +2 -1
- package/dist/app/core/entity/Registry.d.ts +23 -0
- package/dist/app/core/entity/Registry.js +22 -0
- package/dist/app/core/entity/Scope.d.ts +16 -0
- package/dist/app/core/entity/Scope.js +19 -0
- package/dist/app/core/entity/Task.d.ts +50 -8
- package/dist/app/core/entity/Task.js +60 -9
- package/dist/app/core/event/ChangesStream.d.ts +10 -5
- package/dist/app/core/event/ChangesStream.js +46 -15
- package/dist/app/core/event/index.d.ts +12 -4
- package/dist/app/core/event/index.js +1 -1
- package/dist/app/core/service/BinarySyncerService.d.ts +3 -3
- package/dist/app/core/service/ChangesStreamService.d.ts +15 -5
- package/dist/app/core/service/ChangesStreamService.js +113 -115
- package/dist/app/core/service/CreateHookTriggerService.d.ts +10 -0
- package/dist/app/core/service/CreateHookTriggerService.js +83 -0
- package/dist/app/core/service/HookManageService.d.ts +29 -0
- package/dist/app/core/service/HookManageService.js +77 -0
- package/dist/app/core/service/HookTriggerService.d.ts +14 -0
- package/dist/app/core/service/HookTriggerService.js +113 -0
- package/dist/app/core/service/PackageManagerService.d.ts +1 -0
- package/dist/app/core/service/PackageManagerService.js +8 -5
- package/dist/app/core/service/PackageSyncerService.d.ts +7 -4
- package/dist/app/core/service/PackageSyncerService.js +23 -4
- package/dist/app/core/service/RegistryManagerService.d.ts +29 -0
- package/dist/app/core/service/RegistryManagerService.js +97 -0
- package/dist/app/core/service/ScopeManagerService.d.ts +27 -0
- package/dist/app/core/service/ScopeManagerService.js +58 -0
- package/dist/app/core/service/TaskService.d.ts +4 -3
- package/dist/app/core/service/TaskService.js +10 -5
- package/dist/app/core/service/UserService.d.ts +1 -1
- package/dist/app/core/service/UserService.js +3 -3
- package/dist/app/core/util/ChangesStreamTransform.d.ts +8 -0
- package/dist/app/core/util/ChangesStreamTransform.js +50 -0
- package/dist/app/core/util/EntityUtil.d.ts +13 -0
- package/dist/app/core/util/EntityUtil.js +13 -1
- package/dist/app/port/UserRoleManager.d.ts +1 -2
- package/dist/app/port/controller/HookController.d.ts +23 -0
- package/dist/app/port/controller/HookController.js +133 -0
- package/dist/app/port/controller/PackageSyncController.d.ts +1 -0
- package/dist/app/port/controller/PackageSyncController.js +13 -2
- package/dist/app/port/controller/RegistryController.d.ts +20 -0
- package/dist/app/port/controller/RegistryController.js +131 -0
- package/dist/app/port/controller/ScopeController.d.ts +14 -0
- package/dist/app/port/controller/ScopeController.js +68 -0
- package/dist/app/port/controller/convertor/HookConvertor.d.ts +37 -0
- package/dist/app/port/controller/convertor/HookConvertor.js +29 -0
- package/dist/app/port/middleware/AdminAccess.d.ts +2 -0
- package/dist/app/port/middleware/AdminAccess.js +15 -0
- package/dist/app/port/typebox.d.ts +48 -0
- package/dist/app/port/typebox.js +126 -2
- package/dist/app/repository/HookRepository.d.ts +19 -0
- package/dist/app/repository/HookRepository.js +69 -0
- package/dist/app/repository/RegistryRepository.d.ts +12 -0
- package/dist/app/repository/RegistryRepository.js +64 -0
- package/dist/app/repository/ScopeRepository.d.ts +14 -0
- package/dist/app/repository/ScopeRepository.js +73 -0
- package/dist/app/repository/TaskRepository.d.ts +5 -3
- package/dist/app/repository/TaskRepository.js +32 -2
- package/dist/app/repository/UserRepository.d.ts +1 -0
- package/dist/app/repository/UserRepository.js +7 -1
- package/dist/app/repository/model/Hook.d.ts +15 -0
- package/dist/app/repository/model/Hook.js +58 -0
- package/dist/app/repository/model/Package.d.ts +1 -0
- package/dist/app/repository/model/Package.js +4 -1
- package/dist/app/repository/model/Registry.d.ts +13 -0
- package/dist/app/repository/model/Registry.js +50 -0
- package/dist/app/repository/model/Scope.d.ts +9 -0
- package/dist/app/repository/model/Scope.js +39 -0
- package/dist/app/repository/model/Task.d.ts +1 -0
- package/dist/app/repository/model/Task.js +6 -1
- package/dist/app/schedule/CreateTriggerHookWorker.d.ts +8 -0
- package/dist/app/schedule/CreateTriggerHookWorker.js +51 -0
- package/dist/app/schedule/TriggerHookWorker.d.ts +8 -0
- package/dist/app/schedule/TriggerHookWorker.js +49 -0
- package/dist/config/binaries.js +8 -1
- package/dist/config/config.default.js +5 -1
- package/package.json +1 -1
package/History.md
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
|
|
2
|
+
1.11.0 / 2022-08-23
|
|
3
|
+
==================
|
|
4
|
+
|
|
5
|
+
**features**
|
|
6
|
+
* [[`a91c8ac`](http://github.com/cnpm/cnpmcore/commit/a91c8ac4d05dc903780fda516b09364a05a2b1e6)] - feat: sync package from spec regsitry (#293) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
|
|
7
|
+
* [[`de37008`](http://github.com/cnpm/cnpmcore/commit/de37008261b05845f392d66764cdfe14ae324756)] - feat: changesStream adapter & needSync() method (#292) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
|
|
8
|
+
* [[`4b506c8`](http://github.com/cnpm/cnpmcore/commit/4b506c8371697ddacdbe99a8ecb330bfc1911ec6)] - feat: init registry & scope (#286) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
|
|
9
|
+
* [[`41c6e24`](http://github.com/cnpm/cnpmcore/commit/41c6e24c84d546eb9d5515cc0940cc3e4274687b)] - feat: impl trigger Hooks (#289) (killa <<killa123@126.com>>)
|
|
10
|
+
* [[`79cb826`](http://github.com/cnpm/cnpmcore/commit/79cb82615f04bdb3da3ccbe09bb6a861608b69c5)] - feat: impl migration sql (#290) (killa <<killa123@126.com>>)
|
|
11
|
+
* [[`4cfa8ed`](http://github.com/cnpm/cnpmcore/commit/4cfa8ed9d687ce7d950d7d20c0ea28221763ba5f)] - feat: impl hooks api (#287) (killa <<killa123@126.com>>)
|
|
12
|
+
* [[`47d53d2`](http://github.com/cnpm/cnpmcore/commit/47d53d22ad03c02ee9cb9035a38ae205a6d38381)] - feat: add bizId for task (#285) (killa <<killa123@126.com>>)
|
|
13
|
+
* [[`3b1536b`](http://github.com/cnpm/cnpmcore/commit/3b1536b070b2f9062bc2cc377db96d2f4a160efc)] - feat: add node-webrtc mirror (#274) (Opportunity <<opportunity@live.in>>)
|
|
14
|
+
|
|
15
|
+
**others**
|
|
16
|
+
* [[`7106807`](http://github.com/cnpm/cnpmcore/commit/710680742a078b2faf4cb18c3a39c0397308712e)] - 🐛 FIX: Should show queue size on logging (#280) (fengmk2 <<fengmk2@gmail.com>>)
|
|
17
|
+
* [[`3a41b21`](http://github.com/cnpm/cnpmcore/commit/3a41b2161cc99bb2f6f6dd7cbaa7abef25ff4393)] - 🐛 FIX: Handle binary configuration value (#278) (fengmk2 <<fengmk2@gmail.com>>)
|
|
18
|
+
|
|
2
19
|
1.10.0 / 2022-08-04
|
|
3
20
|
==================
|
|
4
21
|
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
|
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:
|
|
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,
|
|
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,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,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vZW51bS9UYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQix3Q0FBNEIsQ0FBQTtJQUM1Qiw0Q0FBZ0MsQ0FBQTtJQUNoQyxzQ0FBMEIsQ0FBQTtJQUMxQixzQ0FBMEIsQ0FBQTtJQUMxQix3Q0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFNbkI7QUFFRCxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsZ0NBQW1CLENBQUE7SUFDbkIsc0NBQXlCLENBQUE7SUFDekIsZ0NBQW1CLENBQUE7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiJ9
|
|
@@ -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==
|