@renown/sdk 6.2.3-dev.23 → 6.2.3-dev.24
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-CeyLjla8.js} +1 -1
- package/dist/{browser-key-storage-e3RQsnLS.js.map → browser-key-storage-CeyLjla8.js.map} +1 -1
- package/dist/crypto.d.ts +2 -2
- package/dist/crypto.js +2 -2
- package/dist/{index-BLIpkdF7.d.ts → index-Bcs-BY-C.d.ts} +10 -19
- package/dist/{index-BLIpkdF7.d.ts.map → index-Bcs-BY-C.d.ts.map} +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/local-credential-verifier-2aC00ymX.js +429 -0
- package/dist/local-credential-verifier-2aC00ymX.js.map +1 -0
- package/dist/{meta-bV7L-1yb.d.ts → meta-B8HbJHy8.d.ts} +2 -2
- package/dist/{meta-bV7L-1yb.d.ts.map → meta-B8HbJHy8.d.ts.map} +1 -1
- package/dist/{meta-CHgd9Qd0.js → meta-BOjLjJ1Y.js} +2 -2
- package/dist/{meta-CHgd9Qd0.js.map → meta-BOjLjJ1Y.js.map} +1 -1
- package/dist/{meta-BesJP74N.d.ts → meta-CRXEMUUQ.d.ts} +2 -2
- package/dist/{meta-BesJP74N.d.ts.map → meta-CRXEMUUQ.d.ts.map} +1 -1
- package/dist/{meta-D-5kvwx8.js → meta-adhFGw0o.js} +2 -2
- package/dist/{meta-D-5kvwx8.js.map → meta-adhFGw0o.js.map} +1 -1
- package/dist/node.d.ts +19 -4
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +18 -3
- package/dist/node.js.map +1 -1
- package/dist/{signer-DrjINLqt.js → signer-DIbtSfsu.js} +30 -102
- package/dist/signer-DIbtSfsu.js.map +1 -0
- package/dist/{local-credential-verifier-CU8hmFlR.js → signer-trust-D7vg4xbS.js} +120 -421
- package/dist/signer-trust-D7vg4xbS.js.map +1 -0
- package/dist/signer-trust-Dg7Wggsc.d.ts +53 -0
- package/dist/signer-trust-Dg7Wggsc.d.ts.map +1 -0
- package/dist/trust.d.ts +2 -0
- package/dist/trust.js +2 -0
- package/dist/{types-DInveFLz.d.ts → types-CQDAkCVn.d.ts} +2 -2
- package/dist/{types-DInveFLz.d.ts.map → types-CQDAkCVn.d.ts.map} +1 -1
- package/dist/{types-BGQKPoUr.d.ts → types-CXBWG4JY.d.ts} +10 -2
- package/dist/types-CXBWG4JY.d.ts.map +1 -0
- package/dist/{types-C-hJrsQg.d.ts → types-ChjGDXVS.d.ts} +2 -2
- package/dist/{types-C-hJrsQg.d.ts.map → types-ChjGDXVS.d.ts.map} +1 -1
- package/dist/{types-C_qc_62W.js → types-ome2Ysme.js} +1 -1
- package/dist/{types-C_qc_62W.js.map → types-ome2Ysme.js.map} +1 -1
- package/dist/{utils-DtWREYeO.d.ts → utils-BuSw6Mud.d.ts} +3 -11
- package/dist/utils-BuSw6Mud.d.ts.map +1 -0
- package/dist/utils-Dtdm4vFs.js +74 -0
- package/dist/utils-Dtdm4vFs.js.map +1 -0
- package/dist/wallet/index.d.ts +1 -1
- package/dist/wallet/index.js +1 -1
- package/dist/wallet/mock/factory.d.ts +2 -2
- package/dist/wallet/mock/factory.js +1 -1
- package/dist/wallet/mock/index.d.ts +2 -2
- package/dist/wallet/mock/index.js +1 -1
- package/dist/wallet/privy/factory.d.ts +3 -3
- package/dist/wallet/privy/factory.js +2 -2
- package/dist/wallet/privy/index.d.ts +2 -2
- package/dist/wallet/privy/index.js +1 -1
- package/dist/wallet/rainbow/factory.d.ts +2 -2
- package/dist/wallet/rainbow/factory.js +1 -1
- package/dist/wallet/rainbow/index.d.ts +2 -2
- package/dist/wallet/rainbow/index.js +1 -1
- package/package.json +9 -3
- package/dist/local-credential-verifier-CU8hmFlR.js.map +0 -1
- package/dist/signer-DrjINLqt.js.map +0 -1
- package/dist/types-BGQKPoUr.d.ts.map +0 -1
- package/dist/utils-DtWREYeO.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-key-storage-
|
|
1
|
+
{"version":3,"file":"browser-key-storage-CeyLjla8.js","names":["#db","#openDatabase","#useStore"],"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;AAC3B,QAAA,KAAW;;CAGb,aAAa,OACX,SAAiB,iBACW;AAE5B,SAAO,IAAI,kBADA,MAAM,mBAAA,aAAgC,OAAO,CACxB;;CAGlC,QAAA,aAAqB,QAAsC;AACzD,SAAO,IAAI,SAAS,SAAS,WAAW;GACtC,MAAM,MAAM,UAAU,KAAK,OAAO;AAElC,OAAI,mBAAmB,UAAU;IAC/B,MAAM,KAAM,MAAM,OAA4B;AAC9C,QAAI,CAAC,GAAG,iBAAiB,SAAS,WAAW,CAC3C,IAAG,kBAAkB,WAAW;;AAIpC,OAAI,kBAAkB;IACpB,MAAM,KAAK,IAAI;AACf,QAAI,CAAC,GAAG,iBAAiB,SAAS,WAAW,EAAE;KAC7C,MAAM,iBAAiB,GAAG;AAC1B,QAAG,OAAO;KACV,MAAM,aAAa,UAAU,KAAK,QAAQ,iBAAiB,EAAE;AAC7D,gBAAW,mBAAmB,UAAU;MACtC,MAAM,YAAa,MAAM,OAA4B;AACrD,UAAI,CAAC,UAAU,iBAAiB,SAAS,WAAW,CAClD,WAAU,kBAAkB,WAAW;;AAG3C,gBAAW,kBAAkB,QAAQ,WAAW,OAAO;AACvD,gBAAW,gBAAgB,OAAO,WAAW,MAAe;UAE5D,SAAQ,GAAG;;AAIf,OAAI,gBAAgB,OAAO,IAAI,MAAe;IAC9C;;CAGJ,UAAU,OAA2B,aAAa;AAEhD,SADoB,MAAA,GAAS,YAAY,YAAY,KAAK,CACvC,YAAY,WAAW;;CAG5C,MAAM,YAAY,SAAqB;EAErC,MAAM,UADQ,MAAA,UAAgB,CACR,IAAI,SAAS,IAAI;AACvC,SAAO,IAAI,SAAe,SAAS,WAAW;AAC5C,WAAQ,kBAAkB,SAAS;AACnC,WAAQ,gBAAgB,uBAAO,IAAI,MAAM,0BAA0B,CAAC;IACpE;;CAGJ,MAAM,cAA+C;EAEnD,MAAM,UADQ,MAAA,SAAe,WAAW,CAClB,IAAI,IAAI;AAE9B,SAAO,IAAI,SAAiC,SAAS,WAAW;AAC9D,WAAQ,kBAAkB;IACxB,MAAM,UAAU,QAAQ;AACxB,YAAQ,QAAQ;;AAElB,WAAQ,gBAAgB,uBAAO,IAAI,MAAM,0BAA0B,CAAC;IACpE;;CAGJ,MAAM,gBAA+B;EAEnC,MAAM,UADQ,MAAA,UAAgB,CACR,OAAO,IAAI;AAEjC,SAAO,IAAI,SAAe,SAAS,WAAW;AAC5C,WAAQ,kBAAkB,SAAS;AACnC,WAAQ,gBAAgB,uBAAO,IAAI,MAAM,4BAA4B,CAAC;IACtE"}
|
package/dist/crypto.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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-
|
|
1
|
+
import { a as JwkKeyPair, i as JsonWebKeyPairStorage, n as IConnectCrypto, r as IRenownCrypto, t as DID } from "./types-CXBWG4JY.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-Bcs-BY-C.js";
|
|
3
3
|
export { BrowserKeyStorage, ConnectCrypto, DID, IConnectCrypto, IRenownCrypto, JsonWebKeyPairStorage, JwkKeyPair, MemoryKeyStorage, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, createSignatureVerifier, extractResultingHashFromSignature, parseSignatureHashField, signatureHasResultingHash };
|
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-DIbtSfsu.js";
|
|
2
|
+
import { t as BrowserKeyStorage } from "./browser-key-storage-CeyLjla8.js";
|
|
3
3
|
export { BrowserKeyStorage, ConnectCrypto, MemoryKeyStorage, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, createSignatureVerifier, extractResultingHashFromSignature, parseSignatureHashField, signatureHasResultingHash };
|
|
@@ -1,5 +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";
|
|
1
|
+
import { a as JwkKeyPair, i as JsonWebKeyPairStorage, l as CreateBearerTokenOptions, r as IRenownCrypto, t as DID, w as Issuer } from "./types-CXBWG4JY.js";
|
|
2
|
+
import { Action, ActionSigningTarget, AppActionSigner, ISigner, Signature, SignatureVerificationHandler, UserActionSigner } from "@powerhousedao/shared/document-model";
|
|
3
3
|
|
|
4
4
|
//#region src/crypto/renown-crypto.d.ts
|
|
5
5
|
declare class RenownCrypto implements IRenownCrypto {
|
|
@@ -57,26 +57,17 @@ declare class RenownCryptoSigner implements ISigner {
|
|
|
57
57
|
get publicKey(): CryptoKey;
|
|
58
58
|
sign(data: Uint8Array): Promise<Uint8Array>;
|
|
59
59
|
verify(data: Uint8Array, signature: Uint8Array): Promise<void>;
|
|
60
|
-
signAction(action: Action, abortSignal?: AbortSignal): Promise<Signature>;
|
|
60
|
+
signAction(action: Action, target: ActionSigningTarget, abortSignal?: AbortSignal): Promise<Signature>;
|
|
61
61
|
/**
|
|
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]
|
|
62
|
+
* Signs an action including a predicted resulting state hash, packed into
|
|
63
|
+
* element [3] as `${prevStateHash}:${resultingStateHash}`.
|
|
75
64
|
*/
|
|
76
|
-
signActionWithResultingState(action: Action, resultingStateHash: string, abortSignal?: AbortSignal): Promise<Signature>;
|
|
65
|
+
signActionWithResultingState(action: Action, target: ActionSigningTarget, resultingStateHash: string, abortSignal?: AbortSignal): Promise<Signature>;
|
|
77
66
|
/**
|
|
78
|
-
*
|
|
67
|
+
* The pre-v2 tuple, over scope, type and input only. For peers and tests
|
|
68
|
+
* that still need one; it binds neither the document nor the signer.
|
|
79
69
|
*/
|
|
70
|
+
signActionLegacy(action: Action, abortSignal?: AbortSignal): Promise<Signature>;
|
|
80
71
|
private _signAction;
|
|
81
72
|
private hashAction;
|
|
82
73
|
private buildSignatureMessage;
|
|
@@ -128,4 +119,4 @@ declare class BrowserKeyStorage implements JsonWebKeyPairStorage {
|
|
|
128
119
|
}
|
|
129
120
|
//#endregion
|
|
130
121
|
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
|
-
//# sourceMappingURL=index-
|
|
122
|
+
//# sourceMappingURL=index-Bcs-BY-C.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-Bcs-BY-C.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,YAAA,YAAwB,aAAA;EAAA;WAK1B,GAAA,EAAK,GAAA;EALU;EAAA,SAOf,OAAA;EAAA,OAEF,SAAA,EAAS,cAAA;EAAA,OACT,aAAA;;;;;cAGL,cAAA,EAAgB,qBAAA,EAChB,MAAA,EAAQ,YAAA,EACR,OAAA,EAAS,aAAA,EACT,GAAA,EAAK,GAAA,EACL,OAAA;EAAA,IASE,SAAA,CAAA,GAAS,SAAA;EAIP,cAAA,CACJ,OAAA,sBACA,OAAA,GAAU,wBAAA,GACT,OAAA;EAUG,SAAA,CAAA,GAAa,OAAA;EAQb,IAAA,CAAK,IAAA,EAAM,UAAA,YAAsB,OAAA,CAAQ,UAAA;EAazC,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,GAAa,OAAA;EAAA,IASnD,MAAA,CAAA,GAAU,MAAA;AAAA;;;;cAiBH,aAAA,SAAsB,YAAA;;;cC3FtB,mBAAA;EAAA;UACH,cAAA;EAAA,QACA,YAAA;EAAA,QACA,OAAA;EAER,kBAAA,CAAmB,OAAA,EAAS,qBAAA;EAK5B,gBAAA,CAAiB,MAAA,EAAQ,YAAA;EAOzB,WAAA,CAAY,OAAA;EAKN,KAAA,CAAA,GAAS,OAAA,CAAQ,YAAA;AAAA;;;cC7BZ,gBAAA,YAA4B,qBAAA;EAAA,QAC/B,OAAA;cAEI,OAAA,GAAU,UAAA;EAItB,WAAA,CAAA,GAAW,OAAA,CAAA,UAAA;EAIX,WAAA,CAAY,OAAA,EAAS,UAAA,GAAU,OAAA;EAK/B,aAAA,CAAA,GAAa,OAAA;AAAA;;;cCIF,kBAAA,YAA8B,OAAA;EAAA,iBAItB,MAAA;EAAA,iBACA,OAAA;EACV,IAAA,GAAO,gBAAA;EAAA,SALP,GAAA,EAAK,eAAA;cAGK,MAAA,EAAQ,aAAA,EACR,OAAA,UACV,IAAA,GAAO,gBAAA;EAAA,IAQZ,SAAA,CAAA,GAAS,SAAA;EAIP,IAAA,CAAK,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,UAAA;EAIhC,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,GAAa,OAAA;EAOjD,UAAA,CACJ,MAAA,EAAQ,MAAA,EACR,MAAA,EAAQ,mBAAA,EACR,WAAA,GAAc,WAAA,GACb,OAAA,CAAQ,SAAA;EHZR;;;;EGqBG,4BAAA,CACJ,MAAA,EAAQ,MAAA,EACR,MAAA,EAAQ,mBAAA,EACR,kBAAA,UACA,WAAA,GAAc,WAAA,GACb,OAAA,CAAQ,SAAA;EHKQ;;;;EGKb,gBAAA,CACJ,MAAA,EAAQ,MAAA,EACR,WAAA,GAAc,WAAA,GACb,OAAA,CAAQ,SAAA;EAAA,QAqBG,WAAA;EAAA,QAyBA,UAAA;EAAA,QAYN,qBAAA;EAAA,QASA,gBAAA;EAAA,QAQA,mBAAA;AAAA;;;;;iBAcM,uBAAA,CACd,gBAAA,aACC,4BAAA;;;;;;;;;;;iBAgNa,uBAAA,CAAwB,SAAA;EACtC,aAAA;EACA,kBAAA;AAAA;;;;;;;iBAuBc,iCAAA,CACd,SAAA,EAAW,SAAA;;;;;;;iBAaG,yBAAA,CAA0B,SAAA,EAAW,SAAA;;;cC9ZxC,iBAAA,YAA6B,qBAAA;EAAA;cAG5B,EAAA,EAAI,WAAA;EAAA,OAIH,MAAA,CACX,MAAA,YACC,OAAA,CAAQ,iBAAA;EA4CL,WAAA,CAAY,OAAA,EAAS,UAAA,GAAU,OAAA;EAS/B,WAAA,CAAA,GAAe,OAAA,CAAQ,UAAA;EAavB,aAAA,CAAA,GAAiB,OAAA;AAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +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
|
|
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-CXBWG4JY.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-Bcs-BY-C.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-BuSw6Mud.js";
|
|
4
|
+
import { a as ResolveSwitchboardEndpointOptions, i as createRenownTrustPolicy, n as RenownTrustPolicy, o as resolveSwitchboardEndpoint, r as RenownTrustPolicyOptions, t as RenownOwnSigner } from "./signer-trust-Dg7Wggsc.js";
|
|
4
5
|
|
|
5
6
|
//#region src/event/event.browser.d.ts
|
|
6
7
|
declare class BrowserEventEmitter<Events extends Record<string, unknown>> implements IEventEmitter<Events> {
|
|
@@ -68,5 +69,5 @@ declare class RenownBuilder extends BaseRenownBuilder {
|
|
|
68
69
|
*/
|
|
69
70
|
declare function initRenown(appName: string, options?: BrowserRenownBuilderOptions): Promise<Renown>;
|
|
70
71
|
//#endregion
|
|
71
|
-
export { AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserKeyStorage, BrowserRenownBuilderOptions, BrowserRenownEventEmitter, BrowserRenownStorage, 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, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, FetchDelegationCredentialOptions, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LocalCredentialVerifierOptions, LoginStatus, MemoryKeyStorage, MissingSwitchboardError, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownProfile, type RenownSessionCookie, type RenownSessionProfile, RenownStorage, RenownStorageMap, ResolveSwitchboardEndpointOptions, Service, ServiceEndpoint, SignCredentialTypedData, SignInParams, Signer, SwitchboardClient, SwitchboardRequestFn, SwitchboardSource, Unsubscribe, User, UserActionSigner, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedAuthCredential, VerifiedCredential, VerifiedJWT, VerifyAuthBearerTokenOptions, VerifyAuthCredentialOptions, W3CCredential, assertIsAuthCredential, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, readPersistedUser, recoverCredentialSigner, resolveSwitchboardEndpoint, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature };
|
|
72
|
+
export { AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserKeyStorage, BrowserRenownBuilderOptions, BrowserRenownEventEmitter, BrowserRenownStorage, 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, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, FetchDelegationCredentialOptions, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LocalCredentialVerifierOptions, LoginStatus, MemoryKeyStorage, MissingSwitchboardError, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, 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, UserActionSigner, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedAuthCredential, VerifiedCredential, VerifiedJWT, VerifyAuthBearerTokenOptions, VerifyAuthCredentialOptions, W3CCredential, assertIsAuthCredential, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createRenownTrustPolicy, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, readPersistedUser, recoverCredentialSigner, resolveSwitchboardEndpoint, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature, verifyDelegationProof };
|
|
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":"
|
|
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,mBAAA,gBACI,MAAA,8BACJ,aAAA,CAAc,MAAA;EAAA;EAGzB,EAAA,iBAAmB,MAAA,CAAA,CACjB,KAAA,EAAO,CAAA,EACP,QAAA,GAAW,IAAA,EAAM,MAAA,CAAO,CAAA;EAc1B,IAAA,iBAAqB,MAAA,CAAA,CAAQ,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,MAAA,CAAO,CAAA;AAAA;;;cC3BzC,cAAA,WACD,MAAA,oBAA0B,MAAA,2BAC5B,WAAA,CAAY,CAAA;EAAA;mBACH,SAAA;cAEL,SAAA,UAAmB,QAAA;EAQ/B,GAAA,mBAAsB,CAAA,CAAA,CAAG,GAAA,EAAK,GAAA,GAAM,CAAA,CAAE,GAAA;EAQtC,GAAA,mBAAsB,CAAA,CAAA,CAAG,GAAA,EAAK,GAAA,EAAK,KAAA,GAAQ,CAAA,CAAE,GAAA;EAM7C,MAAA,CAAO,GAAA,QAAW,CAAA;AAAA;;;cCtBP,oBAAA,SAA6B,cAAA,CAAe,gBAAA;AAAA,cAC5C,yBAAA,SAAkC,mBAAA,CAAoB,YAAA;AAAA,iBAInD,iBAAA,CAAkB,QAAA,YAAoB,IAAA;AAAA,UASrC,2BAAA;EFRI;EEUnB,QAAA;EFRmB;EEUnB,OAAA;EFIqB;EEFrB,cAAA;EFE6C;EEA7C,SAAA;EFnBW;EEqBX,UAAA;EFrBwB;EEuBxB,OAAA;AAAA;;;;;cAOW,aAAA,SAAsB,iBAAA;EAAA;cAKrB,OAAA,UAAiB,OAAA,GAAS,2BAAA;EF/BpC;;;EEoDF,YAAA,CAAa,QAAA;EFnDX;;;;EE6DF,aAAA,CAAc,SAAA;EF/Ce;;;;EEwDvB,KAAA,CAAA,GAAS,OAAA,CAAQ,MAAA;AAAA;;;;ADnFzB;;;;iBC2GgB,UAAA,CACd,OAAA,UACA,OAAA,GAAS,2BAAA,GAAgC,OAAA,CAAA,MAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
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-BexAR53F.js";
|
|
2
|
-
import { a as
|
|
3
|
-
import { a as
|
|
4
|
-
import { t as
|
|
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-D7vg4xbS.js";
|
|
3
|
+
import { a as verifyAuthBearerToken, i as parsePkhDid, n as createAuthBearerToken, r as getResolver, t as assertIsAuthCredential } from "./utils-Dtdm4vFs.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-DIbtSfsu.js";
|
|
5
|
+
import { t as BrowserKeyStorage } from "./browser-key-storage-CeyLjla8.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-2aC00ymX.js";
|
|
5
7
|
//#region src/event/event.browser.ts
|
|
6
8
|
var TypedCustomEvent = class extends CustomEvent {
|
|
7
9
|
constructor(type, detail) {
|
|
@@ -117,6 +119,6 @@ function initRenown(appName, options = {}) {
|
|
|
117
119
|
return new RenownBuilder(appName, options).build();
|
|
118
120
|
}
|
|
119
121
|
//#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 };
|
|
122
|
+
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
123
|
|
|
122
124
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["#eventTarget","#buildKey","#basename","#keyDbName","#revalidate"],"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":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["#eventTarget","#buildKey","#basename","#keyDbName","#revalidate"],"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;AACpC,QAAM,MAAM,EAAE,QAAQ,CAAC;;;AAI3B,IAAa,sBAAb,MAEmC;CACjC,eAAe,IAAI,aAAa;CAEhC,GACE,OACA,UACY;EACZ,MAAM,mBAAmB,MAAa;AACpC,OAAI,aAAa,iBACf,UAAS,EAAE,OAAoB;;AAInC,QAAA,YAAkB,iBAAiB,MAAM,UAAU,EAAE,gBAAgB;AACrE,eAAa;AACX,SAAA,YAAkB,oBAAoB,MAAM,UAAU,EAAE,gBAAgB;;;CAI5E,KAA6B,OAAU,MAAuB;EAC5D,MAAM,cAAc,IAAI,iBAAiB,MAAM,UAAU,EAAE,KAAK;AAChE,QAAA,YAAkB,cAAc,YAAY;;;;;AC7BhD,IAAa,iBAAb,cAEU,YAAe;CACvB;CAEA,YAAY,WAAmB,UAA8B;AAC3D,SAAO;AACP,OAAK,YAAY,GAAG,SAAS,GAAG;;CAGlC,UAAU,KAAsB;AAC9B,SAAO,GAAG,KAAK,UAAU,GAAG,IAAI,UAAU;;CAE5C,IAAyB,KAA8B;EACrD,MAAM,QAAQ,aAAa,QAAQ,MAAA,SAAe,IAAI,CAAC;AACvD,MAAI,MACF,QAAO,KAAK,MAAM,MAAM;;CAK5B,IAAyB,KAAU,OAAsB;AACvD,SAAO,QACH,aAAa,QAAQ,MAAA,SAAe,IAAI,EAAE,KAAK,UAAU,MAAM,CAAC,GAChE,aAAa,WAAW,MAAA,SAAe,IAAI,CAAC;;CAGlD,OAAO,KAAoB;AACzB,SAAO,aAAa,WAAW,MAAA,SAAe,IAAI,CAAC;;;;;ACvBvD,IAAa,uBAAb,cAA0C,eAAiC;AAC3E,IAAa,4BAAb,cAA+C,oBAAkC;AAIjF,SAAgB,kBAAkB,UAAqC;AACrE,KAAI,OAAO,iBAAiB,YAAa,QAAO,KAAA;AAChD,KAAI;AACF,SAAO,IAAI,eAAiC,UAAU,SAAS,CAAC,IAAI,OAAO;SACrE;AACN;;;;;;;AAuBJ,IAAa,gBAAb,cAAmC,kBAAkB;CACnD;CACA;CACA;CAEA,YAAY,SAAiB,UAAuC,EAAE,EAAE;AACtE,QAAM,QAAQ;AACd,QAAA,WAAiB,QAAQ;AACzB,QAAA,YAAkB,QAAQ;AAC1B,QAAA,aAAmB,QAAQ,cAAc;AACzC,OAAK,YAAY,IAAI,qBAAqB,UAAU,MAAA,SAAe,CAAC;AACpE,OAAK,iBAAiB,IAAI,2BAA2B,CAAC;AACtD,MAAI,QAAQ,QACV,MAAK,YAAY,QAAQ,QAAQ;AAEnC,MAAI,QAAQ,eACV,MAAK,mBAAmB,QAAQ,eAAe;AAEjD,MAAI,QAAQ,YAAY,KAAA,EACtB,MAAK,YAAY,QAAQ,QAAQ;;;;;CAOrC,aAAa,UAAwB;AACnC,QAAA,WAAiB;AACjB,OAAK,YAAY,IAAI,qBAAqB,UAAU,MAAA,SAAe,CAAC;AACpE,SAAO;;;;;;CAOT,cAAc,WAAyB;AACrC,QAAA,YAAkB;AAClB,SAAO;;;;;;CAOT,MAAM,QAAyB;EAC7B,MAAM,aAAa,MAAM,kBAAkB,OAAO,MAAA,UAAgB;AAClE,OAAK,mBAAmB,WAAW;EACnC,MAAM,SAAS,MAAM,MAAM,OAAO;AAGlC,MAAI,OAAO,KACT,KAAI,MAAA,eAAqB,SAClB,QAAO,YAAY;MAEnB,QAAO,gBAAgB;AAGhC,SAAO;;;;;;;;;;AAWX,SAAgB,WACd,SACA,UAAuC,EAAE,EACzC;AACA,QAAO,IAAI,cAAc,SAAS,QAAQ,CAAC,OAAO"}
|