@idp.global/sdk 1.2.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/changelog.md +25 -0
- package/dist_ts/00_commitinfo_data.d.ts +8 -0
- package/dist_ts/00_commitinfo_data.js +9 -0
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +2 -0
- package/dist_ts_browser/classes.idpclient.d.ts +85 -0
- package/dist_ts_browser/classes.idpclient.js +278 -0
- package/dist_ts_browser/classes.idprequests.d.ts +59 -0
- package/dist_ts_browser/classes.idprequests.js +167 -0
- package/dist_ts_browser/index.d.ts +2 -0
- package/dist_ts_browser/index.js +3 -0
- package/dist_ts_browser/plugins.d.ts +13 -0
- package/dist_ts_browser/plugins.js +14 -0
- package/dist_ts_server/classes.account-auth-service.d.ts +12 -0
- package/dist_ts_server/classes.account-auth-service.js +55 -0
- package/dist_ts_server/classes.account-doc.d.ts +21 -0
- package/dist_ts_server/classes.account-doc.js +166 -0
- package/dist_ts_server/classes.account-store.d.ts +19 -0
- package/dist_ts_server/classes.account-store.js +84 -0
- package/dist_ts_server/classes.idp-global-server-client.d.ts +23 -0
- package/dist_ts_server/classes.idp-global-server-client.js +57 -0
- package/dist_ts_server/classes.password-hasher.d.ts +5 -0
- package/dist_ts_server/classes.password-hasher.js +36 -0
- package/dist_ts_server/index.d.ts +6 -0
- package/dist_ts_server/index.js +7 -0
- package/dist_ts_server/interfaces.d.ts +37 -0
- package/dist_ts_server/interfaces.js +2 -0
- package/dist_ts_server/plugins.d.ts +10 -0
- package/dist_ts_server/plugins.js +11 -0
- package/license +21 -0
- package/package.json +70 -0
- package/readme.md +10 -0
- package/ts/00_commitinfo_data.ts +8 -0
- package/ts/index.ts +1 -0
- package/ts_browser/classes.idpclient.ts +318 -0
- package/ts_browser/classes.idprequests.ts +218 -0
- package/ts_browser/index.ts +2 -0
- package/ts_browser/plugins.ts +18 -0
- package/ts_server/classes.account-auth-service.ts +61 -0
- package/ts_server/classes.account-doc.ts +84 -0
- package/ts_server/classes.account-store.ts +94 -0
- package/ts_server/classes.idp-global-server-client.ts +74 -0
- package/ts_server/classes.password-hasher.ts +39 -0
- package/ts_server/index.ts +6 -0
- package/ts_server/interfaces.ts +41 -0
- package/ts_server/plugins.ts +17 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
export class IdpRequests {
|
|
3
|
+
idpClientArg;
|
|
4
|
+
constructor(idpClientArg) {
|
|
5
|
+
this.idpClientArg = idpClientArg;
|
|
6
|
+
}
|
|
7
|
+
get afterRegistrationEmailClicked() {
|
|
8
|
+
return this.idpClientArg.typedsocket.createTypedRequest('afterRegistrationEmailClicked');
|
|
9
|
+
}
|
|
10
|
+
get setData() {
|
|
11
|
+
return this.idpClientArg.typedsocket.createTypedRequest('setDataForRegistration');
|
|
12
|
+
}
|
|
13
|
+
get mobileNumberVerification() {
|
|
14
|
+
return this.idpClientArg.typedsocket.createTypedRequest('mobileVerificationForRegistration');
|
|
15
|
+
}
|
|
16
|
+
get finishRegistration() {
|
|
17
|
+
return this.idpClientArg.typedsocket.createTypedRequest('finishRegistration');
|
|
18
|
+
}
|
|
19
|
+
get loginWithUserNameAndPassword() {
|
|
20
|
+
return this.idpClientArg.typedsocket.createTypedRequest('loginWithEmailOrUsernameAndPassword');
|
|
21
|
+
}
|
|
22
|
+
get obtainJwt() {
|
|
23
|
+
return this.idpClientArg.typedsocket.createTypedRequest('refreshJwt');
|
|
24
|
+
}
|
|
25
|
+
get obtainOneTimeToken() {
|
|
26
|
+
return this.idpClientArg.typedsocket.createTypedRequest('exchangeRefreshTokenAndTransferToken');
|
|
27
|
+
}
|
|
28
|
+
get loginWithEmail() {
|
|
29
|
+
return this.idpClientArg.typedsocket.createTypedRequest('loginWithEmail');
|
|
30
|
+
}
|
|
31
|
+
get loginWithEmailAfterToken() {
|
|
32
|
+
return this.idpClientArg.typedsocket.createTypedRequest('loginWithEmailAfterEmailTokenAquired');
|
|
33
|
+
}
|
|
34
|
+
get loginWithApiToken() {
|
|
35
|
+
return this.idpClientArg.typedsocket.createTypedRequest('loginWithApiToken');
|
|
36
|
+
}
|
|
37
|
+
get completeOidcAuthorization() {
|
|
38
|
+
return this.idpClientArg.typedsocket.createTypedRequest('completeOidcAuthorization');
|
|
39
|
+
}
|
|
40
|
+
get prepareOidcAuthorization() {
|
|
41
|
+
return this.idpClientArg.typedsocket.createTypedRequest('prepareOidcAuthorization');
|
|
42
|
+
}
|
|
43
|
+
get resetPassword() {
|
|
44
|
+
return this.idpClientArg.typedsocket.createTypedRequest('resetPassword');
|
|
45
|
+
}
|
|
46
|
+
get setNewPassword() {
|
|
47
|
+
return this.idpClientArg.typedsocket.createTypedRequest('setNewPassword');
|
|
48
|
+
}
|
|
49
|
+
get obtainDeviceId() {
|
|
50
|
+
return this.idpClientArg.typedsocket.createTypedRequest('obtainDeviceId');
|
|
51
|
+
}
|
|
52
|
+
get attachDeviceId() {
|
|
53
|
+
return this.idpClientArg.typedsocket.createTypedRequest('attachDeviceId');
|
|
54
|
+
}
|
|
55
|
+
get firstRegistration() {
|
|
56
|
+
return this.idpClientArg.typedsocket.createTypedRequest('firstRegistrationRequest');
|
|
57
|
+
}
|
|
58
|
+
get getUserData() {
|
|
59
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getUserData');
|
|
60
|
+
}
|
|
61
|
+
get setUserData() {
|
|
62
|
+
return this.idpClientArg.typedsocket.createTypedRequest('setUserData');
|
|
63
|
+
}
|
|
64
|
+
get getUserSessions() {
|
|
65
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getUserSessions');
|
|
66
|
+
}
|
|
67
|
+
get revokeSession() {
|
|
68
|
+
return this.idpClientArg.typedsocket.createTypedRequest('revokeSession');
|
|
69
|
+
}
|
|
70
|
+
get getUserActivity() {
|
|
71
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getUserActivity');
|
|
72
|
+
}
|
|
73
|
+
get getOrganizationById() {
|
|
74
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getOrganizationById');
|
|
75
|
+
}
|
|
76
|
+
get updateOrganization() {
|
|
77
|
+
return this.idpClientArg.typedsocket.createTypedRequest('updateOrganization');
|
|
78
|
+
}
|
|
79
|
+
get deleteOrganization() {
|
|
80
|
+
return this.idpClientArg.typedsocket.createTypedRequest('deleteOrganization');
|
|
81
|
+
}
|
|
82
|
+
get getOrgRoleDefinitions() {
|
|
83
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getOrgRoleDefinitions');
|
|
84
|
+
}
|
|
85
|
+
get upsertOrgRoleDefinition() {
|
|
86
|
+
return this.idpClientArg.typedsocket.createTypedRequest('upsertOrgRoleDefinition');
|
|
87
|
+
}
|
|
88
|
+
get deleteOrgRoleDefinition() {
|
|
89
|
+
return this.idpClientArg.typedsocket.createTypedRequest('deleteOrgRoleDefinition');
|
|
90
|
+
}
|
|
91
|
+
get createInvitation() {
|
|
92
|
+
return this.idpClientArg.typedsocket.createTypedRequest('createInvitation');
|
|
93
|
+
}
|
|
94
|
+
get getOrgInvitations() {
|
|
95
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getOrgInvitations');
|
|
96
|
+
}
|
|
97
|
+
get getOrgMembers() {
|
|
98
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getOrgMembers');
|
|
99
|
+
}
|
|
100
|
+
get cancelInvitation() {
|
|
101
|
+
return this.idpClientArg.typedsocket.createTypedRequest('cancelInvitation');
|
|
102
|
+
}
|
|
103
|
+
get resendInvitation() {
|
|
104
|
+
return this.idpClientArg.typedsocket.createTypedRequest('resendInvitation');
|
|
105
|
+
}
|
|
106
|
+
get removeMember() {
|
|
107
|
+
return this.idpClientArg.typedsocket.createTypedRequest('removeMember');
|
|
108
|
+
}
|
|
109
|
+
get updateMemberRoles() {
|
|
110
|
+
return this.idpClientArg.typedsocket.createTypedRequest('updateMemberRoles');
|
|
111
|
+
}
|
|
112
|
+
get transferOwnership() {
|
|
113
|
+
return this.idpClientArg.typedsocket.createTypedRequest('transferOwnership');
|
|
114
|
+
}
|
|
115
|
+
get getInvitationByToken() {
|
|
116
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getInvitationByToken');
|
|
117
|
+
}
|
|
118
|
+
get acceptInvitation() {
|
|
119
|
+
return this.idpClientArg.typedsocket.createTypedRequest('acceptInvitation');
|
|
120
|
+
}
|
|
121
|
+
get bulkCreateInvitations() {
|
|
122
|
+
return this.idpClientArg.typedsocket.createTypedRequest('bulkCreateInvitations');
|
|
123
|
+
}
|
|
124
|
+
get updateAppRoleMappings() {
|
|
125
|
+
return this.idpClientArg.typedsocket.createTypedRequest('updateAppRoleMappings');
|
|
126
|
+
}
|
|
127
|
+
get getBillingPlan() {
|
|
128
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getBillingPlan');
|
|
129
|
+
}
|
|
130
|
+
get getPaddleConfig() {
|
|
131
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getPaddleConfig');
|
|
132
|
+
}
|
|
133
|
+
get getPublicKeyForValidation() {
|
|
134
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getPublicKeyForValidation');
|
|
135
|
+
}
|
|
136
|
+
get pushPublicKeyForValidation() {
|
|
137
|
+
return this.idpClientArg.typedsocket.createTypedRequest('pushPublicKeyForValidation');
|
|
138
|
+
}
|
|
139
|
+
get pushOrGetJwtIdBlocklist() {
|
|
140
|
+
return this.idpClientArg.typedsocket.createTypedRequest('pushOrGetJwtIdBlocklist');
|
|
141
|
+
}
|
|
142
|
+
get suspendUser() {
|
|
143
|
+
return this.idpClientArg.typedsocket.createTypedRequest('suspendUser');
|
|
144
|
+
}
|
|
145
|
+
get deleteSuspendedUser() {
|
|
146
|
+
return this.idpClientArg.typedsocket.createTypedRequest('deleteSuspendedUser');
|
|
147
|
+
}
|
|
148
|
+
get checkGlobalAdmin() {
|
|
149
|
+
return this.idpClientArg.typedsocket.createTypedRequest('checkGlobalAdmin');
|
|
150
|
+
}
|
|
151
|
+
get getGlobalAppStats() {
|
|
152
|
+
return this.idpClientArg.typedsocket.createTypedRequest('getGlobalAppStats');
|
|
153
|
+
}
|
|
154
|
+
get createGlobalApp() {
|
|
155
|
+
return this.idpClientArg.typedsocket.createTypedRequest('createGlobalApp');
|
|
156
|
+
}
|
|
157
|
+
get updateGlobalApp() {
|
|
158
|
+
return this.idpClientArg.typedsocket.createTypedRequest('updateGlobalApp');
|
|
159
|
+
}
|
|
160
|
+
get deleteGlobalApp() {
|
|
161
|
+
return this.idpClientArg.typedsocket.createTypedRequest('deleteGlobalApp');
|
|
162
|
+
}
|
|
163
|
+
get regenerateAppCredentials() {
|
|
164
|
+
return this.idpClientArg.typedsocket.createTypedRequest('regenerateAppCredentials');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5pZHByZXF1ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2Jyb3dzZXIvY2xhc3Nlcy5pZHByZXF1ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUd4QyxNQUFNLE9BQU8sV0FBVztJQUNGO0lBQXBCLFlBQW9CLFlBQXVCO1FBQXZCLGlCQUFZLEdBQVosWUFBWSxDQUFXO0lBQUcsQ0FBQztJQUUvQyxJQUFXLDZCQUE2QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFtRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzdKLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBNEQsd0JBQXdCLENBQUMsQ0FBQztJQUMvSSxDQUFDO0lBRUQsSUFBVyx3QkFBd0I7UUFDakMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBdUUsbUNBQW1DLENBQUMsQ0FBQztJQUNySyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBd0Qsb0JBQW9CLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRUQsSUFBVyw0QkFBNEI7UUFDckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBeUUscUNBQXFDLENBQUMsQ0FBQztJQUN6SyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQWdELFlBQVksQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGtC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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './classes.idpclient.js';
|
|
2
|
+
export * from './classes.idprequests.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19icm93c2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as idpInterfaces from '@idp.global/interfaces';
|
|
2
|
+
export { idpInterfaces };
|
|
3
|
+
import * as typedrequest from '@api.global/typedrequest';
|
|
4
|
+
import * as typedsocket from '@api.global/typedsocket';
|
|
5
|
+
export { typedrequest, typedsocket };
|
|
6
|
+
import * as smartjson from '@push.rocks/smartjson';
|
|
7
|
+
import * as smartpromise from '@push.rocks/smartpromise';
|
|
8
|
+
import * as smartrx from '@push.rocks/smartrx';
|
|
9
|
+
import * as smarttime from '@push.rocks/smarttime';
|
|
10
|
+
import * as smarturl from '@push.rocks/smarturl';
|
|
11
|
+
import * as webjwt from '@push.rocks/webjwt';
|
|
12
|
+
import * as webstore from '@push.rocks/webstore';
|
|
13
|
+
export { smartjson, smartpromise, smartrx, smarttime, smarturl, webjwt, webstore };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as idpInterfaces from '@idp.global/interfaces';
|
|
2
|
+
export { idpInterfaces };
|
|
3
|
+
import * as typedrequest from '@api.global/typedrequest';
|
|
4
|
+
import * as typedsocket from '@api.global/typedsocket';
|
|
5
|
+
export { typedrequest, typedsocket };
|
|
6
|
+
import * as smartjson from '@push.rocks/smartjson';
|
|
7
|
+
import * as smartpromise from '@push.rocks/smartpromise';
|
|
8
|
+
import * as smartrx from '@push.rocks/smartrx';
|
|
9
|
+
import * as smarttime from '@push.rocks/smarttime';
|
|
10
|
+
import * as smarturl from '@push.rocks/smarturl';
|
|
11
|
+
import * as webjwt from '@push.rocks/webjwt';
|
|
12
|
+
import * as webstore from '@push.rocks/webstore';
|
|
13
|
+
export { smartjson, smartpromise, smartrx, smarttime, smarturl, webjwt, webstore };
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2Jyb3dzZXIvcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztBQUV6QixPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUVyQyxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxZQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IdpGlobalServerClient } from './classes.idp-global-server-client.js';
|
|
2
|
+
import { SmartdataAccountStore } from './classes.account-store.js';
|
|
3
|
+
import type { IAuthenticateAccountOptions, IAuthenticatedAccountResult } from './interfaces.js';
|
|
4
|
+
export declare class AccountAuthService {
|
|
5
|
+
private optionsArg;
|
|
6
|
+
constructor(optionsArg: {
|
|
7
|
+
store: SmartdataAccountStore;
|
|
8
|
+
idpClient?: IdpGlobalServerClient;
|
|
9
|
+
});
|
|
10
|
+
authenticate(optionsArg: IAuthenticateAccountOptions): Promise<IAuthenticatedAccountResult | null>;
|
|
11
|
+
private authenticateWithIdp;
|
|
12
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { IdpGlobalServerClient } from './classes.idp-global-server-client.js';
|
|
2
|
+
import { SmartdataAccountStore } from './classes.account-store.js';
|
|
3
|
+
export class AccountAuthService {
|
|
4
|
+
optionsArg;
|
|
5
|
+
constructor(optionsArg) {
|
|
6
|
+
this.optionsArg = optionsArg;
|
|
7
|
+
}
|
|
8
|
+
async authenticate(optionsArg) {
|
|
9
|
+
const account = await this.optionsArg.store.getAccountByEmail(optionsArg.email);
|
|
10
|
+
if (!account || account.status !== 'active') {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const authSource = optionsArg.authSource || 'auto';
|
|
14
|
+
if ((authSource === 'local' || authSource === 'auto') && account.authSources.includes('local')) {
|
|
15
|
+
const localOk = await this.optionsArg.store.verifyLocalPassword(account, optionsArg.password);
|
|
16
|
+
if (localOk) {
|
|
17
|
+
const updatedAccount = await this.optionsArg.store.updateLoginState(account.id, {});
|
|
18
|
+
return { account: updatedAccount || account, authSource: 'local' };
|
|
19
|
+
}
|
|
20
|
+
if (authSource === 'local') {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if ((authSource === 'idp.global' || authSource === 'auto') && account.authSources.includes('idp.global')) {
|
|
25
|
+
return this.authenticateWithIdp(account, optionsArg.password);
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
async authenticateWithIdp(accountArg, passwordArg) {
|
|
30
|
+
if (!this.optionsArg.idpClient) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const idpResult = await this.optionsArg.idpClient.loginWithEmailAndPassword({
|
|
34
|
+
email: accountArg.email,
|
|
35
|
+
password: passwordArg,
|
|
36
|
+
});
|
|
37
|
+
const idpEmail = this.optionsArg.store.normalizeEmail(idpResult.user.data.email);
|
|
38
|
+
if (idpEmail !== accountArg.emailNormalized) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
if (accountArg.idpSubject && accountArg.idpSubject !== idpResult.user.id) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const updatedAccount = await this.optionsArg.store.updateLoginState(accountArg.id, {
|
|
45
|
+
idpSubject: accountArg.idpSubject || idpResult.user.id,
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
account: updatedAccount || accountArg,
|
|
49
|
+
authSource: 'idp.global',
|
|
50
|
+
idpJwt: idpResult.jwt,
|
|
51
|
+
idpRefreshToken: idpResult.refreshToken,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5hY2NvdW50LWF1dGgtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX3NlcnZlci9jbGFzc2VzLmFjY291bnQtYXV0aC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR25FLE1BQU0sT0FBTyxrQkFBa0I7SUFDVDtJQUFwQixZQUFvQixVQUduQjtRQUhtQixlQUFVLEdBQVYsVUFBVSxDQUc3QjtJQUFHLENBQUM7SUFFRSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQXVDO1FBQy9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxLQUFLLE9BQU8sSUFBSSxVQUFVLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvRixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUYsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDckUsQ0FBQztZQUNELElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUMzQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsS0FBSyxZQUFZLElBQUksVUFBVSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDekcsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLFVBQTBCLEVBQUUsV0FBbUI7UUFDL0UsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQztZQUMxRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDdkIsUUFBUSxFQUFFLFdBQVc7U0FDdEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLElBQUksUUFBUSxLQUFLLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3pFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUNqRixVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDdkQsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLE9BQU8sRUFBRSxjQUFjLElBQUksVUFBVTtZQUNyQyxVQUFVLEVBQUUsWUFBWTtZQUN4QixNQUFNLEVBQUUsU0FBUyxDQUFDLEdBQUc7WUFDckIsZUFBZSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1NBQ3hDLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import type { IIdpSdkAccount, TIdpAccountAuthSource, TIdpAccountRole, TIdpAccountStatus } from './interfaces.js';
|
|
3
|
+
export declare const setAccountDocSmartdataDb: (smartdataDbArg: plugins.smartdata.SmartdataDb) => void;
|
|
4
|
+
export declare class IdpSdkAccountDoc extends plugins.smartdata.SmartDataDbDoc<IdpSdkAccountDoc, IdpSdkAccountDoc> {
|
|
5
|
+
id: string;
|
|
6
|
+
email: string;
|
|
7
|
+
emailNormalized: string;
|
|
8
|
+
name: string;
|
|
9
|
+
role: TIdpAccountRole;
|
|
10
|
+
status: TIdpAccountStatus;
|
|
11
|
+
authSources: TIdpAccountAuthSource[];
|
|
12
|
+
passwordHash?: string;
|
|
13
|
+
idpSubject?: string;
|
|
14
|
+
createdAt: number;
|
|
15
|
+
updatedAt: number;
|
|
16
|
+
lastLoginAt?: number;
|
|
17
|
+
toAccount(): IIdpSdkAccount;
|
|
18
|
+
static findById(idArg: string): Promise<IdpSdkAccountDoc | null>;
|
|
19
|
+
static findByEmailNormalized(emailNormalizedArg: string): Promise<IdpSdkAccountDoc | null>;
|
|
20
|
+
static findAdmins(): Promise<IdpSdkAccountDoc[]>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import * as plugins from './plugins.js';
|
|
36
|
+
let activeSmartdataDb = null;
|
|
37
|
+
export const setAccountDocSmartdataDb = (smartdataDbArg) => {
|
|
38
|
+
activeSmartdataDb = smartdataDbArg;
|
|
39
|
+
};
|
|
40
|
+
const getDb = () => {
|
|
41
|
+
if (!activeSmartdataDb) {
|
|
42
|
+
throw new Error('IdpSdkAccountDoc has no SmartdataDb configured');
|
|
43
|
+
}
|
|
44
|
+
return activeSmartdataDb;
|
|
45
|
+
};
|
|
46
|
+
let IdpSdkAccountDoc = (() => {
|
|
47
|
+
let _classDecorators = [plugins.smartdata.Collection(() => getDb())];
|
|
48
|
+
let _classDescriptor;
|
|
49
|
+
let _classExtraInitializers = [];
|
|
50
|
+
let _classThis;
|
|
51
|
+
let _classSuper = plugins.smartdata.SmartDataDbDoc;
|
|
52
|
+
let _id_decorators;
|
|
53
|
+
let _id_initializers = [];
|
|
54
|
+
let _id_extraInitializers = [];
|
|
55
|
+
let _email_decorators;
|
|
56
|
+
let _email_initializers = [];
|
|
57
|
+
let _email_extraInitializers = [];
|
|
58
|
+
let _emailNormalized_decorators;
|
|
59
|
+
let _emailNormalized_initializers = [];
|
|
60
|
+
let _emailNormalized_extraInitializers = [];
|
|
61
|
+
let _name_decorators;
|
|
62
|
+
let _name_initializers = [];
|
|
63
|
+
let _name_extraInitializers = [];
|
|
64
|
+
let _role_decorators;
|
|
65
|
+
let _role_initializers = [];
|
|
66
|
+
let _role_extraInitializers = [];
|
|
67
|
+
let _status_decorators;
|
|
68
|
+
let _status_initializers = [];
|
|
69
|
+
let _status_extraInitializers = [];
|
|
70
|
+
let _authSources_decorators;
|
|
71
|
+
let _authSources_initializers = [];
|
|
72
|
+
let _authSources_extraInitializers = [];
|
|
73
|
+
let _passwordHash_decorators;
|
|
74
|
+
let _passwordHash_initializers = [];
|
|
75
|
+
let _passwordHash_extraInitializers = [];
|
|
76
|
+
let _idpSubject_decorators;
|
|
77
|
+
let _idpSubject_initializers = [];
|
|
78
|
+
let _idpSubject_extraInitializers = [];
|
|
79
|
+
let _createdAt_decorators;
|
|
80
|
+
let _createdAt_initializers = [];
|
|
81
|
+
let _createdAt_extraInitializers = [];
|
|
82
|
+
let _updatedAt_decorators;
|
|
83
|
+
let _updatedAt_initializers = [];
|
|
84
|
+
let _updatedAt_extraInitializers = [];
|
|
85
|
+
let _lastLoginAt_decorators;
|
|
86
|
+
let _lastLoginAt_initializers = [];
|
|
87
|
+
let _lastLoginAt_extraInitializers = [];
|
|
88
|
+
var IdpSdkAccountDoc = class extends _classSuper {
|
|
89
|
+
static { _classThis = this; }
|
|
90
|
+
static {
|
|
91
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
92
|
+
_id_decorators = [plugins.smartdata.unI(), plugins.smartdata.svDb()];
|
|
93
|
+
_email_decorators = [plugins.smartdata.svDb()];
|
|
94
|
+
_emailNormalized_decorators = [plugins.smartdata.svDb()];
|
|
95
|
+
_name_decorators = [plugins.smartdata.svDb()];
|
|
96
|
+
_role_decorators = [plugins.smartdata.svDb()];
|
|
97
|
+
_status_decorators = [plugins.smartdata.svDb()];
|
|
98
|
+
_authSources_decorators = [plugins.smartdata.svDb()];
|
|
99
|
+
_passwordHash_decorators = [plugins.smartdata.svDb()];
|
|
100
|
+
_idpSubject_decorators = [plugins.smartdata.svDb()];
|
|
101
|
+
_createdAt_decorators = [plugins.smartdata.svDb()];
|
|
102
|
+
_updatedAt_decorators = [plugins.smartdata.svDb()];
|
|
103
|
+
_lastLoginAt_decorators = [plugins.smartdata.svDb()];
|
|
104
|
+
__esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
|
|
105
|
+
__esDecorate(null, null, _email_decorators, { kind: "field", name: "email", static: false, private: false, access: { has: obj => "email" in obj, get: obj => obj.email, set: (obj, value) => { obj.email = value; } }, metadata: _metadata }, _email_initializers, _email_extraInitializers);
|
|
106
|
+
__esDecorate(null, null, _emailNormalized_decorators, { kind: "field", name: "emailNormalized", static: false, private: false, access: { has: obj => "emailNormalized" in obj, get: obj => obj.emailNormalized, set: (obj, value) => { obj.emailNormalized = value; } }, metadata: _metadata }, _emailNormalized_initializers, _emailNormalized_extraInitializers);
|
|
107
|
+
__esDecorate(null, null, _name_decorators, { kind: "field", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
|
|
108
|
+
__esDecorate(null, null, _role_decorators, { kind: "field", name: "role", static: false, private: false, access: { has: obj => "role" in obj, get: obj => obj.role, set: (obj, value) => { obj.role = value; } }, metadata: _metadata }, _role_initializers, _role_extraInitializers);
|
|
109
|
+
__esDecorate(null, null, _status_decorators, { kind: "field", name: "status", static: false, private: false, access: { has: obj => "status" in obj, get: obj => obj.status, set: (obj, value) => { obj.status = value; } }, metadata: _metadata }, _status_initializers, _status_extraInitializers);
|
|
110
|
+
__esDecorate(null, null, _authSources_decorators, { kind: "field", name: "authSources", static: false, private: false, access: { has: obj => "authSources" in obj, get: obj => obj.authSources, set: (obj, value) => { obj.authSources = value; } }, metadata: _metadata }, _authSources_initializers, _authSources_extraInitializers);
|
|
111
|
+
__esDecorate(null, null, _passwordHash_decorators, { kind: "field", name: "passwordHash", static: false, private: false, access: { has: obj => "passwordHash" in obj, get: obj => obj.passwordHash, set: (obj, value) => { obj.passwordHash = value; } }, metadata: _metadata }, _passwordHash_initializers, _passwordHash_extraInitializers);
|
|
112
|
+
__esDecorate(null, null, _idpSubject_decorators, { kind: "field", name: "idpSubject", static: false, private: false, access: { has: obj => "idpSubject" in obj, get: obj => obj.idpSubject, set: (obj, value) => { obj.idpSubject = value; } }, metadata: _metadata }, _idpSubject_initializers, _idpSubject_extraInitializers);
|
|
113
|
+
__esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _createdAt_extraInitializers);
|
|
114
|
+
__esDecorate(null, null, _updatedAt_decorators, { kind: "field", name: "updatedAt", static: false, private: false, access: { has: obj => "updatedAt" in obj, get: obj => obj.updatedAt, set: (obj, value) => { obj.updatedAt = value; } }, metadata: _metadata }, _updatedAt_initializers, _updatedAt_extraInitializers);
|
|
115
|
+
__esDecorate(null, null, _lastLoginAt_decorators, { kind: "field", name: "lastLoginAt", static: false, private: false, access: { has: obj => "lastLoginAt" in obj, get: obj => obj.lastLoginAt, set: (obj, value) => { obj.lastLoginAt = value; } }, metadata: _metadata }, _lastLoginAt_initializers, _lastLoginAt_extraInitializers);
|
|
116
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
117
|
+
IdpSdkAccountDoc = _classThis = _classDescriptor.value;
|
|
118
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
119
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
120
|
+
}
|
|
121
|
+
id = __runInitializers(this, _id_initializers, void 0);
|
|
122
|
+
email = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _email_initializers, void 0));
|
|
123
|
+
emailNormalized = (__runInitializers(this, _email_extraInitializers), __runInitializers(this, _emailNormalized_initializers, void 0));
|
|
124
|
+
name = (__runInitializers(this, _emailNormalized_extraInitializers), __runInitializers(this, _name_initializers, ''));
|
|
125
|
+
role = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _role_initializers, void 0));
|
|
126
|
+
status = (__runInitializers(this, _role_extraInitializers), __runInitializers(this, _status_initializers, void 0));
|
|
127
|
+
authSources = (__runInitializers(this, _status_extraInitializers), __runInitializers(this, _authSources_initializers, void 0));
|
|
128
|
+
passwordHash = (__runInitializers(this, _authSources_extraInitializers), __runInitializers(this, _passwordHash_initializers, void 0));
|
|
129
|
+
idpSubject = (__runInitializers(this, _passwordHash_extraInitializers), __runInitializers(this, _idpSubject_initializers, void 0));
|
|
130
|
+
createdAt = (__runInitializers(this, _idpSubject_extraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
|
|
131
|
+
updatedAt = (__runInitializers(this, _createdAt_extraInitializers), __runInitializers(this, _updatedAt_initializers, void 0));
|
|
132
|
+
lastLoginAt = (__runInitializers(this, _updatedAt_extraInitializers), __runInitializers(this, _lastLoginAt_initializers, void 0));
|
|
133
|
+
toAccount() {
|
|
134
|
+
return {
|
|
135
|
+
id: this.id,
|
|
136
|
+
email: this.email,
|
|
137
|
+
emailNormalized: this.emailNormalized,
|
|
138
|
+
name: this.name,
|
|
139
|
+
role: this.role,
|
|
140
|
+
status: this.status,
|
|
141
|
+
authSources: this.authSources || [],
|
|
142
|
+
passwordHash: this.passwordHash,
|
|
143
|
+
idpSubject: this.idpSubject,
|
|
144
|
+
createdAt: this.createdAt,
|
|
145
|
+
updatedAt: this.updatedAt,
|
|
146
|
+
lastLoginAt: this.lastLoginAt,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
static async findById(idArg) {
|
|
150
|
+
return IdpSdkAccountDoc.getInstance({ id: idArg });
|
|
151
|
+
}
|
|
152
|
+
static async findByEmailNormalized(emailNormalizedArg) {
|
|
153
|
+
return IdpSdkAccountDoc.getInstance({ emailNormalized: emailNormalizedArg });
|
|
154
|
+
}
|
|
155
|
+
static async findAdmins() {
|
|
156
|
+
return IdpSdkAccountDoc.getInstances({ role: 'admin', status: 'active' });
|
|
157
|
+
}
|
|
158
|
+
constructor() {
|
|
159
|
+
super(...arguments);
|
|
160
|
+
__runInitializers(this, _lastLoginAt_extraInitializers);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
return IdpSdkAccountDoc = _classThis;
|
|
164
|
+
})();
|
|
165
|
+
export { IdpSdkAccountDoc };
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5hY2NvdW50LWRvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX3NlcnZlci9jbGFzc2VzLmFjY291bnQtZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUd4QyxJQUFJLGlCQUFpQixHQUF5QyxJQUFJLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxjQUE2QyxFQUFFLEVBQUU7SUFDeEYsaUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtJQUNqQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0lBR1csZ0JBQWdCOzRCQUQ1QixPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs7OztzQkFDTixPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0NBQXhDLFNBQVEsV0FBb0U7Ozs7OEJBQ3ZHLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQ3ZCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO2lDQUd4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTsyQ0FHeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Z0NBR3hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO2dDQUd4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtrQ0FHeEIsT0FBTyxDQUFDLFNB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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import type { ICreateIdpSdkAccountOptions, IIdpSdkAccount } from './interfaces.js';
|
|
3
|
+
export declare class SmartdataAccountStore {
|
|
4
|
+
private optionsArg;
|
|
5
|
+
constructor(optionsArg: {
|
|
6
|
+
smartdataDb: plugins.smartdata.SmartdataDb;
|
|
7
|
+
});
|
|
8
|
+
normalizeEmail(emailArg: string): string;
|
|
9
|
+
createAccount(optionsArg: ICreateIdpSdkAccountOptions): Promise<IIdpSdkAccount>;
|
|
10
|
+
getAccountByEmail(emailArg: string): Promise<IIdpSdkAccount | null>;
|
|
11
|
+
getAccountById(idArg: string): Promise<IIdpSdkAccount | null>;
|
|
12
|
+
listAccounts(): Promise<IIdpSdkAccount[]>;
|
|
13
|
+
hasActiveAdminAccount(): Promise<boolean>;
|
|
14
|
+
verifyLocalPassword(accountArg: IIdpSdkAccount, passwordArg: string): Promise<boolean>;
|
|
15
|
+
updateLoginState(accountIdArg: string, patchArg: {
|
|
16
|
+
idpSubject?: string;
|
|
17
|
+
}): Promise<IIdpSdkAccount | null>;
|
|
18
|
+
private normalizeAuthSources;
|
|
19
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import { IdpSdkAccountDoc, setAccountDocSmartdataDb } from './classes.account-doc.js';
|
|
3
|
+
import { PasswordHasher } from './classes.password-hasher.js';
|
|
4
|
+
export class SmartdataAccountStore {
|
|
5
|
+
optionsArg;
|
|
6
|
+
constructor(optionsArg) {
|
|
7
|
+
this.optionsArg = optionsArg;
|
|
8
|
+
setAccountDocSmartdataDb(optionsArg.smartdataDb);
|
|
9
|
+
}
|
|
10
|
+
normalizeEmail(emailArg) {
|
|
11
|
+
return emailArg.trim().toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
async createAccount(optionsArg) {
|
|
14
|
+
const emailNormalized = this.normalizeEmail(optionsArg.email);
|
|
15
|
+
if (!emailNormalized || !emailNormalized.includes('@')) {
|
|
16
|
+
throw new Error('A valid account email is required');
|
|
17
|
+
}
|
|
18
|
+
const existing = await IdpSdkAccountDoc.findByEmailNormalized(emailNormalized);
|
|
19
|
+
if (existing) {
|
|
20
|
+
throw new Error(`Account already exists for ${emailNormalized}`);
|
|
21
|
+
}
|
|
22
|
+
const authSources = this.normalizeAuthSources(optionsArg.authSources);
|
|
23
|
+
if (authSources.length === 0) {
|
|
24
|
+
throw new Error('At least one auth source is required');
|
|
25
|
+
}
|
|
26
|
+
if (authSources.includes('local') && !optionsArg.password) {
|
|
27
|
+
throw new Error('A local password is required for local auth');
|
|
28
|
+
}
|
|
29
|
+
const now = Date.now();
|
|
30
|
+
const doc = new IdpSdkAccountDoc();
|
|
31
|
+
doc.id = plugins.crypto.randomUUID();
|
|
32
|
+
doc.email = optionsArg.email.trim();
|
|
33
|
+
doc.emailNormalized = emailNormalized;
|
|
34
|
+
doc.name = optionsArg.name.trim() || doc.email;
|
|
35
|
+
doc.role = optionsArg.role;
|
|
36
|
+
doc.status = optionsArg.status || 'active';
|
|
37
|
+
doc.authSources = authSources;
|
|
38
|
+
doc.passwordHash = optionsArg.password ? await PasswordHasher.hashPassword(optionsArg.password) : undefined;
|
|
39
|
+
doc.idpSubject = optionsArg.idpSubject;
|
|
40
|
+
doc.createdAt = now;
|
|
41
|
+
doc.updatedAt = now;
|
|
42
|
+
await doc.save();
|
|
43
|
+
return doc.toAccount();
|
|
44
|
+
}
|
|
45
|
+
async getAccountByEmail(emailArg) {
|
|
46
|
+
const doc = await IdpSdkAccountDoc.findByEmailNormalized(this.normalizeEmail(emailArg));
|
|
47
|
+
return doc?.toAccount() || null;
|
|
48
|
+
}
|
|
49
|
+
async getAccountById(idArg) {
|
|
50
|
+
const doc = await IdpSdkAccountDoc.findById(idArg);
|
|
51
|
+
return doc?.toAccount() || null;
|
|
52
|
+
}
|
|
53
|
+
async listAccounts() {
|
|
54
|
+
const docs = await IdpSdkAccountDoc.getInstances({});
|
|
55
|
+
return docs.map((docArg) => docArg.toAccount());
|
|
56
|
+
}
|
|
57
|
+
async hasActiveAdminAccount() {
|
|
58
|
+
const admins = await IdpSdkAccountDoc.findAdmins();
|
|
59
|
+
return admins.length > 0;
|
|
60
|
+
}
|
|
61
|
+
async verifyLocalPassword(accountArg, passwordArg) {
|
|
62
|
+
if (accountArg.status !== 'active' || !accountArg.authSources.includes('local')) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return PasswordHasher.verifyPassword(passwordArg, accountArg.passwordHash);
|
|
66
|
+
}
|
|
67
|
+
async updateLoginState(accountIdArg, patchArg) {
|
|
68
|
+
const doc = await IdpSdkAccountDoc.findById(accountIdArg);
|
|
69
|
+
if (!doc) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
if (patchArg.idpSubject !== undefined) {
|
|
73
|
+
doc.idpSubject = patchArg.idpSubject;
|
|
74
|
+
}
|
|
75
|
+
doc.lastLoginAt = Date.now();
|
|
76
|
+
doc.updatedAt = Date.now();
|
|
77
|
+
await doc.save();
|
|
78
|
+
return doc.toAccount();
|
|
79
|
+
}
|
|
80
|
+
normalizeAuthSources(authSourcesArg) {
|
|
81
|
+
return [...new Set(authSourcesArg.filter((sourceArg) => sourceArg === 'local' || sourceArg === 'idp.global'))];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5hY2NvdW50LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfc2VydmVyL2NsYXNzZXMuYWNjb3VudC1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHOUQsTUFBTSxPQUFPLHFCQUFxQjtJQUNaO0lBQXBCLFlBQW9CLFVBQTBEO1FBQTFELGVBQVUsR0FBVixVQUFVLENBQWdEO1FBQzVFLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQWdCO1FBQ3BDLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQXVDO1FBQ2hFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9FLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMs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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
export interface IIdpGlobalServerClientOptions {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
}
|
|
5
|
+
export interface IIdpPasswordAuthResult {
|
|
6
|
+
user: plugins.idpInterfaces.data.IUser;
|
|
7
|
+
jwt: string;
|
|
8
|
+
refreshToken: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class IdpGlobalServerClient {
|
|
11
|
+
private optionsArg;
|
|
12
|
+
private typedrouter;
|
|
13
|
+
private typedsocket?;
|
|
14
|
+
private typedsocketDeferred;
|
|
15
|
+
constructor(optionsArg: IIdpGlobalServerClientOptions);
|
|
16
|
+
connect(): Promise<plugins.typedsocket.TypedSocket>;
|
|
17
|
+
stop(): Promise<void>;
|
|
18
|
+
loginWithEmailAndPassword(optionsArg: {
|
|
19
|
+
email: string;
|
|
20
|
+
password: string;
|
|
21
|
+
}): Promise<IIdpPasswordAuthResult>;
|
|
22
|
+
private getTypedRequestUrl;
|
|
23
|
+
}
|