@renown/sdk 6.2.3-dev.23 → 6.2.3-dev.25
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/{browser-key-storage-e3RQsnLS.js → browser-key-storage-wjSwTnhs.js} +3 -2
- package/dist/browser-key-storage-wjSwTnhs.js.map +1 -0
- package/dist/{constants-BexAR53F.js → constants-DVOF17NB.js} +1 -1
- package/dist/{constants-BexAR53F.js.map → constants-DVOF17NB.js.map} +1 -1
- package/dist/crypto.d.ts +4 -3
- package/dist/crypto.js +2 -2
- package/dist/{index-BLIpkdF7.d.ts → index-CGTiUojp.d.ts} +11 -20
- package/dist/index-CGTiUojp.d.ts.map +1 -0
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -7
- package/dist/index.js.map +1 -1
- package/dist/local-credential-verifier-BC4HS01T.js +429 -0
- package/dist/local-credential-verifier-BC4HS01T.js.map +1 -0
- package/dist/{meta-D-5kvwx8.js → meta-4NmijIbE.js} +2 -2
- package/dist/{meta-D-5kvwx8.js.map → meta-4NmijIbE.js.map} +1 -1
- package/dist/{meta-CHgd9Qd0.js → meta-B2fHYlPD.js} +2 -2
- package/dist/{meta-CHgd9Qd0.js.map → meta-B2fHYlPD.js.map} +1 -1
- package/dist/{meta-bV7L-1yb.d.ts → meta-CpBbgZnu.d.ts} +3 -3
- package/dist/meta-CpBbgZnu.d.ts.map +1 -0
- package/dist/{meta-BesJP74N.d.ts → meta-DlON7DmF.d.ts} +3 -3
- package/dist/meta-DlON7DmF.d.ts.map +1 -0
- package/dist/node.d.ts +42 -25
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +23 -7
- package/dist/node.js.map +1 -1
- package/dist/{signer-DrjINLqt.js → signer-GzTlZLjR.js} +38 -106
- package/dist/signer-GzTlZLjR.js.map +1 -0
- package/dist/{local-credential-verifier-CU8hmFlR.js → signer-trust-C6UJAsNJ.js} +120 -421
- package/dist/signer-trust-C6UJAsNJ.js.map +1 -0
- package/dist/signer-trust-DstQutcf.d.ts +53 -0
- package/dist/signer-trust-DstQutcf.d.ts.map +1 -0
- package/dist/trust.d.ts +3 -0
- package/dist/trust.js +2 -0
- package/dist/{types-DInveFLz.d.ts → types-Bsve10Ny.d.ts} +3 -3
- package/dist/types-Bsve10Ny.d.ts.map +1 -0
- package/dist/{types-C-hJrsQg.d.ts → types-CHIgkzKb.d.ts} +3 -3
- package/dist/types-CHIgkzKb.d.ts.map +1 -0
- package/dist/{types-BGQKPoUr.d.ts → types-DOTk0z2D.d.ts} +16 -6
- package/dist/types-DOTk0z2D.d.ts.map +1 -0
- package/dist/{types-C_qc_62W.js → types-Dwy6khXb.js} +1 -1
- package/dist/{types-C_qc_62W.js.map → types-Dwy6khXb.js.map} +1 -1
- package/dist/{utils-DtWREYeO.d.ts → utils-C_2VV8CS.d.ts} +5 -12
- package/dist/utils-C_2VV8CS.d.ts.map +1 -0
- package/dist/utils-DLQ5VVqT.js +75 -0
- package/dist/utils-DLQ5VVqT.js.map +1 -0
- package/dist/wallet/index.d.ts +5 -5
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/index.js +1 -1
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/mock/factory.d.ts +4 -5
- package/dist/wallet/mock/factory.d.ts.map +1 -1
- package/dist/wallet/mock/factory.js +1 -1
- package/dist/wallet/mock/factory.js.map +1 -1
- package/dist/wallet/mock/index.d.ts +5 -5
- package/dist/wallet/mock/index.d.ts.map +1 -1
- package/dist/wallet/mock/index.js +1 -1
- package/dist/wallet/mock/index.js.map +1 -1
- package/dist/wallet/privy/factory.d.ts +9 -11
- package/dist/wallet/privy/factory.d.ts.map +1 -1
- package/dist/wallet/privy/factory.js +2 -2
- package/dist/wallet/privy/factory.js.map +1 -1
- package/dist/wallet/privy/index.d.ts +5 -5
- package/dist/wallet/privy/index.d.ts.map +1 -1
- package/dist/wallet/privy/index.js +1 -1
- package/dist/wallet/privy/index.js.map +1 -1
- package/dist/wallet/rainbow/factory.d.ts +5 -4
- package/dist/wallet/rainbow/factory.d.ts.map +1 -1
- package/dist/wallet/rainbow/factory.js +2 -2
- package/dist/wallet/rainbow/factory.js.map +1 -1
- package/dist/wallet/rainbow/index.d.ts +5 -5
- package/dist/wallet/rainbow/index.d.ts.map +1 -1
- package/dist/wallet/rainbow/index.js +1 -1
- package/dist/wallet/rainbow/index.js.map +1 -1
- package/package.json +11 -4
- package/dist/browser-key-storage-e3RQsnLS.js.map +0 -1
- package/dist/index-BLIpkdF7.d.ts.map +0 -1
- package/dist/local-credential-verifier-CU8hmFlR.js.map +0 -1
- package/dist/meta-BesJP74N.d.ts.map +0 -1
- package/dist/meta-bV7L-1yb.d.ts.map +0 -1
- package/dist/signer-DrjINLqt.js.map +0 -1
- package/dist/types-BGQKPoUr.d.ts.map +0 -1
- package/dist/types-C-hJrsQg.d.ts.map +0 -1
- package/dist/types-DInveFLz.d.ts.map +0 -1
- package/dist/utils-DtWREYeO.d.ts.map +0 -1
|
@@ -8,7 +8,8 @@ var BrowserKeyStorage = class BrowserKeyStorage {
|
|
|
8
8
|
this.#db = db;
|
|
9
9
|
}
|
|
10
10
|
static async create(dbName = DEFAULT_DB_NAME) {
|
|
11
|
-
|
|
11
|
+
const db = await BrowserKeyStorage.#openDatabase(dbName);
|
|
12
|
+
return new BrowserKeyStorage(db);
|
|
12
13
|
}
|
|
13
14
|
static #openDatabase(dbName) {
|
|
14
15
|
return new Promise((resolve, reject) => {
|
|
@@ -65,4 +66,4 @@ var BrowserKeyStorage = class BrowserKeyStorage {
|
|
|
65
66
|
//#endregion
|
|
66
67
|
export { BrowserKeyStorage as t };
|
|
67
68
|
|
|
68
|
-
//# sourceMappingURL=browser-key-storage-
|
|
69
|
+
//# sourceMappingURL=browser-key-storage-wjSwTnhs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-key-storage-wjSwTnhs.js","names":[],"sources":["../src/crypto/browser-key-storage.ts"],"sourcesContent":["import type { JsonWebKeyPairStorage, JwkKeyPair } from \"./types.js\";\n\nconst DEFAULT_DB_NAME = \"renownKeyDB\";\nconst STORE_NAME = \"keyPairs\";\nconst KEY = \"keyPair\";\n\nexport class BrowserKeyStorage implements JsonWebKeyPairStorage {\n #db: IDBDatabase;\n\n constructor(db: IDBDatabase) {\n this.#db = db;\n }\n\n static async create(\n dbName: string = DEFAULT_DB_NAME,\n ): Promise<BrowserKeyStorage> {\n const db = await BrowserKeyStorage.#openDatabase(dbName);\n return new BrowserKeyStorage(db);\n }\n\n static #openDatabase(dbName: string): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n const req = indexedDB.open(dbName);\n\n req.onupgradeneeded = (event) => {\n const db = (event.target as IDBOpenDBRequest).result;\n if (!db.objectStoreNames.contains(STORE_NAME)) {\n db.createObjectStore(STORE_NAME);\n }\n };\n\n req.onsuccess = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(STORE_NAME)) {\n const currentVersion = db.version;\n db.close();\n const upgradeReq = indexedDB.open(dbName, currentVersion + 1);\n upgradeReq.onupgradeneeded = (event) => {\n const upgradeDb = (event.target as IDBOpenDBRequest).result;\n if (!upgradeDb.objectStoreNames.contains(STORE_NAME)) {\n upgradeDb.createObjectStore(STORE_NAME);\n }\n };\n upgradeReq.onsuccess = () => resolve(upgradeReq.result);\n upgradeReq.onerror = () => reject(upgradeReq.error as Error);\n } else {\n resolve(db);\n }\n };\n\n req.onerror = () => reject(req.error as Error);\n });\n }\n\n #useStore(mode: IDBTransactionMode = \"readwrite\") {\n const transaction = this.#db.transaction(STORE_NAME, mode);\n return transaction.objectStore(STORE_NAME);\n }\n\n async saveKeyPair(keyPair: JwkKeyPair) {\n const store = this.#useStore();\n const request = store.put(keyPair, KEY);\n return new Promise<void>((resolve, reject) => {\n request.onsuccess = () => resolve();\n request.onerror = () => reject(new Error(\"Failed to save key pair\"));\n });\n }\n\n async loadKeyPair(): Promise<JwkKeyPair | undefined> {\n const store = this.#useStore(\"readonly\");\n const request = store.get(KEY);\n\n return new Promise<JwkKeyPair | undefined>((resolve, reject) => {\n request.onsuccess = () => {\n const keyPair = request.result as JwkKeyPair | undefined;\n resolve(keyPair);\n };\n request.onerror = () => reject(new Error(\"Failed to load key pair\"));\n });\n }\n\n async removeKeyPair(): Promise<void> {\n const store = this.#useStore();\n const request = store.delete(KEY);\n\n return new Promise<void>((resolve, reject) => {\n request.onsuccess = () => resolve();\n request.onerror = () => reject(new Error(\"Failed to remove key pair\"));\n });\n }\n}\n"],"mappings":";AAEA,MAAM,kBAAkB;AACxB,MAAM,aAAa;AACnB,MAAM,MAAM;AAEZ,IAAa,oBAAb,MAAa,kBAAmD;CAC9D;CAEA,YAAY,IAAiB;EAC3B,KAAK,MAAM;CACb;CAEA,aAAa,OACX,SAAiB,iBACW;EAC5B,MAAM,KAAK,MAAM,kBAAkB,cAAc,MAAM;EACvD,OAAO,IAAI,kBAAkB,EAAE;CACjC;CAEA,OAAO,cAAc,QAAsC;EACzD,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,MAAM,MAAM,UAAU,KAAK,MAAM;GAEjC,IAAI,mBAAmB,UAAU;IAC/B,MAAM,KAAM,MAAM,OAA4B;IAC9C,IAAI,CAAC,GAAG,iBAAiB,SAAS,UAAU,GAC1C,GAAG,kBAAkB,UAAU;GAEnC;GAEA,IAAI,kBAAkB;IACpB,MAAM,KAAK,IAAI;IACf,IAAI,CAAC,GAAG,iBAAiB,SAAS,UAAU,GAAG;KAC7C,MAAM,iBAAiB,GAAG;KAC1B,GAAG,MAAM;KACT,MAAM,aAAa,UAAU,KAAK,QAAQ,iBAAiB,CAAC;KAC5D,WAAW,mBAAmB,UAAU;MACtC,MAAM,YAAa,MAAM,OAA4B;MACrD,IAAI,CAAC,UAAU,iBAAiB,SAAS,UAAU,GACjD,UAAU,kBAAkB,UAAU;KAE1C;KACA,WAAW,kBAAkB,QAAQ,WAAW,MAAM;KACtD,WAAW,gBAAgB,OAAO,WAAW,KAAc;IAC7D,OACE,QAAQ,EAAE;GAEd;GAEA,IAAI,gBAAgB,OAAO,IAAI,KAAc;EAC/C,CAAC;CACH;CAEA,UAAU,OAA2B,aAAa;EAEhD,OADoB,KAAK,IAAI,YAAY,YAAY,IACpC,CAAC,CAAC,YAAY,UAAU;CAC3C;CAEA,MAAM,YAAY,SAAqB;EAErC,MAAM,UADQ,KAAK,UACC,CAAC,CAAC,IAAI,SAAS,GAAG;EACtC,OAAO,IAAI,SAAe,SAAS,WAAW;GAC5C,QAAQ,kBAAkB,QAAQ;GAClC,QAAQ,gBAAgB,uBAAO,IAAI,MAAM,yBAAyB,CAAC;EACrE,CAAC;CACH;CAEA,MAAM,cAA+C;EAEnD,MAAM,UADQ,KAAK,UAAU,UACT,CAAC,CAAC,IAAI,GAAG;EAE7B,OAAO,IAAI,SAAiC,SAAS,WAAW;GAC9D,QAAQ,kBAAkB;IACxB,MAAM,UAAU,QAAQ;IACxB,QAAQ,OAAO;GACjB;GACA,QAAQ,gBAAgB,uBAAO,IAAI,MAAM,yBAAyB,CAAC;EACrE,CAAC;CACH;CAEA,MAAM,gBAA+B;EAEnC,MAAM,UADQ,KAAK,UACC,CAAC,CAAC,OAAO,GAAG;EAEhC,OAAO,IAAI,SAAe,SAAS,WAAW;GAC5C,QAAQ,kBAAkB,QAAQ;GAClC,QAAQ,gBAAgB,uBAAO,IAAI,MAAM,2BAA2B,CAAC;EACvE,CAAC;CACH;AACF"}
|
|
@@ -79,4 +79,4 @@ const CREDENTIAL_TYPES = {
|
|
|
79
79
|
//#endregion
|
|
80
80
|
export { DEFAULT_RENOWN_NETWORK_ID as a, ISSUER_TYPE as c, VERIFIABLE_CREDENTIAL_EIP712_TYPE as d, DEFAULT_RENOWN_CHAIN_ID as i, RENOWN_READ_MODEL_SUBGRAPH as l, CREDENTIAL_SUBJECT_TYPE as n, DEFAULT_RENOWN_URL as o, CREDENTIAL_TYPES as r, DOMAIN_TYPE as s, CREDENTIAL_SCHEMA_EIP712_TYPE as t, RENOWN_SESSION_COOKIE as u };
|
|
81
81
|
|
|
82
|
-
//# sourceMappingURL=constants-
|
|
82
|
+
//# sourceMappingURL=constants-DVOF17NB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-DVOF17NB.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const DEFAULT_RENOWN_URL = \"https://www.renown.id\";\nexport const DEFAULT_RENOWN_NETWORK_ID = \"eip155\";\nexport const DEFAULT_RENOWN_CHAIN_ID = \"1\";\n\n/** Default cookie name for a server-readable Renown session (bearer token). */\nexport const RENOWN_SESSION_COOKIE = \"renown_session\";\n\n/** Subgraph a Switchboard exposes the renown read model under; the queries in\n * `switchboard.ts` are written against it. */\nexport const RENOWN_READ_MODEL_SUBGRAPH = \"renown-read-model\";\n\nexport const DOMAIN_TYPE = [\n { name: \"version\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n] as const;\n\nexport const VERIFIABLE_CREDENTIAL_EIP712_TYPE = [\n { name: \"@context\", type: \"string[]\" },\n { name: \"type\", type: \"string[]\" },\n { name: \"id\", type: \"string\" },\n { name: \"issuer\", type: \"Issuer\" },\n { name: \"credentialSubject\", type: \"CredentialSubject\" },\n { name: \"credentialSchema\", type: \"CredentialSchema\" },\n { name: \"issuanceDate\", type: \"string\" },\n { name: \"expirationDate\", type: \"string\" },\n] as const;\n\nexport const CREDENTIAL_SCHEMA_EIP712_TYPE = [\n { name: \"id\", type: \"string\" },\n { name: \"type\", type: \"string\" },\n] as const;\n\nexport const CREDENTIAL_SUBJECT_TYPE = [\n { name: \"app\", type: \"string\" },\n { name: \"id\", type: \"string\" },\n] as const;\n\nexport const ISSUER_TYPE = [\n { name: \"id\", type: \"string\" },\n { name: \"ethereumAddress\", type: \"string\" },\n] as const;\n\nexport const CREDENTIAL_TYPES = {\n EIP712Domain: DOMAIN_TYPE,\n VerifiableCredential: VERIFIABLE_CREDENTIAL_EIP712_TYPE,\n CredentialSchema: CREDENTIAL_SCHEMA_EIP712_TYPE,\n CredentialSubject: CREDENTIAL_SUBJECT_TYPE,\n Issuer: ISSUER_TYPE,\n} as const;\n"],"mappings":";AAAA,MAAa,qBAAqB;AAClC,MAAa,4BAA4B;AACzC,MAAa,0BAA0B;;AAGvC,MAAa,wBAAwB;;;AAIrC,MAAa,6BAA6B;AAE1C,MAAa,cAAc,CACzB;CAAE,MAAM;CAAW,MAAM;AAAS,GAClC;CAAE,MAAM;CAAW,MAAM;AAAU,CACrC;AAEA,MAAa,oCAAoC;CAC/C;EAAE,MAAM;EAAY,MAAM;CAAW;CACrC;EAAE,MAAM;EAAQ,MAAM;CAAW;CACjC;EAAE,MAAM;EAAM,MAAM;CAAS;CAC7B;EAAE,MAAM;EAAU,MAAM;CAAS;CACjC;EAAE,MAAM;EAAqB,MAAM;CAAoB;CACvD;EAAE,MAAM;EAAoB,MAAM;CAAmB;CACrD;EAAE,MAAM;EAAgB,MAAM;CAAS;CACvC;EAAE,MAAM;EAAkB,MAAM;CAAS;AAC3C;AAEA,MAAa,gCAAgC,CAC3C;CAAE,MAAM;CAAM,MAAM;AAAS,GAC7B;CAAE,MAAM;CAAQ,MAAM;AAAS,CACjC;AAEA,MAAa,0BAA0B,CACrC;CAAE,MAAM;CAAO,MAAM;AAAS,GAC9B;CAAE,MAAM;CAAM,MAAM;AAAS,CAC/B;AAEA,MAAa,cAAc,CACzB;CAAE,MAAM;CAAM,MAAM;AAAS,GAC7B;CAAE,MAAM;CAAmB,MAAM;AAAS,CAC5C;AAEA,MAAa,mBAAmB;CAC9B,cAAc;CACd,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;CACnB,QAAQ;AACV"}
|
package/dist/crypto.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { a as JwkKeyPair, i as JsonWebKeyPairStorage, n as IConnectCrypto, r as IRenownCrypto, t as DID } from "./types-
|
|
2
|
-
import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-
|
|
3
|
-
export { BrowserKeyStorage, ConnectCrypto, DID, IConnectCrypto, IRenownCrypto, JsonWebKeyPairStorage, JwkKeyPair, MemoryKeyStorage, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, createSignatureVerifier, extractResultingHashFromSignature, parseSignatureHashField, signatureHasResultingHash };
|
|
1
|
+
import { a as JwkKeyPair, i as JsonWebKeyPairStorage, n as IConnectCrypto, r as IRenownCrypto, t as DID } from "./types-DOTk0z2D.js";
|
|
2
|
+
import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-CGTiUojp.js";
|
|
3
|
+
export { BrowserKeyStorage, ConnectCrypto, type DID, type IConnectCrypto, type IRenownCrypto, type JsonWebKeyPairStorage, type JwkKeyPair, MemoryKeyStorage, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, createSignatureVerifier, extractResultingHashFromSignature, parseSignatureHashField, signatureHasResultingHash };
|
|
4
|
+
export {};
|
package/dist/crypto.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as signatureHasResultingHash, c as ConnectCrypto, i as parseSignatureHashField, l as RenownCrypto, n as createSignatureVerifier, o as MemoryKeyStorage, r as extractResultingHashFromSignature, s as RenownCryptoBuilder, t as RenownCryptoSigner } from "./signer-
|
|
2
|
-
import { t as BrowserKeyStorage } from "./browser-key-storage-
|
|
1
|
+
import { a as signatureHasResultingHash, c as ConnectCrypto, i as parseSignatureHashField, l as RenownCrypto, n as createSignatureVerifier, o as MemoryKeyStorage, r as extractResultingHashFromSignature, s as RenownCryptoBuilder, t as RenownCryptoSigner } from "./signer-GzTlZLjR.js";
|
|
2
|
+
import { t as BrowserKeyStorage } from "./browser-key-storage-wjSwTnhs.js";
|
|
3
3
|
export { BrowserKeyStorage, ConnectCrypto, MemoryKeyStorage, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, createSignatureVerifier, extractResultingHashFromSignature, parseSignatureHashField, signatureHasResultingHash };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { a as JwkKeyPair, i as JsonWebKeyPairStorage, l as CreateBearerTokenOptions, r as IRenownCrypto, t as DID, w as Issuer } from "./types-
|
|
2
|
-
import { Action, AppActionSigner, ISigner, Signature, SignatureVerificationHandler, UserActionSigner } from "@powerhousedao/shared/document-model";
|
|
3
|
-
|
|
1
|
+
import { a as JwkKeyPair, i as JsonWebKeyPairStorage, l as CreateBearerTokenOptions, r as IRenownCrypto, t as DID, w as Issuer } from "./types-DOTk0z2D.js";
|
|
2
|
+
import { Action, ActionSigningTarget, AppActionSigner, ISigner, Signature, SignatureVerificationHandler, UserActionSigner } from "@powerhousedao/shared/document-model";
|
|
4
3
|
//#region src/crypto/renown-crypto.d.ts
|
|
5
4
|
declare class RenownCrypto implements IRenownCrypto {
|
|
6
5
|
#private;
|
|
@@ -57,26 +56,17 @@ declare class RenownCryptoSigner implements ISigner {
|
|
|
57
56
|
get publicKey(): CryptoKey;
|
|
58
57
|
sign(data: Uint8Array): Promise<Uint8Array>;
|
|
59
58
|
verify(data: Uint8Array, signature: Uint8Array): Promise<void>;
|
|
60
|
-
signAction(action: Action, abortSignal?: AbortSignal): Promise<Signature>;
|
|
59
|
+
signAction(action: Action, target: ActionSigningTarget, abortSignal?: AbortSignal): Promise<Signature>;
|
|
61
60
|
/**
|
|
62
|
-
* Signs an action including a predicted resulting state hash
|
|
63
|
-
*
|
|
64
|
-
* The resulting hash is packed into the signature tuple's 4th element (index 3)
|
|
65
|
-
* using the format: `${prevStateHash}:${resultingStateHash}`
|
|
66
|
-
*
|
|
67
|
-
* This allows offline verification of documents without reducer logic:
|
|
68
|
-
* - Verifier can check that the signature is valid for the claimed resulting state
|
|
69
|
-
* - Verifier can compare claimed resulting state to actual operation.hash
|
|
70
|
-
*
|
|
71
|
-
* @param action - The action to sign
|
|
72
|
-
* @param resultingStateHash - The predicted hash of document state AFTER this action runs
|
|
73
|
-
* @param abortSignal - Optional abort signal
|
|
74
|
-
* @returns A Signature tuple with the resulting hash encoded in element [3]
|
|
61
|
+
* Signs an action including a predicted resulting state hash, packed into
|
|
62
|
+
* element [3] as `${prevStateHash}:${resultingStateHash}`.
|
|
75
63
|
*/
|
|
76
|
-
signActionWithResultingState(action: Action, resultingStateHash: string, abortSignal?: AbortSignal): Promise<Signature>;
|
|
64
|
+
signActionWithResultingState(action: Action, target: ActionSigningTarget, resultingStateHash: string, abortSignal?: AbortSignal): Promise<Signature>;
|
|
77
65
|
/**
|
|
78
|
-
*
|
|
66
|
+
* The pre-v2 tuple, over scope, type and input only. For peers and tests
|
|
67
|
+
* that still need one; it binds neither the document nor the signer.
|
|
79
68
|
*/
|
|
69
|
+
signActionLegacy(action: Action, abortSignal?: AbortSignal): Promise<Signature>;
|
|
80
70
|
private _signAction;
|
|
81
71
|
private hashAction;
|
|
82
72
|
private buildSignatureMessage;
|
|
@@ -128,4 +118,5 @@ declare class BrowserKeyStorage implements JsonWebKeyPairStorage {
|
|
|
128
118
|
}
|
|
129
119
|
//#endregion
|
|
130
120
|
export { parseSignatureHashField as a, RenownCryptoBuilder as c, extractResultingHashFromSignature as i, ConnectCrypto as l, RenownCryptoSigner as n, signatureHasResultingHash as o, createSignatureVerifier as r, MemoryKeyStorage as s, BrowserKeyStorage as t, RenownCrypto as u };
|
|
131
|
-
|
|
121
|
+
export {};
|
|
122
|
+
//# sourceMappingURL=index-CGTiUojp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CGTiUojp.d.ts","names":[],"sources":["../src/crypto/renown-crypto.ts","../src/crypto/renown-crypto-builder.ts","../src/crypto/memory-key-storage.ts","../src/crypto/signer.ts","../src/crypto/browser-key-storage.ts"],"mappings":";;;cAUa,wBAAwB;;WAK1B,KAAK;;WAEL;SAEF,WAAS;SACT;;;;;EAEP,YACE,gBAAgB,uBAChB,QAAQ,cACR,SAAS,eACT,KAAK,KACL;MASE,aAAS;EAIP,eACJ,6BACA,UAAU,2BACT;EAUG,aAAa;EAQb,KAAK,MAAM,sBAAsB,QAAQ;EAazC,OAAO,MAAM,YAAY,WAAW,aAAa;MASnD,UAAU;;;;;cAiBH,sBAAsB;;;cC3FtB;;UACH;UACA;UACA;EAER,mBAAmB,SAAS;EAK5B,iBAAiB,QAAQ;EAOzB,YAAY;EAKN,SAAS,QAAQ;;;;cC7BZ,4BAA4B;UAC/B;EAER,YAAY,UAAU;EAItB,eAAW,QAAA;EAIX,YAAY,SAAS,aAAU;EAK/B,iBAAa;;;;cCIF,8BAA8B;mBAItB;mBACA;EACV,OAAO;WALP,KAAK;EAEd,YACmB,QAAQ,eACR,iBACV,OAAO;MAQZ,aAAS;EAIP,KAAK,MAAM,aAAa,QAAQ;EAIhC,OAAO,MAAM,YAAY,WAAW,aAAa;EAOjD,WACJ,QAAQ,QACR,QAAQ,qBACR,cAAc,cACb,QAAQ;;;;;EASL,6BACJ,QAAQ,QACR,QAAQ,qBACR,4BACA,cAAc,cACb,QAAQ;;;;;EAUL,iBACJ,QAAQ,QACR,cAAc,cACb,QAAQ;UAqBG;UAyBA;UAYN;UASA;UAQA;;;;;;iBAcM,wBACd,6BACC;;;;;;;;;;;iBAgNa,wBAAwB;EACtC;EACA;;;;;;;;iBAuBc,kCACd,WAAW;;;;;;;iBAaG,0BAA0B,WAAW;;;cC9ZxC,6BAA6B;;EAGxC,YAAY,IAAI;SAIH,OACX,kBACC,QAAQ;EA4CL,YAAY,SAAS,aAAU;EAS/B,eAAe,QAAQ;EAavB,iBAAiB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A as LoginStatus, B as Service, C as InternalUser, Ct as
|
|
2
|
-
import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-
|
|
3
|
-
import { C as
|
|
4
|
-
|
|
1
|
+
import { A as LoginStatus, B as Service, C as InternalUser, Ct as DEFAULT_RENOWN_URL, D as JWTVerifyPolicies, Dt as RENOWN_SESSION_COOKIE, E as JWTVerified, Et as RENOWN_READ_MODEL_SUBGRAPH, F as RenownEventEmitter, G as User, H as SignInParams, I as RenownEvents, J as VerificationMethod, K as UserActionSigner, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, O as JsonWebKey, Ot as VERIFIABLE_CREDENTIAL_EIP712_TYPE, P as Proof, Q as BaseStorage, R as RenownStorage, S as IVerifiableCredential, St as DEFAULT_RENOWN_NETWORK_ID, T as JWTPayload, Tt as ISSUER_TYPE, U as Signer, V as ServiceEndpoint, W as Unsubscribe, X as VerifiedJWT, Y as VerifiedCredential, Z as W3CCredential, _ as IPowerhouseCredentialSubject, _t as SwitchboardSource, a as JwkKeyPair, at as SignCredentialTypedData, b as IRenown, bt as CREDENTIAL_TYPES, c as ConditionWeightedThreshold, ct as buildAndSignCredential, d as DIDDocument, dt as verifyAuthCredential, et as IEventEmitter, f as DIDDocumentMetadata, ft as verifyCredentialSignature, g as IAuthCredentialSubject, gt as SwitchboardRequestFn, h as EcdsaSignature, ht as SwitchboardClient, i as JsonWebKeyPairStorage, it as FetchDelegationCredentialOptions, j as PKHDid, k as KeyCapabilitySection, l as CreateBearerTokenOptions, lt as fetchDelegationCredential, m as DIDResolutionResult, mt as MissingSwitchboardError, n as IConnectCrypto, nt as CredentialDomain, o as AuthVerifiableCredential, ot as VerifiedAuthCredential, p as DIDResolutionMetadata, pt as verifyDelegationProof, q as Verifiable, r as IRenownCrypto, rt as CredentialMessage, s as AuthVerifiedCredential, st as VerifyAuthCredentialOptions, t as DID, tt as BuildCredentialParams, u as CredentialStatus, ut as recoverCredentialSigner, v as IPowerhouseIssuerType, vt as CREDENTIAL_SCHEMA_EIP712_TYPE, w as Issuer, wt as DOMAIN_TYPE, x as ISigner, xt as DEFAULT_RENOWN_CHAIN_ID, y as IProof, yt as CREDENTIAL_SUBJECT_TYPE, z as RenownStorageMap } from "./types-DOTk0z2D.js";
|
|
2
|
+
import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-CGTiUojp.js";
|
|
3
|
+
import { C as RenownMemoryStorage, S as Renown, _ as CredentialCheck, a as getResolver, b as BaseRenownBuilder, d as RenownSessionProfile, g as fetchRenownProfile, i as createAuthBearerToken, n as VerifyAuthBearerTokenOptions, o as parsePkhDid, r as assertIsAuthCredential, s as verifyAuthBearerToken, t as ILogger, u as RenownSessionCookie, v as LocalCredentialVerifierOptions, x as RenownBuilderOptions, y as createLocalCredentialVerifier } from "./utils-C_2VV8CS.js";
|
|
4
|
+
import { a as ResolveSwitchboardEndpointOptions, i as createRenownTrustPolicy, n as RenownTrustPolicy, o as resolveSwitchboardEndpoint, r as RenownTrustPolicyOptions, t as RenownOwnSigner } from "./signer-trust-DstQutcf.js";
|
|
5
5
|
//#region src/event/event.browser.d.ts
|
|
6
6
|
declare class BrowserEventEmitter<Events extends Record<string, unknown>> implements IEventEmitter<Events> {
|
|
7
7
|
#private;
|
|
@@ -20,10 +20,10 @@ declare class BrowserStorage<T extends Record<string, unknown> = Record<string,
|
|
|
20
20
|
}
|
|
21
21
|
//#endregion
|
|
22
22
|
//#region src/init.browser.d.ts
|
|
23
|
-
declare class BrowserRenownStorage extends BrowserStorage<RenownStorageMap> {}
|
|
24
|
-
declare class BrowserRenownEventEmitter extends BrowserEventEmitter<RenownEvents> {}
|
|
25
|
-
declare function readPersistedUser(basename?: string): User | undefined;
|
|
26
|
-
interface BrowserRenownBuilderOptions {
|
|
23
|
+
export declare class BrowserRenownStorage extends BrowserStorage<RenownStorageMap> {}
|
|
24
|
+
export declare class BrowserRenownEventEmitter extends BrowserEventEmitter<RenownEvents> {}
|
|
25
|
+
export declare function readPersistedUser(basename?: string): User | undefined;
|
|
26
|
+
export interface BrowserRenownBuilderOptions {
|
|
27
27
|
/** Base path for storage keys (e.g., "/app" for multi-tenant apps) */
|
|
28
28
|
basename?: string;
|
|
29
29
|
/** Renown server URL. Defaults to https://www.renown.id */
|
|
@@ -41,7 +41,7 @@ interface BrowserRenownBuilderOptions {
|
|
|
41
41
|
* Browser-specific Renown builder with pre-configured defaults.
|
|
42
42
|
* Uses localStorage for user data and IndexedDB for key storage.
|
|
43
43
|
*/
|
|
44
|
-
declare class RenownBuilder extends BaseRenownBuilder {
|
|
44
|
+
export declare class RenownBuilder extends BaseRenownBuilder {
|
|
45
45
|
#private;
|
|
46
46
|
constructor(appName: string, options?: BrowserRenownBuilderOptions);
|
|
47
47
|
/**
|
|
@@ -66,7 +66,8 @@ declare class RenownBuilder extends BaseRenownBuilder {
|
|
|
66
66
|
* @param options - Browser-specific configuration options
|
|
67
67
|
* @returns Initialized Renown instance
|
|
68
68
|
*/
|
|
69
|
-
declare function initRenown(appName: string, options?: BrowserRenownBuilderOptions): Promise<Renown>;
|
|
69
|
+
export declare function initRenown(appName: string, options?: BrowserRenownBuilderOptions): Promise<Renown>;
|
|
70
70
|
//#endregion
|
|
71
|
-
export { AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserKeyStorage,
|
|
71
|
+
export { AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserKeyStorage, BuildCredentialParams, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConditionWeightedThreshold, ConnectCrypto, CreateBearerTokenOptions, CredentialCheck, CredentialDomain, CredentialMessage, CredentialStatus, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_URL, type DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, FetchDelegationCredentialOptions, IAuthCredentialSubject, type IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, type IRenownCrypto, ISSUER_TYPE, type ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, type JsonWebKeyPairStorage, type JwkKeyPair, KeyCapabilitySection, LocalCredentialVerifierOptions, LoginStatus, MemoryKeyStorage, MissingSwitchboardError, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownOwnSigner, RenownProfile, type RenownSessionCookie, type RenownSessionProfile, RenownStorage, RenownStorageMap, RenownTrustPolicy, RenownTrustPolicyOptions, ResolveSwitchboardEndpointOptions, Service, ServiceEndpoint, SignCredentialTypedData, SignInParams, Signer, SwitchboardClient, SwitchboardRequestFn, SwitchboardSource, Unsubscribe, User, type UserActionSigner, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedAuthCredential, VerifiedCredential, VerifiedJWT, VerifyAuthBearerTokenOptions, VerifyAuthCredentialOptions, W3CCredential, assertIsAuthCredential, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createRenownTrustPolicy, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, getResolver, parsePkhDid, parseSignatureHashField, recoverCredentialSigner, resolveSwitchboardEndpoint, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature, verifyDelegationProof };
|
|
72
|
+
export {};
|
|
72
73
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/event/event.browser.ts","../src/storage/storage.browser.ts","../src/init.browser.ts"],"mappings":";;;;;cAQa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/event/event.browser.ts","../src/storage/storage.browser.ts","../src/init.browser.ts"],"mappings":";;;;;cAQa,oBACX,eAAe,oCACJ,cAAc;;EAGzB,GAAG,gBAAgB,QACjB,OAAO,GACP,WAAW,MAAM,OAAO;EAc1B,KAAK,gBAAgB,QAAQ,OAAO,GAAG,MAAM,OAAO;;;;cC3BzC,eACX,UAAU,0BAA0B,iCAC5B,YAAY;;mBACH;EAEjB,YAAY,mBAAmB;EAQ/B,IAAI,kBAAkB,GAAG,KAAK,MAAM,EAAE;EAQtC,IAAI,kBAAkB,GAAG,KAAK,KAAK,QAAQ,EAAE;EAM7C,OAAO,WAAW;;;;qBCtBP,6BAA6B,eAAe;qBAC5C,kCAAkC,oBAAoB;wBAInD,kBAAkB,oBAAoB;iBASrC;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;qBAOW,sBAAsB;;EAKjC,YAAY,iBAAiB,UAAS;;;;EAqBtC,aAAa;;;;;EAUb,cAAc;;;;;EASR,SAAS,QAAQ;;;;;;;;;wBAwBT,WACd,iBACA,UAAS,8BAAgC,QAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { a as DEFAULT_RENOWN_NETWORK_ID, c as ISSUER_TYPE, d as VERIFIABLE_CREDENTIAL_EIP712_TYPE, i as DEFAULT_RENOWN_CHAIN_ID, l as RENOWN_READ_MODEL_SUBGRAPH, n as CREDENTIAL_SUBJECT_TYPE, o as DEFAULT_RENOWN_URL, r as CREDENTIAL_TYPES, s as DOMAIN_TYPE, t as CREDENTIAL_SCHEMA_EIP712_TYPE, u as RENOWN_SESSION_COOKIE } from "./constants-
|
|
2
|
-
import { a as
|
|
3
|
-
import { a as
|
|
4
|
-
import { t as
|
|
1
|
+
import { a as DEFAULT_RENOWN_NETWORK_ID, c as ISSUER_TYPE, d as VERIFIABLE_CREDENTIAL_EIP712_TYPE, i as DEFAULT_RENOWN_CHAIN_ID, l as RENOWN_READ_MODEL_SUBGRAPH, n as CREDENTIAL_SUBJECT_TYPE, o as DEFAULT_RENOWN_URL, r as CREDENTIAL_TYPES, s as DOMAIN_TYPE, t as CREDENTIAL_SCHEMA_EIP712_TYPE, u as RENOWN_SESSION_COOKIE } from "./constants-DVOF17NB.js";
|
|
2
|
+
import { a as verifyAuthCredential, c as MissingSwitchboardError, i as recoverCredentialSigner, l as SwitchboardClient, n as buildAndSignCredential, o as verifyCredentialSignature, r as fetchDelegationCredential, s as verifyDelegationProof, t as createRenownTrustPolicy, u as resolveSwitchboardEndpoint } from "./signer-trust-C6UJAsNJ.js";
|
|
3
|
+
import { a as verifyAuthBearerToken, i as parsePkhDid, n as createAuthBearerToken, r as getResolver, t as assertIsAuthCredential } from "./utils-DLQ5VVqT.js";
|
|
4
|
+
import { a as signatureHasResultingHash, c as ConnectCrypto, i as parseSignatureHashField, l as RenownCrypto, n as createSignatureVerifier, o as MemoryKeyStorage, r as extractResultingHashFromSignature, s as RenownCryptoBuilder, t as RenownCryptoSigner } from "./signer-GzTlZLjR.js";
|
|
5
|
+
import { t as BrowserKeyStorage } from "./browser-key-storage-wjSwTnhs.js";
|
|
6
|
+
import { a as RenownMemoryStorage, i as Renown, n as BaseRenownBuilder, o as BaseStorage, r as fetchRenownProfile, t as createLocalCredentialVerifier } from "./local-credential-verifier-BC4HS01T.js";
|
|
5
7
|
//#region src/event/event.browser.ts
|
|
6
8
|
var TypedCustomEvent = class extends CustomEvent {
|
|
7
9
|
constructor(type, detail) {
|
|
@@ -101,8 +103,10 @@ var RenownBuilder = class extends BaseRenownBuilder {
|
|
|
101
103
|
const keyStorage = await BrowserKeyStorage.create(this.#keyDbName);
|
|
102
104
|
this.withKeyPairStorage(keyStorage);
|
|
103
105
|
const renown = await super.build();
|
|
104
|
-
if (renown.user)
|
|
105
|
-
|
|
106
|
+
if (renown.user) {
|
|
107
|
+
if (this.#revalidate === "always") renown.revalidate();
|
|
108
|
+
else renown.refreshProfile();
|
|
109
|
+
}
|
|
106
110
|
return renown;
|
|
107
111
|
}
|
|
108
112
|
};
|
|
@@ -117,6 +121,6 @@ function initRenown(appName, options = {}) {
|
|
|
117
121
|
return new RenownBuilder(appName, options).build();
|
|
118
122
|
}
|
|
119
123
|
//#endregion
|
|
120
|
-
export { BaseRenownBuilder, BrowserKeyStorage, BrowserRenownEventEmitter, BrowserRenownStorage, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConnectCrypto, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_URL, DOMAIN_TYPE, ISSUER_TYPE, MemoryKeyStorage, MissingSwitchboardError, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownMemoryStorage, SwitchboardClient, VERIFIABLE_CREDENTIAL_EIP712_TYPE, assertIsAuthCredential, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, readPersistedUser, recoverCredentialSigner, resolveSwitchboardEndpoint, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature };
|
|
124
|
+
export { BaseRenownBuilder, BrowserKeyStorage, BrowserRenownEventEmitter, BrowserRenownStorage, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConnectCrypto, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_URL, DOMAIN_TYPE, ISSUER_TYPE, MemoryKeyStorage, MissingSwitchboardError, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownMemoryStorage, SwitchboardClient, VERIFIABLE_CREDENTIAL_EIP712_TYPE, assertIsAuthCredential, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createRenownTrustPolicy, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, readPersistedUser, recoverCredentialSigner, resolveSwitchboardEndpoint, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature, verifyDelegationProof };
|
|
121
125
|
|
|
122
126
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/event/event.browser.ts","../src/storage/storage.browser.ts","../src/init.browser.ts"],"sourcesContent":["import type { IEventEmitter } from \"./types.js\";\n\nexport class TypedCustomEvent<T> extends CustomEvent<T> {\n constructor(type: string, detail?: T) {\n super(type, { detail });\n }\n}\n\nexport class BrowserEventEmitter<\n Events extends Record<string, unknown>,\n> implements IEventEmitter<Events> {\n #eventTarget = new EventTarget();\n\n on<K extends keyof Events>(\n event: K,\n listener: (data: Events[K]) => void,\n ): () => void {\n const wrappedListener = (e: Event) => {\n if (e instanceof TypedCustomEvent) {\n listener(e.detail as Events[K]);\n }\n };\n\n this.#eventTarget.addEventListener(event.toString(), wrappedListener);\n return () => {\n this.#eventTarget.removeEventListener(event.toString(), wrappedListener);\n };\n }\n\n emit<K extends keyof Events>(event: K, data: Events[K]): void {\n const customEvent = new TypedCustomEvent(event.toString(), data);\n this.#eventTarget.dispatchEvent(customEvent);\n }\n}\n","import { BaseStorage } from \"./common.js\";\n\nexport class BrowserStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n> extends BaseStorage<T> {\n private readonly namespace: string;\n\n constructor(namespace: string, basename: string | undefined) {\n super();\n this.namespace = `${basename}:${namespace}`;\n }\n\n #buildKey(key: keyof T): string {\n return `${this.namespace}:${key.toString()}`;\n }\n get<Key extends keyof T>(key: Key): T[Key] | undefined {\n const value = localStorage.getItem(this.#buildKey(key));\n if (value) {\n return JSON.parse(value) as T[Key];\n }\n return undefined;\n }\n\n set<Key extends keyof T>(key: Key, value?: T[Key]): void {\n return value\n ? localStorage.setItem(this.#buildKey(key), JSON.stringify(value))\n : localStorage.removeItem(this.#buildKey(key));\n }\n\n delete(key: keyof T): void {\n return localStorage.removeItem(this.#buildKey(key));\n }\n}\n","import type { Renown } from \"./common.js\";\nimport { BrowserKeyStorage } from \"./crypto/browser-key-storage.js\";\nimport { BrowserEventEmitter } from \"./event/event.browser.js\";\nimport { BaseRenownBuilder } from \"./renown-builder.js\";\nimport { BrowserStorage } from \"./storage/storage.browser.js\";\nimport type { RenownEvents, RenownStorageMap, User } from \"./types.js\";\n\nexport class BrowserRenownStorage extends BrowserStorage<RenownStorageMap> {}\nexport class BrowserRenownEventEmitter extends BrowserEventEmitter<RenownEvents> {}\n\n// Synchronously read the persisted user from localStorage (browser only) for an\n// instant optimistic first paint, before the async SDK build resolves.\nexport function readPersistedUser(basename?: string): User | undefined {\n if (typeof localStorage === \"undefined\") return undefined;\n try {\n return new BrowserStorage<RenownStorageMap>(\"renown\", basename).get(\"user\");\n } catch {\n return undefined;\n }\n}\n\nexport interface BrowserRenownBuilderOptions {\n /** Base path for storage keys (e.g., \"/app\" for multi-tenant apps) */\n basename?: string;\n /** Renown server URL. Defaults to https://www.renown.id */\n baseUrl?: string;\n /** Switchboard GraphQL endpoint for the direct-to-reactor flow. */\n switchboardUrl?: string;\n /** IndexedDB database name for key storage. Defaults to \"renownKeyDB\" */\n keyDbName?: string;\n /** Re-check a stored credential on build (default \"always\"). */\n revalidate?: \"always\" | \"never\";\n /** Chain id credentials are issued on (default 1). It is part of the issuer DID, so `signIn` rejects a session from another chain. */\n chainId?: number;\n}\n\n/**\n * Browser-specific Renown builder with pre-configured defaults.\n * Uses localStorage for user data and IndexedDB for key storage.\n */\nexport class RenownBuilder extends BaseRenownBuilder {\n #basename?: string;\n #keyDbName?: string;\n #revalidate: \"always\" | \"never\";\n\n constructor(appName: string, options: BrowserRenownBuilderOptions = {}) {\n super(appName);\n this.#basename = options.basename;\n this.#keyDbName = options.keyDbName;\n this.#revalidate = options.revalidate ?? \"always\";\n this.withStorage(new BrowserRenownStorage(\"renown\", this.#basename));\n this.withEventEmitter(new BrowserRenownEventEmitter());\n if (options.baseUrl) {\n this.withBaseUrl(options.baseUrl);\n }\n if (options.switchboardUrl) {\n this.withSwitchboardUrl(options.switchboardUrl);\n }\n if (options.chainId !== undefined) {\n this.withChainId(options.chainId);\n }\n }\n\n /**\n * Set base path for storage keys (e.g., \"/app\" for multi-tenant apps).\n */\n withBasename(basename: string): this {\n this.#basename = basename;\n this.withStorage(new BrowserRenownStorage(\"renown\", this.#basename));\n return this;\n }\n\n /**\n * Set IndexedDB database name for key storage.\n * Defaults to \"renownKeyDB\".\n */\n withKeyDbName(keyDbName: string): this {\n this.#keyDbName = keyDbName;\n return this;\n }\n\n /**\n * Build and initialize the Renown instance.\n * Initializes IndexedDB for key storage before building.\n */\n async build(): Promise<Renown> {\n const keyStorage = await BrowserKeyStorage.create(this.#keyDbName);\n this.withKeyPairStorage(keyStorage);\n const renown = await super.build();\n // Refresh in the background, never blocking the paint. Only the credential\n // check can log a user out, so it stays gated; the profile refresh always runs.\n if (renown.user) {\n if (this.#revalidate === \"always\") {\n void renown.revalidate();\n } else {\n void renown.refreshProfile();\n }\n }\n return renown;\n }\n}\n\n/**\n * @deprecated Use RenownBuilder directly instead.\n * Initialize a browser-specific Renown instance.\n * @param appName - Application name used for signing context\n * @param options - Browser-specific configuration options\n * @returns Initialized Renown instance\n */\nexport function initRenown(\n appName: string,\n options: BrowserRenownBuilderOptions = {},\n) {\n return new RenownBuilder(appName, options).build();\n}\n"],"mappings":";;;;;;;AAEA,IAAa,mBAAb,cAAyC,YAAe;CACtD,YAAY,MAAc,QAAY;EACpC,MAAM,MAAM,EAAE,OAAO,CAAC;CACxB;AACF;AAEA,IAAa,sBAAb,MAEmC;CACjC,eAAe,IAAI,YAAY;CAE/B,GACE,OACA,UACY;EACZ,MAAM,mBAAmB,MAAa;GACpC,IAAI,aAAa,kBACf,SAAS,EAAE,MAAmB;EAElC;EAEA,KAAK,aAAa,iBAAiB,MAAM,SAAS,GAAG,eAAe;EACpE,aAAa;GACX,KAAK,aAAa,oBAAoB,MAAM,SAAS,GAAG,eAAe;EACzE;CACF;CAEA,KAA6B,OAAU,MAAuB;EAC5D,MAAM,cAAc,IAAI,iBAAiB,MAAM,SAAS,GAAG,IAAI;EAC/D,KAAK,aAAa,cAAc,WAAW;CAC7C;AACF;;;AC/BA,IAAa,iBAAb,cAEU,YAAe;CACvB;CAEA,YAAY,WAAmB,UAA8B;EAC3D,MAAM;EACN,KAAK,YAAY,GAAG,SAAS,GAAG;CAClC;CAEA,UAAU,KAAsB;EAC9B,OAAO,GAAG,KAAK,UAAU,GAAG,IAAI,SAAS;CAC3C;CACA,IAAyB,KAA8B;EACrD,MAAM,QAAQ,aAAa,QAAQ,KAAK,UAAU,GAAG,CAAC;EACtD,IAAI,OACF,OAAO,KAAK,MAAM,KAAK;CAG3B;CAEA,IAAyB,KAAU,OAAsB;EACvD,OAAO,QACH,aAAa,QAAQ,KAAK,UAAU,GAAG,GAAG,KAAK,UAAU,KAAK,CAAC,IAC/D,aAAa,WAAW,KAAK,UAAU,GAAG,CAAC;CACjD;CAEA,OAAO,KAAoB;EACzB,OAAO,aAAa,WAAW,KAAK,UAAU,GAAG,CAAC;CACpD;AACF;;;ACzBA,IAAa,uBAAb,cAA0C,eAAiC,CAAC;AAC5E,IAAa,4BAAb,cAA+C,oBAAkC,CAAC;AAIlF,SAAgB,kBAAkB,UAAqC;CACrE,IAAI,OAAO,iBAAiB,aAAa,OAAO,KAAA;CAChD,IAAI;EACF,OAAO,IAAI,eAAiC,UAAU,QAAQ,CAAC,CAAC,IAAI,MAAM;CAC5E,QAAQ;EACN;CACF;AACF;;;;;AAqBA,IAAa,gBAAb,cAAmC,kBAAkB;CACnD;CACA;CACA;CAEA,YAAY,SAAiB,UAAuC,CAAC,GAAG;EACtE,MAAM,OAAO;EACb,KAAK,YAAY,QAAQ;EACzB,KAAK,aAAa,QAAQ;EAC1B,KAAK,cAAc,QAAQ,cAAc;EACzC,KAAK,YAAY,IAAI,qBAAqB,UAAU,KAAK,SAAS,CAAC;EACnE,KAAK,iBAAiB,IAAI,0BAA0B,CAAC;EACrD,IAAI,QAAQ,SACV,KAAK,YAAY,QAAQ,OAAO;EAElC,IAAI,QAAQ,gBACV,KAAK,mBAAmB,QAAQ,cAAc;EAEhD,IAAI,QAAQ,YAAY,KAAA,GACtB,KAAK,YAAY,QAAQ,OAAO;CAEpC;;;;CAKA,aAAa,UAAwB;EACnC,KAAK,YAAY;EACjB,KAAK,YAAY,IAAI,qBAAqB,UAAU,KAAK,SAAS,CAAC;EACnE,OAAO;CACT;;;;;CAMA,cAAc,WAAyB;EACrC,KAAK,aAAa;EAClB,OAAO;CACT;;;;;CAMA,MAAM,QAAyB;EAC7B,MAAM,aAAa,MAAM,kBAAkB,OAAO,KAAK,UAAU;EACjE,KAAK,mBAAmB,UAAU;EAClC,MAAM,SAAS,MAAM,MAAM,MAAM;EAGjC,IAAI,OAAO,MAAM;GACf,IAAI,KAAK,gBAAgB,UACvB,OAAY,WAAW;QAEvB,OAAY,eAAe;EAE/B;EACA,OAAO;CACT;AACF;;;;;;;;AASA,SAAgB,WACd,SACA,UAAuC,CAAC,GACxC;CACA,OAAO,IAAI,cAAc,SAAS,OAAO,CAAC,CAAC,MAAM;AACnD"}
|