@pax2pay/model-banking 0.1.606 → 0.1.608
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/Client/Me.ts +12 -2
- package/Client/Users/index.ts +3 -0
- package/User/index.ts +2 -0
- package/User/mfa.ts +17 -0
- package/dist/cjs/Client/Me.d.ts +2 -1
- package/dist/cjs/Client/Me.js +5 -1
- package/dist/cjs/Client/Me.js.map +1 -1
- package/dist/cjs/Client/Users/index.d.ts +1 -0
- package/dist/cjs/Client/Users/index.js +3 -0
- package/dist/cjs/Client/Users/index.js.map +1 -1
- package/dist/cjs/User/index.d.ts +2 -0
- package/dist/cjs/User/index.js +2 -0
- package/dist/cjs/User/index.js.map +1 -1
- package/dist/cjs/User/mfa.d.ts +15 -0
- package/dist/cjs/User/mfa.js +20 -0
- package/dist/cjs/User/mfa.js.map +1 -0
- package/dist/mjs/Client/Me.d.ts +2 -1
- package/dist/mjs/Client/Me.js +5 -1
- package/dist/mjs/Client/Me.js.map +1 -1
- package/dist/mjs/Client/Users/index.d.ts +1 -0
- package/dist/mjs/Client/Users/index.js +3 -0
- package/dist/mjs/Client/Users/index.js.map +1 -1
- package/dist/mjs/User/index.d.ts +2 -0
- package/dist/mjs/User/index.js +2 -0
- package/dist/mjs/User/index.js.map +1 -1
- package/dist/mjs/User/mfa.d.ts +15 -0
- package/dist/mjs/User/mfa.js +17 -0
- package/dist/mjs/User/mfa.js.map +1 -0
- package/package.json +2 -2
package/Client/Me.ts
CHANGED
|
@@ -9,9 +9,19 @@ export class Me {
|
|
|
9
9
|
async updatePassword(creatable: User.Password.Creatable): Promise<User | gracely.Error> {
|
|
10
10
|
return await this.client.put<User>(`/me/password`, creatable)
|
|
11
11
|
}
|
|
12
|
-
async login(
|
|
13
|
-
|
|
12
|
+
async login(
|
|
13
|
+
email: string,
|
|
14
|
+
password: string,
|
|
15
|
+
realm: Realm,
|
|
16
|
+
totp?: User.mfa.Totp.Otp
|
|
17
|
+
): Promise<string | gracely.Error> {
|
|
18
|
+
return await this.client.get<string>(`/me/${realm}`, {
|
|
14
19
|
authorization: `Basic ${authly.Base64.encode(email + ":" + password, "standard", "=")}`,
|
|
20
|
+
...(totp ? { totp } : undefined),
|
|
15
21
|
})
|
|
16
22
|
}
|
|
23
|
+
|
|
24
|
+
async setupMfa(totp: User.mfa.Totp, otp: User.mfa.Totp.Otp): Promise<User | gracely.Error> {
|
|
25
|
+
return this.client.put<User>(`/me/mfa/totp`, totp, { ...(otp ? { totp: otp } : undefined) })
|
|
26
|
+
}
|
|
17
27
|
}
|
package/Client/Users/index.ts
CHANGED
|
@@ -25,4 +25,7 @@ export class Users {
|
|
|
25
25
|
async updateAccess(email: string, access: User.Access): Promise<User | gracely.Error> {
|
|
26
26
|
return await this.client.put<User>(`/user/${email}/access`, access)
|
|
27
27
|
}
|
|
28
|
+
async removeMfa(email: string) {
|
|
29
|
+
return this.client.delete<User>(`/user/${email}/mfa/totp`)
|
|
30
|
+
}
|
|
28
31
|
}
|
package/User/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { zod } from "../zod"
|
|
|
5
5
|
import { Access as UserAccess } from "./Access"
|
|
6
6
|
import { Identity as UserIdentity } from "./Identity"
|
|
7
7
|
import { JWT as UserJWT } from "./JWT"
|
|
8
|
+
import { mfa as userMfa } from "./mfa"
|
|
8
9
|
import { Password as UserPassword } from "./Password"
|
|
9
10
|
|
|
10
11
|
export interface User {
|
|
@@ -18,6 +19,7 @@ export namespace User {
|
|
|
18
19
|
export import Access = UserAccess
|
|
19
20
|
export import Identity = UserIdentity
|
|
20
21
|
export import JWT = UserJWT
|
|
22
|
+
export import mfa = userMfa
|
|
21
23
|
export import Password = UserPassword
|
|
22
24
|
export function fromInvite(invite: Invite): User {
|
|
23
25
|
const now = isoly.DateTime.now()
|
package/User/mfa.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { zod } from "../zod"
|
|
2
|
+
|
|
3
|
+
export namespace mfa {
|
|
4
|
+
export type Totp = zod.infer<typeof Totp.typeZod>
|
|
5
|
+
export namespace Totp {
|
|
6
|
+
export const typeZod = zod.object({
|
|
7
|
+
key: zod.string().nonempty(), // secret
|
|
8
|
+
})
|
|
9
|
+
export const is = (value: any): value is Totp => typeZod.safeParse(value).success
|
|
10
|
+
|
|
11
|
+
export type Otp = zod.infer<typeof Otp.typeZod>
|
|
12
|
+
export namespace Otp {
|
|
13
|
+
export const typeZod = zod.string().length(6).regex(/^\d+$/)
|
|
14
|
+
export const is = (value: any): value is Otp => typeZod.safeParse(value).success
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
package/dist/cjs/Client/Me.d.ts
CHANGED
|
@@ -6,5 +6,6 @@ export declare class Me {
|
|
|
6
6
|
private readonly client;
|
|
7
7
|
constructor(client: http.Client);
|
|
8
8
|
updatePassword(creatable: User.Password.Creatable): Promise<User | gracely.Error>;
|
|
9
|
-
login(email: string, password: string, realm: Realm): Promise<
|
|
9
|
+
login(email: string, password: string, realm: Realm, totp?: User.mfa.Totp.Otp): Promise<string | gracely.Error>;
|
|
10
|
+
setupMfa(totp: User.mfa.Totp, otp: User.mfa.Totp.Otp): Promise<User | gracely.Error>;
|
|
10
11
|
}
|
package/dist/cjs/Client/Me.js
CHANGED
|
@@ -10,11 +10,15 @@ class Me {
|
|
|
10
10
|
async updatePassword(creatable) {
|
|
11
11
|
return await this.client.put(`/me/password`, creatable);
|
|
12
12
|
}
|
|
13
|
-
async login(email, password, realm) {
|
|
13
|
+
async login(email, password, realm, totp) {
|
|
14
14
|
return await this.client.get(`/me/${realm}`, {
|
|
15
15
|
authorization: `Basic ${authly_1.authly.Base64.encode(email + ":" + password, "standard", "=")}`,
|
|
16
|
+
...(totp ? { totp } : undefined),
|
|
16
17
|
});
|
|
17
18
|
}
|
|
19
|
+
async setupMfa(totp, otp) {
|
|
20
|
+
return this.client.put(`/me/mfa/totp`, totp, { ...(otp ? { totp: otp } : undefined) });
|
|
21
|
+
}
|
|
18
22
|
}
|
|
19
23
|
exports.Me = Me;
|
|
20
24
|
//# sourceMappingURL=Me.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Me.js","sourceRoot":"","sources":["../../../Client/Me.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAK/B,MAAa,EAAE;IACe;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IACpD,KAAK,CAAC,cAAc,CAAC,SAAkC;QACtD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,cAAc,EAAE,SAAS,CAAC,CAAA;IAC9D,CAAC;IACD,KAAK,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"Me.js","sourceRoot":"","sources":["../../../Client/Me.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAK/B,MAAa,EAAE;IACe;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IACpD,KAAK,CAAC,cAAc,CAAC,SAAkC;QACtD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,cAAc,EAAE,SAAS,CAAC,CAAA;IAC9D,CAAC;IACD,KAAK,CAAC,KAAK,CACV,KAAa,EACb,QAAgB,EAChB,KAAY,EACZ,IAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,OAAO,KAAK,EAAE,EAAE;YACpD,aAAa,EAAE,SAAS,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE;YACvF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SAChC,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAmB,EAAE,GAAsB;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,cAAc,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC7F,CAAC;CACD;AApBD,gBAoBC"}
|
|
@@ -26,6 +26,9 @@ class Users {
|
|
|
26
26
|
async updateAccess(email, access) {
|
|
27
27
|
return await this.client.put(`/user/${email}/access`, access);
|
|
28
28
|
}
|
|
29
|
+
async removeMfa(email) {
|
|
30
|
+
return this.client.delete(`/user/${email}/mfa/totp`);
|
|
31
|
+
}
|
|
29
32
|
}
|
|
30
33
|
exports.Users = Users;
|
|
31
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Client/Users/index.ts"],"names":[],"mappings":";;;AAGA,uCAAmC;AAEnC,MAAa,KAAK;IAKY;IAJ7B,QAAQ,CAAU;IAClB,IAAI,OAAO;QACV,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,iBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,IAAoB;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,OAAO,EAAE,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KAAa;QACxB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,KAAK,CAAC,IAAI;QACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,OAAO,CAAC,CAAA;IAC9C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAAmB;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,SAAS,EAAE,MAAM,CAAC,CAAA;IACpE,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Client/Users/index.ts"],"names":[],"mappings":";;;AAGA,uCAAmC;AAEnC,MAAa,KAAK;IAKY;IAJ7B,QAAQ,CAAU;IAClB,IAAI,OAAO;QACV,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,iBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,IAAoB;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,OAAO,EAAE,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KAAa;QACxB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,KAAK,CAAC,IAAI;QACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,OAAO,CAAC,CAAA;IAC9C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAAmB;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,SAAS,EAAE,MAAM,CAAC,CAAA;IACpE,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,SAAS,KAAK,WAAW,CAAC,CAAA;IAC3D,CAAC;CACD;AAzBD,sBAyBC"}
|
package/dist/cjs/User/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { zod } from "../zod";
|
|
|
4
4
|
import { Access as UserAccess } from "./Access";
|
|
5
5
|
import { Identity as UserIdentity } from "./Identity";
|
|
6
6
|
import { JWT as UserJWT } from "./JWT";
|
|
7
|
+
import { mfa as userMfa } from "./mfa";
|
|
7
8
|
import { Password as UserPassword } from "./Password";
|
|
8
9
|
export interface User {
|
|
9
10
|
email: string;
|
|
@@ -18,6 +19,7 @@ export declare namespace User {
|
|
|
18
19
|
export import Access = UserAccess;
|
|
19
20
|
export import Identity = UserIdentity;
|
|
20
21
|
export import JWT = UserJWT;
|
|
22
|
+
export import mfa = userMfa;
|
|
21
23
|
export import Password = UserPassword;
|
|
22
24
|
function fromInvite(invite: Invite): User;
|
|
23
25
|
function toJWTPayloadCreatable(user: User, realm: Realm): User.JWT.Payload.Creatable;
|
package/dist/cjs/User/index.js
CHANGED
|
@@ -7,12 +7,14 @@ const zod_1 = require("../zod");
|
|
|
7
7
|
const Access_1 = require("./Access");
|
|
8
8
|
const Identity_1 = require("./Identity");
|
|
9
9
|
const JWT_1 = require("./JWT");
|
|
10
|
+
const mfa_1 = require("./mfa");
|
|
10
11
|
const Password_1 = require("./Password");
|
|
11
12
|
var User;
|
|
12
13
|
(function (User) {
|
|
13
14
|
User.Access = Access_1.Access;
|
|
14
15
|
User.Identity = Identity_1.Identity;
|
|
15
16
|
User.JWT = JWT_1.JWT;
|
|
17
|
+
User.mfa = mfa_1.mfa;
|
|
16
18
|
User.Password = Password_1.Password;
|
|
17
19
|
function fromInvite(invite) {
|
|
18
20
|
const now = isoly_1.isoly.DateTime.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../User/index.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAE3B,gCAA4B;AAC5B,qCAA+C;AAC/C,yCAAqD;AACrD,+BAAsC;AACtC,yCAAqD;AASrD,IAAiB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../User/index.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAE3B,gCAA4B;AAC5B,qCAA+C;AAC/C,yCAAqD;AACrD,+BAAsC;AACtC,+BAAsC;AACtC,yCAAqD;AASrD,IAAiB,IAAI,CA8BpB;AA9BD,WAAiB,IAAI;IACN,WAAM,GAAG,eAAU,CAAA;IACnB,aAAQ,GAAG,mBAAY,CAAA;IACvB,QAAG,GAAG,SAAO,CAAA;IACb,QAAG,GAAG,SAAO,CAAA;IACb,aAAQ,GAAG,mBAAY,CAAA;IACrC,SAAgB,UAAU,CAAC,MAAc;QACxC,MAAM,GAAG,GAAG,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QAChC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAA;IAC9G,CAAC;IAHe,eAAU,aAGzB,CAAA;IACD,SAAgB,qBAAqB,CAAC,IAAU,EAAE,KAAY;QAC7D,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA;IAC9G,CAAC;IAFe,0BAAqB,wBAEpC,CAAA;IAED,IAAiB,SAAS,CAGzB;IAHD,WAAiB,SAAS;QACZ,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY,EAAE,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAA,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3F,iBAAO,GAAG,SAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAA,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;IAClG,CAAC,EAHgB,SAAS,GAAT,cAAS,KAAT,cAAS,QAGzB;IAMD,IAAiB,MAAM,CAMtB;IAND,WAAiB,MAAM;QAEtB,IAAiB,SAAS,CAGzB;QAHD,WAAiB,SAAS;YACZ,iBAAO,GAAG,SAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAA,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;YACrE,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY,EAAE,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAA,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1F,CAAC,EAHgB,SAAS,GAAT,gBAAS,KAAT,gBAAS,QAGzB;IACF,CAAC,EANgB,MAAM,GAAN,WAAM,KAAN,WAAM,QAMtB;AACF,CAAC,EA9BgB,IAAI,oBAAJ,IAAI,QA8BpB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { zod } from "../zod";
|
|
2
|
+
export declare namespace mfa {
|
|
3
|
+
type Totp = zod.infer<typeof Totp.typeZod>;
|
|
4
|
+
namespace Totp {
|
|
5
|
+
const typeZod: zod.ZodObject<{
|
|
6
|
+
key: zod.ZodString;
|
|
7
|
+
}, zod.z.core.$strip>;
|
|
8
|
+
const is: (value: any) => value is Totp;
|
|
9
|
+
type Otp = zod.infer<typeof Otp.typeZod>;
|
|
10
|
+
namespace Otp {
|
|
11
|
+
const typeZod: zod.ZodString;
|
|
12
|
+
const is: (value: any) => value is Otp;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mfa = void 0;
|
|
4
|
+
const zod_1 = require("../zod");
|
|
5
|
+
var mfa;
|
|
6
|
+
(function (mfa) {
|
|
7
|
+
let Totp;
|
|
8
|
+
(function (Totp) {
|
|
9
|
+
Totp.typeZod = zod_1.zod.object({
|
|
10
|
+
key: zod_1.zod.string().nonempty(),
|
|
11
|
+
});
|
|
12
|
+
Totp.is = (value) => Totp.typeZod.safeParse(value).success;
|
|
13
|
+
let Otp;
|
|
14
|
+
(function (Otp) {
|
|
15
|
+
Otp.typeZod = zod_1.zod.string().length(6).regex(/^\d+$/);
|
|
16
|
+
Otp.is = (value) => Otp.typeZod.safeParse(value).success;
|
|
17
|
+
})(Otp = Totp.Otp || (Totp.Otp = {}));
|
|
18
|
+
})(Totp = mfa.Totp || (mfa.Totp = {}));
|
|
19
|
+
})(mfa || (exports.mfa = mfa = {}));
|
|
20
|
+
//# sourceMappingURL=mfa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mfa.js","sourceRoot":"","sources":["../../../User/mfa.ts"],"names":[],"mappings":";;;AAAA,gCAA4B;AAE5B,IAAiB,GAAG,CAcnB;AAdD,WAAiB,GAAG;IAEnB,IAAiB,IAAI,CAWpB;IAXD,WAAiB,IAAI;QACP,YAAO,GAAG,SAAG,CAAC,MAAM,CAAC;YACjC,GAAG,EAAE,SAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC,CAAA;QACW,OAAE,GAAG,CAAC,KAAU,EAAiB,EAAE,CAAC,KAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;QAGjF,IAAiB,GAAG,CAGnB;QAHD,WAAiB,GAAG;YACN,WAAO,GAAG,SAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC/C,MAAE,GAAG,CAAC,KAAU,EAAgB,EAAE,CAAC,IAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;QACjF,CAAC,EAHgB,GAAG,GAAH,QAAG,KAAH,QAAG,QAGnB;IACF,CAAC,EAXgB,IAAI,GAAJ,QAAI,KAAJ,QAAI,QAWpB;AACF,CAAC,EAdgB,GAAG,mBAAH,GAAG,QAcnB"}
|
package/dist/mjs/Client/Me.d.ts
CHANGED
|
@@ -6,5 +6,6 @@ export declare class Me {
|
|
|
6
6
|
private readonly client;
|
|
7
7
|
constructor(client: http.Client);
|
|
8
8
|
updatePassword(creatable: User.Password.Creatable): Promise<User | gracely.Error>;
|
|
9
|
-
login(email: string, password: string, realm: Realm): Promise<
|
|
9
|
+
login(email: string, password: string, realm: Realm, totp?: User.mfa.Totp.Otp): Promise<string | gracely.Error>;
|
|
10
|
+
setupMfa(totp: User.mfa.Totp, otp: User.mfa.Totp.Otp): Promise<User | gracely.Error>;
|
|
10
11
|
}
|
package/dist/mjs/Client/Me.js
CHANGED
|
@@ -7,10 +7,14 @@ export class Me {
|
|
|
7
7
|
async updatePassword(creatable) {
|
|
8
8
|
return await this.client.put(`/me/password`, creatable);
|
|
9
9
|
}
|
|
10
|
-
async login(email, password, realm) {
|
|
10
|
+
async login(email, password, realm, totp) {
|
|
11
11
|
return await this.client.get(`/me/${realm}`, {
|
|
12
12
|
authorization: `Basic ${authly.Base64.encode(email + ":" + password, "standard", "=")}`,
|
|
13
|
+
...(totp ? { totp } : undefined),
|
|
13
14
|
});
|
|
14
15
|
}
|
|
16
|
+
async setupMfa(totp, otp) {
|
|
17
|
+
return this.client.put(`/me/mfa/totp`, totp, { ...(otp ? { totp: otp } : undefined) });
|
|
18
|
+
}
|
|
15
19
|
}
|
|
16
20
|
//# sourceMappingURL=Me.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Me.js","sourceRoot":"","sources":["../../../Client/Me.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAK/B,MAAM,OAAO,EAAE;IACe;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IACpD,KAAK,CAAC,cAAc,CAAC,SAAkC;QACtD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,cAAc,EAAE,SAAS,CAAC,CAAA;IAC9D,CAAC;IACD,KAAK,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"Me.js","sourceRoot":"","sources":["../../../Client/Me.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAK/B,MAAM,OAAO,EAAE;IACe;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IACpD,KAAK,CAAC,cAAc,CAAC,SAAkC;QACtD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,cAAc,EAAE,SAAS,CAAC,CAAA;IAC9D,CAAC;IACD,KAAK,CAAC,KAAK,CACV,KAAa,EACb,QAAgB,EAChB,KAAY,EACZ,IAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,OAAO,KAAK,EAAE,EAAE;YACpD,aAAa,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE;YACvF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SAChC,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAmB,EAAE,GAAsB;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,cAAc,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC7F,CAAC;CACD"}
|
|
@@ -23,5 +23,8 @@ export class Users {
|
|
|
23
23
|
async updateAccess(email, access) {
|
|
24
24
|
return await this.client.put(`/user/${email}/access`, access);
|
|
25
25
|
}
|
|
26
|
+
async removeMfa(email) {
|
|
27
|
+
return this.client.delete(`/user/${email}/mfa/totp`);
|
|
28
|
+
}
|
|
26
29
|
}
|
|
27
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Client/Users/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,KAAK;IAKY;IAJ7B,QAAQ,CAAU;IAClB,IAAI,OAAO;QACV,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,IAAoB;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,OAAO,EAAE,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KAAa;QACxB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,KAAK,CAAC,IAAI;QACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,OAAO,CAAC,CAAA;IAC9C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAAmB;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,SAAS,EAAE,MAAM,CAAC,CAAA;IACpE,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Client/Users/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,KAAK;IAKY;IAJ7B,QAAQ,CAAU;IAClB,IAAI,OAAO;QACV,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,IAAoB;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,OAAO,EAAE,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KAAa;QACxB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,KAAK,CAAC,IAAI;QACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,OAAO,CAAC,CAAA;IAC9C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,SAAS,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAAmB;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,SAAS,KAAK,SAAS,EAAE,MAAM,CAAC,CAAA;IACpE,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,SAAS,KAAK,WAAW,CAAC,CAAA;IAC3D,CAAC;CACD"}
|
package/dist/mjs/User/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { zod } from "../zod";
|
|
|
4
4
|
import { Access as UserAccess } from "./Access";
|
|
5
5
|
import { Identity as UserIdentity } from "./Identity";
|
|
6
6
|
import { JWT as UserJWT } from "./JWT";
|
|
7
|
+
import { mfa as userMfa } from "./mfa";
|
|
7
8
|
import { Password as UserPassword } from "./Password";
|
|
8
9
|
export interface User {
|
|
9
10
|
email: string;
|
|
@@ -18,6 +19,7 @@ export declare namespace User {
|
|
|
18
19
|
export import Access = UserAccess;
|
|
19
20
|
export import Identity = UserIdentity;
|
|
20
21
|
export import JWT = UserJWT;
|
|
22
|
+
export import mfa = userMfa;
|
|
21
23
|
export import Password = UserPassword;
|
|
22
24
|
function fromInvite(invite: Invite): User;
|
|
23
25
|
function toJWTPayloadCreatable(user: User, realm: Realm): User.JWT.Payload.Creatable;
|
package/dist/mjs/User/index.js
CHANGED
|
@@ -4,12 +4,14 @@ import { zod } from "../zod";
|
|
|
4
4
|
import { Access as UserAccess } from "./Access";
|
|
5
5
|
import { Identity as UserIdentity } from "./Identity";
|
|
6
6
|
import { JWT as UserJWT } from "./JWT";
|
|
7
|
+
import { mfa as userMfa } from "./mfa";
|
|
7
8
|
import { Password as UserPassword } from "./Password";
|
|
8
9
|
export var User;
|
|
9
10
|
(function (User) {
|
|
10
11
|
User.Access = UserAccess;
|
|
11
12
|
User.Identity = UserIdentity;
|
|
12
13
|
User.JWT = UserJWT;
|
|
14
|
+
User.mfa = userMfa;
|
|
13
15
|
User.Password = UserPassword;
|
|
14
16
|
function fromInvite(invite) {
|
|
15
17
|
const now = isoly.DateTime.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../User/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AASrD,MAAM,KAAW,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../User/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AASrD,MAAM,KAAW,IAAI,CA8BpB;AA9BD,WAAiB,IAAI;IACN,WAAM,GAAG,UAAU,CAAA;IACnB,aAAQ,GAAG,YAAY,CAAA;IACvB,QAAG,GAAG,OAAO,CAAA;IACb,QAAG,GAAG,OAAO,CAAA;IACb,aAAQ,GAAG,YAAY,CAAA;IACrC,SAAgB,UAAU,CAAC,MAAc;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QAChC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAA;IAC9G,CAAC;IAHe,eAAU,aAGzB,CAAA;IACD,SAAgB,qBAAqB,CAAC,IAAU,EAAE,KAAY;QAC7D,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA;IAC9G,CAAC;IAFe,0BAAqB,wBAEpC,CAAA;IAED,IAAiB,SAAS,CAGzB;IAHD,WAAiB,SAAS;QACZ,cAAI,GAAG,IAAI,CAAC,MAAM,CAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAA,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3F,iBAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAA,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;IAClG,CAAC,EAHgB,SAAS,GAAT,cAAS,KAAT,cAAS,QAGzB;IAMD,IAAiB,MAAM,CAMtB;IAND,WAAiB,MAAM;QAEtB,IAAiB,SAAS,CAGzB;QAHD,WAAiB,SAAS;YACZ,iBAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAA,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;YACrE,cAAI,GAAG,IAAI,CAAC,MAAM,CAAY,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAA,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1F,CAAC,EAHgB,SAAS,GAAT,gBAAS,KAAT,gBAAS,QAGzB;IACF,CAAC,EANgB,MAAM,GAAN,WAAM,KAAN,WAAM,QAMtB;AACF,CAAC,EA9BgB,IAAI,KAAJ,IAAI,QA8BpB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { zod } from "../zod";
|
|
2
|
+
export declare namespace mfa {
|
|
3
|
+
type Totp = zod.infer<typeof Totp.typeZod>;
|
|
4
|
+
namespace Totp {
|
|
5
|
+
const typeZod: zod.ZodObject<{
|
|
6
|
+
key: zod.ZodString;
|
|
7
|
+
}, zod.z.core.$strip>;
|
|
8
|
+
const is: (value: any) => value is Totp;
|
|
9
|
+
type Otp = zod.infer<typeof Otp.typeZod>;
|
|
10
|
+
namespace Otp {
|
|
11
|
+
const typeZod: zod.ZodString;
|
|
12
|
+
const is: (value: any) => value is Otp;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { zod } from "../zod";
|
|
2
|
+
export var mfa;
|
|
3
|
+
(function (mfa) {
|
|
4
|
+
let Totp;
|
|
5
|
+
(function (Totp) {
|
|
6
|
+
Totp.typeZod = zod.object({
|
|
7
|
+
key: zod.string().nonempty(),
|
|
8
|
+
});
|
|
9
|
+
Totp.is = (value) => Totp.typeZod.safeParse(value).success;
|
|
10
|
+
let Otp;
|
|
11
|
+
(function (Otp) {
|
|
12
|
+
Otp.typeZod = zod.string().length(6).regex(/^\d+$/);
|
|
13
|
+
Otp.is = (value) => Otp.typeZod.safeParse(value).success;
|
|
14
|
+
})(Otp = Totp.Otp || (Totp.Otp = {}));
|
|
15
|
+
})(Totp = mfa.Totp || (mfa.Totp = {}));
|
|
16
|
+
})(mfa || (mfa = {}));
|
|
17
|
+
//# sourceMappingURL=mfa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mfa.js","sourceRoot":"","sources":["../../../User/mfa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAE5B,MAAM,KAAW,GAAG,CAcnB;AAdD,WAAiB,GAAG;IAEnB,IAAiB,IAAI,CAWpB;IAXD,WAAiB,IAAI;QACP,YAAO,GAAG,GAAG,CAAC,MAAM,CAAC;YACjC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC,CAAA;QACW,OAAE,GAAG,CAAC,KAAU,EAAiB,EAAE,CAAC,KAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;QAGjF,IAAiB,GAAG,CAGnB;QAHD,WAAiB,GAAG;YACN,WAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC/C,MAAE,GAAG,CAAC,KAAU,EAAgB,EAAE,CAAC,IAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;QACjF,CAAC,EAHgB,GAAG,GAAH,QAAG,KAAH,QAAG,QAGnB;IACF,CAAC,EAXgB,IAAI,GAAJ,QAAI,KAAJ,QAAI,QAWpB;AACF,CAAC,EAdgB,GAAG,KAAH,GAAG,QAcnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pax2pay/model-banking",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.608",
|
|
4
4
|
"description": "Library containing data model types and functions for the Pax2Pay Banking API.",
|
|
5
5
|
"author": "Pax2Pay Ltd",
|
|
6
6
|
"license": "MIT",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"cloudly-http": "^0.1.7",
|
|
63
63
|
"cloudly-storage": "^0.10.16",
|
|
64
64
|
"cryptly": "^4.0.6",
|
|
65
|
-
"gracely": "^2.0.
|
|
65
|
+
"gracely": "^2.0.13",
|
|
66
66
|
"isly": "0.1.20",
|
|
67
67
|
"isly2": "npm:isly@1.3.0",
|
|
68
68
|
"isoly": "3.0.6",
|