adad6961a6dcc2449a755d701d8fd9e74c43a5cd7b43e69e50451c7ce5a3bfdc.json raw
1 {"ast":null,"code":"import _asyncToGenerator from \"/home/mleku/src/orly.dev/next/signer/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { CryptoHelper } from '@common';\nexport const addRelay = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data) {\n this.assureIsInitialized();\n // Check, if a relay with the same URL already exists for the identity.\n const existingRelay = this.getBrowserSessionHandler().browserSessionData?.relays.find(x => x.url.toLowerCase() === data.url.toLowerCase() && x.identityId === data.identityId);\n if (existingRelay) {\n throw new Error('A relay with the same URL already exists.');\n }\n const browserSessionData = this.getBrowserSessionHandler().browserSessionData;\n if (!browserSessionData) {\n throw new Error('Browser session data is undefined.');\n }\n const decryptedRelay = {\n id: CryptoHelper.v4(),\n identityId: data.identityId,\n url: data.url,\n write: data.write,\n read: data.read\n };\n // Add the new relay to the session data.\n browserSessionData.relays.push(decryptedRelay);\n this.getBrowserSessionHandler().saveFullData(browserSessionData);\n // Encrypt the new relay and add it to the sync data.\n const encryptedRelay = yield encryptRelay.call(this, decryptedRelay);\n const encryptedRelays = [...(this.getBrowserSyncHandler().browserSyncData?.relays ?? []), encryptedRelay];\n yield this.getBrowserSyncHandler().saveAndSetPartialData_Relays({\n relays: encryptedRelays\n });\n });\n return function addRelay(_x) {\n return _ref.apply(this, arguments);\n };\n}();\nexport const deleteRelay = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (relayId) {\n this.assureIsInitialized();\n if (!relayId) {\n return;\n }\n const browserSessionData = this.getBrowserSessionHandler().browserSessionData;\n const browserSyncData = this.getBrowserSyncHandler().browserSyncData;\n if (!browserSessionData || !browserSyncData) {\n throw new Error('Browser session or sync data is undefined.');\n }\n browserSessionData.relays = browserSessionData.relays.filter(x => x.id !== relayId);\n yield this.getBrowserSessionHandler().saveFullData(browserSessionData);\n // Handle Sync data.\n const encryptedRelayId = yield this.encrypt(relayId);\n yield this.getBrowserSyncHandler().saveAndSetPartialData_Relays({\n relays: browserSyncData.relays.filter(x => x.id !== encryptedRelayId)\n });\n });\n return function deleteRelay(_x2) {\n return _ref2.apply(this, arguments);\n };\n}();\nexport const updateRelay = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(function* (relayClone) {\n this.assureIsInitialized();\n const browserSessionData = this.getBrowserSessionHandler().browserSessionData;\n const browserSyncData = this.getBrowserSyncHandler().browserSyncData;\n if (!browserSessionData || !browserSyncData) {\n throw new Error('Browser session or sync data is undefined.');\n }\n const sessionRelay = browserSessionData.relays.find(x => x.id === relayClone.id);\n const encryptedRelayId = yield this.encrypt(relayClone.id);\n const syncRelay = browserSyncData.relays.find(x => x.id === encryptedRelayId);\n if (!sessionRelay || !syncRelay) {\n throw new Error('Relay not found in browser session or sync data for update.');\n }\n // Handle Session update.\n sessionRelay.read = relayClone.read;\n sessionRelay.write = relayClone.write;\n sessionRelay.url = relayClone.url;\n yield this.getBrowserSessionHandler().saveFullData(browserSessionData);\n // Handle Sync update.\n syncRelay.read = yield this.encrypt(relayClone.read.toString());\n syncRelay.write = yield this.encrypt(relayClone.write.toString());\n syncRelay.url = yield this.encrypt(relayClone.url);\n yield this.getBrowserSyncHandler().saveAndSetPartialData_Relays({\n relays: browserSyncData.relays\n });\n });\n return function updateRelay(_x3) {\n return _ref3.apply(this, arguments);\n };\n}();\nexport const decryptRelay = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(function* (relay, withLockedVault = undefined) {\n if (typeof withLockedVault === 'undefined') {\n const decryptedRelay = {\n id: yield this.decrypt(relay.id, 'string'),\n identityId: yield this.decrypt(relay.identityId, 'string'),\n url: yield this.decrypt(relay.url, 'string'),\n read: yield this.decrypt(relay.read, 'boolean'),\n write: yield this.decrypt(relay.write, 'boolean')\n };\n return decryptedRelay;\n }\n // v2: Use pre-derived key\n if (withLockedVault.keyBase64) {\n const decryptedRelay = {\n id: yield this.decryptWithLockedVaultV2(relay.id, 'string', withLockedVault.iv, withLockedVault.keyBase64),\n identityId: yield this.decryptWithLockedVaultV2(relay.identityId, 'string', withLockedVault.iv, withLockedVault.keyBase64),\n url: yield this.decryptWithLockedVaultV2(relay.url, 'string', withLockedVault.iv, withLockedVault.keyBase64),\n read: yield this.decryptWithLockedVaultV2(relay.read, 'boolean', withLockedVault.iv, withLockedVault.keyBase64),\n write: yield this.decryptWithLockedVaultV2(relay.write, 'boolean', withLockedVault.iv, withLockedVault.keyBase64)\n };\n return decryptedRelay;\n }\n // v1: Use password (PBKDF2)\n const decryptedRelay = {\n id: yield this.decryptWithLockedVault(relay.id, 'string', withLockedVault.iv, withLockedVault.password),\n identityId: yield this.decryptWithLockedVault(relay.identityId, 'string', withLockedVault.iv, withLockedVault.password),\n url: yield this.decryptWithLockedVault(relay.url, 'string', withLockedVault.iv, withLockedVault.password),\n read: yield this.decryptWithLockedVault(relay.read, 'boolean', withLockedVault.iv, withLockedVault.password),\n write: yield this.decryptWithLockedVault(relay.write, 'boolean', withLockedVault.iv, withLockedVault.password)\n };\n return decryptedRelay;\n });\n return function decryptRelay(_x4) {\n return _ref4.apply(this, arguments);\n };\n}();\nexport const decryptRelays = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(function* (relays, withLockedVault = undefined) {\n const decryptedRelays = [];\n for (const relay of relays) {\n const decryptedRelay = yield decryptRelay.call(this, relay, withLockedVault);\n decryptedRelays.push(decryptedRelay);\n }\n return decryptedRelays;\n });\n return function decryptRelays(_x5) {\n return _ref5.apply(this, arguments);\n };\n}();\nexport const encryptRelay = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(function* (relay) {\n const encryptedRelay = {\n id: yield this.encrypt(relay.id),\n identityId: yield this.encrypt(relay.identityId),\n url: yield this.encrypt(relay.url),\n read: yield this.encrypt(relay.read.toString()),\n write: yield this.encrypt(relay.write.toString())\n };\n return encryptedRelay;\n });\n return function encryptRelay(_x6) {\n return _ref6.apply(this, arguments);\n };\n}();","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}