@secrecy/lib 1.0.0-dev.66 → 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.
- package/dist/{BaseClient-7c38f650.d.ts → BaseClient-e5e97df7.d.ts} +0 -0
- package/dist/BaseClient.cjs +1 -1
- package/dist/BaseClient.cjs.map +1 -1
- package/dist/BaseClient.d.ts +1 -1
- package/dist/BaseClient.js +1 -1
- package/dist/BaseClient.js.map +1 -1
- package/dist/PopupTools.cjs +1 -1
- package/dist/PopupTools.js +1 -1
- package/dist/ZeusThunder.cjs +1 -1
- package/dist/ZeusThunder.cjs.map +1 -1
- package/dist/ZeusThunder.js +1 -1
- package/dist/ZeusThunder.js.map +1 -1
- package/dist/cache.cjs +1 -1
- package/dist/cache.d.ts +1 -1
- package/dist/cache.js +1 -1
- package/dist/chunk-UPFDSEKI.js +2 -0
- package/dist/{chunk-KMTF2BZE.js.map → chunk-UPFDSEKI.js.map} +0 -0
- package/dist/chunk-XDPEU3HV.cjs +2 -0
- package/dist/{chunk-5WPCTUWH.cjs.map → chunk-XDPEU3HV.cjs.map} +0 -0
- package/dist/client/SecrecyAppClient.cjs +1 -1
- package/dist/client/SecrecyAppClient.cjs.map +1 -1
- package/dist/client/SecrecyAppClient.d.ts +1 -1
- package/dist/client/SecrecyAppClient.js +1 -1
- package/dist/client/SecrecyAppClient.js.map +1 -1
- package/dist/client/SecrecyCloudClient.cjs +1 -1
- package/dist/client/SecrecyCloudClient.cjs.map +1 -1
- package/dist/client/SecrecyCloudClient.d.ts +1 -1
- package/dist/client/SecrecyCloudClient.js +1 -1
- package/dist/client/SecrecyCloudClient.js.map +1 -1
- package/dist/client/SecrecyDbClient.cjs +1 -1
- package/dist/client/SecrecyDbClient.cjs.map +1 -1
- package/dist/client/SecrecyDbClient.d.ts +1 -1
- package/dist/client/SecrecyDbClient.js +1 -1
- package/dist/client/SecrecyDbClient.js.map +1 -1
- package/dist/client/SecrecyMailClient.cjs +1 -1
- package/dist/client/SecrecyMailClient.cjs.map +1 -1
- package/dist/client/SecrecyMailClient.d.ts +1 -1
- package/dist/client/SecrecyMailClient.js +1 -1
- package/dist/client/SecrecyMailClient.js.map +1 -1
- package/dist/client/SecrecyPayClient.cjs +1 -1
- package/dist/client/SecrecyPayClient.d.ts +1 -1
- package/dist/client/SecrecyPayClient.js +1 -1
- package/dist/client/SecrecyWalletClient.cjs +1 -1
- package/dist/client/SecrecyWalletClient.cjs.map +1 -1
- package/dist/client/SecrecyWalletClient.d.ts +1 -1
- package/dist/client/SecrecyWalletClient.js +1 -1
- package/dist/client/SecrecyWalletClient.js.map +1 -1
- package/dist/client/convert/file.cjs +1 -1
- package/dist/client/convert/file.js +1 -1
- package/dist/client/convert/mail.cjs +1 -1
- package/dist/client/convert/mail.js +1 -1
- package/dist/client/convert/node.cjs +1 -1
- package/dist/client/convert/node.cjs.map +1 -1
- package/dist/client/convert/node.js +1 -1
- package/dist/client/convert/node.js.map +1 -1
- package/dist/client/helpers.cjs +1 -1
- package/dist/client/helpers.d.ts +1 -1
- package/dist/client/helpers.js +1 -1
- package/dist/client/index.cjs +1 -1
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/storage.cjs +1 -1
- package/dist/client/storage.js +1 -1
- package/dist/client/types/selectors.cjs +1 -1
- package/dist/client/types/selectors.js +1 -1
- package/dist/crypto/file.cjs +1 -1
- package/dist/crypto/file.cjs.map +1 -1
- package/dist/crypto/file.js +1 -1
- package/dist/crypto/file.js.map +1 -1
- package/dist/crypto/index.cjs +1 -1
- package/dist/crypto/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/minify/index.cjs +1 -1
- package/dist/minify/index.js +1 -1
- package/dist/minify/lz4.cjs +1 -1
- package/dist/minify/lz4.js +1 -1
- package/dist/sodium.cjs +1 -1
- package/dist/sodium.cjs.map +1 -1
- package/dist/sodium.js +1 -1
- package/dist/sodium.js.map +1 -1
- package/dist/utils/store-buddy.cjs +1 -1
- package/dist/utils/store-buddy.js +1 -1
- package/dist/utils/time.cjs +1 -1
- package/dist/utils/time.js +1 -1
- package/dist/utils/utils.cjs +1 -1
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.js +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/dist/worker/md5.cjs +1 -1
- package/dist/worker/md5.cjs.map +1 -1
- package/dist/worker/md5.js +1 -1
- package/dist/worker/md5.js.map +1 -1
- package/dist/worker/sodium.cjs +1 -1
- package/dist/worker/sodium.cjs.map +1 -1
- package/dist/worker/sodium.js +1 -1
- package/dist/worker/sodium.js.map +1 -1
- package/dist/worker/workerCodes.cjs +1 -1
- package/dist/worker/workerCodes.js +1 -1
- package/dist/zeus/const.cjs +1 -1
- package/dist/zeus/const.js +1 -1
- package/dist/zeus/index.cjs +2 -2
- package/dist/zeus/index.cjs.map +1 -1
- package/dist/zeus/index.d.ts +10 -10
- package/dist/zeus/index.js +2 -2
- package/dist/zeus/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-5WPCTUWH.cjs +0 -2
- package/dist/chunk-KMTF2BZE.js +0 -2
package/dist/client/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as t,d as r,e as
|
|
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
|
package/dist/client/index.js.map
CHANGED
|
@@ -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":"
|
|
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"]}
|
package/dist/client/storage.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
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
|
package/dist/client/storage.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
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
|
|
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-
|
|
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
|
package/dist/crypto/file.cjs
CHANGED
|
@@ -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-
|
|
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
|
package/dist/crypto/file.cjs.map
CHANGED
|
@@ -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":"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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"]}
|
package/dist/crypto/file.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
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
|
package/dist/crypto/file.js.map
CHANGED
|
@@ -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"]}
|
package/dist/crypto/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
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
|
package/dist/crypto/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
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-
|
|
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.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BaseClient, C as CloudLimits, D as DownloadProgress, H as HashInfos, M as MailLimitsValues, N as NewMail, P as ProgressCallback, Q as QueryLimits, d as SecrecyClient, f as SecrecyEnv, S as SendReport, c as SuccessResponse, h as UseSecrecyParams, a as User, b as UserData, V as Value, e as encryptName, i as getSecrecyClient, g as getUrl, l as login, p as parseInfos } from './BaseClient-
|
|
1
|
+
export { B as BaseClient, C as CloudLimits, D as DownloadProgress, H as HashInfos, M as MailLimitsValues, N as NewMail, P as ProgressCallback, Q as QueryLimits, d as SecrecyClient, f as SecrecyEnv, S as SendReport, c as SuccessResponse, h as UseSecrecyParams, a as User, b as UserData, V as Value, e as encryptName, i as getSecrecyClient, g as getUrl, l as login, p as parseInfos } from './BaseClient-e5e97df7.js';
|
|
2
2
|
export { KeyPair, decryptAnonymous, decryptCryptoBox, decryptSecretBox, encryptAnonymous, encryptCryptoBox, encryptSecretBox, generateCryptoBoxKeyPair, generateSecretBoxKey } from './crypto/index.js';
|
|
3
3
|
export { Progress } from './crypto/file.js';
|
|
4
4
|
export { BaseMail, DraftMail, Mail, MailFile, MailIntegrity, MailRecipientInput, Node, NodeFull, NodeSize, PublicUser, ReceivedMail, SecrecyUserApp, SentMail, WaitingReceivedMail } from './client/types/index.js';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-
|
|
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
|
package/dist/minify/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
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
|
package/dist/minify/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
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
|
package/dist/minify/lz4.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
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
|
package/dist/minify/lz4.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-UPFDSEKI.js";// 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)}export{D as calcUncompressedLen,J as compressBlock,G as compressBlockBound,K as compressBlockHC,F as uncompressBlock};
|
|
3
3
|
//# sourceMappingURL=lz4.js.map
|
package/dist/sodium.cjs
CHANGED
|
@@ -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-
|
|
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 _libsodiumwrappers = require('libsodium-wrappers'); var _libsodiumwrappers2 = _interopRequireDefault(_libsodiumwrappers);function t(){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){yield _libsodiumwrappers2.default.ready})}exports.setup = t; exports.sodium = _libsodiumwrappers2.default;
|
|
2
2
|
//# sourceMappingURL=sodium.cjs.map
|
package/dist/sodium.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sodium.ts"],"names":["sodium","setup"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/sodium.ts"],"names":["sodium","setup","__async"],"mappings":"yCAAA,OAAOA,MAAY,qBAEnB,SAAsBC,GAAuB,QAAAC,EAAA,sBAC3C,MAAMF,EAAO,KACf","sourcesContent":["import sodium from \"libsodium-wrappers\";\n\nexport async function setup(): Promise<void> {\n await sodium.ready;\n}\n\nexport { sodium };\n"]}
|
package/dist/sodium.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-
|
|
1
|
+
import{h as o}from"./chunk-UPFDSEKI.js";import i from"libsodium-wrappers";function t(){return o(this,null,function*(){yield i.ready})}export{t as setup,i as sodium};
|
|
2
2
|
//# sourceMappingURL=sodium.js.map
|
package/dist/sodium.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sodium.ts"],"sourcesContent":["import sodium from \"libsodium-wrappers\";\n\nexport async function setup(): Promise<void> {\n await sodium.ready;\n}\n\nexport { sodium };\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/sodium.ts"],"sourcesContent":["import sodium from \"libsodium-wrappers\";\n\nexport async function setup(): Promise<void> {\n await sodium.ready;\n}\n\nexport { sodium };\n"],"mappings":"wCAAA,OAAOA,MAAY,qBAEnB,SAAsBC,GAAuB,QAAAC,EAAA,sBAC3C,MAAMF,EAAO,KACf","names":["sodium","setup","__async"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-XDPEU3HV.cjs');function d(t,o=!1){return{init(s){const e=o?sessionStorage:localStorage;return e.getItem(t)||e.setItem(t,JSON.stringify(s)),{load(){const r=e.getItem(t);if(!r)throw new Error("store-buddy: data has not been set or cannot be recognised");return JSON.parse(r)},save:r=>e.setItem(t,JSON.stringify(r)),reset:()=>e.setItem(t,JSON.stringify(s)),clear:()=>e.removeItem(t)}}}}exports.storeBuddy = d;
|
|
2
2
|
//# sourceMappingURL=store-buddy.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-UPFDSEKI.js";function d(t,o=!1){return{init(s){const e=o?sessionStorage:localStorage;return e.getItem(t)||e.setItem(t,JSON.stringify(s)),{load(){const r=e.getItem(t);if(!r)throw new Error("store-buddy: data has not been set or cannot be recognised");return JSON.parse(r)},save:r=>e.setItem(t,JSON.stringify(r)),reset:()=>e.setItem(t,JSON.stringify(s)),clear:()=>e.removeItem(t)}}}}export{d as storeBuddy};
|
|
2
2
|
//# sourceMappingURL=store-buddy.js.map
|
package/dist/utils/time.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-XDPEU3HV.cjs');const n=s=>new Promise(o=>setTimeout(o,s)),e=s=>o=>Math.round(o*s),r= exports.ms ={seconds:e(1e3),minutes:e(6e4),hours:e(36e5),days:e(864e5),weeks:e(6048e5),months:e(26298e5),years:e(315576e5)};exports.ms = r; exports.sleep = n;
|
|
2
2
|
//# sourceMappingURL=time.cjs.map
|
package/dist/utils/time.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-UPFDSEKI.js";const n=s=>new Promise(o=>setTimeout(o,s)),e=s=>o=>Math.round(o*s),r={seconds:e(1e3),minutes:e(6e4),hours:e(36e5),days:e(864e5),weeks:e(6048e5),months:e(26298e5),years:e(315576e5)};export{r as ms,n as sleep};
|
|
2
2
|
//# sourceMappingURL=time.js.map
|
package/dist/utils/utils.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXDPEU3HVcjs = require('../chunk-XDPEU3HV.cjs');function m(...n){let e=0;for(const o of n)e+=o.length;const t=new Uint8Array(e);let i=0;for(const o of n)t.set(o,i),i+=o.length;return t}function*f(n){let e=0;for(const t of n)yield[e,t],e++}function*d(n,e){for(let t=0;t<n.length;t+=e)yield n.slice(t,t+e)}const h=(n,e)=>_chunkXDPEU3HVcjs.h.call(void 0, void 0,null,function*(){const t=e.slice(0,n),i=e.slice(n),o=[],c=(s,r,u)=>_chunkXDPEU3HVcjs.h.call(void 0, void 0,null,function*(){o[r]=yield s(),yield u()}),l=()=>_chunkXDPEU3HVcjs.h.call(void 0, void 0,null,function*(){const s=e.length-i.length,r=i.shift();r!==void 0&&(yield c(r,s,l))});return yield Promise.all(t.map((s,r)=>c(s,r,l))),o});exports.chunks = d; exports.concatenate = m; exports.enumerate = f; exports.promiseAllLimit = h;
|
|
2
2
|
//# sourceMappingURL=utils.cjs.map
|
package/dist/utils/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/utils.ts"],"names":["concatenate","arrays","totalLength","arr","result","offset","enumerate","iterable","i","x","chunks","n","promiseAllLimit","list","head","tail","execute","promise","runNext"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utils/utils.ts"],"names":["concatenate","arrays","totalLength","arr","result","offset","enumerate","iterable","i","x","chunks","n","promiseAllLimit","list","__async","head","tail","execute","promise","runNext"],"mappings":"0CAAO,SAASA,KAAeC,EAAkC,CAC/D,IAAIC,EAAc,EAClB,UAAWC,KAAOF,EAChBC,GAAeC,EAAI,OAErB,MAAMC,EAAS,IAAI,WAAWF,CAAW,EACzC,IAAIG,EAAS,EACb,UAAWF,KAAOF,EAChBG,EAAO,IAAID,EAAKE,CAAM,EACtBA,GAAUF,EAAI,OAEhB,OAAOC,CACT,CAEO,SAAUE,EACfC,EAC+B,CAC/B,IAAIC,EAAI,EAER,UAAWC,KAAKF,EACd,KAAM,CAACC,EAAGC,CAAC,EACXD,GAEJ,CAEO,SAAUE,EACfP,EACAQ,EACsC,CACtC,QAASH,EAAI,EAAGA,EAAIL,EAAI,OAAQK,GAAKG,EACnC,MAAMR,EAAI,MAAMK,EAAGA,EAAIG,CAAC,CAE5B,CAEO,MAAMC,EAAkB,CAC7B,EACAC,IACiBC,EAAA,wBACjB,MAAMC,EAAOF,EAAK,MAAM,EAAG,CAAC,EACtBG,EAAOH,EAAK,MAAM,CAAC,EACnBT,EAAc,CAAC,EACfa,EAAU,CACdC,EACAV,EACAW,IACkBL,EAAA,wBAClBV,EAAOI,GAAK,MAAMU,EAAQ,EAC1B,MAAMC,EAAQ,CAChB,GACMA,EAAU,IAA2BL,EAAA,wBACzC,MAAMN,EAAIK,EAAK,OAASG,EAAK,OACvBE,EAAUF,EAAK,MAAM,EACvBE,IAAY,SACd,MAAMD,EAAQC,EAASV,EAAGW,CAAO,EAErC,GACA,aAAM,QAAQ,IAAIJ,EAAK,IAAI,CAACG,EAASV,IAAMS,EAAQC,EAASV,EAAGW,CAAO,CAAC,CAAC,EACjEf,CACT","sourcesContent":["export function concatenate(...arrays: Uint8Array[]): Uint8Array {\n let totalLength = 0;\n for (const arr of arrays) {\n totalLength += arr.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function* enumerate<T>(\n iterable: Iterable<T>\n): IterableIterator<[number, T]> {\n let i = 0;\n\n for (const x of iterable) {\n yield [i, x];\n i++;\n }\n}\n\nexport function* chunks(\n arr: Uint8Array,\n n: number\n): Generator<Uint8Array, void, unknown> {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nexport const promiseAllLimit = async <T>(\n n: number,\n list: (() => Promise<T>)[]\n): Promise<T[]> => {\n const head = list.slice(0, n);\n const tail = list.slice(n);\n const result: T[] = [];\n const execute = async (\n promise: () => Promise<T>,\n i: number,\n runNext: () => Promise<void>\n ): Promise<void> => {\n result[i] = await promise();\n await runNext();\n };\n const runNext = async (): Promise<void> => {\n const i = list.length - tail.length;\n const promise = tail.shift();\n if (promise !== undefined) {\n await execute(promise, i, runNext);\n }\n };\n await Promise.all(head.map((promise, i) => execute(promise, i, runNext)));\n return result;\n};\n"]}
|
package/dist/utils/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import{h as a}from"../chunk-UPFDSEKI.js";function m(...n){let e=0;for(const o of n)e+=o.length;const t=new Uint8Array(e);let i=0;for(const o of n)t.set(o,i),i+=o.length;return t}function*f(n){let e=0;for(const t of n)yield[e,t],e++}function*d(n,e){for(let t=0;t<n.length;t+=e)yield n.slice(t,t+e)}const h=(n,e)=>a(void 0,null,function*(){const t=e.slice(0,n),i=e.slice(n),o=[],c=(s,r,u)=>a(void 0,null,function*(){o[r]=yield s(),yield u()}),l=()=>a(void 0,null,function*(){const s=e.length-i.length,r=i.shift();r!==void 0&&(yield c(r,s,l))});return yield Promise.all(t.map((s,r)=>c(s,r,l))),o});export{d as chunks,m as concatenate,f as enumerate,h as promiseAllLimit};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/utils.ts"],"sourcesContent":["export function concatenate(...arrays: Uint8Array[]): Uint8Array {\n let totalLength = 0;\n for (const arr of arrays) {\n totalLength += arr.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function* enumerate<T>(\n iterable: Iterable<T>\n): IterableIterator<[number, T]> {\n let i = 0;\n\n for (const x of iterable) {\n yield [i, x];\n i++;\n }\n}\n\nexport function* chunks(\n arr: Uint8Array,\n n: number\n): Generator<Uint8Array, void, unknown> {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nexport const promiseAllLimit = async <T>(\n n: number,\n list: (() => Promise<T>)[]\n): Promise<T[]> => {\n const head = list.slice(0, n);\n const tail = list.slice(n);\n const result: T[] = [];\n const execute = async (\n promise: () => Promise<T>,\n i: number,\n runNext: () => Promise<void>\n ): Promise<void> => {\n result[i] = await promise();\n await runNext();\n };\n const runNext = async (): Promise<void> => {\n const i = list.length - tail.length;\n const promise = tail.shift();\n if (promise !== undefined) {\n await execute(promise, i, runNext);\n }\n };\n await Promise.all(head.map((promise, i) => execute(promise, i, runNext)));\n return result;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utils/utils.ts"],"sourcesContent":["export function concatenate(...arrays: Uint8Array[]): Uint8Array {\n let totalLength = 0;\n for (const arr of arrays) {\n totalLength += arr.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function* enumerate<T>(\n iterable: Iterable<T>\n): IterableIterator<[number, T]> {\n let i = 0;\n\n for (const x of iterable) {\n yield [i, x];\n i++;\n }\n}\n\nexport function* chunks(\n arr: Uint8Array,\n n: number\n): Generator<Uint8Array, void, unknown> {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nexport const promiseAllLimit = async <T>(\n n: number,\n list: (() => Promise<T>)[]\n): Promise<T[]> => {\n const head = list.slice(0, n);\n const tail = list.slice(n);\n const result: T[] = [];\n const execute = async (\n promise: () => Promise<T>,\n i: number,\n runNext: () => Promise<void>\n ): Promise<void> => {\n result[i] = await promise();\n await runNext();\n };\n const runNext = async (): Promise<void> => {\n const i = list.length - tail.length;\n const promise = tail.shift();\n if (promise !== undefined) {\n await execute(promise, i, runNext);\n }\n };\n await Promise.all(head.map((promise, i) => execute(promise, i, runNext)));\n return result;\n};\n"],"mappings":"yCAAO,SAASA,KAAeC,EAAkC,CAC/D,IAAIC,EAAc,EAClB,UAAWC,KAAOF,EAChBC,GAAeC,EAAI,OAErB,MAAMC,EAAS,IAAI,WAAWF,CAAW,EACzC,IAAIG,EAAS,EACb,UAAWF,KAAOF,EAChBG,EAAO,IAAID,EAAKE,CAAM,EACtBA,GAAUF,EAAI,OAEhB,OAAOC,CACT,CAEO,SAAUE,EACfC,EAC+B,CAC/B,IAAIC,EAAI,EAER,UAAWC,KAAKF,EACd,KAAM,CAACC,EAAGC,CAAC,EACXD,GAEJ,CAEO,SAAUE,EACfP,EACAQ,EACsC,CACtC,QAASH,EAAI,EAAGA,EAAIL,EAAI,OAAQK,GAAKG,EACnC,MAAMR,EAAI,MAAMK,EAAGA,EAAIG,CAAC,CAE5B,CAEO,MAAMC,EAAkB,CAC7B,EACAC,IACiBC,EAAA,wBACjB,MAAMC,EAAOF,EAAK,MAAM,EAAG,CAAC,EACtBG,EAAOH,EAAK,MAAM,CAAC,EACnBT,EAAc,CAAC,EACfa,EAAU,CACdC,EACAV,EACAW,IACkBL,EAAA,wBAClBV,EAAOI,GAAK,MAAMU,EAAQ,EAC1B,MAAMC,EAAQ,CAChB,GACMA,EAAU,IAA2BL,EAAA,wBACzC,MAAMN,EAAIK,EAAK,OAASG,EAAK,OACvBE,EAAUF,EAAK,MAAM,EACvBE,IAAY,SACd,MAAMD,EAAQC,EAASV,EAAGW,CAAO,EAErC,GACA,aAAM,QAAQ,IAAIJ,EAAK,IAAI,CAACG,EAASV,IAAMS,EAAQC,EAASV,EAAGW,CAAO,CAAC,CAAC,EACjEf,CACT","names":["concatenate","arrays","totalLength","arr","result","offset","enumerate","iterable","i","x","chunks","n","promiseAllLimit","list","__async","head","tail","execute","promise","runNext"]}
|
package/dist/worker/md5.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXDPEU3HVcjs = require('../chunk-XDPEU3HV.cjs');var _workerCodesjs = require('./workerCodes.js');function d(s){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){return new Promise((o,r)=>{const e=new Worker(URL.createObjectURL(new Blob([_workerCodesjs.workerMd5Script],{type:"text/javascript"})));e.addEventListener("error",r),e.addEventListener("messageerror",r),e.addEventListener("message",({data:t})=>{if(t.event==="md5-result")return e.terminate(),o(t.data)}),e.postMessage({event:"md5",data:s})})})}exports.md5 = d;
|
|
2
2
|
//# sourceMappingURL=md5.cjs.map
|
package/dist/worker/md5.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/worker/md5.ts"],"names":["workerMd5Script","md5","data","resolve","reject","worker"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/worker/md5.ts"],"names":["workerMd5Script","md5","data","__async","resolve","reject","worker"],"mappings":"0CAAA,OAAS,mBAAAA,MAAuB,mBAEhC,SAAsBC,EAAIC,EAAmC,QAAAC,EAAA,sBAC3D,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,MAAMC,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACN,CAAe,EAAG,CAAE,KAAM,iBAAkB,CAAC,CACzD,CACF,EACAM,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAJ,CAAK,IAAM,CAC/C,GAAIA,EAAK,QAAU,aACjB,OAAAI,EAAO,UAAU,EACVF,EAAQF,EAAK,IAAI,CAE5B,CAAC,EAEDI,EAAO,YAAY,CACjB,MAAO,MACP,KAAAJ,CACF,CAAC,CACH,CAAC,CACH","sourcesContent":["import { workerMd5Script } from \"./workerCodes.js\";\n\nexport async function md5(data: Uint8Array): Promise<string> {\n return new Promise((resolve, reject) => {\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerMd5Script], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n if (data.event === \"md5-result\") {\n worker.terminate();\n return resolve(data.data);\n }\n });\n\n worker.postMessage({\n event: \"md5\",\n data\n });\n });\n}\n"]}
|
package/dist/worker/md5.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import{h as n}from"../chunk-UPFDSEKI.js";import{workerMd5Script as i}from"./workerCodes.js";function d(s){return n(this,null,function*(){return new Promise((o,r)=>{const e=new Worker(URL.createObjectURL(new Blob([i],{type:"text/javascript"})));e.addEventListener("error",r),e.addEventListener("messageerror",r),e.addEventListener("message",({data:t})=>{if(t.event==="md5-result")return e.terminate(),o(t.data)}),e.postMessage({event:"md5",data:s})})})}export{d as md5};
|
|
2
2
|
//# sourceMappingURL=md5.js.map
|
package/dist/worker/md5.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/worker/md5.ts"],"sourcesContent":["import { workerMd5Script } from \"./workerCodes.js\";\n\nexport async function md5(data: Uint8Array): Promise<string> {\n return new Promise((resolve, reject) => {\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerMd5Script], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n if (data.event === \"md5-result\") {\n worker.terminate();\n return resolve(data.data);\n }\n });\n\n worker.postMessage({\n event: \"md5\",\n data\n });\n });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/worker/md5.ts"],"sourcesContent":["import { workerMd5Script } from \"./workerCodes.js\";\n\nexport async function md5(data: Uint8Array): Promise<string> {\n return new Promise((resolve, reject) => {\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerMd5Script], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n if (data.event === \"md5-result\") {\n worker.terminate();\n return resolve(data.data);\n }\n });\n\n worker.postMessage({\n event: \"md5\",\n data\n });\n });\n}\n"],"mappings":"yCAAA,OAAS,mBAAAA,MAAuB,mBAEhC,SAAsBC,EAAIC,EAAmC,QAAAC,EAAA,sBAC3D,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,MAAMC,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACN,CAAe,EAAG,CAAE,KAAM,iBAAkB,CAAC,CACzD,CACF,EACAM,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAJ,CAAK,IAAM,CAC/C,GAAIA,EAAK,QAAU,aACjB,OAAAI,EAAO,UAAU,EACVF,EAAQF,EAAK,IAAI,CAE5B,CAAC,EAEDI,EAAO,YAAY,CACjB,MAAO,MACP,KAAAJ,CACF,CAAC,CACH,CAAC,CACH","names":["workerMd5Script","md5","data","__async","resolve","reject","worker"]}
|
package/dist/worker/sodium.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXDPEU3HVcjs = require('../chunk-XDPEU3HV.cjs');var _workerCodesjs = require('./workerCodes.js');function s(i,c,e,n){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([_workerCodesjs.workerSodiumScript],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"encrypt",data:c,key:i};t.postMessage(r,[r.data.buffer]);break}case"encrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"encrypt-result":return t.terminate(),d(o.data)}})})})}function v(i,c,e,n){return _chunkXDPEU3HVcjs.h.call(void 0, this,null,function*(){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([_workerCodesjs.workerSodiumScript],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"decrypt",key:i,data:c};t.postMessage(r,[r.data.buffer]);break}case"decrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"decrypt-result":return t.terminate(),d(o.data)}})})})}exports.decrypt = v; exports.encrypt = s;
|
|
2
2
|
//# sourceMappingURL=sodium.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/worker/sodium.ts"],"names":["workerSodiumScript","encrypt","key","dataToEncrypt","progress","signal","resolve","reject","worker","data","postData","abortError","decrypt","dataToDecrypt"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/worker/sodium.ts"],"names":["workerSodiumScript","encrypt","key","dataToEncrypt","progress","signal","__async","resolve","reject","worker","data","postData","abortError","decrypt","dataToDecrypt"],"mappings":"0CACA,OAAS,sBAAAA,MAA0B,mBAenC,SAAsBC,EACpBC,EACAC,EACAC,EACAC,EACwB,QAAAC,EAAA,sBACxB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCJ,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOD,EAAc,UACvB,GACA,MAAMM,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACT,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAS,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAC9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,KAAMR,EACN,IAAAD,CACF,EACAO,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIN,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMO,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAR,GAAA,MAAAA,EAAWM,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH,GAEA,SAAsBG,EACpBX,EACAY,EACAV,EACAC,EACqB,QAAAC,EAAA,sBACrB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCJ,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOU,EAAc,UACvB,GACA,MAAML,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACT,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAS,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,IAAAT,EACA,KAAMY,CACR,EACAL,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIN,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMO,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAR,GAAA,MAAAA,EAAWM,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH","sourcesContent":["import type { EncryptedFile, Progress } from \"../crypto/file.js\";\nimport { workerSodiumScript } from \"./workerCodes.js\";\n\n// const ensureNonDetachedUniqueBuffers = (\n// values: Transferable[]\n// ): Set<Transferable> =>\n// new Set(\n// values.filter(v => {\n// if (v instanceof ArrayBuffer) {\n// return v.byteLength === 0;\n// } else {\n// return true;\n// }\n// })\n// );\n\nexport async function encrypt(\n key: Uint8Array,\n dataToEncrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<EncryptedFile> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToEncrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"encrypt\",\n data: dataToEncrypt,\n key\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"encrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"encrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n\nexport async function decrypt(\n key: Uint8Array,\n dataToDecrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToDecrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"decrypt\",\n key,\n data: dataToDecrypt\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"decrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"decrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n"]}
|
package/dist/worker/sodium.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import{h as y}from"../chunk-UPFDSEKI.js";import{workerSodiumScript as b}from"./workerCodes.js";function s(i,c,e,n){return y(this,null,function*(){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([b],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"encrypt",data:c,key:i};t.postMessage(r,[r.data.buffer]);break}case"encrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"encrypt-result":return t.terminate(),d(o.data)}})})})}function v(i,c,e,n){return y(this,null,function*(){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([b],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"decrypt",key:i,data:c};t.postMessage(r,[r.data.buffer]);break}case"decrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"decrypt-result":return t.terminate(),d(o.data)}})})})}export{v as decrypt,s as encrypt};
|
|
2
2
|
//# sourceMappingURL=sodium.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/worker/sodium.ts"],"sourcesContent":["import type { EncryptedFile, Progress } from \"../crypto/file.js\";\nimport { workerSodiumScript } from \"./workerCodes.js\";\n\n// const ensureNonDetachedUniqueBuffers = (\n// values: Transferable[]\n// ): Set<Transferable> =>\n// new Set(\n// values.filter(v => {\n// if (v instanceof ArrayBuffer) {\n// return v.byteLength === 0;\n// } else {\n// return true;\n// }\n// })\n// );\n\nexport async function encrypt(\n key: Uint8Array,\n dataToEncrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<EncryptedFile> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToEncrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"encrypt\",\n data: dataToEncrypt,\n key\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"encrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"encrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n\nexport async function decrypt(\n key: Uint8Array,\n dataToDecrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToDecrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"decrypt\",\n key,\n data: dataToDecrypt\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"decrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"decrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/worker/sodium.ts"],"sourcesContent":["import type { EncryptedFile, Progress } from \"../crypto/file.js\";\nimport { workerSodiumScript } from \"./workerCodes.js\";\n\n// const ensureNonDetachedUniqueBuffers = (\n// values: Transferable[]\n// ): Set<Transferable> =>\n// new Set(\n// values.filter(v => {\n// if (v instanceof ArrayBuffer) {\n// return v.byteLength === 0;\n// } else {\n// return true;\n// }\n// })\n// );\n\nexport async function encrypt(\n key: Uint8Array,\n dataToEncrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<EncryptedFile> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToEncrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"encrypt\",\n data: dataToEncrypt,\n key\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"encrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"encrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n\nexport async function decrypt(\n key: Uint8Array,\n dataToDecrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToDecrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"decrypt\",\n key,\n data: dataToDecrypt\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"decrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"decrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n"],"mappings":"yCACA,OAAS,sBAAAA,MAA0B,mBAenC,SAAsBC,EACpBC,EACAC,EACAC,EACAC,EACwB,QAAAC,EAAA,sBACxB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCJ,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOD,EAAc,UACvB,GACA,MAAMM,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACT,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAS,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAC9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,KAAMR,EACN,IAAAD,CACF,EACAO,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIN,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMO,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAR,GAAA,MAAAA,EAAWM,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH,GAEA,SAAsBG,EACpBX,EACAY,EACAV,EACAC,EACqB,QAAAC,EAAA,sBACrB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCJ,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOU,EAAc,UACvB,GACA,MAAML,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACT,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAS,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,IAAAT,EACA,KAAMY,CACR,EACAL,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIN,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMO,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAR,GAAA,MAAAA,EAAWM,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH","names":["workerSodiumScript","encrypt","key","dataToEncrypt","progress","signal","__async","resolve","reject","worker","data","postData","abortError","decrypt","dataToDecrypt"]}
|