@secrecy/lib 1.6.0 → 1.6.1

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 (197) hide show
  1. package/dist/BaseClient-ca94a07f.d.ts +405 -0
  2. package/dist/BaseClient.cjs +2 -0
  3. package/dist/BaseClient.cjs.map +1 -0
  4. package/dist/BaseClient.d.ts +16 -111
  5. package/dist/BaseClient.js +2 -506
  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 -195
  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/client/SecrecyAppClient.cjs +2 -0
  23. package/dist/client/SecrecyAppClient.cjs.map +1 -0
  24. package/dist/client/SecrecyAppClient.d.ts +16 -17
  25. package/dist/client/SecrecyAppClient.js +2 -226
  26. package/dist/client/SecrecyAppClient.js.map +1 -0
  27. package/dist/client/SecrecyCloudClient.cjs +2 -0
  28. package/dist/client/SecrecyCloudClient.cjs.map +1 -0
  29. package/dist/client/SecrecyCloudClient.d.ts +16 -89
  30. package/dist/client/SecrecyCloudClient.js +2 -1405
  31. package/dist/client/SecrecyCloudClient.js.map +1 -0
  32. package/dist/client/SecrecyDbClient.cjs +2 -0
  33. package/dist/client/SecrecyDbClient.cjs.map +1 -0
  34. package/dist/client/SecrecyDbClient.d.ts +16 -48
  35. package/dist/client/SecrecyDbClient.js +2 -419
  36. package/dist/client/SecrecyDbClient.js.map +1 -0
  37. package/dist/client/SecrecyMailClient.cjs +2 -0
  38. package/dist/client/SecrecyMailClient.cjs.map +1 -0
  39. package/dist/client/SecrecyMailClient.d.ts +16 -42
  40. package/dist/client/SecrecyMailClient.js +2 -1022
  41. package/dist/client/SecrecyMailClient.js.map +1 -0
  42. package/dist/client/SecrecyPayClient.cjs +2 -0
  43. package/dist/client/SecrecyPayClient.cjs.map +1 -0
  44. package/dist/client/SecrecyPayClient.d.ts +16 -28
  45. package/dist/client/SecrecyPayClient.js +2 -68
  46. package/dist/client/SecrecyPayClient.js.map +1 -0
  47. package/dist/client/SecrecyWalletClient.cjs +2 -0
  48. package/dist/client/SecrecyWalletClient.cjs.map +1 -0
  49. package/dist/client/SecrecyWalletClient.d.ts +16 -30
  50. package/dist/client/SecrecyWalletClient.js +2 -73
  51. package/dist/client/SecrecyWalletClient.js.map +1 -0
  52. package/dist/client/convert/file.cjs +2 -0
  53. package/dist/client/convert/file.cjs.map +1 -0
  54. package/dist/client/convert/file.d.ts +11 -5
  55. package/dist/client/convert/file.js +2 -33
  56. package/dist/client/convert/file.js.map +1 -0
  57. package/dist/client/convert/mail.cjs +2 -0
  58. package/dist/client/convert/mail.cjs.map +1 -0
  59. package/dist/client/convert/mail.d.ts +13 -3
  60. package/dist/client/convert/mail.js +2 -42
  61. package/dist/client/convert/mail.js.map +1 -0
  62. package/dist/client/convert/node.cjs +2 -0
  63. package/dist/client/convert/node.cjs.map +1 -0
  64. package/dist/client/convert/node.d.ts +18 -9
  65. package/dist/client/convert/node.js +2 -87
  66. package/dist/client/convert/node.js.map +1 -0
  67. package/dist/client/helpers.cjs +2 -0
  68. package/dist/client/helpers.cjs.map +1 -0
  69. package/dist/client/helpers.d.ts +16 -28
  70. package/dist/client/helpers.js +2 -119
  71. package/dist/client/helpers.js.map +1 -0
  72. package/dist/client/index.cjs +2 -0
  73. package/dist/client/index.cjs.map +1 -0
  74. package/dist/client/index.d.ts +16 -34
  75. package/dist/client/index.js +2 -46
  76. package/dist/client/index.js.map +1 -0
  77. package/dist/client/storage.cjs +2 -0
  78. package/dist/client/storage.cjs.map +1 -0
  79. package/dist/client/storage.d.ts +6 -3
  80. package/dist/client/storage.js +2 -12
  81. package/dist/client/storage.js.map +1 -0
  82. package/dist/client/types/File.cjs +1 -0
  83. package/dist/client/types/File.cjs.map +1 -0
  84. package/dist/client/types/File.d.ts +9 -5
  85. package/dist/client/types/File.js +1 -3
  86. package/dist/client/types/File.js.map +1 -0
  87. package/dist/client/types/Inputs.cjs +1 -0
  88. package/dist/client/types/Inputs.cjs.map +1 -0
  89. package/dist/client/types/Inputs.d.ts +6 -4
  90. package/dist/client/types/Inputs.js +1 -3
  91. package/dist/client/types/Inputs.js.map +1 -0
  92. package/dist/client/types/Node.cjs +1 -0
  93. package/dist/client/types/Node.cjs.map +1 -0
  94. package/dist/client/types/Node.d.ts +9 -56
  95. package/dist/client/types/Node.js +1 -3
  96. package/dist/client/types/Node.js.map +1 -0
  97. package/dist/client/types/UserAppNotifications.cjs +1 -0
  98. package/dist/client/types/UserAppNotifications.cjs.map +1 -0
  99. package/dist/client/types/UserAppNotifications.d.ts +3 -1
  100. package/dist/client/types/UserAppNotifications.js +1 -3
  101. package/dist/client/types/UserAppNotifications.js.map +1 -0
  102. package/dist/client/types/UserAppSettings.cjs +1 -0
  103. package/dist/client/types/UserAppSettings.cjs.map +1 -0
  104. package/dist/client/types/UserAppSettings.d.ts +3 -1
  105. package/dist/client/types/UserAppSettings.js +1 -3
  106. package/dist/client/types/UserAppSettings.js.map +1 -0
  107. package/dist/client/types/index.cjs +2 -0
  108. package/dist/client/types/index.cjs.map +1 -0
  109. package/dist/client/types/index.d.ts +86 -30
  110. package/dist/client/types/index.js +2 -8
  111. package/dist/client/types/index.js.map +1 -0
  112. package/dist/client/types/selectors.cjs +2 -0
  113. package/dist/client/types/selectors.cjs.map +1 -0
  114. package/dist/client/types/selectors.d.ts +7 -5
  115. package/dist/client/types/selectors.js +2 -135
  116. package/dist/client/types/selectors.js.map +1 -0
  117. package/dist/crypto/file.cjs +2 -0
  118. package/dist/crypto/file.cjs.map +1 -0
  119. package/dist/crypto/file.d.ts +8 -6
  120. package/dist/crypto/file.js +2 -195
  121. package/dist/crypto/file.js.map +1 -0
  122. package/dist/crypto/index.cjs +2 -0
  123. package/dist/crypto/index.cjs.map +1 -0
  124. package/dist/crypto/index.d.ts +11 -9
  125. package/dist/crypto/index.js +2 -45
  126. package/dist/crypto/index.js.map +1 -0
  127. package/dist/error.cjs +1 -0
  128. package/dist/error.cjs.map +1 -0
  129. package/dist/error.d.ts +13 -11
  130. package/dist/error.js +1 -3
  131. package/dist/error.js.map +1 -0
  132. package/dist/index.cjs +2 -0
  133. package/dist/index.cjs.map +1 -0
  134. package/dist/index.d.ts +19 -14
  135. package/dist/index.js +2 -10
  136. package/dist/index.js.map +1 -0
  137. package/dist/minify/index.cjs +2 -0
  138. package/dist/minify/index.cjs.map +1 -0
  139. package/dist/minify/index.d.ts +4 -2
  140. package/dist/minify/index.js +2 -23
  141. package/dist/minify/index.js.map +1 -0
  142. package/dist/minify/lz4.cjs +3 -0
  143. package/dist/minify/lz4.cjs.map +1 -0
  144. package/dist/minify/lz4.d.ts +7 -5
  145. package/dist/minify/lz4.js +2 -538
  146. package/dist/minify/lz4.js.map +1 -0
  147. package/dist/sodium.cjs +2 -0
  148. package/dist/sodium.cjs.map +1 -0
  149. package/dist/sodium.d.ts +5 -3
  150. package/dist/sodium.js +2 -6
  151. package/dist/sodium.js.map +1 -0
  152. package/dist/utils/encoders.cjs +2 -0
  153. package/dist/utils/encoders.cjs.map +1 -0
  154. package/dist/utils/encoders.d.ts +6 -4
  155. package/dist/utils/encoders.js +2 -18
  156. package/dist/utils/encoders.js.map +1 -0
  157. package/dist/utils/store-buddy.cjs +2 -0
  158. package/dist/utils/store-buddy.cjs.map +1 -0
  159. package/dist/utils/store-buddy.d.ts +4 -3
  160. package/dist/utils/store-buddy.js +2 -58
  161. package/dist/utils/store-buddy.js.map +1 -0
  162. package/dist/utils/time.cjs +2 -0
  163. package/dist/utils/time.cjs.map +1 -0
  164. package/dist/utils/time.d.ts +4 -2
  165. package/dist/utils/time.js +2 -12
  166. package/dist/utils/time.js.map +1 -0
  167. package/dist/utils/utils.cjs +2 -0
  168. package/dist/utils/utils.cjs.map +1 -0
  169. package/dist/utils/utils.d.ts +6 -4
  170. package/dist/utils/utils.js +2 -47
  171. package/dist/utils/utils.js.map +1 -0
  172. package/dist/worker/md5.cjs +2 -0
  173. package/dist/worker/md5.cjs.map +1 -0
  174. package/dist/worker/md5.d.ts +3 -1
  175. package/dist/worker/md5.js +2 -24
  176. package/dist/worker/md5.js.map +1 -0
  177. package/dist/worker/sodium.cjs +2 -0
  178. package/dist/worker/sodium.cjs.map +1 -0
  179. package/dist/worker/sodium.d.ts +6 -3
  180. package/dist/worker/sodium.js +2 -118
  181. package/dist/worker/sodium.js.map +1 -0
  182. package/dist/worker/workerCodes.cjs +254 -0
  183. package/dist/worker/workerCodes.cjs.map +1 -0
  184. package/dist/worker/workerCodes.d.ts +4 -2
  185. package/dist/worker/workerCodes.js +4 -5
  186. package/dist/worker/workerCodes.js.map +1 -0
  187. package/dist/zeus/const.cjs +2 -0
  188. package/dist/zeus/const.cjs.map +1 -0
  189. package/dist/zeus/const.d.ts +5 -3
  190. package/dist/zeus/const.js +2 -1846
  191. package/dist/zeus/const.js.map +1 -0
  192. package/dist/zeus/index.cjs +5 -0
  193. package/dist/zeus/index.cjs.map +1 -0
  194. package/dist/zeus/index.d.ts +91 -89
  195. package/dist/zeus/index.js +5 -642
  196. package/dist/zeus/index.js.map +1 -0
  197. package/package.json +2 -2
@@ -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":"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","names":["generate","filesCache","usersCache","encryptCryptoBox","sodium","convertInternalMailToExternal","mailSelector","SecrecyMailClient","#client","#keys","#thunder","client","keys","thunder","id","mail","e","result","mailId","recoverMail","mailType","deletedMails","mails","m","data","customMessage","user","draftId","body","subject","files","recipientsIds","replyTo","drafts","d","hashKey","hash","senderFiles","f","file","updateDraftMail","deleteDraftMail","ids","deleteMailTrash","emptyMailTrash","deleteMail","draft","recipients","temporaryRecipients","email","input","sendDraftMail","filtered","createDraftMail","readMail","unreadMail","receivedMails","sentMails","draftMails","unreadReceivedMailsCount","idOrMail","u","req","recipientsFiles","fileInHistory","key"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _indexjs = require('../index.js');var _PopupToolsjs = require('../PopupTools.js');class S{#e;#r;#t;constructor(e,r,t){this.#e=e,this.#r=r,this.#t=t}async confirmPaymentIntent({env:e="prod",paymentIntentId:r,secrecyIdWhoCreatedPaymentIntent:t,secrecyIdWhoNeedToConfirmPaymentIntent:s,amount:c,currency:o}){const y=_indexjs.getUrl.call(void 0, {env:e,hash:Buffer.from(JSON.stringify({appSession:this.#e.sessionId,paymentIntentId:r,secrecyIdWhoCreatedPaymentIntent:t,secrecyIdWhoNeedToConfirmPaymentIntent:s,amount:c,currency:o})).toString("base64"),path:"/account/iframe/pay-confirm"});return new Promise((i,a)=>_PopupToolsjs.popup.call(void 0, y,"Secrecy Pay - Confirm Payment Intent",{width:500},(n,p)=>n?a(n):i(p)))}}exports.SecrecyPayClient = S;
2
+ //# sourceMappingURL=SecrecyPayClient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/SecrecyPayClient.ts"],"names":["getUrl","popup","SecrecyPayClient","#client","#keys","#thunder","client","keys","thunder","env","paymentIntentId","secrecyIdWhoCreatedPaymentIntent","secrecyIdWhoNeedToConfirmPaymentIntent","amount","currency","url","resolve","reject","err","data"],"mappings":"AAEA,OAAS,UAAAA,MAAc,cAGvB,OAAS,SAAAC,MAAa,mBAcf,MAAMC,CAAiB,CAG5BC,GAIAC,GAIAC,GAEA,YACEC,EACAC,EACAC,EACA,CACA,KAAKL,GAAUG,EACf,KAAKF,GAAQG,EACb,KAAKF,GAAWG,CAClB,CAEA,MAAM,qBAAqB,CACzB,IAAAC,EAAM,OACN,gBAAAC,EACA,iCAAAC,EACA,uCAAAC,EACA,OAAAC,EACA,SAAAC,CACF,EAOiE,CAC/D,MAAMC,EAAMf,EAAO,CACjB,IAAAS,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAY,KAAKN,GAAQ,UACzB,gBAAAO,EACA,iCAAAC,EACA,uCAAAC,EACA,OAAAC,EACA,SAAAC,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,6BACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACE,EAASC,IAC3BhB,EACEc,EACA,uCACA,CACE,MAAO,GACT,EACA,CAACG,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EACLG,CACF,CAEJ,CACF,CACF,CACF","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SecrecyClient, SecrecyEnv } from \"../index.js\";\nimport { getUrl } from \"../index.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { Thunder } from \"../zeus/index.js\";\nimport { popup } from \"../PopupTools.js\";\n\ntype SuccessPayResponse<T> = {\n success: true;\n data: T;\n};\n\ntype ErrorPayResponse = {\n success: false;\n error: string;\n};\n\nexport type SecrecyPayResponse<T> = SuccessPayResponse<T> | ErrorPayResponse;\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 async confirmPaymentIntent({\n env = \"prod\",\n paymentIntentId,\n secrecyIdWhoCreatedPaymentIntent,\n secrecyIdWhoNeedToConfirmPaymentIntent,\n amount,\n currency\n }: {\n env?: SecrecyEnv;\n paymentIntentId: string;\n secrecyIdWhoCreatedPaymentIntent: string;\n secrecyIdWhoNeedToConfirmPaymentIntent: string;\n amount: number;\n currency: \"eur\" | \"usd\";\n }): Promise<SecrecyPayResponse<{ id: string; message: string }>> {\n const url = getUrl({\n env,\n hash: Buffer.from(\n JSON.stringify({\n appSession: this.#client.sessionId,\n paymentIntentId,\n secrecyIdWhoCreatedPaymentIntent,\n secrecyIdWhoNeedToConfirmPaymentIntent,\n amount,\n currency\n })\n ).toString(\"base64\"),\n path: \"/account/iframe/pay-confirm\"\n });\n return new Promise((resolve, reject) =>\n popup(\n url,\n \"Secrecy Pay - Confirm Payment Intent\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n }\n return resolve(\n data as SecrecyPayResponse<{ id: string; message: string }>\n );\n }\n )\n );\n }\n}\n"]}
@@ -1,28 +1,16 @@
1
- import type { SecrecyClient, SecrecyEnv } from "../index.js";
2
- import type { KeyPair } from "../crypto/index.js";
3
- import type { Thunder } from "../zeus/index.js";
4
- type SuccessPayResponse<T> = {
5
- success: true;
6
- data: T;
7
- };
8
- type ErrorPayResponse = {
9
- success: false;
10
- error: string;
11
- };
12
- export type SecrecyPayResponse<T> = SuccessPayResponse<T> | ErrorPayResponse;
13
- export declare class SecrecyPayClient {
14
- #private;
15
- constructor(client: SecrecyClient, keys: KeyPair, thunder: ReturnType<typeof Thunder>);
16
- confirmPaymentIntent({ env, paymentIntentId, secrecyIdWhoCreatedPaymentIntent, secrecyIdWhoNeedToConfirmPaymentIntent, amount, currency }: {
17
- env?: SecrecyEnv;
18
- paymentIntentId: string;
19
- secrecyIdWhoCreatedPaymentIntent: string;
20
- secrecyIdWhoNeedToConfirmPaymentIntent: string;
21
- amount: number;
22
- currency: "eur" | "usd";
23
- }): Promise<SecrecyPayResponse<{
24
- id: string;
25
- message: string;
26
- }>>;
27
- }
28
- export {};
1
+ export { s as SecrecyPayClient, r as SecrecyPayResponse } from '../BaseClient-ca94a07f.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,68 +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 { popup } from "../PopupTools.js";
7
- var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
8
- var _keys = /*#__PURE__*/_classPrivateFieldLooseKey("keys");
9
- var _thunder = /*#__PURE__*/_classPrivateFieldLooseKey("thunder");
10
- export class SecrecyPayClient {
11
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
12
- // @ts-ignore
13
-
14
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
15
- // @ts-ignore
16
-
17
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18
- // @ts-ignore
19
-
20
- constructor(client, keys, thunder) {
21
- Object.defineProperty(this, _client, {
22
- writable: true,
23
- value: void 0
24
- });
25
- Object.defineProperty(this, _keys, {
26
- writable: true,
27
- value: void 0
28
- });
29
- Object.defineProperty(this, _thunder, {
30
- writable: true,
31
- value: void 0
32
- });
33
- _classPrivateFieldLooseBase(this, _client)[_client] = client;
34
- _classPrivateFieldLooseBase(this, _keys)[_keys] = keys;
35
- _classPrivateFieldLooseBase(this, _thunder)[_thunder] = thunder;
36
- }
37
- async confirmPaymentIntent(_ref) {
38
- let {
39
- env = "prod",
40
- paymentIntentId,
41
- secrecyIdWhoCreatedPaymentIntent,
42
- secrecyIdWhoNeedToConfirmPaymentIntent,
43
- amount,
44
- currency
45
- } = _ref;
46
- const url = getUrl({
47
- env,
48
- hash: Buffer.from(JSON.stringify({
49
- appSession: _classPrivateFieldLooseBase(this, _client)[_client].sessionId,
50
- paymentIntentId,
51
- secrecyIdWhoCreatedPaymentIntent,
52
- secrecyIdWhoNeedToConfirmPaymentIntent,
53
- amount,
54
- currency
55
- })).toString("base64"),
56
- path: "/account/iframe/pay-confirm"
57
- });
58
- return new Promise((resolve, reject) => popup(url, "Secrecy Pay - Confirm Payment Intent", {
59
- width: 500
60
- }, (err, data) => {
61
- if (err) {
62
- return reject(err);
63
- }
64
- return resolve(data);
65
- }));
66
- }
67
- }
68
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVcmwiLCJwb3B1cCIsIlNlY3JlY3lQYXlDbGllbnQiLCJjb25zdHJ1Y3RvciIsImNsaWVudCIsImtleXMiLCJ0aHVuZGVyIiwiY29uZmlybVBheW1lbnRJbnRlbnQiLCJlbnYiLCJwYXltZW50SW50ZW50SWQiLCJzZWNyZWN5SWRXaG9DcmVhdGVkUGF5bWVudEludGVudCIsInNlY3JlY3lJZFdob05lZWRUb0NvbmZpcm1QYXltZW50SW50ZW50IiwiYW1vdW50IiwiY3VycmVuY3kiLCJ1cmwiLCJoYXNoIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJhcHBTZXNzaW9uIiwic2Vzc2lvbklkIiwidG9TdHJpbmciLCJwYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ3aWR0aCIsImVyciIsImRhdGEiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L1NlY3JlY3lQYXlDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgdHlwZSB7IFNlY3JlY3lDbGllbnQsIFNlY3JlY3lFbnYgfSBmcm9tIFwiLi4vaW5kZXguanNcIjtcbmltcG9ydCB7IGdldFVybCB9IGZyb20gXCIuLi9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUaHVuZGVyIH0gZnJvbSBcIi4uL3pldXMvaW5kZXguanNcIjtcbmltcG9ydCB7IHBvcHVwIH0gZnJvbSBcIi4uL1BvcHVwVG9vbHMuanNcIjtcblxudHlwZSBTdWNjZXNzUGF5UmVzcG9uc2U8VD4gPSB7XG4gIHN1Y2Nlc3M6IHRydWU7XG4gIGRhdGE6IFQ7XG59O1xuXG50eXBlIEVycm9yUGF5UmVzcG9uc2UgPSB7XG4gIHN1Y2Nlc3M6IGZhbHNlO1xuICBlcnJvcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU2VjcmVjeVBheVJlc3BvbnNlPFQ+ID0gU3VjY2Vzc1BheVJlc3BvbnNlPFQ+IHwgRXJyb3JQYXlSZXNwb25zZTtcblxuZXhwb3J0IGNsYXNzIFNlY3JlY3lQYXlDbGllbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gIC8vIEB0cy1pZ25vcmVcbiAgI2NsaWVudDogU2VjcmVjeUNsaWVudDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gIC8vIEB0cy1pZ25vcmVcbiAgI2tleXM6IEtleVBhaXI7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlXG4gICN0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjbGllbnQ6IFNlY3JlY3lDbGllbnQsXG4gICAga2V5czogS2V5UGFpcixcbiAgICB0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPlxuICApIHtcbiAgICB0aGlzLiNjbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy4ja2V5cyA9IGtleXM7XG4gICAgdGhpcy4jdGh1bmRlciA9IHRodW5kZXI7XG4gIH1cblxuICBhc3luYyBjb25maXJtUGF5bWVudEludGVudCh7XG4gICAgZW52ID0gXCJwcm9kXCIsXG4gICAgcGF5bWVudEludGVudElkLFxuICAgIHNlY3JlY3lJZFdob0NyZWF0ZWRQYXltZW50SW50ZW50LFxuICAgIHNlY3JlY3lJZFdob05lZWRUb0NvbmZpcm1QYXltZW50SW50ZW50LFxuICAgIGFtb3VudCxcbiAgICBjdXJyZW5jeVxuICB9OiB7XG4gICAgZW52PzogU2VjcmVjeUVudjtcbiAgICBwYXltZW50SW50ZW50SWQ6IHN0cmluZztcbiAgICBzZWNyZWN5SWRXaG9DcmVhdGVkUGF5bWVudEludGVudDogc3RyaW5nO1xuICAgIHNlY3JlY3lJZFdob05lZWRUb0NvbmZpcm1QYXltZW50SW50ZW50OiBzdHJpbmc7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gICAgY3VycmVuY3k6IFwiZXVyXCIgfCBcInVzZFwiO1xuICB9KTogUHJvbWlzZTxTZWNyZWN5UGF5UmVzcG9uc2U8eyBpZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfT4+IHtcbiAgICBjb25zdCB1cmwgPSBnZXRVcmwoe1xuICAgICAgZW52LFxuICAgICAgaGFzaDogQnVmZmVyLmZyb20oXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBhcHBTZXNzaW9uOiB0aGlzLiNjbGllbnQuc2Vzc2lvbklkLFxuICAgICAgICAgIHBheW1lbnRJbnRlbnRJZCxcbiAgICAgICAgICBzZWNyZWN5SWRXaG9DcmVhdGVkUGF5bWVudEludGVudCxcbiAgICAgICAgICBzZWNyZWN5SWRXaG9OZWVkVG9Db25maXJtUGF5bWVudEludGVudCxcbiAgICAgICAgICBhbW91bnQsXG4gICAgICAgICAgY3VycmVuY3lcbiAgICAgICAgfSlcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIiksXG4gICAgICBwYXRoOiBcIi9hY2NvdW50L2lmcmFtZS9wYXktY29uZmlybVwiXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICBwb3B1cChcbiAgICAgICAgdXJsLFxuICAgICAgICBcIlNlY3JlY3kgUGF5IC0gQ29uZmlybSBQYXltZW50IEludGVudFwiLFxuICAgICAgICB7XG4gICAgICAgICAgd2lkdGg6IDUwMFxuICAgICAgICB9LFxuICAgICAgICAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShcbiAgICAgICAgICAgIGRhdGEgYXMgU2VjcmVjeVBheVJlc3BvbnNlPHsgaWQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFFQSxTQUFTQSxNQUFNLFFBQVEsYUFBYTtBQUdwQyxTQUFTQyxLQUFLLFFBQVEsa0JBQWtCO0FBQUM7QUFBQTtBQUFBO0FBY3pDLE9BQU8sTUFBTUMsZ0JBQWdCLENBQUM7RUFDNUI7RUFDQTs7RUFHQTtFQUNBOztFQUdBO0VBQ0E7O0VBR0FDLFdBQVcsQ0FDVEMsTUFBcUIsRUFDckJDLElBQWEsRUFDYkMsT0FBbUMsRUFDbkM7SUFBQTtNQUFBO01BQUE7SUFBQTtJQUFBO01BQUE7TUFBQTtJQUFBO0lBQUE7TUFBQTtNQUFBO0lBQUE7SUFDQSxnQ0FBSSxzQkFBV0YsTUFBTTtJQUNyQixnQ0FBSSxrQkFBU0MsSUFBSTtJQUNqQixnQ0FBSSx3QkFBWUMsT0FBTztFQUN6QjtFQUVBLE1BQU1DLG9CQUFvQixPQWN1QztJQUFBLElBZHRDO01BQ3pCQyxHQUFHLEdBQUcsTUFBTTtNQUNaQyxlQUFlO01BQ2ZDLGdDQUFnQztNQUNoQ0Msc0NBQXNDO01BQ3RDQyxNQUFNO01BQ05DO0lBUUYsQ0FBQztJQUNDLE1BQU1DLEdBQUcsR0FBR2QsTUFBTSxDQUFDO01BQ2pCUSxHQUFHO01BQ0hPLElBQUksRUFBRUMsTUFBTSxDQUFDQyxJQUFJLENBQ2ZDLElBQUksQ0FBQ0MsU0FBUyxDQUFDO1FBQ2JDLFVBQVUsRUFBRSxnQ0FBSSxvQkFBU0MsU0FBUztRQUNsQ1osZUFBZTtRQUNmQyxnQ0FBZ0M7UUFDaENDLHNDQUFzQztRQUN0Q0MsTUFBTTtRQUNOQztNQUNGLENBQUMsQ0FBQyxDQUNILENBQUNTLFFBQVEsQ0FBQyxRQUFRLENBQUM7TUFDcEJDLElBQUksRUFBRTtJQUNSLENBQUMsQ0FBQztJQUNGLE9BQU8sSUFBSUMsT0FBTyxDQUFDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUNqQ3pCLEtBQUssQ0FDSGEsR0FBRyxFQUNILHNDQUFzQyxFQUN0QztNQUNFYSxLQUFLLEVBQUU7SUFDVCxDQUFDLEVBQ0QsQ0FBQ0MsR0FBRyxFQUFFQyxJQUFJLEtBQUs7TUFDYixJQUFJRCxHQUFHLEVBQUU7UUFDUCxPQUFPRixNQUFNLENBQUNFLEdBQUcsQ0FBQztNQUNwQjtNQUNBLE9BQU9ILE9BQU8sQ0FDWkksSUFBSSxDQUNMO0lBQ0gsQ0FBQyxDQUNGLENBQ0Y7RUFDSDtBQUNGIn0=
1
+ import{getUrl as m}from"../index.js";import{popup as u}from"../PopupTools.js";class S{#e;#r;#t;constructor(e,r,t){this.#e=e,this.#r=r,this.#t=t}async confirmPaymentIntent({env:e="prod",paymentIntentId:r,secrecyIdWhoCreatedPaymentIntent:t,secrecyIdWhoNeedToConfirmPaymentIntent:s,amount:c,currency:o}){const y=m({env:e,hash:Buffer.from(JSON.stringify({appSession:this.#e.sessionId,paymentIntentId:r,secrecyIdWhoCreatedPaymentIntent:t,secrecyIdWhoNeedToConfirmPaymentIntent:s,amount:c,currency:o})).toString("base64"),path:"/account/iframe/pay-confirm"});return new Promise((i,a)=>u(y,"Secrecy Pay - Confirm Payment Intent",{width:500},(n,p)=>n?a(n):i(p)))}}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, SecrecyEnv } from \"../index.js\";\nimport { getUrl } from \"../index.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { Thunder } from \"../zeus/index.js\";\nimport { popup } from \"../PopupTools.js\";\n\ntype SuccessPayResponse<T> = {\n success: true;\n data: T;\n};\n\ntype ErrorPayResponse = {\n success: false;\n error: string;\n};\n\nexport type SecrecyPayResponse<T> = SuccessPayResponse<T> | ErrorPayResponse;\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 async confirmPaymentIntent({\n env = \"prod\",\n paymentIntentId,\n secrecyIdWhoCreatedPaymentIntent,\n secrecyIdWhoNeedToConfirmPaymentIntent,\n amount,\n currency\n }: {\n env?: SecrecyEnv;\n paymentIntentId: string;\n secrecyIdWhoCreatedPaymentIntent: string;\n secrecyIdWhoNeedToConfirmPaymentIntent: string;\n amount: number;\n currency: \"eur\" | \"usd\";\n }): Promise<SecrecyPayResponse<{ id: string; message: string }>> {\n const url = getUrl({\n env,\n hash: Buffer.from(\n JSON.stringify({\n appSession: this.#client.sessionId,\n paymentIntentId,\n secrecyIdWhoCreatedPaymentIntent,\n secrecyIdWhoNeedToConfirmPaymentIntent,\n amount,\n currency\n })\n ).toString(\"base64\"),\n path: \"/account/iframe/pay-confirm\"\n });\n return new Promise((resolve, reject) =>\n popup(\n url,\n \"Secrecy Pay - Confirm Payment Intent\",\n {\n width: 500\n },\n (err, data) => {\n if (err) {\n return reject(err);\n }\n return resolve(\n data as SecrecyPayResponse<{ id: string; message: string }>\n );\n }\n )\n );\n }\n}\n"],"mappings":"AAEA,OAAS,UAAAA,MAAc,cAGvB,OAAS,SAAAC,MAAa,mBAcf,MAAMC,CAAiB,CAG5BC,GAIAC,GAIAC,GAEA,YACEC,EACAC,EACAC,EACA,CACA,KAAKL,GAAUG,EACf,KAAKF,GAAQG,EACb,KAAKF,GAAWG,CAClB,CAEA,MAAM,qBAAqB,CACzB,IAAAC,EAAM,OACN,gBAAAC,EACA,iCAAAC,EACA,uCAAAC,EACA,OAAAC,EACA,SAAAC,CACF,EAOiE,CAC/D,MAAMC,EAAMf,EAAO,CACjB,IAAAS,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAY,KAAKN,GAAQ,UACzB,gBAAAO,EACA,iCAAAC,EACA,uCAAAC,EACA,OAAAC,EACA,SAAAC,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,6BACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACE,EAASC,IAC3BhB,EACEc,EACA,uCACA,CACE,MAAO,GACT,EACA,CAACG,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EACLG,CACF,CAEJ,CACF,CACF,CACF","names":["getUrl","popup","SecrecyPayClient","#client","#keys","#thunder","client","keys","thunder","env","paymentIntentId","secrecyIdWhoCreatedPaymentIntent","secrecyIdWhoNeedToConfirmPaymentIntent","amount","currency","url","resolve","reject","err","data"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _indexjs = require('../index.js');var _indexjs3 = require('../zeus/index.js');var _PopupToolsjs = require('../PopupTools.js');class m{#e;constructor(e){this.#e=e}async createTransaction({env:e="prod",network:t=_indexjs3.InfuraNetwork.mainnet,tx:s}){const n=_indexjs.getUrl.call(void 0, {env:e,hash:Buffer.from(JSON.stringify({appSession:this.#e.sessionId,network:t,tx:s})).toString("base64"),path:"/account/iframe/wallet-transaction"});return new Promise((o,a)=>_PopupToolsjs.popup.call(void 0, n,"Secrecy Wallet - Transaction",{width:500},(r,i)=>r?a(r):o(i)))}async createSignature({env:e="prod",network:t=_indexjs3.InfuraNetwork.mainnet,message:s}){const n=_indexjs.getUrl.call(void 0, {env:e,hash:Buffer.from(JSON.stringify({appSession:this.#e.sessionId,network:t,message:s})).toString("base64"),path:"/account/iframe/wallet-signature"});return new Promise((o,a)=>_PopupToolsjs.popup.call(void 0, n,"Secrecy Wallet - Signature",{width:500},(r,i)=>r?a(r):o(i)))}}exports.SecrecyWalletClient = m;
2
+ //# sourceMappingURL=SecrecyWalletClient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/SecrecyWalletClient.ts"],"names":["getUrl","InfuraNetwork","popup","SecrecyWalletClient","#client","client","env","network","tx","url","resolve","reject","err","data","message"],"mappings":"AAEA,OAAS,UAAAA,MAAc,cACvB,OAAS,iBAAAC,MAAqB,mBAC9B,OAAS,SAAAC,MAAa,mBAiBf,MAAMC,CAAoB,CAC/BC,GAMA,YACEC,EAGA,CACA,KAAKD,GAAUC,CAGjB,CAEA,MAAM,kBAAkB,CACtB,IAAAC,EAAM,OACN,QAAAC,EAAUN,EAAc,QACxB,GAAAO,CACF,EAIiE,CAC/D,MAAMC,EAAMT,EAAO,CACjB,IAAAM,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAY,KAAKF,GAAQ,UACzB,QAAAG,EACA,GAAAC,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,oCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACE,EAASC,IAC3BT,EACEO,EACA,+BACA,CACE,MAAO,GACT,EACA,CAACG,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EACLG,CACF,CAEJ,CACF,CACF,CAEA,MAAM,gBAAgB,CACpB,IAAAP,EAAM,OACN,QAAAC,EAAUN,EAAc,QACxB,QAAAa,CACF,EAI2C,CACzC,MAAML,EAAMT,EAAO,CACjB,IAAAM,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAY,KAAKF,GAAQ,UACzB,QAAAG,EACA,QAAAO,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,kCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACJ,EAASC,IAC3BT,EACEO,EACA,6BACA,CACE,MAAO,GACT,EACA,CAACG,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EAAQG,CAAqC,CAExD,CACF,CACF,CACF","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
- type SuccessWalletResponse<T> = {
5
- success: true;
6
- data: T;
7
- };
8
- type ErrorWalletResponse = {
9
- success: false;
10
- error: string;
11
- };
12
- export 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-ca94a07f.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{getUrl as c}from"../index.js";import{InfuraNetwork as l}from"../zeus/index.js";import{popup as p}from"../PopupTools.js";class m{#e;constructor(e){this.#e=e}async createTransaction({env:e="prod",network:t=l.mainnet,tx:s}){const n=c({env:e,hash:Buffer.from(JSON.stringify({appSession:this.#e.sessionId,network:t,tx:s})).toString("base64"),path:"/account/iframe/wallet-transaction"});return new Promise((o,a)=>p(n,"Secrecy Wallet - Transaction",{width:500},(r,i)=>r?a(r):o(i)))}async createSignature({env:e="prod",network:t=l.mainnet,message:s}){const n=c({env:e,hash:Buffer.from(JSON.stringify({appSession:this.#e.sessionId,network:t,message:s})).toString("base64"),path:"/account/iframe/wallet-signature"});return new Promise((o,a)=>p(n,"Secrecy Wallet - Signature",{width:500},(r,i)=>r?a(r):o(i)))}}export{m 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":"AAEA,OAAS,UAAAA,MAAc,cACvB,OAAS,iBAAAC,MAAqB,mBAC9B,OAAS,SAAAC,MAAa,mBAiBf,MAAMC,CAAoB,CAC/BC,GAMA,YACEC,EAGA,CACA,KAAKD,GAAUC,CAGjB,CAEA,MAAM,kBAAkB,CACtB,IAAAC,EAAM,OACN,QAAAC,EAAUN,EAAc,QACxB,GAAAO,CACF,EAIiE,CAC/D,MAAMC,EAAMT,EAAO,CACjB,IAAAM,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAY,KAAKF,GAAQ,UACzB,QAAAG,EACA,GAAAC,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,oCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACE,EAASC,IAC3BT,EACEO,EACA,+BACA,CACE,MAAO,GACT,EACA,CAACG,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EACLG,CACF,CAEJ,CACF,CACF,CAEA,MAAM,gBAAgB,CACpB,IAAAP,EAAM,OACN,QAAAC,EAAUN,EAAc,QACxB,QAAAa,CACF,EAI2C,CACzC,MAAML,EAAMT,EAAO,CACjB,IAAAM,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAY,KAAKF,GAAQ,UACzB,QAAAG,EACA,QAAAO,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,kCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACJ,EAASC,IAC3BT,EACEO,EACA,6BACA,CACE,MAAO,GACT,EACA,CAACG,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EAAQG,CAAqC,CAExD,CACF,CACF,CACF","names":["getUrl","InfuraNetwork","popup","SecrecyWalletClient","#client","client","env","network","tx","url","resolve","reject","err","data","message"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});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":"AAAA,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{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":"AAAA,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}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _indexjs = require('../../index.js');function d(e,r){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)),c=_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:_optionalChain([i, 'access', _ => _.replyTo, 'optionalAccess', _2 => _2.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:c!==i.hash,temporaryRecipients:i.temporaryRecipients,recipients:n==="draft"?i.recipients:e.recipients,sender:e.sender,files:e.files.map(p=>{const m=_indexjs.sodium.to_string(_indexjs.decryptCryptoBox.call(void 0, _indexjs.sodium.from_hex(p.filename),o,r.privateKey));return{id:p.file.id,name:m,key:p.fileKey}})}}exports.convertInternalMailToExternal = d;
2
+ //# sourceMappingURL=mail.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/convert/mail.ts"],"names":["sodium","decryptCryptoBox","convertInternalMailToExternal","data","keys","type","mI","pubKey","body","subject","hash","f","name"],"mappings":"AAEA,OAAS,UAAAA,EAAQ,oBAAAC,MAAwB,iBAElC,SAASC,EACdC,EACAC,EACa,CACb,IAAIC,EAAiBF,EAAK,KACtBA,EAAK,qBACPE,EAAO,SAGT,MAAMC,EAAKD,IAAS,QAAUF,EAAK,mBAAqBA,EAAK,cAE7D,GAAI,CAACG,EACH,OAAO,KAGT,MAAMC,EACJJ,EAAK,OAAS,WAAaA,EAAK,OAAO,UAAYC,EAAK,UAEpDI,EAAOR,EAAO,UAClBC,EAAiBD,EAAO,SAASG,EAAK,IAAI,EAAGI,EAAQH,EAAK,UAAU,CACtE,EAEMK,EAAUT,EAAO,UACrBC,EAAiBD,EAAO,SAASG,EAAK,OAAO,EAAGI,EAAQH,EAAK,UAAU,CACzE,EAEMM,EAAOV,EAAO,mBAClBA,EAAO,yBACP,KAAK,UAAU,CAAE,KAAAQ,EAAM,QAAAC,CAAQ,CAAC,EAChCH,EAAG,QACH,KACF,EAEA,MAAO,CACL,KAAAD,EACA,GAAIF,EAAK,GACT,gBAAiBG,EAAG,GACpB,QAASA,EAAG,SAAS,GACrB,KAAAE,EACA,QAAAC,EACA,UAAW,IAAI,KAAKN,EAAK,SAAmB,EAC5C,UAAWA,EAAK,UAAY,IAAI,KAAKA,EAAK,SAAmB,EAAI,KACjE,SAAUA,EAAK,SAAW,IAAI,KAAKA,EAAK,QAAkB,EAAI,KAC9D,UAAWO,IAASJ,EAAG,KACvB,oBAAqBA,EAAG,oBACxB,WAAYD,IAAS,QAAUC,EAAG,WAAaH,EAAK,WACpD,OAAQA,EAAK,OACb,MAAOA,EAAK,MAAM,IAAIQ,GAAK,CACzB,MAAMC,EAAOZ,EAAO,UAClBC,EAAiBD,EAAO,SAASW,EAAE,QAAQ,EAAGJ,EAAQH,EAAK,UAAU,CACvE,EAEA,MAAO,CACL,GAAIO,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 };