@pax2pay/model-banking 0.1.509 → 0.1.511
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/Card/Restriction/Merchant.ts +19 -94
- package/Card/Restriction/merchants/Merchant.ts +28 -0
- package/Card/Restriction/merchants/airlines.json +957 -0
- package/Card/Restriction/merchants/hotels.json +252 -0
- package/Card/Restriction/merchants/index.ts +765 -0
- package/Card/Restriction/merchants/misc.json +139 -0
- package/User/Access/Permission.ts +47 -0
- package/User/Access/index.ts +19 -0
- package/User/Identity.ts +32 -0
- package/User/JWT/Payload.ts +56 -0
- package/User/JWT/Signer.ts +39 -0
- package/User/JWT/index.ts +57 -0
- package/User/Me.ts +15 -0
- package/User/Password.ts +43 -0
- package/User/index.ts +68 -0
- package/dist/cjs/Card/Restriction/Merchant.d.ts +3 -9
- package/dist/cjs/Card/Restriction/Merchant.js +18 -87
- package/dist/cjs/Card/Restriction/Merchant.js.map +1 -1
- package/dist/cjs/Card/Restriction/merchants/Merchant.d.ts +12 -0
- package/dist/cjs/Card/Restriction/merchants/Merchant.js +26 -0
- package/dist/cjs/Card/Restriction/merchants/Merchant.js.map +1 -0
- package/dist/cjs/Card/Restriction/merchants/index.d.ts +763 -0
- package/dist/cjs/Card/Restriction/merchants/index.js +767 -0
- package/dist/cjs/Card/Restriction/merchants/index.js.map +1 -0
- package/dist/cjs/User/Access/Permission.d.ts +20 -0
- package/dist/cjs/User/Access/Permission.js +47 -0
- package/dist/cjs/User/Access/Permission.js.map +1 -0
- package/dist/cjs/User/Access/index.d.ts +11 -0
- package/dist/cjs/User/Access/index.js +16 -0
- package/dist/cjs/User/Access/index.js.map +1 -0
- package/dist/cjs/User/Identity.d.ts +16 -0
- package/dist/cjs/User/Identity.js +32 -0
- package/dist/cjs/User/Identity.js.map +1 -0
- package/dist/cjs/User/JWT/Payload.d.ts +43 -0
- package/dist/cjs/User/JWT/Payload.js +42 -0
- package/dist/cjs/User/JWT/Payload.js.map +1 -0
- package/dist/cjs/User/JWT/Signer.d.ts +23 -0
- package/dist/cjs/User/JWT/Signer.js +39 -0
- package/dist/cjs/User/JWT/Signer.js.map +1 -0
- package/dist/cjs/User/JWT/index.d.ts +25 -0
- package/dist/cjs/User/JWT/index.js +59 -0
- package/dist/cjs/User/JWT/index.js.map +1 -0
- package/dist/cjs/User/Me.d.ts +9 -0
- package/dist/cjs/User/Me.js +14 -0
- package/dist/cjs/User/Me.js.map +1 -0
- package/dist/cjs/User/Password.d.ts +20 -0
- package/dist/cjs/User/Password.js +44 -0
- package/dist/cjs/User/Password.js.map +1 -0
- package/dist/cjs/User/index.d.ts +46 -0
- package/dist/cjs/User/index.js +54 -0
- package/dist/cjs/User/index.js.map +1 -0
- package/dist/cjs/pax2pay.d.ts +2 -1
- package/dist/cjs/pax2pay.js +5 -3
- package/dist/cjs/pax2pay.js.map +1 -1
- package/dist/mjs/Card/Restriction/Merchant.d.ts +3 -9
- package/dist/mjs/Card/Restriction/Merchant.js +18 -87
- package/dist/mjs/Card/Restriction/Merchant.js.map +1 -1
- package/dist/mjs/Card/Restriction/merchants/Merchant.d.ts +12 -0
- package/dist/mjs/Card/Restriction/merchants/Merchant.js +23 -0
- package/dist/mjs/Card/Restriction/merchants/Merchant.js.map +1 -0
- package/dist/mjs/Card/Restriction/merchants/index.d.ts +763 -0
- package/dist/mjs/Card/Restriction/merchants/index.js +764 -0
- package/dist/mjs/Card/Restriction/merchants/index.js.map +1 -0
- package/dist/mjs/User/Access/Permission.d.ts +20 -0
- package/dist/mjs/User/Access/Permission.js +44 -0
- package/dist/mjs/User/Access/Permission.js.map +1 -0
- package/dist/mjs/User/Access/index.d.ts +11 -0
- package/dist/mjs/User/Access/index.js +13 -0
- package/dist/mjs/User/Access/index.js.map +1 -0
- package/dist/mjs/User/Identity.d.ts +16 -0
- package/dist/mjs/User/Identity.js +28 -0
- package/dist/mjs/User/Identity.js.map +1 -0
- package/dist/mjs/User/JWT/Payload.d.ts +43 -0
- package/dist/mjs/User/JWT/Payload.js +39 -0
- package/dist/mjs/User/JWT/Payload.js.map +1 -0
- package/dist/mjs/User/JWT/Signer.d.ts +23 -0
- package/dist/mjs/User/JWT/Signer.js +35 -0
- package/dist/mjs/User/JWT/Signer.js.map +1 -0
- package/dist/mjs/User/JWT/index.d.ts +25 -0
- package/dist/mjs/User/JWT/index.js +55 -0
- package/dist/mjs/User/JWT/index.js.map +1 -0
- package/dist/mjs/User/Me.d.ts +9 -0
- package/dist/mjs/User/Me.js +11 -0
- package/dist/mjs/User/Me.js.map +1 -0
- package/dist/mjs/User/Password.d.ts +20 -0
- package/dist/mjs/User/Password.js +41 -0
- package/dist/mjs/User/Password.js.map +1 -0
- package/dist/mjs/User/index.d.ts +46 -0
- package/dist/mjs/User/index.js +51 -0
- package/dist/mjs/User/index.js.map +1 -0
- package/dist/mjs/pax2pay.d.ts +2 -1
- package/dist/mjs/pax2pay.js +2 -1
- package/dist/mjs/pax2pay.js.map +1 -1
- package/package.json +1 -1
- package/pax2pay.ts +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Card/Restriction/merchants/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isly } from "isly";
|
|
2
|
+
export type Permission = Partial<Record<Permission.Collection, Permission.Level>>;
|
|
3
|
+
export declare namespace Permission {
|
|
4
|
+
type Realm = Omit<Permission, "user">;
|
|
5
|
+
type Global = Pick<Permission, "user">;
|
|
6
|
+
function check(constraint: Permission, privilege: Permission): boolean;
|
|
7
|
+
type Level = typeof Level.values[number];
|
|
8
|
+
namespace Level {
|
|
9
|
+
const values: readonly ["read", "write", "developer", "admin"];
|
|
10
|
+
const type: isly.Type<"admin" | "read" | "write" | "developer">;
|
|
11
|
+
function get(level: Level | undefined): number;
|
|
12
|
+
const value: Record<Level, number>;
|
|
13
|
+
}
|
|
14
|
+
type Collection = typeof Collection.values[number];
|
|
15
|
+
namespace Collection {
|
|
16
|
+
const values: readonly ["account", "card", "log", "operation", "organization", "rule", "settlement", "transaction", "treasury", "user", "*"];
|
|
17
|
+
const type: isly.Type<"rule" | "card" | "transaction" | "account" | "settlement" | "organization" | "log" | "user" | "operation" | "treasury" | "*">;
|
|
18
|
+
}
|
|
19
|
+
const type: isly.Type<Partial<Record<"rule" | "card" | "transaction" | "account" | "settlement" | "organization" | "log" | "user" | "operation" | "treasury" | "*", "admin" | "read" | "write" | "developer">>>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Permission = void 0;
|
|
4
|
+
const isly_1 = require("isly");
|
|
5
|
+
const typedly_1 = require("typedly");
|
|
6
|
+
var Permission;
|
|
7
|
+
(function (Permission) {
|
|
8
|
+
function check(constraint, privilege) {
|
|
9
|
+
return typedly_1.typedly.Object.entries(constraint).every(([collection, level]) => Permission.Level.get(privilege[collection]) >= Permission.Level.get(level) ||
|
|
10
|
+
Permission.Level.get(privilege["*"]) >= Permission.Level.get(level));
|
|
11
|
+
}
|
|
12
|
+
Permission.check = check;
|
|
13
|
+
let Level;
|
|
14
|
+
(function (Level) {
|
|
15
|
+
Level.values = ["read", "write", "developer", "admin"];
|
|
16
|
+
Level.type = isly_1.isly.string(Level.values);
|
|
17
|
+
function get(level) {
|
|
18
|
+
return level ? Level.value[level] : 0;
|
|
19
|
+
}
|
|
20
|
+
Level.get = get;
|
|
21
|
+
Level.value = {
|
|
22
|
+
read: 1,
|
|
23
|
+
write: 2,
|
|
24
|
+
developer: 3,
|
|
25
|
+
admin: 4,
|
|
26
|
+
};
|
|
27
|
+
})(Level = Permission.Level || (Permission.Level = {}));
|
|
28
|
+
let Collection;
|
|
29
|
+
(function (Collection) {
|
|
30
|
+
Collection.values = [
|
|
31
|
+
"account",
|
|
32
|
+
"card",
|
|
33
|
+
"log",
|
|
34
|
+
"operation",
|
|
35
|
+
"organization",
|
|
36
|
+
"rule",
|
|
37
|
+
"settlement",
|
|
38
|
+
"transaction",
|
|
39
|
+
"treasury",
|
|
40
|
+
"user",
|
|
41
|
+
"*",
|
|
42
|
+
];
|
|
43
|
+
Collection.type = isly_1.isly.string(Collection.values);
|
|
44
|
+
})(Collection = Permission.Collection || (Permission.Collection = {}));
|
|
45
|
+
Permission.type = isly_1.isly.record(Collection.type, Level.type);
|
|
46
|
+
})(Permission || (exports.Permission = Permission = {}));
|
|
47
|
+
//# sourceMappingURL=Permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../../User/Access/Permission.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,qCAAiC;AAGjC,IAAiB,UAAU,CA0C1B;AA1CD,WAAiB,UAAU;IAG1B,SAAgB,KAAK,CAAC,UAAsB,EAAE,SAAqB;QAClE,OAAO,iBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAC9C,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CACvB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1E,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CACpE,CAAA;IACF,CAAC;IANe,gBAAK,QAMpB,CAAA;IAED,IAAiB,KAAK,CAYrB;IAZD,WAAiB,KAAK;QACR,YAAM,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAU,CAAA;QACzD,UAAI,GAAG,WAAI,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,CAAA;QACvC,SAAgB,GAAG,CAAC,KAAwB;YAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;QAFe,SAAG,MAElB,CAAA;QACY,WAAK,GAA0B;YAC3C,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,CAAC;SACC,CAAA;IACX,CAAC,EAZgB,KAAK,GAAL,gBAAK,KAAL,gBAAK,QAYrB;IAED,IAAiB,UAAU,CAe1B;IAfD,WAAiB,UAAU;QACb,iBAAM,GAAG;YACrB,SAAS;YACT,MAAM;YACN,KAAK;YACL,WAAW;YACX,cAAc;YACd,MAAM;YACN,YAAY;YACZ,aAAa;YACb,UAAU;YACV,MAAM;YACN,GAAG;SACM,CAAA;QACG,eAAI,GAAG,WAAI,CAAC,MAAM,CAAC,WAAA,MAAM,CAAC,CAAA;IACxC,CAAC,EAfgB,UAAU,GAAV,qBAAU,KAAV,qBAAU,QAe1B;IACY,eAAI,GAAG,WAAI,CAAC,MAAM,CAAa,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;AACzE,CAAC,EA1CgB,UAAU,0BAAV,UAAU,QA0C1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Permission as AccessPermission } from "./Permission";
|
|
2
|
+
export interface Access {
|
|
3
|
+
uk?: Access.Permission.Realm;
|
|
4
|
+
eea?: Access.Permission.Realm;
|
|
5
|
+
test?: Access.Permission.Realm;
|
|
6
|
+
"*"?: Access.Permission.Global;
|
|
7
|
+
}
|
|
8
|
+
export declare namespace Access {
|
|
9
|
+
export import Permission = AccessPermission;
|
|
10
|
+
const type: import("isly/dist/cjs/object").IslyObject<object, object>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Access = void 0;
|
|
4
|
+
const isly_1 = require("isly");
|
|
5
|
+
const Permission_1 = require("./Permission");
|
|
6
|
+
var Access;
|
|
7
|
+
(function (Access) {
|
|
8
|
+
Access.Permission = Permission_1.Permission;
|
|
9
|
+
Access.type = isly_1.isly.object({
|
|
10
|
+
uk: Access.Permission.type.optional(),
|
|
11
|
+
eea: Access.Permission.type.optional(),
|
|
12
|
+
test: Access.Permission.type.optional(),
|
|
13
|
+
"*": isly_1.isly.object({ user: Access.Permission.Level.type.optional() }).optional(),
|
|
14
|
+
});
|
|
15
|
+
})(Access || (exports.Access = Access = {}));
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../User/Access/index.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,6CAA6D;AAS7D,IAAiB,MAAM,CAQtB;AARD,WAAiB,MAAM;IACR,iBAAU,GAAG,uBAAgB,CAAA;IAC9B,WAAI,GAAG,WAAI,CAAC,MAAM,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE;QACrC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE;QACtC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE;QACvC,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC9E,CAAC,CAAA;AACH,CAAC,EARgB,MAAM,sBAAN,MAAM,QAQtB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { gracely } from "gracely";
|
|
2
|
+
import { Realm } from "../Realm";
|
|
3
|
+
import { Access } from "./Access";
|
|
4
|
+
import { JWT } from "./JWT";
|
|
5
|
+
export declare class Identity {
|
|
6
|
+
readonly payload: JWT.Payload;
|
|
7
|
+
private readonly jwt;
|
|
8
|
+
get realm(): Realm;
|
|
9
|
+
constructor(payload: JWT.Payload, jwt: string);
|
|
10
|
+
authenticate(constraint: Access.Permission | Access.Permission[]): Identity | gracely.Error;
|
|
11
|
+
static open(authorization: string | undefined, options: {
|
|
12
|
+
whitelist?: JWT.Whitelist;
|
|
13
|
+
key?: string;
|
|
14
|
+
}): Promise<Identity | gracely.Error>;
|
|
15
|
+
}
|
|
16
|
+
export declare namespace Identity { }
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Identity = void 0;
|
|
4
|
+
const gracely_1 = require("gracely");
|
|
5
|
+
const Access_1 = require("./Access");
|
|
6
|
+
const JWT_1 = require("./JWT");
|
|
7
|
+
class Identity {
|
|
8
|
+
payload;
|
|
9
|
+
jwt;
|
|
10
|
+
get realm() {
|
|
11
|
+
return this.payload.realm;
|
|
12
|
+
}
|
|
13
|
+
constructor(payload, jwt) {
|
|
14
|
+
this.payload = payload;
|
|
15
|
+
this.jwt = jwt;
|
|
16
|
+
}
|
|
17
|
+
authenticate(constraint) {
|
|
18
|
+
let allowed;
|
|
19
|
+
if (Array.isArray(constraint))
|
|
20
|
+
allowed = constraint.some(c => this.authenticate(c));
|
|
21
|
+
else
|
|
22
|
+
allowed = Access_1.Access.Permission.check(constraint, this.payload.permission);
|
|
23
|
+
return allowed ? this : gracely_1.gracely.client.forbidden();
|
|
24
|
+
}
|
|
25
|
+
static async open(authorization, options) {
|
|
26
|
+
const jwt = authorization?.startsWith("Bearer ") ? authorization.replace("Bearer ", "") : undefined;
|
|
27
|
+
const payload = jwt ? await JWT_1.JWT.open({ public: options.key }, options.whitelist).verify(jwt) : undefined;
|
|
28
|
+
return jwt && payload ? new Identity(payload, jwt) : gracely_1.gracely.client.unauthorized();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.Identity = Identity;
|
|
32
|
+
//# sourceMappingURL=Identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../../User/Identity.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAGjC,qCAAiC;AACjC,+BAA2B;AAE3B,MAAa,QAAQ;IAIQ;IAAuC;IAHnE,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IAC1B,CAAC;IACD,YAA4B,OAAoB,EAAmB,GAAW;QAAlD,YAAO,GAAP,OAAO,CAAa;QAAmB,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAElF,YAAY,CAAC,UAAmD;QAC/D,IAAI,OAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAC5B,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;;YAEpD,OAAO,GAAG,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACvE,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACnD,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,IAAI,CAChB,aAAiC,EACjC,OAAoD;QAEpD,MAAM,GAAG,GAAG,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,SAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxG,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;IACnF,CAAC;CACD;AAxBD,4BAwBC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { authly } from "authly";
|
|
2
|
+
import { isly } from "isly";
|
|
3
|
+
import { Realm } from "../../Realm";
|
|
4
|
+
import { Access } from "../Access";
|
|
5
|
+
export type Payload = Payload.LongTerm | Payload.ShortTerm;
|
|
6
|
+
export declare namespace Payload {
|
|
7
|
+
interface Creatable {
|
|
8
|
+
sub: string;
|
|
9
|
+
permission: Access.Permission;
|
|
10
|
+
realm: Realm;
|
|
11
|
+
}
|
|
12
|
+
namespace Creatable {
|
|
13
|
+
const type: import("isly/dist/cjs/object").IslyObject<Creatable, object>;
|
|
14
|
+
}
|
|
15
|
+
interface Base extends authly.Payload {
|
|
16
|
+
aud: string;
|
|
17
|
+
iat: number;
|
|
18
|
+
iss: string;
|
|
19
|
+
sub: string;
|
|
20
|
+
permission: Access.Permission;
|
|
21
|
+
realm: Realm;
|
|
22
|
+
}
|
|
23
|
+
namespace Base {
|
|
24
|
+
const type: import("isly/dist/cjs/object").IslyObject<Payload, object>;
|
|
25
|
+
}
|
|
26
|
+
interface LongTerm extends Base {
|
|
27
|
+
id: string;
|
|
28
|
+
}
|
|
29
|
+
namespace LongTerm {
|
|
30
|
+
const type: import("isly/dist/cjs/object").IslyObject<LongTerm, Payload>;
|
|
31
|
+
}
|
|
32
|
+
interface ShortTerm extends Base {
|
|
33
|
+
exp: number;
|
|
34
|
+
}
|
|
35
|
+
namespace ShortTerm {
|
|
36
|
+
const type: import("isly/dist/cjs/object").IslyObject<ShortTerm, Payload>;
|
|
37
|
+
}
|
|
38
|
+
const configuration: {
|
|
39
|
+
aud: string;
|
|
40
|
+
iss: string;
|
|
41
|
+
};
|
|
42
|
+
const type: isly.Type<Payload>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Payload = void 0;
|
|
4
|
+
const isly_1 = require("isly");
|
|
5
|
+
const Realm_1 = require("../../Realm");
|
|
6
|
+
const Access_1 = require("../Access");
|
|
7
|
+
var Payload;
|
|
8
|
+
(function (Payload) {
|
|
9
|
+
let Creatable;
|
|
10
|
+
(function (Creatable) {
|
|
11
|
+
Creatable.type = isly_1.isly.object({
|
|
12
|
+
sub: isly_1.isly.string(),
|
|
13
|
+
permission: Access_1.Access.Permission.type,
|
|
14
|
+
realm: Realm_1.Realm.type,
|
|
15
|
+
});
|
|
16
|
+
})(Creatable = Payload.Creatable || (Payload.Creatable = {}));
|
|
17
|
+
let Base;
|
|
18
|
+
(function (Base) {
|
|
19
|
+
Base.type = isly_1.isly.object({
|
|
20
|
+
aud: isly_1.isly.string(),
|
|
21
|
+
iat: isly_1.isly.number(),
|
|
22
|
+
iss: isly_1.isly.string(),
|
|
23
|
+
sub: isly_1.isly.string(),
|
|
24
|
+
permission: Access_1.Access.Permission.type,
|
|
25
|
+
realm: Realm_1.Realm.type,
|
|
26
|
+
});
|
|
27
|
+
})(Base = Payload.Base || (Payload.Base = {}));
|
|
28
|
+
let LongTerm;
|
|
29
|
+
(function (LongTerm) {
|
|
30
|
+
LongTerm.type = Base.type.extend({ id: isly_1.isly.string() });
|
|
31
|
+
})(LongTerm = Payload.LongTerm || (Payload.LongTerm = {}));
|
|
32
|
+
let ShortTerm;
|
|
33
|
+
(function (ShortTerm) {
|
|
34
|
+
ShortTerm.type = Base.type.extend({ exp: isly_1.isly.number() });
|
|
35
|
+
})(ShortTerm = Payload.ShortTerm || (Payload.ShortTerm = {}));
|
|
36
|
+
Payload.configuration = {
|
|
37
|
+
aud: "https://banking.pax2pay.app",
|
|
38
|
+
iss: "pax2pay",
|
|
39
|
+
};
|
|
40
|
+
Payload.type = isly_1.isly.union(LongTerm.type, ShortTerm.type);
|
|
41
|
+
})(Payload || (exports.Payload = Payload = {}));
|
|
42
|
+
//# sourceMappingURL=Payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Payload.js","sourceRoot":"","sources":["../../../../User/JWT/Payload.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAC3B,uCAAmC;AACnC,sCAAkC;AAGlC,IAAiB,OAAO,CAiDvB;AAjDD,WAAiB,OAAO;IAMvB,IAAiB,SAAS,CAMzB;IAND,WAAiB,SAAS;QACZ,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY;YAC1C,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,eAAM,CAAC,UAAU,CAAC,IAAI;YAClC,KAAK,EAAE,aAAK,CAAC,IAAI;SACjB,CAAC,CAAA;IACH,CAAC,EANgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAMzB;IASD,IAAiB,IAAI,CASpB;IATD,WAAiB,IAAI;QACP,SAAI,GAAG,WAAI,CAAC,MAAM,CAAU;YACxC,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,eAAM,CAAC,UAAU,CAAC,IAAI;YAClC,KAAK,EAAE,aAAK,CAAC,IAAI;SACjB,CAAC,CAAA;IACH,CAAC,EATgB,IAAI,GAAJ,YAAI,KAAJ,YAAI,QASpB;IAID,IAAiB,QAAQ,CAExB;IAFD,WAAiB,QAAQ;QACX,aAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAW,EAAE,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACtE,CAAC,EAFgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAExB;IAID,IAAiB,SAAS,CAEzB;IAFD,WAAiB,SAAS;QACZ,cAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAY,EAAE,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxE,CAAC,EAFgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEzB;IAEY,qBAAa,GAAG;QAC5B,GAAG,EAAE,6BAA6B;QAClC,GAAG,EAAE,SAAS;KACd,CAAA;IACY,YAAI,GAAG,WAAI,CAAC,KAAK,CAAU,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;AACvE,CAAC,EAjDgB,OAAO,uBAAP,OAAO,QAiDvB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { authly } from "authly";
|
|
2
|
+
import { Payload } from "./Payload";
|
|
3
|
+
export declare class Signer {
|
|
4
|
+
private readonly key?;
|
|
5
|
+
constructor(key?: {
|
|
6
|
+
public?: string;
|
|
7
|
+
private?: string;
|
|
8
|
+
} | undefined);
|
|
9
|
+
sign(data: Payload.Creatable, duration?: number | "infinite"): Promise<string | undefined>;
|
|
10
|
+
static open(key?: {
|
|
11
|
+
public?: string;
|
|
12
|
+
private?: string;
|
|
13
|
+
}): Signer;
|
|
14
|
+
}
|
|
15
|
+
export declare namespace Signer {
|
|
16
|
+
function create<T extends authly.Payload>(options: {
|
|
17
|
+
key?: {
|
|
18
|
+
public?: string;
|
|
19
|
+
private?: string;
|
|
20
|
+
};
|
|
21
|
+
duration?: number;
|
|
22
|
+
}): authly.Issuer<T> | undefined;
|
|
23
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Signer = void 0;
|
|
4
|
+
const authly_1 = require("authly");
|
|
5
|
+
const Payload_1 = require("./Payload");
|
|
6
|
+
class Signer {
|
|
7
|
+
key;
|
|
8
|
+
constructor(key) {
|
|
9
|
+
this.key = key;
|
|
10
|
+
}
|
|
11
|
+
async sign(data, duration = 60 * 60 * 12) {
|
|
12
|
+
let result;
|
|
13
|
+
if (duration === "infinite") {
|
|
14
|
+
const signer = Signer.create({ key: this.key });
|
|
15
|
+
result = await signer?.sign({ id: authly_1.authly.Identifier.generate(16), ...data });
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const signer = Signer.create({ key: this.key, duration });
|
|
19
|
+
result = await signer?.sign({ ...data });
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
static open(key) {
|
|
24
|
+
return new this(key);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.Signer = Signer;
|
|
28
|
+
(function (Signer) {
|
|
29
|
+
function create(options) {
|
|
30
|
+
const signer = authly_1.authly.Issuer.create(Payload_1.Payload.configuration.iss, authly_1.authly.Algorithm.RS256(options.key?.public, options.key?.private));
|
|
31
|
+
if (signer) {
|
|
32
|
+
signer.duration = options.duration;
|
|
33
|
+
signer.audience = Payload_1.Payload.configuration.aud;
|
|
34
|
+
}
|
|
35
|
+
return signer;
|
|
36
|
+
}
|
|
37
|
+
Signer.create = create;
|
|
38
|
+
})(Signer || (exports.Signer = Signer = {}));
|
|
39
|
+
//# sourceMappingURL=Signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Signer.js","sourceRoot":"","sources":["../../../../User/JWT/Signer.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAC/B,uCAAmC;AAEnC,MAAa,MAAM;IACW;IAA7B,YAA6B,GAA2C;QAA3C,QAAG,GAAH,GAAG,CAAwC;IAAG,CAAC;IAG5E,KAAK,CAAC,IAAI,CAAC,IAAuB,EAAE,WAAgC,EAAE,GAAG,EAAE,GAAG,EAAE;QAC/E,IAAI,MAA0B,CAAA;QAC9B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YAC/C,MAAM,GAAG,MAAM,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,eAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QAC7E,CAAC;aAAM,CAAC;YACP,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;YACzD,MAAM,GAAG,MAAM,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAA2C;QACtD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;CACD;AAnBD,wBAmBC;AACD,WAAiB,MAAM;IACtB,SAAgB,MAAM,CAA2B,OAGhD;QACA,MAAM,MAAM,GAAG,eAAM,CAAC,MAAM,CAAC,MAAM,CAClC,iBAAO,CAAC,aAAa,CAAC,GAAG,EACzB,eAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CACjE,CAAA;QACD,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YAClC,MAAM,CAAC,QAAQ,GAAG,iBAAO,CAAC,aAAa,CAAC,GAAG,CAAA;QAC5C,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAbe,aAAM,SAarB,CAAA;AACF,CAAC,EAfgB,MAAM,sBAAN,MAAM,QAetB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Realm } from "../../Realm";
|
|
2
|
+
import { Payload as JWTPayload } from "./Payload";
|
|
3
|
+
import { Signer as JWTSigner } from "./Signer";
|
|
4
|
+
export declare class JWT {
|
|
5
|
+
#private;
|
|
6
|
+
private readonly key?;
|
|
7
|
+
readonly whitelist?: JWT.Whitelist | undefined;
|
|
8
|
+
private get verifier();
|
|
9
|
+
private get signer();
|
|
10
|
+
get sign(): ((data: JWTPayload.Creatable, duration?: number | "infinite") => Promise<string | undefined>) | undefined;
|
|
11
|
+
private constructor();
|
|
12
|
+
verify(token: string): Promise<JWT.Payload | undefined>;
|
|
13
|
+
unpack(token: string): Promise<JWT.Payload | undefined>;
|
|
14
|
+
static open(key?: {
|
|
15
|
+
private?: string;
|
|
16
|
+
public?: string;
|
|
17
|
+
}, whitelist?: JWT.Whitelist): JWT;
|
|
18
|
+
}
|
|
19
|
+
export declare namespace JWT {
|
|
20
|
+
export import Signer = JWTSigner;
|
|
21
|
+
type Whitelist = Partial<Record<Realm, Payload.LongTerm[]>>;
|
|
22
|
+
function unpack(token: string): Promise<JWT.Payload | undefined>;
|
|
23
|
+
export import Payload = JWTPayload;
|
|
24
|
+
const key = "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2W8CD2kpfS4QIRV2/rgm4NVvsvJsYNMHtnIl9ADvO3A81hAmRKvOAPVoXICe6+EuZ47jGjGL7f48GEoQuITfBPv/MosCDj1YhJ56ILDynCSd8FlxDrhv8pl5IquST7tcL6Hc6m+vuvoTLrFQ5QqNxv0a5eDd/YTrWv7SUuRfBEhYd/wMysGynN3QauHqy5ceBCt1nv1MJLGlSzczMRK7wjy1zi2g9NCHZBOoo1HXOpi727Xh+YXHc9EP2TN0oOXyxykv45nkGIDI0Qek3/pfkavClBffc1sEqA+rUx7YqRN9KGYxwLMLug+NOOh3ptqjfobXbR5fx/sUWhvcjUMTE1JreTrWYbGmVnjd/SeYSClfmGhdTBUfqnZbaABv0ruTXva18qRhP4y143vHMk/k8HzbuROTKAzrtEeLIjgwUgDcnE+JwDqcb8tKSGV6i++TiTldlSBCRTT4dK2hpHJje80b2abqtrbCkxbJlT98UsAAoiq2eW1X6lYmCfiGCJPkfswibQ2tPAKKNe/2xuHPsjx4FuXGmV0dbzmCwSIQoApXqOvKzoNFi6AaKIjxfNmiEigLwKpNrw08H0lVZbq/9MMxI3TzMTZjY9QmBKVLSGy3Z6IJqZpyK22lv7whJcllG0Qw8tv8+7wmC8SR3+4jpuxuFGZ+69CW+otx+CPMJjcCAwEAAQ==";
|
|
25
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JWT = void 0;
|
|
4
|
+
const authly_1 = require("authly");
|
|
5
|
+
const Payload_1 = require("./Payload");
|
|
6
|
+
const Signer_1 = require("./Signer");
|
|
7
|
+
class JWT {
|
|
8
|
+
key;
|
|
9
|
+
whitelist;
|
|
10
|
+
#verifier;
|
|
11
|
+
get verifier() {
|
|
12
|
+
if (!this.#verifier && this.key?.public) {
|
|
13
|
+
const algorithm = authly_1.authly.Algorithm.RS256(this.key.public);
|
|
14
|
+
this.#verifier = algorithm ? authly_1.authly.Verifier.create(algorithm) : undefined;
|
|
15
|
+
}
|
|
16
|
+
return this.#verifier;
|
|
17
|
+
}
|
|
18
|
+
#signer;
|
|
19
|
+
get signer() {
|
|
20
|
+
return this.key?.private ? (this.#signer ??= Signer_1.Signer.open(this.key)) : undefined;
|
|
21
|
+
}
|
|
22
|
+
get sign() {
|
|
23
|
+
return this.signer?.sign;
|
|
24
|
+
}
|
|
25
|
+
constructor(key, whitelist) {
|
|
26
|
+
this.key = key;
|
|
27
|
+
this.whitelist = whitelist;
|
|
28
|
+
}
|
|
29
|
+
async verify(token) {
|
|
30
|
+
const verified = await this.verifier?.verify(token, JWT.Payload.configuration.aud);
|
|
31
|
+
delete verified?.token;
|
|
32
|
+
return JWT.Payload.type.is(verified) &&
|
|
33
|
+
verified?.iss == JWT.Payload.configuration.iss &&
|
|
34
|
+
(verified.exp || (verified.id && this.whitelist?.[verified.realm]?.some(e => e.id === verified.id)))
|
|
35
|
+
? verified
|
|
36
|
+
: undefined;
|
|
37
|
+
}
|
|
38
|
+
async unpack(token) {
|
|
39
|
+
const unpacked = await JWT.unpack(token);
|
|
40
|
+
delete unpacked?.token;
|
|
41
|
+
return unpacked;
|
|
42
|
+
}
|
|
43
|
+
static open(key, whitelist) {
|
|
44
|
+
return new this({ private: key?.private, public: key?.public ?? JWT.key }, whitelist);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.JWT = JWT;
|
|
48
|
+
(function (JWT) {
|
|
49
|
+
JWT.Signer = Signer_1.Signer;
|
|
50
|
+
async function unpack(token) {
|
|
51
|
+
const algorithm = authly_1.authly.Algorithm.RS256(undefined);
|
|
52
|
+
const verifier = algorithm ? authly_1.authly.Verifier.create(algorithm) : undefined;
|
|
53
|
+
return verifier?.unpack(token);
|
|
54
|
+
}
|
|
55
|
+
JWT.unpack = unpack;
|
|
56
|
+
JWT.Payload = Payload_1.Payload;
|
|
57
|
+
JWT.key = "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2W8CD2kpfS4QIRV2/rgm4NVvsvJsYNMHtnIl9ADvO3A81hAmRKvOAPVoXICe6+EuZ47jGjGL7f48GEoQuITfBPv/MosCDj1YhJ56ILDynCSd8FlxDrhv8pl5IquST7tcL6Hc6m+vuvoTLrFQ5QqNxv0a5eDd/YTrWv7SUuRfBEhYd/wMysGynN3QauHqy5ceBCt1nv1MJLGlSzczMRK7wjy1zi2g9NCHZBOoo1HXOpi727Xh+YXHc9EP2TN0oOXyxykv45nkGIDI0Qek3/pfkavClBffc1sEqA+rUx7YqRN9KGYxwLMLug+NOOh3ptqjfobXbR5fx/sUWhvcjUMTE1JreTrWYbGmVnjd/SeYSClfmGhdTBUfqnZbaABv0ruTXva18qRhP4y143vHMk/k8HzbuROTKAzrtEeLIjgwUgDcnE+JwDqcb8tKSGV6i++TiTldlSBCRTT4dK2hpHJje80b2abqtrbCkxbJlT98UsAAoiq2eW1X6lYmCfiGCJPkfswibQ2tPAKKNe/2xuHPsjx4FuXGmV0dbzmCwSIQoApXqOvKzoNFi6AaKIjxfNmiEigLwKpNrw08H0lVZbq/9MMxI3TzMTZjY9QmBKVLSGy3Z6IJqZpyK22lv7whJcllG0Qw8tv8+7wmC8SR3+4jpuxuFGZ+69CW+otx+CPMJjcCAwEAAQ==";
|
|
58
|
+
})(JWT || (exports.JWT = JWT = {}));
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../User/JWT/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Me = void 0;
|
|
4
|
+
const isly_1 = require("isly");
|
|
5
|
+
const Realm_1 = require("../Realm");
|
|
6
|
+
var Me;
|
|
7
|
+
(function (Me) {
|
|
8
|
+
Me.type = isly_1.isly.object({
|
|
9
|
+
email: isly_1.isly.string(),
|
|
10
|
+
password: isly_1.isly.string(),
|
|
11
|
+
realm: Realm_1.Realm.type,
|
|
12
|
+
});
|
|
13
|
+
})(Me || (exports.Me = Me = {}));
|
|
14
|
+
//# sourceMappingURL=Me.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Me.js","sourceRoot":"","sources":["../../../User/Me.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,oCAAgC;AAOhC,IAAiB,EAAE,CAMlB;AAND,WAAiB,EAAE;IACL,OAAI,GAAG,WAAI,CAAC,MAAM,CAAK;QACnC,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,WAAI,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,aAAK,CAAC,IAAI;KACjB,CAAC,CAAA;AACH,CAAC,EANgB,EAAE,kBAAF,EAAE,QAMlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { cryptly } from "cryptly";
|
|
2
|
+
import { gracely } from "gracely";
|
|
3
|
+
import { isoly } from "isoly";
|
|
4
|
+
export interface Password {
|
|
5
|
+
hash: cryptly.Password.Hash;
|
|
6
|
+
changed: isoly.DateTime;
|
|
7
|
+
}
|
|
8
|
+
export declare namespace Password {
|
|
9
|
+
interface Creatable {
|
|
10
|
+
new: string;
|
|
11
|
+
repeat: string;
|
|
12
|
+
}
|
|
13
|
+
namespace Creatable {
|
|
14
|
+
const type: import("isly/dist/cjs/object").IslyObject<Creatable, object>;
|
|
15
|
+
}
|
|
16
|
+
function create(creatable: Creatable, pepper: string | undefined): Promise<Password | gracely.Error>;
|
|
17
|
+
function salt(): string;
|
|
18
|
+
function hash(password: string, pepper: string): Promise<cryptly.Password.Hash>;
|
|
19
|
+
function verify(password: string, hash: cryptly.Password.Hash, pepper: string): Promise<boolean>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Password = void 0;
|
|
4
|
+
const cryptly_1 = require("cryptly");
|
|
5
|
+
const gracely_1 = require("gracely");
|
|
6
|
+
const isoly_1 = require("isoly");
|
|
7
|
+
const isly_1 = require("isly");
|
|
8
|
+
var Password;
|
|
9
|
+
(function (Password) {
|
|
10
|
+
let Creatable;
|
|
11
|
+
(function (Creatable) {
|
|
12
|
+
Creatable.type = isly_1.isly.object({
|
|
13
|
+
new: isly_1.isly.string(),
|
|
14
|
+
repeat: isly_1.isly.string(),
|
|
15
|
+
});
|
|
16
|
+
})(Creatable = Password.Creatable || (Password.Creatable = {}));
|
|
17
|
+
async function create(creatable, pepper) {
|
|
18
|
+
let result;
|
|
19
|
+
if (creatable.new !== creatable.repeat)
|
|
20
|
+
result = gracely_1.gracely.client.forbidden("The new password and the repeated password do not match.");
|
|
21
|
+
else if (!pepper)
|
|
22
|
+
result = gracely_1.gracely.server.backendFailure("The password cannot be created without a pepper.");
|
|
23
|
+
else
|
|
24
|
+
result = { hash: await hash(creatable.new, pepper), changed: isoly_1.isoly.DateTime.now() };
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
Password.create = create;
|
|
28
|
+
function salt() {
|
|
29
|
+
return cryptly_1.cryptly.Base64.encode(cryptly_1.cryptly.RandomValue.generate(new Uint8Array(64)).toString());
|
|
30
|
+
}
|
|
31
|
+
Password.salt = salt;
|
|
32
|
+
async function hash(password, pepper) {
|
|
33
|
+
return cryptly_1.cryptly.Password.hash(signer(pepper), password, salt());
|
|
34
|
+
}
|
|
35
|
+
Password.hash = hash;
|
|
36
|
+
async function verify(password, hash, pepper) {
|
|
37
|
+
return cryptly_1.cryptly.Password.verify(signer(pepper), hash, password);
|
|
38
|
+
}
|
|
39
|
+
Password.verify = verify;
|
|
40
|
+
function signer(pepper) {
|
|
41
|
+
return cryptly_1.cryptly.Signer.create("HMAC", "SHA-512", pepper);
|
|
42
|
+
}
|
|
43
|
+
})(Password || (exports.Password = Password = {}));
|
|
44
|
+
//# sourceMappingURL=Password.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Password.js","sourceRoot":"","sources":["../../../User/Password.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,qCAAiC;AACjC,iCAA6B;AAC7B,+BAA2B;AAM3B,IAAiB,QAAQ,CAiCxB;AAjCD,WAAiB,QAAQ;IAKxB,IAAiB,SAAS,CAKzB;IALD,WAAiB,SAAS;QACZ,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY;YAC1C,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;SACrB,CAAC,CAAA;IACH,CAAC,EALgB,SAAS,GAAT,kBAAS,KAAT,kBAAS,QAKzB;IACM,KAAK,UAAU,MAAM,CAAC,SAAoB,EAAE,MAA0B;QAC5E,IAAI,MAA0C,CAAA;QAC9C,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM;YACrC,MAAM,GAAG,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAA;aACzF,IAAI,CAAC,MAAM;YACf,MAAM,GAAG,iBAAO,CAAC,MAAM,CAAC,cAAc,CAAC,kDAAkD,CAAC,CAAA;;YAE1F,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAA;QACpF,OAAO,MAAM,CAAA;IACd,CAAC;IATqB,eAAM,SAS3B,CAAA;IACD,SAAgB,IAAI;QACnB,OAAO,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1F,CAAC;IAFe,aAAI,OAEnB,CAAA;IACM,KAAK,UAAU,IAAI,CAAC,QAAgB,EAAE,MAAc;QAC1D,OAAO,iBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,CAAC;IAFqB,aAAI,OAEzB,CAAA;IACM,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,IAA2B,EAAE,MAAc;QACzF,OAAO,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAFqB,eAAM,SAE3B,CAAA;IACD,SAAS,MAAM,CAAC,MAAc;QAC7B,OAAO,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;AACF,CAAC,EAjCgB,QAAQ,wBAAR,QAAQ,QAiCxB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { isoly } from "isoly";
|
|
2
|
+
import { Realm } from "../Realm";
|
|
3
|
+
import { Access as UserAccess } from "./Access";
|
|
4
|
+
import { Identity as UserIdentity } from "./Identity";
|
|
5
|
+
import { JWT as UserJWT } from "./JWT";
|
|
6
|
+
import { Me as UserMe } from "./Me";
|
|
7
|
+
import { Password as UserPassword } from "./Password";
|
|
8
|
+
export interface User {
|
|
9
|
+
email: string;
|
|
10
|
+
access: User.Access;
|
|
11
|
+
changed: isoly.DateTime;
|
|
12
|
+
created: isoly.DateTime;
|
|
13
|
+
password: {
|
|
14
|
+
changed: isoly.DateTime;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare namespace User {
|
|
18
|
+
export import Access = UserAccess;
|
|
19
|
+
export import Identity = UserIdentity;
|
|
20
|
+
export import JWT = UserJWT;
|
|
21
|
+
export import Me = UserMe;
|
|
22
|
+
export import Password = UserPassword;
|
|
23
|
+
function fromInvite(invite: Invite): User;
|
|
24
|
+
function toJWTPayloadCreatable(user: User, realm: Realm): User.JWT.Payload.Creatable;
|
|
25
|
+
interface Creatable {
|
|
26
|
+
invite: string;
|
|
27
|
+
password: Password.Creatable;
|
|
28
|
+
}
|
|
29
|
+
namespace Creatable {
|
|
30
|
+
const type: import("isly/dist/cjs/object").IslyObject<Creatable, object>;
|
|
31
|
+
}
|
|
32
|
+
interface Invite {
|
|
33
|
+
id: string;
|
|
34
|
+
email: string;
|
|
35
|
+
access: Access;
|
|
36
|
+
}
|
|
37
|
+
namespace Invite {
|
|
38
|
+
interface Creatable {
|
|
39
|
+
email: string;
|
|
40
|
+
access: Access;
|
|
41
|
+
}
|
|
42
|
+
namespace Creatable {
|
|
43
|
+
const type: import("isly/dist/cjs/object").IslyObject<Creatable, object>;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|