@renown/sdk 6.0.2-staging.1 → 6.0.2-staging.3

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.
Files changed (147) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts +77 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +173 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/node.d.ts +136 -0
  7. package/dist/node.d.ts.map +1 -0
  8. package/dist/node.js +305 -0
  9. package/dist/node.js.map +1 -0
  10. package/dist/renown-builder-xQpZet3I.js +816 -0
  11. package/dist/renown-builder-xQpZet3I.js.map +1 -0
  12. package/dist/utils-D7B6E7_Z.d.ts +682 -0
  13. package/dist/utils-D7B6E7_Z.d.ts.map +1 -0
  14. package/package.json +14 -13
  15. package/dist/src/common.d.ts +0 -23
  16. package/dist/src/common.d.ts.map +0 -1
  17. package/dist/src/common.js +0 -145
  18. package/dist/src/common.js.map +0 -1
  19. package/dist/src/constants.d.ts +0 -130
  20. package/dist/src/constants.d.ts.map +0 -1
  21. package/dist/src/constants.js +0 -40
  22. package/dist/src/constants.js.map +0 -1
  23. package/dist/src/crypto/browser-key-storage.d.ts +0 -10
  24. package/dist/src/crypto/browser-key-storage.d.ts.map +0 -1
  25. package/dist/src/crypto/browser-key-storage.js +0 -76
  26. package/dist/src/crypto/browser-key-storage.js.map +0 -1
  27. package/dist/src/crypto/common.d.ts +0 -6
  28. package/dist/src/crypto/common.d.ts.map +0 -1
  29. package/dist/src/crypto/common.js +0 -8
  30. package/dist/src/crypto/common.js.map +0 -1
  31. package/dist/src/crypto/index.d.ts +0 -3
  32. package/dist/src/crypto/index.d.ts.map +0 -1
  33. package/dist/src/crypto/index.js +0 -3
  34. package/dist/src/crypto/index.js.map +0 -1
  35. package/dist/src/crypto/memory-key-storage.d.ts +0 -9
  36. package/dist/src/crypto/memory-key-storage.d.ts.map +0 -1
  37. package/dist/src/crypto/memory-key-storage.js +0 -18
  38. package/dist/src/crypto/memory-key-storage.js.map +0 -1
  39. package/dist/src/crypto/node-key-storage.d.ts +0 -21
  40. package/dist/src/crypto/node-key-storage.d.ts.map +0 -1
  41. package/dist/src/crypto/node-key-storage.js +0 -107
  42. package/dist/src/crypto/node-key-storage.js.map +0 -1
  43. package/dist/src/crypto/node.d.ts +0 -3
  44. package/dist/src/crypto/node.d.ts.map +0 -1
  45. package/dist/src/crypto/node.js +0 -3
  46. package/dist/src/crypto/node.js.map +0 -1
  47. package/dist/src/crypto/renown-crypto-builder.d.ts +0 -11
  48. package/dist/src/crypto/renown-crypto-builder.d.ts.map +0 -1
  49. package/dist/src/crypto/renown-crypto-builder.js +0 -34
  50. package/dist/src/crypto/renown-crypto-builder.js.map +0 -1
  51. package/dist/src/crypto/renown-crypto.d.ts +0 -26
  52. package/dist/src/crypto/renown-crypto.d.ts.map +0 -1
  53. package/dist/src/crypto/renown-crypto.js +0 -56
  54. package/dist/src/crypto/renown-crypto.js.map +0 -1
  55. package/dist/src/crypto/signer.d.ts +0 -74
  56. package/dist/src/crypto/signer.d.ts.map +0 -1
  57. package/dist/src/crypto/signer.js +0 -306
  58. package/dist/src/crypto/signer.js.map +0 -1
  59. package/dist/src/crypto/types.d.ts +0 -27
  60. package/dist/src/crypto/types.d.ts.map +0 -1
  61. package/dist/src/crypto/types.js +0 -2
  62. package/dist/src/crypto/types.js.map +0 -1
  63. package/dist/src/crypto/utils.d.ts +0 -13
  64. package/dist/src/crypto/utils.d.ts.map +0 -1
  65. package/dist/src/crypto/utils.js +0 -39
  66. package/dist/src/crypto/utils.js.map +0 -1
  67. package/dist/src/event/event.browser.d.ts +0 -10
  68. package/dist/src/event/event.browser.d.ts.map +0 -1
  69. package/dist/src/event/event.browser.js +0 -24
  70. package/dist/src/event/event.browser.js.map +0 -1
  71. package/dist/src/event/event.node.d.ts +0 -8
  72. package/dist/src/event/event.node.d.ts.map +0 -1
  73. package/dist/src/event/event.node.js +0 -17
  74. package/dist/src/event/event.node.js.map +0 -1
  75. package/dist/src/event/memory.d.ts +0 -8
  76. package/dist/src/event/memory.d.ts.map +0 -1
  77. package/dist/src/event/memory.js +0 -16
  78. package/dist/src/event/memory.js.map +0 -1
  79. package/dist/src/event/types.d.ts +0 -16
  80. package/dist/src/event/types.d.ts.map +0 -1
  81. package/dist/src/event/types.js +0 -2
  82. package/dist/src/event/types.js.map +0 -1
  83. package/dist/src/index.d.ts +0 -8
  84. package/dist/src/index.d.ts.map +0 -1
  85. package/dist/src/index.js +0 -8
  86. package/dist/src/index.js.map +0 -1
  87. package/dist/src/init.browser.d.ts +0 -52
  88. package/dist/src/init.browser.d.ts.map +0 -1
  89. package/dist/src/init.browser.js +0 -66
  90. package/dist/src/init.browser.js.map +0 -1
  91. package/dist/src/init.node.d.ts +0 -29
  92. package/dist/src/init.node.d.ts.map +0 -1
  93. package/dist/src/init.node.js +0 -30
  94. package/dist/src/init.node.js.map +0 -1
  95. package/dist/src/node.d.ts +0 -10
  96. package/dist/src/node.d.ts.map +0 -1
  97. package/dist/src/node.js +0 -10
  98. package/dist/src/node.js.map +0 -1
  99. package/dist/src/profile.d.ts +0 -3
  100. package/dist/src/profile.d.ts.map +0 -1
  101. package/dist/src/profile.js +0 -22
  102. package/dist/src/profile.js.map +0 -1
  103. package/dist/src/renown-builder.d.ts +0 -68
  104. package/dist/src/renown-builder.d.ts.map +0 -1
  105. package/dist/src/renown-builder.js +0 -130
  106. package/dist/src/renown-builder.js.map +0 -1
  107. package/dist/src/storage/common.d.ts +0 -17
  108. package/dist/src/storage/common.d.ts.map +0 -1
  109. package/dist/src/storage/common.js +0 -20
  110. package/dist/src/storage/common.js.map +0 -1
  111. package/dist/src/storage/storage.browser.d.ts +0 -10
  112. package/dist/src/storage/storage.browser.d.ts.map +0 -1
  113. package/dist/src/storage/storage.browser.js +0 -27
  114. package/dist/src/storage/storage.browser.js.map +0 -1
  115. package/dist/src/storage/storage.node.d.ts +0 -11
  116. package/dist/src/storage/storage.node.d.ts.map +0 -1
  117. package/dist/src/storage/storage.node.js +0 -42
  118. package/dist/src/storage/storage.node.js.map +0 -1
  119. package/dist/src/types.d.ts +0 -126
  120. package/dist/src/types.d.ts.map +0 -1
  121. package/dist/src/types.js +0 -2
  122. package/dist/src/types.js.map +0 -1
  123. package/dist/src/utils.d.ts +0 -24
  124. package/dist/src/utils.d.ts.map +0 -1
  125. package/dist/src/utils.js +0 -94
  126. package/dist/src/utils.js.map +0 -1
  127. package/dist/test/auth.test.d.ts +0 -2
  128. package/dist/test/auth.test.d.ts.map +0 -1
  129. package/dist/test/auth.test.js +0 -13
  130. package/dist/test/auth.test.js.map +0 -1
  131. package/dist/test/crypto/signer.test.d.ts +0 -2
  132. package/dist/test/crypto/signer.test.d.ts.map +0 -1
  133. package/dist/test/crypto/signer.test.js +0 -184
  134. package/dist/test/crypto/signer.test.js.map +0 -1
  135. package/dist/test/renown.test.d.ts +0 -2
  136. package/dist/test/renown.test.d.ts.map +0 -1
  137. package/dist/test/renown.test.js +0 -287
  138. package/dist/test/renown.test.js.map +0 -1
  139. package/dist/test/storage.node.test.d.ts +0 -2
  140. package/dist/test/storage.node.test.d.ts.map +0 -1
  141. package/dist/test/storage.node.test.js +0 -66
  142. package/dist/test/storage.node.test.js.map +0 -1
  143. package/dist/tsconfig.tsbuildinfo +0 -1
  144. package/dist/vitest.config.d.ts +0 -3
  145. package/dist/vitest.config.d.ts.map +0 -1
  146. package/dist/vitest.config.js +0 -7
  147. package/dist/vitest.config.js.map +0 -1
package/README.md CHANGED
@@ -21,6 +21,7 @@ const renown = await new RenownBuilder("my-app")
21
21
  ```
22
22
 
23
23
  **Builder methods:**
24
+
24
25
  - `withBaseUrl(url)` — Renown server URL (default: `https://www.renown.id`)
25
26
  - `withStorage(storage)` — Custom user data persistence (default: in-memory)
26
27
  - `withEventEmitter(emitter)` — Custom event emitter for state changes
@@ -0,0 +1,77 @@
1
+ import { $ as RenownStorage, A as EcdsaSignature, B as JWTPayload, C as ConditionWeightedThreshold, Ct as DEFAULT_RENOWN_URL, D as DIDDocumentMetadata, E as DIDDocument, Et as VERIFIABLE_CREDENTIAL_EIP712_TYPE, F as IRenown, G as LoginStatus, H as JWTVerifyPolicies, I as ISigner, J as ProfileFetcher, K as PKHDid, L as IVerifiableCredential, M as IPowerhouseCredentialSubject, N as IPowerhouseIssuerType, O as DIDResolutionMetadata, P as IProof, Q as RenownProfile, R as InternalUser, S as AuthVerifiedCredential, St as DEFAULT_RENOWN_NETWORK_ID, T as CredentialStatus, Tt as ISSUER_TYPE, U as JsonWebKey, V as JWTVerified, W as KeyCapabilitySection, X as RenownEventEmitter, Y as Proof, Z as RenownEvents, _ as MemoryKeyStorage, _t as JwkKeyPair, a as parsePkhDid, at as User, b as RenownCrypto, bt as CREDENTIAL_TYPES, c as BaseRenownBuilder, ct as VerifiedCredential, d as RenownMemoryStorage, dt as BaseStorage, et as RenownStorageMap, f as RenownCryptoSigner, ft as IEventEmitter, g as signatureHasResultingHash, gt as JsonWebKeyPairStorage, h as parseSignatureHashField, ht as IRenownCrypto, i as getResolver, it as Unsubscribe, j as IAuthCredentialSubject, k as DIDResolutionResult, l as RenownBuilderOptions, lt as VerifiedJWT, m as extractResultingHashFromSignature, mt as IConnectCrypto, n as assertIsAuthCredential, nt as ServiceEndpoint, o as verifyAuthBearerToken, ot as Verifiable, p as createSignatureVerifier, pt as DID, q as PowerhouseVerifiableCredential, r as createAuthBearerToken, rt as Signer, s as fetchRenownProfile, st as VerificationMethod, t as ILogger, tt as Service, u as Renown, ut as W3CCredential, v as RenownCryptoBuilder, vt as CREDENTIAL_SCHEMA_EIP712_TYPE, w as CreateBearerTokenOptions, wt as DOMAIN_TYPE, x as AuthVerifiableCredential, xt as DEFAULT_RENOWN_CHAIN_ID, y as ConnectCrypto, yt as CREDENTIAL_SUBJECT_TYPE, z as Issuer } from "./utils-D7B6E7_Z.js";
2
+
3
+ //#region src/crypto/browser-key-storage.d.ts
4
+ declare class BrowserKeyStorage implements JsonWebKeyPairStorage {
5
+ #private;
6
+ constructor(db: IDBDatabase);
7
+ static create(dbName?: string): Promise<BrowserKeyStorage>;
8
+ saveKeyPair(keyPair: JwkKeyPair): Promise<void>;
9
+ loadKeyPair(): Promise<JwkKeyPair | undefined>;
10
+ removeKeyPair(): Promise<void>;
11
+ }
12
+ //#endregion
13
+ //#region src/event/event.browser.d.ts
14
+ declare class BrowserEventEmitter<Events extends Record<string, unknown>> implements IEventEmitter<Events> {
15
+ #private;
16
+ on<K extends keyof Events>(event: K, listener: (data: Events[K]) => void): () => void;
17
+ emit<K extends keyof Events>(event: K, data: Events[K]): void;
18
+ }
19
+ //#endregion
20
+ //#region src/storage/storage.browser.d.ts
21
+ declare class BrowserStorage<T extends Record<string, unknown> = Record<string, unknown>> extends BaseStorage<T> {
22
+ #private;
23
+ private readonly namespace;
24
+ constructor(namespace: string, basename: string | undefined);
25
+ get<Key extends keyof T>(key: Key): T[Key] | undefined;
26
+ set<Key extends keyof T>(key: Key, value?: T[Key]): void;
27
+ delete(key: keyof T): void;
28
+ }
29
+ //#endregion
30
+ //#region src/init.browser.d.ts
31
+ declare class BrowserRenownStorage extends BrowserStorage<RenownStorageMap> {}
32
+ declare class BrowserRenownEventEmitter extends BrowserEventEmitter<RenownEvents> {}
33
+ interface BrowserRenownBuilderOptions {
34
+ /** Base path for storage keys (e.g., "/app" for multi-tenant apps) */
35
+ basename?: string;
36
+ /** Renown server URL. Defaults to https://www.renown.id */
37
+ baseUrl?: string;
38
+ /** IndexedDB database name for key storage. Defaults to "renownKeyDB" */
39
+ keyDbName?: string;
40
+ }
41
+ /**
42
+ * Browser-specific Renown builder with pre-configured defaults.
43
+ * Uses localStorage for user data and IndexedDB for key storage.
44
+ */
45
+ declare class RenownBuilder extends BaseRenownBuilder {
46
+ #private;
47
+ /**
48
+ * @param appName - Application name used for signing context
49
+ * @param options - Browser-specific configuration options
50
+ */
51
+ constructor(appName: string, options?: BrowserRenownBuilderOptions);
52
+ /**
53
+ * Set base path for storage keys (e.g., "/app" for multi-tenant apps).
54
+ */
55
+ withBasename(basename: string): this;
56
+ /**
57
+ * Set IndexedDB database name for key storage.
58
+ * Defaults to "renownKeyDB".
59
+ */
60
+ withKeyDbName(keyDbName: string): this;
61
+ /**
62
+ * Build and initialize the Renown instance.
63
+ * Initializes IndexedDB for key storage before building.
64
+ */
65
+ build(): Promise<Renown>;
66
+ }
67
+ /**
68
+ * @deprecated Use RenownBuilder directly instead.
69
+ * Initialize a browser-specific Renown instance.
70
+ * @param appName - Application name used for signing context
71
+ * @param options - Browser-specific configuration options
72
+ * @returns Initialized Renown instance
73
+ */
74
+ declare function initRenown(appName: string, options?: BrowserRenownBuilderOptions): Promise<Renown>;
75
+ //#endregion
76
+ export { AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserKeyStorage, BrowserRenownBuilderOptions, BrowserRenownEventEmitter, BrowserRenownStorage, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConditionWeightedThreshold, ConnectCrypto, CreateBearerTokenOptions, CredentialStatus, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_URL, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LoginStatus, MemoryKeyStorage, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, Renown, RenownBuilder, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownProfile, RenownStorage, RenownStorageMap, Service, ServiceEndpoint, Signer, Unsubscribe, User, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedCredential, VerifiedJWT, W3CCredential, assertIsAuthCredential, createAuthBearerToken, createSignatureVerifier, extractResultingHashFromSignature, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, signatureHasResultingHash, verifyAuthBearerToken };
77
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/crypto/browser-key-storage.ts","../src/event/event.browser.ts","../src/storage/storage.browser.ts","../src/init.browser.ts"],"mappings":";;;cAMa,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;;;cCzEZ,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,UAElD,2BAAA;EHiDsB;EG/CrC,QAAA;EHwDqB;EGtDrB,OAAA;EHRwC;EGUxC,SAAA;AAAA;;;;;cAOW,aAAA,SAAsB,iBAAA;EAAA;EHT/B;;;;cGiBU,OAAA,UAAiB,OAAA,GAAS,2BAAA;EH4BpB;;;EGdlB,YAAA,CAAa,QAAA;EHuBgB;;;;EGb7B,aAAA,CAAc,SAAA;;;;AF/ChB;EEwDQ,KAAA,CAAA,GAAS,OAAA,CAAQ,MAAA;AAAA;;;;;;;;iBAcT,UAAA,CACd,OAAA,UACA,OAAA,GAAS,2BAAA,GAAgC,OAAA,CAAA,MAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,173 @@
1
+ import { C as DEFAULT_RENOWN_CHAIN_ID, D as ISSUER_TYPE, E as DOMAIN_TYPE, O as VERIFIABLE_CREDENTIAL_EIP712_TYPE, S as CREDENTIAL_TYPES, T as DEFAULT_RENOWN_URL, _ as getResolver, a as BaseStorage, b as CREDENTIAL_SCHEMA_EIP712_TYPE, c as extractResultingHashFromSignature, d as MemoryKeyStorage, f as RenownCryptoBuilder, g as createAuthBearerToken, h as assertIsAuthCredential, i as RenownMemoryStorage, l as parseSignatureHashField, m as RenownCrypto, n as fetchRenownProfile, o as RenownCryptoSigner, p as ConnectCrypto, r as Renown, s as createSignatureVerifier, t as BaseRenownBuilder, u as signatureHasResultingHash, v as parsePkhDid, w as DEFAULT_RENOWN_NETWORK_ID, x as CREDENTIAL_SUBJECT_TYPE, y as verifyAuthBearerToken } from "./renown-builder-xQpZet3I.js";
2
+ //#region src/crypto/browser-key-storage.ts
3
+ const DEFAULT_DB_NAME = "renownKeyDB";
4
+ const STORE_NAME = "keyPairs";
5
+ const KEY = "keyPair";
6
+ var BrowserKeyStorage = class BrowserKeyStorage {
7
+ #db;
8
+ constructor(db) {
9
+ this.#db = db;
10
+ }
11
+ static async create(dbName = DEFAULT_DB_NAME) {
12
+ return new BrowserKeyStorage(await BrowserKeyStorage.#openDatabase(dbName));
13
+ }
14
+ static #openDatabase(dbName) {
15
+ return new Promise((resolve, reject) => {
16
+ const req = indexedDB.open(dbName);
17
+ req.onupgradeneeded = (event) => {
18
+ const db = event.target.result;
19
+ if (!db.objectStoreNames.contains(STORE_NAME)) db.createObjectStore(STORE_NAME);
20
+ };
21
+ req.onsuccess = () => {
22
+ const db = req.result;
23
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
24
+ const currentVersion = db.version;
25
+ db.close();
26
+ const upgradeReq = indexedDB.open(dbName, currentVersion + 1);
27
+ upgradeReq.onupgradeneeded = (event) => {
28
+ const upgradeDb = event.target.result;
29
+ if (!upgradeDb.objectStoreNames.contains(STORE_NAME)) upgradeDb.createObjectStore(STORE_NAME);
30
+ };
31
+ upgradeReq.onsuccess = () => resolve(upgradeReq.result);
32
+ upgradeReq.onerror = () => reject(upgradeReq.error);
33
+ } else resolve(db);
34
+ };
35
+ req.onerror = () => reject(req.error);
36
+ });
37
+ }
38
+ #useStore(mode = "readwrite") {
39
+ return this.#db.transaction(STORE_NAME, mode).objectStore(STORE_NAME);
40
+ }
41
+ async saveKeyPair(keyPair) {
42
+ const request = this.#useStore().put(keyPair, KEY);
43
+ return new Promise((resolve, reject) => {
44
+ request.onsuccess = () => resolve();
45
+ request.onerror = () => reject(/* @__PURE__ */ new Error("Failed to save key pair"));
46
+ });
47
+ }
48
+ async loadKeyPair() {
49
+ const request = this.#useStore("readonly").get(KEY);
50
+ return new Promise((resolve, reject) => {
51
+ request.onsuccess = () => {
52
+ const keyPair = request.result;
53
+ resolve(keyPair);
54
+ };
55
+ request.onerror = () => reject(/* @__PURE__ */ new Error("Failed to load key pair"));
56
+ });
57
+ }
58
+ async removeKeyPair() {
59
+ const request = this.#useStore().delete(KEY);
60
+ return new Promise((resolve, reject) => {
61
+ request.onsuccess = () => resolve();
62
+ request.onerror = () => reject(/* @__PURE__ */ new Error("Failed to remove key pair"));
63
+ });
64
+ }
65
+ };
66
+ //#endregion
67
+ //#region src/event/event.browser.ts
68
+ var TypedCustomEvent = class extends CustomEvent {
69
+ constructor(type, detail) {
70
+ super(type, { detail });
71
+ }
72
+ };
73
+ var BrowserEventEmitter = class {
74
+ #eventTarget = new EventTarget();
75
+ on(event, listener) {
76
+ const wrappedListener = (e) => {
77
+ if (e instanceof TypedCustomEvent) listener(e.detail);
78
+ };
79
+ this.#eventTarget.addEventListener(event.toString(), wrappedListener);
80
+ return () => {
81
+ this.#eventTarget.removeEventListener(event.toString(), wrappedListener);
82
+ };
83
+ }
84
+ emit(event, data) {
85
+ const customEvent = new TypedCustomEvent(event.toString(), data);
86
+ this.#eventTarget.dispatchEvent(customEvent);
87
+ }
88
+ };
89
+ //#endregion
90
+ //#region src/storage/storage.browser.ts
91
+ var BrowserStorage = class extends BaseStorage {
92
+ namespace;
93
+ constructor(namespace, basename) {
94
+ super();
95
+ this.namespace = `${basename}:${namespace}`;
96
+ }
97
+ #buildKey(key) {
98
+ return `${this.namespace}:${key.toString()}`;
99
+ }
100
+ get(key) {
101
+ const value = localStorage.getItem(this.#buildKey(key));
102
+ if (value) return JSON.parse(value);
103
+ }
104
+ set(key, value) {
105
+ return value ? localStorage.setItem(this.#buildKey(key), JSON.stringify(value)) : localStorage.removeItem(this.#buildKey(key));
106
+ }
107
+ delete(key) {
108
+ return localStorage.removeItem(this.#buildKey(key));
109
+ }
110
+ };
111
+ //#endregion
112
+ //#region src/init.browser.ts
113
+ var BrowserRenownStorage = class extends BrowserStorage {};
114
+ var BrowserRenownEventEmitter = class extends BrowserEventEmitter {};
115
+ /**
116
+ * Browser-specific Renown builder with pre-configured defaults.
117
+ * Uses localStorage for user data and IndexedDB for key storage.
118
+ */
119
+ var RenownBuilder = class extends BaseRenownBuilder {
120
+ #basename;
121
+ #keyDbName;
122
+ /**
123
+ * @param appName - Application name used for signing context
124
+ * @param options - Browser-specific configuration options
125
+ */
126
+ constructor(appName, options = {}) {
127
+ super(appName);
128
+ this.#basename = options.basename;
129
+ this.#keyDbName = options.keyDbName;
130
+ this.withStorage(new BrowserRenownStorage("renown", this.#basename));
131
+ this.withEventEmitter(new BrowserRenownEventEmitter());
132
+ if (options.baseUrl) this.withBaseUrl(options.baseUrl);
133
+ }
134
+ /**
135
+ * Set base path for storage keys (e.g., "/app" for multi-tenant apps).
136
+ */
137
+ withBasename(basename) {
138
+ this.#basename = basename;
139
+ this.withStorage(new BrowserRenownStorage("renown", this.#basename));
140
+ return this;
141
+ }
142
+ /**
143
+ * Set IndexedDB database name for key storage.
144
+ * Defaults to "renownKeyDB".
145
+ */
146
+ withKeyDbName(keyDbName) {
147
+ this.#keyDbName = keyDbName;
148
+ return this;
149
+ }
150
+ /**
151
+ * Build and initialize the Renown instance.
152
+ * Initializes IndexedDB for key storage before building.
153
+ */
154
+ async build() {
155
+ const keyStorage = await BrowserKeyStorage.create(this.#keyDbName);
156
+ this.withKeyPairStorage(keyStorage);
157
+ return super.build();
158
+ }
159
+ };
160
+ /**
161
+ * @deprecated Use RenownBuilder directly instead.
162
+ * Initialize a browser-specific Renown instance.
163
+ * @param appName - Application name used for signing context
164
+ * @param options - Browser-specific configuration options
165
+ * @returns Initialized Renown instance
166
+ */
167
+ function initRenown(appName, options = {}) {
168
+ return new RenownBuilder(appName, options).build();
169
+ }
170
+ //#endregion
171
+ 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, Renown, RenownBuilder, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownMemoryStorage, VERIFIABLE_CREDENTIAL_EIP712_TYPE, assertIsAuthCredential, createAuthBearerToken, createSignatureVerifier, extractResultingHashFromSignature, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, signatureHasResultingHash, verifyAuthBearerToken };
172
+
173
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["#db","#openDatabase","#useStore","#eventTarget","#buildKey","#basename","#keyDbName"],"sources":["../src/crypto/browser-key-storage.ts","../src/event/event.browser.ts","../src/storage/storage.browser.ts","../src/init.browser.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","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 } from \"./types.js\";\n\nexport class BrowserRenownStorage extends BrowserStorage<RenownStorageMap> {}\nexport class BrowserRenownEventEmitter extends BrowserEventEmitter<RenownEvents> {}\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 /** IndexedDB database name for key storage. Defaults to \"renownKeyDB\" */\n keyDbName?: string;\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\n /**\n * @param appName - Application name used for signing context\n * @param options - Browser-specific configuration options\n */\n constructor(appName: string, options: BrowserRenownBuilderOptions = {}) {\n super(appName);\n this.#basename = options.basename;\n this.#keyDbName = options.keyDbName;\n this.withStorage(new BrowserRenownStorage(\"renown\", this.#basename));\n this.withEventEmitter(new BrowserRenownEventEmitter());\n if (options.baseUrl) {\n this.withBaseUrl(options.baseUrl);\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 return super.build();\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":"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"}
package/dist/node.d.ts ADDED
@@ -0,0 +1,136 @@
1
+ import { $ as RenownStorage, A as EcdsaSignature, B as JWTPayload, C as ConditionWeightedThreshold, Ct as DEFAULT_RENOWN_URL, D as DIDDocumentMetadata, E as DIDDocument, Et as VERIFIABLE_CREDENTIAL_EIP712_TYPE, F as IRenown, G as LoginStatus, H as JWTVerifyPolicies, I as ISigner, J as ProfileFetcher, K as PKHDid, L as IVerifiableCredential, M as IPowerhouseCredentialSubject, N as IPowerhouseIssuerType, O as DIDResolutionMetadata, P as IProof, Q as RenownProfile, R as InternalUser, S as AuthVerifiedCredential, St as DEFAULT_RENOWN_NETWORK_ID, T as CredentialStatus, Tt as ISSUER_TYPE, U as JsonWebKey, V as JWTVerified, W as KeyCapabilitySection, X as RenownEventEmitter, Y as Proof, Z as RenownEvents, _ as MemoryKeyStorage, _t as JwkKeyPair, a as parsePkhDid, at as User, b as RenownCrypto, bt as CREDENTIAL_TYPES, c as BaseRenownBuilder, ct as VerifiedCredential, d as RenownMemoryStorage, dt as BaseStorage, et as RenownStorageMap, f as RenownCryptoSigner, ft as IEventEmitter, g as signatureHasResultingHash, gt as JsonWebKeyPairStorage, h as parseSignatureHashField, ht as IRenownCrypto, i as getResolver, it as Unsubscribe, j as IAuthCredentialSubject, k as DIDResolutionResult, l as RenownBuilderOptions, lt as VerifiedJWT, m as extractResultingHashFromSignature, mt as IConnectCrypto, n as assertIsAuthCredential, nt as ServiceEndpoint, o as verifyAuthBearerToken, ot as Verifiable, p as createSignatureVerifier, pt as DID, q as PowerhouseVerifiableCredential, r as createAuthBearerToken, rt as Signer, s as fetchRenownProfile, st as VerificationMethod, t as ILogger, tt as Service, u as Renown, ut as W3CCredential, v as RenownCryptoBuilder, vt as CREDENTIAL_SCHEMA_EIP712_TYPE, w as CreateBearerTokenOptions, wt as DOMAIN_TYPE, x as AuthVerifiableCredential, xt as DEFAULT_RENOWN_CHAIN_ID, y as ConnectCrypto, yt as CREDENTIAL_SUBJECT_TYPE, z as Issuer } from "./utils-D7B6E7_Z.js";
2
+
3
+ //#region src/crypto/node-key-storage.d.ts
4
+ declare const RENOWN_PRIVATE_KEY_ENV = "PH_RENOWN_PRIVATE_KEY";
5
+ declare const DEFAULT_KEYPAIR_PATH = ".ph/.keypair.json";
6
+ /**
7
+ * Key storage that supports:
8
+ * 1. PH_RENOWN_PRIVATE_KEY environment variable (JSON-encoded JwkKeyPair)
9
+ * 2. Custom file path passed via options
10
+ * 3. Falls back to file storage at .ph/.keypair.json in current working directory
11
+ */
12
+ declare class NodeKeyStorage implements JsonWebKeyPairStorage {
13
+ #private;
14
+ static readonly DEFAULT_KEYPAIR_PATH = ".ph/.keypair.json";
15
+ static readonly RENOWN_PRIVATE_KEY_ENV = "PH_RENOWN_PRIVATE_KEY";
16
+ constructor(filePath?: string, options?: {
17
+ envKeyName?: string;
18
+ logger?: ILogger;
19
+ });
20
+ loadKeyPair(): Promise<JwkKeyPair | undefined>;
21
+ saveKeyPair(keyPair: JwkKeyPair): Promise<void>;
22
+ removeKeyPair(): Promise<void>;
23
+ }
24
+ //#endregion
25
+ //#region src/event/event.node.d.ts
26
+ declare class NodeEventEmitter<Events extends Record<string, unknown>> implements IEventEmitter<Events> {
27
+ #private;
28
+ constructor();
29
+ on<K extends keyof Events>(event: K, listener: (data: Events[K]) => void): () => void;
30
+ emit<K extends keyof Events>(event: K, data: Events[K]): void;
31
+ }
32
+ //#endregion
33
+ //#region src/storage/storage.node.d.ts
34
+ declare class NodeStorage<T extends Record<string, unknown> = Record<string, unknown>> extends BaseStorage<T> {
35
+ private readonly filePath;
36
+ constructor(filePath: string);
37
+ private readData;
38
+ private writeData;
39
+ get<Key extends keyof T>(key: Key): T[Key] | undefined;
40
+ set<Key extends keyof T>(key: Key, value?: T[Key]): void;
41
+ delete(key: keyof T): void;
42
+ }
43
+ //#endregion
44
+ //#region src/init.node.d.ts
45
+ declare class NodeRenownEventEmitter extends NodeEventEmitter<RenownEvents> {}
46
+ declare class NodeRenownStorage extends NodeStorage<RenownStorageMap> {}
47
+ declare const DEFAULT_RENOWN_STORAGE_PATH = "./.ph/.renown.json";
48
+ interface NodeRenownBuilderOptions {
49
+ /** File path for user storage. Defaults to ".ph/.renown.json" in cwd */
50
+ storagePath?: string;
51
+ /** File path for keypair storage. Defaults to ".ph/.keypair.json" in cwd */
52
+ keyPath?: string;
53
+ /** Renown server URL. Defaults to https://www.renown.id */
54
+ baseUrl?: string;
55
+ }
56
+ /**
57
+ * Node.js-specific Renown builder with pre-configured defaults.
58
+ * Uses file-based storage for both user data and key storage.
59
+ */
60
+ declare class RenownBuilder extends BaseRenownBuilder {
61
+ /**
62
+ * @param appName - Application name used for signing context
63
+ * @param options - Node.js-specific configuration options
64
+ */
65
+ constructor(appName: string, options?: NodeRenownBuilderOptions);
66
+ }
67
+ //#endregion
68
+ //#region src/login.node.d.ts
69
+ interface BrowserLoginOptions {
70
+ /** Renown server URL */
71
+ renownUrl: string;
72
+ /** Timeout in milliseconds. Defaults to 5 minutes. */
73
+ timeoutMs?: number;
74
+ /** Called with the login URL and session ID before the browser is opened */
75
+ onLoginUrl?: (url: string, sessionId: string) => void;
76
+ /** Called on each poll tick while waiting for authentication */
77
+ onPollTick?: () => void;
78
+ /** Called when the browser failed to open automatically */
79
+ onBrowserOpenFailed?: (url: string) => void;
80
+ /** AbortSignal to cancel the login flow */
81
+ signal?: AbortSignal;
82
+ }
83
+ interface BrowserLoginResult {
84
+ user: User;
85
+ cliDid: string;
86
+ }
87
+ interface AuthStatusResult {
88
+ authenticated: boolean;
89
+ address?: string;
90
+ userDid?: string;
91
+ chainId?: number;
92
+ cliDid: string;
93
+ authenticatedAt?: Date;
94
+ baseUrl: string;
95
+ }
96
+ /**
97
+ * Open a URL in the default browser (cross-platform).
98
+ */
99
+ declare function openBrowser(url: string): Promise<void>;
100
+ /**
101
+ * Perform a browser-based login flow with Renown.
102
+ * Opens the user's browser to authenticate, then polls for completion.
103
+ * Throws if already authenticated or if the flow times out.
104
+ * If the browser fails to open, the flow continues polling — callers
105
+ * can use onBrowserOpenFailed to show the URL as a fallback.
106
+ */
107
+ declare function browserLogin(renown: IRenown, options: BrowserLoginOptions): Promise<BrowserLoginResult>;
108
+ /**
109
+ * Get the current authentication status from a Renown instance.
110
+ */
111
+ declare function getAuthStatus(renown: IRenown): AuthStatusResult;
112
+ interface AccessTokenResult {
113
+ token: string;
114
+ did: string;
115
+ address: string;
116
+ expiresIn: number;
117
+ }
118
+ /**
119
+ * Generate a bearer token for API authentication.
120
+ * Requires the user to be authenticated (via browserLogin or equivalent).
121
+ * Throws if not authenticated.
122
+ */
123
+ declare function generateAccessToken(renown: IRenown, options?: CreateBearerTokenOptions): Promise<AccessTokenResult>;
124
+ /**
125
+ * Parse a human-readable expiry string to seconds.
126
+ * Supports formats: "7d" (days), "24h" (hours), "3600" (seconds), "3600s" (seconds).
127
+ * Only accepts positive integers — decimals like "1.5h" are rejected.
128
+ */
129
+ declare function parseExpiry(expiry: string): number;
130
+ /**
131
+ * Format an expiry duration in seconds to a human-readable string.
132
+ */
133
+ declare function formatExpiry(expiresIn: number): string;
134
+ //#endregion
135
+ export { AccessTokenResult, AuthStatusResult, AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserLoginOptions, BrowserLoginResult, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConditionWeightedThreshold, ConnectCrypto, CreateBearerTokenOptions, CredentialStatus, DEFAULT_KEYPAIR_PATH, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_STORAGE_PATH, DEFAULT_RENOWN_URL, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LoginStatus, MemoryKeyStorage, NodeEventEmitter, NodeKeyStorage, NodeRenownBuilderOptions, NodeRenownEventEmitter, NodeRenownStorage, NodeStorage, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_PRIVATE_KEY_ENV, Renown, RenownBuilder, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownProfile, RenownStorage, RenownStorageMap, Service, ServiceEndpoint, Signer, Unsubscribe, User, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedCredential, VerifiedJWT, W3CCredential, assertIsAuthCredential, browserLogin, createAuthBearerToken, createSignatureVerifier, extractResultingHashFromSignature, fetchRenownProfile, formatExpiry, generateAccessToken, getAuthStatus, getResolver, openBrowser, parseExpiry, parsePkhDid, parseSignatureHashField, signatureHasResultingHash, verifyAuthBearerToken };
136
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","names":[],"sources":["../src/crypto/node-key-storage.ts","../src/event/event.node.ts","../src/storage/storage.node.ts","../src/init.node.ts","../src/login.node.ts"],"mappings":";;;cAWa,sBAAA;AAAA,cACA,oBAAA;;;;;AAAb;;cAQa,cAAA,YAA0B,qBAAA;EAAA;kBAKrB,oBAAA;EAAA,gBACA,sBAAA;cAGd,QAAA,WACA,OAAA;IAAW,UAAA;IAAqB,MAAA,GAAS,OAAA;EAAA;EAa3C,WAAA,CAAA,GAAe,OAAA,CAAQ,UAAA;EAyBjB,WAAA,CAAY,OAAA,EAAS,UAAA,GAAa,OAAA;EAWxC,aAAA,CAAA,GAAiB,OAAA;AAAA;;;cC5EN,gBAAA,gBACI,MAAA,8BACJ,aAAA,CAAc,MAAA;EAAA;;EAOzB,EAAA,iBAAmB,MAAA,CAAA,CACjB,KAAA,EAAO,CAAA,EACP,QAAA,GAAW,IAAA,EAAM,MAAA,CAAO,CAAA;EAQ1B,IAAA,iBAAqB,MAAA,CAAA,CAAQ,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,MAAA,CAAO,CAAA;AAAA;;;cClBzC,WAAA,WACD,MAAA,oBAA0B,MAAA,2BAC5B,WAAA,CAAY,CAAA;EAAA,iBACH,QAAA;cAEL,QAAA;EAAA,QAYJ,QAAA;EAAA,QAKA,SAAA;EAIR,GAAA,mBAAsB,CAAA,CAAA,CAAG,GAAA,EAAK,GAAA,GAAM,CAAA,CAAE,GAAA;EAKtC,GAAA,mBAAsB,CAAA,CAAA,CAAG,GAAA,EAAK,GAAA,EAAK,KAAA,GAAQ,CAAA,CAAE,GAAA;EAU7C,MAAA,CAAO,GAAA,QAAW,CAAA;AAAA;;;cCvCP,sBAAA,SAA+B,gBAAA,CAAiB,YAAA;AAAA,cAChD,iBAAA,SAA0B,WAAA,CAAY,gBAAA;AAAA,cAEtC,2BAAA;AAAA,UAEI,wBAAA;;EAEf,WAAA;EHD+B;EGG/B,OAAA;EHK0B;EGH1B,OAAA;AAAA;;;;;cAOW,aAAA,SAAsB,iBAAA;EHJI;;;;cGSzB,OAAA,UAAiB,OAAA,GAAS,wBAAA;AAAA;;;UCvBvB,mBAAA;;EAEf,SAAA;EJGiC;EIDjC,SAAA;EJCiC;EICjC,UAAA,IAAc,GAAA,UAAa,SAAA;EJAhB;EIEX,UAAA;;EAEA,mBAAA,IAAuB,GAAA;EJJQ;EIM/B,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,kBAAA;EACf,IAAA,EAAM,IAAA;EACN,MAAA;AAAA;AAAA,UAGe,gBAAA;EACf,aAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,MAAA;EACA,eAAA,GAAkB,IAAA;EAClB,OAAA;AAAA;;;;iBA+CoB,WAAA,CAAY,GAAA,WAAc,OAAA;;;;;;;;iBAyD1B,YAAA,CACpB,MAAA,EAAQ,OAAA,EACR,OAAA,EAAS,mBAAA,GACR,OAAA,CAAQ,kBAAA;;;;iBA2CK,aAAA,CAAc,MAAA,EAAQ,OAAA,GAAU,gBAAA;AAAA,UAe/B,iBAAA;EACf,KAAA;EACA,GAAA;EACA,OAAA;EACA,SAAA;AAAA;;;;;;iBAQoB,mBAAA,CACpB,MAAA,EAAQ,OAAA,EACR,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,iBAAA;;;;;;iBAuBK,WAAA,CAAY,MAAA;;;;iBAgCZ,YAAA,CAAa,SAAA"}