}
export class Vault {
- static get #blob () {
- return `
- const ${Bip39.name} = ${Bip39}
- const ${Bip44.name} = ${Bip44}
- const ${Blake2b.name} = ${Blake2b}
- const ${NanoNaCl.name} = ${NanoNaCl}
- const ${WalletAesGcm.name} = ${WalletAesGcm}
- const ${Passkey.name} = ${Passkey}
- const ${VaultTimer.name} = ${VaultTimer}
- const ${VaultWorker.name} = ${VaultWorker}
- ${Bip39.name === 'Bip39' ? '' : `const Bip39 = ${Bip39.name}`}
- ${Bip44.name === 'Bip44' ? '' : `const Bip44 = ${Bip44.name}`}
- ${Blake2b.name === 'Blake2b' ? '' : `const Blake2b = ${Blake2b.name}`}
- ${NanoNaCl.name === 'NanoNaCl' ? '' : `const NanoNaCl = ${NanoNaCl.name}`}
- ${WalletAesGcm.name === 'WalletAesGcm' ? '' : `const WalletAesGcm = ${WalletAesGcm.name}`}
- ${Passkey.name === 'Passkey' ? '' : `const Passkey = ${Passkey.name}`}
- ${VaultTimer.name === 'VaultTimer' ? '' : `const VaultTimer = ${VaultTimer.name}`}
- ${VaultWorker.name === 'VaultWorker' ? '' : `const VaultWorker = ${VaultWorker.name}`}
- const v = new VaultWorker()
- `
- }
static #instances: Vault[] = []
static get instances (): Vault[] { return this.#instances }
this.#isIdle = true
this.#isTerminated = false
this.#queue = []
- this.#url = URL.createObjectURL(new Blob([Vault.#blob], { type: 'text/javascript' }))
+ this.#url = URL.createObjectURL(new Blob([blob], { type: 'text/javascript' }))
BROWSER: this.#worker = new Worker(this.#url, { type: 'module' })
BROWSER: this.#worker.addEventListener('message', message => {
this.#report(message.data)
})
- NODE: this.#worker = new NodeWorker(Vault.#blob, {
+ NODE: this.#worker = new NodeWorker(blob, {
eval: true,
stderr: false,
stdout: false
}
}
}
+
+const blob = `
+ const ${Bip39.name} = ${Bip39}
+ const ${Bip44.name} = ${Bip44}
+ const ${Blake2b.name} = ${Blake2b}
+ const ${NanoNaCl.name} = ${NanoNaCl}
+ const ${WalletAesGcm.name} = ${WalletAesGcm}
+ const ${Passkey.name} = ${Passkey}
+ const ${VaultTimer.name} = ${VaultTimer}
+ const ${VaultWorker.name} = ${VaultWorker}
+ ${Bip39.name === 'Bip39' ? '' : `const Bip39 = ${Bip39.name}`}
+ ${Bip44.name === 'Bip44' ? '' : `const Bip44 = ${Bip44.name}`}
+ ${Blake2b.name === 'Blake2b' ? '' : `const Blake2b = ${Blake2b.name}`}
+ ${NanoNaCl.name === 'NanoNaCl' ? '' : `const NanoNaCl = ${NanoNaCl.name}`}
+ ${WalletAesGcm.name === 'WalletAesGcm' ? '' : `const WalletAesGcm = ${WalletAesGcm.name}`}
+ ${Passkey.name === 'Passkey' ? '' : `const Passkey = ${Passkey.name}`}
+ ${VaultTimer.name === 'VaultTimer' ? '' : `const VaultTimer = ${VaultTimer.name}`}
+ ${VaultWorker.name === 'VaultWorker' ? '' : `const VaultWorker = ${VaultWorker.name}`}
+ const v = new VaultWorker()
+`