cnpmcore 3.25.1 → 3.27.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/dist/app/core/entity/Token.d.ts +1 -1
- package/dist/app/core/entity/Token.js +1 -1
- package/dist/app/core/service/PackageManagerService.d.ts +2 -0
- package/dist/app/core/service/PackageManagerService.js +21 -8
- package/dist/app/port/controller/TokenController.d.ts +0 -1
- package/dist/app/port/controller/TokenController.js +1 -13
- package/dist/app/port/controller/UserController.d.ts +26 -0
- package/dist/app/port/controller/UserController.js +26 -3
- package/dist/app/repository/UserRepository.d.ts +2 -0
- package/dist/app/repository/UserRepository.js +22 -3
- package/package.json +1 -1
|
@@ -48,4 +48,4 @@ class Token extends Entity_1.Entity {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
exports.Token = Token;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9lbnRpdHkvVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLHFDQUE4QztBQUM5QyxtREFBMEQ7QUFFMUQsSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxTQUFTLHlCQUFULFNBQVMsUUFHcEI7QUEwQkQsU0FBZ0IsZUFBZSxDQUFDLElBQXVCO0lBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDO0FBQzFDLENBQUM7QUFGRCwwQ0FFQztBQUVELE1BQWEsS0FBTSxTQUFRLGVBQU07SUFrQi9CLFlBQVksSUFBZTtRQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUksSUFBSSxDQUFDLElBQWtCLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUMxRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDO1FBRTFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFvQztRQUNoRCxNQUFNLE9BQU8sR0FBRyx1QkFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3BGO1FBQ0QsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBRUY7QUFqREQsc0JBaURDIn0=
|
|
@@ -7,6 +7,7 @@ import { PackageVersion } from '../entity/PackageVersion';
|
|
|
7
7
|
import { PackageVersionBlock } from '../entity/PackageVersionBlock';
|
|
8
8
|
import { User } from '../entity/User';
|
|
9
9
|
import { BugVersion } from '../entity/BugVersion';
|
|
10
|
+
import { Registry } from '../entity/Registry';
|
|
10
11
|
export interface PublishPackageCmd {
|
|
11
12
|
scope: string;
|
|
12
13
|
name: string;
|
|
@@ -85,6 +86,7 @@ export declare class PackageManagerService extends AbstractService {
|
|
|
85
86
|
removePackageTag(pkg: Package, tag: string): Promise<boolean>;
|
|
86
87
|
refreshPackageChangeVersionsToDists(pkg: Package, updateVersions?: string[], removeVersions?: string[]): Promise<void>;
|
|
87
88
|
getBugVersion(): Promise<BugVersion | undefined>;
|
|
89
|
+
getSourceRegistry(pkg: Package): Promise<Registry | null>;
|
|
88
90
|
private _listPackageDistTags;
|
|
89
91
|
private _refreshPackageManifestsToDists;
|
|
90
92
|
private _refreshPackageManifestRootAttributeOnlyToDists;
|
|
@@ -96,13 +96,7 @@ let PackageManagerService = exports.PackageManagerService = PackageManagerServic
|
|
|
96
96
|
};
|
|
97
97
|
// add _registry_name field to cmd.packageJson
|
|
98
98
|
if (!cmd.packageJson._source_registry_name) {
|
|
99
|
-
|
|
100
|
-
if (cmd.registryId) {
|
|
101
|
-
registry = await this.registryManagerService.findByRegistryId(cmd.registryId);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
registry = await this.registryManagerService.ensureDefaultRegistry();
|
|
105
|
-
}
|
|
99
|
+
const registry = await this.getSourceRegistry(pkg);
|
|
106
100
|
if (registry) {
|
|
107
101
|
cmd.packageJson._source_registry_name = registry.name;
|
|
108
102
|
}
|
|
@@ -581,6 +575,16 @@ let PackageManagerService = exports.PackageManagerService = PackageManagerServic
|
|
|
581
575
|
}
|
|
582
576
|
return bugVersion;
|
|
583
577
|
}
|
|
578
|
+
async getSourceRegistry(pkg) {
|
|
579
|
+
let registry;
|
|
580
|
+
if (pkg.registryId) {
|
|
581
|
+
registry = await this.registryManagerService.findByRegistryId(pkg.registryId);
|
|
582
|
+
}
|
|
583
|
+
else {
|
|
584
|
+
registry = await this.registryManagerService.ensureDefaultRegistry();
|
|
585
|
+
}
|
|
586
|
+
return registry;
|
|
587
|
+
}
|
|
584
588
|
async _listPackageDistTags(pkg) {
|
|
585
589
|
const tags = await this.packageRepository.listPackageTags(pkg.packageId);
|
|
586
590
|
const distTags = {};
|
|
@@ -707,6 +711,7 @@ let PackageManagerService = exports.PackageManagerService = PackageManagerServic
|
|
|
707
711
|
const pkg = await this.packageRepository.findPackage(scope, name);
|
|
708
712
|
if (!pkg)
|
|
709
713
|
return { etag, data: null, blockReason };
|
|
714
|
+
const registry = await this.getSourceRegistry(pkg);
|
|
710
715
|
const block = await this.packageVersionBlockRepository.findPackageBlock(pkg.packageId);
|
|
711
716
|
if (block) {
|
|
712
717
|
blockReason = block.reason;
|
|
@@ -725,6 +730,12 @@ let PackageManagerService = exports.PackageManagerService = PackageManagerServic
|
|
|
725
730
|
if (bugVersion) {
|
|
726
731
|
await this.bugVersionService.fixPackageBugVersions(bugVersion, fullname, data.versions);
|
|
727
732
|
}
|
|
733
|
+
// set _source_registry_name in full manifestDist
|
|
734
|
+
if (!data._source_registry_name && isFullManifests) {
|
|
735
|
+
if (registry) {
|
|
736
|
+
data._source_registry_name = registry?.name;
|
|
737
|
+
}
|
|
738
|
+
}
|
|
728
739
|
const distBytes = Buffer.from(JSON.stringify(data));
|
|
729
740
|
const distIntegrity = await (0, PackageUtil_1.calculateIntegrity)(distBytes);
|
|
730
741
|
etag = `"${distIntegrity.shasum}"`;
|
|
@@ -763,6 +774,7 @@ let PackageManagerService = exports.PackageManagerService = PackageManagerServic
|
|
|
763
774
|
return null;
|
|
764
775
|
const distTags = await this._listPackageDistTags(pkg);
|
|
765
776
|
const maintainers = await this._listPackageMaintainers(pkg);
|
|
777
|
+
const registry = await this.getSourceRegistry(pkg);
|
|
766
778
|
// https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md#full-metadata-format
|
|
767
779
|
const data = {
|
|
768
780
|
_id: `${pkg.fullname}`,
|
|
@@ -797,6 +809,7 @@ let PackageManagerService = exports.PackageManagerService = PackageManagerServic
|
|
|
797
809
|
// as given in package.json, for the latest version
|
|
798
810
|
repository: undefined,
|
|
799
811
|
// users: an object whose keys are the npm user names of people who have starred this package
|
|
812
|
+
_source_registry_name: registry?.name,
|
|
800
813
|
};
|
|
801
814
|
let latestTagVersion = '';
|
|
802
815
|
if (distTags.latest) {
|
|
@@ -889,4 +902,4 @@ exports.PackageManagerService = PackageManagerService = PackageManagerService_1
|
|
|
889
902
|
accessLevel: tegg_1.AccessLevel.PUBLIC,
|
|
890
903
|
})
|
|
891
904
|
], PackageManagerService);
|
|
892
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZU1hbmFnZXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL2NvcmUvc2VydmljZS9QYWNrYWdlTWFuYWdlclNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUFtQztBQUNuQyxzQ0FLcUI7QUFDckIsMkNBQTRDO0FBRTVDLG9EQUE0QjtBQUM1QiwwREFPa0M7QUFDbEMsa0VBQStEO0FBQy9ELDBFQUF1RTtBQUN2RSxzREFBa0U7QUFDbEUsMEVBQXlLO0FBQ3pLLGtHQUErRjtBQUMvRix3R0FBcUc7QUFDckcsb0VBQWlFO0FBQ2pFLCtDQUE0QztBQUM1Qyw2REFBMEQ7QUFDMUQsdUVBQW9FO0FBQ3BFLHFEQUFrRDtBQUdsRCxvQ0FZa0I7QUFDbEIsMkRBQXdEO0FBQ3hELHFEQUFrRDtBQUNsRCxxRUFBa0U7QUE0QmxFLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQztBQUMxQixNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFLN0IsSUFBTSxxQkFBcUIsNkRBQTNCLE1BQU0scUJBQXNCLFNBQVEsaUNBQWU7SUFvQnhELDhFQUE4RTtJQUM5RSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQXNCLEVBQUUsU0FBZTtRQUNuRCxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLEdBQUcsR0FBRyxpQkFBTyxDQUFDLE1BQU0sQ0FBQztnQkFDbkIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO2dCQUNoQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFT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
|
|
905
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZU1hbmFnZXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL2NvcmUvc2VydmljZS9QYWNrYWdlTWFuYWdlclNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUFtQztBQUNuQyxzQ0FLcUI7QUFDckIsMkNBQTRDO0FBRTVDLG9EQUE0QjtBQUM1QiwwREFPa0M7QUFDbEMsa0VBQStEO0FBQy9ELDBFQUF1RTtBQUN2RSxzREFBa0U7QUFDbEUsMEVBQXlLO0FBQ3pLLGtHQUErRjtBQUMvRix3R0FBcUc7QUFDckcsb0VBQWlFO0FBQ2pFLCtDQUE0QztBQUM1Qyw2REFBMEQ7QUFDMUQsdUVBQW9FO0FBQ3BFLHFEQUFrRDtBQUdsRCxvQ0FZa0I7QUFDbEIsMkRBQXdEO0FBQ3hELHFEQUFrRDtBQUNsRCxxRUFBa0U7QUE0QmxFLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQztBQUMxQixNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFLN0IsSUFBTSxxQkFBcUIsNkRBQTNCLE1BQU0scUJBQXNCLFNBQVEsaUNBQWU7SUFvQnhELDhFQUE4RTtJQUM5RSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQXNCLEVBQUUsU0FBZTtRQUNuRCxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLEdBQUcsR0FBRyxpQkFBTyxDQUFDLE1BQU0sQ0FBQztnQkFDbkIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO2dCQUNoQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFT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
|
|
@@ -22,7 +22,6 @@ declare const GranularTokenOptionsRule: import("@sinclair/typebox").TObject<{
|
|
|
22
22
|
type GranularTokenOptions = Static<typeof GranularTokenOptionsRule>;
|
|
23
23
|
export declare class TokenController extends AbstractController {
|
|
24
24
|
private readonly authAdapter;
|
|
25
|
-
private readonly tokenService;
|
|
26
25
|
createToken(ctx: EggContext, tokenOptions: TokenOptions): Promise<{
|
|
27
26
|
token: string | undefined;
|
|
28
27
|
key: string;
|
|
@@ -19,8 +19,6 @@ const tegg_1 = require("@eggjs/tegg");
|
|
|
19
19
|
const typebox_1 = require("@sinclair/typebox");
|
|
20
20
|
const AbstractController_1 = require("./AbstractController");
|
|
21
21
|
const Token_1 = require("../../core/entity/Token");
|
|
22
|
-
const TokenService_1 = require("../../../app/core/service/TokenService");
|
|
23
|
-
const PackageUtil_1 = require("../../../app/common/PackageUtil");
|
|
24
22
|
// Creating and viewing access tokens
|
|
25
23
|
// https://docs.npmjs.com/creating-and-viewing-access-tokens#viewing-access-tokens
|
|
26
24
|
const TokenOptionsRule = typebox_1.Type.Object({
|
|
@@ -163,12 +161,6 @@ let TokenController = exports.TokenController = class TokenController extends Ab
|
|
|
163
161
|
const user = await this.ensureWebUser();
|
|
164
162
|
const tokens = await this.userRepository.listTokens(user.userId);
|
|
165
163
|
const granularTokens = tokens.filter(token => (0, Token_1.isGranularToken)(token));
|
|
166
|
-
for (const token of granularTokens) {
|
|
167
|
-
const packages = await this.tokenService.listTokenPackages(token);
|
|
168
|
-
if (Array.isArray(packages)) {
|
|
169
|
-
token.allowedPackages = packages.map(p => (0, PackageUtil_1.getFullname)(p.scope, p.name));
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
164
|
const objects = granularTokens.map(token => {
|
|
173
165
|
const { name, description, expiredAt, allowedPackages, allowedScopes, lastUsedAt, type } = token;
|
|
174
166
|
return {
|
|
@@ -198,10 +190,6 @@ __decorate([
|
|
|
198
190
|
(0, tegg_1.Inject)(),
|
|
199
191
|
__metadata("design:type", AuthAdapter_1.AuthAdapter)
|
|
200
192
|
], TokenController.prototype, "authAdapter", void 0);
|
|
201
|
-
__decorate([
|
|
202
|
-
(0, tegg_1.Inject)(),
|
|
203
|
-
__metadata("design:type", TokenService_1.TokenService)
|
|
204
|
-
], TokenController.prototype, "tokenService", void 0);
|
|
205
193
|
__decorate([
|
|
206
194
|
(0, tegg_1.HTTPMethod)({
|
|
207
195
|
path: '/-/npm/v1/tokens',
|
|
@@ -274,4 +262,4 @@ __decorate([
|
|
|
274
262
|
exports.TokenController = TokenController = __decorate([
|
|
275
263
|
(0, tegg_1.HTTPController)()
|
|
276
264
|
], TokenController);
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9rZW5Db250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9Ub2tlbkNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQStEO0FBQy9ELHlEQUFzRDtBQUN0RCxzQ0FTcUI7QUFDckIsK0NBQWlEO0FBQ2pELDZEQUEwRDtBQUMxRCxtREFBcUU7QUFFckUscUNBQXFDO0FBQ3JDLGtGQUFrRjtBQUVsRixNQUFNLGdCQUFnQixHQUFHLGNBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMsUUFBUSxFQUFFLGNBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUN2RCxRQUFRLEVBQUUsY0FBSSxDQUFDLFFBQVEsQ0FBQyxjQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsVUFBVSxFQUFFLGNBQUksQ0FBQyxRQUFRLENBQUMsY0FBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLDJCQUEyQjtJQUMzQixjQUFjLEVBQUUsY0FBSSxDQUFDLFFBQVEsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDLGNBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0NBQzdGLENBQUMsQ0FBQztBQUdILE1BQU0sd0JBQXdCLEdBQUcsY0FBSSxDQUFDLE1BQU0sQ0FBQztJQUMzQyxVQUFVLEVBQUUsY0FBSSxDQUFDLFFBQVEsQ0FBQyxjQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekMsUUFBUSxFQUFFLGNBQUksQ0FBQyxRQUFRLENBQUMsY0FBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLGNBQWMsRUFBRSxjQUFJLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxL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
|
|
@@ -25,6 +25,32 @@ export declare class UserController extends AbstractController {
|
|
|
25
25
|
}>;
|
|
26
26
|
whoami(ctx: EggContext): Promise<{
|
|
27
27
|
username: string;
|
|
28
|
+
name: string;
|
|
29
|
+
description: string | undefined;
|
|
30
|
+
allowedPackages: string[] | undefined;
|
|
31
|
+
allowedScopes: string[] | undefined;
|
|
32
|
+
lastUsedAt: Date;
|
|
33
|
+
expiredAt: Date;
|
|
34
|
+
key: string;
|
|
35
|
+
cidr_whitelist: string[];
|
|
36
|
+
readonly: boolean;
|
|
37
|
+
created: Date;
|
|
38
|
+
updated: Date;
|
|
39
|
+
type: import("../../core/entity/Token").TokenType | undefined;
|
|
40
|
+
} | {
|
|
41
|
+
username: string;
|
|
42
|
+
name?: undefined;
|
|
43
|
+
description?: undefined;
|
|
44
|
+
allowedPackages?: undefined;
|
|
45
|
+
allowedScopes?: undefined;
|
|
46
|
+
lastUsedAt?: undefined;
|
|
47
|
+
expiredAt?: undefined;
|
|
48
|
+
key?: undefined;
|
|
49
|
+
cidr_whitelist?: undefined;
|
|
50
|
+
readonly?: undefined;
|
|
51
|
+
created?: undefined;
|
|
52
|
+
updated?: undefined;
|
|
53
|
+
type?: undefined;
|
|
28
54
|
}>;
|
|
29
55
|
starredByUser(): Promise<void>;
|
|
30
56
|
showProfile(ctx: EggContext): Promise<{
|
|
@@ -19,6 +19,7 @@ const typebox_1 = require("@sinclair/typebox");
|
|
|
19
19
|
const AbstractController_1 = require("./AbstractController");
|
|
20
20
|
const User_1 = require("../../common/enum/User");
|
|
21
21
|
const UserUtil_1 = require("../../common/UserUtil");
|
|
22
|
+
const Token_1 = require("../../core/entity/Token");
|
|
22
23
|
// body: {
|
|
23
24
|
// _id: 'org.couchdb.user:dddd',
|
|
24
25
|
// name: 'dddd',
|
|
@@ -133,9 +134,31 @@ let UserController = exports.UserController = class UserController extends Abstr
|
|
|
133
134
|
}
|
|
134
135
|
// https://github.com/npm/cli/blob/latest/lib/utils/get-identity.js#L20
|
|
135
136
|
async whoami(ctx) {
|
|
136
|
-
|
|
137
|
+
await this.userRoleManager.requiredAuthorizedUser(ctx, 'read');
|
|
138
|
+
const authorizedRes = await this.userRoleManager.getAuthorizedUserAndToken(ctx);
|
|
139
|
+
const { token, user } = authorizedRes;
|
|
140
|
+
if ((0, Token_1.isGranularToken)(token)) {
|
|
141
|
+
const { name, description, expiredAt, allowedPackages, allowedScopes, lastUsedAt, type } = token;
|
|
142
|
+
return {
|
|
143
|
+
username: user.displayName,
|
|
144
|
+
name,
|
|
145
|
+
description,
|
|
146
|
+
allowedPackages,
|
|
147
|
+
allowedScopes,
|
|
148
|
+
lastUsedAt,
|
|
149
|
+
expiredAt,
|
|
150
|
+
// do not return token value
|
|
151
|
+
// token: token.token,
|
|
152
|
+
key: token.tokenKey,
|
|
153
|
+
cidr_whitelist: token.cidrWhitelist,
|
|
154
|
+
readonly: token.isReadonly,
|
|
155
|
+
created: token.createdAt,
|
|
156
|
+
updated: token.updatedAt,
|
|
157
|
+
type,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
137
160
|
return {
|
|
138
|
-
username:
|
|
161
|
+
username: user.displayName,
|
|
139
162
|
};
|
|
140
163
|
}
|
|
141
164
|
// https://github.com/cnpm/cnpmcore/issues/64
|
|
@@ -242,4 +265,4 @@ __decorate([
|
|
|
242
265
|
exports.UserController = UserController = __decorate([
|
|
243
266
|
(0, tegg_1.HTTPController)()
|
|
244
267
|
], UserController);
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQVFxQjtBQUNyQiwyQ0FLb0I7QUFDcEIsK0NBQWlEO0FBQ2pELDZEQUEwRDtBQUMxRCxpREFBeUQ7QUFDekQsb0RBQStDO0FBQy9DLG1EQUEwRDtBQUUxRCxVQUFVO0FBQ1Ysa0NBQWtDO0FBQ2xDLGtCQUFrQjtBQUNsQixxQkFBcUI7QUFDckIsa0JBQWtCO0FBQ2xCLGVBQWU7QUFDZixxQ0FBcUM7QUFDckMsSUFBSTtBQUNKLGtDQUFrQztBQUNsQyxJQUFJO0FBQ0osbUNBQW1DO0FBQ25DLG1CQUFtQjtBQUNuQixxQkFBcUI7QUFDckIsMkJBQTJCO0FBQzNCLGtCQUFrQjtBQUNsQixlQUFlO0FBQ2YscUNBQXFDO0FBQ3JDLElBQUk7QUFDSixNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNCLElBQUksRUFBRSxjQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMxQiw4Q0FBOEM7SUFDOUMsSUFBSSxFQUFFLGNBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNuRCw2REFBNkQ7SUFDN0QsaUVBQWlFO0lBQ2pFLGlEQUFpRDtJQUNqRCxRQUFRLEVBQUUsY0FBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3ZELEtBQUssRUFBRSxjQUFJLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztDQUN2RCxDQUFDLENBQUM7QUFJSSxJQUFNLGNBQWMsNEJB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
|
|
@@ -6,6 +6,7 @@ export declare class UserRepository extends AbstractRepository {
|
|
|
6
6
|
private readonly User;
|
|
7
7
|
private readonly Token;
|
|
8
8
|
private readonly TokenPackage;
|
|
9
|
+
private readonly Package;
|
|
9
10
|
private readonly packageRepository;
|
|
10
11
|
private readonly WebauthnCredential;
|
|
11
12
|
saveUser(user: UserEntity): Promise<void>;
|
|
@@ -16,6 +17,7 @@ export declare class UserRepository extends AbstractRepository {
|
|
|
16
17
|
user: UserEntity;
|
|
17
18
|
} | null>;
|
|
18
19
|
findTokenByTokenKey(tokenKey: string): Promise<TokenEntity | null>;
|
|
20
|
+
private _injectTokenPackages;
|
|
19
21
|
saveToken(token: TokenEntity): Promise<void>;
|
|
20
22
|
removeToken(tokenId: string): Promise<void>;
|
|
21
23
|
listTokens(userId: string): Promise<TokenEntity[]>;
|
|
@@ -59,7 +59,18 @@ let UserRepository = exports.UserRepository = class UserRepository extends Abstr
|
|
|
59
59
|
const model = await this.Token.findOne({ tokenKey });
|
|
60
60
|
if (!model)
|
|
61
61
|
return null;
|
|
62
|
-
|
|
62
|
+
const token = ModelConvertor_1.ModelConvertor.convertModelToEntity(model, Token_1.Token);
|
|
63
|
+
await this._injectTokenPackages(token);
|
|
64
|
+
return token;
|
|
65
|
+
}
|
|
66
|
+
async _injectTokenPackages(token) {
|
|
67
|
+
if ((0, Token_1.isGranularToken)(token)) {
|
|
68
|
+
const models = await this.TokenPackage.find({ tokenId: token.tokenId });
|
|
69
|
+
const packages = await this.Package.find({ packageId: models.map(m => m.packageId) });
|
|
70
|
+
if (Array.isArray(packages)) {
|
|
71
|
+
token.allowedPackages = packages.map(p => (0, PackageUtil_1.getFullname)(p.scope, p.name));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
63
74
|
}
|
|
64
75
|
async saveToken(token) {
|
|
65
76
|
// create
|
|
@@ -102,7 +113,11 @@ let UserRepository = exports.UserRepository = class UserRepository extends Abstr
|
|
|
102
113
|
}
|
|
103
114
|
async listTokens(userId) {
|
|
104
115
|
const models = await this.Token.find({ userId });
|
|
105
|
-
|
|
116
|
+
const tokens = models.map(model => ModelConvertor_1.ModelConvertor.convertModelToEntity(model, Token_1.Token));
|
|
117
|
+
for (const token of tokens) {
|
|
118
|
+
await this._injectTokenPackages(token);
|
|
119
|
+
}
|
|
120
|
+
return tokens;
|
|
106
121
|
}
|
|
107
122
|
async saveCredential(credential) {
|
|
108
123
|
if (credential.id) {
|
|
@@ -142,6 +157,10 @@ __decorate([
|
|
|
142
157
|
(0, tegg_1.Inject)(),
|
|
143
158
|
__metadata("design:type", Object)
|
|
144
159
|
], UserRepository.prototype, "TokenPackage", void 0);
|
|
160
|
+
__decorate([
|
|
161
|
+
(0, tegg_1.Inject)(),
|
|
162
|
+
__metadata("design:type", Object)
|
|
163
|
+
], UserRepository.prototype, "Package", void 0);
|
|
145
164
|
__decorate([
|
|
146
165
|
(0, tegg_1.Inject)(),
|
|
147
166
|
__metadata("design:type", PackageRepository_1.PackageRepository)
|
|
@@ -155,4 +174,4 @@ exports.UserRepository = UserRepository = __decorate([
|
|
|
155
174
|
accessLevel: tegg_1.AccessLevel.PUBLIC,
|
|
156
175
|
})
|
|
157
176
|
], UserRepository);
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlclJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS9Vc2VyUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzQ0FBa0U7QUFDbEUsMERBQXVEO0FBS3ZELDhDQUF5RDtBQUN6RCxnREFBNkU7QUFDN0UsMEVBQW1HO0FBQ25HLDZEQUEwRDtBQUUxRCx1REFBcUU7QUFDckUsMkRBQXdEO0FBS2pELElBQU0sY0FBYyw0QkFBcEIsTUFBTSxjQUFlLFNBQVEsdUNBQWtCO0lBbUJwRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQWdCO1FBQzdCLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUNuQixNQUFNLCtCQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxNQUFNLEtBQUssR0FBRyxNQUFNLCtCQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrREFBa0QsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5RjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLElBQVk7UUFDL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUks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
|