@secrecy/lib 1.0.0-dev.67 → 1.0.0-dev.68

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 (99) hide show
  1. package/dist/BaseClient.cjs +1 -1
  2. package/dist/BaseClient.cjs.map +1 -1
  3. package/dist/BaseClient.js +1 -1
  4. package/dist/BaseClient.js.map +1 -1
  5. package/dist/PopupTools.cjs +1 -1
  6. package/dist/PopupTools.js +1 -1
  7. package/dist/ZeusThunder.cjs +1 -1
  8. package/dist/ZeusThunder.cjs.map +1 -1
  9. package/dist/ZeusThunder.js +1 -1
  10. package/dist/ZeusThunder.js.map +1 -1
  11. package/dist/cache.cjs +1 -1
  12. package/dist/cache.js +1 -1
  13. package/dist/chunk-UPFDSEKI.js +2 -0
  14. package/dist/{chunk-KMTF2BZE.js.map → chunk-UPFDSEKI.js.map} +0 -0
  15. package/dist/chunk-XDPEU3HV.cjs +2 -0
  16. package/dist/{chunk-5WPCTUWH.cjs.map → chunk-XDPEU3HV.cjs.map} +0 -0
  17. package/dist/client/SecrecyAppClient.cjs +1 -1
  18. package/dist/client/SecrecyAppClient.cjs.map +1 -1
  19. package/dist/client/SecrecyAppClient.js +1 -1
  20. package/dist/client/SecrecyAppClient.js.map +1 -1
  21. package/dist/client/SecrecyCloudClient.cjs +1 -1
  22. package/dist/client/SecrecyCloudClient.cjs.map +1 -1
  23. package/dist/client/SecrecyCloudClient.js +1 -1
  24. package/dist/client/SecrecyCloudClient.js.map +1 -1
  25. package/dist/client/SecrecyDbClient.cjs +1 -1
  26. package/dist/client/SecrecyDbClient.cjs.map +1 -1
  27. package/dist/client/SecrecyDbClient.js +1 -1
  28. package/dist/client/SecrecyDbClient.js.map +1 -1
  29. package/dist/client/SecrecyMailClient.cjs +1 -1
  30. package/dist/client/SecrecyMailClient.cjs.map +1 -1
  31. package/dist/client/SecrecyMailClient.js +1 -1
  32. package/dist/client/SecrecyMailClient.js.map +1 -1
  33. package/dist/client/SecrecyPayClient.cjs +1 -1
  34. package/dist/client/SecrecyPayClient.js +1 -1
  35. package/dist/client/SecrecyWalletClient.cjs +1 -1
  36. package/dist/client/SecrecyWalletClient.cjs.map +1 -1
  37. package/dist/client/SecrecyWalletClient.js +1 -1
  38. package/dist/client/SecrecyWalletClient.js.map +1 -1
  39. package/dist/client/convert/file.cjs +1 -1
  40. package/dist/client/convert/file.js +1 -1
  41. package/dist/client/convert/mail.cjs +1 -1
  42. package/dist/client/convert/mail.js +1 -1
  43. package/dist/client/convert/node.cjs +1 -1
  44. package/dist/client/convert/node.cjs.map +1 -1
  45. package/dist/client/convert/node.js +1 -1
  46. package/dist/client/convert/node.js.map +1 -1
  47. package/dist/client/helpers.cjs +1 -1
  48. package/dist/client/helpers.js +1 -1
  49. package/dist/client/index.cjs +1 -1
  50. package/dist/client/index.cjs.map +1 -1
  51. package/dist/client/index.js +1 -1
  52. package/dist/client/index.js.map +1 -1
  53. package/dist/client/storage.cjs +1 -1
  54. package/dist/client/storage.js +1 -1
  55. package/dist/client/types/selectors.cjs +1 -1
  56. package/dist/client/types/selectors.js +1 -1
  57. package/dist/crypto/file.cjs +1 -1
  58. package/dist/crypto/file.cjs.map +1 -1
  59. package/dist/crypto/file.js +1 -1
  60. package/dist/crypto/file.js.map +1 -1
  61. package/dist/crypto/index.cjs +1 -1
  62. package/dist/crypto/index.js +1 -1
  63. package/dist/index.cjs +1 -1
  64. package/dist/index.js +1 -1
  65. package/dist/minify/index.cjs +1 -1
  66. package/dist/minify/index.js +1 -1
  67. package/dist/minify/lz4.cjs +1 -1
  68. package/dist/minify/lz4.js +1 -1
  69. package/dist/sodium.cjs +1 -1
  70. package/dist/sodium.cjs.map +1 -1
  71. package/dist/sodium.js +1 -1
  72. package/dist/sodium.js.map +1 -1
  73. package/dist/utils/store-buddy.cjs +1 -1
  74. package/dist/utils/store-buddy.js +1 -1
  75. package/dist/utils/time.cjs +1 -1
  76. package/dist/utils/time.js +1 -1
  77. package/dist/utils/utils.cjs +1 -1
  78. package/dist/utils/utils.cjs.map +1 -1
  79. package/dist/utils/utils.js +1 -1
  80. package/dist/utils/utils.js.map +1 -1
  81. package/dist/worker/md5.cjs +1 -1
  82. package/dist/worker/md5.cjs.map +1 -1
  83. package/dist/worker/md5.js +1 -1
  84. package/dist/worker/md5.js.map +1 -1
  85. package/dist/worker/sodium.cjs +1 -1
  86. package/dist/worker/sodium.cjs.map +1 -1
  87. package/dist/worker/sodium.js +1 -1
  88. package/dist/worker/sodium.js.map +1 -1
  89. package/dist/worker/workerCodes.cjs +1 -1
  90. package/dist/worker/workerCodes.js +1 -1
  91. package/dist/zeus/const.cjs +1 -1
  92. package/dist/zeus/const.js +1 -1
  93. package/dist/zeus/index.cjs +2 -2
  94. package/dist/zeus/index.cjs.map +1 -1
  95. package/dist/zeus/index.js +2 -2
  96. package/dist/zeus/index.js.map +1 -1
  97. package/package.json +3 -3
  98. package/dist/chunk-5WPCTUWH.cjs +0 -2
  99. package/dist/chunk-KMTF2BZE.js +0 -2
@@ -1 +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"]}
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":"8DAAA,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,CAEM,kBAAkBG,EAQyC,QAAAC,EAAA,yBARzC,CACtB,IAAAC,EAAM,OACN,QAAAC,EAAUT,EAAc,QACxB,GAAAU,CACF,EAIiE,CAC/D,MAAMC,EAAMZ,EAAO,CACjB,IAAAS,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAYI,EAAA,KAAKd,GAAQ,UACzB,QAAAW,EACA,GAAAC,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,oCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACG,EAASC,IAC3Bb,EACEU,EACA,+BACA,CACE,MAAO,GACT,EACA,CAACI,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EACLG,CACF,CAEJ,CACF,CACF,GAEM,gBAAgBV,EAQqB,QAAAC,EAAA,yBARrB,CACpB,IAAAC,EAAM,OACN,QAAAC,EAAUT,EAAc,QACxB,QAAAiB,CACF,EAI2C,CACzC,MAAMN,EAAMZ,EAAO,CACjB,IAAAS,EACA,KAAM,OAAO,KACX,KAAK,UAAU,CACb,WAAYI,EAAA,KAAKd,GAAQ,UACzB,QAAAW,EACA,QAAAQ,CACF,CAAC,CACH,EAAE,SAAS,QAAQ,EACnB,KAAM,kCACR,CAAC,EACD,OAAO,IAAI,QAAQ,CAACJ,EAASC,IAC3Bb,EACEU,EACA,6BACA,CACE,MAAO,GACT,EACA,CAACI,EAAKC,IACAD,EACKD,EAAOC,CAAG,EAEZF,EAAQG,CAAqC,CAExD,CACF,CACF,GACF,CA3FElB,EAAA","names":["_client","getUrl","InfuraNetwork","popup","SecrecyWalletClient","client","__privateAdd","__privateSet","_0","__async","env","network","tx","url","__privateGet","resolve","reject","err","data","message"]}
@@ -1,2 +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;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-XDPEU3HV.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
2
  //# sourceMappingURL=file.cjs.map
@@ -1,2 +1,2 @@
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};
1
+ import"../../chunk-UPFDSEKI.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
2
  //# sourceMappingURL=file.js.map
@@ -1,2 +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;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-XDPEU3HV.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
2
  //# sourceMappingURL=mail.cjs.map
@@ -1,2 +1,2 @@
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};
1
+ import"../../chunk-UPFDSEKI.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
2
  //# sourceMappingURL=mail.js.map
@@ -1,2 +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;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXDPEU3HVcjs = require('../../chunk-XDPEU3HV.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');function c(e,r){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){var o,m;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:(m=e.currentFileId)!=null?m:null};if(t.access=_chunkXDPEU3HVcjs.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(yield _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 p=_indexjs.decryptCryptoBox.call(void 0, _sodiumjs.sodium.from_hex(n.nameKey),n.pubKey,r.privateKey);n.nameKey=_sodiumjs.sodium.to_hex(p),n.name=_sodiumjs.sodium.to_string(yield _filejs.decryptSecretstream.call(void 0, p,_sodiumjs.sodium.from_hex(n.name)))}return _cachejs.nodesCache.set(t.id,t),t})}function h(e,r){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){const t=yield c(e,r);return _chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},t),{current:e.current?_filejs3.gqlFileToInternal.call(void 0, e.current,r):void 0,parent:e.parent?yield c(e.parent,r):null,children:yield Promise.all(e.children.map(o=>c(o,r))),history:e.history.map(o=>_filejs3.gqlFileToInternal.call(void 0, o,r))})})}function u(e){var t;const r=_chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},e),{access:e.access?_chunkXDPEU3HVcjs.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 x(e){return _chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},u(e)),{parent:e.parent?u(e.parent):null,children:e.children.map(u),history:e.history.map(r=>_filejs3.internalFileToFile.call(void 0, r)),current:e.current?_filejs3.internalFileToFile.call(void 0, e.current):void 0})}function A(e,r){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){return x(yield h(e,r))})}function T(e,r){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){return u(yield c(e,r))})}exports.gqlNodeFullToInternalFull = h; exports.gqlNodeToExternal = T; exports.gqlNodeToExternalNodeFull = A; exports.gqlNodeToInternal = c; exports.internalNodeFullToNodeFull = x; exports.internalNodeToNode = u;
2
2
  //# sourceMappingURL=node.cjs.map
@@ -1 +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":"oDAAA,OAAS,UAAAA,MAAc,kBAEvB,OAAS,oBAAAC,MAAwB,wBASjC,OAAS,cAAAC,MAAkB,iBAC3B,OAAS,uBAAAC,MAA2B,uBACpC,OAAS,qBAAAC,EAAmB,sBAAAC,MAA0B,YAEtD,eAAsBC,EACpBC,EACAC,EACuB,CAlBzB,IAAAC,EAAAC,EAmBE,GAAI,CAACH,EAAI,OACP,KAAM,qBAAqBA,EAAI,KAGjC,MAAMI,EAAyB,CAC7B,GAAIJ,EAAI,GACR,KAAMA,EAAI,KACV,OAAQA,EAAI,OACZ,KAAMA,EAAI,KACV,WAAYA,EAAI,WAChB,WAAYA,EAAI,WAChB,UAAWA,EAAI,UAAU,KACzB,MAAO,CACL,KAAM,OAAOA,EAAI,MAAM,IAAc,EACrC,WAAY,OAAOA,EAAI,MAAM,UAAoB,CACnD,EACA,UAAW,IAAI,KAAKA,EAAI,SAAmB,EAC3C,UAAW,IAAI,KAAKA,EAAI,SAAmB,EAC3C,UAAWA,EAAI,UAAY,IAAI,KAAKA,EAAI,SAAmB,EAAI,KAC/D,MAAOA,EAAI,SAAS,IAAIK,GAAK,CAACA,EAAE,QAAQ,KAAMA,EAAE,MAAM,CAAC,EACvD,UAAUH,EAAAF,EAAI,WAAJ,KAAAE,EAAgB,KAC1B,eAAeC,EAAAH,EAAI,gBAAJ,KAAAG,EAAqB,IACtC,EAIA,GAFAC,EAAS,OAASE,EAAA,GAAKN,EAAI,QAEvBA,EAAI,OAAO,QAAS,CACtB,GAAI,CAACA,EAAI,OAAO,SAAS,QACvB,MAAM,IAAI,MAAM,+BAA+B,EAEjD,MAAMO,EAAMb,EACVD,EAAO,SAASO,EAAI,OAAO,OAAO,EAClCA,EAAI,UAAU,KAAK,UACnBC,EAAQ,UACV,EACAG,EAAS,KAAOX,EAAO,UACrB,MAAMG,EAAoBW,EAAKd,EAAO,SAASW,EAAS,IAAI,CAAC,CAC/D,EAEAA,EAAS,OAAO,QAAUX,EAAO,OAAOc,CAAG,CAC7C,CAEA,UAAWC,KAAKJ,EAAS,WAAY,CACnC,GAAI,CAACI,EAAE,QACL,SAEF,MAAMD,EAAMb,EACVD,EAAO,SAASe,EAAE,OAAO,EACzBA,EAAE,OACFP,EAAQ,UACV,EAEAO,EAAE,QAAUf,EAAO,OAAOc,CAAG,EAE7BC,EAAE,KAAOf,EAAO,UACd,MAAMG,EAAoBW,EAAKd,EAAO,SAASe,EAAE,IAAI,CAAC,CACxD,CACF,CAEA,OAAAb,EAAW,IAAIS,EAAS,GAAIA,CAAQ,EAC7BA,CACT,CAEA,eAAsBK,EACpBT,EACAC,EAC2B,CAC3B,MAAMS,EAAI,MAAMX,EAAkBC,EAAKC,CAAO,EAC9C,OAAOU,EAAAL,EAAA,GACFI,GADE,CAEL,QAASV,EAAI,QAAUH,EAAkBG,EAAI,QAASC,CAAO,EAAI,OACjE,OAAQD,EAAI,OAAS,MAAMD,EAAkBC,EAAI,OAAQC,CAAO,EAAI,KACpE,SAAU,MAAM,QAAQ,IACtBD,EAAI,SAAS,IAAIY,GAAKb,EAAkBa,EAAGX,CAAO,CAAC,CACrD,EACA,QAASD,EAAI,QAAQ,IAAIU,GAAKb,EAAkBa,EAAGT,CAAO,CAAC,CAC7D,EACF,CAEO,SAASY,EAAmBT,EAA8B,CAlGjE,IAAAF,EAmGE,MAAMY,EAAaH,EAAAL,EAAA,GACdF,GADc,CAEjB,OAAQA,EAAS,OAASE,EAAA,GAAKF,EAAS,QAAW,MACrD,GAEA,UAAWI,KAAKM,EAAK,WAEnB,OAAON,EAAE,OAGX,OAAAN,EAAOY,EAAK,SAAZ,aAAAZ,EAAoB,QACbY,CACT,CAEO,SAASC,EACdX,EACU,CACV,OAAOO,EAAAL,EAAA,GACFO,EAAmBT,CAAQ,GADzB,CAEL,OAAQA,EAAS,OAASS,EAAmBT,EAAS,MAAM,EAAI,KAChE,SAAUA,EAAS,SAAS,IAAIS,CAAkB,EAClD,QAAST,EAAS,QAAQ,IAAIM,GAAKZ,EAAmBY,CAAC,CAAC,EACxD,QAASN,EAAS,QAAUN,EAAmBM,EAAS,OAAO,EAAI,MACrE,EACF,CAEA,eAAsBY,EACpBhB,EACAC,EACmB,CACnB,OAAOc,EACL,MAAMN,EAA0BT,EAAKC,CAAO,CAC9C,CACF,CAEA,eAAsBgB,EACpBjB,EACAC,EACe,CACf,OAAOY,EAAmB,MAAMd,EAAkBC,EAAKC,CAAO,CAAC,CACjE","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"]}
1
+ {"version":3,"sources":["../../../src/client/convert/node.ts"],"names":["sodium","decryptCryptoBox","nodesCache","decryptSecretstream","gqlFileToInternal","internalFileToFile","gqlNodeToInternal","gql","keyPair","__async","_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"]}
@@ -1,2 +1,2 @@
1
- import{a as s,b as d}from"../../chunk-KMTF2BZE.js";import{sodium as a}from"../../sodium.js";import{decryptCryptoBox as p}from"../../crypto/index.js";import{nodesCache as N}from"../../cache.js";import{decryptSecretstream as l}from"../../crypto/file.js";import{gqlFileToInternal as y,internalFileToFile as f}from"./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=s({},e.access),e.access.nameKey){if(!e.access.sharedBy.keyPair)throw new Error("Can't find keyPair for access");const n=p(a.from_hex(e.access.nameKey),e.createdBy.user.publicKey,r.privateKey);t.name=a.to_string(await l(n,a.from_hex(t.name))),t.access.nameKey=a.to_hex(n)}for(const n of t.breadcrumb){if(!n.nameKey)continue;const m=p(a.from_hex(n.nameKey),n.pubKey,r.privateKey);n.nameKey=a.to_hex(m),n.name=a.to_string(await l(m,a.from_hex(n.name)))}return N.set(t.id,t),t}async function F(e,r){const t=await i(e,r);return d(s({},t),{current:e.current?y(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=>y(o,r))})}function c(e){var t;const r=d(s({},e),{access:e.access?s({},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 d(s({},c(e)),{parent:e.parent?c(e.parent):null,children:e.children.map(c),history:e.history.map(r=>f(r)),current:e.current?f(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))}export{F as gqlNodeFullToInternalFull,A as gqlNodeToExternal,B as gqlNodeToExternalNodeFull,i as gqlNodeToInternal,h as internalNodeFullToNodeFull,c as internalNodeToNode};
1
+ import{a as s,b as i,h as d}from"../../chunk-UPFDSEKI.js";import{sodium as a}from"../../sodium.js";import{decryptCryptoBox as l}from"../../crypto/index.js";import{nodesCache as F}from"../../cache.js";import{decryptSecretstream as y}from"../../crypto/file.js";import{gqlFileToInternal as f,internalFileToFile as N}from"./file.js";function c(e,r){return d(this,null,function*(){var o,m;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:(m=e.currentFileId)!=null?m:null};if(t.access=s({},e.access),e.access.nameKey){if(!e.access.sharedBy.keyPair)throw new Error("Can't find keyPair for access");const n=l(a.from_hex(e.access.nameKey),e.createdBy.user.publicKey,r.privateKey);t.name=a.to_string(yield y(n,a.from_hex(t.name))),t.access.nameKey=a.to_hex(n)}for(const n of t.breadcrumb){if(!n.nameKey)continue;const p=l(a.from_hex(n.nameKey),n.pubKey,r.privateKey);n.nameKey=a.to_hex(p),n.name=a.to_string(yield y(p,a.from_hex(n.name)))}return F.set(t.id,t),t})}function h(e,r){return d(this,null,function*(){const t=yield c(e,r);return i(s({},t),{current:e.current?f(e.current,r):void 0,parent:e.parent?yield c(e.parent,r):null,children:yield Promise.all(e.children.map(o=>c(o,r))),history:e.history.map(o=>f(o,r))})})}function u(e){var t;const r=i(s({},e),{access:e.access?s({},e.access):void 0});for(const o of r.breadcrumb)delete o.pubKey;return(t=r.access)==null||delete t.nameKey,r}function x(e){return i(s({},u(e)),{parent:e.parent?u(e.parent):null,children:e.children.map(u),history:e.history.map(r=>N(r)),current:e.current?N(e.current):void 0})}function A(e,r){return d(this,null,function*(){return x(yield h(e,r))})}function T(e,r){return d(this,null,function*(){return u(yield c(e,r))})}export{h as gqlNodeFullToInternalFull,T as gqlNodeToExternal,A as gqlNodeToExternalNodeFull,c as gqlNodeToInternal,x as internalNodeFullToNodeFull,u as internalNodeToNode};
2
2
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/client/convert/node.ts"],"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"],"mappings":"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","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"]}
1
+ {"version":3,"sources":["../../../src/client/convert/node.ts"],"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"],"mappings":"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","names":["sodium","decryptCryptoBox","nodesCache","decryptSecretstream","gqlFileToInternal","internalFileToFile","gqlNodeToInternal","gql","keyPair","__async","_a","_b","internal","u","__spreadValues","key","b","gqlNodeFullToInternalFull","f","__spreadProps","s","internalNodeToNode","node","internalNodeFullToNodeFull","gqlNodeToExternalNodeFull","gqlNodeToExternal"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _indexjs = require('./index.js');var _PopupToolsjs = require('../PopupTools.js');var _storagejs = require('./storage.js');function g(){if(!window.location.hash)return null;const n=window.location.hash.substr(1);try{const t=JSON.parse(atob(n));return window.location.hash="",t}catch(t){return null}}const x=({env:n,hash:t,path:e})=>{let a="";n==="dev"&&(a="dev.");const r=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`:`https://auth.${a}secrecy.me${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`};function A(n,t){const e=_storagejs.getStorage.call(void 0, t),a=e.userAppSession.load(),r=e.userAppKeys.load(),i=e.jwt.load();if(!a||!r||!i){const o=g();return o?(e.userAppKeys.save(o.keys),e.userAppSession.save(o.uaSession),e.jwt.save(o.jwt),new (0, _indexjs.SecrecyClient)(o.uaSession,o.keys,o.jwt,n)):null}return new (0, _indexjs.SecrecyClient)(a,r,i,n)}function b({appCode:n,path:t,redirect:e,scopes:a,backPath:r,env:i,session:o}={}){return new Promise((l,p)=>{const d=window.location.origin;if(n&&!d.includes("localhost"))return p("Can't use appCode if not in localhost");const y=A(i);if(y)return l(y);{const m={appUrl:d,appCode:n,redirect:e,path:t,scopes:a,backPath:r},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=s=>{const c=_storagejs.getStorage.call(void 0, o);return c.userAppSession.save(s.uaSession),c.userAppKeys.save(s.keys),c.jwt.save(s.jwt),l(new (0, _indexjs.SecrecyClient)(s.uaSession,s.keys,s.jwt,i))};if(e){const s=g();return s?f(s):(window.location.href=S,l(null))}else _PopupToolsjs.popup.call(void 0, S,"Secrecy Login",{width:500},(s,c)=>{if(s)return p(s);{const h=c;if(h)return f(h)}})}})}exports.getSecrecyClient = A; exports.getUrl = x; exports.login = b; exports.parseInfos = g;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-XDPEU3HV.cjs');var _indexjs = require('./index.js');var _PopupToolsjs = require('../PopupTools.js');var _storagejs = require('./storage.js');function g(){if(!window.location.hash)return null;const n=window.location.hash.substr(1);try{const t=JSON.parse(atob(n));return window.location.hash="",t}catch(t){return null}}const x=({env:n,hash:t,path:e})=>{let a="";n==="dev"&&(a="dev.");const r=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`:`https://auth.${a}secrecy.me${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`};function A(n,t){const e=_storagejs.getStorage.call(void 0, t),a=e.userAppSession.load(),r=e.userAppKeys.load(),i=e.jwt.load();if(!a||!r||!i){const o=g();return o?(e.userAppKeys.save(o.keys),e.userAppSession.save(o.uaSession),e.jwt.save(o.jwt),new (0, _indexjs.SecrecyClient)(o.uaSession,o.keys,o.jwt,n)):null}return new (0, _indexjs.SecrecyClient)(a,r,i,n)}function b({appCode:n,path:t,redirect:e,scopes:a,backPath:r,env:i,session:o}={}){return new Promise((l,p)=>{const d=window.location.origin;if(n&&!d.includes("localhost"))return p("Can't use appCode if not in localhost");const y=A(i);if(y)return l(y);{const m={appUrl:d,appCode:n,redirect:e,path:t,scopes:a,backPath:r},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=s=>{const c=_storagejs.getStorage.call(void 0, o);return c.userAppSession.save(s.uaSession),c.userAppKeys.save(s.keys),c.jwt.save(s.jwt),l(new (0, _indexjs.SecrecyClient)(s.uaSession,s.keys,s.jwt,i))};if(e){const s=g();return s?f(s):(window.location.href=S,l(null))}else _PopupToolsjs.popup.call(void 0, S,"Secrecy Login",{width:500},(s,c)=>{if(s)return p(s);{const h=c;if(h)return f(h)}})}})}exports.getSecrecyClient = A; exports.getUrl = x; exports.login = b; exports.parseInfos = g;
2
2
  //# sourceMappingURL=helpers.cjs.map
@@ -1,2 +1,2 @@
1
- import"../chunk-KMTF2BZE.js";import{SecrecyClient as u}from"./index.js";import{popup as U}from"../PopupTools.js";import{getStorage as w}from"./storage.js";function g(){if(!window.location.hash)return null;const n=window.location.hash.substr(1);try{const t=JSON.parse(atob(n));return window.location.hash="",t}catch(t){return null}}const x=({env:n,hash:t,path:e})=>{let a="";n==="dev"&&(a="dev.");const r=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`:`https://auth.${a}secrecy.me${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`};function A(n,t){const e=w(t),a=e.userAppSession.load(),r=e.userAppKeys.load(),i=e.jwt.load();if(!a||!r||!i){const o=g();return o?(e.userAppKeys.save(o.keys),e.userAppSession.save(o.uaSession),e.jwt.save(o.jwt),new u(o.uaSession,o.keys,o.jwt,n)):null}return new u(a,r,i,n)}function b({appCode:n,path:t,redirect:e,scopes:a,backPath:r,env:i,session:o}={}){return new Promise((l,p)=>{const d=window.location.origin;if(n&&!d.includes("localhost"))return p("Can't use appCode if not in localhost");const y=A(i);if(y)return l(y);{const m={appUrl:d,appCode:n,redirect:e,path:t,scopes:a,backPath:r},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=s=>{const c=w(o);return c.userAppSession.save(s.uaSession),c.userAppKeys.save(s.keys),c.jwt.save(s.jwt),l(new u(s.uaSession,s.keys,s.jwt,i))};if(e){const s=g();return s?f(s):(window.location.href=S,l(null))}else U(S,"Secrecy Login",{width:500},(s,c)=>{if(s)return p(s);{const h=c;if(h)return f(h)}})}})}export{A as getSecrecyClient,x as getUrl,b as login,g as parseInfos};
1
+ import"../chunk-UPFDSEKI.js";import{SecrecyClient as u}from"./index.js";import{popup as U}from"../PopupTools.js";import{getStorage as w}from"./storage.js";function g(){if(!window.location.hash)return null;const n=window.location.hash.substr(1);try{const t=JSON.parse(atob(n));return window.location.hash="",t}catch(t){return null}}const x=({env:n,hash:t,path:e})=>{let a="";n==="dev"&&(a="dev.");const r=document.documentElement.lang;return process.env.NEXT_PUBLIC_SECRECY_API_URL?`http://localhost:3002${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`:`https://auth.${a}secrecy.me${r?`/${r}`:""}${e.startsWith("/")?e:`/${e}`}#${t}`};function A(n,t){const e=w(t),a=e.userAppSession.load(),r=e.userAppKeys.load(),i=e.jwt.load();if(!a||!r||!i){const o=g();return o?(e.userAppKeys.save(o.keys),e.userAppSession.save(o.uaSession),e.jwt.save(o.jwt),new u(o.uaSession,o.keys,o.jwt,n)):null}return new u(a,r,i,n)}function b({appCode:n,path:t,redirect:e,scopes:a,backPath:r,env:i,session:o}={}){return new Promise((l,p)=>{const d=window.location.origin;if(n&&!d.includes("localhost"))return p("Can't use appCode if not in localhost");const y=A(i);if(y)return l(y);{const m={appUrl:d,appCode:n,redirect:e,path:t,scopes:a,backPath:r},v=btoa(JSON.stringify(m)).replaceAll("=",""),S=x({env:i,hash:v,path:"login"}),f=s=>{const c=w(o);return c.userAppSession.save(s.uaSession),c.userAppKeys.save(s.keys),c.jwt.save(s.jwt),l(new u(s.uaSession,s.keys,s.jwt,i))};if(e){const s=g();return s?f(s):(window.location.href=S,l(null))}else U(S,"Secrecy Login",{width:500},(s,c)=>{if(s)return p(s);{const h=c;if(h)return f(h)}})}})}export{A as getSecrecyClient,x as getUrl,b as login,g as parseInfos};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5WPCTUWHcjs = require('../chunk-5WPCTUWH.cjs');var e;var _BaseClientjs = require('../BaseClient.js');var _filejs = require('../crypto/file.js');var _sodiumjs = require('../sodium.js');var _SecrecyCloudClientjs = require('./SecrecyCloudClient.js');var _SecrecyMailClientjs = require('./SecrecyMailClient.js');var _SecrecyAppClientjs = require('./SecrecyAppClient.js');var _cachejs = require('../cache.js');var _SecrecyDbClientjs = require('./SecrecyDbClient.js');var _SecrecyWalletClientjs = require('./SecrecyWalletClient.js');var _SecrecyPayClientjs = require('./SecrecyPayClient.js');const D=async(n,o)=>{const{data:i}=await _filejs.encryptSecretstream.call(void 0, _sodiumjs.sodium.from_hex(o),_sodiumjs.sodium.from_string(n));return _sodiumjs.sodium.to_hex(i)};class N extends _BaseClientjs.BaseClient{constructor(i,c,y,a){super(i,a);_chunk5WPCTUWHcjs.e.call(void 0, this,e,void 0);_chunk5WPCTUWHcjs.c.call(void 0, this,"cloud");_chunk5WPCTUWHcjs.c.call(void 0, this,"mail");_chunk5WPCTUWHcjs.c.call(void 0, this,"app");_chunk5WPCTUWHcjs.c.call(void 0, this,"db");_chunk5WPCTUWHcjs.c.call(void 0, this,"wallet");_chunk5WPCTUWHcjs.c.call(void 0, this,"pay");_chunk5WPCTUWHcjs.f.call(void 0, this,e,c),this.cloud=new (0, _SecrecyCloudClientjs.SecrecyCloudClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.mail=new (0, _SecrecyMailClientjs.SecrecyMailClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.app=new (0, _SecrecyAppClientjs.SecrecyAppClient)(y,this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.db=new (0, _SecrecyDbClientjs.SecrecyDbClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder),this.wallet=new (0, _SecrecyWalletClientjs.SecrecyWalletClient)(this),this.pay=new (0, _SecrecyPayClientjs.SecrecyPayClient)(this,_chunk5WPCTUWHcjs.d.call(void 0, this,e),this.thunder)}get publicKey(){return _chunk5WPCTUWHcjs.d.call(void 0, this,e).publicKey}async logout(i){_cachejs.nodesCache.clear(),_cachejs.filesCache.clear(),await super.logout(i)}}e=new WeakMap;exports.SecrecyClient = N; exports.encryptName = D;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXDPEU3HVcjs = require('../chunk-XDPEU3HV.cjs');var e;var _BaseClientjs = require('../BaseClient.js');var _filejs = require('../crypto/file.js');var _sodiumjs = require('../sodium.js');var _SecrecyCloudClientjs = require('./SecrecyCloudClient.js');var _SecrecyMailClientjs = require('./SecrecyMailClient.js');var _SecrecyAppClientjs = require('./SecrecyAppClient.js');var _cachejs = require('../cache.js');var _SecrecyDbClientjs = require('./SecrecyDbClient.js');var _SecrecyWalletClientjs = require('./SecrecyWalletClient.js');var _SecrecyPayClientjs = require('./SecrecyPayClient.js');const I=(h,c)=>_chunkXDPEU3HVcjs.h.call(void 0, void 0,null,function*(){const{data:i}=yield _filejs.encryptSecretstream.call(void 0, _sodiumjs.sodium.from_hex(c),_sodiumjs.sodium.from_string(h));return _sodiumjs.sodium.to_hex(i)}),o=class extends _BaseClientjs.BaseClient{constructor(i,l,d,u){super(i,u);_chunkXDPEU3HVcjs.e.call(void 0, this,e,void 0);_chunkXDPEU3HVcjs.c.call(void 0, this,"cloud");_chunkXDPEU3HVcjs.c.call(void 0, this,"mail");_chunkXDPEU3HVcjs.c.call(void 0, this,"app");_chunkXDPEU3HVcjs.c.call(void 0, this,"db");_chunkXDPEU3HVcjs.c.call(void 0, this,"wallet");_chunkXDPEU3HVcjs.c.call(void 0, this,"pay");_chunkXDPEU3HVcjs.f.call(void 0, this,e,l),this.cloud=new (0, _SecrecyCloudClientjs.SecrecyCloudClient)(this,_chunkXDPEU3HVcjs.d.call(void 0, this,e),this.thunder),this.mail=new (0, _SecrecyMailClientjs.SecrecyMailClient)(this,_chunkXDPEU3HVcjs.d.call(void 0, this,e),this.thunder),this.app=new (0, _SecrecyAppClientjs.SecrecyAppClient)(d,this,_chunkXDPEU3HVcjs.d.call(void 0, this,e),this.thunder),this.db=new (0, _SecrecyDbClientjs.SecrecyDbClient)(this,_chunkXDPEU3HVcjs.d.call(void 0, this,e),this.thunder),this.wallet=new (0, _SecrecyWalletClientjs.SecrecyWalletClient)(this),this.pay=new (0, _SecrecyPayClientjs.SecrecyPayClient)(this,_chunkXDPEU3HVcjs.d.call(void 0, this,e),this.thunder)}get publicKey(){return _chunkXDPEU3HVcjs.d.call(void 0, this,e).publicKey}logout(i){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){_cachejs.nodesCache.clear(),_cachejs.filesCache.clear(),yield _chunkXDPEU3HVcjs.g.call(void 0, o.prototype,this,"logout").call(this,i)})}};let y=o;e=new WeakMap;exports.SecrecyClient = y; exports.encryptName = I;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/index.ts"],"names":["_keys","BaseClient","encryptSecretstream","sodium","SecrecyCloudClient","SecrecyMailClient","SecrecyAppClient","nodesCache","filesCache","SecrecyDbClient","SecrecyWalletClient","SecrecyPayClient","encryptName","name","nameKey","data","SecrecyClient","uaSession","uaKeys","uaJwt","env","__privateAdd","__publicField","__privateSet","__privateGet","sessionId"],"mappings":"+DAAA,IAAAA,EACA,OAAS,cAAAC,MAAkB,mBAE3B,OAAS,uBAAAC,MAA2B,oBACpC,OAAS,UAAAC,MAAc,eAGvB,OAAS,sBAAAC,MAA0B,0BACnC,OAAS,qBAAAC,MAAyB,yBAClC,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,cAAAC,EAAY,cAAAC,MAAkB,cACvC,OAAS,mBAAAC,MAAuB,uBAChC,OAAS,uBAAAC,MAA2B,2BACpC,OAAS,oBAAAC,MAAwB,wBAW1B,MAAMC,EAAc,MACzBC,EACAC,IACoB,CACpB,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAMb,EACrBC,EAAO,SAASW,CAAO,EACvBX,EAAO,YAAYU,CAAI,CACzB,EAEA,OADsBV,EAAO,OAAOY,CAAI,CAE1C,EAEO,MAAMC,UAAsBf,CAAW,CAe5C,YACEgB,EACAC,EACAC,EACAC,EACA,CACA,MAAMH,EAAWG,CAAG,EApBtBC,EAAA,KAAArB,EAAA,QAEAsB,EAAA,cAEAA,EAAA,aAEAA,EAAA,YAEAA,EAAA,WAEAA,EAAA,eAEAA,EAAA,YASEC,EAAA,KAAKvB,EAAQkB,GACb,KAAK,MAAQ,IAAId,EAAmB,KAAMoB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAClE,KAAK,KAAO,IAAIK,EAAkB,KAAMmB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAChE,KAAK,IAAM,IAAIM,EAAiBa,EAAO,KAAMK,EAAA,KAAKxB,GAAO,KAAK,OAAO,EACrE,KAAK,GAAK,IAAIS,EAAgB,KAAMe,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAC5D,KAAK,OAAS,IAAIU,EAAoB,IAAI,EAC1C,KAAK,IAAM,IAAIC,EAAiB,KAAMa,EAAA,KAAKxB,GAAO,KAAK,OAAO,CAChE,CAEA,IAAI,WAAoB,CACtB,OAAOwB,EAAA,KAAKxB,GAAM,SACpB,CAEA,MAAM,OAAOyB,EAAsD,CACjElB,EAAW,MAAM,EACjBC,EAAW,MAAM,EACjB,MAAM,MAAM,OAAOiB,CAAS,CAC9B,CACF,CAvCEzB,EAAA","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { BaseClient } from \"../BaseClient.js\";\nimport type { Progress } from \"../crypto/file.js\";\nimport { encryptSecretstream } from \"../crypto/file.js\";\nimport { sodium } from \"../sodium.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { SecrecyEnv } from \"./helpers.js\";\nimport { SecrecyCloudClient } from \"./SecrecyCloudClient.js\";\nimport { SecrecyMailClient } from \"./SecrecyMailClient.js\";\nimport { SecrecyAppClient } from \"./SecrecyAppClient.js\";\nimport { nodesCache, filesCache } from \"../cache.js\";\nimport { SecrecyDbClient } from \"./SecrecyDbClient.js\";\nimport { SecrecyWalletClient } from \"./SecrecyWalletClient.js\";\nimport { SecrecyPayClient } from \"./SecrecyPayClient.js\";\n\nexport type NewMail = {\n body: string;\n subject: string;\n files: { id: string; name: string }[];\n recipientsIds: string[];\n replyTo?: string | null | undefined;\n};\nexport type ProgressCallback = (progress: Progress) => Promise<void>;\n\nexport const encryptName = async (\n name: string,\n nameKey: string\n): Promise<string> => {\n const { data } = await encryptSecretstream(\n sodium.from_hex(nameKey),\n sodium.from_string(name)\n );\n const nameEncrypted = sodium.to_hex(data);\n return nameEncrypted;\n};\n\nexport class SecrecyClient extends BaseClient {\n #keys: KeyPair;\n\n cloud: SecrecyCloudClient;\n\n mail: SecrecyMailClient;\n\n app: SecrecyAppClient;\n\n db: SecrecyDbClient;\n\n wallet: SecrecyWalletClient;\n\n pay: SecrecyPayClient;\n\n constructor(\n uaSession: string,\n uaKeys: KeyPair,\n uaJwt: string,\n env: SecrecyEnv\n ) {\n super(uaSession, env);\n this.#keys = uaKeys;\n this.cloud = new SecrecyCloudClient(this, this.#keys, this.thunder);\n this.mail = new SecrecyMailClient(this, this.#keys, this.thunder);\n this.app = new SecrecyAppClient(uaJwt, this, this.#keys, this.thunder);\n this.db = new SecrecyDbClient(this, this.#keys, this.thunder);\n this.wallet = new SecrecyWalletClient(this);\n this.pay = new SecrecyPayClient(this, this.#keys, this.thunder);\n }\n\n get publicKey(): string {\n return this.#keys.publicKey;\n }\n\n async logout(sessionId?: string | null | undefined): Promise<void> {\n nodesCache.clear();\n filesCache.clear();\n await super.logout(sessionId);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/client/index.ts"],"names":["_keys","BaseClient","encryptSecretstream","sodium","SecrecyCloudClient","SecrecyMailClient","SecrecyAppClient","nodesCache","filesCache","SecrecyDbClient","SecrecyWalletClient","SecrecyPayClient","encryptName","name","nameKey","__async","data","_SecrecyClient","uaSession","uaKeys","uaJwt","env","__privateAdd","__publicField","__privateSet","__privateGet","sessionId","__superGet","SecrecyClient"],"mappings":"6EAAA,IAAAA,EACA,OAAS,cAAAC,MAAkB,mBAE3B,OAAS,uBAAAC,MAA2B,oBACpC,OAAS,UAAAC,MAAc,eAGvB,OAAS,sBAAAC,MAA0B,0BACnC,OAAS,qBAAAC,MAAyB,yBAClC,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,cAAAC,EAAY,cAAAC,MAAkB,cACvC,OAAS,mBAAAC,MAAuB,uBAChC,OAAS,uBAAAC,MAA2B,2BACpC,OAAS,oBAAAC,MAAwB,wBAW1B,MAAMC,EAAc,CACzBC,EACAC,IACoBC,EAAA,wBACpB,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAMd,EACrBC,EAAO,SAASW,CAAO,EACvBX,EAAO,YAAYU,CAAI,CACzB,EAEA,OADsBV,EAAO,OAAOa,CAAI,CAE1C,GAEaC,EAAN,cAA4BhB,CAAW,CAe5C,YACEiB,EACAC,EACAC,EACAC,EACA,CACA,MAAMH,EAAWG,CAAG,EApBtBC,EAAA,KAAAtB,EAAA,QAEAuB,EAAA,cAEAA,EAAA,aAEAA,EAAA,YAEAA,EAAA,WAEAA,EAAA,eAEAA,EAAA,YASEC,EAAA,KAAKxB,EAAQmB,GACb,KAAK,MAAQ,IAAIf,EAAmB,KAAMqB,EAAA,KAAKzB,GAAO,KAAK,OAAO,EAClE,KAAK,KAAO,IAAIK,EAAkB,KAAMoB,EAAA,KAAKzB,GAAO,KAAK,OAAO,EAChE,KAAK,IAAM,IAAIM,EAAiBc,EAAO,KAAMK,EAAA,KAAKzB,GAAO,KAAK,OAAO,EACrE,KAAK,GAAK,IAAIS,EAAgB,KAAMgB,EAAA,KAAKzB,GAAO,KAAK,OAAO,EAC5D,KAAK,OAAS,IAAIU,EAAoB,IAAI,EAC1C,KAAK,IAAM,IAAIC,EAAiB,KAAMc,EAAA,KAAKzB,GAAO,KAAK,OAAO,CAChE,CAEA,IAAI,WAAoB,CACtB,OAAOyB,EAAA,KAAKzB,GAAM,SACpB,CAEM,OAAO0B,EAAsD,QAAAX,EAAA,sBACjER,EAAW,MAAM,EACjBC,EAAW,MAAM,EACjB,MAAMmB,EAAAV,EAAA,eAAM,eAAN,KAAaS,CAAS,CAC9B,GACF,EAxCO,IAAME,EAANX,EACLjB,EAAA","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { BaseClient } from \"../BaseClient.js\";\nimport type { Progress } from \"../crypto/file.js\";\nimport { encryptSecretstream } from \"../crypto/file.js\";\nimport { sodium } from \"../sodium.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { SecrecyEnv } from \"./helpers.js\";\nimport { SecrecyCloudClient } from \"./SecrecyCloudClient.js\";\nimport { SecrecyMailClient } from \"./SecrecyMailClient.js\";\nimport { SecrecyAppClient } from \"./SecrecyAppClient.js\";\nimport { nodesCache, filesCache } from \"../cache.js\";\nimport { SecrecyDbClient } from \"./SecrecyDbClient.js\";\nimport { SecrecyWalletClient } from \"./SecrecyWalletClient.js\";\nimport { SecrecyPayClient } from \"./SecrecyPayClient.js\";\n\nexport type NewMail = {\n body: string;\n subject: string;\n files: { id: string; name: string }[];\n recipientsIds: string[];\n replyTo?: string | null | undefined;\n};\nexport type ProgressCallback = (progress: Progress) => Promise<void>;\n\nexport const encryptName = async (\n name: string,\n nameKey: string\n): Promise<string> => {\n const { data } = await encryptSecretstream(\n sodium.from_hex(nameKey),\n sodium.from_string(name)\n );\n const nameEncrypted = sodium.to_hex(data);\n return nameEncrypted;\n};\n\nexport class SecrecyClient extends BaseClient {\n #keys: KeyPair;\n\n cloud: SecrecyCloudClient;\n\n mail: SecrecyMailClient;\n\n app: SecrecyAppClient;\n\n db: SecrecyDbClient;\n\n wallet: SecrecyWalletClient;\n\n pay: SecrecyPayClient;\n\n constructor(\n uaSession: string,\n uaKeys: KeyPair,\n uaJwt: string,\n env: SecrecyEnv\n ) {\n super(uaSession, env);\n this.#keys = uaKeys;\n this.cloud = new SecrecyCloudClient(this, this.#keys, this.thunder);\n this.mail = new SecrecyMailClient(this, this.#keys, this.thunder);\n this.app = new SecrecyAppClient(uaJwt, this, this.#keys, this.thunder);\n this.db = new SecrecyDbClient(this, this.#keys, this.thunder);\n this.wallet = new SecrecyWalletClient(this);\n this.pay = new SecrecyPayClient(this, this.#keys, this.thunder);\n }\n\n get publicKey(): string {\n return this.#keys.publicKey;\n }\n\n async logout(sessionId?: string | null | undefined): Promise<void> {\n nodesCache.clear();\n filesCache.clear();\n await super.logout(sessionId);\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{c as t,d as r,e as l,f as p}from"../chunk-KMTF2BZE.js";var e;import{BaseClient as m}from"../BaseClient.js";import{encryptSecretstream as h}from"../crypto/file.js";import{sodium as s}from"../sodium.js";import{SecrecyCloudClient as d}from"./SecrecyCloudClient.js";import{SecrecyMailClient as u}from"./SecrecyMailClient.js";import{SecrecyAppClient as g}from"./SecrecyAppClient.js";import{nodesCache as f,filesCache as C}from"../cache.js";import{SecrecyDbClient as S}from"./SecrecyDbClient.js";import{SecrecyWalletClient as w}from"./SecrecyWalletClient.js";import{SecrecyPayClient as P}from"./SecrecyPayClient.js";const D=async(n,o)=>{const{data:i}=await h(s.from_hex(o),s.from_string(n));return s.to_hex(i)};class N extends m{constructor(i,c,y,a){super(i,a);l(this,e,void 0);t(this,"cloud");t(this,"mail");t(this,"app");t(this,"db");t(this,"wallet");t(this,"pay");p(this,e,c),this.cloud=new d(this,r(this,e),this.thunder),this.mail=new u(this,r(this,e),this.thunder),this.app=new g(y,this,r(this,e),this.thunder),this.db=new S(this,r(this,e),this.thunder),this.wallet=new w(this),this.pay=new P(this,r(this,e),this.thunder)}get publicKey(){return r(this,e).publicKey}async logout(i){f.clear(),C.clear(),await super.logout(i)}}e=new WeakMap;export{N as SecrecyClient,D as encryptName};
1
+ import{c as t,d as r,e as p,f as a,g as m,h as s}from"../chunk-UPFDSEKI.js";var e;import{BaseClient as g}from"../BaseClient.js";import{encryptSecretstream as f}from"../crypto/file.js";import{sodium as n}from"../sodium.js";import{SecrecyCloudClient as C}from"./SecrecyCloudClient.js";import{SecrecyMailClient as S}from"./SecrecyMailClient.js";import{SecrecyAppClient as w}from"./SecrecyAppClient.js";import{nodesCache as P,filesCache as b}from"../cache.js";import{SecrecyDbClient as x}from"./SecrecyDbClient.js";import{SecrecyWalletClient as K}from"./SecrecyWalletClient.js";import{SecrecyPayClient as j}from"./SecrecyPayClient.js";const I=(h,c)=>s(void 0,null,function*(){const{data:i}=yield f(n.from_hex(c),n.from_string(h));return n.to_hex(i)}),o=class extends g{constructor(i,l,d,u){super(i,u);p(this,e,void 0);t(this,"cloud");t(this,"mail");t(this,"app");t(this,"db");t(this,"wallet");t(this,"pay");a(this,e,l),this.cloud=new C(this,r(this,e),this.thunder),this.mail=new S(this,r(this,e),this.thunder),this.app=new w(d,this,r(this,e),this.thunder),this.db=new x(this,r(this,e),this.thunder),this.wallet=new K(this),this.pay=new j(this,r(this,e),this.thunder)}get publicKey(){return r(this,e).publicKey}logout(i){return s(this,null,function*(){P.clear(),b.clear(),yield m(o.prototype,this,"logout").call(this,i)})}};let y=o;e=new WeakMap;export{y as SecrecyClient,I as encryptName};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { BaseClient } from \"../BaseClient.js\";\nimport type { Progress } from \"../crypto/file.js\";\nimport { encryptSecretstream } from \"../crypto/file.js\";\nimport { sodium } from \"../sodium.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { SecrecyEnv } from \"./helpers.js\";\nimport { SecrecyCloudClient } from \"./SecrecyCloudClient.js\";\nimport { SecrecyMailClient } from \"./SecrecyMailClient.js\";\nimport { SecrecyAppClient } from \"./SecrecyAppClient.js\";\nimport { nodesCache, filesCache } from \"../cache.js\";\nimport { SecrecyDbClient } from \"./SecrecyDbClient.js\";\nimport { SecrecyWalletClient } from \"./SecrecyWalletClient.js\";\nimport { SecrecyPayClient } from \"./SecrecyPayClient.js\";\n\nexport type NewMail = {\n body: string;\n subject: string;\n files: { id: string; name: string }[];\n recipientsIds: string[];\n replyTo?: string | null | undefined;\n};\nexport type ProgressCallback = (progress: Progress) => Promise<void>;\n\nexport const encryptName = async (\n name: string,\n nameKey: string\n): Promise<string> => {\n const { data } = await encryptSecretstream(\n sodium.from_hex(nameKey),\n sodium.from_string(name)\n );\n const nameEncrypted = sodium.to_hex(data);\n return nameEncrypted;\n};\n\nexport class SecrecyClient extends BaseClient {\n #keys: KeyPair;\n\n cloud: SecrecyCloudClient;\n\n mail: SecrecyMailClient;\n\n app: SecrecyAppClient;\n\n db: SecrecyDbClient;\n\n wallet: SecrecyWalletClient;\n\n pay: SecrecyPayClient;\n\n constructor(\n uaSession: string,\n uaKeys: KeyPair,\n uaJwt: string,\n env: SecrecyEnv\n ) {\n super(uaSession, env);\n this.#keys = uaKeys;\n this.cloud = new SecrecyCloudClient(this, this.#keys, this.thunder);\n this.mail = new SecrecyMailClient(this, this.#keys, this.thunder);\n this.app = new SecrecyAppClient(uaJwt, this, this.#keys, this.thunder);\n this.db = new SecrecyDbClient(this, this.#keys, this.thunder);\n this.wallet = new SecrecyWalletClient(this);\n this.pay = new SecrecyPayClient(this, this.#keys, this.thunder);\n }\n\n get publicKey(): string {\n return this.#keys.publicKey;\n }\n\n async logout(sessionId?: string | null | undefined): Promise<void> {\n nodesCache.clear();\n filesCache.clear();\n await super.logout(sessionId);\n }\n}\n"],"mappings":"8DAAA,IAAAA,EACA,OAAS,cAAAC,MAAkB,mBAE3B,OAAS,uBAAAC,MAA2B,oBACpC,OAAS,UAAAC,MAAc,eAGvB,OAAS,sBAAAC,MAA0B,0BACnC,OAAS,qBAAAC,MAAyB,yBAClC,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,cAAAC,EAAY,cAAAC,MAAkB,cACvC,OAAS,mBAAAC,MAAuB,uBAChC,OAAS,uBAAAC,MAA2B,2BACpC,OAAS,oBAAAC,MAAwB,wBAW1B,MAAMC,EAAc,MACzBC,EACAC,IACoB,CACpB,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAMb,EACrBC,EAAO,SAASW,CAAO,EACvBX,EAAO,YAAYU,CAAI,CACzB,EAEA,OADsBV,EAAO,OAAOY,CAAI,CAE1C,EAEO,MAAMC,UAAsBf,CAAW,CAe5C,YACEgB,EACAC,EACAC,EACAC,EACA,CACA,MAAMH,EAAWG,CAAG,EApBtBC,EAAA,KAAArB,EAAA,QAEAsB,EAAA,cAEAA,EAAA,aAEAA,EAAA,YAEAA,EAAA,WAEAA,EAAA,eAEAA,EAAA,YASEC,EAAA,KAAKvB,EAAQkB,GACb,KAAK,MAAQ,IAAId,EAAmB,KAAMoB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAClE,KAAK,KAAO,IAAIK,EAAkB,KAAMmB,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAChE,KAAK,IAAM,IAAIM,EAAiBa,EAAO,KAAMK,EAAA,KAAKxB,GAAO,KAAK,OAAO,EACrE,KAAK,GAAK,IAAIS,EAAgB,KAAMe,EAAA,KAAKxB,GAAO,KAAK,OAAO,EAC5D,KAAK,OAAS,IAAIU,EAAoB,IAAI,EAC1C,KAAK,IAAM,IAAIC,EAAiB,KAAMa,EAAA,KAAKxB,GAAO,KAAK,OAAO,CAChE,CAEA,IAAI,WAAoB,CACtB,OAAOwB,EAAA,KAAKxB,GAAM,SACpB,CAEA,MAAM,OAAOyB,EAAsD,CACjElB,EAAW,MAAM,EACjBC,EAAW,MAAM,EACjB,MAAM,MAAM,OAAOiB,CAAS,CAC9B,CACF,CAvCEzB,EAAA","names":["_keys","BaseClient","encryptSecretstream","sodium","SecrecyCloudClient","SecrecyMailClient","SecrecyAppClient","nodesCache","filesCache","SecrecyDbClient","SecrecyWalletClient","SecrecyPayClient","encryptName","name","nameKey","data","SecrecyClient","uaSession","uaKeys","uaJwt","env","__privateAdd","__publicField","__privateSet","__privateGet","sessionId"]}
1
+ {"version":3,"sources":["../../src/client/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { BaseClient } from \"../BaseClient.js\";\nimport type { Progress } from \"../crypto/file.js\";\nimport { encryptSecretstream } from \"../crypto/file.js\";\nimport { sodium } from \"../sodium.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type { SecrecyEnv } from \"./helpers.js\";\nimport { SecrecyCloudClient } from \"./SecrecyCloudClient.js\";\nimport { SecrecyMailClient } from \"./SecrecyMailClient.js\";\nimport { SecrecyAppClient } from \"./SecrecyAppClient.js\";\nimport { nodesCache, filesCache } from \"../cache.js\";\nimport { SecrecyDbClient } from \"./SecrecyDbClient.js\";\nimport { SecrecyWalletClient } from \"./SecrecyWalletClient.js\";\nimport { SecrecyPayClient } from \"./SecrecyPayClient.js\";\n\nexport type NewMail = {\n body: string;\n subject: string;\n files: { id: string; name: string }[];\n recipientsIds: string[];\n replyTo?: string | null | undefined;\n};\nexport type ProgressCallback = (progress: Progress) => Promise<void>;\n\nexport const encryptName = async (\n name: string,\n nameKey: string\n): Promise<string> => {\n const { data } = await encryptSecretstream(\n sodium.from_hex(nameKey),\n sodium.from_string(name)\n );\n const nameEncrypted = sodium.to_hex(data);\n return nameEncrypted;\n};\n\nexport class SecrecyClient extends BaseClient {\n #keys: KeyPair;\n\n cloud: SecrecyCloudClient;\n\n mail: SecrecyMailClient;\n\n app: SecrecyAppClient;\n\n db: SecrecyDbClient;\n\n wallet: SecrecyWalletClient;\n\n pay: SecrecyPayClient;\n\n constructor(\n uaSession: string,\n uaKeys: KeyPair,\n uaJwt: string,\n env: SecrecyEnv\n ) {\n super(uaSession, env);\n this.#keys = uaKeys;\n this.cloud = new SecrecyCloudClient(this, this.#keys, this.thunder);\n this.mail = new SecrecyMailClient(this, this.#keys, this.thunder);\n this.app = new SecrecyAppClient(uaJwt, this, this.#keys, this.thunder);\n this.db = new SecrecyDbClient(this, this.#keys, this.thunder);\n this.wallet = new SecrecyWalletClient(this);\n this.pay = new SecrecyPayClient(this, this.#keys, this.thunder);\n }\n\n get publicKey(): string {\n return this.#keys.publicKey;\n }\n\n async logout(sessionId?: string | null | undefined): Promise<void> {\n nodesCache.clear();\n filesCache.clear();\n await super.logout(sessionId);\n }\n}\n"],"mappings":"4EAAA,IAAAA,EACA,OAAS,cAAAC,MAAkB,mBAE3B,OAAS,uBAAAC,MAA2B,oBACpC,OAAS,UAAAC,MAAc,eAGvB,OAAS,sBAAAC,MAA0B,0BACnC,OAAS,qBAAAC,MAAyB,yBAClC,OAAS,oBAAAC,MAAwB,wBACjC,OAAS,cAAAC,EAAY,cAAAC,MAAkB,cACvC,OAAS,mBAAAC,MAAuB,uBAChC,OAAS,uBAAAC,MAA2B,2BACpC,OAAS,oBAAAC,MAAwB,wBAW1B,MAAMC,EAAc,CACzBC,EACAC,IACoBC,EAAA,wBACpB,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAMd,EACrBC,EAAO,SAASW,CAAO,EACvBX,EAAO,YAAYU,CAAI,CACzB,EAEA,OADsBV,EAAO,OAAOa,CAAI,CAE1C,GAEaC,EAAN,cAA4BhB,CAAW,CAe5C,YACEiB,EACAC,EACAC,EACAC,EACA,CACA,MAAMH,EAAWG,CAAG,EApBtBC,EAAA,KAAAtB,EAAA,QAEAuB,EAAA,cAEAA,EAAA,aAEAA,EAAA,YAEAA,EAAA,WAEAA,EAAA,eAEAA,EAAA,YASEC,EAAA,KAAKxB,EAAQmB,GACb,KAAK,MAAQ,IAAIf,EAAmB,KAAMqB,EAAA,KAAKzB,GAAO,KAAK,OAAO,EAClE,KAAK,KAAO,IAAIK,EAAkB,KAAMoB,EAAA,KAAKzB,GAAO,KAAK,OAAO,EAChE,KAAK,IAAM,IAAIM,EAAiBc,EAAO,KAAMK,EAAA,KAAKzB,GAAO,KAAK,OAAO,EACrE,KAAK,GAAK,IAAIS,EAAgB,KAAMgB,EAAA,KAAKzB,GAAO,KAAK,OAAO,EAC5D,KAAK,OAAS,IAAIU,EAAoB,IAAI,EAC1C,KAAK,IAAM,IAAIC,EAAiB,KAAMc,EAAA,KAAKzB,GAAO,KAAK,OAAO,CAChE,CAEA,IAAI,WAAoB,CACtB,OAAOyB,EAAA,KAAKzB,GAAM,SACpB,CAEM,OAAO0B,EAAsD,QAAAX,EAAA,sBACjER,EAAW,MAAM,EACjBC,EAAW,MAAM,EACjB,MAAMmB,EAAAV,EAAA,eAAM,eAAN,KAAaS,CAAS,CAC9B,GACF,EAxCO,IAAME,EAANX,EACLjB,EAAA","names":["_keys","BaseClient","encryptSecretstream","sodium","SecrecyCloudClient","SecrecyMailClient","SecrecyAppClient","nodesCache","filesCache","SecrecyDbClient","SecrecyWalletClient","SecrecyPayClient","encryptName","name","nameKey","__async","data","_SecrecyClient","uaSession","uaKeys","uaJwt","env","__privateAdd","__publicField","__privateSet","__privateGet","sessionId","__superGet","SecrecyClient"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _storebuddyjs = require('../utils/store-buddy.js');function i(e){const t=_storebuddyjs.storeBuddy.call(void 0, "secrecy.user_app_session",e).init(null),n=_storebuddyjs.storeBuddy.call(void 0, "secrecy.user_app_keys",e).init(null),s=_storebuddyjs.storeBuddy.call(void 0, "secrecy.jwt",e).init(null);return{userAppKeys:n,userAppSession:t,jwt:s}}exports.getStorage = i;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-XDPEU3HV.cjs');var _storebuddyjs = require('../utils/store-buddy.js');function i(e){const t=_storebuddyjs.storeBuddy.call(void 0, "secrecy.user_app_session",e).init(null),n=_storebuddyjs.storeBuddy.call(void 0, "secrecy.user_app_keys",e).init(null),s=_storebuddyjs.storeBuddy.call(void 0, "secrecy.jwt",e).init(null);return{userAppKeys:n,userAppSession:t,jwt:s}}exports.getStorage = i;
2
2
  //# sourceMappingURL=storage.cjs.map
@@ -1,2 +1,2 @@
1
- import"../chunk-KMTF2BZE.js";import{storeBuddy as r}from"../utils/store-buddy.js";function i(e){const t=r("secrecy.user_app_session",e).init(null),n=r("secrecy.user_app_keys",e).init(null),s=r("secrecy.jwt",e).init(null);return{userAppKeys:n,userAppSession:t,jwt:s}}export{i as getStorage};
1
+ import"../chunk-UPFDSEKI.js";import{storeBuddy as r}from"../utils/store-buddy.js";function i(e){const t=r("secrecy.user_app_session",e).init(null),n=r("secrecy.user_app_keys",e).init(null),s=r("secrecy.jwt",e).init(null);return{userAppKeys:n,userAppSession:t,jwt:s}}export{i as getStorage};
2
2
  //# sourceMappingURL=storage.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5WPCTUWHcjs = require('../../chunk-5WPCTUWH.cjs');var _indexjs = require('../../zeus/index.js');const s=_indexjs.Selector.call(void 0, "File")({id:!0,size:!0,sizeBefore:!0,createdAt:!0,md5:!0,md5Encrypted:!0,access:{key:!0,sharedBy:{keyPair:{pub:!0}}}}),e= exports.userSelector =_indexjs.Selector.call(void 0, "User")({id:!0,firstname:!0,lastname:!0,email:!0,publicKey:!0}),i= exports.nodeSelector =_indexjs.Selector.call(void 0, "Node")({id:!0,isFavorite:!0,type:!0,createdAt:!0,deletedAt:!0,createdBy:{user:e},sizes:{size:!0,sizeBefore:!0},updatedAt:!0,name:!0,access:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},accesses:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},breadcrumb:{id:!0,name:!0,nameKey:!0,pubKey:!0},parentId:!0,currentFileId:!0}),c= exports.nodeFullSelector =_indexjs.Selector.call(void 0, "Node")(_chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},i),{parent:i,children:i,history:s,current:s})),d= exports.mailSelector =_indexjs.Selector.call(void 0, "Mail")({id:!0,type:!0,body:!0,subject:!0,openedAt:!0,createdAt:!0,deletedAt:!0,recipients:_chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},e),{publicKey:!1}),recipient:_chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},e),{publicKey:!1}),sender:e,mailIntegrity:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:_chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},e),{publicKey:!1})},mailIntegrityDraft:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:_chunk5WPCTUWHcjs.b.call(void 0, _chunk5WPCTUWHcjs.a.call(void 0, {},e),{publicKey:!1})},files:{fileKey:!0,filename:!0,file:{id:!0}}});exports.fileSelector = s; exports.mailSelector = d; exports.nodeFullSelector = c; exports.nodeSelector = i; exports.userSelector = e;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXDPEU3HVcjs = require('../../chunk-XDPEU3HV.cjs');var _indexjs = require('../../zeus/index.js');const s=_indexjs.Selector.call(void 0, "File")({id:!0,size:!0,sizeBefore:!0,createdAt:!0,md5:!0,md5Encrypted:!0,access:{key:!0,sharedBy:{keyPair:{pub:!0}}}}),e= exports.userSelector =_indexjs.Selector.call(void 0, "User")({id:!0,firstname:!0,lastname:!0,email:!0,publicKey:!0}),i= exports.nodeSelector =_indexjs.Selector.call(void 0, "Node")({id:!0,isFavorite:!0,type:!0,createdAt:!0,deletedAt:!0,createdBy:{user:e},sizes:{size:!0,sizeBefore:!0},updatedAt:!0,name:!0,access:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},accesses:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},breadcrumb:{id:!0,name:!0,nameKey:!0,pubKey:!0},parentId:!0,currentFileId:!0}),c= exports.nodeFullSelector =_indexjs.Selector.call(void 0, "Node")(_chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},i),{parent:i,children:i,history:s,current:s})),d= exports.mailSelector =_indexjs.Selector.call(void 0, "Mail")({id:!0,type:!0,body:!0,subject:!0,openedAt:!0,createdAt:!0,deletedAt:!0,recipients:_chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},e),{publicKey:!1}),recipient:_chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},e),{publicKey:!1}),sender:e,mailIntegrity:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:_chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},e),{publicKey:!1})},mailIntegrityDraft:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:_chunkXDPEU3HVcjs.b.call(void 0, _chunkXDPEU3HVcjs.a.call(void 0, {},e),{publicKey:!1})},files:{fileKey:!0,filename:!0,file:{id:!0}}});exports.fileSelector = s; exports.mailSelector = d; exports.nodeFullSelector = c; exports.nodeSelector = i; exports.userSelector = e;
2
2
  //# sourceMappingURL=selectors.cjs.map
@@ -1,2 +1,2 @@
1
- import{a as r,b as t}from"../../chunk-KMTF2BZE.js";import{Selector as u}from"../../zeus/index.js";const s=u("File")({id:!0,size:!0,sizeBefore:!0,createdAt:!0,md5:!0,md5Encrypted:!0,access:{key:!0,sharedBy:{keyPair:{pub:!0}}}}),e=u("User")({id:!0,firstname:!0,lastname:!0,email:!0,publicKey:!0}),i=u("Node")({id:!0,isFavorite:!0,type:!0,createdAt:!0,deletedAt:!0,createdBy:{user:e},sizes:{size:!0,sizeBefore:!0},updatedAt:!0,name:!0,access:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},accesses:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},breadcrumb:{id:!0,name:!0,nameKey:!0,pubKey:!0},parentId:!0,currentFileId:!0}),c=u("Node")(t(r({},i),{parent:i,children:i,history:s,current:s})),d=u("Mail")({id:!0,type:!0,body:!0,subject:!0,openedAt:!0,createdAt:!0,deletedAt:!0,recipients:t(r({},e),{publicKey:!1}),recipient:t(r({},e),{publicKey:!1}),sender:e,mailIntegrity:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:t(r({},e),{publicKey:!1})},mailIntegrityDraft:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:t(r({},e),{publicKey:!1})},files:{fileKey:!0,filename:!0,file:{id:!0}}});export{s as fileSelector,d as mailSelector,c as nodeFullSelector,i as nodeSelector,e as userSelector};
1
+ import{a as r,b as t}from"../../chunk-UPFDSEKI.js";import{Selector as u}from"../../zeus/index.js";const s=u("File")({id:!0,size:!0,sizeBefore:!0,createdAt:!0,md5:!0,md5Encrypted:!0,access:{key:!0,sharedBy:{keyPair:{pub:!0}}}}),e=u("User")({id:!0,firstname:!0,lastname:!0,email:!0,publicKey:!0}),i=u("Node")({id:!0,isFavorite:!0,type:!0,createdAt:!0,deletedAt:!0,createdBy:{user:e},sizes:{size:!0,sizeBefore:!0},updatedAt:!0,name:!0,access:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},accesses:{rights:!0,isRoot:!0,nameKey:!0,sharedBy:{keyPair:{pub:!0}},userApp:{user:e}},breadcrumb:{id:!0,name:!0,nameKey:!0,pubKey:!0},parentId:!0,currentFileId:!0}),c=u("Node")(t(r({},i),{parent:i,children:i,history:s,current:s})),d=u("Mail")({id:!0,type:!0,body:!0,subject:!0,openedAt:!0,createdAt:!0,deletedAt:!0,recipients:t(r({},e),{publicKey:!1}),recipient:t(r({},e),{publicKey:!1}),sender:e,mailIntegrity:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:t(r({},e),{publicKey:!1})},mailIntegrityDraft:{id:!0,hash:!0,hashKey:!0,replyTo:{id:!0},temporaryRecipients:{email:!0},recipients:t(r({},e),{publicKey:!1})},files:{fileKey:!0,filename:!0,file:{id:!0}}});export{s as fileSelector,d as mailSelector,c as nodeFullSelector,i as nodeSelector,e as userSelector};
2
2
  //# sourceMappingURL=selectors.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }require('../chunk-5WPCTUWH.cjs');var _sodiumjs = require('../sodium.js');var _sparkmd5 = require('spark-md5'); var _sparkmd52 = _interopRequireDefault(_sparkmd5);var _utilsjs = require('../utils/utils.js');function _(o,e){if(!o)throw new Error(e)}function k(){return _sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_keygen()}function T(o){let e=!1;const{state:t,header:y}=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_init_push(o),l=(i,d)=>(_(e===!1,"state already destroyed"),_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_push(t,d,null,i));function p(){_(e===!1,"state already destroyed"),e=!0}return{encrypt:l,destroy:p,header:y}}function w(o,e){_(o.byteLength>=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,`header must be at least HEADERBYTES (${_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`),_(e.byteLength>=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,`key must be at least KEYBYTES (${_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`);let t=!1;const y=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_init_pull(o,e),l=i=>(_(t===!1,"state already destroyed"),_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_pull(y,i));function p(){_(t===!1,"state already destroyed"),t=!0}return{decrypt:l,destroy:p}}const m=8192;async function F(o,e,t,y){await _sodiumjs.setup.call(void 0, );const{encrypt:l,destroy:p,header:i}=T(o),d=m+_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/m)*d+i.byteLength;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c),n=new _sparkmd52.default.ArrayBuffer,u=new _sparkmd52.default.ArrayBuffer;h.set(i),n.append(i);let a=i.byteLength;t==null||t({percent:a/c,total:c,current:a});let E=a/c;for(const s of _utilsjs.chunks.call(void 0, e,m)){if(y!=null&&y.signal.aborted)throw new Error("Encrypt aborted");u.append(s);const b=s.length<m?_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL:_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE,f=l(b,s);n.append(f),h.set(f,a),a+=f.byteLength;const A=a/c;A>E+.01&&(t==null||t({percent:A,total:c,current:a}),E=A)}return p(),t==null||t({percent:1,total:a,current:a}),{data:h.slice(0,a),md5Encrypted:n.end(),md5:u.end()}}async function L(o,e,t,y){await _sodiumjs.setup.call(void 0, );const l=e.slice(0,_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);e=e.slice(_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);const{decrypt:p,destroy:i}=w(l,o),d=m+_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/d)*m;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c);let n=0,u=n/c;for(const a of _utilsjs.chunks.call(void 0, e,d)){if(y!=null&&y.signal.aborted)throw new Error("Decrypt aborted");const E=p(a);h.set(E.message,n),n+=E.message.byteLength;const s=n/c;s>u+.01&&(t==null||t({percent:s,total:c,current:n}),u=s)}return i(),t==null||t({percent:1,total:n,current:n}),h.slice(0,n)}exports.CHUNK_SIZE = m; exports.decryptSecretstream = L; exports.encryptSecretstream = F; exports.secretstreamKeygen = k;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkXDPEU3HVcjs = require('../chunk-XDPEU3HV.cjs');var _sodiumjs = require('../sodium.js');var _sparkmd5 = require('spark-md5'); var _sparkmd52 = _interopRequireDefault(_sparkmd5);var _utilsjs = require('../utils/utils.js');function _(o,e){if(!o)throw new Error(e)}function F(){return _sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_keygen()}function w(o){let e=!1;const{state:t,header:y}=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_init_push(o),l=(i,d)=>(_(e===!1,"state already destroyed"),_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_push(t,d,null,i));function p(){_(e===!1,"state already destroyed"),e=!0}return{encrypt:l,destroy:p,header:y}}function Y(o,e){_(o.byteLength>=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,`header must be at least HEADERBYTES (${_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`),_(e.byteLength>=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,`key must be at least KEYBYTES (${_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`);let t=!1;const y=_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_init_pull(o,e),l=i=>(_(t===!1,"state already destroyed"),_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_pull(y,i));function p(){_(t===!1,"state already destroyed"),t=!0}return{decrypt:l,destroy:p}}const m=8192;function L(o,e,t,y){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){yield _sodiumjs.setup.call(void 0, );const{encrypt:l,destroy:p,header:i}=w(o),d=m+_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/m)*d+i.byteLength;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c),n=new _sparkmd52.default.ArrayBuffer,u=new _sparkmd52.default.ArrayBuffer;h.set(i),n.append(i);let a=i.byteLength;t==null||t({percent:a/c,total:c,current:a});let E=a/c;for(const s of _utilsjs.chunks.call(void 0, e,m)){if(y!=null&&y.signal.aborted)throw new Error("Encrypt aborted");u.append(s);const T=s.length<m?_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL:_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE,f=l(T,s);n.append(f),h.set(f,a),a+=f.byteLength;const A=a/c;A>E+.01&&(t==null||t({percent:A,total:c,current:a}),E=A)}return p(),t==null||t({percent:1,total:a,current:a}),{data:h.slice(0,a),md5Encrypted:n.end(),md5:u.end()}})}function P(o,e,t,y){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){yield _sodiumjs.setup.call(void 0, );const l=e.slice(0,_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);e=e.slice(_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);const{decrypt:p,destroy:i}=Y(l,o),d=m+_sodiumjs.sodium.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/d)*m;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c);let n=0,u=n/c;for(const a of _utilsjs.chunks.call(void 0, e,d)){if(y!=null&&y.signal.aborted)throw new Error("Decrypt aborted");const E=p(a);h.set(E.message,n),n+=E.message.byteLength;const s=n/c;s>u+.01&&(t==null||t({percent:s,total:c,current:n}),u=s)}return i(),t==null||t({percent:1,total:n,current:n}),h.slice(0,n)})}exports.CHUNK_SIZE = m; exports.decryptSecretstream = P; exports.encryptSecretstream = L; exports.secretstreamKeygen = F;
2
2
  //# sourceMappingURL=file.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/crypto/file.ts"],"names":["setup","sodium","SparkMD5","chunks","assert","c","message","secretstreamKeygen","encrypt","key","destroyed","state","header","tag","plaintext","destroy","decrypt","ciphertext","CHUNK_SIZE","encryptSecretstream","data","progress","abort","crypt","cryptedChunk","max","final","sparkEncrypted","spark","total","lastPercent","chunk","crypted","percent","decryptSecretstream","decryptt","chunkSize","tmp"],"mappings":"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","sourcesContent":["import type { MessageTag } from \"libsodium-wrappers\";\nimport { setup, sodium } from \"../sodium.js\";\nimport SparkMD5 from \"spark-md5\";\nimport { chunks } from \"../utils/utils.js\";\n\nexport type EncryptedFile = {\n data: Uint8Array;\n md5: string;\n md5Encrypted: string;\n};\n\nfunction assert(c: boolean, message: string): void {\n if (!c) {\n throw new Error(message);\n }\n}\n\ntype EncryptFn = (tag: number, plaintext: Uint8Array) => Uint8Array;\n\ntype DecryptFn = (ciphertext: Uint8Array) => MessageTag;\n\nexport function secretstreamKeygen(): Uint8Array {\n return sodium.crypto_secretstream_xchacha20poly1305_keygen();\n}\n\nfunction encrypt(key: Uint8Array): {\n destroy: () => void;\n encrypt: EncryptFn;\n header: Uint8Array;\n} {\n let destroyed = false;\n const { state, header } =\n sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt: EncryptFn = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(\n header: Uint8Array,\n key: Uint8Array\n): {\n destroy: () => void;\n decrypt: DecryptFn;\n} {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n `header must be at least HEADERBYTES (${sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n `key must be at least KEYBYTES (${sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt: DecryptFn = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nexport const CHUNK_SIZE = 8192;\n\nexport type Progress = {\n percent: number;\n total: number;\n current: number;\n};\n\nexport async function encryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<EncryptedFile> {\n await setup();\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n if (abort?.signal.aborted) {\n throw new Error(`Encrypt aborted`);\n }\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nexport async function decryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<Uint8Array> {\n await setup();\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n if (abort?.signal.aborted) {\n throw new Error(`Decrypt aborted`);\n }\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\n// async function mainSecretstream(random: Uint8Array): Promise<void> {\n// const key = secretstreamKeygen();\n// console.time(\"secretstream_encrypt\");\n// const crypted = encryptSecretstream(key, random);\n// console.timeEnd(\"secretstream_encrypt\");\n// console.time(\"secretstream_decrypt\");\n// const decrypted = decryptSecretstream(key, crypted);\n// console.timeEnd(\"secretstream_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n// async function mainSecretbox(random: Uint8Array): Promise<void> {\n// const key = generateSecretBox();\n// console.time(\"secretbox_encrypt\");\n// const crypted = encryptFile(random, key);\n// console.timeEnd(\"secretbox_encrypt\");\n// console.time(\"secretbox_decrypt\");\n// const decrypted = decryptFile(crypted, key);\n// console.timeEnd(\"secretbox_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n\n// async function main(): Promise<void> {\n// await ready;\n// console.time(\"randombytes_buf\");\n// const random = randombytes_buf(1_000_000 * 1024);\n// console.timeEnd(\"randombytes_buf\");\n// await Promise.all([mainSecretstream(random), mainSecretbox(random)]);\n// }\n\n// main();\n"]}
1
+ {"version":3,"sources":["../../src/crypto/file.ts"],"names":["setup","sodium","SparkMD5","chunks","assert","c","message","secretstreamKeygen","encrypt","key","destroyed","state","header","tag","plaintext","destroy","decrypt","ciphertext","CHUNK_SIZE","encryptSecretstream","data","progress","abort","__async","crypt","cryptedChunk","max","final","sparkEncrypted","spark","total","lastPercent","chunk","crypted","percent","decryptSecretstream","decryptt","chunkSize","tmp"],"mappings":"0CACA,OAAS,SAAAA,EAAO,UAAAC,MAAc,eAC9B,OAAOC,MAAc,YACrB,OAAS,UAAAC,MAAc,oBAQvB,SAASC,EAAOC,EAAYC,EAAuB,CACjD,GAAI,CAACD,EACH,MAAM,IAAI,MAAMC,CAAO,CAE3B,CAMO,SAASC,GAAiC,CAC/C,OAAON,EAAO,6CAA6C,CAC7D,CAEA,SAASO,EAAQC,EAIf,CACA,IAAIC,EAAY,GAChB,KAAM,CAAE,MAAAC,EAAO,OAAAC,CAAO,EACpBX,EAAO,gDAAgDQ,CAAG,EAEtDD,EAAqB,CAACK,EAAKC,KAC/BV,EAAOM,IAAc,GAAO,yBAAyB,EAE9CT,EAAO,2CACZU,EACAG,EACA,KACAD,CACF,GAGF,SAASE,GAAgB,CACvBX,EAAOM,IAAc,GAAO,yBAAyB,EACrDA,EAAY,EACd,CAEA,MAAO,CACL,QAAAF,EACA,QAAAO,EACA,OAAAH,CACF,CACF,CAEA,SAASI,EACPJ,EACAH,EAIA,CACAL,EACEQ,EAAO,YACLX,EAAO,kDACT,wCAAwCA,EAAO,yDACjD,EACAG,EACEK,EAAI,YAAcR,EAAO,+CACzB,kCAAkCA,EAAO,sDAC3C,EAEA,IAAIS,EAAY,GAChB,MAAMC,EAAQV,EAAO,gDACnBW,EACAH,CACF,EAEMO,EAAqBC,IACzBb,EAAOM,IAAc,GAAO,yBAAyB,EAE9CT,EAAO,2CAA2CU,EAAOM,CAAU,GAG5E,SAASF,GAAgB,CACvBX,EAAOM,IAAc,GAAO,yBAAyB,EACrDA,EAAY,EACd,CAEA,MAAO,CACL,QAAAM,EACA,QAAAD,CACF,CACF,CAEO,MAAMG,EAAa,KAQ1B,SAAsBC,EACpBV,EACAW,EACAC,EACAC,EACwB,QAAAC,EAAA,sBACxB,MAAMvB,EAAM,EACZ,KAAM,CAAE,QAASwB,EAAO,QAAAT,EAAS,OAAAH,CAAO,EAAIJ,EAAQC,CAAG,EACjDgB,EACJP,EAAajB,EAAO,6CAChByB,EACJ,KAAK,KAAKN,EAAK,WAAaF,CAAU,EAAIO,EAAeb,EAAO,WAElES,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,MAAOK,EACP,QAAS,CACX,GACA,MAAMC,EAAQ,IAAI,WAAWD,CAAG,EAC1BE,EAAiB,IAAI1B,EAAS,YAC9B2B,EAAQ,IAAI3B,EAAS,YAE3ByB,EAAM,IAAIf,CAAM,EAChBgB,EAAe,OAAOhB,CAAM,EAC5B,IAAIkB,EAAQlB,EAAO,WACnBS,GAAA,MAAAA,EAAW,CACT,QAASS,EAAQJ,EACjB,MAAOA,EACP,QAASI,CACX,GACA,IAAIC,EAAcD,EAAQJ,EAE1B,UAAWM,KAAS7B,EAAOiB,EAAMF,CAAU,EAAG,CAC5C,GAAII,GAAA,MAAAA,EAAO,OAAO,QAChB,MAAM,IAAI,MAAM,iBAAiB,EAEnCO,EAAM,OAAOG,CAAK,EAClB,MAAMnB,EACJmB,EAAM,OAASd,EACXjB,EAAO,gDACPA,EAAO,kDACPgC,EAAUT,EAAMX,EAAKmB,CAAK,EAChCJ,EAAe,OAAOK,CAAO,EAC7BN,EAAM,IAAIM,EAASH,CAAK,EACxBA,GAASG,EAAQ,WACjB,MAAMC,EAAUJ,EAAQJ,EACpBQ,EAAUH,EAAc,MAC1BV,GAAA,MAAAA,EAAW,CACT,QAAAa,EACA,MAAOR,EACP,QAASI,CACX,GACAC,EAAcG,EAElB,CAEA,OAAAnB,EAAQ,EACRM,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,MAAAS,EACA,QAASA,CACX,GACO,CACL,KAAMH,EAAM,MAAM,EAAGG,CAAK,EAC1B,aAAcF,EAAe,IAAI,EACjC,IAAKC,EAAM,IAAI,CACjB,CACF,GAEA,SAAsBM,EACpB1B,EACAW,EACAC,EACAC,EACqB,QAAAC,EAAA,sBACrB,MAAMvB,EAAM,EACZ,MAAMY,EAASQ,EAAK,MAClB,EACAnB,EAAO,iDACT,EACAmB,EAAOA,EAAK,MAAMnB,EAAO,iDAAiD,EAE1E,KAAM,CAAE,QAASmC,EAAU,QAAArB,CAAQ,EAAIC,EAAQJ,EAAQH,CAAG,EACpD4B,EACJnB,EAAajB,EAAO,6CAChByB,EAAM,KAAK,KAAKN,EAAK,WAAaiB,CAAS,EAAInB,EAErDG,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,MAAOK,EACP,QAAS,CACX,GACA,MAAMC,EAAQ,IAAI,WAAWD,CAAG,EAChC,IAAII,EAAQ,EAERC,EAAcD,EAAQJ,EAE1B,UAAWM,KAAS7B,EAAOiB,EAAMiB,CAAS,EAAG,CAC3C,GAAIf,GAAA,MAAAA,EAAO,OAAO,QAChB,MAAM,IAAI,MAAM,iBAAiB,EAEnC,MAAMgB,EAAMF,EAASJ,CAAK,EAC1BL,EAAM,IAAIW,EAAI,QAASR,CAAK,EAC5BA,GAASQ,EAAI,QAAQ,WACrB,MAAMJ,EAAUJ,EAAQJ,EACpBQ,EAAUH,EAAc,MAC1BV,GAAA,MAAAA,EAAW,CACT,QAAAa,EACA,MAAOR,EACP,QAASI,CACX,GACAC,EAAcG,EAElB,CAEA,OAAAnB,EAAQ,EACRM,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,MAAAS,EACA,QAASA,CACX,GACOH,EAAM,MAAM,EAAGG,CAAK,CAC7B","sourcesContent":["import type { MessageTag } from \"libsodium-wrappers\";\nimport { setup, sodium } from \"../sodium.js\";\nimport SparkMD5 from \"spark-md5\";\nimport { chunks } from \"../utils/utils.js\";\n\nexport type EncryptedFile = {\n data: Uint8Array;\n md5: string;\n md5Encrypted: string;\n};\n\nfunction assert(c: boolean, message: string): void {\n if (!c) {\n throw new Error(message);\n }\n}\n\ntype EncryptFn = (tag: number, plaintext: Uint8Array) => Uint8Array;\n\ntype DecryptFn = (ciphertext: Uint8Array) => MessageTag;\n\nexport function secretstreamKeygen(): Uint8Array {\n return sodium.crypto_secretstream_xchacha20poly1305_keygen();\n}\n\nfunction encrypt(key: Uint8Array): {\n destroy: () => void;\n encrypt: EncryptFn;\n header: Uint8Array;\n} {\n let destroyed = false;\n const { state, header } =\n sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt: EncryptFn = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(\n header: Uint8Array,\n key: Uint8Array\n): {\n destroy: () => void;\n decrypt: DecryptFn;\n} {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n `header must be at least HEADERBYTES (${sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n `key must be at least KEYBYTES (${sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt: DecryptFn = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nexport const CHUNK_SIZE = 8192;\n\nexport type Progress = {\n percent: number;\n total: number;\n current: number;\n};\n\nexport async function encryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<EncryptedFile> {\n await setup();\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n if (abort?.signal.aborted) {\n throw new Error(`Encrypt aborted`);\n }\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nexport async function decryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<Uint8Array> {\n await setup();\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n if (abort?.signal.aborted) {\n throw new Error(`Decrypt aborted`);\n }\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\n// async function mainSecretstream(random: Uint8Array): Promise<void> {\n// const key = secretstreamKeygen();\n// console.time(\"secretstream_encrypt\");\n// const crypted = encryptSecretstream(key, random);\n// console.timeEnd(\"secretstream_encrypt\");\n// console.time(\"secretstream_decrypt\");\n// const decrypted = decryptSecretstream(key, crypted);\n// console.timeEnd(\"secretstream_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n// async function mainSecretbox(random: Uint8Array): Promise<void> {\n// const key = generateSecretBox();\n// console.time(\"secretbox_encrypt\");\n// const crypted = encryptFile(random, key);\n// console.timeEnd(\"secretbox_encrypt\");\n// console.time(\"secretbox_decrypt\");\n// const decrypted = decryptFile(crypted, key);\n// console.timeEnd(\"secretbox_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n\n// async function main(): Promise<void> {\n// await ready;\n// console.time(\"randombytes_buf\");\n// const random = randombytes_buf(1_000_000 * 1024);\n// console.timeEnd(\"randombytes_buf\");\n// await Promise.all([mainSecretstream(random), mainSecretbox(random)]);\n// }\n\n// main();\n"]}
@@ -1,2 +1,2 @@
1
- import"../chunk-KMTF2BZE.js";import{setup as x,sodium as r}from"../sodium.js";import S from"spark-md5";import{chunks as U}from"../utils/utils.js";function _(o,e){if(!o)throw new Error(e)}function k(){return r.crypto_secretstream_xchacha20poly1305_keygen()}function T(o){let e=!1;const{state:t,header:y}=r.crypto_secretstream_xchacha20poly1305_init_push(o),l=(i,d)=>(_(e===!1,"state already destroyed"),r.crypto_secretstream_xchacha20poly1305_push(t,d,null,i));function p(){_(e===!1,"state already destroyed"),e=!0}return{encrypt:l,destroy:p,header:y}}function w(o,e){_(o.byteLength>=r.crypto_secretstream_xchacha20poly1305_HEADERBYTES,`header must be at least HEADERBYTES (${r.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`),_(e.byteLength>=r.crypto_secretstream_xchacha20poly1305_KEYBYTES,`key must be at least KEYBYTES (${r.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`);let t=!1;const y=r.crypto_secretstream_xchacha20poly1305_init_pull(o,e),l=i=>(_(t===!1,"state already destroyed"),r.crypto_secretstream_xchacha20poly1305_pull(y,i));function p(){_(t===!1,"state already destroyed"),t=!0}return{decrypt:l,destroy:p}}const m=8192;async function F(o,e,t,y){await x();const{encrypt:l,destroy:p,header:i}=T(o),d=m+r.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/m)*d+i.byteLength;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c),n=new S.ArrayBuffer,u=new S.ArrayBuffer;h.set(i),n.append(i);let a=i.byteLength;t==null||t({percent:a/c,total:c,current:a});let E=a/c;for(const s of U(e,m)){if(y!=null&&y.signal.aborted)throw new Error("Encrypt aborted");u.append(s);const b=s.length<m?r.crypto_secretstream_xchacha20poly1305_TAG_FINAL:r.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE,f=l(b,s);n.append(f),h.set(f,a),a+=f.byteLength;const A=a/c;A>E+.01&&(t==null||t({percent:A,total:c,current:a}),E=A)}return p(),t==null||t({percent:1,total:a,current:a}),{data:h.slice(0,a),md5Encrypted:n.end(),md5:u.end()}}async function L(o,e,t,y){await x();const l=e.slice(0,r.crypto_secretstream_xchacha20poly1305_HEADERBYTES);e=e.slice(r.crypto_secretstream_xchacha20poly1305_HEADERBYTES);const{decrypt:p,destroy:i}=w(l,o),d=m+r.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/d)*m;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c);let n=0,u=n/c;for(const a of U(e,d)){if(y!=null&&y.signal.aborted)throw new Error("Decrypt aborted");const E=p(a);h.set(E.message,n),n+=E.message.byteLength;const s=n/c;s>u+.01&&(t==null||t({percent:s,total:c,current:n}),u=s)}return i(),t==null||t({percent:1,total:n,current:n}),h.slice(0,n)}export{m as CHUNK_SIZE,L as decryptSecretstream,F as encryptSecretstream,k as secretstreamKeygen};
1
+ import{h as x}from"../chunk-UPFDSEKI.js";import{setup as S,sodium as r}from"../sodium.js";import U from"spark-md5";import{chunks as b}from"../utils/utils.js";function _(o,e){if(!o)throw new Error(e)}function F(){return r.crypto_secretstream_xchacha20poly1305_keygen()}function w(o){let e=!1;const{state:t,header:y}=r.crypto_secretstream_xchacha20poly1305_init_push(o),l=(i,d)=>(_(e===!1,"state already destroyed"),r.crypto_secretstream_xchacha20poly1305_push(t,d,null,i));function p(){_(e===!1,"state already destroyed"),e=!0}return{encrypt:l,destroy:p,header:y}}function Y(o,e){_(o.byteLength>=r.crypto_secretstream_xchacha20poly1305_HEADERBYTES,`header must be at least HEADERBYTES (${r.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`),_(e.byteLength>=r.crypto_secretstream_xchacha20poly1305_KEYBYTES,`key must be at least KEYBYTES (${r.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`);let t=!1;const y=r.crypto_secretstream_xchacha20poly1305_init_pull(o,e),l=i=>(_(t===!1,"state already destroyed"),r.crypto_secretstream_xchacha20poly1305_pull(y,i));function p(){_(t===!1,"state already destroyed"),t=!0}return{decrypt:l,destroy:p}}const m=8192;function L(o,e,t,y){return x(this,null,function*(){yield S();const{encrypt:l,destroy:p,header:i}=w(o),d=m+r.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/m)*d+i.byteLength;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c),n=new U.ArrayBuffer,u=new U.ArrayBuffer;h.set(i),n.append(i);let a=i.byteLength;t==null||t({percent:a/c,total:c,current:a});let E=a/c;for(const s of b(e,m)){if(y!=null&&y.signal.aborted)throw new Error("Encrypt aborted");u.append(s);const T=s.length<m?r.crypto_secretstream_xchacha20poly1305_TAG_FINAL:r.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE,f=l(T,s);n.append(f),h.set(f,a),a+=f.byteLength;const A=a/c;A>E+.01&&(t==null||t({percent:A,total:c,current:a}),E=A)}return p(),t==null||t({percent:1,total:a,current:a}),{data:h.slice(0,a),md5Encrypted:n.end(),md5:u.end()}})}function P(o,e,t,y){return x(this,null,function*(){yield S();const l=e.slice(0,r.crypto_secretstream_xchacha20poly1305_HEADERBYTES);e=e.slice(r.crypto_secretstream_xchacha20poly1305_HEADERBYTES);const{decrypt:p,destroy:i}=Y(l,o),d=m+r.crypto_secretstream_xchacha20poly1305_ABYTES,c=Math.ceil(e.byteLength/d)*m;t==null||t({percent:0,total:c,current:0});const h=new Uint8Array(c);let n=0,u=n/c;for(const a of b(e,d)){if(y!=null&&y.signal.aborted)throw new Error("Decrypt aborted");const E=p(a);h.set(E.message,n),n+=E.message.byteLength;const s=n/c;s>u+.01&&(t==null||t({percent:s,total:c,current:n}),u=s)}return i(),t==null||t({percent:1,total:n,current:n}),h.slice(0,n)})}export{m as CHUNK_SIZE,P as decryptSecretstream,L as encryptSecretstream,F as secretstreamKeygen};
2
2
  //# sourceMappingURL=file.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/crypto/file.ts"],"sourcesContent":["import type { MessageTag } from \"libsodium-wrappers\";\nimport { setup, sodium } from \"../sodium.js\";\nimport SparkMD5 from \"spark-md5\";\nimport { chunks } from \"../utils/utils.js\";\n\nexport type EncryptedFile = {\n data: Uint8Array;\n md5: string;\n md5Encrypted: string;\n};\n\nfunction assert(c: boolean, message: string): void {\n if (!c) {\n throw new Error(message);\n }\n}\n\ntype EncryptFn = (tag: number, plaintext: Uint8Array) => Uint8Array;\n\ntype DecryptFn = (ciphertext: Uint8Array) => MessageTag;\n\nexport function secretstreamKeygen(): Uint8Array {\n return sodium.crypto_secretstream_xchacha20poly1305_keygen();\n}\n\nfunction encrypt(key: Uint8Array): {\n destroy: () => void;\n encrypt: EncryptFn;\n header: Uint8Array;\n} {\n let destroyed = false;\n const { state, header } =\n sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt: EncryptFn = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(\n header: Uint8Array,\n key: Uint8Array\n): {\n destroy: () => void;\n decrypt: DecryptFn;\n} {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n `header must be at least HEADERBYTES (${sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n `key must be at least KEYBYTES (${sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt: DecryptFn = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nexport const CHUNK_SIZE = 8192;\n\nexport type Progress = {\n percent: number;\n total: number;\n current: number;\n};\n\nexport async function encryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<EncryptedFile> {\n await setup();\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n if (abort?.signal.aborted) {\n throw new Error(`Encrypt aborted`);\n }\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nexport async function decryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<Uint8Array> {\n await setup();\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n if (abort?.signal.aborted) {\n throw new Error(`Decrypt aborted`);\n }\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\n// async function mainSecretstream(random: Uint8Array): Promise<void> {\n// const key = secretstreamKeygen();\n// console.time(\"secretstream_encrypt\");\n// const crypted = encryptSecretstream(key, random);\n// console.timeEnd(\"secretstream_encrypt\");\n// console.time(\"secretstream_decrypt\");\n// const decrypted = decryptSecretstream(key, crypted);\n// console.timeEnd(\"secretstream_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n// async function mainSecretbox(random: Uint8Array): Promise<void> {\n// const key = generateSecretBox();\n// console.time(\"secretbox_encrypt\");\n// const crypted = encryptFile(random, key);\n// console.timeEnd(\"secretbox_encrypt\");\n// console.time(\"secretbox_decrypt\");\n// const decrypted = decryptFile(crypted, key);\n// console.timeEnd(\"secretbox_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n\n// async function main(): Promise<void> {\n// await ready;\n// console.time(\"randombytes_buf\");\n// const random = randombytes_buf(1_000_000 * 1024);\n// console.timeEnd(\"randombytes_buf\");\n// await Promise.all([mainSecretstream(random), mainSecretbox(random)]);\n// }\n\n// main();\n"],"mappings":"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","names":["setup","sodium","SparkMD5","chunks","assert","c","message","secretstreamKeygen","encrypt","key","destroyed","state","header","tag","plaintext","destroy","decrypt","ciphertext","CHUNK_SIZE","encryptSecretstream","data","progress","abort","crypt","cryptedChunk","max","final","sparkEncrypted","spark","total","lastPercent","chunk","crypted","percent","decryptSecretstream","decryptt","chunkSize","tmp"]}
1
+ {"version":3,"sources":["../../src/crypto/file.ts"],"sourcesContent":["import type { MessageTag } from \"libsodium-wrappers\";\nimport { setup, sodium } from \"../sodium.js\";\nimport SparkMD5 from \"spark-md5\";\nimport { chunks } from \"../utils/utils.js\";\n\nexport type EncryptedFile = {\n data: Uint8Array;\n md5: string;\n md5Encrypted: string;\n};\n\nfunction assert(c: boolean, message: string): void {\n if (!c) {\n throw new Error(message);\n }\n}\n\ntype EncryptFn = (tag: number, plaintext: Uint8Array) => Uint8Array;\n\ntype DecryptFn = (ciphertext: Uint8Array) => MessageTag;\n\nexport function secretstreamKeygen(): Uint8Array {\n return sodium.crypto_secretstream_xchacha20poly1305_keygen();\n}\n\nfunction encrypt(key: Uint8Array): {\n destroy: () => void;\n encrypt: EncryptFn;\n header: Uint8Array;\n} {\n let destroyed = false;\n const { state, header } =\n sodium.crypto_secretstream_xchacha20poly1305_init_push(key);\n\n const encrypt: EncryptFn = (tag, plaintext) => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_push(\n state,\n plaintext,\n null,\n tag\n );\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n encrypt,\n destroy,\n header\n };\n}\n\nfunction decrypt(\n header: Uint8Array,\n key: Uint8Array\n): {\n destroy: () => void;\n decrypt: DecryptFn;\n} {\n assert(\n header.byteLength >=\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES,\n `header must be at least HEADERBYTES (${sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`\n );\n assert(\n key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES,\n `key must be at least KEYBYTES (${sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`\n );\n\n let destroyed = false;\n const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(\n header,\n key\n );\n\n const decrypt: DecryptFn = ciphertext => {\n assert(destroyed === false, \"state already destroyed\");\n\n return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);\n };\n\n function destroy(): void {\n assert(destroyed === false, \"state already destroyed\");\n destroyed = true;\n }\n\n return {\n decrypt,\n destroy\n };\n}\n\nexport const CHUNK_SIZE = 8192;\n\nexport type Progress = {\n percent: number;\n total: number;\n current: number;\n};\n\nexport async function encryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<EncryptedFile> {\n await setup();\n const { encrypt: crypt, destroy, header } = encrypt(key);\n const cryptedChunk =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max =\n Math.ceil(data.byteLength / CHUNK_SIZE) * cryptedChunk + header.byteLength;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n const sparkEncrypted = new SparkMD5.ArrayBuffer();\n const spark = new SparkMD5.ArrayBuffer();\n\n final.set(header);\n sparkEncrypted.append(header);\n let total = header.byteLength;\n progress?.({\n percent: total / max,\n total: max,\n current: total\n });\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, CHUNK_SIZE)) {\n if (abort?.signal.aborted) {\n throw new Error(`Encrypt aborted`);\n }\n spark.append(chunk);\n const tag =\n chunk.length < CHUNK_SIZE\n ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL\n : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n const crypted = crypt(tag, chunk);\n sparkEncrypted.append(crypted);\n final.set(crypted, total);\n total += crypted.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return {\n data: final.slice(0, total),\n md5Encrypted: sparkEncrypted.end(),\n md5: spark.end()\n };\n}\n\nexport async function decryptSecretstream(\n key: Uint8Array,\n data: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n abort?: AbortController\n): Promise<Uint8Array> {\n await setup();\n const header = data.slice(\n 0,\n sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES\n );\n data = data.slice(sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n const { decrypt: decryptt, destroy } = decrypt(header, key);\n const chunkSize =\n CHUNK_SIZE + sodium.crypto_secretstream_xchacha20poly1305_ABYTES;\n const max = Math.ceil(data.byteLength / chunkSize) * CHUNK_SIZE;\n\n progress?.({\n percent: 0,\n total: max,\n current: 0\n });\n const final = new Uint8Array(max);\n let total = 0;\n\n let lastPercent = total / max;\n\n for (const chunk of chunks(data, chunkSize)) {\n if (abort?.signal.aborted) {\n throw new Error(`Decrypt aborted`);\n }\n const tmp = decryptt(chunk);\n final.set(tmp.message, total);\n total += tmp.message.byteLength;\n const percent = total / max;\n if (percent > lastPercent + 0.01) {\n progress?.({\n percent,\n total: max,\n current: total\n });\n lastPercent = percent;\n }\n }\n\n destroy();\n progress?.({\n percent: 1,\n total,\n current: total\n });\n return final.slice(0, total);\n}\n\n// async function mainSecretstream(random: Uint8Array): Promise<void> {\n// const key = secretstreamKeygen();\n// console.time(\"secretstream_encrypt\");\n// const crypted = encryptSecretstream(key, random);\n// console.timeEnd(\"secretstream_encrypt\");\n// console.time(\"secretstream_decrypt\");\n// const decrypted = decryptSecretstream(key, crypted);\n// console.timeEnd(\"secretstream_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n// async function mainSecretbox(random: Uint8Array): Promise<void> {\n// const key = generateSecretBox();\n// console.time(\"secretbox_encrypt\");\n// const crypted = encryptFile(random, key);\n// console.timeEnd(\"secretbox_encrypt\");\n// console.time(\"secretbox_decrypt\");\n// const decrypted = decryptFile(crypted, key);\n// console.timeEnd(\"secretbox_decrypt\");\n// const first = to_hex(random).slice(0, 32);\n// const final = to_hex(decrypted).slice(0, 32);\n// console.log({\n// first,\n// final,\n// equals: first === final\n// });\n// }\n\n// async function main(): Promise<void> {\n// await ready;\n// console.time(\"randombytes_buf\");\n// const random = randombytes_buf(1_000_000 * 1024);\n// console.timeEnd(\"randombytes_buf\");\n// await Promise.all([mainSecretstream(random), mainSecretbox(random)]);\n// }\n\n// main();\n"],"mappings":"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","names":["setup","sodium","SparkMD5","chunks","assert","c","message","secretstreamKeygen","encrypt","key","destroyed","state","header","tag","plaintext","destroy","decrypt","ciphertext","CHUNK_SIZE","encryptSecretstream","data","progress","abort","__async","crypt","cryptedChunk","max","final","sparkEncrypted","spark","total","lastPercent","chunk","crypted","percent","decryptSecretstream","decryptt","chunkSize","tmp"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _utilsjs = require('../utils/utils.js');var _sodiumjs = require('../sodium.js');function p(t,o,e){const n=_sodiumjs.sodium.randombytes_buf(_sodiumjs.sodium.crypto_box_NONCEBYTES),c=_sodiumjs.sodium.crypto_box_easy(t,n,_sodiumjs.sodium.from_hex(o),_sodiumjs.sodium.from_hex(e));return _utilsjs.concatenate.call(void 0, n,c)}function s(){return _sodiumjs.sodium.crypto_box_keypair("hex")}function x(t,o,e){if(t.length<_sodiumjs.sodium.crypto_box_NONCEBYTES+_sodiumjs.sodium.crypto_box_MACBYTES)throw"data too short";const n=t.slice(0,_sodiumjs.sodium.crypto_box_NONCEBYTES),c=t.slice(_sodiumjs.sodium.crypto_box_NONCEBYTES);return _sodiumjs.sodium.crypto_box_open_easy(c,n,_sodiumjs.sodium.from_hex(o),_sodiumjs.sodium.from_hex(e))}function a(){return _sodiumjs.sodium.randombytes_buf(_sodiumjs.sodium.crypto_secretbox_KEYBYTES,"hex")}function b(t,o){const e=_sodiumjs.sodium.randombytes_buf(_sodiumjs.sodium.crypto_secretbox_NONCEBYTES),n=_sodiumjs.sodium.crypto_secretbox_easy(t,e,_sodiumjs.sodium.from_hex(o));return _utilsjs.concatenate.call(void 0, e,n)}function f(t,o){if(t.length<_sodiumjs.sodium.crypto_secretbox_NONCEBYTES+_sodiumjs.sodium.crypto_secretbox_MACBYTES)throw"data too short";const e=t.slice(0,_sodiumjs.sodium.crypto_secretbox_NONCEBYTES),n=t.slice(_sodiumjs.sodium.crypto_secretbox_NONCEBYTES);return _sodiumjs.sodium.crypto_secretbox_open_easy(n,e,_sodiumjs.sodium.from_hex(o))}function u(t,o){return _sodiumjs.sodium.crypto_box_seal(t,_sodiumjs.sodium.from_hex(o))}function E(t,{privateKey:o,publicKey:e}){return _sodiumjs.sodium.crypto_box_seal_open(t,_sodiumjs.sodium.from_hex(e),_sodiumjs.sodium.from_hex(o))}exports.decryptAnonymous = E; exports.decryptCryptoBox = x; exports.decryptSecretBox = f; exports.encryptAnonymous = u; exports.encryptCryptoBox = p; exports.encryptSecretBox = b; exports.generateCryptoBoxKeyPair = s; exports.generateSecretBoxKey = a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-XDPEU3HV.cjs');var _utilsjs = require('../utils/utils.js');var _sodiumjs = require('../sodium.js');function p(t,o,e){const n=_sodiumjs.sodium.randombytes_buf(_sodiumjs.sodium.crypto_box_NONCEBYTES),c=_sodiumjs.sodium.crypto_box_easy(t,n,_sodiumjs.sodium.from_hex(o),_sodiumjs.sodium.from_hex(e));return _utilsjs.concatenate.call(void 0, n,c)}function s(){return _sodiumjs.sodium.crypto_box_keypair("hex")}function x(t,o,e){if(t.length<_sodiumjs.sodium.crypto_box_NONCEBYTES+_sodiumjs.sodium.crypto_box_MACBYTES)throw"data too short";const n=t.slice(0,_sodiumjs.sodium.crypto_box_NONCEBYTES),c=t.slice(_sodiumjs.sodium.crypto_box_NONCEBYTES);return _sodiumjs.sodium.crypto_box_open_easy(c,n,_sodiumjs.sodium.from_hex(o),_sodiumjs.sodium.from_hex(e))}function a(){return _sodiumjs.sodium.randombytes_buf(_sodiumjs.sodium.crypto_secretbox_KEYBYTES,"hex")}function b(t,o){const e=_sodiumjs.sodium.randombytes_buf(_sodiumjs.sodium.crypto_secretbox_NONCEBYTES),n=_sodiumjs.sodium.crypto_secretbox_easy(t,e,_sodiumjs.sodium.from_hex(o));return _utilsjs.concatenate.call(void 0, e,n)}function f(t,o){if(t.length<_sodiumjs.sodium.crypto_secretbox_NONCEBYTES+_sodiumjs.sodium.crypto_secretbox_MACBYTES)throw"data too short";const e=t.slice(0,_sodiumjs.sodium.crypto_secretbox_NONCEBYTES),n=t.slice(_sodiumjs.sodium.crypto_secretbox_NONCEBYTES);return _sodiumjs.sodium.crypto_secretbox_open_easy(n,e,_sodiumjs.sodium.from_hex(o))}function u(t,o){return _sodiumjs.sodium.crypto_box_seal(t,_sodiumjs.sodium.from_hex(o))}function E(t,{privateKey:o,publicKey:e}){return _sodiumjs.sodium.crypto_box_seal_open(t,_sodiumjs.sodium.from_hex(e),_sodiumjs.sodium.from_hex(o))}exports.decryptAnonymous = E; exports.decryptCryptoBox = x; exports.decryptSecretBox = f; exports.encryptAnonymous = u; exports.encryptCryptoBox = p; exports.encryptSecretBox = b; exports.generateCryptoBoxKeyPair = s; exports.generateSecretBoxKey = a;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,2 @@
1
- import"../chunk-KMTF2BZE.js";import{concatenate as y}from"../utils/utils.js";import{sodium as r}from"../sodium.js";function p(t,o,e){const n=r.randombytes_buf(r.crypto_box_NONCEBYTES),c=r.crypto_box_easy(t,n,r.from_hex(o),r.from_hex(e));return y(n,c)}function s(){return r.crypto_box_keypair("hex")}function x(t,o,e){if(t.length<r.crypto_box_NONCEBYTES+r.crypto_box_MACBYTES)throw"data too short";const n=t.slice(0,r.crypto_box_NONCEBYTES),c=t.slice(r.crypto_box_NONCEBYTES);return r.crypto_box_open_easy(c,n,r.from_hex(o),r.from_hex(e))}function a(){return r.randombytes_buf(r.crypto_secretbox_KEYBYTES,"hex")}function b(t,o){const e=r.randombytes_buf(r.crypto_secretbox_NONCEBYTES),n=r.crypto_secretbox_easy(t,e,r.from_hex(o));return y(e,n)}function f(t,o){if(t.length<r.crypto_secretbox_NONCEBYTES+r.crypto_secretbox_MACBYTES)throw"data too short";const e=t.slice(0,r.crypto_secretbox_NONCEBYTES),n=t.slice(r.crypto_secretbox_NONCEBYTES);return r.crypto_secretbox_open_easy(n,e,r.from_hex(o))}function u(t,o){return r.crypto_box_seal(t,r.from_hex(o))}function E(t,{privateKey:o,publicKey:e}){return r.crypto_box_seal_open(t,r.from_hex(e),r.from_hex(o))}export{E as decryptAnonymous,x as decryptCryptoBox,f as decryptSecretBox,u as encryptAnonymous,p as encryptCryptoBox,b as encryptSecretBox,s as generateCryptoBoxKeyPair,a as generateSecretBoxKey};
1
+ import"../chunk-UPFDSEKI.js";import{concatenate as y}from"../utils/utils.js";import{sodium as r}from"../sodium.js";function p(t,o,e){const n=r.randombytes_buf(r.crypto_box_NONCEBYTES),c=r.crypto_box_easy(t,n,r.from_hex(o),r.from_hex(e));return y(n,c)}function s(){return r.crypto_box_keypair("hex")}function x(t,o,e){if(t.length<r.crypto_box_NONCEBYTES+r.crypto_box_MACBYTES)throw"data too short";const n=t.slice(0,r.crypto_box_NONCEBYTES),c=t.slice(r.crypto_box_NONCEBYTES);return r.crypto_box_open_easy(c,n,r.from_hex(o),r.from_hex(e))}function a(){return r.randombytes_buf(r.crypto_secretbox_KEYBYTES,"hex")}function b(t,o){const e=r.randombytes_buf(r.crypto_secretbox_NONCEBYTES),n=r.crypto_secretbox_easy(t,e,r.from_hex(o));return y(e,n)}function f(t,o){if(t.length<r.crypto_secretbox_NONCEBYTES+r.crypto_secretbox_MACBYTES)throw"data too short";const e=t.slice(0,r.crypto_secretbox_NONCEBYTES),n=t.slice(r.crypto_secretbox_NONCEBYTES);return r.crypto_secretbox_open_easy(n,e,r.from_hex(o))}function u(t,o){return r.crypto_box_seal(t,r.from_hex(o))}function E(t,{privateKey:o,publicKey:e}){return r.crypto_box_seal_open(t,r.from_hex(e),r.from_hex(o))}export{E as decryptAnonymous,x as decryptCryptoBox,f as decryptSecretBox,u as encryptAnonymous,p as encryptCryptoBox,b as encryptSecretBox,s as generateCryptoBoxKeyPair,a as generateSecretBoxKey};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }require('./chunk-5WPCTUWH.cjs');var _indexjs = require('./client/index.js'); _createStarExport(_indexjs);var _indexjs3 = require('./crypto/index.js'); _createStarExport(_indexjs3);var _BaseClientjs = require('./BaseClient.js');var _helpersjs = require('./client/helpers.js'); _createStarExport(_helpersjs);var _sodiumjs = require('./sodium.js'); _createStarExport(_sodiumjs);var _storebuddyjs = require('./utils/store-buddy.js'); _createStarExport(_storebuddyjs);var _indexjs5 = require('./zeus/index.js');var _errorjs = require('./error.js'); _createStarExport(_errorjs);exports.BaseClient = _BaseClientjs.BaseClient; exports.FileContentType = _indexjs5.FileContentType; exports.InfuraNetwork = _indexjs5.InfuraNetwork; exports.Lang = _indexjs5.Lang; exports.MailType = _indexjs5.MailType; exports.PayInputType = _indexjs5.PayInputType; exports.PlanKind = _indexjs5.PlanKind; exports.Rights = _indexjs5.Rights; exports.Thunder = _indexjs5.Thunder; exports.UserRole = _indexjs5.UserRole;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }require('./chunk-XDPEU3HV.cjs');var _indexjs = require('./client/index.js'); _createStarExport(_indexjs);var _indexjs3 = require('./crypto/index.js'); _createStarExport(_indexjs3);var _BaseClientjs = require('./BaseClient.js');var _helpersjs = require('./client/helpers.js'); _createStarExport(_helpersjs);var _sodiumjs = require('./sodium.js'); _createStarExport(_sodiumjs);var _storebuddyjs = require('./utils/store-buddy.js'); _createStarExport(_storebuddyjs);var _indexjs5 = require('./zeus/index.js');var _errorjs = require('./error.js'); _createStarExport(_errorjs);exports.BaseClient = _BaseClientjs.BaseClient; exports.FileContentType = _indexjs5.FileContentType; exports.InfuraNetwork = _indexjs5.InfuraNetwork; exports.Lang = _indexjs5.Lang; exports.MailType = _indexjs5.MailType; exports.PayInputType = _indexjs5.PayInputType; exports.PlanKind = _indexjs5.PlanKind; exports.Rights = _indexjs5.Rights; exports.Thunder = _indexjs5.Thunder; exports.UserRole = _indexjs5.UserRole;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import"./chunk-KMTF2BZE.js";export*from"./client/index.js";export*from"./crypto/index.js";import{BaseClient as o}from"./BaseClient.js";export*from"./client/helpers.js";export*from"./sodium.js";export*from"./utils/store-buddy.js";import{Lang as n,FileContentType as f,MailType as m,PlanKind as x,Rights as y,PayInputType as d,UserRole as M,InfuraNetwork as c,Thunder as u}from"./zeus/index.js";export*from"./error.js";export{o as BaseClient,f as FileContentType,c as InfuraNetwork,n as Lang,m as MailType,d as PayInputType,x as PlanKind,y as Rights,u as Thunder,M as UserRole};
1
+ import"./chunk-UPFDSEKI.js";export*from"./client/index.js";export*from"./crypto/index.js";import{BaseClient as o}from"./BaseClient.js";export*from"./client/helpers.js";export*from"./sodium.js";export*from"./utils/store-buddy.js";import{Lang as n,FileContentType as f,MailType as m,PlanKind as x,Rights as y,PayInputType as d,UserRole as M,InfuraNetwork as c,Thunder as u}from"./zeus/index.js";export*from"./error.js";export{o as BaseClient,f as FileContentType,c as InfuraNetwork,n as Lang,m as MailType,d as PayInputType,x as PlanKind,y as Rights,u as Thunder,M as UserRole};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _lz4js = require('./lz4.js');var _utilsjs = require('../utils/utils.js');function y(r){if(r.byteLength>15e6)return _utilsjs.concatenate.call(void 0, new Uint8Array([0]),r);const e=new Uint8Array(_lz4js.compressBlockBound.call(void 0, r.byteLength)),n=_lz4js.compressBlockHC.call(void 0, r,e,0);return n===0?_utilsjs.concatenate.call(void 0, new Uint8Array([0]),r):_utilsjs.concatenate.call(void 0, new Uint8Array([1]),e.slice(0,n))}function U(r){const e=r.slice(1);if(r[0]===0)return e;const n=new Uint8Array(_lz4js.calcUncompressedLen.call(void 0, e)),o=_lz4js.uncompressBlock.call(void 0, e,n);return n.slice(0,o)}exports.compress = y; exports.uncompress = U;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-XDPEU3HV.cjs');var _lz4js = require('./lz4.js');var _utilsjs = require('../utils/utils.js');function y(r){if(r.byteLength>15e6)return _utilsjs.concatenate.call(void 0, new Uint8Array([0]),r);const e=new Uint8Array(_lz4js.compressBlockBound.call(void 0, r.byteLength)),n=_lz4js.compressBlockHC.call(void 0, r,e,0);return n===0?_utilsjs.concatenate.call(void 0, new Uint8Array([0]),r):_utilsjs.concatenate.call(void 0, new Uint8Array([1]),e.slice(0,n))}function U(r){const e=r.slice(1);if(r[0]===0)return e;const n=new Uint8Array(_lz4js.calcUncompressedLen.call(void 0, e)),o=_lz4js.uncompressBlock.call(void 0, e,n);return n.slice(0,o)}exports.compress = y; exports.uncompress = U;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,2 @@
1
- import"../chunk-KMTF2BZE.js";import{calcUncompressedLen as s,compressBlockBound as c,compressBlockHC as i,uncompressBlock as m}from"./lz4.js";import{concatenate as t}from"../utils/utils.js";function y(r){if(r.byteLength>15e6)return t(new Uint8Array([0]),r);const e=new Uint8Array(c(r.byteLength)),n=i(r,e,0);return n===0?t(new Uint8Array([0]),r):t(new Uint8Array([1]),e.slice(0,n))}function U(r){const e=r.slice(1);if(r[0]===0)return e;const n=new Uint8Array(s(e)),o=m(e,n);return n.slice(0,o)}export{y as compress,U as uncompress};
1
+ import"../chunk-UPFDSEKI.js";import{calcUncompressedLen as s,compressBlockBound as c,compressBlockHC as i,uncompressBlock as m}from"./lz4.js";import{concatenate as t}from"../utils/utils.js";function y(r){if(r.byteLength>15e6)return t(new Uint8Array([0]),r);const e=new Uint8Array(c(r.byteLength)),n=i(r,e,0);return n===0?t(new Uint8Array([0]),r):t(new Uint8Array([1]),e.slice(0,n))}function U(r){const e=r.slice(1);if(r[0]===0)return e;const n=new Uint8Array(s(e)),o=m(e,n);return n.slice(0,o)}export{y as compress,U as uncompress};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');// lz4-ts @license BSD-3-Clause / Copyright (c) 2015, Pierre Curto / 2016, oov. All rights reserved.
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-XDPEU3HV.cjs');// lz4-ts @license BSD-3-Clause / Copyright (c) 2015, Pierre Curto / 2016, oov. All rights reserved.
2
2
  const m=new Error("invalid source"),h=new Error("short buffer"),S=4,H=16,s=1<<H,E=s-1,I=16,P=1<<I,z=S*8-I,j=8+S,C=6,M=-1640531535;function q(t,i){const e=t>>>16&65535,r=t&65535,o=i>>>16&65535,n=i&65535;return r*n+(e*n+r*o<<16>>>0)|0}const v=Math.imul?Math.imul:q;function T(t,i){return t[i+3]|t[i+2]<<8|t[i+1]<<16|t[i]<<24}function k(t,i,e,r,o){for(let n=0;n<o;++n)t[e++]=i[r++]}function D(t){const i=t.length;if(i===0)return 0;let e=0,r=0;for(;;){let o=t[e]>>4,n=t[e]&15;if(++e===i)throw m;if(o>0){if(o===15){for(;t[e]===255;)if(o+=255,++e===i)throw m;if(o+=t[e],++e===i)throw m}if(r+=o,e+=o,e>=i)return r}if(e+=2,e>=i)throw m;const f=t[e-2]|t[e-1]<<8;if(r-f<0||f===0)throw m;if(n===15){for(;t[e]===255;)if(n+=255,++e===i)throw m;if(n+=t[e],++e===i)throw m}for(n+=4;n>=f;n-=f)r+=f;r+=n}}function F(t,i){const e=t.length,r=i.length;if(e===0)return 0;let o=0,n=0;for(;;){let f=t[o]>>4,x=t[o]&15;if(++o===e)throw m;if(f>0){if(f===15){for(;t[o]===255;)if(f+=255,++o===e)throw m;if(f+=t[o],++o===e)throw m}if(r-n<f||o+f>e)throw h;if(k(i,t,n,o,f),n+=f,o+=f,o>=e)return n}if(o+=2,o>=e)throw m;const w=t[o-2]|t[o-1]<<8;if(n-w<0||w===0)throw m;if(x===15){for(;t[o]===255;)if(x+=255,++o===e)throw m;if(x+=t[o],++o===e)throw m}if(x+=4,r-n<=x)throw h;for(;x>=w;x-=w)k(i,i,n,n-w,w),n+=w;k(i,i,n,n-w,x),n+=x}}function G(t){return t+(t/255|0)+16}function J(t,i,e){const r=t.length-j,o=i.length;if(r<=0||o===0||e>=r)return 0;let n=0,f=0;const x=new Uint32Array(P);for(;n<e;){const b=v(T(t,n),M)>>>z;x[b]=++n}let w=n,c=1<<C;for(;n<r-S;){const b=v(T(t,n),M)>>>z,l=x[b]-1;if(x[b]=n+1,l<0||n-l>>H>0||t[l]!==t[n]||t[l+1]!==t[n+1]||t[l+2]!==t[n+2]||t[l+3]!==t[n+3]){n+=c>>C,++c;continue}c=1<<C;const g=n-w,U=n-l;n+=S;let L=n;for(;n<=r&&t[n]===t[n-U];)n++;if(L=n-L,L<15?i[f]=L:i[f]=15,g<15)i[f]|=g<<4;else{if(i[f]|=240,++f===o)throw h;let y=g-15;for(;y>=255;y-=255)if(i[f]=255,++f===o)throw h;i[f]=y&255}if(++f===o||f+g>=o||(k(i,t,f,w,g),f+=g,w=n,f+=2,f>=o))throw h;if(i[f-2]=U,i[f-1]=U>>8,L>=15){for(L-=15;L>=255;L-=255)if(i[f]=255,++f===o)throw h;if(i[f]=L,++f===o)throw h}}if(w===0)return 0;let a=t.length-w;if(a<15)i[f]=a<<4;else{if(i[f]=240,++f===o)throw h;for(a-=15;a>=255;a-=255)if(i[f]=255,++f===o)throw h;i[f]=a}if(++f===o)throw h;const A=t.length-w,B=f+A;if(B>o)throw h;return B>=r?0:(k(i,t,f,w,A),f+=A,f)}function K(t,i,e){const r=t.length-j,o=i.length;if(r<=0||o===0||e>=r)return 0;let n=0,f=0;const x=new Uint32Array(P),w=new Uint32Array(s);for(;n<e;){const b=v(T(t,n),M)>>>z;w[n&E]=x[b],x[b]=++n}let c=n;for(;n<r-S;){const b=v(T(t,n),M)>>>z;let l=0,g=0;for(let u=x[b]-1;u>0&&u>n-s;u=w[u&E]-1)if(t[u+l]===t[n+l]){for(let p=0;;++p)if(t[u+p]!==t[n+p]||n+p>r){l<p&&p>=S&&(l=p,g=n-u);break}}if(w[n&E]=x[b],x[b]=n+1,l===0){++n;continue}let U=n+1;const L=n+l;for(;U<L;){const u=v(T(t,U),M)>>>z;w[U&E]=x[u],x[u]=++U}const y=n-c;if(n+=l,l-=S,l<15?i[f]=l:i[f]=15,y<15)i[f]|=y<<4;else{if(i[f]|=240,++f===o)throw h;let u=y-15;for(;u>=255;u-=255)if(i[f]=255,++f===o)throw h;i[f]=u&255}if(++f===o||f+y>=o||(k(i,t,f,c,y),f+=y,c=n,f+=2,f>=o))throw h;if(i[f-2]=g,i[f-1]=g>>8,l>=15){for(l-=15;l>=255;l-=255)if(i[f]=255,++f===o)throw h;if(i[f]=l,++f===o)throw h}}if(c===0)return 0;let a=t.length-c;if(a<15)i[f]=a<<4;else{if(i[f]=240,++f===o)throw h;for(a-=15;a>=255;a-=255)if(i[f]=255,++f===o)throw h;i[f]=a}if(++f===o)throw h;const A=t.length-c,B=f+A;if(B>o)throw h;return B>=r?0:(k(i,t,f,c,A),f+=A,f)}exports.calcUncompressedLen = D; exports.compressBlock = J; exports.compressBlockBound = G; exports.compressBlockHC = K; exports.uncompressBlock = F;
3
3
  //# sourceMappingURL=lz4.cjs.map