@renown/sdk 4.1.0-staging.1 → 5.0.0-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/common.d.ts +2 -1
- package/dist/src/common.d.ts.map +1 -1
- package/dist/src/common.js +2 -2
- package/dist/src/common.js.map +1 -1
- package/dist/src/utils.d.ts +5 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +16 -3
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/tsconfig.common.tsbuildinfo +1 -1
- package/dist/tsconfig.node.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
package/dist/src/common.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Issuer } from "did-jwt-vc";
|
|
2
2
|
import { type IRenown, type RenownEventEmitter, type RenownEvents, type RenownStorage, type User } from "./types.js";
|
|
3
|
+
import { type CreateBearerTokenOptions } from "./utils.js";
|
|
3
4
|
export declare class Renown implements IRenown {
|
|
4
5
|
#private;
|
|
5
6
|
constructor(store: RenownStorage, eventEmitter: RenownEventEmitter, connectId: string, baseUrl?: string);
|
|
@@ -9,6 +10,6 @@ export declare class Renown implements IRenown {
|
|
|
9
10
|
logout(): Promise<void>;
|
|
10
11
|
on<K extends keyof RenownEvents>(event: K, listener: (data: RenownEvents[K]) => void): () => void;
|
|
11
12
|
verifyBearerToken(token: string): Promise<false | import("did-jwt-vc").VerifiedCredential>;
|
|
12
|
-
createBearerToken(address: string, chainId: number, issuer: Issuer): Promise<string>;
|
|
13
|
+
createBearerToken(address: string, chainId: number, issuer: Issuer, options: CreateBearerTokenOptions): Promise<string>;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/src/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,wBAAwB,EAG9B,MAAM,YAAY,CAAC;AAEpB,qBAAa,MAAO,YAAW,OAAO;;gBAOlC,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,kBAAkB,EAChC,SAAS,EAAE,MAAM,EACjB,OAAO,SAAqB;IAY9B,IAAI,IAAI,qBAEP;IAWD,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAY9B;IAEK,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCvC,MAAM;IAKN,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAC7B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GACxC,MAAM,IAAI;IA6BP,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAI/B,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,wBAAwB;CAapC"}
|
package/dist/src/common.js
CHANGED
|
@@ -95,11 +95,11 @@ export class Renown {
|
|
|
95
95
|
async verifyBearerToken(token) {
|
|
96
96
|
return verifyAuthBearerToken(token);
|
|
97
97
|
}
|
|
98
|
-
async createBearerToken(address, chainId, issuer) {
|
|
98
|
+
async createBearerToken(address, chainId, issuer, options) {
|
|
99
99
|
if (!this.user) {
|
|
100
100
|
throw new Error("User not found");
|
|
101
101
|
}
|
|
102
|
-
return createAuthBearerToken(chainId, this.#connectId, address, issuer);
|
|
102
|
+
return createAuthBearerToken(chainId, this.#connectId, address, issuer, options);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
//# sourceMappingURL=common.js.map
|
package/dist/src/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AASpD,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -5,9 +5,13 @@ export type PKHDid = {
|
|
|
5
5
|
chainId: number;
|
|
6
6
|
address: `0x${string}`;
|
|
7
7
|
};
|
|
8
|
+
export interface CreateBearerTokenOptions {
|
|
9
|
+
expiresIn?: number;
|
|
10
|
+
aud?: string;
|
|
11
|
+
}
|
|
8
12
|
export declare function parsePkhDid(did: string): PKHDid;
|
|
9
13
|
export declare function verifyAuthBearerToken(jwt: string): Promise<false | import("did-jwt-vc").VerifiedCredential>;
|
|
10
|
-
export declare function createAuthBearerToken(chainId: number, networkId: string, address: string, issuer: Issuer): Promise<string>;
|
|
14
|
+
export declare function createAuthBearerToken(chainId: number, networkId: string, address: string, issuer: Issuer, options?: CreateBearerTokenOptions): Promise<string>;
|
|
11
15
|
export declare const getResolver: () => Resolver;
|
|
12
16
|
export declare function getIssuer(privateKey: Uint8Array): Promise<Issuer>;
|
|
13
17
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,MAAM,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqB/C;AAED,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,MAAM,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqB/C;AAED,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,4DAmBtD;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,wBAAwB,mBAoBnC;AACD,eAAO,MAAM,WAAW,gBAOvB,CAAC;AAEF,wBAAsB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvE"}
|
package/dist/src/utils.js
CHANGED
|
@@ -24,7 +24,17 @@ export function parsePkhDid(did) {
|
|
|
24
24
|
}
|
|
25
25
|
export async function verifyAuthBearerToken(jwt) {
|
|
26
26
|
try {
|
|
27
|
-
const
|
|
27
|
+
const now = parseInt(String(Date.now() / 1000));
|
|
28
|
+
const verified = await verifyCredential(jwt, getResolver(), {
|
|
29
|
+
policies: {
|
|
30
|
+
now: parseInt(String(Date.now() / 1000)),
|
|
31
|
+
expirationDate: true,
|
|
32
|
+
issuanceDate: true,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
if (verified.payload.exp && verified.payload.exp < now) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
28
38
|
return verified;
|
|
29
39
|
}
|
|
30
40
|
catch (e) {
|
|
@@ -32,7 +42,7 @@ export async function verifyAuthBearerToken(jwt) {
|
|
|
32
42
|
return false;
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
|
-
export async function createAuthBearerToken(chainId, networkId, address, issuer) {
|
|
45
|
+
export async function createAuthBearerToken(chainId, networkId, address, issuer, options) {
|
|
36
46
|
const vcPayload = {
|
|
37
47
|
sub: issuer.did,
|
|
38
48
|
vc: {
|
|
@@ -44,8 +54,11 @@ export async function createAuthBearerToken(chainId, networkId, address, issuer)
|
|
|
44
54
|
address,
|
|
45
55
|
},
|
|
46
56
|
},
|
|
57
|
+
aud: options?.aud,
|
|
47
58
|
};
|
|
48
|
-
const jwt = await createVerifiableCredentialJwt(vcPayload, issuer
|
|
59
|
+
const jwt = await createVerifiableCredentialJwt(vcPayload, issuer, {
|
|
60
|
+
expiresIn: options?.expiresIn,
|
|
61
|
+
});
|
|
49
62
|
return jwt;
|
|
50
63
|
}
|
|
51
64
|
export const getResolver = () => {
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,GAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|