@secrecy/lib 1.0.0-dev.64 → 1.0.0-dev.66

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 (196) hide show
  1. package/dist/BaseClient-7c38f650.d.ts +351 -0
  2. package/dist/BaseClient.cjs +2 -0
  3. package/dist/BaseClient.cjs.map +1 -0
  4. package/dist/BaseClient.d.ts +16 -104
  5. package/dist/BaseClient.js +2 -430
  6. package/dist/BaseClient.js.map +1 -0
  7. package/dist/PopupTools.cjs +2 -0
  8. package/dist/PopupTools.cjs.map +1 -0
  9. package/dist/PopupTools.d.ts +5 -4
  10. package/dist/PopupTools.js +2 -196
  11. package/dist/PopupTools.js.map +1 -0
  12. package/dist/ZeusThunder.cjs +2 -0
  13. package/dist/ZeusThunder.cjs.map +1 -0
  14. package/dist/ZeusThunder.d.ts +6 -2
  15. package/dist/ZeusThunder.js +2 -65
  16. package/dist/ZeusThunder.js.map +1 -0
  17. package/dist/cache.cjs +2 -0
  18. package/dist/cache.cjs.map +1 -0
  19. package/dist/cache.d.ts +22 -4
  20. package/dist/cache.js +2 -4
  21. package/dist/cache.js.map +1 -0
  22. package/dist/chunk-5WPCTUWH.cjs +2 -0
  23. package/dist/chunk-5WPCTUWH.cjs.map +1 -0
  24. package/dist/chunk-KMTF2BZE.js +2 -0
  25. package/dist/chunk-KMTF2BZE.js.map +1 -0
  26. package/dist/client/SecrecyAppClient.cjs +2 -0
  27. package/dist/client/SecrecyAppClient.cjs.map +1 -0
  28. package/dist/client/SecrecyAppClient.d.ts +16 -17
  29. package/dist/client/SecrecyAppClient.js +2 -227
  30. package/dist/client/SecrecyAppClient.js.map +1 -0
  31. package/dist/client/SecrecyCloudClient.cjs +2 -0
  32. package/dist/client/SecrecyCloudClient.cjs.map +1 -0
  33. package/dist/client/SecrecyCloudClient.d.ts +16 -89
  34. package/dist/client/SecrecyCloudClient.js +2 -1411
  35. package/dist/client/SecrecyCloudClient.js.map +1 -0
  36. package/dist/client/SecrecyDbClient.cjs +2 -0
  37. package/dist/client/SecrecyDbClient.cjs.map +1 -0
  38. package/dist/client/SecrecyDbClient.d.ts +16 -21
  39. package/dist/client/SecrecyDbClient.js +2 -177
  40. package/dist/client/SecrecyDbClient.js.map +1 -0
  41. package/dist/client/SecrecyMailClient.cjs +2 -0
  42. package/dist/client/SecrecyMailClient.cjs.map +1 -0
  43. package/dist/client/SecrecyMailClient.d.ts +16 -42
  44. package/dist/client/SecrecyMailClient.js +2 -1022
  45. package/dist/client/SecrecyMailClient.js.map +1 -0
  46. package/dist/client/SecrecyPayClient.cjs +2 -0
  47. package/dist/client/SecrecyPayClient.cjs.map +1 -0
  48. package/dist/client/SecrecyPayClient.d.ts +16 -7
  49. package/dist/client/SecrecyPayClient.js +2 -36
  50. package/dist/client/SecrecyPayClient.js.map +1 -0
  51. package/dist/client/SecrecyWalletClient.cjs +2 -0
  52. package/dist/client/SecrecyWalletClient.cjs.map +1 -0
  53. package/dist/client/SecrecyWalletClient.d.ts +16 -30
  54. package/dist/client/SecrecyWalletClient.js +2 -73
  55. package/dist/client/SecrecyWalletClient.js.map +1 -0
  56. package/dist/client/convert/file.cjs +2 -0
  57. package/dist/client/convert/file.cjs.map +1 -0
  58. package/dist/client/convert/file.d.ts +11 -5
  59. package/dist/client/convert/file.js +2 -33
  60. package/dist/client/convert/file.js.map +1 -0
  61. package/dist/client/convert/mail.cjs +2 -0
  62. package/dist/client/convert/mail.cjs.map +1 -0
  63. package/dist/client/convert/mail.d.ts +13 -3
  64. package/dist/client/convert/mail.js +2 -43
  65. package/dist/client/convert/mail.js.map +1 -0
  66. package/dist/client/convert/node.cjs +2 -0
  67. package/dist/client/convert/node.cjs.map +1 -0
  68. package/dist/client/convert/node.d.ts +18 -9
  69. package/dist/client/convert/node.js +2 -88
  70. package/dist/client/convert/node.js.map +1 -0
  71. package/dist/client/helpers.cjs +2 -0
  72. package/dist/client/helpers.cjs.map +1 -0
  73. package/dist/client/helpers.d.ts +16 -28
  74. package/dist/client/helpers.js +2 -113
  75. package/dist/client/helpers.js.map +1 -0
  76. package/dist/client/index.cjs +2 -0
  77. package/dist/client/index.cjs.map +1 -0
  78. package/dist/client/index.d.ts +16 -34
  79. package/dist/client/index.js +2 -46
  80. package/dist/client/index.js.map +1 -0
  81. package/dist/client/storage.cjs +2 -0
  82. package/dist/client/storage.cjs.map +1 -0
  83. package/dist/client/storage.d.ts +6 -3
  84. package/dist/client/storage.js +2 -12
  85. package/dist/client/storage.js.map +1 -0
  86. package/dist/client/types/File.cjs +1 -0
  87. package/dist/client/types/File.cjs.map +1 -0
  88. package/dist/client/types/File.d.ts +9 -5
  89. package/dist/client/types/File.js +1 -3
  90. package/dist/client/types/File.js.map +1 -0
  91. package/dist/client/types/Inputs.cjs +1 -0
  92. package/dist/client/types/Inputs.cjs.map +1 -0
  93. package/dist/client/types/Inputs.d.ts +6 -4
  94. package/dist/client/types/Inputs.js +1 -3
  95. package/dist/client/types/Inputs.js.map +1 -0
  96. package/dist/client/types/Node.cjs +1 -0
  97. package/dist/client/types/Node.cjs.map +1 -0
  98. package/dist/client/types/Node.d.ts +9 -56
  99. package/dist/client/types/Node.js +1 -3
  100. package/dist/client/types/Node.js.map +1 -0
  101. package/dist/client/types/UserAppNotifications.cjs +1 -0
  102. package/dist/client/types/UserAppNotifications.cjs.map +1 -0
  103. package/dist/client/types/UserAppNotifications.d.ts +3 -1
  104. package/dist/client/types/UserAppNotifications.js +1 -3
  105. package/dist/client/types/UserAppNotifications.js.map +1 -0
  106. package/dist/client/types/UserAppSettings.cjs +1 -0
  107. package/dist/client/types/UserAppSettings.cjs.map +1 -0
  108. package/dist/client/types/UserAppSettings.d.ts +3 -1
  109. package/dist/client/types/UserAppSettings.js +1 -3
  110. package/dist/client/types/UserAppSettings.js.map +1 -0
  111. package/dist/client/types/index.cjs +2 -0
  112. package/dist/client/types/index.cjs.map +1 -0
  113. package/dist/client/types/index.d.ts +86 -30
  114. package/dist/client/types/index.js +2 -8
  115. package/dist/client/types/index.js.map +1 -0
  116. package/dist/client/types/selectors.cjs +2 -0
  117. package/dist/client/types/selectors.cjs.map +1 -0
  118. package/dist/client/types/selectors.d.ts +7 -5
  119. package/dist/client/types/selectors.js +2 -135
  120. package/dist/client/types/selectors.js.map +1 -0
  121. package/dist/crypto/file.cjs +2 -0
  122. package/dist/crypto/file.cjs.map +1 -0
  123. package/dist/crypto/file.d.ts +8 -6
  124. package/dist/crypto/file.js +2 -195
  125. package/dist/crypto/file.js.map +1 -0
  126. package/dist/crypto/index.cjs +2 -0
  127. package/dist/crypto/index.cjs.map +1 -0
  128. package/dist/crypto/index.d.ts +11 -9
  129. package/dist/crypto/index.js +2 -45
  130. package/dist/crypto/index.js.map +1 -0
  131. package/dist/error.cjs +1 -0
  132. package/dist/error.cjs.map +1 -0
  133. package/dist/error.d.ts +15 -10
  134. package/dist/error.js +1 -3
  135. package/dist/error.js.map +1 -0
  136. package/dist/index.cjs +2 -0
  137. package/dist/index.cjs.map +1 -0
  138. package/dist/index.d.ts +19 -11
  139. package/dist/index.js +2 -9
  140. package/dist/index.js.map +1 -0
  141. package/dist/minify/index.cjs +2 -0
  142. package/dist/minify/index.cjs.map +1 -0
  143. package/dist/minify/index.d.ts +4 -2
  144. package/dist/minify/index.js +2 -23
  145. package/dist/minify/index.js.map +1 -0
  146. package/dist/minify/lz4.cjs +3 -0
  147. package/dist/minify/lz4.cjs.map +1 -0
  148. package/dist/minify/lz4.d.ts +7 -5
  149. package/dist/minify/lz4.js +3 -539
  150. package/dist/minify/lz4.js.map +1 -0
  151. package/dist/sodium.cjs +2 -0
  152. package/dist/sodium.cjs.map +1 -0
  153. package/dist/sodium.d.ts +5 -3
  154. package/dist/sodium.js +2 -6
  155. package/dist/sodium.js.map +1 -0
  156. package/dist/utils/store-buddy.cjs +2 -0
  157. package/dist/utils/store-buddy.cjs.map +1 -0
  158. package/dist/utils/store-buddy.d.ts +4 -3
  159. package/dist/utils/store-buddy.js +2 -58
  160. package/dist/utils/store-buddy.js.map +1 -0
  161. package/dist/utils/time.cjs +2 -0
  162. package/dist/utils/time.cjs.map +1 -0
  163. package/dist/utils/time.d.ts +4 -2
  164. package/dist/utils/time.js +2 -12
  165. package/dist/utils/time.js.map +1 -0
  166. package/dist/utils/utils.cjs +2 -0
  167. package/dist/utils/utils.cjs.map +1 -0
  168. package/dist/utils/utils.d.ts +6 -4
  169. package/dist/utils/utils.js +2 -47
  170. package/dist/utils/utils.js.map +1 -0
  171. package/dist/worker/md5.cjs +2 -0
  172. package/dist/worker/md5.cjs.map +1 -0
  173. package/dist/worker/md5.d.ts +3 -1
  174. package/dist/worker/md5.js +2 -24
  175. package/dist/worker/md5.js.map +1 -0
  176. package/dist/worker/sodium.cjs +2 -0
  177. package/dist/worker/sodium.cjs.map +1 -0
  178. package/dist/worker/sodium.d.ts +6 -3
  179. package/dist/worker/sodium.js +2 -118
  180. package/dist/worker/sodium.js.map +1 -0
  181. package/dist/worker/workerCodes.cjs +254 -0
  182. package/dist/worker/workerCodes.cjs.map +1 -0
  183. package/dist/worker/workerCodes.d.ts +4 -2
  184. package/dist/worker/workerCodes.js +4 -5
  185. package/dist/worker/workerCodes.js.map +1 -0
  186. package/dist/zeus/const.cjs +2 -0
  187. package/dist/zeus/const.cjs.map +1 -0
  188. package/dist/zeus/const.d.ts +5 -3
  189. package/dist/zeus/const.js +2 -1287
  190. package/dist/zeus/const.js.map +1 -0
  191. package/dist/zeus/index.cjs +5 -0
  192. package/dist/zeus/index.cjs.map +1 -0
  193. package/dist/zeus/index.d.ts +2215 -116
  194. package/dist/zeus/index.js +5 -562
  195. package/dist/zeus/index.js.map +1 -0
  196. package/package.json +21 -21
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/SecrecyMailClient.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { generate } from \"shortid\";\nimport { filesCache, usersCache } from \"../cache.js\";\nimport type { ErrorAccessDenied, ErrorBasic, ErrorNotFound } from \"../error.js\";\nimport type {\n SuccessResponse,\n KeyPair,\n NewMail,\n SecrecyClient\n} from \"../index.js\";\nimport { encryptCryptoBox, sodium } from \"../index.js\";\nimport type { MailType, Thunder } from \"../zeus/index.js\";\nimport { convertInternalMailToExternal } from \"./convert/mail.js\";\nimport type {\n DraftMail,\n Mail,\n MailFileInput,\n MailRecipientInput,\n ReceivedMail,\n SentMail,\n WaitingReceivedMail\n} from \"./types/index.js\";\nimport { mailSelector } from \"./types/selectors.js\";\n\nexport class SecrecyMailClient {\n #client: SecrecyClient;\n\n #keys: KeyPair;\n\n #thunder: ReturnType<typeof Thunder>;\n\n constructor(\n client: SecrecyClient,\n keys: KeyPair,\n thunder: ReturnType<typeof Thunder>\n ) {\n this.#client = client;\n this.#keys = keys;\n this.#thunder = thunder;\n }\n\n async get({\n id\n }: {\n id: string;\n }): Promise<SuccessResponse<Mail> | ErrorAccessDenied | null> {\n const { mail } = await this.#thunder(\"query\", {\n scalars: {\n DateTime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString()\n }\n }\n })({\n mail: [\n {\n id\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on QueryMailResponse\": {\n __typename: true,\n mail: mailSelector\n }\n }\n ]\n });\n\n if (!mail) {\n return null;\n }\n\n if (mail.__typename === \"ErrorAccessDenied\") {\n return mail;\n }\n\n if (!mail.mail) {\n return null;\n }\n\n const result = convertInternalMailToExternal(mail.mail, this.#keys);\n\n if (!result) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: result\n };\n }\n\n async recover({\n mailId\n }: {\n mailId: string;\n }): Promise<\n SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null\n > {\n const { recoverMail } = await this.#thunder(\"mutation\")({\n recoverMail: [\n { mailId },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on RecoverMailResponse\": {\n __typename: true,\n recoverMail: true\n }\n }\n ]\n });\n\n if (!recoverMail) {\n return null;\n }\n\n if (recoverMail.__typename === \"ErrorAccessDenied\") {\n return recoverMail;\n }\n\n if (recoverMail.__typename === \"ErrorBasic\") {\n return recoverMail;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: recoverMail.recoverMail\n };\n }\n\n async deletedMails({\n mailType\n }: {\n mailType: MailType;\n }): Promise<SuccessResponse<Mail[]> | ErrorAccessDenied | null> {\n const { deletedMails } = await this.#thunder(\"query\", {\n scalars: {\n DateTime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString()\n }\n }\n })({\n deletedMails: [\n { mailType },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on DeletedMailsResponse\": {\n __typename: true,\n deletedMails: mailSelector\n }\n }\n ]\n });\n\n if (!deletedMails) {\n return null;\n }\n\n if (deletedMails.__typename === \"ErrorAccessDenied\") {\n return deletedMails;\n }\n\n const mails = new Array<Mail>();\n\n for (const m of deletedMails.deletedMails) {\n const mail = convertInternalMailToExternal(m, this.#keys);\n if (mail) {\n mails.push(mail);\n }\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: mails\n };\n }\n\n async create(\n data: NewMail,\n customMessage?: string | null | undefined\n ): Promise<SuccessResponse<boolean> | ErrorBasic | ErrorAccessDenied | null> {\n const mail = await this.createDraft(data);\n if (!mail) {\n return {\n __typename: \"SuccessResponse\",\n data: false\n };\n }\n\n if (mail.__typename === \"ErrorBasic\") {\n return mail;\n }\n\n if (mail.__typename === \"ErrorAccessDenied\") {\n return mail;\n }\n\n const result = await this.sendDraft(\n mail.data.mailIntegrityId,\n customMessage\n );\n\n if (!result) {\n return null;\n }\n\n if (result.__typename === \"ErrorAccessDenied\") {\n return result;\n }\n\n if (result.__typename === \"ErrorBasic\") {\n return result;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: result.data\n };\n }\n\n async waitingReceivedMails(): Promise<\n SuccessResponse<WaitingReceivedMail[]> | ErrorNotFound | null\n > {\n const { user } = await this.#thunder(\"query\")({\n user: [\n {},\n {\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on UserResponse\": {\n __typename: true,\n user: {\n waitingReceivedMails: {\n date: true,\n attachmentsCount: true,\n sender: {\n id: true,\n firstname: true,\n lastname: true,\n email: true,\n publicKey: true\n },\n recipients: {\n id: true,\n firstname: true,\n lastname: true,\n email: true,\n publicKey: true\n },\n temporaryRecipients: {\n email: true\n }\n }\n }\n }\n }\n ]\n });\n\n if (!user) {\n return null;\n }\n\n if (user.__typename === \"ErrorNotFound\") {\n return user;\n }\n\n if (!user.user) {\n return null;\n }\n\n const result = user.user.waitingReceivedMails.map(m => ({\n id: generate(),\n ...m,\n date: new Date(m.date as string)\n }));\n\n return {\n __typename: \"SuccessResponse\",\n data: result\n };\n }\n\n async updateDraft(\n draftId: string,\n { body, subject, files, recipientsIds, replyTo }: Partial<NewMail>\n ): Promise<\n | SuccessResponse<DraftMail>\n | ErrorNotFound\n | ErrorAccessDenied\n | ErrorBasic\n | null\n > {\n const drafts = await this.draftMails();\n if (!drafts) {\n return null;\n }\n\n if (drafts.__typename !== \"SuccessResponse\") {\n return drafts;\n }\n const draft = drafts.data.find(d => d.mailIntegrityId === draftId);\n if (!draft) {\n throw new Error(`Invalid draft ${draftId}`);\n }\n let hashKey: string | null = null;\n let hash: string | null = null;\n if (body || subject) {\n hashKey = sodium.randombytes_buf(\n sodium.crypto_generichash_KEYBYTES,\n \"hex\"\n );\n hash = sodium.crypto_generichash(\n sodium.crypto_generichash_BYTES,\n JSON.stringify({ body, subject }),\n hashKey,\n \"hex\"\n );\n }\n const senderFiles = new Array<MailFileInput>();\n if (files) {\n for (const f of files) {\n let file = filesCache.get(f.id);\n if (!file) {\n await this.#client.cloud.fileMetadata({ id: f.id });\n file = filesCache.get(f.id);\n if (!file) {\n throw new Error(`File ${f.name} (${f.id}) does not exists`);\n }\n }\n senderFiles.push({\n id: file.id,\n fileKey: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(file.key),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n ),\n name: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(f.name),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n )\n });\n }\n }\n\n const { updateDraftMail } = await this.#thunder(\"mutation\", {\n scalars: {\n Json: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string)\n },\n DateTime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString()\n },\n BigInt: {\n decode: (e: unknown) => BigInt(e as string),\n encode: (e: unknown) => (e as bigint).toString()\n }\n }\n })({\n updateDraftMail: [\n {\n draftId,\n recipients: recipientsIds,\n replyTo,\n body: body\n ? sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(body),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n )\n : null,\n subject: subject\n ? sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(subject),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n )\n : null,\n senderFiles,\n hash,\n hashKey\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on UpdateDraftMailResponse\": {\n __typename: true,\n updateDraftMail: mailSelector\n }\n }\n ]\n });\n\n if (!updateDraftMail) {\n return null;\n }\n\n if (updateDraftMail.__typename === \"ErrorAccessDenied\") {\n return updateDraftMail;\n }\n\n if (updateDraftMail.__typename === \"ErrorBasic\") {\n return updateDraftMail;\n }\n\n if (!updateDraftMail.updateDraftMail) {\n return null;\n }\n\n const result = convertInternalMailToExternal(\n updateDraftMail.updateDraftMail,\n this.#keys\n ) as DraftMail;\n\n return {\n __typename: \"SuccessResponse\",\n data: result\n };\n }\n\n async deleteDraft(\n draftId: string\n ): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null> {\n const { deleteDraftMail } = await this.#thunder(\"mutation\")({\n deleteDraftMail: [\n {\n draftId\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on DeleteDraftMailResponse\": {\n __typename: true,\n deleteDraftMail: true\n }\n }\n ]\n });\n\n if (!deleteDraftMail) {\n return null;\n }\n\n if (deleteDraftMail.__typename === \"ErrorAccessDenied\") {\n return deleteDraftMail;\n }\n\n if (!deleteDraftMail.deleteDraftMail) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: deleteDraftMail.deleteDraftMail ?? false\n };\n }\n\n async deleteTrash({\n ids\n }: {\n ids: Array<string>;\n }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null> {\n const { deleteMailTrash } = await this.#thunder(\"mutation\")({\n deleteMailTrash: [\n {\n ids\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on DeleteMailTrashResponse\": {\n __typename: true,\n deleteMailTrash: true\n }\n }\n ]\n });\n\n if (!deleteMailTrash) {\n return null;\n }\n\n if (deleteMailTrash.__typename === \"ErrorAccessDenied\") {\n return deleteMailTrash;\n }\n\n if (!deleteMailTrash.deleteMailTrash) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: deleteMailTrash.deleteMailTrash\n };\n }\n\n async emptyTrash(): Promise<\n SuccessResponse<boolean> | ErrorAccessDenied | null\n > {\n const { emptyMailTrash } = await this.#thunder(\"mutation\")({\n emptyMailTrash: {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on EmptyMailTrashResponse\": {\n __typename: true,\n emptyMailTrash: true\n }\n }\n });\n\n if (!emptyMailTrash) {\n return null;\n }\n\n if (emptyMailTrash.__typename === \"ErrorAccessDenied\") {\n return emptyMailTrash;\n }\n\n if (!emptyMailTrash.emptyMailTrash) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: emptyMailTrash.emptyMailTrash\n };\n }\n\n async delete({\n mailId\n }: {\n mailId: string;\n }): Promise<SuccessResponse<boolean> | ErrorAccessDenied | null> {\n const { deleteMail } = await this.#thunder(\"mutation\")({\n deleteMail: [\n {\n mailId\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on DeleteMailResponse\": {\n __typename: true,\n deleteMail: true\n }\n }\n ]\n });\n\n if (!deleteMail) {\n return null;\n }\n\n if (deleteMail.__typename === \"ErrorAccessDenied\") {\n return deleteMail;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: deleteMail.deleteMail\n };\n }\n\n async sendDraft(\n draftId: string,\n customMessage?: string | null | undefined\n ): Promise<SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null> {\n const drafts = await this.draftMails();\n\n if (!drafts) {\n return {\n __typename: \"SuccessResponse\",\n data: false\n };\n }\n if (drafts.__typename !== \"SuccessResponse\") {\n return {\n __typename: \"SuccessResponse\",\n data: false\n };\n }\n\n const draft = drafts.data.find(d => d.mailIntegrityId === draftId);\n if (!draft) {\n return {\n __typename: \"SuccessResponse\",\n data: false\n };\n }\n const recipients = new Array<MailRecipientInput>();\n\n const temporaryRecipients = new Array<string>();\n\n for (const { email } of draft.temporaryRecipients) {\n if (!email) {\n continue;\n }\n const input = await this._eachUser(\n draft.files,\n draft.subject,\n draft.body,\n email\n );\n\n if (!input) {\n temporaryRecipients.push(email);\n } else {\n recipients.push(input);\n }\n }\n\n for (const { id } of draft.recipients) {\n const input = await this._eachUser(\n draft.files,\n draft.subject,\n draft.body,\n id\n );\n\n if (!input) {\n temporaryRecipients.push(id);\n } else {\n recipients.push(input);\n }\n }\n\n const { sendDraftMail } = await this.#thunder(\"mutation\")({\n sendDraftMail: [\n {\n temporaryRecipients,\n recipients,\n draftMailId: draft.mailIntegrityId,\n customMessage\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on SendDraftMailResponse\": {\n __typename: true,\n sendDraftMail: true\n }\n }\n ]\n });\n\n if (!sendDraftMail) {\n return null;\n }\n\n if (sendDraftMail.__typename === \"ErrorAccessDenied\") {\n return sendDraftMail;\n }\n\n if (sendDraftMail.__typename === \"ErrorBasic\") {\n return sendDraftMail;\n }\n\n if (!sendDraftMail.sendDraftMail) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: sendDraftMail.sendDraftMail\n };\n }\n\n async sendWaitingEmails(): Promise<\n SuccessResponse<boolean> | ErrorAccessDenied | ErrorBasic | null\n > {\n // TODO opti this\n const mails = await this.sentMails();\n\n if (!mails) {\n return {\n __typename: \"SuccessResponse\",\n data: false\n };\n }\n if (mails.__typename !== \"SuccessResponse\") {\n return {\n __typename: \"SuccessResponse\",\n data: false\n };\n }\n const filtered = mails.data.filter(m => m.temporaryRecipients.length > 0);\n\n for (const mail of filtered) {\n for (const { email } of mail.temporaryRecipients) {\n if (!email) {\n continue;\n }\n try {\n const input = await this._eachUser(\n mail.files,\n mail.subject,\n mail.body,\n email\n );\n\n if (!input) {\n continue;\n }\n await this.#thunder(\"mutation\")({\n sendOneMail: [\n {\n mailIntegrityId: mail.mailIntegrityId,\n recipient: input\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on RecoverNodeResponse\": {\n __typename: true,\n recoverNode: true\n }\n }\n ]\n });\n } catch {\n continue;\n }\n }\n }\n return {\n __typename: \"SuccessResponse\",\n data: false\n };\n }\n\n async createDraft({\n body,\n subject,\n files,\n recipientsIds,\n replyTo\n }: NewMail): Promise<\n SuccessResponse<DraftMail> | ErrorAccessDenied | ErrorBasic | null\n > {\n const hashKey = sodium.randombytes_buf(\n sodium.crypto_generichash_KEYBYTES,\n \"hex\"\n );\n const hash = sodium.crypto_generichash(\n sodium.crypto_generichash_BYTES,\n JSON.stringify({ body, subject }),\n hashKey,\n \"hex\"\n );\n const senderFiles = new Array<MailFileInput>();\n for (const f of files) {\n let file = filesCache.get(f.id);\n if (!file) {\n await this.#client.cloud.fileMetadata({ id: f.id });\n file = filesCache.get(f.id);\n if (!file) {\n throw new Error(`File ${f.name} (${f.id}) does not exists`);\n }\n }\n senderFiles.push({\n id: file.id,\n fileKey: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(file.key),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n ),\n name: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(f.name),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n )\n });\n }\n\n const { createDraftMail } = await this.#thunder(\"mutation\", {\n scalars: {\n DateTime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString()\n }\n }\n })({\n createDraftMail: [\n {\n recipients: recipientsIds,\n replyTo,\n body: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(body),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n ),\n subject: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(subject),\n this.#keys.publicKey,\n this.#keys.privateKey\n )\n ),\n senderFiles,\n hash,\n hashKey\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on CreateDraftMailResponse\": {\n __typename: true,\n createDraftMail: mailSelector\n }\n }\n ]\n });\n\n if (!createDraftMail) {\n return null;\n }\n\n if (createDraftMail.__typename === \"ErrorAccessDenied\") {\n return createDraftMail;\n }\n\n if (createDraftMail.__typename === \"ErrorBasic\") {\n return createDraftMail;\n }\n\n if (!createDraftMail.createDraftMail) {\n return null;\n }\n\n const result = convertInternalMailToExternal(\n createDraftMail.createDraftMail,\n this.#keys\n ) as DraftMail;\n\n return {\n __typename: \"SuccessResponse\",\n data: result\n };\n }\n\n async read({\n mailId\n }: {\n mailId: string;\n }): Promise<\n | SuccessResponse<boolean>\n | ErrorAccessDenied\n | ErrorBasic\n | ErrorNotFound\n | null\n > {\n const { readMail } = await this.#thunder(\"mutation\")({\n readMail: [\n { mailId },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on ReadMailResponse\": {\n __typename: true,\n readMail: true\n }\n }\n ]\n });\n\n if (!readMail) {\n return null;\n }\n\n if (readMail.__typename === \"ErrorAccessDenied\") {\n return readMail;\n }\n\n if (readMail.__typename === \"ErrorBasic\") {\n return readMail;\n }\n\n if (readMail.__typename === \"ErrorNotFound\") {\n return readMail;\n }\n\n if (!readMail.readMail) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: readMail.readMail\n };\n }\n\n async unread({\n mailId\n }: {\n mailId: string;\n }): Promise<\n | SuccessResponse<boolean>\n | ErrorAccessDenied\n | ErrorBasic\n | ErrorNotFound\n | null\n > {\n const { unreadMail } = await this.#thunder(\"mutation\")({\n unreadMail: [\n { mailId },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on UnreadMailResponse\": {\n __typename: true,\n unreadMail: true\n }\n }\n ]\n });\n\n if (!unreadMail) {\n return null;\n }\n\n if (unreadMail.__typename === \"ErrorAccessDenied\") {\n return unreadMail;\n }\n\n if (unreadMail.__typename === \"ErrorBasic\") {\n return unreadMail;\n }\n\n if (unreadMail.__typename === \"ErrorNotFound\") {\n return unreadMail;\n }\n\n if (!unreadMail.unreadMail) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: unreadMail.unreadMail\n };\n }\n\n async receivedMails(): Promise<\n SuccessResponse<ReceivedMail[]> | ErrorNotFound | null\n > {\n const { user } = await this.#thunder(\"query\", {\n scalars: {\n DateTime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString()\n }\n }\n })({\n user: [\n {},\n {\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on UserResponse\": {\n __typename: true,\n user: {\n receivedMails: mailSelector\n }\n }\n }\n ]\n });\n\n if (!user) {\n return null;\n }\n\n if (user.__typename === \"ErrorNotFound\") {\n return user;\n }\n\n if (!user.user) {\n return null;\n }\n\n // TODO get actual mails on this app only\n\n const receivedMails = new Array<ReceivedMail>();\n\n for (const m of user.user.receivedMails) {\n const mail = convertInternalMailToExternal(m, this.#keys);\n if (mail) {\n receivedMails.push(mail as ReceivedMail);\n }\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: receivedMails\n };\n }\n\n async sentMails(): Promise<\n SuccessResponse<SentMail[]> | ErrorNotFound | null\n > {\n const { user } = await this.#thunder(\"query\", {\n scalars: {\n DateTime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString()\n }\n }\n })({\n user: [\n {},\n {\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on UserResponse\": {\n __typename: true,\n user: {\n sentMails: mailSelector\n }\n }\n }\n ]\n });\n\n if (!user) {\n return null;\n }\n\n if (user.__typename === \"ErrorNotFound\") {\n return user;\n }\n\n if (!user.user) {\n return null;\n }\n\n // TODO get actual mails on this app only\n\n const sentMails = new Array<SentMail>();\n\n for (const m of user.user.sentMails) {\n const mail = convertInternalMailToExternal(m, this.#keys);\n if (mail) {\n sentMails.push(mail as SentMail);\n }\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: sentMails\n };\n }\n\n async draftMails(): Promise<\n SuccessResponse<DraftMail[]> | ErrorNotFound | null\n > {\n const { user } = await this.#thunder(\"query\", {\n scalars: {\n DateTime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString()\n }\n }\n })({\n user: [\n {},\n {\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on UserResponse\": {\n __typename: true,\n user: {\n draftMails: mailSelector\n }\n }\n }\n ]\n });\n\n if (!user) {\n return null;\n }\n\n if (user.__typename === \"ErrorNotFound\") {\n return user;\n }\n\n if (!user.user) {\n return null;\n }\n\n // TODO get actual mails on this app only\n\n const draftMails = new Array<DraftMail>();\n\n for (const m of user.user.draftMails) {\n const draft = convertInternalMailToExternal(m, this.#keys) as DraftMail;\n if (draft) {\n draftMails.push(draft);\n }\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: draftMails\n };\n }\n\n async unreadReceivedMailsCount(): Promise<\n SuccessResponse<number> | ErrorAccessDenied | null\n > {\n const { unreadReceivedMailsCount } = await this.#thunder(\"query\")({\n unreadReceivedMailsCount: {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on UnreadReceivedMailsCountResponse\": {\n __typename: true,\n count: true\n }\n }\n });\n\n if (!unreadReceivedMailsCount) {\n return null;\n }\n\n if (unreadReceivedMailsCount.__typename === \"ErrorAccessDenied\") {\n return unreadReceivedMailsCount;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: unreadReceivedMailsCount.count\n };\n }\n\n private _eachUser = async (\n files: { id: string; name: string }[],\n subject: string,\n body: string,\n idOrMail: string\n ): Promise<MailRecipientInput | null> => {\n let u = usersCache.get(idOrMail);\n\n if (!u || !(\"publicKey\" in u)) {\n try {\n const req = await this.#client.user({\n userId: idOrMail,\n withPublicKey: true\n });\n if (!req) {\n return null;\n }\n if (req.__typename !== \"SuccessResponse\") {\n return null;\n }\n u = req.data;\n } catch {\n return null;\n }\n\n if (!u) {\n return null;\n }\n }\n\n if (!(\"publicKey\" in u)) {\n throw new Error(`User ${idOrMail} have no public key`);\n }\n\n const recipientsFiles = new Array<MailFileInput>();\n\n for (const f of files) {\n let fileInHistory = filesCache.get(f.id);\n if (!fileInHistory) {\n await this.#client.cloud.fileMetadata({ id: f.id });\n fileInHistory = filesCache.get(f.id);\n if (!fileInHistory) {\n throw new Error(`File ${f.name} (${f.id}) does not exists`);\n }\n }\n const key = fileInHistory.key;\n recipientsFiles.push({\n id: f.id,\n name: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(f.name),\n u.publicKey,\n this.#keys.privateKey\n )\n ),\n fileKey: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_hex(key),\n u.publicKey,\n this.#keys.privateKey\n )\n )\n });\n }\n\n return {\n recipientId: u.id,\n body: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(body),\n u.publicKey,\n this.#keys.privateKey\n )\n ),\n subject: sodium.to_hex(\n encryptCryptoBox(\n sodium.from_string(subject),\n u.publicKey,\n this.#keys.privateKey\n )\n ),\n files: recipientsFiles\n };\n };\n}\n"],"mappings":"4EAAA,IAAAA,EAAAC,EAAAC,EACA,OAAS,YAAAC,MAAgB,UACzB,OAAS,cAAAC,EAAY,cAAAC,MAAkB,cAQvC,OAAS,oBAAAC,EAAkB,UAAAC,MAAc,cAEzC,OAAS,iCAAAC,MAAqC,oBAU9C,OAAS,gBAAAC,MAAoB,uBAEtB,MAAMC,CAAkB,CAO7B,YACEC,EACAC,EACAC,EACA,CAVFC,EAAA,KAAAd,EAAA,QAEAc,EAAA,KAAAb,EAAA,QAEAa,EAAA,KAAAZ,EAAA,QA+qCAa,EAAA,KAAQ,YAAY,MAClBC,EACAC,EACAC,EACAC,IACuC,CACvC,IAAI,EAAId,EAAW,IAAIc,CAAQ,EAE/B,GAAI,CAAC,GAAK,EAAE,cAAe,GAAI,CAC7B,GAAI,CACF,MAAMC,EAAM,MAAMC,EAAA,KAAKrB,GAAQ,KAAK,CAClC,OAAQmB,EACR,cAAe,EACjB,CAAC,EAID,GAHI,CAACC,GAGDA,EAAI,aAAe,kBACrB,OAAO,KAET,EAAIA,EAAI,IACV,OAAQE,EAAN,CACA,OAAO,IACT,CAEA,GAAI,CAAC,EACH,OAAO,IAEX,CAEA,GAAI,EAAE,cAAe,GACnB,MAAM,IAAI,MAAM,QAAQH,sBAA6B,EAGvD,MAAMI,EAAkB,IAAI,MAE5B,UAAWC,KAAKR,EAAO,CACrB,IAAIS,EAAgBrB,EAAW,IAAIoB,EAAE,EAAE,EACvC,GAAI,CAACC,IACH,MAAMJ,EAAA,KAAKrB,GAAQ,MAAM,aAAa,CAAE,GAAIwB,EAAE,EAAG,CAAC,EAClDC,EAAgBrB,EAAW,IAAIoB,EAAE,EAAE,EAC/B,CAACC,GACH,MAAM,IAAI,MAAM,QAAQD,EAAE,SAASA,EAAE,qBAAqB,EAG9D,MAAME,EAAMD,EAAc,IAC1BF,EAAgB,KAAK,CACnB,GAAIC,EAAE,GACN,KAAMjB,EAAO,OACXD,EACEC,EAAO,YAAYiB,EAAE,IAAI,EACzB,EAAE,UACFH,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,QAASM,EAAO,OACdD,EACEC,EAAO,SAASmB,CAAG,EACnB,EAAE,UACFL,EAAA,KAAKpB,GAAM,UACb,CACF,CACF,CAAC,CACH,CAEA,MAAO,CACL,YAAa,EAAE,GACf,KAAMM,EAAO,OACXD,EACEC,EAAO,YAAYW,CAAI,EACvB,EAAE,UACFG,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,QAASM,EAAO,OACdD,EACEC,EAAO,YAAYU,CAAO,EAC1B,EAAE,UACFI,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,MAAOsB,CACT,CACF,GA3vCEI,EAAA,KAAK3B,EAAUW,GACfgB,EAAA,KAAK1B,EAAQW,GACbe,EAAA,KAAKzB,EAAWW,EAClB,CAEA,MAAM,IAAI,CACR,GAAAe,CACF,EAE8D,CAC5D,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAMR,EAAA,KAAKnB,GAAL,UAAc,QAAS,CAC5C,QAAS,CACP,SAAU,CACR,OAASoB,GAAe,IAAI,KAAKA,CAAW,EAC5C,OAASA,GAAgBA,EAAW,YAAY,CAClD,CACF,CACF,GAAG,CACD,KAAM,CACJ,CACE,GAAAM,CACF,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,0BAA2B,CACzB,WAAY,GACZ,KAAMnB,CACR,CACF,CACF,CACF,CAAC,EAED,GAAI,CAACoB,EACH,OAAO,KAGT,GAAIA,EAAK,aAAe,oBACtB,OAAOA,EAGT,GAAI,CAACA,EAAK,KACR,OAAO,KAGT,MAAMC,EAAStB,EAA8BqB,EAAK,KAAMR,EAAA,KAAKpB,EAAK,EAElE,OAAK6B,EAIE,CACL,WAAY,kBACZ,KAAMA,CACR,EANS,IAOX,CAEA,MAAM,QAAQ,CACZ,OAAAC,CACF,EAIE,CACA,KAAM,CAAE,YAAAC,CAAY,EAAI,MAAMX,EAAA,KAAKnB,GAAL,UAAc,YAAY,CACtD,YAAa,CACX,CAAE,OAAA6B,CAAO,EACT,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,mBAAoB,CAClB,WAAY,GACZ,QAAS,EACX,EACA,4BAA6B,CAC3B,WAAY,GACZ,YAAa,EACf,CACF,CACF,CACF,CAAC,EAED,OAAKC,EAIDA,EAAY,aAAe,qBAI3BA,EAAY,aAAe,aACtBA,EAGF,CACL,WAAY,kBACZ,KAAMA,EAAY,WACpB,EAdS,IAeX,CAEA,MAAM,aAAa,CACjB,SAAAC,CACF,EAEgE,CAC9D,KAAM,CAAE,aAAAC,CAAa,EAAI,MAAMb,EAAA,KAAKnB,GAAL,UAAc,QAAS,CACpD,QAAS,CACP,SAAU,CACR,OAASoB,GAAe,IAAI,KAAKA,CAAW,EAC5C,OAASA,GAAgBA,EAAW,YAAY,CAClD,CACF,CACF,GAAG,CACD,aAAc,CACZ,CAAE,SAAAW,CAAS,EACX,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,6BAA8B,CAC5B,WAAY,GACZ,aAAcxB,CAChB,CACF,CACF,CACF,CAAC,EAED,GAAI,CAACyB,EACH,OAAO,KAGT,GAAIA,EAAa,aAAe,oBAC9B,OAAOA,EAGT,MAAMC,EAAQ,IAAI,MAElB,UAAWC,KAAKF,EAAa,aAAc,CACzC,MAAML,EAAOrB,EAA8B4B,EAAGf,EAAA,KAAKpB,EAAK,EACpD4B,GACFM,EAAM,KAAKN,CAAI,CAEnB,CAEA,MAAO,CACL,WAAY,kBACZ,KAAMM,CACR,CACF,CAEA,MAAM,OACJE,EACAC,EAC2E,CAC3E,MAAMT,EAAO,MAAM,KAAK,YAAYQ,CAAI,EACxC,GAAI,CAACR,EACH,MAAO,CACL,WAAY,kBACZ,KAAM,EACR,EAOF,GAJIA,EAAK,aAAe,cAIpBA,EAAK,aAAe,oBACtB,OAAOA,EAGT,MAAMC,EAAS,MAAM,KAAK,UACxBD,EAAK,KAAK,gBACVS,CACF,EAEA,OAAKR,EAIDA,EAAO,aAAe,qBAItBA,EAAO,aAAe,aACjBA,EAGF,CACL,WAAY,kBACZ,KAAMA,EAAO,IACf,EAdS,IAeX,CAEA,MAAM,sBAEJ,CACA,KAAM,CAAE,KAAAS,CAAK,EAAI,MAAMlB,EAAA,KAAKnB,GAAL,UAAc,SAAS,CAC5C,KAAM,CACJ,CAAC,EACD,CACE,sBAAuB,CACrB,WAAY,GACZ,QAAS,EACX,EACA,qBAAsB,CACpB,WAAY,GACZ,KAAM,CACJ,qBAAsB,CACpB,KAAM,GACN,iBAAkB,GAClB,OAAQ,CACN,GAAI,GACJ,UAAW,GACX,SAAU,GACV,MAAO,GACP,UAAW,EACb,EACA,WAAY,CACV,GAAI,GACJ,UAAW,GACX,SAAU,GACV,MAAO,GACP,UAAW,EACb,EACA,oBAAqB,CACnB,MAAO,EACT,CACF,CACF,CACF,CACF,CACF,CACF,CAAC,EAED,GAAI,CAACqC,EACH,OAAO,KAGT,GAAIA,EAAK,aAAe,gBACtB,OAAOA,EAGT,GAAI,CAACA,EAAK,KACR,OAAO,KAGT,MAAMT,EAASS,EAAK,KAAK,qBAAqB,IAAIH,GAAMI,EAAAC,EAAA,CACtD,GAAItC,EAAS,GACViC,GAFmD,CAGtD,KAAM,IAAI,KAAKA,EAAE,IAAc,CACjC,EAAE,EAEF,MAAO,CACL,WAAY,kBACZ,KAAMN,CACR,CACF,CAEA,MAAM,YACJY,EACA,CAAE,KAAAxB,EAAM,QAAAD,EAAS,MAAAD,EAAO,cAAA2B,EAAe,QAAAC,CAAQ,EAO/C,CACA,MAAMC,EAAS,MAAM,KAAK,WAAW,EACrC,GAAI,CAACA,EACH,OAAO,KAGT,GAAIA,EAAO,aAAe,kBACxB,OAAOA,EAGT,GAAI,CADUA,EAAO,KAAK,KAAKC,GAAKA,EAAE,kBAAoBJ,CAAO,EAE/D,MAAM,IAAI,MAAM,iBAAiBA,GAAS,EAE5C,IAAIK,EAAyB,KACzBC,EAAsB,MACtB9B,GAAQD,KACV8B,EAAUxC,EAAO,gBACfA,EAAO,4BACP,KACF,EACAyC,EAAOzC,EAAO,mBACZA,EAAO,yBACP,KAAK,UAAU,CAAE,KAAAW,EAAM,QAAAD,CAAQ,CAAC,EAChC8B,EACA,KACF,GAEF,MAAME,EAAc,IAAI,MACxB,GAAIjC,EACF,UAAWQ,KAAKR,EAAO,CACrB,IAAIkC,EAAO9C,EAAW,IAAIoB,EAAE,EAAE,EAC9B,GAAI,CAAC0B,IACH,MAAM7B,EAAA,KAAKrB,GAAQ,MAAM,aAAa,CAAE,GAAIwB,EAAE,EAAG,CAAC,EAClD0B,EAAO9C,EAAW,IAAIoB,EAAE,EAAE,EACtB,CAAC0B,GACH,MAAM,IAAI,MAAM,QAAQ1B,EAAE,SAASA,EAAE,qBAAqB,EAG9DyB,EAAY,KAAK,CACf,GAAIC,EAAK,GACT,QAAS3C,EAAO,OACdD,EACEC,EAAO,YAAY2C,EAAK,GAAG,EAC3B7B,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,KAAMM,EAAO,OACXD,EACEC,EAAO,YAAYiB,EAAE,IAAI,EACzBH,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,CACF,CAAC,CACH,CAGF,KAAM,CAAE,gBAAAkD,CAAgB,EAAI,MAAM9B,EAAA,KAAKnB,GAAL,UAAc,WAAY,CAC1D,QAAS,CACP,KAAM,CACJ,OAASoB,GAAe,KAAK,UAAUA,CAAC,EACxC,OAASA,GAAe,KAAK,MAAMA,CAAW,CAChD,EACA,SAAU,CACR,OAASA,GAAe,IAAI,KAAKA,CAAW,EAC5C,OAASA,GAAgBA,EAAW,YAAY,CAClD,EACA,OAAQ,CACN,OAASA,GAAe,OAAOA,CAAW,EAC1C,OAASA,GAAgBA,EAAa,SAAS,CACjD,CACF,CACF,GAAG,CACD,gBAAiB,CACf,CACE,QAAAoB,EACA,WAAYC,EACZ,QAAAC,EACA,KAAM1B,EACFX,EAAO,OACLD,EACEC,EAAO,YAAYW,CAAI,EACvBG,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,KACJ,QAASgB,EACLV,EAAO,OACLD,EACEC,EAAO,YAAYU,CAAO,EAC1BI,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,KACJ,YAAAgD,EACA,KAAAD,EACA,QAAAD,CACF,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,mBAAoB,CAClB,WAAY,GACZ,QAAS,EACX,EACA,gCAAiC,CAC/B,WAAY,GACZ,gBAAiBtC,CACnB,CACF,CACF,CACF,CAAC,EAED,GAAI,CAAC0C,EACH,OAAO,KAOT,GAJIA,EAAgB,aAAe,qBAI/BA,EAAgB,aAAe,aACjC,OAAOA,EAGT,GAAI,CAACA,EAAgB,gBACnB,OAAO,KAGT,MAAMrB,EAAStB,EACb2C,EAAgB,gBAChB9B,EAAA,KAAKpB,EACP,EAEA,MAAO,CACL,WAAY,kBACZ,KAAM6B,CACR,CACF,CAEA,MAAM,YACJY,EAC8D,CAvclE,IAAAU,EAwcI,KAAM,CAAE,gBAAAC,CAAgB,EAAI,MAAMhC,EAAA,KAAKnB,GAAL,UAAc,YAAY,CAC1D,gBAAiB,CACf,CACE,QAAAwC,CACF,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,gCAAiC,CAC/B,WAAY,GACZ,gBAAiB,EACnB,CACF,CACF,CACF,CAAC,EAED,OAAKW,EAIDA,EAAgB,aAAe,oBAC1BA,EAGJA,EAAgB,gBAId,CACL,WAAY,kBACZ,MAAMD,EAAAC,EAAgB,kBAAhB,KAAAD,EAAmC,EAC3C,EANS,KARA,IAeX,CAEA,MAAM,YAAY,CAChB,IAAAE,CACF,EAEiE,CAC/D,KAAM,CAAE,gBAAAC,CAAgB,EAAI,MAAMlC,EAAA,KAAKnB,GAAL,UAAc,YAAY,CAC1D,gBAAiB,CACf,CACE,IAAAoD,CACF,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,gCAAiC,CAC/B,WAAY,GACZ,gBAAiB,EACnB,CACF,CACF,CACF,CAAC,EAED,OAAKC,EAIDA,EAAgB,aAAe,oBAC1BA,EAGJA,EAAgB,gBAId,CACL,WAAY,kBACZ,KAAMA,EAAgB,eACxB,EANS,KARA,IAeX,CAEA,MAAM,YAEJ,CACA,KAAM,CAAE,eAAAC,CAAe,EAAI,MAAMnC,EAAA,KAAKnB,GAAL,UAAc,YAAY,CACzD,eAAgB,CACd,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,+BAAgC,CAC9B,WAAY,GACZ,eAAgB,EAClB,CACF,CACF,CAAC,EAED,OAAKsD,EAIDA,EAAe,aAAe,oBACzBA,EAGJA,EAAe,eAIb,CACL,WAAY,kBACZ,KAAMA,EAAe,cACvB,EANS,KARA,IAeX,CAEA,MAAM,OAAO,CACX,OAAAzB,CACF,EAEiE,CAC/D,KAAM,CAAE,WAAA0B,CAAW,EAAI,MAAMpC,EAAA,KAAKnB,GAAL,UAAc,YAAY,CACrD,WAAY,CACV,CACE,OAAA6B,CACF,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,2BAA4B,CAC1B,WAAY,GACZ,WAAY,EACd,CACF,CACF,CACF,CAAC,EAED,OAAK0B,EAIDA,EAAW,aAAe,oBACrBA,EAGF,CACL,WAAY,kBACZ,KAAMA,EAAW,UACnB,EAVS,IAWX,CAEA,MAAM,UACJf,EACAJ,EAC2E,CAC3E,MAAMO,EAAS,MAAM,KAAK,WAAW,EAErC,GAAI,CAACA,EACH,MAAO,CACL,WAAY,kBACZ,KAAM,EACR,EAEF,GAAIA,EAAO,aAAe,kBACxB,MAAO,CACL,WAAY,kBACZ,KAAM,EACR,EAGF,MAAMa,EAAQb,EAAO,KAAK,KAAKC,GAAKA,EAAE,kBAAoBJ,CAAO,EACjE,GAAI,CAACgB,EACH,MAAO,CACL,WAAY,kBACZ,KAAM,EACR,EAEF,MAAMC,EAAa,IAAI,MAEjBC,EAAsB,IAAI,MAEhC,SAAW,CAAE,MAAAC,CAAM,IAAKH,EAAM,oBAAqB,CACjD,GAAI,CAACG,EACH,SAEF,MAAMC,EAAQ,MAAM,KAAK,UACvBJ,EAAM,MACNA,EAAM,QACNA,EAAM,KACNG,CACF,EAEKC,EAGHH,EAAW,KAAKG,CAAK,EAFrBF,EAAoB,KAAKC,CAAK,CAIlC,CAEA,SAAW,CAAE,GAAAjC,CAAG,IAAK8B,EAAM,WAAY,CACrC,MAAMI,EAAQ,MAAM,KAAK,UACvBJ,EAAM,MACNA,EAAM,QACNA,EAAM,KACN9B,CACF,EAEKkC,EAGHH,EAAW,KAAKG,CAAK,EAFrBF,EAAoB,KAAKhC,CAAE,CAI/B,CAEA,KAAM,CAAE,cAAAmC,CAAc,EAAI,MAAM1C,EAAA,KAAKnB,GAAL,UAAc,YAAY,CACxD,cAAe,CACb,CACE,oBAAA0D,EACA,WAAAD,EACA,YAAaD,EAAM,gBACnB,cAAApB,CACF,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,mBAAoB,CAClB,WAAY,GACZ,QAAS,EACX,EACA,8BAA+B,CAC7B,WAAY,GACZ,cAAe,EACjB,CACF,CACF,CACF,CAAC,EAED,OAAKyB,EAIDA,EAAc,aAAe,qBAI7BA,EAAc,aAAe,aACxBA,EAGJA,EAAc,cAIZ,CACL,WAAY,kBACZ,KAAMA,EAAc,aACtB,EANS,KAZA,IAmBX,CAEA,MAAM,mBAEJ,CAEA,MAAM5B,EAAQ,MAAM,KAAK,UAAU,EAEnC,GAAI,CAACA,EACH,MAAO,CACL,WAAY,kBACZ,KAAM,EACR,EAEF,GAAIA,EAAM,aAAe,kBACvB,MAAO,CACL,WAAY,kBACZ,KAAM,EACR,EAEF,MAAM6B,EAAW7B,EAAM,KAAK,OAAOC,GAAKA,EAAE,oBAAoB,OAAS,CAAC,EAExE,UAAWP,KAAQmC,EACjB,SAAW,CAAE,MAAAH,CAAM,IAAKhC,EAAK,oBAC3B,GAAI,EAACgC,EAGL,GAAI,CACF,MAAMC,EAAQ,MAAM,KAAK,UACvBjC,EAAK,MACLA,EAAK,QACLA,EAAK,KACLgC,CACF,EAEA,GAAI,CAACC,EACH,SAEF,MAAMzC,EAAA,KAAKnB,GAAL,UAAc,YAAY,CAC9B,YAAa,CACX,CACE,gBAAiB2B,EAAK,gBACtB,UAAWiC,CACb,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,mBAAoB,CAClB,WAAY,GACZ,QAAS,EACX,EACA,4BAA6B,CAC3B,WAAY,GACZ,YAAa,EACf,CACF,CACF,CACF,CAAC,CACH,OAAQxC,EAAN,CACA,QACF,CAGJ,MAAO,CACL,WAAY,kBACZ,KAAM,EACR,CACF,CAEA,MAAM,YAAY,CAChB,KAAAJ,EACA,QAAAD,EACA,MAAAD,EACA,cAAA2B,EACA,QAAAC,CACF,EAEE,CACA,MAAMG,EAAUxC,EAAO,gBACrBA,EAAO,4BACP,KACF,EACMyC,EAAOzC,EAAO,mBAClBA,EAAO,yBACP,KAAK,UAAU,CAAE,KAAAW,EAAM,QAAAD,CAAQ,CAAC,EAChC8B,EACA,KACF,EACME,EAAc,IAAI,MACxB,UAAWzB,KAAKR,EAAO,CACrB,IAAIkC,EAAO9C,EAAW,IAAIoB,EAAE,EAAE,EAC9B,GAAI,CAAC0B,IACH,MAAM7B,EAAA,KAAKrB,GAAQ,MAAM,aAAa,CAAE,GAAIwB,EAAE,EAAG,CAAC,EAClD0B,EAAO9C,EAAW,IAAIoB,EAAE,EAAE,EACtB,CAAC0B,GACH,MAAM,IAAI,MAAM,QAAQ1B,EAAE,SAASA,EAAE,qBAAqB,EAG9DyB,EAAY,KAAK,CACf,GAAIC,EAAK,GACT,QAAS3C,EAAO,OACdD,EACEC,EAAO,YAAY2C,EAAK,GAAG,EAC3B7B,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,KAAMM,EAAO,OACXD,EACEC,EAAO,YAAYiB,EAAE,IAAI,EACzBH,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,CACF,CAAC,CACH,CAEA,KAAM,CAAE,gBAAAgE,CAAgB,EAAI,MAAM5C,EAAA,KAAKnB,GAAL,UAAc,WAAY,CAC1D,QAAS,CACP,SAAU,CACR,OAASoB,GAAe,IAAI,KAAKA,CAAW,EAC5C,OAASA,GAAgBA,EAAW,YAAY,CAClD,CACF,CACF,GAAG,CACD,gBAAiB,CACf,CACE,WAAYqB,EACZ,QAAAC,EACA,KAAMrC,EAAO,OACXD,EACEC,EAAO,YAAYW,CAAI,EACvBG,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,QAASM,EAAO,OACdD,EACEC,EAAO,YAAYU,CAAO,EAC1BI,EAAA,KAAKpB,GAAM,UACXoB,EAAA,KAAKpB,GAAM,UACb,CACF,EACA,YAAAgD,EACA,KAAAD,EACA,QAAAD,CACF,EACA,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,mBAAoB,CAClB,WAAY,GACZ,QAAS,EACX,EACA,gCAAiC,CAC/B,WAAY,GACZ,gBAAiBtC,CACnB,CACF,CACF,CACF,CAAC,EAED,GAAI,CAACwD,EACH,OAAO,KAOT,GAJIA,EAAgB,aAAe,qBAI/BA,EAAgB,aAAe,aACjC,OAAOA,EAGT,GAAI,CAACA,EAAgB,gBACnB,OAAO,KAGT,MAAMnC,EAAStB,EACbyD,EAAgB,gBAChB5C,EAAA,KAAKpB,EACP,EAEA,MAAO,CACL,WAAY,kBACZ,KAAM6B,CACR,CACF,CAEA,MAAM,KAAK,CACT,OAAAC,CACF,EAQE,CACA,KAAM,CAAE,SAAAmC,CAAS,EAAI,MAAM7C,EAAA,KAAKnB,GAAL,UAAc,YAAY,CACnD,SAAU,CACR,CAAE,OAAA6B,CAAO,EACT,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,mBAAoB,CAClB,WAAY,GACZ,QAAS,EACX,EACA,sBAAuB,CACrB,WAAY,GACZ,QAAS,EACX,EACA,yBAA0B,CACxB,WAAY,GACZ,SAAU,EACZ,CACF,CACF,CACF,CAAC,EAED,OAAKmC,EAIDA,EAAS,aAAe,qBAIxBA,EAAS,aAAe,cAIxBA,EAAS,aAAe,gBACnBA,EAGJA,EAAS,SAIP,CACL,WAAY,kBACZ,KAAMA,EAAS,QACjB,EANS,KAhBA,IAuBX,CAEA,MAAM,OAAO,CACX,OAAAnC,CACF,EAQE,CACA,KAAM,CAAE,WAAAoC,CAAW,EAAI,MAAM9C,EAAA,KAAKnB,GAAL,UAAc,YAAY,CACrD,WAAY,CACV,CAAE,OAAA6B,CAAO,EACT,CACE,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,mBAAoB,CAClB,WAAY,GACZ,QAAS,EACX,EACA,sBAAuB,CACrB,WAAY,GACZ,QAAS,EACX,EACA,2BAA4B,CAC1B,WAAY,GACZ,WAAY,EACd,CACF,CACF,CACF,CAAC,EAED,OAAKoC,EAIDA,EAAW,aAAe,qBAI1BA,EAAW,aAAe,cAI1BA,EAAW,aAAe,gBACrBA,EAGJA,EAAW,WAIT,CACL,WAAY,kBACZ,KAAMA,EAAW,UACnB,EANS,KAhBA,IAuBX,CAEA,MAAM,eAEJ,CACA,KAAM,CAAE,KAAA5B,CAAK,EAAI,MAAMlB,EAAA,KAAKnB,GAAL,UAAc,QAAS,CAC5C,QAAS,CACP,SAAU,CACR,OAASoB,GAAe,IAAI,KAAKA,CAAW,EAC5C,OAASA,GAAgBA,EAAW,YAAY,CAClD,CACF,CACF,GAAG,CACD,KAAM,CACJ,CAAC,EACD,CACE,sBAAuB,CACrB,WAAY,GACZ,QAAS,EACX,EACA,qBAAsB,CACpB,WAAY,GACZ,KAAM,CACJ,cAAeb,CACjB,CACF,CACF,CACF,CACF,CAAC,EAED,GAAI,CAAC8B,EACH,OAAO,KAGT,GAAIA,EAAK,aAAe,gBACtB,OAAOA,EAGT,GAAI,CAACA,EAAK,KACR,OAAO,KAKT,MAAM6B,EAAgB,IAAI,MAE1B,UAAWhC,KAAKG,EAAK,KAAK,cAAe,CACvC,MAAMV,EAAOrB,EAA8B4B,EAAGf,EAAA,KAAKpB,EAAK,EACpD4B,GACFuC,EAAc,KAAKvC,CAAoB,CAE3C,CAEA,MAAO,CACL,WAAY,kBACZ,KAAMuC,CACR,CACF,CAEA,MAAM,WAEJ,CACA,KAAM,CAAE,KAAA7B,CAAK,EAAI,MAAMlB,EAAA,KAAKnB,GAAL,UAAc,QAAS,CAC5C,QAAS,CACP,SAAU,CACR,OAASoB,GAAe,IAAI,KAAKA,CAAW,EAC5C,OAASA,GAAgBA,EAAW,YAAY,CAClD,CACF,CACF,GAAG,CACD,KAAM,CACJ,CAAC,EACD,CACE,sBAAuB,CACrB,WAAY,GACZ,QAAS,EACX,EACA,qBAAsB,CACpB,WAAY,GACZ,KAAM,CACJ,UAAWb,CACb,CACF,CACF,CACF,CACF,CAAC,EAED,GAAI,CAAC8B,EACH,OAAO,KAGT,GAAIA,EAAK,aAAe,gBACtB,OAAOA,EAGT,GAAI,CAACA,EAAK,KACR,OAAO,KAKT,MAAM8B,EAAY,IAAI,MAEtB,UAAWjC,KAAKG,EAAK,KAAK,UAAW,CACnC,MAAMV,EAAOrB,EAA8B4B,EAAGf,EAAA,KAAKpB,EAAK,EACpD4B,GACFwC,EAAU,KAAKxC,CAAgB,CAEnC,CAEA,MAAO,CACL,WAAY,kBACZ,KAAMwC,CACR,CACF,CAEA,MAAM,YAEJ,CACA,KAAM,CAAE,KAAA9B,CAAK,EAAI,MAAMlB,EAAA,KAAKnB,GAAL,UAAc,QAAS,CAC5C,QAAS,CACP,SAAU,CACR,OAASoB,GAAe,IAAI,KAAKA,CAAW,EAC5C,OAASA,GAAgBA,EAAW,YAAY,CAClD,CACF,CACF,GAAG,CACD,KAAM,CACJ,CAAC,EACD,CACE,sBAAuB,CACrB,WAAY,GACZ,QAAS,EACX,EACA,qBAAsB,CACpB,WAAY,GACZ,KAAM,CACJ,WAAYb,CACd,CACF,CACF,CACF,CACF,CAAC,EAED,GAAI,CAAC8B,EACH,OAAO,KAGT,GAAIA,EAAK,aAAe,gBACtB,OAAOA,EAGT,GAAI,CAACA,EAAK,KACR,OAAO,KAKT,MAAM+B,EAAa,IAAI,MAEvB,UAAWlC,KAAKG,EAAK,KAAK,WAAY,CACpC,MAAMmB,EAAQlD,EAA8B4B,EAAGf,EAAA,KAAKpB,EAAK,EACrDyD,GACFY,EAAW,KAAKZ,CAAK,CAEzB,CAEA,MAAO,CACL,WAAY,kBACZ,KAAMY,CACR,CACF,CAEA,MAAM,0BAEJ,CACA,KAAM,CAAE,yBAAAC,CAAyB,EAAI,MAAMlD,EAAA,KAAKnB,GAAL,UAAc,SAAS,CAChE,yBAA0B,CACxB,0BAA2B,CACzB,WAAY,GACZ,QAAS,EACX,EACA,yCAA0C,CACxC,WAAY,GACZ,MAAO,EACT,CACF,CACF,CAAC,EAED,OAAKqE,EAIDA,EAAyB,aAAe,oBACnCA,EAGF,CACL,WAAY,kBACZ,KAAMA,EAAyB,KACjC,EAVS,IAWX,CAsFF,CAvwCEvE,EAAA,YAEAC,EAAA,YAEAC,EAAA","names":["_client","_keys","_thunder","generate","filesCache","usersCache","encryptCryptoBox","sodium","convertInternalMailToExternal","mailSelector","SecrecyMailClient","client","keys","thunder","__privateAdd","__publicField","files","subject","body","idOrMail","req","__privateGet","e","recipientsFiles","f","fileInHistory","key","__privateSet","id","mail","result","mailId","recoverMail","mailType","deletedMails","mails","m","data","customMessage","user","__spreadProps","__spreadValues","draftId","recipientsIds","replyTo","drafts","d","hashKey","hash","senderFiles","file","updateDraftMail","_a","deleteDraftMail","ids","deleteMailTrash","emptyMailTrash","deleteMail","draft","recipients","temporaryRecipients","email","input","sendDraftMail","filtered","createDraftMail","readMail","unreadMail","receivedMails","sentMails","draftMails","unreadReceivedMailsCount"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5WPCTUWHcjs = require('../chunk-5WPCTUWH.cjs');var t,i,y;class s{constructor(n,c,o){_chunk5WPCTUWHcjs.e.call(void 0, this,t,void 0);_chunk5WPCTUWHcjs.e.call(void 0, this,i,void 0);_chunk5WPCTUWHcjs.e.call(void 0, this,y,void 0);_chunk5WPCTUWHcjs.f.call(void 0, this,t,n),_chunk5WPCTUWHcjs.f.call(void 0, this,i,c),_chunk5WPCTUWHcjs.f.call(void 0, this,y,o)}}t=new WeakMap,i=new WeakMap,y=new WeakMap;exports.SecrecyPayClient = s;
2
+ //# sourceMappingURL=SecrecyPayClient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/SecrecyPayClient.ts"],"names":["_client","_keys","_thunder","SecrecyPayClient","client","keys","thunder","__privateAdd","__privateSet"],"mappings":"4CAAA,IAAAA,EAAAC,EAAAC,EAKO,MAAMC,CAAiB,CAa5B,YACEC,EACAC,EACAC,EACA,CAdFC,EAAA,KAAAP,EAAA,QAIAO,EAAA,KAAAN,EAAA,QAIAM,EAAA,KAAAL,EAAA,QAOEM,EAAA,KAAKR,EAAUI,GACfI,EAAA,KAAKP,EAAQI,GACbG,EAAA,KAAKN,EAAWI,EAClB,CACF,CAnBEN,EAAA,YAIAC,EAAA,YAIAC,EAAA","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SecrecyClient } from \"../index.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { Thunder } from \"../zeus/index.js\";\n\nexport class SecrecyPayClient {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n #client: SecrecyClient;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n #keys: KeyPair;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n #thunder: ReturnType<typeof Thunder>;\n\n constructor(\n client: SecrecyClient,\n keys: KeyPair,\n thunder: ReturnType<typeof Thunder>\n ) {\n this.#client = client;\n this.#keys = keys;\n this.#thunder = thunder;\n }\n}\n"]}
@@ -1,7 +1,16 @@
1
- import type { SecrecyClient } from "../index.js";
2
- import type { KeyPair } from "../crypto/index.js";
3
- import type { Thunder } from "../zeus/index.js";
4
- export declare class SecrecyPayClient {
5
- #private;
6
- constructor(client: SecrecyClient, keys: KeyPair, thunder: ReturnType<typeof Thunder>);
7
- }
1
+ export { r as SecrecyPayClient } from '../BaseClient-7c38f650.js';
2
+ import '../crypto/index.js';
3
+ import '../zeus/index.js';
4
+ import 'ky';
5
+ import '../error.js';
6
+ import '../crypto/file.js';
7
+ import './types/File.js';
8
+ import './types/selectors.js';
9
+ import '../zeus/const.js';
10
+ import './types/index.js';
11
+ import './types/UserAppSettings.js';
12
+ import './types/UserAppNotifications.js';
13
+ import './types/Inputs.js';
14
+ import 'jsonwebtoken';
15
+ import 'bson';
16
+ import 'ethers';
@@ -1,36 +1,2 @@
1
- import _classPrivateFieldLooseBase from "@babel/runtime/helpers/classPrivateFieldLooseBase";
2
- import _classPrivateFieldLooseKey from "@babel/runtime/helpers/classPrivateFieldLooseKey";
3
- var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
4
- var _keys = /*#__PURE__*/_classPrivateFieldLooseKey("keys");
5
- var _thunder = /*#__PURE__*/_classPrivateFieldLooseKey("thunder");
6
- /* eslint-disable @typescript-eslint/naming-convention */
7
-
8
- export class SecrecyPayClient {
9
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
- // @ts-ignore
11
-
12
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
- // @ts-ignore
14
-
15
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
16
- // @ts-ignore
17
-
18
- constructor(client, keys, thunder) {
19
- Object.defineProperty(this, _client, {
20
- writable: true,
21
- value: void 0
22
- });
23
- Object.defineProperty(this, _keys, {
24
- writable: true,
25
- value: void 0
26
- });
27
- Object.defineProperty(this, _thunder, {
28
- writable: true,
29
- value: void 0
30
- });
31
- _classPrivateFieldLooseBase(this, _client)[_client] = client;
32
- _classPrivateFieldLooseBase(this, _keys)[_keys] = keys;
33
- _classPrivateFieldLooseBase(this, _thunder)[_thunder] = thunder;
34
- }
35
- }
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWNyZWN5UGF5Q2xpZW50IiwiY29uc3RydWN0b3IiLCJjbGllbnQiLCJrZXlzIiwidGh1bmRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvU2VjcmVjeVBheUNsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB0eXBlIHsgU2VjcmVjeUNsaWVudCB9IGZyb20gXCIuLi9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUaHVuZGVyIH0gZnJvbSBcIi4uL3pldXMvaW5kZXguanNcIjtcblxuZXhwb3J0IGNsYXNzIFNlY3JlY3lQYXlDbGllbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gIC8vIEB0cy1pZ25vcmVcbiAgI2NsaWVudDogU2VjcmVjeUNsaWVudDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gIC8vIEB0cy1pZ25vcmVcbiAgI2tleXM6IEtleVBhaXI7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlXG4gICN0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjbGllbnQ6IFNlY3JlY3lDbGllbnQsXG4gICAga2V5czogS2V5UGFpcixcbiAgICB0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPlxuICApIHtcbiAgICB0aGlzLiNjbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy4ja2V5cyA9IGtleXM7XG4gICAgdGhpcy4jdGh1bmRlciA9IHRodW5kZXI7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFLQSxPQUFPLE1BQU1BLGdCQUFnQixDQUFDO0VBQzVCO0VBQ0E7O0VBR0E7RUFDQTs7RUFHQTtFQUNBOztFQUdBQyxXQUFXLENBQ1RDLE1BQXFCLEVBQ3JCQyxJQUFhLEVBQ2JDLE9BQW1DLEVBQ25DO0lBQUE7TUFBQTtNQUFBO0lBQUE7SUFBQTtNQUFBO01BQUE7SUFBQTtJQUFBO01BQUE7TUFBQTtJQUFBO0lBQ0EsZ0NBQUksc0JBQVdGLE1BQU07SUFDckIsZ0NBQUksa0JBQVNDLElBQUk7SUFDakIsZ0NBQUksd0JBQVlDLE9BQU87RUFDekI7QUFDRiJ9
1
+ import{e,f as r}from"../chunk-KMTF2BZE.js";var t,i,y;class s{constructor(n,c,o){e(this,t,void 0);e(this,i,void 0);e(this,y,void 0);r(this,t,n),r(this,i,c),r(this,y,o)}}t=new WeakMap,i=new WeakMap,y=new WeakMap;export{s as SecrecyPayClient};
2
+ //# sourceMappingURL=SecrecyPayClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/SecrecyPayClient.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SecrecyClient } from \"../index.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { Thunder } from \"../zeus/index.js\";\n\nexport class SecrecyPayClient {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n #client: SecrecyClient;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n #keys: KeyPair;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n #thunder: ReturnType<typeof Thunder>;\n\n constructor(\n client: SecrecyClient,\n keys: KeyPair,\n thunder: ReturnType<typeof Thunder>\n ) {\n this.#client = client;\n this.#keys = keys;\n this.#thunder = thunder;\n }\n}\n"],"mappings":"2CAAA,IAAAA,EAAAC,EAAAC,EAKO,MAAMC,CAAiB,CAa5B,YACEC,EACAC,EACAC,EACA,CAdFC,EAAA,KAAAP,EAAA,QAIAO,EAAA,KAAAN,EAAA,QAIAM,EAAA,KAAAL,EAAA,QAOEM,EAAA,KAAKR,EAAUI,GACfI,EAAA,KAAKP,EAAQI,GACbG,EAAA,KAAKN,EAAWI,EAClB,CACF,CAnBEN,EAAA,YAIAC,EAAA,YAIAC,EAAA","names":["_client","_keys","_thunder","SecrecyPayClient","client","keys","thunder","__privateAdd","__privateSet"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5WPCTUWHcjs = require('../chunk-5WPCTUWH.cjs');var e;var _indexjs = require('../index.js');var _indexjs3 = require('../zeus/index.js');var _PopupToolsjs = require('../PopupTools.js');class W{constructor(r){_chunk5WPCTUWHcjs.e.call(void 0, this,e,void 0);_chunk5WPCTUWHcjs.f.call(void 0, this,e,r)}async createTransaction({env:r="prod",network:s=_indexjs3.InfuraNetwork.mainnet,tx:n}){const o=_indexjs.getUrl.call(void 0, {env:r,hash:Buffer.from(JSON.stringify({appSession:_chunk5WPCTUWHcjs.d.call(void 0, this,e).sessionId,network:s,tx:n})).toString("base64"),path:"/account/iframe/wallet-transaction"});return new Promise((a,i)=>_PopupToolsjs.popup.call(void 0, o,"Secrecy Wallet - Transaction",{width:500},(t,c)=>t?i(t):a(c)))}async createSignature({env:r="prod",network:s=_indexjs3.InfuraNetwork.mainnet,message:n}){const o=_indexjs.getUrl.call(void 0, {env:r,hash:Buffer.from(JSON.stringify({appSession:_chunk5WPCTUWHcjs.d.call(void 0, this,e).sessionId,network:s,message:n})).toString("base64"),path:"/account/iframe/wallet-signature"});return new Promise((a,i)=>_PopupToolsjs.popup.call(void 0, o,"Secrecy Wallet - Signature",{width:500},(t,c)=>t?i(t):a(c)))}}e=new WeakMap;exports.SecrecyWalletClient = W;
2
+ //# sourceMappingURL=SecrecyWalletClient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/SecrecyWalletClient.ts"],"names":["_client","getUrl","InfuraNetwork","popup","SecrecyWalletClient","client","__privateAdd","__privateSet","env","network","tx","url","__privateGet","resolve","reject","err","data","message"],"mappings":"wDAAA,IAAAA,EAEA,OAAS,UAAAC,MAAc,cACvB,OAAS,iBAAAC,MAAqB,mBAC9B,OAAS,SAAAC,MAAa,mBAiBf,MAAMC,CAAoB,CAO/B,YACEC,EAGA,CAVFC,EAAA,KAAAN,EAAA,QAWEO,EAAA,KAAKP,EAAUK,EAGjB,CAEA,MAAM,kBAAkB,CACtB,IAAAG,EAAM,OACN,QAAAC,EAAUP,EAAc,QACxB,GAAAQ,CACF,EAIiE,CAC/D,MAAMC,EAAMV,EAAO,CACjB,IAAAO,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAYI,EAAA,KAAKZ,GAAQ,UACzB,QAAAS,EACA,GAAAC,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,oCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACG,EAASC,IAC3BX,EACEQ,EACA,+BACA,CACE,MAAO,GACT,EACA,CAACI,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EACLG,CACF,CAEJ,CACF,CACF,CAEA,MAAM,gBAAgB,CACpB,IAAAR,EAAM,OACN,QAAAC,EAAUP,EAAc,QACxB,QAAAe,CACF,EAI2C,CACzC,MAAMN,EAAMV,EAAO,CACjB,IAAAO,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAYI,EAAA,KAAKZ,GAAQ,UACzB,QAAAS,EACA,QAAAQ,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,kCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACJ,EAASC,IAC3BX,EACEQ,EACA,6BACA,CACE,MAAO,GACT,EACA,CAACI,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EAAQG,CAAqC,CAExD,CACF,CACF,CACF,CA3FEhB,EAAA","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SecrecyClient, SecrecyEnv } from \"../index.js\";\nimport { getUrl } from \"../index.js\";\nimport { InfuraNetwork } from \"../zeus/index.js\";\nimport { popup } from \"../PopupTools.js\";\nimport type { providers } from \"ethers\";\n\ntype SuccessWalletResponse<T> = {\n success: true;\n data: T;\n};\n\ntype ErrorWalletResponse = {\n success: false;\n error: string;\n};\n\nexport type SecrecyWalletResponse<T> =\n | SuccessWalletResponse<T>\n | ErrorWalletResponse;\n\nexport class SecrecyWalletClient {\n #client: SecrecyClient;\n\n // #keys: KeyPair;\n\n // #thunder: ReturnType<typeof Thunder>;\n\n constructor(\n client: SecrecyClient\n // _keys: KeyPair,\n // _thunder: ReturnType<typeof Thunder>\n ) {\n this.#client = client;\n // this.#keys = keys;\n // this.#thunder = thunder;\n }\n\n async createTransaction({\n env = \"prod\",\n network = InfuraNetwork.mainnet,\n tx\n }: {\n env?: SecrecyEnv;\n network?: InfuraNetwork;\n tx: providers.TransactionRequest;\n }): Promise<SecrecyWalletResponse<{ id: string; hash: string }>> {\n const url = getUrl({\n env,\n hash: Buffer.from(\n JSON.stringify({\n appSession: this.#client.sessionId,\n network,\n tx\n })\n ).toString(\"base64\"),\n path: \"/account/iframe/wallet-transaction\"\n });\n return new Promise((resolve, reject) =>\n popup(\n url,\n \"Secrecy Wallet - Transaction\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n }\n return resolve(\n data as SecrecyWalletResponse<{ id: string; hash: string }>\n );\n }\n )\n );\n }\n\n async createSignature({\n env = \"prod\",\n network = InfuraNetwork.mainnet,\n message\n }: {\n env?: SecrecyEnv;\n network?: InfuraNetwork;\n message: string;\n }): Promise<SecrecyWalletResponse<string>> {\n const url = getUrl({\n env,\n hash: Buffer.from(\n JSON.stringify({\n appSession: this.#client.sessionId,\n network,\n message\n })\n ).toString(\"base64\"),\n path: \"/account/iframe/wallet-signature\"\n });\n return new Promise((resolve, reject) =>\n popup(\n url,\n \"Secrecy Wallet - Signature\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n }\n return resolve(data as SecrecyWalletResponse<string>);\n }\n )\n );\n }\n}\n"]}
@@ -1,30 +1,16 @@
1
- import type { SecrecyClient, SecrecyEnv } from "../index.js";
2
- import { InfuraNetwork } from "../zeus/index.js";
3
- import type { providers } from "ethers";
4
- declare type SuccessWalletResponse<T> = {
5
- success: true;
6
- data: T;
7
- };
8
- declare type ErrorWalletResponse = {
9
- success: false;
10
- error: string;
11
- };
12
- export declare type SecrecyWalletResponse<T> = SuccessWalletResponse<T> | ErrorWalletResponse;
13
- export declare class SecrecyWalletClient {
14
- #private;
15
- constructor(client: SecrecyClient);
16
- createTransaction({ env, network, tx }: {
17
- env?: SecrecyEnv;
18
- network?: InfuraNetwork;
19
- tx: providers.TransactionRequest;
20
- }): Promise<SecrecyWalletResponse<{
21
- id: string;
22
- hash: string;
23
- }>>;
24
- createSignature({ env, network, message }: {
25
- env?: SecrecyEnv;
26
- network?: InfuraNetwork;
27
- message: string;
28
- }): Promise<SecrecyWalletResponse<string>>;
29
- }
30
- export {};
1
+ export { q as SecrecyWalletClient, o as SecrecyWalletResponse } from '../BaseClient-7c38f650.js';
2
+ import '../zeus/index.js';
3
+ import 'ethers';
4
+ import 'ky';
5
+ import '../error.js';
6
+ import '../crypto/file.js';
7
+ import '../crypto/index.js';
8
+ import './types/File.js';
9
+ import './types/selectors.js';
10
+ import '../zeus/const.js';
11
+ import './types/index.js';
12
+ import './types/UserAppSettings.js';
13
+ import './types/UserAppNotifications.js';
14
+ import './types/Inputs.js';
15
+ import 'jsonwebtoken';
16
+ import 'bson';
@@ -1,73 +1,2 @@
1
- import _classPrivateFieldLooseBase from "@babel/runtime/helpers/classPrivateFieldLooseBase";
2
- import _classPrivateFieldLooseKey from "@babel/runtime/helpers/classPrivateFieldLooseKey";
3
- /* eslint-disable @typescript-eslint/naming-convention */
4
-
5
- import { getUrl } from "../index.js";
6
- import { InfuraNetwork } from "../zeus/index.js";
7
- import { popup } from "../PopupTools.js";
8
- var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
9
- export class SecrecyWalletClient {
10
- // #keys: KeyPair;
11
-
12
- // #thunder: ReturnType<typeof Thunder>;
13
-
14
- constructor(client) {
15
- Object.defineProperty(this, _client, {
16
- writable: true,
17
- value: void 0
18
- });
19
- _classPrivateFieldLooseBase(this, _client)[_client] = client;
20
- // this.#keys = keys;
21
- // this.#thunder = thunder;
22
- }
23
-
24
- async createTransaction(_ref) {
25
- let {
26
- env = "prod",
27
- network = InfuraNetwork.mainnet,
28
- tx
29
- } = _ref;
30
- const url = getUrl({
31
- env,
32
- hash: Buffer.from(JSON.stringify({
33
- appSession: _classPrivateFieldLooseBase(this, _client)[_client].sessionId,
34
- network,
35
- tx
36
- })).toString("base64"),
37
- path: "/account/iframe/wallet-transaction"
38
- });
39
- return new Promise((resolve, reject) => popup(url, "Secrecy Wallet - Transaction", {
40
- width: 500
41
- }, (err, data) => {
42
- if (err) {
43
- return reject(err);
44
- }
45
- return resolve(data);
46
- }));
47
- }
48
- async createSignature(_ref2) {
49
- let {
50
- env = "prod",
51
- network = InfuraNetwork.mainnet,
52
- message
53
- } = _ref2;
54
- const url = getUrl({
55
- env,
56
- hash: Buffer.from(JSON.stringify({
57
- appSession: _classPrivateFieldLooseBase(this, _client)[_client].sessionId,
58
- network,
59
- message
60
- })).toString("base64"),
61
- path: "/account/iframe/wallet-signature"
62
- });
63
- return new Promise((resolve, reject) => popup(url, "Secrecy Wallet - Signature", {
64
- width: 500
65
- }, (err, data) => {
66
- if (err) {
67
- return reject(err);
68
- }
69
- return resolve(data);
70
- }));
71
- }
72
- }
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVcmwiLCJJbmZ1cmFOZXR3b3JrIiwicG9wdXAiLCJTZWNyZWN5V2FsbGV0Q2xpZW50IiwiY29uc3RydWN0b3IiLCJjbGllbnQiLCJjcmVhdGVUcmFuc2FjdGlvbiIsImVudiIsIm5ldHdvcmsiLCJtYWlubmV0IiwidHgiLCJ1cmwiLCJoYXNoIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJhcHBTZXNzaW9uIiwic2Vzc2lvbklkIiwidG9TdHJpbmciLCJwYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ3aWR0aCIsImVyciIsImRhdGEiLCJjcmVhdGVTaWduYXR1cmUiLCJtZXNzYWdlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9TZWNyZWN5V2FsbGV0Q2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuaW1wb3J0IHR5cGUgeyBTZWNyZWN5Q2xpZW50LCBTZWNyZWN5RW52IH0gZnJvbSBcIi4uL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBnZXRVcmwgfSBmcm9tIFwiLi4vaW5kZXguanNcIjtcbmltcG9ydCB7IEluZnVyYU5ldHdvcmsgfSBmcm9tIFwiLi4vemV1cy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgcG9wdXAgfSBmcm9tIFwiLi4vUG9wdXBUb29scy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBwcm92aWRlcnMgfSBmcm9tIFwiZXRoZXJzXCI7XG5cbnR5cGUgU3VjY2Vzc1dhbGxldFJlc3BvbnNlPFQ+ID0ge1xuICBzdWNjZXNzOiB0cnVlO1xuICBkYXRhOiBUO1xufTtcblxudHlwZSBFcnJvcldhbGxldFJlc3BvbnNlID0ge1xuICBzdWNjZXNzOiBmYWxzZTtcbiAgZXJyb3I6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNlY3JlY3lXYWxsZXRSZXNwb25zZTxUPiA9XG4gIHwgU3VjY2Vzc1dhbGxldFJlc3BvbnNlPFQ+XG4gIHwgRXJyb3JXYWxsZXRSZXNwb25zZTtcblxuZXhwb3J0IGNsYXNzIFNlY3JlY3lXYWxsZXRDbGllbnQge1xuICAjY2xpZW50OiBTZWNyZWN5Q2xpZW50O1xuXG4gIC8vICNrZXlzOiBLZXlQYWlyO1xuXG4gIC8vICN0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjbGllbnQ6IFNlY3JlY3lDbGllbnRcbiAgICAvLyBfa2V5czogS2V5UGFpcixcbiAgICAvLyBfdGh1bmRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVGh1bmRlcj5cbiAgKSB7XG4gICAgdGhpcy4jY2xpZW50ID0gY2xpZW50O1xuICAgIC8vIHRoaXMuI2tleXMgPSBrZXlzO1xuICAgIC8vIHRoaXMuI3RodW5kZXIgPSB0aHVuZGVyO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlVHJhbnNhY3Rpb24oe1xuICAgIGVudiA9IFwicHJvZFwiLFxuICAgIG5ldHdvcmsgPSBJbmZ1cmFOZXR3b3JrLm1haW5uZXQsXG4gICAgdHhcbiAgfToge1xuICAgIGVudj86IFNlY3JlY3lFbnY7XG4gICAgbmV0d29yaz86IEluZnVyYU5ldHdvcms7XG4gICAgdHg6IHByb3ZpZGVycy5UcmFuc2FjdGlvblJlcXVlc3Q7XG4gIH0pOiBQcm9taXNlPFNlY3JlY3lXYWxsZXRSZXNwb25zZTx7IGlkOiBzdHJpbmc7IGhhc2g6IHN0cmluZyB9Pj4ge1xuICAgIGNvbnN0IHVybCA9IGdldFVybCh7XG4gICAgICBlbnYsXG4gICAgICBoYXNoOiBCdWZmZXIuZnJvbShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGFwcFNlc3Npb246IHRoaXMuI2NsaWVudC5zZXNzaW9uSWQsXG4gICAgICAgICAgbmV0d29yayxcbiAgICAgICAgICB0eFxuICAgICAgICB9KVxuICAgICAgKS50b1N0cmluZyhcImJhc2U2NFwiKSxcbiAgICAgIHBhdGg6IFwiL2FjY291bnQvaWZyYW1lL3dhbGxldC10cmFuc2FjdGlvblwiXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICBwb3B1cChcbiAgICAgICAgdXJsLFxuICAgICAgICBcIlNlY3JlY3kgV2FsbGV0IC0gVHJhbnNhY3Rpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIHdpZHRoOiA1MDBcbiAgICAgICAgfSxcbiAgICAgICAgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoXG4gICAgICAgICAgICBkYXRhIGFzIFNlY3JlY3lXYWxsZXRSZXNwb25zZTx7IGlkOiBzdHJpbmc7IGhhc2g6IHN0cmluZyB9PlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlU2lnbmF0dXJlKHtcbiAgICBlbnYgPSBcInByb2RcIixcbiAgICBuZXR3b3JrID0gSW5mdXJhTmV0d29yay5tYWlubmV0LFxuICAgIG1lc3NhZ2VcbiAgfToge1xuICAgIGVudj86IFNlY3JlY3lFbnY7XG4gICAgbmV0d29yaz86IEluZnVyYU5ldHdvcms7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxTZWNyZWN5V2FsbGV0UmVzcG9uc2U8c3RyaW5nPj4ge1xuICAgIGNvbnN0IHVybCA9IGdldFVybCh7XG4gICAgICBlbnYsXG4gICAgICBoYXNoOiBCdWZmZXIuZnJvbShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGFwcFNlc3Npb246IHRoaXMuI2NsaWVudC5zZXNzaW9uSWQsXG4gICAgICAgICAgbmV0d29yayxcbiAgICAgICAgICBtZXNzYWdlXG4gICAgICAgIH0pXG4gICAgICApLnRvU3RyaW5nKFwiYmFzZTY0XCIpLFxuICAgICAgcGF0aDogXCIvYWNjb3VudC9pZnJhbWUvd2FsbGV0LXNpZ25hdHVyZVwiXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICBwb3B1cChcbiAgICAgICAgdXJsLFxuICAgICAgICBcIlNlY3JlY3kgV2FsbGV0IC0gU2lnbmF0dXJlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICB3aWR0aDogNTAwXG4gICAgICAgIH0sXG4gICAgICAgIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRhdGEgYXMgU2VjcmVjeVdhbGxldFJlc3BvbnNlPHN0cmluZz4pO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUVBLFNBQVNBLE1BQU0sUUFBUSxhQUFhO0FBQ3BDLFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsS0FBSyxRQUFRLGtCQUFrQjtBQUFDO0FBaUJ6QyxPQUFPLE1BQU1DLG1CQUFtQixDQUFDO0VBRy9COztFQUVBOztFQUVBQyxXQUFXLENBQ1RDLE1BQXFCLEVBR3JCO0lBQUE7TUFBQTtNQUFBO0lBQUE7SUFDQSxnQ0FBSSxzQkFBV0EsTUFBTTtJQUNyQjtJQUNBO0VBQ0Y7O0VBRUEsTUFBTUMsaUJBQWlCLE9BUTBDO0lBQUEsSUFSekM7TUFDdEJDLEdBQUcsR0FBRyxNQUFNO01BQ1pDLE9BQU8sR0FBR1AsYUFBYSxDQUFDUSxPQUFPO01BQy9CQztJQUtGLENBQUM7SUFDQyxNQUFNQyxHQUFHLEdBQUdYLE1BQU0sQ0FBQztNQUNqQk8sR0FBRztNQUNISyxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsSUFBSSxDQUNmQyxJQUFJLENBQUNDLFNBQVMsQ0FBQztRQUNiQyxVQUFVLEVBQUUsZ0NBQUksb0JBQVNDLFNBQVM7UUFDbENWLE9BQU87UUFDUEU7TUFDRixDQUFDLENBQUMsQ0FDSCxDQUFDUyxRQUFRLENBQUMsUUFBUSxDQUFDO01BQ3BCQyxJQUFJLEVBQUU7SUFDUixDQUFDLENBQUM7SUFDRixPQUFPLElBQUlDLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FDakNyQixLQUFLLENBQ0hTLEdBQUcsRUFDSCw4QkFBOEIsRUFDOUI7TUFDRWEsS0FBSyxFQUFFO0lBQ1QsQ0FBQyxFQUNELENBQUNDLEdBQUcsRUFBRUMsSUFBSSxLQUFLO01BQ2IsSUFBSUQsR0FBRyxFQUFFO1FBQ1AsT0FBT0YsTUFBTSxDQUFDRSxHQUFHLENBQUM7TUFDcEI7TUFDQSxPQUFPSCxPQUFPLENBQ1pJLElBQUksQ0FDTDtJQUNILENBQUMsQ0FDRixDQUNGO0VBQ0g7RUFFQSxNQUFNQyxlQUFlLFFBUXNCO0lBQUEsSUFSckI7TUFDcEJwQixHQUFHLEdBQUcsTUFBTTtNQUNaQyxPQUFPLEdBQUdQLGFBQWEsQ0FBQ1EsT0FBTztNQUMvQm1CO0lBS0YsQ0FBQztJQUNDLE1BQU1qQixHQUFHLEdBQUdYLE1BQU0sQ0FBQztNQUNqQk8sR0FBRztNQUNISyxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsSUFBSSxDQUNmQyxJQUFJLENBQUNDLFNBQVMsQ0FBQztRQUNiQyxVQUFVLEVBQUUsZ0NBQUksb0JBQVNDLFNBQVM7UUFDbENWLE9BQU87UUFDUG9CO01BQ0YsQ0FBQyxDQUFDLENBQ0gsQ0FBQ1QsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUNwQkMsSUFBSSxFQUFFO0lBQ1IsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxJQUFJQyxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQ2pDckIsS0FBSyxDQUNIUyxHQUFHLEVBQ0gsNEJBQTRCLEVBQzVCO01BQ0VhLEtBQUssRUFBRTtJQUNULENBQUMsRUFDRCxDQUFDQyxHQUFHLEVBQUVDLElBQUksS0FBSztNQUNiLElBQUlELEdBQUcsRUFBRTtRQUNQLE9BQU9GLE1BQU0sQ0FBQ0UsR0FBRyxDQUFDO01BQ3BCO01BQ0EsT0FBT0gsT0FBTyxDQUFDSSxJQUFJLENBQWtDO0lBQ3ZELENBQUMsQ0FDRixDQUNGO0VBQ0g7QUFDRiJ9
1
+ import{d as l,e as p,f as u}from"../chunk-KMTF2BZE.js";var e;import{getUrl as S}from"../index.js";import{InfuraNetwork as y}from"../zeus/index.js";import{popup as f}from"../PopupTools.js";class W{constructor(r){p(this,e,void 0);u(this,e,r)}async createTransaction({env:r="prod",network:s=y.mainnet,tx:n}){const o=S({env:r,hash:Buffer.from(JSON.stringify({appSession:l(this,e).sessionId,network:s,tx:n})).toString("base64"),path:"/account/iframe/wallet-transaction"});return new Promise((a,i)=>f(o,"Secrecy Wallet - Transaction",{width:500},(t,c)=>t?i(t):a(c)))}async createSignature({env:r="prod",network:s=y.mainnet,message:n}){const o=S({env:r,hash:Buffer.from(JSON.stringify({appSession:l(this,e).sessionId,network:s,message:n})).toString("base64"),path:"/account/iframe/wallet-signature"});return new Promise((a,i)=>f(o,"Secrecy Wallet - Signature",{width:500},(t,c)=>t?i(t):a(c)))}}e=new WeakMap;export{W as SecrecyWalletClient};
2
+ //# sourceMappingURL=SecrecyWalletClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/SecrecyWalletClient.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SecrecyClient, SecrecyEnv } from \"../index.js\";\nimport { getUrl } from \"../index.js\";\nimport { InfuraNetwork } from \"../zeus/index.js\";\nimport { popup } from \"../PopupTools.js\";\nimport type { providers } from \"ethers\";\n\ntype SuccessWalletResponse<T> = {\n success: true;\n data: T;\n};\n\ntype ErrorWalletResponse = {\n success: false;\n error: string;\n};\n\nexport type SecrecyWalletResponse<T> =\n | SuccessWalletResponse<T>\n | ErrorWalletResponse;\n\nexport class SecrecyWalletClient {\n #client: SecrecyClient;\n\n // #keys: KeyPair;\n\n // #thunder: ReturnType<typeof Thunder>;\n\n constructor(\n client: SecrecyClient\n // _keys: KeyPair,\n // _thunder: ReturnType<typeof Thunder>\n ) {\n this.#client = client;\n // this.#keys = keys;\n // this.#thunder = thunder;\n }\n\n async createTransaction({\n env = \"prod\",\n network = InfuraNetwork.mainnet,\n tx\n }: {\n env?: SecrecyEnv;\n network?: InfuraNetwork;\n tx: providers.TransactionRequest;\n }): Promise<SecrecyWalletResponse<{ id: string; hash: string }>> {\n const url = getUrl({\n env,\n hash: Buffer.from(\n JSON.stringify({\n appSession: this.#client.sessionId,\n network,\n tx\n })\n ).toString(\"base64\"),\n path: \"/account/iframe/wallet-transaction\"\n });\n return new Promise((resolve, reject) =>\n popup(\n url,\n \"Secrecy Wallet - Transaction\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n }\n return resolve(\n data as SecrecyWalletResponse<{ id: string; hash: string }>\n );\n }\n )\n );\n }\n\n async createSignature({\n env = \"prod\",\n network = InfuraNetwork.mainnet,\n message\n }: {\n env?: SecrecyEnv;\n network?: InfuraNetwork;\n message: string;\n }): Promise<SecrecyWalletResponse<string>> {\n const url = getUrl({\n env,\n hash: Buffer.from(\n JSON.stringify({\n appSession: this.#client.sessionId,\n network,\n message\n })\n ).toString(\"base64\"),\n path: \"/account/iframe/wallet-signature\"\n });\n return new Promise((resolve, reject) =>\n popup(\n url,\n \"Secrecy Wallet - Signature\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n }\n return resolve(data as SecrecyWalletResponse<string>);\n }\n )\n );\n }\n}\n"],"mappings":"uDAAA,IAAAA,EAEA,OAAS,UAAAC,MAAc,cACvB,OAAS,iBAAAC,MAAqB,mBAC9B,OAAS,SAAAC,MAAa,mBAiBf,MAAMC,CAAoB,CAO/B,YACEC,EAGA,CAVFC,EAAA,KAAAN,EAAA,QAWEO,EAAA,KAAKP,EAAUK,EAGjB,CAEA,MAAM,kBAAkB,CACtB,IAAAG,EAAM,OACN,QAAAC,EAAUP,EAAc,QACxB,GAAAQ,CACF,EAIiE,CAC/D,MAAMC,EAAMV,EAAO,CACjB,IAAAO,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAYI,EAAA,KAAKZ,GAAQ,UACzB,QAAAS,EACA,GAAAC,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,oCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACG,EAASC,IAC3BX,EACEQ,EACA,+BACA,CACE,MAAO,GACT,EACA,CAACI,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EACLG,CACF,CAEJ,CACF,CACF,CAEA,MAAM,gBAAgB,CACpB,IAAAR,EAAM,OACN,QAAAC,EAAUP,EAAc,QACxB,QAAAe,CACF,EAI2C,CACzC,MAAMN,EAAMV,EAAO,CACjB,IAAAO,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAYI,EAAA,KAAKZ,GAAQ,UACzB,QAAAS,EACA,QAAAQ,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,kCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACJ,EAASC,IAC3BX,EACEQ,EACA,6BACA,CACE,MAAO,GACT,EACA,CAACI,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EAAQG,CAAqC,CAExD,CACF,CACF,CACF,CA3FEhB,EAAA","names":["_client","getUrl","InfuraNetwork","popup","SecrecyWalletClient","client","__privateAdd","__privateSet","env","network","tx","url","__privateGet","resolve","reject","err","data","message"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-5WPCTUWH.cjs');var _cachejs = require('../../cache.js');var _indexjs = require('../../crypto/index.js');var _sodiumjs = require('../../sodium.js');function d(e,t){if(!e.access||!e.access.sharedBy.keyPair)throw`File ${e.id} doesn't have access`;const i={id:e.id,md5:e.md5,md5Encrypted:e.md5Encrypted,createdAt:new Date(e.createdAt),size:BigInt(e.size),sizeBefore:BigInt(e.sizeBefore),key:_sodiumjs.sodium.to_hex(_indexjs.decryptCryptoBox.call(void 0, _sodiumjs.sodium.from_hex(e.access.key),e.access.sharedBy.keyPair.pub,t.privateKey))};return _cachejs.filesCache.set(i.id,i),i}function o(e){return{id:e.id,md5:e.md5,md5Encrypted:e.md5Encrypted,createdAt:e.createdAt,size:e.size,sizeBefore:e.sizeBefore}}function p(e,t){return o(d(e,t))}exports.gqlFileToExternal = p; exports.gqlFileToInternal = d; exports.internalFileToFile = o;
2
+ //# sourceMappingURL=file.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/file.ts"],"names":["filesCache","decryptCryptoBox","sodium","gqlFileToInternal","gql","keyPair","file","internalFileToFile","internal","gqlFileToExternal"],"mappings":"iCAAA,OAAS,cAAAA,MAAkB,iBAE3B,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,UAAAC,MAAc,kBAGhB,SAASC,EACdC,EACAC,EACc,CACd,GAAI,CAACD,EAAI,QAAU,CAACA,EAAI,OAAO,SAAS,QACtC,KAAM,QAAQA,EAAI,yBAGpB,MAAME,EAAqB,CACzB,GAAIF,EAAI,GACR,IAAKA,EAAI,IACT,aAAcA,EAAI,aAClB,UAAW,IAAI,KAAKA,EAAI,SAAmB,EAC3C,KAAM,OAAOA,EAAI,IAAc,EAC/B,WAAY,OAAOA,EAAI,UAAoB,EAC3C,IAAKF,EAAO,OACVD,EACEC,EAAO,SAASE,EAAI,OAAO,GAAG,EAC9BA,EAAI,OAAO,SAAS,QAAQ,IAC5BC,EAAQ,UACV,CACF,CACF,EAEA,OAAAL,EAAW,IAAIM,EAAK,GAAIA,CAAI,EAErBA,CACT,CAEO,SAASC,EAAmBC,EAAsC,CACvE,MAAO,CACL,GAAIA,EAAS,GACb,IAAKA,EAAS,IACd,aAAcA,EAAS,aACvB,UAAWA,EAAS,UACpB,KAAMA,EAAS,KACf,WAAYA,EAAS,UACvB,CACF,CAEO,SAASC,EACdL,EACAC,EACc,CACd,OAAOE,EAAmBJ,EAAkBC,EAAKC,CAAO,CAAC,CAC3D","sourcesContent":["import { filesCache } from \"../../cache.js\";\nimport type { KeyPair } from \"../../crypto/index.js\";\nimport { decryptCryptoBox } from \"../../crypto/index.js\";\nimport { sodium } from \"../../sodium.js\";\nimport type { GQLFile, InternalFile, FileMetadata } from \"../types/index.js\";\n\nexport function gqlFileToInternal(\n gql: GQLFile,\n keyPair: KeyPair\n): InternalFile {\n if (!gql.access || !gql.access.sharedBy.keyPair) {\n throw `File ${gql.id} doesn't have access`;\n }\n\n const file: InternalFile = {\n id: gql.id,\n md5: gql.md5,\n md5Encrypted: gql.md5Encrypted,\n createdAt: new Date(gql.createdAt as string),\n size: BigInt(gql.size as string),\n sizeBefore: BigInt(gql.sizeBefore as string),\n key: sodium.to_hex(\n decryptCryptoBox(\n sodium.from_hex(gql.access.key),\n gql.access.sharedBy.keyPair.pub,\n keyPair.privateKey\n )\n )\n };\n\n filesCache.set(file.id, file);\n\n return file;\n}\n\nexport function internalFileToFile(internal: InternalFile): FileMetadata {\n return {\n id: internal.id,\n md5: internal.md5,\n md5Encrypted: internal.md5Encrypted,\n createdAt: internal.createdAt,\n size: internal.size,\n sizeBefore: internal.sizeBefore\n };\n}\n\nexport function gqlFileToExternal(\n gql: GQLFile,\n keyPair: KeyPair\n): FileMetadata {\n return internalFileToFile(gqlFileToInternal(gql, keyPair));\n}\n"]}
@@ -1,5 +1,11 @@
1
- import type { KeyPair } from "../../crypto/index.js";
2
- import type { GQLFile, InternalFile, FileMetadata } from "../types/index.js";
3
- export declare function gqlFileToInternal(gql: GQLFile, keyPair: KeyPair): InternalFile;
4
- export declare function internalFileToFile(internal: InternalFile): FileMetadata;
5
- export declare function gqlFileToExternal(gql: GQLFile, keyPair: KeyPair): FileMetadata;
1
+ import { KeyPair } from '../../crypto/index.js';
2
+ import { GQLFile, InternalFile, FileMetadata } from '../types/File.js';
3
+ import '../../zeus/index.js';
4
+ import '../../zeus/const.js';
5
+ import '../types/selectors.js';
6
+
7
+ declare function gqlFileToInternal(gql: GQLFile, keyPair: KeyPair): InternalFile;
8
+ declare function internalFileToFile(internal: InternalFile): FileMetadata;
9
+ declare function gqlFileToExternal(gql: GQLFile, keyPair: KeyPair): FileMetadata;
10
+
11
+ export { gqlFileToExternal, gqlFileToInternal, internalFileToFile };
@@ -1,33 +1,2 @@
1
- import { filesCache } from "../../cache.js";
2
- import { decryptCryptoBox } from "../../crypto/index.js";
3
- import { sodium } from "../../sodium.js";
4
- export function gqlFileToInternal(gql, keyPair) {
5
- if (!gql.access || !gql.access.sharedBy.keyPair) {
6
- throw `File ${gql.id} doesn't have access`;
7
- }
8
- const file = {
9
- id: gql.id,
10
- md5: gql.md5,
11
- md5Encrypted: gql.md5Encrypted,
12
- createdAt: new Date(gql.createdAt),
13
- size: BigInt(gql.size),
14
- sizeBefore: BigInt(gql.sizeBefore),
15
- key: sodium.to_hex(decryptCryptoBox(sodium.from_hex(gql.access.key), gql.access.sharedBy.keyPair.pub, keyPair.privateKey))
16
- };
17
- filesCache.set(file.id, file);
18
- return file;
19
- }
20
- export function internalFileToFile(internal) {
21
- return {
22
- id: internal.id,
23
- md5: internal.md5,
24
- md5Encrypted: internal.md5Encrypted,
25
- createdAt: internal.createdAt,
26
- size: internal.size,
27
- sizeBefore: internal.sizeBefore
28
- };
29
- }
30
- export function gqlFileToExternal(gql, keyPair) {
31
- return internalFileToFile(gqlFileToInternal(gql, keyPair));
32
- }
33
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWxlc0NhY2hlIiwiZGVjcnlwdENyeXB0b0JveCIsInNvZGl1bSIsImdxbEZpbGVUb0ludGVybmFsIiwiZ3FsIiwia2V5UGFpciIsImFjY2VzcyIsInNoYXJlZEJ5IiwiaWQiLCJmaWxlIiwibWQ1IiwibWQ1RW5jcnlwdGVkIiwiY3JlYXRlZEF0IiwiRGF0ZSIsInNpemUiLCJCaWdJbnQiLCJzaXplQmVmb3JlIiwia2V5IiwidG9faGV4IiwiZnJvbV9oZXgiLCJwdWIiLCJwcml2YXRlS2V5Iiwic2V0IiwiaW50ZXJuYWxGaWxlVG9GaWxlIiwiaW50ZXJuYWwiLCJncWxGaWxlVG9FeHRlcm5hbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9maWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGVzQ2FjaGUgfSBmcm9tIFwiLi4vLi4vY2FjaGUuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5UGFpciB9IGZyb20gXCIuLi8uLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB7IGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzb2RpdW0gfSBmcm9tIFwiLi4vLi4vc29kaXVtLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdRTEZpbGUsIEludGVybmFsRmlsZSwgRmlsZU1ldGFkYXRhIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBncWxGaWxlVG9JbnRlcm5hbChcbiAgZ3FsOiBHUUxGaWxlLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBJbnRlcm5hbEZpbGUge1xuICBpZiAoIWdxbC5hY2Nlc3MgfHwgIWdxbC5hY2Nlc3Muc2hhcmVkQnkua2V5UGFpcikge1xuICAgIHRocm93IGBGaWxlICR7Z3FsLmlkfSBkb2Vzbid0IGhhdmUgYWNjZXNzYDtcbiAgfVxuXG4gIGNvbnN0IGZpbGU6IEludGVybmFsRmlsZSA9IHtcbiAgICBpZDogZ3FsLmlkLFxuICAgIG1kNTogZ3FsLm1kNSxcbiAgICBtZDVFbmNyeXB0ZWQ6IGdxbC5tZDVFbmNyeXB0ZWQsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgc2l6ZTogQmlnSW50KGdxbC5zaXplIGFzIHN0cmluZyksXG4gICAgc2l6ZUJlZm9yZTogQmlnSW50KGdxbC5zaXplQmVmb3JlIGFzIHN0cmluZyksXG4gICAga2V5OiBzb2RpdW0udG9faGV4KFxuICAgICAgZGVjcnlwdENyeXB0b0JveChcbiAgICAgICAgc29kaXVtLmZyb21faGV4KGdxbC5hY2Nlc3Mua2V5KSxcbiAgICAgICAgZ3FsLmFjY2Vzcy5zaGFyZWRCeS5rZXlQYWlyLnB1YixcbiAgICAgICAga2V5UGFpci5wcml2YXRlS2V5XG4gICAgICApXG4gICAgKVxuICB9O1xuXG4gIGZpbGVzQ2FjaGUuc2V0KGZpbGUuaWQsIGZpbGUpO1xuXG4gIHJldHVybiBmaWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxGaWxlVG9GaWxlKGludGVybmFsOiBJbnRlcm5hbEZpbGUpOiBGaWxlTWV0YWRhdGEge1xuICByZXR1cm4ge1xuICAgIGlkOiBpbnRlcm5hbC5pZCxcbiAgICBtZDU6IGludGVybmFsLm1kNSxcbiAgICBtZDVFbmNyeXB0ZWQ6IGludGVybmFsLm1kNUVuY3J5cHRlZCxcbiAgICBjcmVhdGVkQXQ6IGludGVybmFsLmNyZWF0ZWRBdCxcbiAgICBzaXplOiBpbnRlcm5hbC5zaXplLFxuICAgIHNpemVCZWZvcmU6IGludGVybmFsLnNpemVCZWZvcmVcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdxbEZpbGVUb0V4dGVybmFsKFxuICBncWw6IEdRTEZpbGUsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IEZpbGVNZXRhZGF0YSB7XG4gIHJldHVybiBpbnRlcm5hbEZpbGVUb0ZpbGUoZ3FsRmlsZVRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKSk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSxnQkFBZ0I7QUFFM0MsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLE1BQU0sUUFBUSxpQkFBaUI7QUFHeEMsT0FBTyxTQUFTQyxpQkFBaUIsQ0FDL0JDLEdBQVksRUFDWkMsT0FBZ0IsRUFDRjtFQUNkLElBQUksQ0FBQ0QsR0FBRyxDQUFDRSxNQUFNLElBQUksQ0FBQ0YsR0FBRyxDQUFDRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsT0FBTyxFQUFFO0lBQy9DLE1BQU8sUUFBT0QsR0FBRyxDQUFDSSxFQUFHLHNCQUFxQjtFQUM1QztFQUVBLE1BQU1DLElBQWtCLEdBQUc7SUFDekJELEVBQUUsRUFBRUosR0FBRyxDQUFDSSxFQUFFO0lBQ1ZFLEdBQUcsRUFBRU4sR0FBRyxDQUFDTSxHQUFHO0lBQ1pDLFlBQVksRUFBRVAsR0FBRyxDQUFDTyxZQUFZO0lBQzlCQyxTQUFTLEVBQUUsSUFBSUMsSUFBSSxDQUFDVCxHQUFHLENBQUNRLFNBQVMsQ0FBVztJQUM1Q0UsSUFBSSxFQUFFQyxNQUFNLENBQUNYLEdBQUcsQ0FBQ1UsSUFBSSxDQUFXO0lBQ2hDRSxVQUFVLEVBQUVELE1BQU0sQ0FBQ1gsR0FBRyxDQUFDWSxVQUFVLENBQVc7SUFDNUNDLEdBQUcsRUFBRWYsTUFBTSxDQUFDZ0IsTUFBTSxDQUNoQmpCLGdCQUFnQixDQUNkQyxNQUFNLENBQUNpQixRQUFRLENBQUNmLEdBQUcsQ0FBQ0UsTUFBTSxDQUFDVyxHQUFHLENBQUMsRUFDL0JiLEdBQUcsQ0FBQ0UsTUFBTSxDQUFDQyxRQUFRLENBQUNGLE9BQU8sQ0FBQ2UsR0FBRyxFQUMvQmYsT0FBTyxDQUFDZ0IsVUFBVSxDQUNuQjtFQUVMLENBQUM7RUFFRHJCLFVBQVUsQ0FBQ3NCLEdBQUcsQ0FBQ2IsSUFBSSxDQUFDRCxFQUFFLEVBQUVDLElBQUksQ0FBQztFQUU3QixPQUFPQSxJQUFJO0FBQ2I7QUFFQSxPQUFPLFNBQVNjLGtCQUFrQixDQUFDQyxRQUFzQixFQUFnQjtFQUN2RSxPQUFPO0lBQ0xoQixFQUFFLEVBQUVnQixRQUFRLENBQUNoQixFQUFFO0lBQ2ZFLEdBQUcsRUFBRWMsUUFBUSxDQUFDZCxHQUFHO0lBQ2pCQyxZQUFZLEVBQUVhLFFBQVEsQ0FBQ2IsWUFBWTtJQUNuQ0MsU0FBUyxFQUFFWSxRQUFRLENBQUNaLFNBQVM7SUFDN0JFLElBQUksRUFBRVUsUUFBUSxDQUFDVixJQUFJO0lBQ25CRSxVQUFVLEVBQUVRLFFBQVEsQ0FBQ1I7RUFDdkIsQ0FBQztBQUNIO0FBRUEsT0FBTyxTQUFTUyxpQkFBaUIsQ0FDL0JyQixHQUFZLEVBQ1pDLE9BQWdCLEVBQ0Y7RUFDZCxPQUFPa0Isa0JBQWtCLENBQUNwQixpQkFBaUIsQ0FBQ0MsR0FBRyxFQUFFQyxPQUFPLENBQUMsQ0FBQztBQUM1RCJ9
1
+ import"../../chunk-KMTF2BZE.js";import{filesCache as a}from"../../cache.js";import{decryptCryptoBox as s}from"../../crypto/index.js";import{sodium as r}from"../../sodium.js";function d(e,t){if(!e.access||!e.access.sharedBy.keyPair)throw`File ${e.id} doesn't have access`;const i={id:e.id,md5:e.md5,md5Encrypted:e.md5Encrypted,createdAt:new Date(e.createdAt),size:BigInt(e.size),sizeBefore:BigInt(e.sizeBefore),key:r.to_hex(s(r.from_hex(e.access.key),e.access.sharedBy.keyPair.pub,t.privateKey))};return a.set(i.id,i),i}function o(e){return{id:e.id,md5:e.md5,md5Encrypted:e.md5Encrypted,createdAt:e.createdAt,size:e.size,sizeBefore:e.sizeBefore}}function p(e,t){return o(d(e,t))}export{p as gqlFileToExternal,d as gqlFileToInternal,o as internalFileToFile};
2
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/file.ts"],"sourcesContent":["import { filesCache } from \"../../cache.js\";\nimport type { KeyPair } from \"../../crypto/index.js\";\nimport { decryptCryptoBox } from \"../../crypto/index.js\";\nimport { sodium } from \"../../sodium.js\";\nimport type { GQLFile, InternalFile, FileMetadata } from \"../types/index.js\";\n\nexport function gqlFileToInternal(\n gql: GQLFile,\n keyPair: KeyPair\n): InternalFile {\n if (!gql.access || !gql.access.sharedBy.keyPair) {\n throw `File ${gql.id} doesn't have access`;\n }\n\n const file: InternalFile = {\n id: gql.id,\n md5: gql.md5,\n md5Encrypted: gql.md5Encrypted,\n createdAt: new Date(gql.createdAt as string),\n size: BigInt(gql.size as string),\n sizeBefore: BigInt(gql.sizeBefore as string),\n key: sodium.to_hex(\n decryptCryptoBox(\n sodium.from_hex(gql.access.key),\n gql.access.sharedBy.keyPair.pub,\n keyPair.privateKey\n )\n )\n };\n\n filesCache.set(file.id, file);\n\n return file;\n}\n\nexport function internalFileToFile(internal: InternalFile): FileMetadata {\n return {\n id: internal.id,\n md5: internal.md5,\n md5Encrypted: internal.md5Encrypted,\n createdAt: internal.createdAt,\n size: internal.size,\n sizeBefore: internal.sizeBefore\n };\n}\n\nexport function gqlFileToExternal(\n gql: GQLFile,\n keyPair: KeyPair\n): FileMetadata {\n return internalFileToFile(gqlFileToInternal(gql, keyPair));\n}\n"],"mappings":"gCAAA,OAAS,cAAAA,MAAkB,iBAE3B,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,UAAAC,MAAc,kBAGhB,SAASC,EACdC,EACAC,EACc,CACd,GAAI,CAACD,EAAI,QAAU,CAACA,EAAI,OAAO,SAAS,QACtC,KAAM,QAAQA,EAAI,yBAGpB,MAAME,EAAqB,CACzB,GAAIF,EAAI,GACR,IAAKA,EAAI,IACT,aAAcA,EAAI,aAClB,UAAW,IAAI,KAAKA,EAAI,SAAmB,EAC3C,KAAM,OAAOA,EAAI,IAAc,EAC/B,WAAY,OAAOA,EAAI,UAAoB,EAC3C,IAAKF,EAAO,OACVD,EACEC,EAAO,SAASE,EAAI,OAAO,GAAG,EAC9BA,EAAI,OAAO,SAAS,QAAQ,IAC5BC,EAAQ,UACV,CACF,CACF,EAEA,OAAAL,EAAW,IAAIM,EAAK,GAAIA,CAAI,EAErBA,CACT,CAEO,SAASC,EAAmBC,EAAsC,CACvE,MAAO,CACL,GAAIA,EAAS,GACb,IAAKA,EAAS,IACd,aAAcA,EAAS,aACvB,UAAWA,EAAS,UACpB,KAAMA,EAAS,KACf,WAAYA,EAAS,UACvB,CACF,CAEO,SAASC,EACdL,EACAC,EACc,CACd,OAAOE,EAAmBJ,EAAkBC,EAAKC,CAAO,CAAC,CAC3D","names":["filesCache","decryptCryptoBox","sodium","gqlFileToInternal","gql","keyPair","file","internalFileToFile","internal","gqlFileToExternal"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-5WPCTUWH.cjs');var _indexjs = require('../../index.js');function h(e,r){var c;let n=e.type;e.mailIntegrityDraft&&(n="draft");const i=n==="draft"?e.mailIntegrityDraft:e.mailIntegrity;if(!i)return null;const o=e.type==="received"?e.sender.publicKey:r.publicKey,s=_indexjs.sodium.to_string(_indexjs.decryptCryptoBox.call(void 0, _indexjs.sodium.from_hex(e.body),o,r.privateKey)),y=_indexjs.sodium.to_string(_indexjs.decryptCryptoBox.call(void 0, _indexjs.sodium.from_hex(e.subject),o,r.privateKey)),m=_indexjs.sodium.crypto_generichash(_indexjs.sodium.crypto_generichash_BYTES,JSON.stringify({body:s,subject:y}),i.hashKey,"hex");return{type:n,id:e.id,mailIntegrityId:i.id,replyTo:(c=i.replyTo)==null?void 0:c.id,body:s,subject:y,createdAt:new Date(e.createdAt),deletedAt:e.deletedAt?new Date(e.deletedAt):null,openedAt:e.openedAt?new Date(e.openedAt):null,isAltered:m!==i.hash,temporaryRecipients:i.temporaryRecipients,recipients:n==="draft"?i.recipients:e.recipients,sender:e.sender,files:e.files.map(p=>{const f=_indexjs.sodium.to_string(_indexjs.decryptCryptoBox.call(void 0, _indexjs.sodium.from_hex(p.filename),o,r.privateKey));return{id:p.file.id,name:f,key:p.fileKey}})}}exports.convertInternalMailToExternal = h;
2
+ //# sourceMappingURL=mail.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/mail.ts"],"names":["sodium","decryptCryptoBox","convertInternalMailToExternal","data","keys","_a","type","mI","pubKey","body","subject","hash","f","name"],"mappings":"iCAEA,OAAS,UAAAA,EAAQ,oBAAAC,MAAwB,iBAElC,SAASC,EACdC,EACAC,EACa,CAPf,IAAAC,EAQE,IAAIC,EAAiBH,EAAK,KACtBA,EAAK,qBACPG,EAAO,SAGT,MAAMC,EAAKD,IAAS,QAAUH,EAAK,mBAAqBA,EAAK,cAE7D,GAAI,CAACI,EACH,OAAO,KAGT,MAAMC,EACJL,EAAK,OAAS,WAAaA,EAAK,OAAO,UAAYC,EAAK,UAEpDK,EAAOT,EAAO,UAClBC,EAAiBD,EAAO,SAASG,EAAK,IAAI,EAAGK,EAAQJ,EAAK,UAAU,CACtE,EAEMM,EAAUV,EAAO,UACrBC,EAAiBD,EAAO,SAASG,EAAK,OAAO,EAAGK,EAAQJ,EAAK,UAAU,CACzE,EAEMO,EAAOX,EAAO,mBAClBA,EAAO,yBACP,KAAK,UAAU,CAAE,KAAAS,EAAM,QAAAC,CAAQ,CAAC,EAChCH,EAAG,QACH,KACF,EAEA,MAAO,CACL,KAAAD,EACA,GAAIH,EAAK,GACT,gBAAiBI,EAAG,GACpB,SAASF,EAAAE,EAAG,UAAH,YAAAF,EAAY,GACrB,KAAAI,EACA,QAAAC,EACA,UAAW,IAAI,KAAKP,EAAK,SAAmB,EAC5C,UAAWA,EAAK,UAAY,IAAI,KAAKA,EAAK,SAAmB,EAAI,KACjE,SAAUA,EAAK,SAAW,IAAI,KAAKA,EAAK,QAAkB,EAAI,KAC9D,UAAWQ,IAASJ,EAAG,KACvB,oBAAqBA,EAAG,oBACxB,WAAYD,IAAS,QAAUC,EAAG,WAAaJ,EAAK,WACpD,OAAQA,EAAK,OACb,MAAOA,EAAK,MAAM,IAAIS,GAAK,CACzB,MAAMC,EAAOb,EAAO,UAClBC,EAAiBD,EAAO,SAASY,EAAE,QAAQ,EAAGJ,EAAQJ,EAAK,UAAU,CACvE,EAEA,MAAO,CACL,GAAIQ,EAAE,KAAK,GACX,KAAAC,EACA,IAAKD,EAAE,OACT,CACF,CAAC,CACH,CACF","sourcesContent":["import type { KeyPair } from \"../../crypto/index.js\";\nimport type { GQLMail, Mail, MailType } from \"../types/index.js\";\nimport { sodium, decryptCryptoBox } from \"../../index.js\";\n\nexport function convertInternalMailToExternal(\n data: GQLMail,\n keys: KeyPair\n): Mail | null {\n let type: MailType = data.type;\n if (data.mailIntegrityDraft) {\n type = \"draft\";\n }\n\n const mI = type === \"draft\" ? data.mailIntegrityDraft : data.mailIntegrity;\n\n if (!mI) {\n return null;\n }\n\n const pubKey =\n data.type === \"received\" ? data.sender.publicKey : keys.publicKey;\n\n const body = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey)\n );\n\n const subject = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey)\n );\n\n const hash = sodium.crypto_generichash(\n sodium.crypto_generichash_BYTES,\n JSON.stringify({ body, subject }),\n mI.hashKey,\n \"hex\"\n );\n\n return {\n type,\n id: data.id,\n mailIntegrityId: mI.id,\n replyTo: mI.replyTo?.id,\n body,\n subject,\n createdAt: new Date(data.createdAt as string),\n deletedAt: data.deletedAt ? new Date(data.deletedAt as string) : null,\n openedAt: data.openedAt ? new Date(data.openedAt as string) : null,\n isAltered: hash !== mI.hash,\n temporaryRecipients: mI.temporaryRecipients,\n recipients: type === \"draft\" ? mI.recipients : data.recipients,\n sender: data.sender,\n files: data.files.map(f => {\n const name = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey)\n );\n\n return {\n id: f.file.id,\n name,\n key: f.fileKey\n };\n })\n };\n}\n"]}
@@ -1,3 +1,13 @@
1
- import type { KeyPair } from "../../crypto/index.js";
2
- import type { GQLMail, Mail } from "../types/index.js";
3
- export declare function convertInternalMailToExternal(data: GQLMail, keys: KeyPair): Mail | null;
1
+ import { KeyPair } from '../../crypto/index.js';
2
+ import { GQLMail, Mail } from '../types/index.js';
3
+ import '../../zeus/index.js';
4
+ import '../../zeus/const.js';
5
+ import '../types/selectors.js';
6
+ import '../types/File.js';
7
+ import '../types/UserAppSettings.js';
8
+ import '../types/UserAppNotifications.js';
9
+ import '../types/Inputs.js';
10
+
11
+ declare function convertInternalMailToExternal(data: GQLMail, keys: KeyPair): Mail | null;
12
+
13
+ export { convertInternalMailToExternal };
@@ -1,43 +1,2 @@
1
- import { sodium, decryptCryptoBox } from "../../index.js";
2
- export function convertInternalMailToExternal(data, keys) {
3
- var _mI$replyTo;
4
- let type = data.type;
5
- if (data.mailIntegrityDraft) {
6
- type = "draft";
7
- }
8
- const mI = type === "draft" ? data.mailIntegrityDraft : data.mailIntegrity;
9
- if (!mI) {
10
- return null;
11
- }
12
- const pubKey = data.type === "received" ? data.sender.publicKey : keys.publicKey;
13
- const body = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey));
14
- const subject = sodium.to_string(decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey));
15
- const hash = sodium.crypto_generichash(sodium.crypto_generichash_BYTES, JSON.stringify({
16
- body,
17
- subject
18
- }), mI.hashKey, "hex");
19
- return {
20
- type,
21
- id: data.id,
22
- mailIntegrityId: mI.id,
23
- replyTo: (_mI$replyTo = mI.replyTo) == null ? void 0 : _mI$replyTo.id,
24
- body,
25
- subject,
26
- createdAt: new Date(data.createdAt),
27
- deletedAt: data.deletedAt ? new Date(data.deletedAt) : null,
28
- openedAt: data.openedAt ? new Date(data.openedAt) : null,
29
- isAltered: hash !== mI.hash,
30
- temporaryRecipients: mI.temporaryRecipients,
31
- recipients: type === "draft" ? mI.recipients : data.recipients,
32
- sender: data.sender,
33
- files: data.files.map(f => {
34
- const name = sodium.to_string(decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey));
35
- return {
36
- id: f.file.id,
37
- name,
38
- key: f.fileKey
39
- };
40
- })
41
- };
42
- }
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJkZWNyeXB0Q3J5cHRvQm94IiwiY29udmVydEludGVybmFsTWFpbFRvRXh0ZXJuYWwiLCJkYXRhIiwia2V5cyIsInR5cGUiLCJtYWlsSW50ZWdyaXR5RHJhZnQiLCJtSSIsIm1haWxJbnRlZ3JpdHkiLCJwdWJLZXkiLCJzZW5kZXIiLCJwdWJsaWNLZXkiLCJib2R5IiwidG9fc3RyaW5nIiwiZnJvbV9oZXgiLCJwcml2YXRlS2V5Iiwic3ViamVjdCIsImhhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2giLCJjcnlwdG9fZ2VuZXJpY2hhc2hfQllURVMiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFzaEtleSIsImlkIiwibWFpbEludGVncml0eUlkIiwicmVwbHlUbyIsImNyZWF0ZWRBdCIsIkRhdGUiLCJkZWxldGVkQXQiLCJvcGVuZWRBdCIsImlzQWx0ZXJlZCIsInRlbXBvcmFyeVJlY2lwaWVudHMiLCJyZWNpcGllbnRzIiwiZmlsZXMiLCJtYXAiLCJmIiwibmFtZSIsImZpbGVuYW1lIiwiZmlsZSIsImtleSIsImZpbGVLZXkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbnZlcnQvbWFpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdRTE1haWwsIE1haWwsIE1haWxUeXBlIH0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzb2RpdW0sIGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJbnRlcm5hbE1haWxUb0V4dGVybmFsKFxuICBkYXRhOiBHUUxNYWlsLFxuICBrZXlzOiBLZXlQYWlyXG4pOiBNYWlsIHwgbnVsbCB7XG4gIGxldCB0eXBlOiBNYWlsVHlwZSA9IGRhdGEudHlwZTtcbiAgaWYgKGRhdGEubWFpbEludGVncml0eURyYWZ0KSB7XG4gICAgdHlwZSA9IFwiZHJhZnRcIjtcbiAgfVxuXG4gIGNvbnN0IG1JID0gdHlwZSA9PT0gXCJkcmFmdFwiID8gZGF0YS5tYWlsSW50ZWdyaXR5RHJhZnQgOiBkYXRhLm1haWxJbnRlZ3JpdHk7XG5cbiAgaWYgKCFtSSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcHViS2V5ID1cbiAgICBkYXRhLnR5cGUgPT09IFwicmVjZWl2ZWRcIiA/IGRhdGEuc2VuZGVyLnB1YmxpY0tleSA6IGtleXMucHVibGljS2V5O1xuXG4gIGNvbnN0IGJvZHkgPSBzb2RpdW0udG9fc3RyaW5nKFxuICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGRhdGEuYm9keSksIHB1YktleSwga2V5cy5wcml2YXRlS2V5KVxuICApO1xuXG4gIGNvbnN0IHN1YmplY3QgPSBzb2RpdW0udG9fc3RyaW5nKFxuICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGRhdGEuc3ViamVjdCksIHB1YktleSwga2V5cy5wcml2YXRlS2V5KVxuICApO1xuXG4gIGNvbnN0IGhhc2ggPSBzb2RpdW0uY3J5cHRvX2dlbmVyaWNoYXNoKFxuICAgIHNvZGl1bS5jcnlwdG9fZ2VuZXJpY2hhc2hfQllURVMsXG4gICAgSlNPTi5zdHJpbmdpZnkoeyBib2R5LCBzdWJqZWN0IH0pLFxuICAgIG1JLmhhc2hLZXksXG4gICAgXCJoZXhcIlxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZSxcbiAgICBpZDogZGF0YS5pZCxcbiAgICBtYWlsSW50ZWdyaXR5SWQ6IG1JLmlkLFxuICAgIHJlcGx5VG86IG1JLnJlcGx5VG8/LmlkLFxuICAgIGJvZHksXG4gICAgc3ViamVjdCxcbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKGRhdGEuY3JlYXRlZEF0IGFzIHN0cmluZyksXG4gICAgZGVsZXRlZEF0OiBkYXRhLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGRhdGEuZGVsZXRlZEF0IGFzIHN0cmluZykgOiBudWxsLFxuICAgIG9wZW5lZEF0OiBkYXRhLm9wZW5lZEF0ID8gbmV3IERhdGUoZGF0YS5vcGVuZWRBdCBhcyBzdHJpbmcpIDogbnVsbCxcbiAgICBpc0FsdGVyZWQ6IGhhc2ggIT09IG1JLmhhc2gsXG4gICAgdGVtcG9yYXJ5UmVjaXBpZW50czogbUkudGVtcG9yYXJ5UmVjaXBpZW50cyxcbiAgICByZWNpcGllbnRzOiB0eXBlID09PSBcImRyYWZ0XCIgPyBtSS5yZWNpcGllbnRzIDogZGF0YS5yZWNpcGllbnRzLFxuICAgIHNlbmRlcjogZGF0YS5zZW5kZXIsXG4gICAgZmlsZXM6IGRhdGEuZmlsZXMubWFwKGYgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICAgIGRlY3J5cHRDcnlwdG9Cb3goc29kaXVtLmZyb21faGV4KGYuZmlsZW5hbWUpLCBwdWJLZXksIGtleXMucHJpdmF0ZUtleSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBmLmZpbGUuaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGtleTogZi5maWxlS2V5XG4gICAgICB9O1xuICAgIH0pXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLE1BQU0sRUFBRUMsZ0JBQWdCLFFBQVEsZ0JBQWdCO0FBRXpELE9BQU8sU0FBU0MsNkJBQTZCLENBQzNDQyxJQUFhLEVBQ2JDLElBQWEsRUFDQTtFQUFBO0VBQ2IsSUFBSUMsSUFBYyxHQUFHRixJQUFJLENBQUNFLElBQUk7RUFDOUIsSUFBSUYsSUFBSSxDQUFDRyxrQkFBa0IsRUFBRTtJQUMzQkQsSUFBSSxHQUFHLE9BQU87RUFDaEI7RUFFQSxNQUFNRSxFQUFFLEdBQUdGLElBQUksS0FBSyxPQUFPLEdBQUdGLElBQUksQ0FBQ0csa0JBQWtCLEdBQUdILElBQUksQ0FBQ0ssYUFBYTtFQUUxRSxJQUFJLENBQUNELEVBQUUsRUFBRTtJQUNQLE9BQU8sSUFBSTtFQUNiO0VBRUEsTUFBTUUs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
1
+ import"../../chunk-KMTF2BZE.js";import{sodium as t,decryptCryptoBox as l}from"../../index.js";function h(e,r){var c;let n=e.type;e.mailIntegrityDraft&&(n="draft");const i=n==="draft"?e.mailIntegrityDraft:e.mailIntegrity;if(!i)return null;const o=e.type==="received"?e.sender.publicKey:r.publicKey,s=t.to_string(l(t.from_hex(e.body),o,r.privateKey)),y=t.to_string(l(t.from_hex(e.subject),o,r.privateKey)),m=t.crypto_generichash(t.crypto_generichash_BYTES,JSON.stringify({body:s,subject:y}),i.hashKey,"hex");return{type:n,id:e.id,mailIntegrityId:i.id,replyTo:(c=i.replyTo)==null?void 0:c.id,body:s,subject:y,createdAt:new Date(e.createdAt),deletedAt:e.deletedAt?new Date(e.deletedAt):null,openedAt:e.openedAt?new Date(e.openedAt):null,isAltered:m!==i.hash,temporaryRecipients:i.temporaryRecipients,recipients:n==="draft"?i.recipients:e.recipients,sender:e.sender,files:e.files.map(p=>{const f=t.to_string(l(t.from_hex(p.filename),o,r.privateKey));return{id:p.file.id,name:f,key:p.fileKey}})}}export{h as convertInternalMailToExternal};
2
+ //# sourceMappingURL=mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/mail.ts"],"sourcesContent":["import type { KeyPair } from \"../../crypto/index.js\";\nimport type { GQLMail, Mail, MailType } from \"../types/index.js\";\nimport { sodium, decryptCryptoBox } from \"../../index.js\";\n\nexport function convertInternalMailToExternal(\n data: GQLMail,\n keys: KeyPair\n): Mail | null {\n let type: MailType = data.type;\n if (data.mailIntegrityDraft) {\n type = \"draft\";\n }\n\n const mI = type === \"draft\" ? data.mailIntegrityDraft : data.mailIntegrity;\n\n if (!mI) {\n return null;\n }\n\n const pubKey =\n data.type === \"received\" ? data.sender.publicKey : keys.publicKey;\n\n const body = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(data.body), pubKey, keys.privateKey)\n );\n\n const subject = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(data.subject), pubKey, keys.privateKey)\n );\n\n const hash = sodium.crypto_generichash(\n sodium.crypto_generichash_BYTES,\n JSON.stringify({ body, subject }),\n mI.hashKey,\n \"hex\"\n );\n\n return {\n type,\n id: data.id,\n mailIntegrityId: mI.id,\n replyTo: mI.replyTo?.id,\n body,\n subject,\n createdAt: new Date(data.createdAt as string),\n deletedAt: data.deletedAt ? new Date(data.deletedAt as string) : null,\n openedAt: data.openedAt ? new Date(data.openedAt as string) : null,\n isAltered: hash !== mI.hash,\n temporaryRecipients: mI.temporaryRecipients,\n recipients: type === \"draft\" ? mI.recipients : data.recipients,\n sender: data.sender,\n files: data.files.map(f => {\n const name = sodium.to_string(\n decryptCryptoBox(sodium.from_hex(f.filename), pubKey, keys.privateKey)\n );\n\n return {\n id: f.file.id,\n name,\n key: f.fileKey\n };\n })\n };\n}\n"],"mappings":"gCAEA,OAAS,UAAAA,EAAQ,oBAAAC,MAAwB,iBAElC,SAASC,EACdC,EACAC,EACa,CAPf,IAAAC,EAQE,IAAIC,EAAiBH,EAAK,KACtBA,EAAK,qBACPG,EAAO,SAGT,MAAMC,EAAKD,IAAS,QAAUH,EAAK,mBAAqBA,EAAK,cAE7D,GAAI,CAACI,EACH,OAAO,KAGT,MAAMC,EACJL,EAAK,OAAS,WAAaA,EAAK,OAAO,UAAYC,EAAK,UAEpDK,EAAOT,EAAO,UAClBC,EAAiBD,EAAO,SAASG,EAAK,IAAI,EAAGK,EAAQJ,EAAK,UAAU,CACtE,EAEMM,EAAUV,EAAO,UACrBC,EAAiBD,EAAO,SAASG,EAAK,OAAO,EAAGK,EAAQJ,EAAK,UAAU,CACzE,EAEMO,EAAOX,EAAO,mBAClBA,EAAO,yBACP,KAAK,UAAU,CAAE,KAAAS,EAAM,QAAAC,CAAQ,CAAC,EAChCH,EAAG,QACH,KACF,EAEA,MAAO,CACL,KAAAD,EACA,GAAIH,EAAK,GACT,gBAAiBI,EAAG,GACpB,SAASF,EAAAE,EAAG,UAAH,YAAAF,EAAY,GACrB,KAAAI,EACA,QAAAC,EACA,UAAW,IAAI,KAAKP,EAAK,SAAmB,EAC5C,UAAWA,EAAK,UAAY,IAAI,KAAKA,EAAK,SAAmB,EAAI,KACjE,SAAUA,EAAK,SAAW,IAAI,KAAKA,EAAK,QAAkB,EAAI,KAC9D,UAAWQ,IAASJ,EAAG,KACvB,oBAAqBA,EAAG,oBACxB,WAAYD,IAAS,QAAUC,EAAG,WAAaJ,EAAK,WACpD,OAAQA,EAAK,OACb,MAAOA,EAAK,MAAM,IAAIS,GAAK,CACzB,MAAMC,EAAOb,EAAO,UAClBC,EAAiBD,EAAO,SAASY,EAAE,QAAQ,EAAGJ,EAAQJ,EAAK,UAAU,CACvE,EAEA,MAAO,CACL,GAAIQ,EAAE,KAAK,GACX,KAAAC,EACA,IAAKD,EAAE,OACT,CACF,CAAC,CACH,CACF","names":["sodium","decryptCryptoBox","convertInternalMailToExternal","data","keys","_a","type","mI","pubKey","body","subject","hash","f","name"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5WPCTUWHcjs = require('../../chunk-5WPCTUWH.cjs');var _sodiumjs = require('../../sodium.js');var _indexjs = require('../../crypto/index.js');var _cachejs = require('../../cache.js');var _filejs = require('../../crypto/file.js');var _filejs3 = require('./file.js');async function i(e,r){var o,u;if(!e.access)throw`Can't access Node ${e.id}`;const t={id:e.id,type:e.type,access:e.access,name:e.name,isFavorite:e.isFavorite,breadcrumb:e.breadcrumb,createdBy:e.createdBy.user,sizes:{size:BigInt(e.sizes.size),sizeBefore:BigInt(e.sizes.sizeBefore)},createdAt:new Date(e.createdAt),updatedAt:new Date(e.updatedAt),deletedAt:e.deletedAt?new Date(e.deletedAt):null,users:e.accesses.map(n=>[n.userApp.user,n.rights]),parentId:(o=e.parentId)!=null?o:null,currentFileId:(u=e.currentFileId)!=null?u:null};if(t.access=_chunk5WPCTUWHcjs.a.call(void 0, {},e.access),e.access.nameKey){if(!e.access.sharedBy.keyPair)throw new Error("Can't find keyPair for access");const n=_indexjs.decryptCryptoBox.call(void 0, _sodiumjs.sodium.from_hex(e.access.nameKey),e.createdBy.user.publicKey,r.privateKey);t.name=_sodiumjs.sodium.to_string(await _filejs.decryptSecretstream.call(void 0, n,_sodiumjs.sodium.from_hex(t.name))),t.access.nameKey=_sodiumjs.sodium.to_hex(n)}for(const n of t.breadcrumb){if(!n.nameKey)continue;const m=_indexjs.decryptCryptoBox.call(void 0, _sodiumjs.sodium.from_hex(n.nameKey),n.pubKey,r.privateKey);n.nameKey=_sodiumjs.sodium.to_hex(m),n.name=_sodiumjs.sodium.to_string(await _filejs.decryptSecretstream.call(void 0, m,_sodiumjs.sodium.from_hex(n.name)))}return _cachejs.nodesCache.set(t.id,t),t}async function F(e,r){const t=await i(e,r);return _chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},t),{current:e.current?_filejs3.gqlFileToInternal.call(void 0, e.current,r):void 0,parent:e.parent?await i(e.parent,r):null,children:await Promise.all(e.children.map(o=>i(o,r))),history:e.history.map(o=>_filejs3.gqlFileToInternal.call(void 0, o,r))})}function c(e){var t;const r=_chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},e),{access:e.access?_chunk5WPCTUWHcjs.a.call(void 0, {},e.access):void 0});for(const o of r.breadcrumb)delete o.pubKey;return(t=r.access)==null||delete t.nameKey,r}function h(e){return _chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},c(e)),{parent:e.parent?c(e.parent):null,children:e.children.map(c),history:e.history.map(r=>_filejs3.internalFileToFile.call(void 0, r)),current:e.current?_filejs3.internalFileToFile.call(void 0, e.current):void 0})}async function B(e,r){return h(await F(e,r))}async function A(e,r){return c(await i(e,r))}exports.gqlNodeFullToInternalFull = F; exports.gqlNodeToExternal = A; exports.gqlNodeToExternalNodeFull = B; exports.gqlNodeToInternal = i; exports.internalNodeFullToNodeFull = h; exports.internalNodeToNode = c;
2
+ //# sourceMappingURL=node.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/node.ts"],"names":["sodium","decryptCryptoBox","nodesCache","decryptSecretstream","gqlFileToInternal","internalFileToFile","gqlNodeToInternal","gql","keyPair","_a","_b","internal","u","__spreadValues","key","b","gqlNodeFullToInternalFull","f","__spreadProps","s","internalNodeToNode","node","internalNodeFullToNodeFull","gqlNodeToExternalNodeFull","gqlNodeToExternal"],"mappings":"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","sourcesContent":["import { sodium } from \"../../sodium.js\";\nimport type { KeyPair } from \"../../crypto/index.js\";\nimport { decryptCryptoBox } from \"../../crypto/index.js\";\nimport type { Node } from \"../types/index.js\";\nimport type {\n GQLNode,\n InternalNode,\n GQLNodeFull,\n InternalNodeFull,\n NodeFull\n} from \"../types/index.js\";\nimport { nodesCache } from \"../../cache.js\";\nimport { decryptSecretstream } from \"../../crypto/file.js\";\nimport { gqlFileToInternal, internalFileToFile } from \"./file.js\";\n\nexport async function gqlNodeToInternal(\n gql: GQLNode,\n keyPair: KeyPair\n): Promise<InternalNode> {\n if (!gql.access) {\n throw `Can't access Node ${gql.id}`;\n }\n\n const internal: InternalNode = {\n id: gql.id,\n type: gql.type,\n access: gql.access,\n name: gql.name,\n isFavorite: gql.isFavorite,\n breadcrumb: gql.breadcrumb,\n createdBy: gql.createdBy.user,\n sizes: {\n size: BigInt(gql.sizes.size as string),\n sizeBefore: BigInt(gql.sizes.sizeBefore as string)\n },\n createdAt: new Date(gql.createdAt as string),\n updatedAt: new Date(gql.updatedAt as string),\n deletedAt: gql.deletedAt ? new Date(gql.deletedAt as string) : null,\n users: gql.accesses.map(u => [u.userApp.user, u.rights]),\n parentId: gql.parentId ?? null,\n currentFileId: gql.currentFileId ?? null\n };\n\n internal.access = { ...gql.access };\n\n if (gql.access.nameKey) {\n if (!gql.access.sharedBy.keyPair) {\n throw new Error(`Can't find keyPair for access`);\n }\n const key = decryptCryptoBox(\n sodium.from_hex(gql.access.nameKey),\n gql.createdBy.user.publicKey,\n keyPair.privateKey\n );\n internal.name = sodium.to_string(\n await decryptSecretstream(key, sodium.from_hex(internal.name))\n );\n\n internal.access.nameKey = sodium.to_hex(key);\n }\n\n for (const b of internal.breadcrumb) {\n if (!b.nameKey) {\n continue;\n }\n const key = decryptCryptoBox(\n sodium.from_hex(b.nameKey),\n b.pubKey,\n keyPair.privateKey\n );\n\n b.nameKey = sodium.to_hex(key);\n\n b.name = sodium.to_string(\n await decryptSecretstream(key, sodium.from_hex(b.name))\n );\n }\n\n nodesCache.set(internal.id, internal);\n return internal;\n}\n\nexport async function gqlNodeFullToInternalFull(\n gql: GQLNodeFull,\n keyPair: KeyPair\n): Promise<InternalNodeFull> {\n const f = await gqlNodeToInternal(gql, keyPair);\n return {\n ...f,\n current: gql.current ? gqlFileToInternal(gql.current, keyPair) : undefined,\n parent: gql.parent ? await gqlNodeToInternal(gql.parent, keyPair) : null,\n children: await Promise.all(\n gql.children.map(s => gqlNodeToInternal(s, keyPair))\n ),\n history: gql.history.map(f => gqlFileToInternal(f, keyPair))\n };\n}\n\nexport function internalNodeToNode(internal: InternalNode): Node {\n const node: Node = {\n ...internal,\n access: internal.access ? { ...internal.access } : undefined\n };\n\n for (const b of node.breadcrumb) {\n // @ts-ignore\n delete b.pubKey;\n }\n // @ts-ignore\n delete node.access?.nameKey;\n return node;\n}\n\nexport function internalNodeFullToNodeFull(\n internal: InternalNodeFull\n): NodeFull {\n return {\n ...internalNodeToNode(internal),\n parent: internal.parent ? internalNodeToNode(internal.parent) : null,\n children: internal.children.map(internalNodeToNode),\n history: internal.history.map(f => internalFileToFile(f)),\n current: internal.current ? internalFileToFile(internal.current) : undefined\n };\n}\n\nexport async function gqlNodeToExternalNodeFull(\n gql: GQLNodeFull,\n keyPair: KeyPair\n): Promise<NodeFull> {\n return internalNodeFullToNodeFull(\n await gqlNodeFullToInternalFull(gql, keyPair)\n );\n}\n\nexport async function gqlNodeToExternal(\n gql: GQLNode,\n keyPair: KeyPair\n): Promise<Node> {\n return internalNodeToNode(await gqlNodeToInternal(gql, keyPair));\n}\n"]}