@powerhousedao/connect 1.0.19-dev.2 → 1.0.20-dev.0
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/assets/{app-DgCWpRAi.js → app-DULISSV9.js} +12 -12
- package/dist/assets/{app-DgCWpRAi.js.map → app-DULISSV9.js.map} +1 -1
- package/dist/assets/{app-loader-BvmuBbHg.js → app-loader-CS6aHo9m.js} +5 -5
- package/dist/assets/{app-loader-BvmuBbHg.js.map → app-loader-CS6aHo9m.js.map} +1 -1
- package/dist/assets/{browser-DDXfHleI.js → browser-ClaMQmoS.js} +4 -4
- package/dist/assets/{browser-DDXfHleI.js.map → browser-ClaMQmoS.js.map} +1 -1
- package/dist/assets/{ccip-DpSDrBqK.js → ccip-HqktEv5j.js} +4 -4
- package/dist/assets/{ccip-DpSDrBqK.js.map → ccip-HqktEv5j.js.map} +1 -1
- package/dist/assets/{content-BfmXiklP.js → content-CwQswwKt.js} +5 -5
- package/dist/assets/{content-BfmXiklP.js.map → content-CwQswwKt.js.map} +1 -1
- package/dist/assets/{index-CoRmasjt.js → index-4Y8IZCoL.js} +4 -4
- package/dist/assets/{index-CoRmasjt.js.map → index-4Y8IZCoL.js.map} +1 -1
- package/dist/assets/{index-CrRjMdvn.js → index-DzXmrci3.js} +4 -4
- package/dist/assets/{index-CrRjMdvn.js.map → index-DzXmrci3.js.map} +1 -1
- package/dist/assets/{index-C6Izifpd.js → index-q1LnGFn2.js} +5 -5
- package/dist/assets/{index-C6Izifpd.js.map → index-q1LnGFn2.js.map} +1 -1
- package/dist/assets/{main.tB_v8aJ9.js → main.uPY9aYSk.js} +2 -2
- package/dist/assets/{main.tB_v8aJ9.js.map → main.uPY9aYSk.js.map} +1 -1
- package/dist/assets/{reactor-analytics-CF6UOSpS.js → reactor-analytics-C3XNgGME.js} +4 -4
- package/dist/assets/{reactor-analytics-CF6UOSpS.js.map → reactor-analytics-C3XNgGME.js.map} +1 -1
- package/dist/assets/{router-CuTseNzw.js → router-CvCplkfB.js} +6 -6
- package/dist/assets/{router-CuTseNzw.js.map → router-CvCplkfB.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/vite-envs.sh +1 -1
- package/package.json +6 -6
|
@@ -10,10 +10,10 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
10
10
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
11
11
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
12
12
|
var _DB_NAME, _STORE_NAME, _KEY, _db, _BrowserKeyStorage_instances, useStore_fn, _subtleCrypto, _keyPair, _keyPairStorage, _did, _ConnectCrypto_instances, initCrypto_fn, initialize_fn, parseDid_fn, generateECDSAKeyPair_fn, exportKeyPair_fn, importKeyPair_fn, _sign, _verify, _store, _namespace, _BaseStorage_instances, buildKey_fn, _baseUrl, _store2, _connectId, _eventEmitter, _Renown_instances, updateUser_fn, getCredential_fn;
|
|
13
|
-
import { _ as __vitePreload } from "./main.
|
|
14
|
-
import { a5 as rawKeyInHexfromUncompressed, a6 as compressedKeyInHexfromRaw, a7 as encodeDIDfromHexString, a8 as RENOWN_URL, a9 as getEnsInfo } from "./app-
|
|
15
|
-
import { af, ae, ab, ag, aa, ac, ad } from "./app-
|
|
16
|
-
import { ah as connectConfig, _ as logger } from "./app-loader-
|
|
13
|
+
import { _ as __vitePreload } from "./main.uPY9aYSk.js";
|
|
14
|
+
import { a5 as rawKeyInHexfromUncompressed, a6 as compressedKeyInHexfromRaw, a7 as encodeDIDfromHexString, a8 as RENOWN_URL, a9 as getEnsInfo } from "./app-DULISSV9.js";
|
|
15
|
+
import { af, ae, ab, ag, aa, ac, ad } from "./app-DULISSV9.js";
|
|
16
|
+
import { ah as connectConfig, _ as logger } from "./app-loader-CS6aHo9m.js";
|
|
17
17
|
import "react/jsx-runtime";
|
|
18
18
|
import "react";
|
|
19
19
|
import "react-dom";
|
|
@@ -407,4 +407,4 @@ export {
|
|
|
407
407
|
ac as removeExternalPackage,
|
|
408
408
|
ad as subscribeExternalPackages
|
|
409
409
|
};
|
|
410
|
-
//# sourceMappingURL=index-
|
|
410
|
+
//# sourceMappingURL=index-q1LnGFn2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":"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","names":["store","ab","_store"],"ignoreList":[],"sources":["../../src/services/crypto/browser.ts","../../src/services/crypto/index.ts","../../src/services/renown/utils.ts","../../src/services/storage/index.ts","../../src/services/storage/browser.ts","../../src/services/renown/browser.ts","../../src/services/renown/index.ts"],"sourcesContent":["import { type JsonWebKeyPairStorage, type JwkKeyPair } from './index.js';\n\nexport class BrowserKeyStorage implements JsonWebKeyPairStorage {\n static #DB_NAME = 'browserKeyDB';\n static #STORE_NAME = 'keyPairs';\n static #KEY = 'keyPair';\n\n #db: Promise<IDBDatabase>;\n constructor() {\n this.#db = new Promise((resolve, reject) => {\n const req = indexedDB.open(BrowserKeyStorage.#DB_NAME, 1);\n req.onupgradeneeded = () => {\n req.result.createObjectStore(BrowserKeyStorage.#STORE_NAME);\n };\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error as Error);\n });\n }\n\n async #useStore(mode: IDBTransactionMode = 'readwrite') {\n const database = await this.#db;\n const transaction = database.transaction(\n BrowserKeyStorage.#STORE_NAME,\n mode,\n );\n const store = transaction.objectStore(BrowserKeyStorage.#STORE_NAME);\n return store;\n }\n\n async saveKeyPair(keyPair: JwkKeyPair) {\n const store = await this.#useStore();\n const request = store.put(keyPair, BrowserKeyStorage.#KEY);\n return new Promise<void>((resolve, reject) => {\n request.onsuccess = () => {\n resolve();\n };\n request.onerror = () => {\n reject(new Error('Failed to save key pair'));\n };\n });\n }\n\n async loadKeyPair(): Promise<JwkKeyPair | undefined> {\n const store = await this.#useStore('readonly');\n const request = store.getAll();\n\n return new Promise<JwkKeyPair | undefined>((resolve, reject) => {\n request.onsuccess = () => {\n const keyPair = request.result.length\n ? (request.result[0] as JwkKeyPair)\n : undefined;\n resolve(keyPair);\n };\n request.onerror = () => {\n reject(new Error('Failed to load key pair'));\n };\n });\n }\n}\n","/* eslint-disable no-unused-private-class-members */\nimport {\n compressedKeyInHexfromRaw,\n encodeDIDfromHexString,\n rawKeyInHexfromUncompressed,\n} from 'did-key-creator';\n\nexport type JwkKeyPair = {\n publicKey: JsonWebKey;\n privateKey: JsonWebKey;\n};\n\nexport interface JsonWebKeyPairStorage {\n loadKeyPair(): Promise<JwkKeyPair | undefined>;\n saveKeyPair(keyPair: JwkKeyPair): Promise<void>;\n}\n\nfunction ab2hex(ab: ArrayBuffer) {\n return Array.prototype.map\n .call(new Uint8Array(ab), (x: number) =>\n ('00' + x.toString(16)).slice(-2),\n )\n .join('');\n}\n\nexport interface IConnectCrypto {\n did: () => Promise<DID>;\n regenerateDid(): Promise<void>;\n sign: (data: Uint8Array) => Promise<Uint8Array>;\n}\n\nexport type DID = `did:key:${string}`;\n\nexport class ConnectCrypto implements IConnectCrypto {\n #subtleCrypto: Promise<SubtleCrypto>;\n #keyPair: CryptoKeyPair | undefined;\n #keyPairStorage: JsonWebKeyPairStorage;\n\n #did: Promise<DID>;\n\n static algorithm: EcKeyAlgorithm = {\n name: 'ECDSA',\n namedCurve: 'P-256',\n };\n\n static signAlgorithm = {\n name: 'ECDSA',\n namedCurve: 'P-256',\n hash: 'SHA-256',\n };\n\n constructor(keyPairStorage: JsonWebKeyPairStorage) {\n this.#keyPairStorage = keyPairStorage;\n\n // Initializes the subtleCrypto module according to the host environment\n this.#subtleCrypto = this.#initCrypto();\n\n this.#did = this.#initialize();\n }\n\n #initCrypto() {\n return new Promise<SubtleCrypto>((resolve, reject) => {\n if (typeof window === 'undefined') {\n import('node:crypto')\n .then(module => {\n resolve(module.webcrypto.subtle as SubtleCrypto);\n })\n .catch(reject);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!window.crypto?.subtle) {\n reject(new Error('Crypto module not available'));\n }\n resolve(window.crypto.subtle);\n }\n });\n }\n\n // loads the key pair from storage or generates a new one if none is stored\n async #initialize() {\n const loadedKeyPair = await this.#keyPairStorage.loadKeyPair();\n if (loadedKeyPair) {\n this.#keyPair = await this.#importKeyPair(loadedKeyPair);\n console.log('Found key pair');\n } else {\n this.#keyPair = await this.#generateECDSAKeyPair();\n console.log('Created key pair');\n await this.#keyPairStorage.saveKeyPair(await this.#exportKeyPair());\n }\n const did = await this.#parseDid();\n console.log('Connect DID:', did);\n return did;\n }\n\n did() {\n return this.#did;\n }\n\n async regenerateDid() {\n this.#keyPair = await this.#generateECDSAKeyPair();\n await this.#keyPairStorage.saveKeyPair(await this.#exportKeyPair());\n }\n\n async #parseDid(): Promise<DID> {\n if (!this.#keyPair) {\n throw new Error('No key pair available');\n }\n\n const subtleCrypto = await this.#subtleCrypto;\n const publicKeyRaw = await subtleCrypto.exportKey(\n 'raw',\n this.#keyPair.publicKey,\n );\n\n const multicodecName = 'p256-pub';\n const rawKey = rawKeyInHexfromUncompressed(ab2hex(publicKeyRaw));\n const compressedKey = compressedKeyInHexfromRaw(rawKey);\n const did = encodeDIDfromHexString(multicodecName, compressedKey);\n return did as DID;\n }\n\n async #generateECDSAKeyPair() {\n const subtleCrypto = await this.#subtleCrypto;\n const keyPair = await subtleCrypto.generateKey(\n ConnectCrypto.algorithm,\n true,\n ['sign', 'verify'],\n );\n return keyPair;\n }\n\n async #exportKeyPair(): Promise<JwkKeyPair> {\n if (!this.#keyPair) {\n throw new Error('No key pair available');\n }\n const subtleCrypto = await this.#subtleCrypto;\n const jwkKeyPair = {\n publicKey: await subtleCrypto.exportKey(\n 'jwk',\n this.#keyPair.publicKey,\n ),\n privateKey: await subtleCrypto.exportKey(\n 'jwk',\n this.#keyPair.privateKey,\n ),\n };\n return jwkKeyPair;\n }\n\n async #importKeyPair(jwkKeyPair: JwkKeyPair): Promise<CryptoKeyPair> {\n const subtleCrypto = await this.#subtleCrypto;\n return {\n publicKey: await subtleCrypto.importKey(\n 'jwk',\n jwkKeyPair.publicKey,\n ConnectCrypto.algorithm,\n true,\n ['verify'],\n ),\n privateKey: await subtleCrypto.importKey(\n 'jwk',\n jwkKeyPair.privateKey,\n ConnectCrypto.algorithm,\n true,\n ['sign'],\n ),\n };\n }\n\n #sign = async (\n ...args: Parameters<SubtleCrypto['sign']>\n ): Promise<ArrayBuffer> => {\n return (await this.#subtleCrypto).sign(...args);\n };\n\n #verify = async (\n ...args: Parameters<SubtleCrypto['verify']>\n ): Promise<boolean> => {\n return (await this.#subtleCrypto).verify(...args);\n };\n\n async sign(data: Uint8Array): Promise<Uint8Array> {\n if (this.#keyPair?.privateKey) {\n const subtleCrypto = await this.#subtleCrypto;\n\n const arrayBuffer = await subtleCrypto.sign(\n ConnectCrypto.signAlgorithm,\n this.#keyPair.privateKey,\n data.buffer as ArrayBuffer,\n );\n\n return new Uint8Array(arrayBuffer);\n } else {\n throw new Error('No private key available');\n }\n }\n}\nexport * from './browser.js';\n// export * from './electron.js';\n","export type PKHDid = {\n networkId: string;\n chainId: number;\n address: `0x${string}`;\n};\n\nexport function parsePkhDid(did: string): PKHDid {\n const parts = did.split(':');\n if (!did.startsWith('did:pkh:') || parts.length !== 5) {\n throw new Error('Invalid pkh did');\n }\n const [, , networkId, chainIdStr, address] = parts;\n\n if (!address.startsWith('0x')) {\n throw new Error(`Invalid address: ${address}`);\n }\n\n const chainId = Number(chainIdStr);\n if (isNaN(chainId)) {\n throw new Error(`Invalid chain id: ${chainIdStr}`);\n }\n\n return {\n chainId,\n networkId,\n address: address as PKHDid['address'],\n };\n}\n","export interface IStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n> {\n get<Key extends keyof T>(key: Key): T[Key];\n set<Key extends keyof T>(key: Key, value?: T[Key]): void;\n delete<Key extends keyof T>(key: Key): void;\n}\n\nexport class BaseStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n> implements IStorage<T>\n{\n #store: IStorage<T>;\n #namespace: string;\n\n protected constructor(store: IStorage<T>, namespace: string) {\n this.#store = store;\n this.#namespace = namespace;\n }\n\n #buildKey<Key extends keyof T>(key: Key): Key {\n return `${this.#namespace}:${key.toString()}` as Key;\n }\n\n get<Key extends keyof T>(key: Key): T[Key] {\n return this.#store.get(this.#buildKey(key));\n }\n set<Key extends keyof T>(key: Key, value?: T[Key] | undefined): void {\n return this.#store.set(this.#buildKey(key), value);\n }\n delete<Key extends keyof T>(key: Key): void {\n return this.#store.delete(this.#buildKey(key));\n }\n}\n","import connectConfig from '#connect-config';\nimport { BaseStorage, type IStorage } from './index.js';\n\nconst store: IStorage = {\n get: function <Key extends string>(key: Key): unknown {\n const value = localStorage.getItem(key);\n if (value) {\n return JSON.parse(value);\n }\n return undefined;\n },\n set: function <Key extends string>(key: Key, value?: unknown): void {\n return value\n ? localStorage.setItem(key, JSON.stringify(value))\n : localStorage.removeItem(key);\n },\n delete: function <Key extends string>(key: Key): void {\n return localStorage.removeItem(key);\n },\n};\n\nexport class BrowserStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n> extends BaseStorage<T> {\n constructor(namespace: string) {\n super(\n store as IStorage<T>,\n `${connectConfig.routerBasename}:${namespace}`,\n );\n }\n}\n","import { Renown } from './index.js';\nimport { BrowserStorage } from '../storage/browser.js';\n\nexport function initRenownBrowser(connectId: string) {\n return new Renown(new BrowserStorage('renown'), connectId);\n}\n","import { logger } from 'document-drive';\nimport type { IStorage } from '../storage/index.js';\nimport { getEnsInfo } from '../viem.js';\nimport { RENOWN_URL } from './constants.js';\nimport {\n type PowerhouseVerifiableCredential,\n type RenownStorage,\n type User,\n} from './types.js';\nimport { parsePkhDid } from './utils.js';\n\nexport * from './browser.js';\nexport * from './constants.js';\nexport * from './types.js';\nexport type {\n PowerhouseVerifiableCredential,\n Unsubscribe,\n User,\n} from './types.js';\nexport * from './utils.js';\n\nexport class Renown {\n #baseUrl: string;\n #store: RenownStorage;\n #connectId: string;\n #eventEmitter = new EventTarget();\n\n constructor(store: IStorage, connectId: string, baseUrl = RENOWN_URL) {\n this.#store = store as RenownStorage;\n this.#connectId = connectId;\n this.#baseUrl = baseUrl;\n\n if (this.user) {\n this.login(this.user.did).catch(() => void 0);\n }\n }\n\n get user() {\n return this.#store.get('user');\n }\n\n #updateUser(user: User | undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n user ? this.#store.set('user', user) : this.#store.delete('user');\n this.#eventEmitter.dispatchEvent(\n new CustomEvent('user', { detail: user }),\n );\n }\n\n set connectId(connectId: string) {\n this.#connectId = connectId;\n const user = this.user;\n\n this.#updateUser(undefined);\n\n // tries to login with new connectId\n if (user) {\n this.login(user.did).catch(e => {\n console.log('User no longer authenticated:', e);\n });\n }\n }\n\n async login(did: string): Promise<User> {\n try {\n const result = parsePkhDid(did);\n\n const credential = await this.#getCredential(\n result.address,\n result.chainId,\n this.#connectId,\n );\n if (!credential) {\n this.#updateUser(undefined);\n throw new Error('Credential not found');\n }\n const user: User = {\n ...result,\n did,\n credential,\n };\n\n getEnsInfo(user.address, user.chainId)\n .then(ens => {\n if (\n this.user?.address === user.address &&\n this.user.chainId === user.chainId\n ) {\n this.#updateUser({ ...this.user, ens });\n }\n })\n .catch(logger.error);\n\n this.#updateUser(user);\n return user;\n } catch (error) {\n logger.error(error);\n this.#updateUser(undefined);\n throw error;\n }\n }\n\n logout() {\n this.#updateUser(undefined);\n }\n\n on(event: 'user', listener: (user: User) => void) {\n const eventListener = ((e: CustomEvent<User>) => {\n listener(e.detail);\n }) as EventListener;\n\n this.#eventEmitter.addEventListener(event, eventListener);\n return () => {\n this.#eventEmitter.removeEventListener(event, eventListener);\n };\n }\n\n async #getCredential(\n address: string,\n chainId: number,\n connectId: string,\n ): Promise<PowerhouseVerifiableCredential | undefined> {\n if (!this.#baseUrl) {\n throw new Error('RENOWN_URL is not set');\n }\n const url = new URL(\n `/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(connectId)}`,\n this.#baseUrl,\n );\n const response = await fetch(url, {\n method: 'GET',\n });\n if (response.ok) {\n const result = (await response.json()) as {\n credential: PowerhouseVerifiableCredential;\n };\n return result.credential;\n } else {\n throw new Error('Failed to get credential');\n }\n }\n}\n"],"file":"assets/index-C6Izifpd.js"}
|
|
1
|
+
{"version":3,"mappings":"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","names":["store","ab","_store"],"ignoreList":[],"sources":["../../src/services/crypto/browser.ts","../../src/services/crypto/index.ts","../../src/services/renown/utils.ts","../../src/services/storage/index.ts","../../src/services/storage/browser.ts","../../src/services/renown/browser.ts","../../src/services/renown/index.ts"],"sourcesContent":["import { type JsonWebKeyPairStorage, type JwkKeyPair } from './index.js';\n\nexport class BrowserKeyStorage implements JsonWebKeyPairStorage {\n static #DB_NAME = 'browserKeyDB';\n static #STORE_NAME = 'keyPairs';\n static #KEY = 'keyPair';\n\n #db: Promise<IDBDatabase>;\n constructor() {\n this.#db = new Promise((resolve, reject) => {\n const req = indexedDB.open(BrowserKeyStorage.#DB_NAME, 1);\n req.onupgradeneeded = () => {\n req.result.createObjectStore(BrowserKeyStorage.#STORE_NAME);\n };\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error as Error);\n });\n }\n\n async #useStore(mode: IDBTransactionMode = 'readwrite') {\n const database = await this.#db;\n const transaction = database.transaction(\n BrowserKeyStorage.#STORE_NAME,\n mode,\n );\n const store = transaction.objectStore(BrowserKeyStorage.#STORE_NAME);\n return store;\n }\n\n async saveKeyPair(keyPair: JwkKeyPair) {\n const store = await this.#useStore();\n const request = store.put(keyPair, BrowserKeyStorage.#KEY);\n return new Promise<void>((resolve, reject) => {\n request.onsuccess = () => {\n resolve();\n };\n request.onerror = () => {\n reject(new Error('Failed to save key pair'));\n };\n });\n }\n\n async loadKeyPair(): Promise<JwkKeyPair | undefined> {\n const store = await this.#useStore('readonly');\n const request = store.getAll();\n\n return new Promise<JwkKeyPair | undefined>((resolve, reject) => {\n request.onsuccess = () => {\n const keyPair = request.result.length\n ? (request.result[0] as JwkKeyPair)\n : undefined;\n resolve(keyPair);\n };\n request.onerror = () => {\n reject(new Error('Failed to load key pair'));\n };\n });\n }\n}\n","/* eslint-disable no-unused-private-class-members */\nimport {\n compressedKeyInHexfromRaw,\n encodeDIDfromHexString,\n rawKeyInHexfromUncompressed,\n} from 'did-key-creator';\n\nexport type JwkKeyPair = {\n publicKey: JsonWebKey;\n privateKey: JsonWebKey;\n};\n\nexport interface JsonWebKeyPairStorage {\n loadKeyPair(): Promise<JwkKeyPair | undefined>;\n saveKeyPair(keyPair: JwkKeyPair): Promise<void>;\n}\n\nfunction ab2hex(ab: ArrayBuffer) {\n return Array.prototype.map\n .call(new Uint8Array(ab), (x: number) =>\n ('00' + x.toString(16)).slice(-2),\n )\n .join('');\n}\n\nexport interface IConnectCrypto {\n did: () => Promise<DID>;\n regenerateDid(): Promise<void>;\n sign: (data: Uint8Array) => Promise<Uint8Array>;\n}\n\nexport type DID = `did:key:${string}`;\n\nexport class ConnectCrypto implements IConnectCrypto {\n #subtleCrypto: Promise<SubtleCrypto>;\n #keyPair: CryptoKeyPair | undefined;\n #keyPairStorage: JsonWebKeyPairStorage;\n\n #did: Promise<DID>;\n\n static algorithm: EcKeyAlgorithm = {\n name: 'ECDSA',\n namedCurve: 'P-256',\n };\n\n static signAlgorithm = {\n name: 'ECDSA',\n namedCurve: 'P-256',\n hash: 'SHA-256',\n };\n\n constructor(keyPairStorage: JsonWebKeyPairStorage) {\n this.#keyPairStorage = keyPairStorage;\n\n // Initializes the subtleCrypto module according to the host environment\n this.#subtleCrypto = this.#initCrypto();\n\n this.#did = this.#initialize();\n }\n\n #initCrypto() {\n return new Promise<SubtleCrypto>((resolve, reject) => {\n if (typeof window === 'undefined') {\n import('node:crypto')\n .then(module => {\n resolve(module.webcrypto.subtle as SubtleCrypto);\n })\n .catch(reject);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!window.crypto?.subtle) {\n reject(new Error('Crypto module not available'));\n }\n resolve(window.crypto.subtle);\n }\n });\n }\n\n // loads the key pair from storage or generates a new one if none is stored\n async #initialize() {\n const loadedKeyPair = await this.#keyPairStorage.loadKeyPair();\n if (loadedKeyPair) {\n this.#keyPair = await this.#importKeyPair(loadedKeyPair);\n console.log('Found key pair');\n } else {\n this.#keyPair = await this.#generateECDSAKeyPair();\n console.log('Created key pair');\n await this.#keyPairStorage.saveKeyPair(await this.#exportKeyPair());\n }\n const did = await this.#parseDid();\n console.log('Connect DID:', did);\n return did;\n }\n\n did() {\n return this.#did;\n }\n\n async regenerateDid() {\n this.#keyPair = await this.#generateECDSAKeyPair();\n await this.#keyPairStorage.saveKeyPair(await this.#exportKeyPair());\n }\n\n async #parseDid(): Promise<DID> {\n if (!this.#keyPair) {\n throw new Error('No key pair available');\n }\n\n const subtleCrypto = await this.#subtleCrypto;\n const publicKeyRaw = await subtleCrypto.exportKey(\n 'raw',\n this.#keyPair.publicKey,\n );\n\n const multicodecName = 'p256-pub';\n const rawKey = rawKeyInHexfromUncompressed(ab2hex(publicKeyRaw));\n const compressedKey = compressedKeyInHexfromRaw(rawKey);\n const did = encodeDIDfromHexString(multicodecName, compressedKey);\n return did as DID;\n }\n\n async #generateECDSAKeyPair() {\n const subtleCrypto = await this.#subtleCrypto;\n const keyPair = await subtleCrypto.generateKey(\n ConnectCrypto.algorithm,\n true,\n ['sign', 'verify'],\n );\n return keyPair;\n }\n\n async #exportKeyPair(): Promise<JwkKeyPair> {\n if (!this.#keyPair) {\n throw new Error('No key pair available');\n }\n const subtleCrypto = await this.#subtleCrypto;\n const jwkKeyPair = {\n publicKey: await subtleCrypto.exportKey(\n 'jwk',\n this.#keyPair.publicKey,\n ),\n privateKey: await subtleCrypto.exportKey(\n 'jwk',\n this.#keyPair.privateKey,\n ),\n };\n return jwkKeyPair;\n }\n\n async #importKeyPair(jwkKeyPair: JwkKeyPair): Promise<CryptoKeyPair> {\n const subtleCrypto = await this.#subtleCrypto;\n return {\n publicKey: await subtleCrypto.importKey(\n 'jwk',\n jwkKeyPair.publicKey,\n ConnectCrypto.algorithm,\n true,\n ['verify'],\n ),\n privateKey: await subtleCrypto.importKey(\n 'jwk',\n jwkKeyPair.privateKey,\n ConnectCrypto.algorithm,\n true,\n ['sign'],\n ),\n };\n }\n\n #sign = async (\n ...args: Parameters<SubtleCrypto['sign']>\n ): Promise<ArrayBuffer> => {\n return (await this.#subtleCrypto).sign(...args);\n };\n\n #verify = async (\n ...args: Parameters<SubtleCrypto['verify']>\n ): Promise<boolean> => {\n return (await this.#subtleCrypto).verify(...args);\n };\n\n async sign(data: Uint8Array): Promise<Uint8Array> {\n if (this.#keyPair?.privateKey) {\n const subtleCrypto = await this.#subtleCrypto;\n\n const arrayBuffer = await subtleCrypto.sign(\n ConnectCrypto.signAlgorithm,\n this.#keyPair.privateKey,\n data.buffer as ArrayBuffer,\n );\n\n return new Uint8Array(arrayBuffer);\n } else {\n throw new Error('No private key available');\n }\n }\n}\nexport * from './browser.js';\n// export * from './electron.js';\n","export type PKHDid = {\n networkId: string;\n chainId: number;\n address: `0x${string}`;\n};\n\nexport function parsePkhDid(did: string): PKHDid {\n const parts = did.split(':');\n if (!did.startsWith('did:pkh:') || parts.length !== 5) {\n throw new Error('Invalid pkh did');\n }\n const [, , networkId, chainIdStr, address] = parts;\n\n if (!address.startsWith('0x')) {\n throw new Error(`Invalid address: ${address}`);\n }\n\n const chainId = Number(chainIdStr);\n if (isNaN(chainId)) {\n throw new Error(`Invalid chain id: ${chainIdStr}`);\n }\n\n return {\n chainId,\n networkId,\n address: address as PKHDid['address'],\n };\n}\n","export interface IStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n> {\n get<Key extends keyof T>(key: Key): T[Key];\n set<Key extends keyof T>(key: Key, value?: T[Key]): void;\n delete<Key extends keyof T>(key: Key): void;\n}\n\nexport class BaseStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n> implements IStorage<T>\n{\n #store: IStorage<T>;\n #namespace: string;\n\n protected constructor(store: IStorage<T>, namespace: string) {\n this.#store = store;\n this.#namespace = namespace;\n }\n\n #buildKey<Key extends keyof T>(key: Key): Key {\n return `${this.#namespace}:${key.toString()}` as Key;\n }\n\n get<Key extends keyof T>(key: Key): T[Key] {\n return this.#store.get(this.#buildKey(key));\n }\n set<Key extends keyof T>(key: Key, value?: T[Key] | undefined): void {\n return this.#store.set(this.#buildKey(key), value);\n }\n delete<Key extends keyof T>(key: Key): void {\n return this.#store.delete(this.#buildKey(key));\n }\n}\n","import connectConfig from '#connect-config';\nimport { BaseStorage, type IStorage } from './index.js';\n\nconst store: IStorage = {\n get: function <Key extends string>(key: Key): unknown {\n const value = localStorage.getItem(key);\n if (value) {\n return JSON.parse(value);\n }\n return undefined;\n },\n set: function <Key extends string>(key: Key, value?: unknown): void {\n return value\n ? localStorage.setItem(key, JSON.stringify(value))\n : localStorage.removeItem(key);\n },\n delete: function <Key extends string>(key: Key): void {\n return localStorage.removeItem(key);\n },\n};\n\nexport class BrowserStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n> extends BaseStorage<T> {\n constructor(namespace: string) {\n super(\n store as IStorage<T>,\n `${connectConfig.routerBasename}:${namespace}`,\n );\n }\n}\n","import { Renown } from './index.js';\nimport { BrowserStorage } from '../storage/browser.js';\n\nexport function initRenownBrowser(connectId: string) {\n return new Renown(new BrowserStorage('renown'), connectId);\n}\n","import { logger } from 'document-drive';\nimport type { IStorage } from '../storage/index.js';\nimport { getEnsInfo } from '../viem.js';\nimport { RENOWN_URL } from './constants.js';\nimport {\n type PowerhouseVerifiableCredential,\n type RenownStorage,\n type User,\n} from './types.js';\nimport { parsePkhDid } from './utils.js';\n\nexport * from './browser.js';\nexport * from './constants.js';\nexport * from './types.js';\nexport type {\n PowerhouseVerifiableCredential,\n Unsubscribe,\n User,\n} from './types.js';\nexport * from './utils.js';\n\nexport class Renown {\n #baseUrl: string;\n #store: RenownStorage;\n #connectId: string;\n #eventEmitter = new EventTarget();\n\n constructor(store: IStorage, connectId: string, baseUrl = RENOWN_URL) {\n this.#store = store as RenownStorage;\n this.#connectId = connectId;\n this.#baseUrl = baseUrl;\n\n if (this.user) {\n this.login(this.user.did).catch(() => void 0);\n }\n }\n\n get user() {\n return this.#store.get('user');\n }\n\n #updateUser(user: User | undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n user ? this.#store.set('user', user) : this.#store.delete('user');\n this.#eventEmitter.dispatchEvent(\n new CustomEvent('user', { detail: user }),\n );\n }\n\n set connectId(connectId: string) {\n this.#connectId = connectId;\n const user = this.user;\n\n this.#updateUser(undefined);\n\n // tries to login with new connectId\n if (user) {\n this.login(user.did).catch(e => {\n console.log('User no longer authenticated:', e);\n });\n }\n }\n\n async login(did: string): Promise<User> {\n try {\n const result = parsePkhDid(did);\n\n const credential = await this.#getCredential(\n result.address,\n result.chainId,\n this.#connectId,\n );\n if (!credential) {\n this.#updateUser(undefined);\n throw new Error('Credential not found');\n }\n const user: User = {\n ...result,\n did,\n credential,\n };\n\n getEnsInfo(user.address, user.chainId)\n .then(ens => {\n if (\n this.user?.address === user.address &&\n this.user.chainId === user.chainId\n ) {\n this.#updateUser({ ...this.user, ens });\n }\n })\n .catch(logger.error);\n\n this.#updateUser(user);\n return user;\n } catch (error) {\n logger.error(error);\n this.#updateUser(undefined);\n throw error;\n }\n }\n\n logout() {\n this.#updateUser(undefined);\n }\n\n on(event: 'user', listener: (user: User) => void) {\n const eventListener = ((e: CustomEvent<User>) => {\n listener(e.detail);\n }) as EventListener;\n\n this.#eventEmitter.addEventListener(event, eventListener);\n return () => {\n this.#eventEmitter.removeEventListener(event, eventListener);\n };\n }\n\n async #getCredential(\n address: string,\n chainId: number,\n connectId: string,\n ): Promise<PowerhouseVerifiableCredential | undefined> {\n if (!this.#baseUrl) {\n throw new Error('RENOWN_URL is not set');\n }\n const url = new URL(\n `/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(connectId)}`,\n this.#baseUrl,\n );\n const response = await fetch(url, {\n method: 'GET',\n });\n if (response.ok) {\n const result = (await response.json()) as {\n credential: PowerhouseVerifiableCredential;\n };\n return result.credential;\n } else {\n throw new Error('Failed to get credential');\n }\n }\n}\n"],"file":"assets/index-q1LnGFn2.js"}
|
|
@@ -99,8 +99,8 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
|
|
|
99
99
|
return baseModule().catch(handlePreloadError);
|
|
100
100
|
});
|
|
101
101
|
};
|
|
102
|
-
__vitePreload(() => import("./index-
|
|
102
|
+
__vitePreload(() => import("./index-4Y8IZCoL.js"), true ? [] : void 0);
|
|
103
103
|
export {
|
|
104
104
|
__vitePreload as _
|
|
105
105
|
};
|
|
106
|
-
//# sourceMappingURL=main.
|
|
106
|
+
//# sourceMappingURL=main.uPY9aYSk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8BA,OAAO,qBAAY","names":[],"ignoreList":[],"sources":["../../src/renderer.ts"],"sourcesContent":["/**\n * This file will automatically be loaded by vite and run in the \"renderer\" context.\n * To learn more about the differences between the \"main\" and the \"renderer\" context in\n * Electron, visit:\n *\n * https://electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes\n *\n * By default, Node.js integration in this file is disabled. When enabling Node.js integration\n * in a renderer process, please be aware of potential security implications. You can read\n * more about security risks here:\n *\n * https://electronjs.org/docs/tutorial/security\n *\n * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`\n * flag:\n *\n * ```\n * // Create the browser window.\n * mainWindow = new BrowserWindow({\n * width: 800,\n * height: 600,\n * webPreferences: {\n * nodeIntegration: true\n * }\n * });\n * ```\n */\n\n// splits app code into separate chunk to avoid circular dependencies\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nimport('./index.js');\n"],"file":"assets/main.
|
|
1
|
+
{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8BA,OAAO,qBAAY","names":[],"ignoreList":[],"sources":["../../src/renderer.ts"],"sourcesContent":["/**\n * This file will automatically be loaded by vite and run in the \"renderer\" context.\n * To learn more about the differences between the \"main\" and the \"renderer\" context in\n * Electron, visit:\n *\n * https://electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes\n *\n * By default, Node.js integration in this file is disabled. When enabling Node.js integration\n * in a renderer process, please be aware of potential security implications. You can read\n * more about security risks here:\n *\n * https://electronjs.org/docs/tutorial/security\n *\n * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`\n * flag:\n *\n * ```\n * // Create the browser window.\n * mainWindow = new BrowserWindow({\n * width: 800,\n * height: 600,\n * webPreferences: {\n * nodeIntegration: true\n * }\n * });\n * ```\n */\n\n// splits app code into separate chunk to avoid circular dependencies\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nimport('./index.js');\n"],"file":"assets/main.uPY9aYSk.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { a3 as useUnwrappedAnalyticsStore, a4 as AnalyticsProvider } from "./app-
|
|
3
|
-
import "./main.
|
|
4
|
-
import "./app-loader-
|
|
2
|
+
import { a3 as useUnwrappedAnalyticsStore, a4 as AnalyticsProvider } from "./app-DULISSV9.js";
|
|
3
|
+
import "./main.uPY9aYSk.js";
|
|
4
|
+
import "./app-loader-CS6aHo9m.js";
|
|
5
5
|
import "react";
|
|
6
6
|
import "react-dom";
|
|
7
7
|
function ReactorAnalyticsProvider({ children }) {
|
|
@@ -12,4 +12,4 @@ export {
|
|
|
12
12
|
ReactorAnalyticsProvider,
|
|
13
13
|
ReactorAnalyticsProvider as default
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=reactor-analytics-
|
|
15
|
+
//# sourceMappingURL=reactor-analytics-C3XNgGME.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-analytics-
|
|
1
|
+
{"version":3,"file":"reactor-analytics-C3XNgGME.js","sources":["../../src/context/reactor-analytics.tsx"],"sourcesContent":["import { AnalyticsProvider } from '@powerhousedao/reactor-browser/analytics/context';\nimport { type PropsWithChildren } from 'react';\nimport { useUnwrappedAnalyticsStore } from '../store/analytics';\n\nexport function ReactorAnalyticsProvider({ children }: PropsWithChildren) {\n const store = useUnwrappedAnalyticsStore();\n\n // Use store if available, otherwise render children without the provider\n return store ? (\n <AnalyticsProvider store={store}>{children}</AnalyticsProvider>\n ) : (\n children\n );\n}\n\nexport default ReactorAnalyticsProvider;\n"],"names":[],"mappings":";;;;;;AAIgB,SAAA,yBAAyB,EAAE,YAA+B;AACtE,QAAM,QAAQ,2BAA2B;AAGzC,SAAO,QACH,oBAAC,mBAAkB,EAAA,OAAe,SAAS,CAAA,IAE3C;AAER;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/content-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/content-CwQswwKt.js","assets/app-DULISSV9.js","assets/main.uPY9aYSk.js","assets/app-loader-CS6aHo9m.js","assets/app-loader-B74nopv_.css","assets/app-b1jkE5Vo.css"])))=>i.map(i=>d[i]);
|
|
2
2
|
var __typeError = (msg) => {
|
|
3
3
|
throw TypeError(msg);
|
|
4
4
|
};
|
|
@@ -8,13 +8,13 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
8
8
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
9
9
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
10
10
|
var _client, _currentQuery, _currentQueryInitialState, _currentResult, _currentResultState, _currentResultOptions, _currentThenable, _selectError, _selectFn, _selectResult, _lastQueryWithDefinedData, _staleTimeoutId, _refetchIntervalId, _currentRefetchInterval, _trackedProps, _QueryObserver_instances, executeFetch_fn, updateStaleTimeout_fn, computeRefetchInterval_fn, updateRefetchInterval_fn, updateTimers_fn, clearStaleTimeout_fn, clearRefetchInterval_fn, updateQuery_fn, notify_fn, _a;
|
|
11
|
-
import { _ as __vitePreload } from "./main.
|
|
11
|
+
import { _ as __vitePreload } from "./main.uPY9aYSk.js";
|
|
12
12
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
13
|
-
import { $ as Icon, _ as logger, a1 as LOCAL, aB as FILE, aR as DRIVE, aY as gql, aZ as request, ah as connectConfig } from "./app-loader-
|
|
13
|
+
import { $ as Icon, _ as logger, a1 as LOCAL, aB as FILE, aR as DRIVE, aY as gql, aZ as request, ah as connectConfig } from "./app-loader-CS6aHo9m.js";
|
|
14
14
|
import * as React from "react";
|
|
15
15
|
import React__default, { useRef, useState, useEffect, useCallback, useContext, useSyncExternalStore, useMemo, Component, createElement, createContext, Suspense } from "react";
|
|
16
16
|
import * as ReactDOM from "react-dom";
|
|
17
|
-
import { P as Popover, a as PopoverTrigger, b as PopoverContent, t as twMerge, B as Button, g as getEnsAvatar$1, c as getEnsName$1, d as BaseError$1, W as WagmiContext, S as Subscribable, p as pendingThenable, r as resolveEnabled, s as shallowEqualObjects, e as resolveStaleTime, n as noop$1, i as isServer, f as isValidTimeout, h as timeUntilStale, j as focusManager, k as fetchState, l as replaceData, m as notifyManager, u as useQueryClient, o as useDocumentDriveServer, q as createRouter$1, v as createBrowserHistory, w as logV6DeprecationWarnings, D as DataRouterContext, x as DataRouterStateContext, R as Router, E as ErrorResponseImpl, y as useRoutesImpl, z as mapRouteProperties, A as useLocation, C as useNavigate, F as useTranslation, G as useUiNodes, H as useDocumentDrives, I as useReadModeContext, J as useAsyncReactor, K as useConnectConfig, L as SUCCESS, M as toast, N as CONFLICT, O as ERROR, Q as isLatestVersion, T as useParams, U as useUiNodesContext, V as useUnwrappedReactor, X as useModal, Y as useLogin, Z as ModalManager, _ as isElectron, $ as isMac, a0 as Outlet, a1 as useGetAppNameForEditorId, a2 as createMemoryRouter } from "./app-
|
|
17
|
+
import { P as Popover, a as PopoverTrigger, b as PopoverContent, t as twMerge, B as Button, g as getEnsAvatar$1, c as getEnsName$1, d as BaseError$1, W as WagmiContext, S as Subscribable, p as pendingThenable, r as resolveEnabled, s as shallowEqualObjects, e as resolveStaleTime, n as noop$1, i as isServer, f as isValidTimeout, h as timeUntilStale, j as focusManager, k as fetchState, l as replaceData, m as notifyManager, u as useQueryClient, o as useDocumentDriveServer, q as createRouter$1, v as createBrowserHistory, w as logV6DeprecationWarnings, D as DataRouterContext, x as DataRouterStateContext, R as Router, E as ErrorResponseImpl, y as useRoutesImpl, z as mapRouteProperties, A as useLocation, C as useNavigate, F as useTranslation, G as useUiNodes, H as useDocumentDrives, I as useReadModeContext, J as useAsyncReactor, K as useConnectConfig, L as SUCCESS, M as toast, N as CONFLICT, O as ERROR, Q as isLatestVersion, T as useParams, U as useUiNodesContext, V as useUnwrappedReactor, X as useModal, Y as useLogin, Z as ModalManager, _ as isElectron, $ as isMac, a0 as Outlet, a1 as useGetAppNameForEditorId, a2 as createMemoryRouter } from "./app-DULISSV9.js";
|
|
18
18
|
const AccountPopover = ({ children, content }) => {
|
|
19
19
|
return jsxs(Popover, { children: [jsx(PopoverTrigger, { asChild: true, children: jsx("div", { className: "cursor-pointer", children }) }), jsx(PopoverContent, { className: "w-52 p-0", align: "start", children: content })] });
|
|
20
20
|
};
|
|
@@ -2120,7 +2120,7 @@ function Home() {
|
|
|
2120
2120
|
/* @__PURE__ */ jsx(HomeScreenAddDriveItem, { onClick: onAddDriveClick })
|
|
2121
2121
|
] });
|
|
2122
2122
|
}
|
|
2123
|
-
const Content = React__default.lazy(() => __vitePreload(() => import("./content-
|
|
2123
|
+
const Content = React__default.lazy(() => __vitePreload(() => import("./content-CwQswwKt.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0));
|
|
2124
2124
|
async function createRouter(routes2) {
|
|
2125
2125
|
var _a2;
|
|
2126
2126
|
const isPackaged = await ((_a2 = window.electronAPI) == null ? void 0 : _a2.isPackaged());
|
|
@@ -2175,4 +2175,4 @@ export {
|
|
|
2175
2175
|
router as r,
|
|
2176
2176
|
useQuery$1 as u
|
|
2177
2177
|
};
|
|
2178
|
-
//# sourceMappingURL=router-
|
|
2178
|
+
//# sourceMappingURL=router-CvCplkfB.js.map
|