@medusajs/auth 0.0.2 → 0.0.3-next-20240319121007
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/migrations/Migration20240205025924.d.ts +5 -0
- package/dist/migrations/Migration20240205025924.js +14 -0
- package/dist/models/auth-user.d.ts +3 -3
- package/dist/models/auth-user.js +15 -12
- package/dist/models/index.d.ts +0 -1
- package/dist/models/index.js +1 -3
- package/dist/providers/email-password.d.ts +1 -0
- package/dist/providers/email-password.js +34 -2
- package/dist/providers/google.d.ts +6 -6
- package/dist/providers/google.js +25 -32
- package/dist/services/auth-module.d.ts +18 -37
- package/dist/services/auth-module.js +19 -208
- package/dist/services/auth-user.d.ts +3 -10
- package/dist/services/auth-user.js +1 -1
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.js +1 -3
- package/dist/types/repositories/index.d.ts +0 -15
- package/dist/types/repositories/index.js +0 -1
- package/dist/types/services/auth-user.d.ts +4 -3
- package/dist/types/services/index.d.ts +0 -1
- package/dist/types/services/index.js +0 -1
- package/package.json +7 -7
- package/dist/migrations/Migration20240122041959.d.ts +0 -5
- package/dist/migrations/Migration20240122041959.js +0 -18
- package/dist/models/auth-provider.d.ts +0 -12
- package/dist/models/auth-provider.js +0 -44
- package/dist/services/auth-provider.d.ts +0 -18
- package/dist/services/auth-provider.js +0 -11
- package/dist/types/repositories/auth-provider.d.ts +0 -23
- package/dist/types/repositories/auth-provider.js +0 -9
- package/dist/types/services/auth-provider.d.ts +0 -27
- package/dist/types/services/auth-provider.js +0 -9
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20240205025924 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20240205025924 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql('create table if not exists "auth_user" ("id" text not null, "entity_id" text not null, "provider" text not null, "scope" text not null, "user_metadata" jsonb null, "app_metadata" jsonb not null, "provider_metadata" jsonb null, constraint "auth_user_pkey" primary key ("id"));');
|
|
8
|
+
this.addSql('alter table "auth_user" add constraint "IDX_auth_user_provider_scope_entity_id" unique ("provider", "scope", "entity_id");');
|
|
9
|
+
}
|
|
10
|
+
async down() {
|
|
11
|
+
this.addSql('drop table if exists "auth_user" cascade;');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.Migration20240205025924 = Migration20240205025924;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { OptionalProps } from "@mikro-orm/core";
|
|
2
|
-
import AuthProvider from "./auth-provider";
|
|
3
2
|
type OptionalFields = "provider_metadata" | "app_metadata" | "user_metadata";
|
|
4
3
|
export default class AuthUser {
|
|
5
4
|
[OptionalProps]: OptionalFields;
|
|
6
5
|
id: string;
|
|
7
6
|
entity_id: string;
|
|
8
|
-
provider:
|
|
7
|
+
provider: string;
|
|
8
|
+
scope: string;
|
|
9
9
|
user_metadata: Record<string, unknown> | null;
|
|
10
|
-
app_metadata: Record<string, unknown
|
|
10
|
+
app_metadata: Record<string, unknown>;
|
|
11
11
|
provider_metadata: Record<string, unknown> | null;
|
|
12
12
|
onCreate(): void;
|
|
13
13
|
onInit(): void;
|
package/dist/models/auth-user.js
CHANGED
|
@@ -8,14 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
const core_1 = require("@mikro-orm/core");
|
|
16
|
-
const auth_provider_1 = __importDefault(require("./auth-provider"));
|
|
17
13
|
const utils_1 = require("@medusajs/utils");
|
|
18
14
|
let AuthUser = class AuthUser {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.app_metadata = {};
|
|
17
|
+
this.provider_metadata = null;
|
|
18
|
+
}
|
|
19
19
|
onCreate() {
|
|
20
20
|
this.id = (0, utils_1.generateEntityId)(this.id, "authusr");
|
|
21
21
|
}
|
|
@@ -32,19 +32,19 @@ __decorate([
|
|
|
32
32
|
__metadata("design:type", String)
|
|
33
33
|
], AuthUser.prototype, "entity_id", void 0);
|
|
34
34
|
__decorate([
|
|
35
|
-
(0, core_1.
|
|
36
|
-
|
|
37
|
-
fieldName: "provider_id",
|
|
38
|
-
cascade: [core_1.Cascade.REMOVE],
|
|
39
|
-
}),
|
|
40
|
-
__metadata("design:type", auth_provider_1.default)
|
|
35
|
+
(0, core_1.Property)({ columnType: "text" }),
|
|
36
|
+
__metadata("design:type", String)
|
|
41
37
|
], AuthUser.prototype, "provider", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, core_1.Property)({ columnType: "text" }),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], AuthUser.prototype, "scope", void 0);
|
|
42
42
|
__decorate([
|
|
43
43
|
(0, core_1.Property)({ columnType: "jsonb", nullable: true }),
|
|
44
44
|
__metadata("design:type", Object)
|
|
45
45
|
], AuthUser.prototype, "user_metadata", void 0);
|
|
46
46
|
__decorate([
|
|
47
|
-
(0, core_1.Property)({ columnType: "jsonb"
|
|
47
|
+
(0, core_1.Property)({ columnType: "jsonb" }),
|
|
48
48
|
__metadata("design:type", Object)
|
|
49
49
|
], AuthUser.prototype, "app_metadata", void 0);
|
|
50
50
|
__decorate([
|
|
@@ -65,6 +65,9 @@ __decorate([
|
|
|
65
65
|
], AuthUser.prototype, "onInit", null);
|
|
66
66
|
AuthUser = __decorate([
|
|
67
67
|
(0, core_1.Entity)(),
|
|
68
|
-
(0, core_1.Unique)({
|
|
68
|
+
(0, core_1.Unique)({
|
|
69
|
+
properties: ["provider", "scope", "entity_id"],
|
|
70
|
+
name: "IDX_auth_user_provider_scope_entity_id",
|
|
71
|
+
})
|
|
69
72
|
], AuthUser);
|
|
70
73
|
exports.default = AuthUser;
|
package/dist/models/index.d.ts
CHANGED
package/dist/models/index.js
CHANGED
|
@@ -3,8 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.AuthUser = void 0;
|
|
7
7
|
var auth_user_1 = require("./auth-user");
|
|
8
8
|
Object.defineProperty(exports, "AuthUser", { enumerable: true, get: function () { return __importDefault(auth_user_1).default; } });
|
|
9
|
-
var auth_provider_1 = require("./auth-provider");
|
|
10
|
-
Object.defineProperty(exports, "AuthProvider", { enumerable: true, get: function () { return __importDefault(auth_provider_1).default; } });
|
|
@@ -8,6 +8,7 @@ declare class EmailPasswordProvider extends AbstractAuthModuleProvider {
|
|
|
8
8
|
constructor({ authUserService }: {
|
|
9
9
|
authUserService: AuthUserService;
|
|
10
10
|
});
|
|
11
|
+
private getHashConfig;
|
|
11
12
|
authenticate(userData: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
12
13
|
}
|
|
13
14
|
export default EmailPasswordProvider;
|
|
@@ -7,9 +7,18 @@ const utils_1 = require("@medusajs/utils");
|
|
|
7
7
|
const scrypt_kdf_1 = __importDefault(require("scrypt-kdf"));
|
|
8
8
|
class EmailPasswordProvider extends utils_1.AbstractAuthModuleProvider {
|
|
9
9
|
constructor({ authUserService }) {
|
|
10
|
-
super(arguments[0]
|
|
10
|
+
super(arguments[0], {
|
|
11
|
+
provider: EmailPasswordProvider.PROVIDER,
|
|
12
|
+
displayName: EmailPasswordProvider.DISPLAY_NAME,
|
|
13
|
+
});
|
|
11
14
|
this.authUserSerivce_ = authUserService;
|
|
12
15
|
}
|
|
16
|
+
getHashConfig() {
|
|
17
|
+
const scopeConfig = this.scopeConfig_.hashConfig;
|
|
18
|
+
const defaultHashConfig = { logN: 15, r: 8, p: 1 };
|
|
19
|
+
// Return custom defined hash config or default hash parameters
|
|
20
|
+
return scopeConfig ?? defaultHashConfig;
|
|
21
|
+
}
|
|
13
22
|
async authenticate(userData) {
|
|
14
23
|
const { email, password } = userData.body;
|
|
15
24
|
if (!password || !(0, utils_1.isString)(password)) {
|
|
@@ -24,7 +33,30 @@ class EmailPasswordProvider extends utils_1.AbstractAuthModuleProvider {
|
|
|
24
33
|
error: "Email should be a string",
|
|
25
34
|
};
|
|
26
35
|
}
|
|
27
|
-
|
|
36
|
+
let authUser;
|
|
37
|
+
try {
|
|
38
|
+
authUser = await this.authUserSerivce_.retrieveByProviderAndEntityId(email, EmailPasswordProvider.PROVIDER);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error.type === utils_1.MedusaError.Types.NOT_FOUND) {
|
|
42
|
+
const password_hash = await scrypt_kdf_1.default.kdf(password, this.getHashConfig());
|
|
43
|
+
const [createdAuthUser] = await this.authUserSerivce_.create([
|
|
44
|
+
{
|
|
45
|
+
entity_id: email,
|
|
46
|
+
provider: EmailPasswordProvider.PROVIDER,
|
|
47
|
+
scope: this.scope_,
|
|
48
|
+
provider_metadata: {
|
|
49
|
+
password: password_hash.toString("base64"),
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
]);
|
|
53
|
+
return {
|
|
54
|
+
success: true,
|
|
55
|
+
authUser: JSON.parse(JSON.stringify(createdAuthUser)),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return { success: false, error: error.message };
|
|
59
|
+
}
|
|
28
60
|
const password_hash = authUser.provider_metadata?.password;
|
|
29
61
|
if ((0, utils_1.isString)(password_hash)) {
|
|
30
62
|
const buf = Buffer.from(password_hash, "base64");
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
+
import { AuthenticationInput, AuthenticationResponse, ModulesSdkTypes } from "@medusajs/types";
|
|
1
2
|
import { AbstractAuthModuleProvider } from "@medusajs/utils";
|
|
2
|
-
import {
|
|
3
|
-
import { AuthProviderService, AuthUserService } from "../services";
|
|
3
|
+
import { AuthUserService } from "../services";
|
|
4
4
|
type InjectedDependencies = {
|
|
5
5
|
authUserService: AuthUserService;
|
|
6
|
-
authProviderService:
|
|
6
|
+
authProviderService: ModulesSdkTypes.InternalModuleService<any>;
|
|
7
7
|
};
|
|
8
8
|
declare class GoogleProvider extends AbstractAuthModuleProvider {
|
|
9
9
|
static PROVIDER: string;
|
|
10
10
|
static DISPLAY_NAME: string;
|
|
11
|
-
protected readonly
|
|
12
|
-
protected readonly authProviderService_:
|
|
11
|
+
protected readonly authUserService_: AuthUserService;
|
|
12
|
+
protected readonly authProviderService_: ModulesSdkTypes.InternalModuleService<any>;
|
|
13
13
|
constructor({ authUserService, authProviderService }: InjectedDependencies);
|
|
14
14
|
authenticate(req: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
15
15
|
validateCallback(req: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
16
|
-
verify_(refreshToken: string
|
|
16
|
+
verify_(refreshToken: string): Promise<{
|
|
17
17
|
success: boolean;
|
|
18
18
|
error: any;
|
|
19
19
|
authUser?: undefined;
|
package/dist/providers/google.js
CHANGED
|
@@ -9,8 +9,11 @@ const simple_oauth2_1 = require("simple-oauth2");
|
|
|
9
9
|
const url_1 = __importDefault(require("url"));
|
|
10
10
|
class GoogleProvider extends utils_1.AbstractAuthModuleProvider {
|
|
11
11
|
constructor({ authUserService, authProviderService }) {
|
|
12
|
-
super(arguments[0]
|
|
13
|
-
|
|
12
|
+
super(arguments[0], {
|
|
13
|
+
provider: GoogleProvider.PROVIDER,
|
|
14
|
+
displayName: GoogleProvider.DISPLAY_NAME,
|
|
15
|
+
});
|
|
16
|
+
this.authUserService_ = authUserService;
|
|
14
17
|
this.authProviderService_ = authProviderService;
|
|
15
18
|
}
|
|
16
19
|
async authenticate(req) {
|
|
@@ -44,28 +47,29 @@ class GoogleProvider extends utils_1.AbstractAuthModuleProvider {
|
|
|
44
47
|
return { success: false, error: error.message };
|
|
45
48
|
}
|
|
46
49
|
const code = req.query?.code ?? req.body?.code;
|
|
47
|
-
return await this.validateCallbackToken(code,
|
|
50
|
+
return await this.validateCallbackToken(code, config);
|
|
48
51
|
}
|
|
49
52
|
// abstractable
|
|
50
|
-
async verify_(refreshToken
|
|
51
|
-
const jwtData =
|
|
53
|
+
async verify_(refreshToken) {
|
|
54
|
+
const jwtData = jsonwebtoken_1.default.decode(refreshToken, {
|
|
52
55
|
complete: true,
|
|
53
|
-
})
|
|
56
|
+
});
|
|
54
57
|
const entity_id = jwtData.payload.email;
|
|
55
58
|
let authUser;
|
|
56
59
|
try {
|
|
57
|
-
authUser = await this.
|
|
60
|
+
authUser = await this.authUserService_.retrieveByProviderAndEntityId(entity_id, GoogleProvider.PROVIDER);
|
|
58
61
|
}
|
|
59
62
|
catch (error) {
|
|
60
63
|
if (error.type === utils_1.MedusaError.Types.NOT_FOUND) {
|
|
61
|
-
|
|
64
|
+
const [createdAuthUser] = await this.authUserService_.create([
|
|
62
65
|
{
|
|
63
66
|
entity_id,
|
|
64
|
-
|
|
67
|
+
provider: GoogleProvider.PROVIDER,
|
|
65
68
|
user_metadata: jwtData.payload,
|
|
66
|
-
|
|
69
|
+
scope: this.scope_,
|
|
67
70
|
},
|
|
68
71
|
]);
|
|
72
|
+
authUser = createdAuthUser;
|
|
69
73
|
}
|
|
70
74
|
else {
|
|
71
75
|
return { success: false, error: error.message };
|
|
@@ -74,7 +78,7 @@ class GoogleProvider extends utils_1.AbstractAuthModuleProvider {
|
|
|
74
78
|
return { success: true, authUser };
|
|
75
79
|
}
|
|
76
80
|
// abstractable
|
|
77
|
-
async validateCallbackToken(code,
|
|
81
|
+
async validateCallbackToken(code, { clientID, callbackURL, clientSecret }) {
|
|
78
82
|
const client = this.getAuthorizationCodeHandler({ clientID, clientSecret });
|
|
79
83
|
const tokenParams = {
|
|
80
84
|
code,
|
|
@@ -82,46 +86,35 @@ class GoogleProvider extends utils_1.AbstractAuthModuleProvider {
|
|
|
82
86
|
};
|
|
83
87
|
try {
|
|
84
88
|
const accessToken = await client.getToken(tokenParams);
|
|
85
|
-
return await this.verify_(accessToken.token.id_token
|
|
89
|
+
return await this.verify_(accessToken.token.id_token);
|
|
86
90
|
}
|
|
87
91
|
catch (error) {
|
|
88
92
|
return { success: false, error: error.message };
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
|
-
getConfigFromScope(
|
|
92
|
-
const
|
|
93
|
-
if (config.
|
|
94
|
-
providerConfig.clientID = config.clientId;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
95
|
+
getConfigFromScope() {
|
|
96
|
+
const config = { ...this.scopeConfig_ };
|
|
97
|
+
if (!config.clientID) {
|
|
97
98
|
throw new Error("Google clientID is required");
|
|
98
99
|
}
|
|
99
|
-
if (config.clientSecret) {
|
|
100
|
-
providerConfig.clientSecret = config.clientSecret;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
100
|
+
if (!config.clientSecret) {
|
|
103
101
|
throw new Error("Google clientSecret is required");
|
|
104
102
|
}
|
|
105
|
-
if (config.callbackURL) {
|
|
106
|
-
providerConfig.callbackURL = config.callbackUrl;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
103
|
+
if (!config.callbackURL) {
|
|
109
104
|
throw new Error("Google callbackUrl is required");
|
|
110
105
|
}
|
|
111
|
-
return
|
|
106
|
+
return config;
|
|
112
107
|
}
|
|
113
108
|
originalURL(req) {
|
|
114
|
-
const tls = req.connection.encrypted;
|
|
115
109
|
const host = req.headers.host;
|
|
116
|
-
const protocol =
|
|
110
|
+
const protocol = req.protocol;
|
|
117
111
|
const path = req.url || "";
|
|
118
112
|
return protocol + "://" + host + path;
|
|
119
113
|
}
|
|
120
114
|
async getProviderConfig(req) {
|
|
121
115
|
await this.authProviderService_.retrieve(GoogleProvider.PROVIDER);
|
|
122
|
-
const
|
|
123
|
-
const
|
|
124
|
-
const { callbackURL } = config;
|
|
116
|
+
const config = this.getConfigFromScope();
|
|
117
|
+
const callbackURL = config.callbackURL;
|
|
125
118
|
const parsedCallbackUrl = !url_1.default.parse(callbackURL).protocol
|
|
126
119
|
? url_1.default.resolve(this.originalURL(req), callbackURL)
|
|
127
120
|
: callbackURL;
|
|
@@ -1,46 +1,27 @@
|
|
|
1
|
-
import { AuthenticationInput, AuthenticationResponse,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { AuthProviderService, AuthUserService } from ".";
|
|
1
|
+
import { AuthenticationInput, AuthenticationResponse, AuthTypes, AuthUserDTO, Context, CreateAuthUserDTO, DAL, InternalModuleDeclaration, ModuleJoinerConfig, ModulesSdkTypes, UpdateAuthUserDTO } from "@medusajs/types";
|
|
2
|
+
import { AuthUser } from "../models";
|
|
3
|
+
import { AbstractAuthModuleProvider, ModulesSdkUtils } from "@medusajs/utils";
|
|
5
4
|
type InjectedDependencies = {
|
|
6
5
|
baseRepository: DAL.RepositoryService;
|
|
7
|
-
authUserService:
|
|
8
|
-
authProviderService: AuthProviderService<any>;
|
|
6
|
+
authUserService: ModulesSdkTypes.InternalModuleService<any>;
|
|
9
7
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
__hooks: {
|
|
14
|
-
onApplicationStart: () => Promise<void>;
|
|
8
|
+
declare const AuthModuleService_base: new (container: InjectedDependencies) => ModulesSdkUtils.AbstractModuleService<InjectedDependencies, AuthTypes.AuthUserDTO, {
|
|
9
|
+
AuthUser: {
|
|
10
|
+
dto: AuthUserDTO;
|
|
15
11
|
};
|
|
16
|
-
|
|
12
|
+
}>;
|
|
13
|
+
export default class AuthModuleService<TAuthUser extends AuthUser = AuthUser> extends AuthModuleService_base implements AuthTypes.IAuthModuleService {
|
|
14
|
+
protected readonly moduleDeclaration: InternalModuleDeclaration;
|
|
17
15
|
protected baseRepository_: DAL.RepositoryService;
|
|
18
|
-
protected authUserService_:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
protected createAuthProviders_(data: any[], sharedContext: Context): Promise<TAuthProvider[]>;
|
|
27
|
-
updateAuthProvider(data: AuthTypes.UpdateAuthProviderDTO[], sharedContext?: Context): Promise<AuthProviderDTO[]>;
|
|
28
|
-
updateAuthProvider(data: AuthTypes.UpdateAuthProviderDTO, sharedContext?: Context): Promise<AuthProviderDTO>;
|
|
29
|
-
updateAuthProvider_(data: AuthTypes.UpdateAuthProviderDTO[], sharedContext?: Context): Promise<TAuthProvider[]>;
|
|
30
|
-
deleteAuthProvider(ids: string[], sharedContext?: Context): Promise<void>;
|
|
31
|
-
retrieveAuthUser(id: string, config?: FindConfig<AuthUserDTO>, sharedContext?: Context): Promise<AuthUserDTO>;
|
|
32
|
-
listAuthUsers(filters?: FilterableAuthUserProps, config?: FindConfig<AuthUserDTO>, sharedContext?: Context): Promise<AuthUserDTO[]>;
|
|
33
|
-
listAndCountAuthUsers(filters?: FilterableAuthUserProps, config?: FindConfig<AuthUserDTO>, sharedContext?: Context): Promise<[AuthUserDTO[], number]>;
|
|
34
|
-
createAuthUser(data: CreateAuthUserDTO[], sharedContext?: Context): Promise<AuthUserDTO[]>;
|
|
35
|
-
createAuthUser(data: CreateAuthUserDTO, sharedContext?: Context): Promise<AuthUserDTO>;
|
|
36
|
-
protected createAuthUsers_(data: CreateAuthUserDTO[], sharedContext: Context): Promise<TAuthUser[]>;
|
|
37
|
-
updateAuthUser(data: UpdateAuthUserDTO[], sharedContext?: Context): Promise<AuthUserDTO[]>;
|
|
38
|
-
updateAuthUser(data: UpdateAuthUserDTO, sharedContext?: Context): Promise<AuthUserDTO>;
|
|
39
|
-
protected updateAuthUsers_(data: UpdateAuthUserDTO[], sharedContext: Context): Promise<TAuthUser[]>;
|
|
40
|
-
deleteAuthUser(ids: string[], sharedContext?: Context): Promise<void>;
|
|
41
|
-
protected getRegisteredAuthenticationProvider(provider: string, { scope }: AuthenticationInput): AbstractAuthModuleProvider;
|
|
16
|
+
protected authUserService_: ModulesSdkTypes.InternalModuleService<TAuthUser>;
|
|
17
|
+
constructor({ authUserService, baseRepository }: InjectedDependencies, moduleDeclaration: InternalModuleDeclaration);
|
|
18
|
+
__joinerConfig(): ModuleJoinerConfig;
|
|
19
|
+
create(data: CreateAuthUserDTO[], sharedContext?: Context): Promise<AuthUserDTO[]>;
|
|
20
|
+
create(data: CreateAuthUserDTO, sharedContext?: Context): Promise<AuthUserDTO>;
|
|
21
|
+
update(data: UpdateAuthUserDTO[], sharedContext?: Context): Promise<AuthUserDTO[]>;
|
|
22
|
+
update(data: UpdateAuthUserDTO, sharedContext?: Context): Promise<AuthUserDTO>;
|
|
23
|
+
protected getRegisteredAuthenticationProvider(provider: string, { authScope }: AuthenticationInput): AbstractAuthModuleProvider;
|
|
42
24
|
authenticate(provider: string, authenticationData: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
43
25
|
validateCallback(provider: string, authenticationData: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
44
|
-
private createProvidersOnLoad;
|
|
45
26
|
}
|
|
46
27
|
export {};
|
|
@@ -12,122 +12,47 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const
|
|
15
|
+
const _models_1 = require("../models");
|
|
16
16
|
const joiner_config_1 = require("../joiner-config");
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
17
|
+
const utils_1 = require("@medusajs/utils");
|
|
18
|
+
const generateMethodForModels = [_models_1.AuthUser];
|
|
19
|
+
class AuthModuleService extends utils_1.ModulesSdkUtils.abstractModuleServiceFactory(_models_1.AuthUser, generateMethodForModels, joiner_config_1.entityNameToLinkableKeysMap) {
|
|
20
|
+
constructor({ authUserService, baseRepository }, moduleDeclaration) {
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
super(...arguments);
|
|
22
23
|
this.moduleDeclaration = moduleDeclaration;
|
|
23
|
-
this.__hooks = {
|
|
24
|
-
onApplicationStart: async () => await this.createProvidersOnLoad(),
|
|
25
|
-
};
|
|
26
|
-
this.__container__ = arguments[0];
|
|
27
24
|
this.baseRepository_ = baseRepository;
|
|
28
25
|
this.authUserService_ = authUserService;
|
|
29
|
-
this.authProviderService_ = authProviderService;
|
|
30
|
-
}
|
|
31
|
-
async retrieveAuthProvider(provider, config = {}, sharedContext = {}) {
|
|
32
|
-
const authProvider = await this.authProviderService_.retrieve(provider, config, sharedContext);
|
|
33
|
-
return await this.baseRepository_.serialize(authProvider, { populate: true });
|
|
34
|
-
}
|
|
35
|
-
async listAuthProviders(filters = {}, config = {}, sharedContext = {}) {
|
|
36
|
-
const authProviders = await this.authProviderService_.list(filters, config, sharedContext);
|
|
37
|
-
return await this.baseRepository_.serialize(authProviders, { populate: true });
|
|
38
|
-
}
|
|
39
|
-
async listAndCountAuthProviders(filters = {}, config, sharedContext = {}) {
|
|
40
|
-
const [authProviders, count] = await this.authProviderService_.listAndCount(filters, config, sharedContext);
|
|
41
|
-
return [
|
|
42
|
-
await this.baseRepository_.serialize(authProviders, { populate: true }),
|
|
43
|
-
count,
|
|
44
|
-
];
|
|
45
|
-
}
|
|
46
|
-
async createAuthProvider(data, sharedContext = {}) {
|
|
47
|
-
const input = Array.isArray(data) ? data : [data];
|
|
48
|
-
const providers = await this.createAuthProviders_(input, sharedContext);
|
|
49
|
-
const serializedProviders = await this.baseRepository_.serialize(providers, {
|
|
50
|
-
populate: true,
|
|
51
|
-
});
|
|
52
|
-
return Array.isArray(data) ? serializedProviders : serializedProviders[0];
|
|
53
|
-
}
|
|
54
|
-
async createAuthProviders_(data, sharedContext) {
|
|
55
|
-
return await this.authProviderService_.create(data, sharedContext);
|
|
56
26
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const providers = await this.updateAuthProvider_(input, sharedContext);
|
|
60
|
-
const serializedProviders = await this.baseRepository_.serialize(providers, {
|
|
61
|
-
populate: true,
|
|
62
|
-
});
|
|
63
|
-
return Array.isArray(data) ? serializedProviders : serializedProviders[0];
|
|
64
|
-
}
|
|
65
|
-
async updateAuthProvider_(data, sharedContext = {}) {
|
|
66
|
-
return await this.authProviderService_.update(data, sharedContext);
|
|
67
|
-
}
|
|
68
|
-
async deleteAuthProvider(ids, sharedContext = {}) {
|
|
69
|
-
await this.authProviderService_.delete(ids, sharedContext);
|
|
70
|
-
}
|
|
71
|
-
async retrieveAuthUser(id, config = {}, sharedContext = {}) {
|
|
72
|
-
const authUser = await this.authUserService_.retrieve(id, config, sharedContext);
|
|
73
|
-
return await this.baseRepository_.serialize(authUser, {
|
|
74
|
-
exclude: ["password_hash"],
|
|
75
|
-
});
|
|
27
|
+
__joinerConfig() {
|
|
28
|
+
return joiner_config_1.joinerConfig;
|
|
76
29
|
}
|
|
77
|
-
async
|
|
78
|
-
const authUsers = await this.authUserService_.
|
|
30
|
+
async create(data, sharedContext = {}) {
|
|
31
|
+
const authUsers = await this.authUserService_.create(data, sharedContext);
|
|
79
32
|
return await this.baseRepository_.serialize(authUsers, {
|
|
80
33
|
populate: true,
|
|
81
34
|
});
|
|
82
35
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
await this.baseRepository_.serialize(authUsers, {
|
|
87
|
-
populate: true,
|
|
88
|
-
}),
|
|
89
|
-
count,
|
|
90
|
-
];
|
|
91
|
-
}
|
|
92
|
-
async createAuthUser(data, sharedContext = {}) {
|
|
93
|
-
const input = Array.isArray(data) ? data : [data];
|
|
94
|
-
const authUsers = await this.createAuthUsers_(input, sharedContext);
|
|
95
|
-
const serializedUsers = await this.baseRepository_.serialize(authUsers, {
|
|
96
|
-
populate: true,
|
|
97
|
-
});
|
|
98
|
-
return Array.isArray(data) ? serializedUsers : serializedUsers[0];
|
|
99
|
-
}
|
|
100
|
-
async createAuthUsers_(data, sharedContext) {
|
|
101
|
-
return await this.authUserService_.create(data, sharedContext);
|
|
102
|
-
}
|
|
103
|
-
async updateAuthUser(data, sharedContext = {}) {
|
|
104
|
-
const input = Array.isArray(data) ? data : [data];
|
|
105
|
-
const updatedUsers = await this.updateAuthUsers_(input, sharedContext);
|
|
36
|
+
// TODO: should be pluralized, see convention about the methods naming or the abstract module service interface definition @engineering
|
|
37
|
+
async update(data, sharedContext = {}) {
|
|
38
|
+
const updatedUsers = await this.authUserService_.update(data, sharedContext);
|
|
106
39
|
const serializedUsers = await this.baseRepository_.serialize(updatedUsers, {
|
|
107
40
|
populate: true,
|
|
108
41
|
});
|
|
109
42
|
return Array.isArray(data) ? serializedUsers : serializedUsers[0];
|
|
110
43
|
}
|
|
111
|
-
|
|
112
|
-
return await this.authUserService_.update(data, sharedContext);
|
|
113
|
-
}
|
|
114
|
-
async deleteAuthUser(ids, sharedContext = {}) {
|
|
115
|
-
await this.authUserService_.delete(ids, sharedContext);
|
|
116
|
-
}
|
|
117
|
-
getRegisteredAuthenticationProvider(provider, { scope }) {
|
|
44
|
+
getRegisteredAuthenticationProvider(provider, { authScope }) {
|
|
118
45
|
let containerProvider;
|
|
119
46
|
try {
|
|
120
47
|
containerProvider = this.__container__[`auth_provider_${provider}`];
|
|
121
48
|
}
|
|
122
49
|
catch (error) {
|
|
123
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `AuthenticationProvider
|
|
50
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `AuthenticationProvider: ${provider} wasn't registered in the module. Have you configured your options correctly?`);
|
|
124
51
|
}
|
|
125
|
-
containerProvider.
|
|
126
|
-
return containerProvider;
|
|
52
|
+
return containerProvider.withScope(authScope);
|
|
127
53
|
}
|
|
128
54
|
async authenticate(provider, authenticationData) {
|
|
129
55
|
try {
|
|
130
|
-
await this.retrieveAuthProvider(provider, {});
|
|
131
56
|
const registeredProvider = this.getRegisteredAuthenticationProvider(provider, authenticationData);
|
|
132
57
|
return await registeredProvider.authenticate(authenticationData);
|
|
133
58
|
}
|
|
@@ -137,7 +62,6 @@ class AuthModuleService {
|
|
|
137
62
|
}
|
|
138
63
|
async validateCallback(provider, authenticationData) {
|
|
139
64
|
try {
|
|
140
|
-
await this.retrieveAuthProvider(provider, {});
|
|
141
65
|
const registeredProvider = this.getRegisteredAuthenticationProvider(provider, authenticationData);
|
|
142
66
|
return await registeredProvider.validateCallback(authenticationData);
|
|
143
67
|
}
|
|
@@ -145,132 +69,19 @@ class AuthModuleService {
|
|
|
145
69
|
return { success: false, error: error.message };
|
|
146
70
|
}
|
|
147
71
|
}
|
|
148
|
-
async createProvidersOnLoad() {
|
|
149
|
-
const providersToLoad = this.__container__["auth_providers"];
|
|
150
|
-
const providers = await this.authProviderService_.list({
|
|
151
|
-
provider: providersToLoad.map((p) => p.provider),
|
|
152
|
-
});
|
|
153
|
-
const loadedProvidersMap = new Map(providers.map((p) => [p.provider, p]));
|
|
154
|
-
const providersToCreate = [];
|
|
155
|
-
for (const provider of providersToLoad) {
|
|
156
|
-
if (loadedProvidersMap.has(provider.provider)) {
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
159
|
-
providersToCreate.push({
|
|
160
|
-
provider: provider.provider,
|
|
161
|
-
name: provider.displayName,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
await this.authProviderService_.create(providersToCreate);
|
|
165
|
-
}
|
|
166
72
|
}
|
|
167
73
|
exports.default = AuthModuleService;
|
|
168
|
-
__decorate([
|
|
169
|
-
__param(2, (0, utils_1.MedusaContext)()),
|
|
170
|
-
__metadata("design:type", Function),
|
|
171
|
-
__metadata("design:paramtypes", [String, Object, Object]),
|
|
172
|
-
__metadata("design:returntype", Promise)
|
|
173
|
-
], AuthModuleService.prototype, "retrieveAuthProvider", null);
|
|
174
|
-
__decorate([
|
|
175
|
-
__param(2, (0, utils_1.MedusaContext)()),
|
|
176
|
-
__metadata("design:type", Function),
|
|
177
|
-
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
178
|
-
__metadata("design:returntype", Promise)
|
|
179
|
-
], AuthModuleService.prototype, "listAuthProviders", null);
|
|
180
|
-
__decorate([
|
|
181
|
-
(0, utils_1.InjectManager)("baseRepository_"),
|
|
182
|
-
__param(2, (0, utils_1.MedusaContext)()),
|
|
183
|
-
__metadata("design:type", Function),
|
|
184
|
-
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
185
|
-
__metadata("design:returntype", Promise)
|
|
186
|
-
], AuthModuleService.prototype, "listAndCountAuthProviders", null);
|
|
187
74
|
__decorate([
|
|
188
75
|
(0, utils_1.InjectManager)("baseRepository_"),
|
|
189
76
|
__param(1, (0, utils_1.MedusaContext)()),
|
|
190
77
|
__metadata("design:type", Function),
|
|
191
78
|
__metadata("design:paramtypes", [Object, Object]),
|
|
192
79
|
__metadata("design:returntype", Promise)
|
|
193
|
-
], AuthModuleService.prototype, "
|
|
194
|
-
__decorate([
|
|
195
|
-
(0, utils_1.InjectTransactionManager)("baseRepository_"),
|
|
196
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
197
|
-
__metadata("design:type", Function),
|
|
198
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
199
|
-
__metadata("design:returntype", Promise)
|
|
200
|
-
], AuthModuleService.prototype, "createAuthProviders_", null);
|
|
80
|
+
], AuthModuleService.prototype, "create", null);
|
|
201
81
|
__decorate([
|
|
202
82
|
(0, utils_1.InjectManager)("baseRepository_"),
|
|
203
83
|
__param(1, (0, utils_1.MedusaContext)()),
|
|
204
84
|
__metadata("design:type", Function),
|
|
205
85
|
__metadata("design:paramtypes", [Object, Object]),
|
|
206
86
|
__metadata("design:returntype", Promise)
|
|
207
|
-
], AuthModuleService.prototype, "
|
|
208
|
-
__decorate([
|
|
209
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
210
|
-
__metadata("design:type", Function),
|
|
211
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
212
|
-
__metadata("design:returntype", Promise)
|
|
213
|
-
], AuthModuleService.prototype, "updateAuthProvider_", null);
|
|
214
|
-
__decorate([
|
|
215
|
-
(0, utils_1.InjectTransactionManager)("baseRepository_"),
|
|
216
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
217
|
-
__metadata("design:type", Function),
|
|
218
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
219
|
-
__metadata("design:returntype", Promise)
|
|
220
|
-
], AuthModuleService.prototype, "deleteAuthProvider", null);
|
|
221
|
-
__decorate([
|
|
222
|
-
(0, utils_1.InjectManager)("baseRepository_"),
|
|
223
|
-
__param(2, (0, utils_1.MedusaContext)()),
|
|
224
|
-
__metadata("design:type", Function),
|
|
225
|
-
__metadata("design:paramtypes", [String, Object, Object]),
|
|
226
|
-
__metadata("design:returntype", Promise)
|
|
227
|
-
], AuthModuleService.prototype, "retrieveAuthUser", null);
|
|
228
|
-
__decorate([
|
|
229
|
-
(0, utils_1.InjectManager)("baseRepository_"),
|
|
230
|
-
__param(2, (0, utils_1.MedusaContext)()),
|
|
231
|
-
__metadata("design:type", Function),
|
|
232
|
-
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
233
|
-
__metadata("design:returntype", Promise)
|
|
234
|
-
], AuthModuleService.prototype, "listAuthUsers", null);
|
|
235
|
-
__decorate([
|
|
236
|
-
(0, utils_1.InjectManager)("baseRepository_"),
|
|
237
|
-
__param(2, (0, utils_1.MedusaContext)()),
|
|
238
|
-
__metadata("design:type", Function),
|
|
239
|
-
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
240
|
-
__metadata("design:returntype", Promise)
|
|
241
|
-
], AuthModuleService.prototype, "listAndCountAuthUsers", null);
|
|
242
|
-
__decorate([
|
|
243
|
-
(0, utils_1.InjectManager)("baseRepository_"),
|
|
244
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
245
|
-
__metadata("design:type", Function),
|
|
246
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
247
|
-
__metadata("design:returntype", Promise)
|
|
248
|
-
], AuthModuleService.prototype, "createAuthUser", null);
|
|
249
|
-
__decorate([
|
|
250
|
-
(0, utils_1.InjectTransactionManager)("baseRepository_"),
|
|
251
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
252
|
-
__metadata("design:type", Function),
|
|
253
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
254
|
-
__metadata("design:returntype", Promise)
|
|
255
|
-
], AuthModuleService.prototype, "createAuthUsers_", null);
|
|
256
|
-
__decorate([
|
|
257
|
-
(0, utils_1.InjectManager)("baseRepository_"),
|
|
258
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
259
|
-
__metadata("design:type", Function),
|
|
260
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
261
|
-
__metadata("design:returntype", Promise)
|
|
262
|
-
], AuthModuleService.prototype, "updateAuthUser", null);
|
|
263
|
-
__decorate([
|
|
264
|
-
(0, utils_1.InjectTransactionManager)("baseRepository_"),
|
|
265
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
266
|
-
__metadata("design:type", Function),
|
|
267
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
268
|
-
__metadata("design:returntype", Promise)
|
|
269
|
-
], AuthModuleService.prototype, "updateAuthUsers_", null);
|
|
270
|
-
__decorate([
|
|
271
|
-
(0, utils_1.InjectTransactionManager)("baseRepository_"),
|
|
272
|
-
__param(1, (0, utils_1.MedusaContext)()),
|
|
273
|
-
__metadata("design:type", Function),
|
|
274
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
275
|
-
__metadata("design:returntype", Promise)
|
|
276
|
-
], AuthModuleService.prototype, "deleteAuthUser", null);
|
|
87
|
+
], AuthModuleService.prototype, "update", null);
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
import { AuthTypes, Context, DAL, FindConfig } from "@medusajs/types";
|
|
2
|
-
import { ModulesSdkUtils } from "@medusajs/utils";
|
|
1
|
+
import { AuthTypes, Context, DAL, FindConfig, RepositoryService } from "@medusajs/types";
|
|
3
2
|
import { AuthUser } from "../models";
|
|
4
|
-
import { ServiceTypes, RepositoryTypes } from "../types";
|
|
5
3
|
type InjectedDependencies = {
|
|
6
4
|
authUserRepository: DAL.RepositoryService;
|
|
7
5
|
};
|
|
8
|
-
declare const AuthUserService_base: new <TEntity_1 extends object = any>(container: InjectedDependencies) =>
|
|
9
|
-
create: ServiceTypes.CreateAuthUserDTO;
|
|
10
|
-
}, {
|
|
11
|
-
list?: any;
|
|
12
|
-
listAndCount?: any;
|
|
13
|
-
}>;
|
|
6
|
+
declare const AuthUserService_base: new <TEntity_1 extends object = any>(container: InjectedDependencies) => import("@medusajs/types").InternalModuleService<TEntity_1, InjectedDependencies>;
|
|
14
7
|
export default class AuthUserService<TEntity extends AuthUser = AuthUser> extends AuthUserService_base<TEntity> {
|
|
15
|
-
protected readonly authUserRepository_:
|
|
8
|
+
protected readonly authUserRepository_: RepositoryService<TEntity>;
|
|
16
9
|
constructor(container: InjectedDependencies);
|
|
17
10
|
retrieveByProviderAndEntityId<TEntityMethod = AuthTypes.AuthUserDTO>(entityId: string, provider: string, config?: FindConfig<TEntityMethod>, sharedContext?: Context): Promise<TEntity>;
|
|
18
11
|
}
|
|
@@ -14,7 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const utils_1 = require("@medusajs/utils");
|
|
16
16
|
const _models_1 = require("../models");
|
|
17
|
-
class AuthUserService extends utils_1.ModulesSdkUtils.
|
|
17
|
+
class AuthUserService extends utils_1.ModulesSdkUtils.internalModuleServiceFactory(_models_1.AuthUser) {
|
|
18
18
|
constructor(container) {
|
|
19
19
|
// @ts-ignore
|
|
20
20
|
super(...arguments);
|
package/dist/services/index.d.ts
CHANGED
package/dist/services/index.js
CHANGED
|
@@ -3,10 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.AuthUserService = exports.
|
|
6
|
+
exports.AuthUserService = exports.AuthModuleService = void 0;
|
|
7
7
|
var auth_module_1 = require("./auth-module");
|
|
8
8
|
Object.defineProperty(exports, "AuthModuleService", { enumerable: true, get: function () { return __importDefault(auth_module_1).default; } });
|
|
9
|
-
var auth_provider_1 = require("./auth-provider");
|
|
10
|
-
Object.defineProperty(exports, "AuthProviderService", { enumerable: true, get: function () { return __importDefault(auth_provider_1).default; } });
|
|
11
9
|
var auth_user_1 = require("./auth-user");
|
|
12
10
|
Object.defineProperty(exports, "AuthUserService", { enumerable: true, get: function () { return __importDefault(auth_user_1).default; } });
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
import { AuthProvider, AuthUser } from "../../models";
|
|
2
|
-
import { CreateAuthProviderDTO, UpdateAuthProviderDTO } from "./auth-provider";
|
|
3
|
-
import { DAL } from "@medusajs/types";
|
|
4
|
-
import { CreateAuthUserDTO, UpdateAuthUserDTO } from "./auth-user";
|
|
5
1
|
export * from "./auth-user";
|
|
6
|
-
export * from "./auth-provider";
|
|
7
|
-
export interface IAuthProviderRepository<TEntity extends AuthProvider = AuthProvider> extends DAL.RepositoryService<TEntity, {
|
|
8
|
-
create: CreateAuthProviderDTO;
|
|
9
|
-
update: UpdateAuthProviderDTO;
|
|
10
|
-
}> {
|
|
11
|
-
}
|
|
12
|
-
export interface IAuthUserRepository<TEntity extends AuthUser = AuthUser> extends DAL.RepositoryService<TEntity, {
|
|
13
|
-
create: CreateAuthUserDTO;
|
|
14
|
-
update: UpdateAuthUserDTO;
|
|
15
|
-
}> {
|
|
16
|
-
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { AuthProviderDTO } from "./auth-provider";
|
|
2
1
|
export type AuthUserDTO = {
|
|
3
2
|
id: string;
|
|
4
3
|
provider_id: string;
|
|
5
4
|
entity_id: string;
|
|
6
|
-
|
|
5
|
+
scope: string;
|
|
6
|
+
provider: string;
|
|
7
7
|
provider_metadata?: Record<string, unknown>;
|
|
8
8
|
user_metadata: Record<string, unknown>;
|
|
9
9
|
app_metadata: Record<string, unknown>;
|
|
10
10
|
};
|
|
11
11
|
export type CreateAuthUserDTO = {
|
|
12
12
|
entity_id: string;
|
|
13
|
-
|
|
13
|
+
provider: string;
|
|
14
|
+
scope: string;
|
|
14
15
|
provider_metadata?: Record<string, unknown>;
|
|
15
16
|
user_metadata?: Record<string, unknown>;
|
|
16
17
|
app_metadata?: Record<string, unknown>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medusajs/auth",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3-next-20240319121007",
|
|
4
4
|
"description": "Medusa Auth module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"prepublishOnly": "cross-env NODE_ENV=production tsc --build && tsc-alias -p tsconfig.json",
|
|
30
30
|
"build": "rimraf dist && tsc --build && tsc-alias -p tsconfig.json",
|
|
31
31
|
"test": "jest --runInBand --bail --forceExit -- src/**/__tests__/**/*.ts",
|
|
32
|
-
"test:integration": "jest --
|
|
32
|
+
"test:integration": "jest --forceExit -- integration-tests/**/__tests__/**/*.ts",
|
|
33
33
|
"migration:generate": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:generate",
|
|
34
34
|
"migration:initial": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create --initial",
|
|
35
35
|
"migration:create": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@mikro-orm/cli": "5.9.7",
|
|
41
41
|
"cross-env": "^5.2.1",
|
|
42
42
|
"jest": "^29.6.3",
|
|
43
|
-
"medusa-test-utils": "
|
|
43
|
+
"medusa-test-utils": "1.1.42-next-20240319121007",
|
|
44
44
|
"rimraf": "^3.0.2",
|
|
45
45
|
"ts-jest": "^29.1.1",
|
|
46
46
|
"ts-node": "^10.9.1",
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
"typescript": "^5.1.6"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@medusajs/modules-sdk": "
|
|
52
|
-
"@medusajs/types": "
|
|
53
|
-
"@medusajs/utils": "
|
|
51
|
+
"@medusajs/modules-sdk": "1.12.9-next-20240319121007",
|
|
52
|
+
"@medusajs/types": "1.11.14-next-20240319121007",
|
|
53
|
+
"@medusajs/utils": "1.11.7-next-20240319121007",
|
|
54
54
|
"@mikro-orm/core": "5.9.7",
|
|
55
55
|
"@mikro-orm/migrations": "5.9.7",
|
|
56
56
|
"@mikro-orm/postgresql": "5.9.7",
|
|
57
57
|
"awilix": "^8.0.0",
|
|
58
|
-
"dotenv": "^16.
|
|
58
|
+
"dotenv": "^16.4.5",
|
|
59
59
|
"jsonwebtoken": "^9.0.2",
|
|
60
60
|
"knex": "2.4.2",
|
|
61
61
|
"scrypt-kdf": "^2.0.1",
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Migration20240122041959 = void 0;
|
|
4
|
-
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
-
class Migration20240122041959 extends migrations_1.Migration {
|
|
6
|
-
async up() {
|
|
7
|
-
this.addSql('create table if not exists "auth_provider" ("provider" text not null, "name" text not null, "domain" text check ("domain" in (\'all\', \'store\', \'admin\')) not null default \'all\', "config" jsonb null, "is_active" boolean not null default false, constraint "auth_provider_pkey" primary key ("provider"));');
|
|
8
|
-
this.addSql('create table if not exists "auth_user" ("id" text not null, "entity_id" text not null, "provider_id" text null, "user_metadata" jsonb null, "app_metadata" jsonb null, "provider_metadata" jsonb null, constraint "auth_user_pkey" primary key ("id"));');
|
|
9
|
-
this.addSql('alter table "auth_user" add constraint "IDX_auth_user_provider_entity_id" unique ("provider_id", "entity_id");');
|
|
10
|
-
this.addSql('alter table "auth_user" add constraint if not exists "auth_user_provider_id_foreign" foreign key ("provider_id") references "auth_provider" ("provider") on delete cascade;');
|
|
11
|
-
}
|
|
12
|
-
async down() {
|
|
13
|
-
this.addSql('alter table "auth_user" drop constraint if exists "auth_user_provider_id_foreign";');
|
|
14
|
-
this.addSql('drop table if exists "auth_provider" cascade;');
|
|
15
|
-
this.addSql('drop table if exists "auth_user" cascade;');
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.Migration20240122041959 = Migration20240122041959;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { OptionalProps } from "@mikro-orm/core";
|
|
2
|
-
import { ProviderDomain } from "../types/repositories/auth-provider";
|
|
3
|
-
type OptionalFields = "domain" | "is_active" | "config";
|
|
4
|
-
export default class AuthProvider {
|
|
5
|
-
[OptionalProps]: OptionalFields;
|
|
6
|
-
provider: string;
|
|
7
|
-
name: string;
|
|
8
|
-
domain: ProviderDomain;
|
|
9
|
-
config: Record<string, unknown> | null;
|
|
10
|
-
is_active: boolean;
|
|
11
|
-
}
|
|
12
|
-
export {};
|
|
@@ -1,44 +0,0 @@
|
|
|
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 __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const core_1 = require("@mikro-orm/core");
|
|
13
|
-
const auth_provider_1 = require("../types/repositories/auth-provider");
|
|
14
|
-
let AuthProvider = class AuthProvider {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.domain = auth_provider_1.ProviderDomain.ALL;
|
|
17
|
-
this.config = null;
|
|
18
|
-
this.is_active = false;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
__decorate([
|
|
22
|
-
(0, core_1.PrimaryKey)({ columnType: "text" }),
|
|
23
|
-
__metadata("design:type", String)
|
|
24
|
-
], AuthProvider.prototype, "provider", void 0);
|
|
25
|
-
__decorate([
|
|
26
|
-
(0, core_1.Property)({ columnType: "text" }),
|
|
27
|
-
__metadata("design:type", String)
|
|
28
|
-
], AuthProvider.prototype, "name", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
(0, core_1.Enum)({ items: () => auth_provider_1.ProviderDomain, default: auth_provider_1.ProviderDomain.ALL }),
|
|
31
|
-
__metadata("design:type", String)
|
|
32
|
-
], AuthProvider.prototype, "domain", void 0);
|
|
33
|
-
__decorate([
|
|
34
|
-
(0, core_1.Property)({ columnType: "jsonb", nullable: true }),
|
|
35
|
-
__metadata("design:type", Object)
|
|
36
|
-
], AuthProvider.prototype, "config", void 0);
|
|
37
|
-
__decorate([
|
|
38
|
-
(0, core_1.Property)({ columnType: "boolean", default: false }),
|
|
39
|
-
__metadata("design:type", Object)
|
|
40
|
-
], AuthProvider.prototype, "is_active", void 0);
|
|
41
|
-
AuthProvider = __decorate([
|
|
42
|
-
(0, core_1.Entity)()
|
|
43
|
-
], AuthProvider);
|
|
44
|
-
exports.default = AuthProvider;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { DAL } from "@medusajs/types";
|
|
2
|
-
import { ModulesSdkUtils } from "@medusajs/utils";
|
|
3
|
-
import { AuthProvider } from "../models";
|
|
4
|
-
import { ServiceTypes } from "../types";
|
|
5
|
-
type InjectedDependencies = {
|
|
6
|
-
authProviderRepository: DAL.RepositoryService;
|
|
7
|
-
};
|
|
8
|
-
declare const AuthProviderService_base: new <TEntity_1 extends object = any>(container: InjectedDependencies) => ModulesSdkUtils.AbstractService<TEntity_1, InjectedDependencies, {
|
|
9
|
-
create: ServiceTypes.CreateAuthProviderDTO;
|
|
10
|
-
update: ServiceTypes.UpdateAuthProviderDTO;
|
|
11
|
-
}, {
|
|
12
|
-
list?: any;
|
|
13
|
-
listAndCount?: any;
|
|
14
|
-
}>;
|
|
15
|
-
export default class AuthProviderService<TEntity extends AuthProvider = AuthProvider> extends AuthProviderService_base<TEntity> {
|
|
16
|
-
constructor(container: InjectedDependencies);
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("@medusajs/utils");
|
|
4
|
-
const _models_1 = require("../models");
|
|
5
|
-
class AuthProviderService extends utils_1.ModulesSdkUtils.abstractServiceFactory(_models_1.AuthProvider) {
|
|
6
|
-
constructor(container) {
|
|
7
|
-
// @ts-ignore
|
|
8
|
-
super(...arguments);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.default = AuthProviderService;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { AuthProvider } from "../../models";
|
|
2
|
-
export type CreateAuthProviderDTO = {
|
|
3
|
-
provider: string;
|
|
4
|
-
name: string;
|
|
5
|
-
domain?: ProviderDomain;
|
|
6
|
-
is_active?: boolean;
|
|
7
|
-
config?: Record<string, unknown>;
|
|
8
|
-
};
|
|
9
|
-
export type UpdateAuthProviderDTO = {
|
|
10
|
-
update: {
|
|
11
|
-
provider: string;
|
|
12
|
-
name?: string;
|
|
13
|
-
domain?: ProviderDomain;
|
|
14
|
-
is_active?: boolean;
|
|
15
|
-
config?: Record<string, unknown>;
|
|
16
|
-
};
|
|
17
|
-
provider: AuthProvider;
|
|
18
|
-
};
|
|
19
|
-
export declare enum ProviderDomain {
|
|
20
|
-
ALL = "all",
|
|
21
|
-
STORE = "store",
|
|
22
|
-
ADMIN = "admin"
|
|
23
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProviderDomain = void 0;
|
|
4
|
-
var ProviderDomain;
|
|
5
|
-
(function (ProviderDomain) {
|
|
6
|
-
ProviderDomain["ALL"] = "all";
|
|
7
|
-
ProviderDomain["STORE"] = "store";
|
|
8
|
-
ProviderDomain["ADMIN"] = "admin";
|
|
9
|
-
})(ProviderDomain || (exports.ProviderDomain = ProviderDomain = {}));
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export type AuthProviderDTO = {
|
|
2
|
-
provider: string;
|
|
3
|
-
name: string;
|
|
4
|
-
domain: ProviderDomain;
|
|
5
|
-
is_active: boolean;
|
|
6
|
-
config: Record<string, unknown>;
|
|
7
|
-
};
|
|
8
|
-
export type CreateAuthProviderDTO = {
|
|
9
|
-
provider: string;
|
|
10
|
-
name: string;
|
|
11
|
-
domain?: ProviderDomain;
|
|
12
|
-
is_active?: boolean;
|
|
13
|
-
config?: Record<string, unknown>;
|
|
14
|
-
};
|
|
15
|
-
export type UpdateAuthProviderDTO = {
|
|
16
|
-
provider: string;
|
|
17
|
-
name?: string;
|
|
18
|
-
domain?: ProviderDomain;
|
|
19
|
-
is_active?: boolean;
|
|
20
|
-
config?: Record<string, unknown>;
|
|
21
|
-
};
|
|
22
|
-
export declare enum ProviderDomain {
|
|
23
|
-
ALL = "all",
|
|
24
|
-
STORE = "store",
|
|
25
|
-
ADMIN = "admin"
|
|
26
|
-
}
|
|
27
|
-
export type FilterableAuthProviderProps = {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProviderDomain = void 0;
|
|
4
|
-
var ProviderDomain;
|
|
5
|
-
(function (ProviderDomain) {
|
|
6
|
-
ProviderDomain["ALL"] = "all";
|
|
7
|
-
ProviderDomain["STORE"] = "store";
|
|
8
|
-
ProviderDomain["ADMIN"] = "admin";
|
|
9
|
-
})(ProviderDomain || (exports.ProviderDomain = ProviderDomain = {}));
|