securequ 1.1.5 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/client/Base.d.ts +18 -18
  2. package/client/Base.js +147 -1
  3. package/client/Base.js.map +1 -1
  4. package/client/Base.mjs +147 -1
  5. package/client/Base.mjs.map +1 -1
  6. package/client/index.d.ts +8 -8
  7. package/client/index.js +139 -1
  8. package/client/index.js.map +1 -1
  9. package/client/index.mjs +139 -1
  10. package/client/index.mjs.map +1 -1
  11. package/client/types.d.ts +34 -34
  12. package/include/File.js +60 -1
  13. package/include/File.js.map +1 -1
  14. package/include/File.mjs +60 -1
  15. package/include/File.mjs.map +1 -1
  16. package/include/FileScaner.js +95 -1
  17. package/include/FileScaner.js.map +1 -1
  18. package/include/FileScaner.mjs +95 -1
  19. package/include/FileScaner.mjs.map +1 -1
  20. package/include/compress.d.ts +9 -9
  21. package/include/compress.js +19 -1
  22. package/include/compress.js.map +1 -1
  23. package/include/compress.mjs +19 -1
  24. package/include/compress.mjs.map +1 -1
  25. package/include/crypto.d.ts +15 -15
  26. package/include/crypto.js +55 -1
  27. package/include/crypto.js.map +1 -1
  28. package/include/crypto.mjs +55 -1
  29. package/include/crypto.mjs.map +1 -1
  30. package/index.js +1 -1
  31. package/index.mjs +1 -1
  32. package/package.json +1 -1
  33. package/readme.md +312 -312
  34. package/server/Base.d.ts +20 -20
  35. package/server/Base.js +102 -1
  36. package/server/Base.js.map +1 -1
  37. package/server/Base.mjs +102 -1
  38. package/server/Base.mjs.map +1 -1
  39. package/server/Router.d.ts +7 -7
  40. package/server/Router.js +30 -1
  41. package/server/Router.js.map +1 -1
  42. package/server/Router.mjs +30 -1
  43. package/server/Router.mjs.map +1 -1
  44. package/server/index.d.ts +5 -5
  45. package/server/index.js +179 -1
  46. package/server/index.js.map +1 -1
  47. package/server/index.mjs +179 -1
  48. package/server/index.mjs.map +1 -1
  49. package/server/types.d.ts +72 -72
@@ -1 +1 @@
1
- {"version":3,"file":"FileScaner.js","sources":["../../src/include/FileScaner.ts"],"sourcesContent":["export type FileScanerResult = {\r\n valid: boolean;\r\n ext?: string;\r\n mime?: string;\r\n};\r\n\r\n/**\r\n * Mega raw file-type detection from first chunk (magic bytes)\r\n * Supports 100+ common file types: images, audio, video, docs, archives, installers, fonts, binaries.\r\n */\r\nexport function fileScaner(chunk: Uint8Array | Buffer): FileScanerResult | void {\r\n if (!chunk || chunk.length < 4) return { valid: false };\r\n const match = (pattern: number[]) => pattern.every((b, i) => chunk[i] === b);\r\n\r\n // --- Images ---\r\n if (chunk.length >= 8) {\r\n if (match([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) return { valid: true, ext: \"png\", mime: \"image/png\" };\r\n if (match([0x47, 0x49, 0x46, 0x38])) return { valid: true, ext: \"gif\", mime: \"image/gif\" };\r\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WEBP\") return { valid: true, ext: \"webp\", mime: \"image/webp\" };\r\n }\r\n if (match([0xFF, 0xD8, 0xFF])) return { valid: true, ext: \"jpg\", mime: \"image/jpeg\" };\r\n if (match([0x42, 0x4D])) return { valid: true, ext: \"bmp\", mime: \"image/bmp\" };\r\n if (match([0x49, 0x49, 0x2A, 0x00]) || match([0x4D, 0x4D, 0x00, 0x2A])) return { valid: true, ext: \"tif\", mime: \"image/tiff\" };\r\n if (match([0x00, 0x00, 0x01, 0x00])) return { valid: true, ext: \"ico\", mime: \"image/x-icon\" };\r\n if (match([0x00, 0x00, 0x02, 0x00])) return { valid: true, ext: \"cur\", mime: \"image/x-icon\" };\r\n\r\n // --- Audio ---\r\n if (match([0x49, 0x44, 0x33])) return { valid: true, ext: \"mp3\", mime: \"audio/mpeg\" };\r\n if (match([0x66, 0x4C, 0x61, 0x43])) return { valid: true, ext: \"flac\", mime: \"audio/flac\" };\r\n if (match([0x4F, 0x67, 0x67, 0x53])) return { valid: true, ext: \"ogg\", mime: \"audio/ogg\" };\r\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WAVE\") return { valid: true, ext: \"wav\", mime: \"audio/wav\" };\r\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mp4a\", mime: \"audio/mp4\" };\r\n\r\n // --- Video ---\r\n if (match([0x00, 0x00, 0x00, 0x18]) && chunk.slice(4, 8).toString() === \"ftyp\") return { valid: true, ext: \"mp4\", mime: \"video/mp4\" };\r\n if (match([0x1A, 0x45, 0xDF, 0xA3])) return { valid: true, ext: \"mkv\", mime: \"video/x-matroska\" };\r\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"AVI \") return { valid: true, ext: \"avi\", mime: \"video/x-msvideo\" };\r\n if (match([0x00, 0x00, 0x01, 0xBA])) return { valid: true, ext: \"mpeg\", mime: \"video/mpeg\" };\r\n if (match([0x47, 0x40, 0x00, 0x10])) return { valid: true, ext: \"ts\", mime: \"video/MP2T\" };\r\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mov\", mime: \"video/quicktime\" };\r\n\r\n // --- Archives ---\r\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"zip\", mime: \"application/zip\" };\r\n if (match([0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00])) return { valid: true, ext: \"rar\", mime: \"application/x-rar-compressed\" };\r\n if (match([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) return { valid: true, ext: \"7z\", mime: \"application/x-7z-compressed\" };\r\n if (match([0x1F, 0x8B])) return { valid: true, ext: \"gz\", mime: \"application/gzip\" };\r\n if (match([0x42, 0x5A, 0x68])) return { valid: true, ext: \"bz2\", mime: \"application/x-bzip2\" };\r\n\r\n // --- Documents ---\r\n if (match([0x25, 0x50, 0x44, 0x46])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" };\r\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) return { valid: true, ext: \"msi\", mime: \"application/vnd.ms-installer\" };\r\n if (match([0x4D, 0x5A])) return { valid: true, ext: \"exe\", mime: \"application/vnd.microsoft.portable-executable\" };\r\n if (match([0x09, 0x08, 0x10, 0x00])) return { valid: true, ext: \"doc\", mime: \"application/msword\" };\r\n if (match([0x09, 0x08, 0x10, 0x00, 0x00, 0x06, 0x05])) return { valid: true, ext: \"xls\", mime: \"application/vnd.ms-excel\" };\r\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1])) return { valid: true, ext: \"ppt\", mime: \"application/vnd.ms-powerpoint\" };\r\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"docx\", mime: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" };\r\n\r\n // --- Fonts ---\r\n if (match([0x00, 0x01, 0x00, 0x00])) return { valid: true, ext: \"ttf\", mime: \"font/ttf\" };\r\n if (match([0x4F, 0x54, 0x54, 0x4F])) return { valid: true, ext: \"otf\", mime: \"font/otf\" };\r\n\r\n // --- Scripts / Binary ---\r\n if (match([0x23, 0x21])) return { valid: true, ext: \"sh\", mime: \"application/x-sh\" }; // shell script\r\n if (match([0x7F, 0x45, 0x4C, 0x46])) return { valid: true, ext: \"elf\", mime: \"application/x-elf\" }; // Linux executable\r\n\r\n // --- Others / fallback ---\r\n if (match([0x46, 0x4C, 0x56])) return { valid: true, ext: \"flv\", mime: \"video/x-flv\" };\r\n if (match([0x50, 0x4E, 0x44, 0x52])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" }; // alternate PDF\r\n if (match([0x42, 0x50, 0x47, 0x0D])) return { valid: true, ext: \"bpg\", mime: \"image/bpg\" }; // BPG\r\n\r\n}\r\n\r\nexport default fileScaner;"],"names":["fileScaner","chunk","length","valid","match","pattern","every","b","i","ext","mime","slice","toString","Object","defineProperty","exports","value","default"],"mappings":"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"}
1
+ {"version":3,"file":"FileScaner.js","sources":["../../src/include/FileScaner.ts"],"sourcesContent":["export type FileScanerResult = {\n valid: boolean;\n ext?: string;\n mime?: string;\n};\n\n/**\n * Mega raw file-type detection from first chunk (magic bytes)\n * Supports 100+ common file types: images, audio, video, docs, archives, installers, fonts, binaries.\n */\nexport function fileScaner(chunk: Uint8Array | Buffer): FileScanerResult | void {\n if (!chunk || chunk.length < 4) return { valid: false };\n const match = (pattern: number[]) => pattern.every((b, i) => chunk[i] === b);\n\n // --- Images ---\n if (chunk.length >= 8) {\n if (match([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) return { valid: true, ext: \"png\", mime: \"image/png\" };\n if (match([0x47, 0x49, 0x46, 0x38])) return { valid: true, ext: \"gif\", mime: \"image/gif\" };\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WEBP\") return { valid: true, ext: \"webp\", mime: \"image/webp\" };\n }\n if (match([0xFF, 0xD8, 0xFF])) return { valid: true, ext: \"jpg\", mime: \"image/jpeg\" };\n if (match([0x42, 0x4D])) return { valid: true, ext: \"bmp\", mime: \"image/bmp\" };\n if (match([0x49, 0x49, 0x2A, 0x00]) || match([0x4D, 0x4D, 0x00, 0x2A])) return { valid: true, ext: \"tif\", mime: \"image/tiff\" };\n if (match([0x00, 0x00, 0x01, 0x00])) return { valid: true, ext: \"ico\", mime: \"image/x-icon\" };\n if (match([0x00, 0x00, 0x02, 0x00])) return { valid: true, ext: \"cur\", mime: \"image/x-icon\" };\n\n // --- Audio ---\n if (match([0x49, 0x44, 0x33])) return { valid: true, ext: \"mp3\", mime: \"audio/mpeg\" };\n if (match([0x66, 0x4C, 0x61, 0x43])) return { valid: true, ext: \"flac\", mime: \"audio/flac\" };\n if (match([0x4F, 0x67, 0x67, 0x53])) return { valid: true, ext: \"ogg\", mime: \"audio/ogg\" };\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WAVE\") return { valid: true, ext: \"wav\", mime: \"audio/wav\" };\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mp4a\", mime: \"audio/mp4\" };\n\n // --- Video ---\n if (match([0x00, 0x00, 0x00, 0x18]) && chunk.slice(4, 8).toString() === \"ftyp\") return { valid: true, ext: \"mp4\", mime: \"video/mp4\" };\n if (match([0x1A, 0x45, 0xDF, 0xA3])) return { valid: true, ext: \"mkv\", mime: \"video/x-matroska\" };\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"AVI \") return { valid: true, ext: \"avi\", mime: \"video/x-msvideo\" };\n if (match([0x00, 0x00, 0x01, 0xBA])) return { valid: true, ext: \"mpeg\", mime: \"video/mpeg\" };\n if (match([0x47, 0x40, 0x00, 0x10])) return { valid: true, ext: \"ts\", mime: \"video/MP2T\" };\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mov\", mime: \"video/quicktime\" };\n\n // --- Archives ---\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"zip\", mime: \"application/zip\" };\n if (match([0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00])) return { valid: true, ext: \"rar\", mime: \"application/x-rar-compressed\" };\n if (match([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) return { valid: true, ext: \"7z\", mime: \"application/x-7z-compressed\" };\n if (match([0x1F, 0x8B])) return { valid: true, ext: \"gz\", mime: \"application/gzip\" };\n if (match([0x42, 0x5A, 0x68])) return { valid: true, ext: \"bz2\", mime: \"application/x-bzip2\" };\n\n // --- Documents ---\n if (match([0x25, 0x50, 0x44, 0x46])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" };\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) return { valid: true, ext: \"msi\", mime: \"application/vnd.ms-installer\" };\n if (match([0x4D, 0x5A])) return { valid: true, ext: \"exe\", mime: \"application/vnd.microsoft.portable-executable\" };\n if (match([0x09, 0x08, 0x10, 0x00])) return { valid: true, ext: \"doc\", mime: \"application/msword\" };\n if (match([0x09, 0x08, 0x10, 0x00, 0x00, 0x06, 0x05])) return { valid: true, ext: \"xls\", mime: \"application/vnd.ms-excel\" };\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1])) return { valid: true, ext: \"ppt\", mime: \"application/vnd.ms-powerpoint\" };\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"docx\", mime: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" };\n\n // --- Fonts ---\n if (match([0x00, 0x01, 0x00, 0x00])) return { valid: true, ext: \"ttf\", mime: \"font/ttf\" };\n if (match([0x4F, 0x54, 0x54, 0x4F])) return { valid: true, ext: \"otf\", mime: \"font/otf\" };\n\n // --- Scripts / Binary ---\n if (match([0x23, 0x21])) return { valid: true, ext: \"sh\", mime: \"application/x-sh\" }; // shell script\n if (match([0x7F, 0x45, 0x4C, 0x46])) return { valid: true, ext: \"elf\", mime: \"application/x-elf\" }; // Linux executable\n\n // --- Others / fallback ---\n if (match([0x46, 0x4C, 0x56])) return { valid: true, ext: \"flv\", mime: \"video/x-flv\" };\n if (match([0x50, 0x4E, 0x44, 0x52])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" }; // alternate PDF\n if (match([0x42, 0x50, 0x47, 0x0D])) return { valid: true, ext: \"bpg\", mime: \"image/bpg\" }; // BPG\n\n}\n\nexport default fileScaner;"],"names":[],"mappings":"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"}
@@ -1 +1,95 @@
1
- function i(i){if(!i||i.length<4)return{valid:!1};const e=e=>e.every((e,m)=>i[m]===e);if(i.length>=8){if(e([137,80,78,71,13,10,26,10]))return{valid:!0,ext:"png",mime:"image/png"};if(e([71,73,70,56]))return{valid:!0,ext:"gif",mime:"image/gif"};if(e([82,73,70,70])&&"WEBP"===i.slice(8,12).toString())return{valid:!0,ext:"webp",mime:"image/webp"}}return e([255,216,255])?{valid:!0,ext:"jpg",mime:"image/jpeg"}:e([66,77])?{valid:!0,ext:"bmp",mime:"image/bmp"}:e([73,73,42,0])||e([77,77,0,42])?{valid:!0,ext:"tif",mime:"image/tiff"}:e([0,0,1,0])?{valid:!0,ext:"ico",mime:"image/x-icon"}:e([0,0,2,0])?{valid:!0,ext:"cur",mime:"image/x-icon"}:e([73,68,51])?{valid:!0,ext:"mp3",mime:"audio/mpeg"}:e([102,76,97,67])?{valid:!0,ext:"flac",mime:"audio/flac"}:e([79,103,103,83])?{valid:!0,ext:"ogg",mime:"audio/ogg"}:e([82,73,70,70])&&"WAVE"===i.slice(8,12).toString()?{valid:!0,ext:"wav",mime:"audio/wav"}:e([102,116,121,112,109,112,52,50])?{valid:!0,ext:"mp4a",mime:"audio/mp4"}:e([0,0,0,24])&&"ftyp"===i.slice(4,8).toString()?{valid:!0,ext:"mp4",mime:"video/mp4"}:e([26,69,223,163])?{valid:!0,ext:"mkv",mime:"video/x-matroska"}:e([82,73,70,70])&&"AVI "===i.slice(8,12).toString()?{valid:!0,ext:"avi",mime:"video/x-msvideo"}:e([0,0,1,186])?{valid:!0,ext:"mpeg",mime:"video/mpeg"}:e([71,64,0,16])?{valid:!0,ext:"ts",mime:"video/MP2T"}:e([102,116,121,112,109,112,52,50])?{valid:!0,ext:"mov",mime:"video/quicktime"}:e([80,75,3,4])?{valid:!0,ext:"zip",mime:"application/zip"}:e([82,97,114,33,26,7,0])?{valid:!0,ext:"rar",mime:"application/x-rar-compressed"}:e([55,122,188,175,39,28])?{valid:!0,ext:"7z",mime:"application/x-7z-compressed"}:e([31,139])?{valid:!0,ext:"gz",mime:"application/gzip"}:e([66,90,104])?{valid:!0,ext:"bz2",mime:"application/x-bzip2"}:e([37,80,68,70])?{valid:!0,ext:"pdf",mime:"application/pdf"}:e([208,207,17,224,161,177,26,225])?{valid:!0,ext:"msi",mime:"application/vnd.ms-installer"}:e([77,90])?{valid:!0,ext:"exe",mime:"application/vnd.microsoft.portable-executable"}:e([9,8,16,0])?{valid:!0,ext:"doc",mime:"application/msword"}:e([9,8,16,0,0,6,5])?{valid:!0,ext:"xls",mime:"application/vnd.ms-excel"}:e([208,207,17,224,161,177])?{valid:!0,ext:"ppt",mime:"application/vnd.ms-powerpoint"}:e([80,75,3,4])?{valid:!0,ext:"docx",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}:e([0,1,0,0])?{valid:!0,ext:"ttf",mime:"font/ttf"}:e([79,84,84,79])?{valid:!0,ext:"otf",mime:"font/otf"}:e([35,33])?{valid:!0,ext:"sh",mime:"application/x-sh"}:e([127,69,76,70])?{valid:!0,ext:"elf",mime:"application/x-elf"}:e([70,76,86])?{valid:!0,ext:"flv",mime:"video/x-flv"}:e([80,78,68,82])?{valid:!0,ext:"pdf",mime:"application/pdf"}:e([66,80,71,13])?{valid:!0,ext:"bpg",mime:"image/bpg"}:void 0}export{i as default,i as fileScaner};//# sourceMappingURL=FileScaner.mjs.map
1
+ /**
2
+ * Mega raw file-type detection from first chunk (magic bytes)
3
+ * Supports 100+ common file types: images, audio, video, docs, archives, installers, fonts, binaries.
4
+ */
5
+ function fileScaner(chunk) {
6
+ if (!chunk || chunk.length < 4)
7
+ return { valid: false };
8
+ const match = (pattern) => pattern.every((b, i) => chunk[i] === b);
9
+ // --- Images ---
10
+ if (chunk.length >= 8) {
11
+ if (match([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]))
12
+ return { valid: true, ext: "png", mime: "image/png" };
13
+ if (match([0x47, 0x49, 0x46, 0x38]))
14
+ return { valid: true, ext: "gif", mime: "image/gif" };
15
+ if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === "WEBP")
16
+ return { valid: true, ext: "webp", mime: "image/webp" };
17
+ }
18
+ if (match([0xFF, 0xD8, 0xFF]))
19
+ return { valid: true, ext: "jpg", mime: "image/jpeg" };
20
+ if (match([0x42, 0x4D]))
21
+ return { valid: true, ext: "bmp", mime: "image/bmp" };
22
+ if (match([0x49, 0x49, 0x2A, 0x00]) || match([0x4D, 0x4D, 0x00, 0x2A]))
23
+ return { valid: true, ext: "tif", mime: "image/tiff" };
24
+ if (match([0x00, 0x00, 0x01, 0x00]))
25
+ return { valid: true, ext: "ico", mime: "image/x-icon" };
26
+ if (match([0x00, 0x00, 0x02, 0x00]))
27
+ return { valid: true, ext: "cur", mime: "image/x-icon" };
28
+ // --- Audio ---
29
+ if (match([0x49, 0x44, 0x33]))
30
+ return { valid: true, ext: "mp3", mime: "audio/mpeg" };
31
+ if (match([0x66, 0x4C, 0x61, 0x43]))
32
+ return { valid: true, ext: "flac", mime: "audio/flac" };
33
+ if (match([0x4F, 0x67, 0x67, 0x53]))
34
+ return { valid: true, ext: "ogg", mime: "audio/ogg" };
35
+ if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === "WAVE")
36
+ return { valid: true, ext: "wav", mime: "audio/wav" };
37
+ if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32]))
38
+ return { valid: true, ext: "mp4a", mime: "audio/mp4" };
39
+ // --- Video ---
40
+ if (match([0x00, 0x00, 0x00, 0x18]) && chunk.slice(4, 8).toString() === "ftyp")
41
+ return { valid: true, ext: "mp4", mime: "video/mp4" };
42
+ if (match([0x1A, 0x45, 0xDF, 0xA3]))
43
+ return { valid: true, ext: "mkv", mime: "video/x-matroska" };
44
+ if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === "AVI ")
45
+ return { valid: true, ext: "avi", mime: "video/x-msvideo" };
46
+ if (match([0x00, 0x00, 0x01, 0xBA]))
47
+ return { valid: true, ext: "mpeg", mime: "video/mpeg" };
48
+ if (match([0x47, 0x40, 0x00, 0x10]))
49
+ return { valid: true, ext: "ts", mime: "video/MP2T" };
50
+ if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32]))
51
+ return { valid: true, ext: "mov", mime: "video/quicktime" };
52
+ // --- Archives ---
53
+ if (match([0x50, 0x4B, 0x03, 0x04]))
54
+ return { valid: true, ext: "zip", mime: "application/zip" };
55
+ if (match([0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00]))
56
+ return { valid: true, ext: "rar", mime: "application/x-rar-compressed" };
57
+ if (match([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C]))
58
+ return { valid: true, ext: "7z", mime: "application/x-7z-compressed" };
59
+ if (match([0x1F, 0x8B]))
60
+ return { valid: true, ext: "gz", mime: "application/gzip" };
61
+ if (match([0x42, 0x5A, 0x68]))
62
+ return { valid: true, ext: "bz2", mime: "application/x-bzip2" };
63
+ // --- Documents ---
64
+ if (match([0x25, 0x50, 0x44, 0x46]))
65
+ return { valid: true, ext: "pdf", mime: "application/pdf" };
66
+ if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1]))
67
+ return { valid: true, ext: "msi", mime: "application/vnd.ms-installer" };
68
+ if (match([0x4D, 0x5A]))
69
+ return { valid: true, ext: "exe", mime: "application/vnd.microsoft.portable-executable" };
70
+ if (match([0x09, 0x08, 0x10, 0x00]))
71
+ return { valid: true, ext: "doc", mime: "application/msword" };
72
+ if (match([0x09, 0x08, 0x10, 0x00, 0x00, 0x06, 0x05]))
73
+ return { valid: true, ext: "xls", mime: "application/vnd.ms-excel" };
74
+ if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1]))
75
+ return { valid: true, ext: "ppt", mime: "application/vnd.ms-powerpoint" };
76
+ if (match([0x50, 0x4B, 0x03, 0x04]))
77
+ return { valid: true, ext: "docx", mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" };
78
+ // --- Fonts ---
79
+ if (match([0x00, 0x01, 0x00, 0x00]))
80
+ return { valid: true, ext: "ttf", mime: "font/ttf" };
81
+ if (match([0x4F, 0x54, 0x54, 0x4F]))
82
+ return { valid: true, ext: "otf", mime: "font/otf" };
83
+ // --- Scripts / Binary ---
84
+ if (match([0x23, 0x21]))
85
+ return { valid: true, ext: "sh", mime: "application/x-sh" }; // shell script
86
+ if (match([0x7F, 0x45, 0x4C, 0x46]))
87
+ return { valid: true, ext: "elf", mime: "application/x-elf" }; // Linux executable
88
+ // --- Others / fallback ---
89
+ if (match([0x46, 0x4C, 0x56]))
90
+ return { valid: true, ext: "flv", mime: "video/x-flv" };
91
+ if (match([0x50, 0x4E, 0x44, 0x52]))
92
+ return { valid: true, ext: "pdf", mime: "application/pdf" }; // alternate PDF
93
+ if (match([0x42, 0x50, 0x47, 0x0D]))
94
+ return { valid: true, ext: "bpg", mime: "image/bpg" }; // BPG
95
+ }export{fileScaner as default,fileScaner};//# sourceMappingURL=FileScaner.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileScaner.mjs","sources":["../../src/include/FileScaner.ts"],"sourcesContent":["export type FileScanerResult = {\r\n valid: boolean;\r\n ext?: string;\r\n mime?: string;\r\n};\r\n\r\n/**\r\n * Mega raw file-type detection from first chunk (magic bytes)\r\n * Supports 100+ common file types: images, audio, video, docs, archives, installers, fonts, binaries.\r\n */\r\nexport function fileScaner(chunk: Uint8Array | Buffer): FileScanerResult | void {\r\n if (!chunk || chunk.length < 4) return { valid: false };\r\n const match = (pattern: number[]) => pattern.every((b, i) => chunk[i] === b);\r\n\r\n // --- Images ---\r\n if (chunk.length >= 8) {\r\n if (match([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) return { valid: true, ext: \"png\", mime: \"image/png\" };\r\n if (match([0x47, 0x49, 0x46, 0x38])) return { valid: true, ext: \"gif\", mime: \"image/gif\" };\r\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WEBP\") return { valid: true, ext: \"webp\", mime: \"image/webp\" };\r\n }\r\n if (match([0xFF, 0xD8, 0xFF])) return { valid: true, ext: \"jpg\", mime: \"image/jpeg\" };\r\n if (match([0x42, 0x4D])) return { valid: true, ext: \"bmp\", mime: \"image/bmp\" };\r\n if (match([0x49, 0x49, 0x2A, 0x00]) || match([0x4D, 0x4D, 0x00, 0x2A])) return { valid: true, ext: \"tif\", mime: \"image/tiff\" };\r\n if (match([0x00, 0x00, 0x01, 0x00])) return { valid: true, ext: \"ico\", mime: \"image/x-icon\" };\r\n if (match([0x00, 0x00, 0x02, 0x00])) return { valid: true, ext: \"cur\", mime: \"image/x-icon\" };\r\n\r\n // --- Audio ---\r\n if (match([0x49, 0x44, 0x33])) return { valid: true, ext: \"mp3\", mime: \"audio/mpeg\" };\r\n if (match([0x66, 0x4C, 0x61, 0x43])) return { valid: true, ext: \"flac\", mime: \"audio/flac\" };\r\n if (match([0x4F, 0x67, 0x67, 0x53])) return { valid: true, ext: \"ogg\", mime: \"audio/ogg\" };\r\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WAVE\") return { valid: true, ext: \"wav\", mime: \"audio/wav\" };\r\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mp4a\", mime: \"audio/mp4\" };\r\n\r\n // --- Video ---\r\n if (match([0x00, 0x00, 0x00, 0x18]) && chunk.slice(4, 8).toString() === \"ftyp\") return { valid: true, ext: \"mp4\", mime: \"video/mp4\" };\r\n if (match([0x1A, 0x45, 0xDF, 0xA3])) return { valid: true, ext: \"mkv\", mime: \"video/x-matroska\" };\r\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"AVI \") return { valid: true, ext: \"avi\", mime: \"video/x-msvideo\" };\r\n if (match([0x00, 0x00, 0x01, 0xBA])) return { valid: true, ext: \"mpeg\", mime: \"video/mpeg\" };\r\n if (match([0x47, 0x40, 0x00, 0x10])) return { valid: true, ext: \"ts\", mime: \"video/MP2T\" };\r\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mov\", mime: \"video/quicktime\" };\r\n\r\n // --- Archives ---\r\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"zip\", mime: \"application/zip\" };\r\n if (match([0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00])) return { valid: true, ext: \"rar\", mime: \"application/x-rar-compressed\" };\r\n if (match([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) return { valid: true, ext: \"7z\", mime: \"application/x-7z-compressed\" };\r\n if (match([0x1F, 0x8B])) return { valid: true, ext: \"gz\", mime: \"application/gzip\" };\r\n if (match([0x42, 0x5A, 0x68])) return { valid: true, ext: \"bz2\", mime: \"application/x-bzip2\" };\r\n\r\n // --- Documents ---\r\n if (match([0x25, 0x50, 0x44, 0x46])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" };\r\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) return { valid: true, ext: \"msi\", mime: \"application/vnd.ms-installer\" };\r\n if (match([0x4D, 0x5A])) return { valid: true, ext: \"exe\", mime: \"application/vnd.microsoft.portable-executable\" };\r\n if (match([0x09, 0x08, 0x10, 0x00])) return { valid: true, ext: \"doc\", mime: \"application/msword\" };\r\n if (match([0x09, 0x08, 0x10, 0x00, 0x00, 0x06, 0x05])) return { valid: true, ext: \"xls\", mime: \"application/vnd.ms-excel\" };\r\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1])) return { valid: true, ext: \"ppt\", mime: \"application/vnd.ms-powerpoint\" };\r\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"docx\", mime: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" };\r\n\r\n // --- Fonts ---\r\n if (match([0x00, 0x01, 0x00, 0x00])) return { valid: true, ext: \"ttf\", mime: \"font/ttf\" };\r\n if (match([0x4F, 0x54, 0x54, 0x4F])) return { valid: true, ext: \"otf\", mime: \"font/otf\" };\r\n\r\n // --- Scripts / Binary ---\r\n if (match([0x23, 0x21])) return { valid: true, ext: \"sh\", mime: \"application/x-sh\" }; // shell script\r\n if (match([0x7F, 0x45, 0x4C, 0x46])) return { valid: true, ext: \"elf\", mime: \"application/x-elf\" }; // Linux executable\r\n\r\n // --- Others / fallback ---\r\n if (match([0x46, 0x4C, 0x56])) return { valid: true, ext: \"flv\", mime: \"video/x-flv\" };\r\n if (match([0x50, 0x4E, 0x44, 0x52])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" }; // alternate PDF\r\n if (match([0x42, 0x50, 0x47, 0x0D])) return { valid: true, ext: \"bpg\", mime: \"image/bpg\" }; // BPG\r\n\r\n}\r\n\r\nexport default fileScaner;"],"names":["fileScaner","chunk","length","valid","match","pattern","every","b","i","ext","mime","slice","toString"],"mappings":"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"}
1
+ {"version":3,"file":"FileScaner.mjs","sources":["../../src/include/FileScaner.ts"],"sourcesContent":["export type FileScanerResult = {\n valid: boolean;\n ext?: string;\n mime?: string;\n};\n\n/**\n * Mega raw file-type detection from first chunk (magic bytes)\n * Supports 100+ common file types: images, audio, video, docs, archives, installers, fonts, binaries.\n */\nexport function fileScaner(chunk: Uint8Array | Buffer): FileScanerResult | void {\n if (!chunk || chunk.length < 4) return { valid: false };\n const match = (pattern: number[]) => pattern.every((b, i) => chunk[i] === b);\n\n // --- Images ---\n if (chunk.length >= 8) {\n if (match([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) return { valid: true, ext: \"png\", mime: \"image/png\" };\n if (match([0x47, 0x49, 0x46, 0x38])) return { valid: true, ext: \"gif\", mime: \"image/gif\" };\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WEBP\") return { valid: true, ext: \"webp\", mime: \"image/webp\" };\n }\n if (match([0xFF, 0xD8, 0xFF])) return { valid: true, ext: \"jpg\", mime: \"image/jpeg\" };\n if (match([0x42, 0x4D])) return { valid: true, ext: \"bmp\", mime: \"image/bmp\" };\n if (match([0x49, 0x49, 0x2A, 0x00]) || match([0x4D, 0x4D, 0x00, 0x2A])) return { valid: true, ext: \"tif\", mime: \"image/tiff\" };\n if (match([0x00, 0x00, 0x01, 0x00])) return { valid: true, ext: \"ico\", mime: \"image/x-icon\" };\n if (match([0x00, 0x00, 0x02, 0x00])) return { valid: true, ext: \"cur\", mime: \"image/x-icon\" };\n\n // --- Audio ---\n if (match([0x49, 0x44, 0x33])) return { valid: true, ext: \"mp3\", mime: \"audio/mpeg\" };\n if (match([0x66, 0x4C, 0x61, 0x43])) return { valid: true, ext: \"flac\", mime: \"audio/flac\" };\n if (match([0x4F, 0x67, 0x67, 0x53])) return { valid: true, ext: \"ogg\", mime: \"audio/ogg\" };\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"WAVE\") return { valid: true, ext: \"wav\", mime: \"audio/wav\" };\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mp4a\", mime: \"audio/mp4\" };\n\n // --- Video ---\n if (match([0x00, 0x00, 0x00, 0x18]) && chunk.slice(4, 8).toString() === \"ftyp\") return { valid: true, ext: \"mp4\", mime: \"video/mp4\" };\n if (match([0x1A, 0x45, 0xDF, 0xA3])) return { valid: true, ext: \"mkv\", mime: \"video/x-matroska\" };\n if (match([0x52, 0x49, 0x46, 0x46]) && chunk.slice(8, 12).toString() === \"AVI \") return { valid: true, ext: \"avi\", mime: \"video/x-msvideo\" };\n if (match([0x00, 0x00, 0x01, 0xBA])) return { valid: true, ext: \"mpeg\", mime: \"video/mpeg\" };\n if (match([0x47, 0x40, 0x00, 0x10])) return { valid: true, ext: \"ts\", mime: \"video/MP2T\" };\n if (match([0x66, 0x74, 0x79, 0x70, 0x6D, 0x70, 0x34, 0x32])) return { valid: true, ext: \"mov\", mime: \"video/quicktime\" };\n\n // --- Archives ---\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"zip\", mime: \"application/zip\" };\n if (match([0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00])) return { valid: true, ext: \"rar\", mime: \"application/x-rar-compressed\" };\n if (match([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) return { valid: true, ext: \"7z\", mime: \"application/x-7z-compressed\" };\n if (match([0x1F, 0x8B])) return { valid: true, ext: \"gz\", mime: \"application/gzip\" };\n if (match([0x42, 0x5A, 0x68])) return { valid: true, ext: \"bz2\", mime: \"application/x-bzip2\" };\n\n // --- Documents ---\n if (match([0x25, 0x50, 0x44, 0x46])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" };\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) return { valid: true, ext: \"msi\", mime: \"application/vnd.ms-installer\" };\n if (match([0x4D, 0x5A])) return { valid: true, ext: \"exe\", mime: \"application/vnd.microsoft.portable-executable\" };\n if (match([0x09, 0x08, 0x10, 0x00])) return { valid: true, ext: \"doc\", mime: \"application/msword\" };\n if (match([0x09, 0x08, 0x10, 0x00, 0x00, 0x06, 0x05])) return { valid: true, ext: \"xls\", mime: \"application/vnd.ms-excel\" };\n if (match([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1])) return { valid: true, ext: \"ppt\", mime: \"application/vnd.ms-powerpoint\" };\n if (match([0x50, 0x4B, 0x03, 0x04])) return { valid: true, ext: \"docx\", mime: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" };\n\n // --- Fonts ---\n if (match([0x00, 0x01, 0x00, 0x00])) return { valid: true, ext: \"ttf\", mime: \"font/ttf\" };\n if (match([0x4F, 0x54, 0x54, 0x4F])) return { valid: true, ext: \"otf\", mime: \"font/otf\" };\n\n // --- Scripts / Binary ---\n if (match([0x23, 0x21])) return { valid: true, ext: \"sh\", mime: \"application/x-sh\" }; // shell script\n if (match([0x7F, 0x45, 0x4C, 0x46])) return { valid: true, ext: \"elf\", mime: \"application/x-elf\" }; // Linux executable\n\n // --- Others / fallback ---\n if (match([0x46, 0x4C, 0x56])) return { valid: true, ext: \"flv\", mime: \"video/x-flv\" };\n if (match([0x50, 0x4E, 0x44, 0x52])) return { valid: true, ext: \"pdf\", mime: \"application/pdf\" }; // alternate PDF\n if (match([0x42, 0x50, 0x47, 0x0D])) return { valid: true, ext: \"bpg\", mime: \"image/bpg\" }; // BPG\n\n}\n\nexport default fileScaner;"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- declare function compressBuffer(input: any): Promise<Uint8Array>;
2
- declare function decompressBuffer(input: Uint8Array | Buffer): Promise<any>;
3
- declare function compress(input: any): Promise<string>;
4
- declare function decompress(base64Str: string): Promise<any>;
5
- declare const compresor: {
6
- compress: typeof compress;
7
- decompress: typeof decompress;
8
- compressBuffer: typeof compressBuffer;
9
- decompressBuffer: typeof decompressBuffer;
1
+ declare function compressBuffer(input: any): Promise<Uint8Array>;
2
+ declare function decompressBuffer(input: Uint8Array | Buffer): Promise<any>;
3
+ declare function compress(input: any): Promise<string>;
4
+ declare function decompress(base64Str: string): Promise<any>;
5
+ declare const compresor: {
6
+ compress: typeof compress;
7
+ decompress: typeof decompress;
8
+ compressBuffer: typeof compressBuffer;
9
+ decompressBuffer: typeof decompressBuffer;
10
10
  };
11
11
 
12
12
  export { compresor as default };
@@ -1 +1,19 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("fflate"),r=require("libsodium-wrappers"),s=require("msgpackr");async function a(a){await r.ready;const t=s.pack(a);return e.compressSync(t)}async function t(a){await r.ready;const t=e.decompressSync(a);return s.unpack(t)}const n={compress:async function(e){const s=await a(e);return r.to_base64(s,r.base64_variants.ORIGINAL)},decompress:async function(e){const s=r.from_base64(e,r.base64_variants.ORIGINAL);return await t(s)},compressBuffer:a,decompressBuffer:t};exports.default=n;//# sourceMappingURL=compress.js.map
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var fflate=require('fflate'),sodium=require('libsodium-wrappers'),msgpackr=require('msgpackr');async function compressBuffer(input) {
2
+ await sodium.ready;
3
+ const encode = msgpackr.pack(input);
4
+ return fflate.compressSync(encode);
5
+ }
6
+ async function decompressBuffer(input) {
7
+ await sodium.ready;
8
+ const compress = fflate.decompressSync(input);
9
+ return msgpackr.unpack(compress);
10
+ }
11
+ async function compress(input) {
12
+ const compressed = await compressBuffer(input);
13
+ return sodium.to_base64(compressed, sodium.base64_variants.ORIGINAL);
14
+ }
15
+ async function decompress(base64Str) {
16
+ const compressed = sodium.from_base64(base64Str, sodium.base64_variants.ORIGINAL);
17
+ return await decompressBuffer(compressed);
18
+ }
19
+ const compresor = { compress, decompress, compressBuffer, decompressBuffer };exports.default=compresor;//# sourceMappingURL=compress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compress.js","sources":["../../src/include/compress.ts"],"sourcesContent":["import { compressSync, decompressSync } from 'fflate';\r\nimport sodium from 'libsodium-wrappers';\r\nimport { unpack, pack } from 'msgpackr';\r\n\r\nasync function compressBuffer(input: any) {\r\n await sodium.ready\r\n const encode = pack(input);\r\n return compressSync(encode);\r\n}\r\n\r\nasync function decompressBuffer(input: Uint8Array | Buffer) {\r\n await sodium.ready\r\n const compress = decompressSync(input);\r\n return unpack(compress);\r\n}\r\n\r\nasync function compress(input: any) {\r\n const compressed = await compressBuffer(input);\r\n return sodium.to_base64(compressed, sodium.base64_variants.ORIGINAL);\r\n}\r\n\r\nasync function decompress(base64Str: string) {\r\n const compressed = sodium.from_base64(base64Str, sodium.base64_variants.ORIGINAL);\r\n return await decompressBuffer(compressed);\r\n}\r\n\r\nconst compresor = { compress, decompress, compressBuffer, decompressBuffer };\r\nexport default compresor;"],"names":["async","compressBuffer","input","sodium","ready","encode","pack","compressSync","decompressBuffer","compress","decompressSync","unpack","compresor","compressed","to_base64","base64_variants","ORIGINAL","decompress","base64Str","from_base64","exports","default"],"mappings":"kJAIAA,eAAeC,EAAeC,SACrBC,EAAOC,MACb,MAAMC,EAASC,OAAKJ,GACpB,OAAOK,EAAAA,aAAaF,EACvB,CAEAL,eAAeQ,EAAiBN,SACvBC,EAAOC,MACb,MAAMK,EAAWC,iBAAeR,GAChC,OAAOS,EAAAA,OAAOF,EACjB,CAYA,MAAMG,EAAY,CAAEH,SAVpBT,eAAwBE,GACrB,MAAMW,QAAmBZ,EAAeC,GACxC,OAAOC,EAAOW,UAAUD,EAAYV,EAAOY,gBAAgBC,SAC9D,EAO8BC,WAL9BjB,eAA0BkB,GACvB,MAAML,EAAaV,EAAOgB,YAAYD,EAAWf,EAAOY,gBAAgBC,UACxE,aAAaR,EAAiBK,EACjC,EAE0CZ,iBAAgBO,oBAAgBY,QAAAC,QAAAT"}
1
+ {"version":3,"file":"compress.js","sources":["../../src/include/compress.ts"],"sourcesContent":["import { compressSync, decompressSync } from 'fflate';\nimport sodium from 'libsodium-wrappers';\nimport { unpack, pack } from 'msgpackr';\n\nasync function compressBuffer(input: any) {\n await sodium.ready\n const encode = pack(input);\n return compressSync(encode);\n}\n\nasync function decompressBuffer(input: Uint8Array | Buffer) {\n await sodium.ready\n const compress = decompressSync(input);\n return unpack(compress);\n}\n\nasync function compress(input: any) {\n const compressed = await compressBuffer(input);\n return sodium.to_base64(compressed, sodium.base64_variants.ORIGINAL);\n}\n\nasync function decompress(base64Str: string) {\n const compressed = sodium.from_base64(base64Str, sodium.base64_variants.ORIGINAL);\n return await decompressBuffer(compressed);\n}\n\nconst compresor = { compress, decompress, compressBuffer, decompressBuffer };\nexport default compresor;"],"names":["pack","compressSync","decompressSync","unpack"],"mappings":"qKAIA,eAAe,cAAc,CAAC,KAAU,EAAA;IACrC,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,MAAM,GAAGA,aAAI,CAAC,KAAK,CAAC;AAC1B,IAAA,OAAOC,mBAAY,CAAC,MAAM,CAAC;AAC9B;AAEA,eAAe,gBAAgB,CAAC,KAA0B,EAAA;IACvD,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,QAAQ,GAAGC,qBAAc,CAAC,KAAK,CAAC;AACtC,IAAA,OAAOC,eAAM,CAAC,QAAQ,CAAC;AAC1B;AAEA,eAAe,QAAQ,CAAC,KAAU,EAAA;AAC/B,IAAA,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC;AAC9C,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;AACvE;AAEA,eAAe,UAAU,CAAC,SAAiB,EAAA;AACxC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;AACjF,IAAA,OAAO,MAAM,gBAAgB,CAAC,UAAU,CAAC;AAC5C;AAEA,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB"}
@@ -1 +1,19 @@
1
- import{compressSync as r,decompressSync as a}from"fflate";import s from"libsodium-wrappers";import{pack as t,unpack as n}from"msgpackr";async function o(a){await s.ready;const n=t(a);return r(n)}async function e(r){await s.ready;const t=a(r);return n(t)}const c={compress:async function(r){const a=await o(r);return s.to_base64(a,s.base64_variants.ORIGINAL)},decompress:async function(r){const a=s.from_base64(r,s.base64_variants.ORIGINAL);return await e(a)},compressBuffer:o,decompressBuffer:e};export{c as default};//# sourceMappingURL=compress.mjs.map
1
+ import {compressSync,decompressSync}from'fflate';import sodium from'libsodium-wrappers';import {pack,unpack}from'msgpackr';async function compressBuffer(input) {
2
+ await sodium.ready;
3
+ const encode = pack(input);
4
+ return compressSync(encode);
5
+ }
6
+ async function decompressBuffer(input) {
7
+ await sodium.ready;
8
+ const compress = decompressSync(input);
9
+ return unpack(compress);
10
+ }
11
+ async function compress(input) {
12
+ const compressed = await compressBuffer(input);
13
+ return sodium.to_base64(compressed, sodium.base64_variants.ORIGINAL);
14
+ }
15
+ async function decompress(base64Str) {
16
+ const compressed = sodium.from_base64(base64Str, sodium.base64_variants.ORIGINAL);
17
+ return await decompressBuffer(compressed);
18
+ }
19
+ const compresor = { compress, decompress, compressBuffer, decompressBuffer };export{compresor as default};//# sourceMappingURL=compress.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"compress.mjs","sources":["../../src/include/compress.ts"],"sourcesContent":["import { compressSync, decompressSync } from 'fflate';\r\nimport sodium from 'libsodium-wrappers';\r\nimport { unpack, pack } from 'msgpackr';\r\n\r\nasync function compressBuffer(input: any) {\r\n await sodium.ready\r\n const encode = pack(input);\r\n return compressSync(encode);\r\n}\r\n\r\nasync function decompressBuffer(input: Uint8Array | Buffer) {\r\n await sodium.ready\r\n const compress = decompressSync(input);\r\n return unpack(compress);\r\n}\r\n\r\nasync function compress(input: any) {\r\n const compressed = await compressBuffer(input);\r\n return sodium.to_base64(compressed, sodium.base64_variants.ORIGINAL);\r\n}\r\n\r\nasync function decompress(base64Str: string) {\r\n const compressed = sodium.from_base64(base64Str, sodium.base64_variants.ORIGINAL);\r\n return await decompressBuffer(compressed);\r\n}\r\n\r\nconst compresor = { compress, decompress, compressBuffer, decompressBuffer };\r\nexport default compresor;"],"names":["async","compressBuffer","input","sodium","ready","encode","pack","compressSync","decompressBuffer","compress","decompressSync","unpack","compresor","compressed","to_base64","base64_variants","ORIGINAL","decompress","base64Str","from_base64"],"mappings":"wIAIAA,eAAeC,EAAeC,SACrBC,EAAOC,MACb,MAAMC,EAASC,EAAKJ,GACpB,OAAOK,EAAaF,EACvB,CAEAL,eAAeQ,EAAiBN,SACvBC,EAAOC,MACb,MAAMK,EAAWC,EAAeR,GAChC,OAAOS,EAAOF,EACjB,CAYA,MAAMG,EAAY,CAAEH,SAVpBT,eAAwBE,GACrB,MAAMW,QAAmBZ,EAAeC,GACxC,OAAOC,EAAOW,UAAUD,EAAYV,EAAOY,gBAAgBC,SAC9D,EAO8BC,WAL9BjB,eAA0BkB,GACvB,MAAML,EAAaV,EAAOgB,YAAYD,EAAWf,EAAOY,gBAAgBC,UACxE,aAAaR,EAAiBK,EACjC,EAE0CZ,iBAAgBO,2BAAgBI"}
1
+ {"version":3,"file":"compress.mjs","sources":["../../src/include/compress.ts"],"sourcesContent":["import { compressSync, decompressSync } from 'fflate';\nimport sodium from 'libsodium-wrappers';\nimport { unpack, pack } from 'msgpackr';\n\nasync function compressBuffer(input: any) {\n await sodium.ready\n const encode = pack(input);\n return compressSync(encode);\n}\n\nasync function decompressBuffer(input: Uint8Array | Buffer) {\n await sodium.ready\n const compress = decompressSync(input);\n return unpack(compress);\n}\n\nasync function compress(input: any) {\n const compressed = await compressBuffer(input);\n return sodium.to_base64(compressed, sodium.base64_variants.ORIGINAL);\n}\n\nasync function decompress(base64Str: string) {\n const compressed = sodium.from_base64(base64Str, sodium.base64_variants.ORIGINAL);\n return await decompressBuffer(compressed);\n}\n\nconst compresor = { compress, decompress, compressBuffer, decompressBuffer };\nexport default compresor;"],"names":[],"mappings":"2HAIA,eAAe,cAAc,CAAC,KAAU,EAAA;IACrC,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;AAC1B,IAAA,OAAO,YAAY,CAAC,MAAM,CAAC;AAC9B;AAEA,eAAe,gBAAgB,CAAC,KAA0B,EAAA;IACvD,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC;AACtC,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC;AAC1B;AAEA,eAAe,QAAQ,CAAC,KAAU,EAAA;AAC/B,IAAA,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC;AAC9C,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;AACvE;AAEA,eAAe,UAAU,CAAC,SAAiB,EAAA;AACxC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;AACjF,IAAA,OAAO,MAAM,gBAAgB,CAAC,UAAU,CAAC;AAC5C;AAEA,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB"}
@@ -1,18 +1,18 @@
1
- type EncryptInput = string | object | any[];
2
- /** --- STRING --- */
3
- declare function encrypt(input: EncryptInput, secret: string): Promise<string>;
4
- declare function decrypt(base64: string, secret: string): Promise<any | null>;
5
- /** --- BUFFER --- */
6
- declare function encryptBuffer(input: any, secret: string): Promise<Uint8Array>;
7
- declare function decryptBuffer(box: Uint8Array, secret: string): Promise<any | null>;
8
- /** --- HASH --- */
9
- declare function hash(str: string): Promise<string>;
10
- declare const crypto: {
11
- encrypt: typeof encrypt;
12
- decrypt: typeof decrypt;
13
- encryptBuffer: typeof encryptBuffer;
14
- decryptBuffer: typeof decryptBuffer;
15
- hash: typeof hash;
1
+ type EncryptInput = string | object | any[];
2
+ /** --- STRING --- */
3
+ declare function encrypt(input: EncryptInput, secret: string): Promise<string>;
4
+ declare function decrypt(base64: string, secret: string): Promise<any | null>;
5
+ /** --- BUFFER --- */
6
+ declare function encryptBuffer(input: any, secret: string): Promise<Uint8Array>;
7
+ declare function decryptBuffer(box: Uint8Array, secret: string): Promise<any | null>;
8
+ /** --- HASH --- */
9
+ declare function hash(str: string): Promise<string>;
10
+ declare const crypto: {
11
+ encrypt: typeof encrypt;
12
+ decrypt: typeof decrypt;
13
+ encryptBuffer: typeof encryptBuffer;
14
+ decryptBuffer: typeof decryptBuffer;
15
+ hash: typeof hash;
16
16
  };
17
17
 
18
18
  export { decrypt, decryptBuffer, crypto as default, encrypt, encryptBuffer, hash };
package/include/crypto.js CHANGED
@@ -1 +1,55 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("libsodium-wrappers"),e=require("./compress.js");function t(e){return r.crypto_generichash(r.crypto_secretbox_KEYBYTES,r.from_string(e))}function c(e){return r.crypto_generichash(r.crypto_secretbox_NONCEBYTES,r.from_string(e))}async function n(e,t){const c=await o(e,t);return r.to_base64(c)}async function s(e,t){const c=r.from_base64(e);return await a(c,t)}async function o(n,s){await r.ready;const o=t(s),a=c(s),u=await e.default.compressBuffer(n);return r.crypto_secretbox_easy(u,a,o)}async function a(n,s){await r.ready;const o=t(s),a=c(s);try{const t=r.crypto_secretbox_open_easy(n,a,o);return t?await e.default.decompressBuffer(t):null}catch(r){return null}}async function u(e){await r.ready;const t=r.crypto_generichash(32,r.from_string(e));return r.to_base64(t).replace(/[^a-zA-Z0-9]/g,"")}const p={encrypt:n,decrypt:s,encryptBuffer:o,decryptBuffer:a,hash:u};exports.decrypt=s,exports.decryptBuffer=a,exports.default=p,exports.encrypt=n,exports.encryptBuffer=o,exports.hash=u;//# sourceMappingURL=crypto.js.map
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var sodium=require('libsodium-wrappers'),compress=require('./compress.js');/** --- Key/Nonce Derivation --- */
2
+ function deriveKey(secret) {
3
+ return sodium.crypto_generichash(sodium.crypto_secretbox_KEYBYTES, sodium.from_string(secret));
4
+ }
5
+ function deriveNonce(secret) {
6
+ return sodium.crypto_generichash(sodium.crypto_secretbox_NONCEBYTES, sodium.from_string(secret));
7
+ }
8
+ /** --- STRING --- */
9
+ async function encrypt(input, secret) {
10
+ const encrypted = await encryptBuffer(input, secret);
11
+ return sodium.to_base64(encrypted);
12
+ }
13
+ async function decrypt(base64, secret) {
14
+ const cipher = sodium.from_base64(base64);
15
+ return await decryptBuffer(cipher, secret);
16
+ }
17
+ /** --- BUFFER --- */
18
+ // Encrypt
19
+ async function encryptBuffer(input, secret) {
20
+ await sodium.ready;
21
+ const key = deriveKey(secret);
22
+ const nonce = deriveNonce(secret);
23
+ const compressed = await compress.default.compressBuffer(input);
24
+ return sodium.crypto_secretbox_easy(compressed, nonce, key);
25
+ }
26
+ // Decrypt
27
+ async function decryptBuffer(box, secret) {
28
+ await sodium.ready;
29
+ const key = deriveKey(secret);
30
+ const nonce = deriveNonce(secret);
31
+ try {
32
+ const opened = sodium.crypto_secretbox_open_easy(box, nonce, key);
33
+ if (!opened)
34
+ return null;
35
+ return await compress.default.decompressBuffer(opened);
36
+ }
37
+ catch (error) {
38
+ return null;
39
+ }
40
+ }
41
+ /** --- HASH --- */
42
+ async function hash(str) {
43
+ await sodium.ready;
44
+ const digest = sodium.crypto_generichash(32, sodium.from_string(str));
45
+ return sodium
46
+ .to_base64(digest)
47
+ .replace(/[^a-zA-Z0-9]/g, "");
48
+ }
49
+ const crypto = {
50
+ encrypt,
51
+ decrypt,
52
+ encryptBuffer,
53
+ decryptBuffer,
54
+ hash,
55
+ };exports.decrypt=decrypt;exports.decryptBuffer=decryptBuffer;exports.default=crypto;exports.encrypt=encrypt;exports.encryptBuffer=encryptBuffer;exports.hash=hash;//# sourceMappingURL=crypto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sources":["../../src/include/crypto.ts"],"sourcesContent":["import sodium from \"libsodium-wrappers\";\r\nimport compresor from \"./compress\";\r\n\r\nexport type EncryptInput = string | object | any[];\r\n\r\n/** --- Key/Nonce Derivation --- */\r\nfunction deriveKey(secret: string): Uint8Array {\r\n return sodium.crypto_generichash(\r\n sodium.crypto_secretbox_KEYBYTES,\r\n sodium.from_string(secret)\r\n );\r\n}\r\n\r\nfunction deriveNonce(secret: string): Uint8Array {\r\n return sodium.crypto_generichash(\r\n sodium.crypto_secretbox_NONCEBYTES,\r\n sodium.from_string(secret)\r\n );\r\n}\r\n\r\n/** --- STRING --- */\r\nexport async function encrypt(input: EncryptInput, secret: string): Promise<string> {\r\n const encrypted = await encryptBuffer(input, secret);\r\n return sodium.to_base64(encrypted);\r\n}\r\n\r\nexport async function decrypt(base64: string, secret: string): Promise<any | null> {\r\n const cipher = sodium.from_base64(base64);\r\n return await decryptBuffer(cipher, secret);\r\n}\r\n\r\n/** --- BUFFER --- */\r\n// Encrypt\r\nexport async function encryptBuffer(input: any, secret: string): Promise<Uint8Array> {\r\n await sodium.ready;\r\n const key = deriveKey(secret);\r\n const nonce = deriveNonce(secret);\r\n const compressed = await compresor.compressBuffer(input);\r\n return sodium.crypto_secretbox_easy(compressed, nonce, key);\r\n}\r\n\r\n// Decrypt\r\nexport async function decryptBuffer(box: Uint8Array, secret: string): Promise<any | null> {\r\n await sodium.ready;\r\n const key = deriveKey(secret);\r\n const nonce = deriveNonce(secret);\r\n try {\r\n const opened = sodium.crypto_secretbox_open_easy(box, nonce, key);\r\n if (!opened) return null;\r\n return await compresor.decompressBuffer(opened);\r\n } catch (error) {\r\n return null;\r\n }\r\n}\r\n\r\n/** --- HASH --- */\r\nexport async function hash(str: string): Promise<string> {\r\n await sodium.ready;\r\n const digest = sodium.crypto_generichash(32, sodium.from_string(str));\r\n return sodium\r\n .to_base64(digest)\r\n .replace(/[^a-zA-Z0-9]/g, \"\")\r\n}\r\n\r\nconst crypto = {\r\n encrypt,\r\n decrypt,\r\n encryptBuffer,\r\n decryptBuffer,\r\n hash,\r\n};\r\n\r\nexport default crypto;\r\n"],"names":["Object","defineProperty","exports","value","sodium","require","compress","deriveKey","secret","crypto_generichash","crypto_secretbox_KEYBYTES","from_string","deriveNonce","crypto_secretbox_NONCEBYTES","async","encrypt","input","encrypted","encryptBuffer","to_base64","decrypt","base64","cipher","from_base64","decryptBuffer","ready","key","nonce","compressed","compresor","compressBuffer","crypto_secretbox_easy","box","opened","crypto_secretbox_open_easy","decompressBuffer","error","hash","str","digest","replace","crypto"],"mappings":"AAKA,aAAAA,OAAAC,eAAAC,QAAA,aAAA,CAAAC,OAAA,IAAA,IAAAC,EAAAC,QAAA,sBAAAC,EAAAD,QAAA,iBACA,SAASE,EAAUC,GAChB,OAAOJ,EAAOK,mBACXL,EAAOM,0BACPN,EAAOO,YAAYH,GAEzB,CAEA,SAASI,EAAYJ,GAClB,OAAOJ,EAAOK,mBACXL,EAAOS,4BACPT,EAAOO,YAAYH,GAEzB,CAGOM,eAAeC,EAAQC,EAAqBR,GAChD,MAAMS,QAAkBC,EAAcF,EAAOR,GAC7C,OAAOJ,EAAOe,UAAUF,EAC3B,CAEOH,eAAeM,EAAQC,EAAgBb,GAC3C,MAAMc,EAASlB,EAAOmB,YAAYF,GAClC,aAAaG,EAAcF,EAAQd,EACtC,CAIOM,eAAeI,EAAcF,EAAYR,SACvCJ,EAAOqB,MACb,MAAMC,EAAMnB,EAAUC,GAChBmB,EAAQf,EAAYJ,GACpBoB,QAAmBC,EAAAA,QAAUC,eAAed,GAClD,OAAOZ,EAAO2B,sBAAsBH,EAAYD,EAAOD,EAC1D,CAGOZ,eAAeU,EAAcQ,EAAiBxB,SAC5CJ,EAAOqB,MACb,MAAMC,EAAMnB,EAAUC,GAChBmB,EAAQf,EAAYJ,GAC1B,IACG,MAAMyB,EAAS7B,EAAO8B,2BAA2BF,EAAKL,EAAOD,GAC7D,OAAKO,QACQJ,EAAAA,QAAUM,iBAAiBF,GADpB,IAEtB,CAAC,MAAOG,GACN,OAAO,IACT,CACJ,CAGOtB,eAAeuB,EAAKC,SAClBlC,EAAOqB,MACb,MAAMc,EAASnC,EAAOK,mBAAmB,GAAIL,EAAOO,YAAY2B,IAChE,OAAOlC,EACHe,UAAUoB,GACVC,QAAQ,gBAAiB,GAChC,CAEA,MAAMC,EAAS,CACZ1B,UACAK,UACAF,gBACAM,gBACAa"}
1
+ {"version":3,"file":"crypto.js","sources":["../../src/include/crypto.ts"],"sourcesContent":["import sodium from \"libsodium-wrappers\";\nimport compresor from \"./compress\";\n\nexport type EncryptInput = string | object | any[];\n\n/** --- Key/Nonce Derivation --- */\nfunction deriveKey(secret: string): Uint8Array {\n return sodium.crypto_generichash(\n sodium.crypto_secretbox_KEYBYTES,\n sodium.from_string(secret)\n );\n}\n\nfunction deriveNonce(secret: string): Uint8Array {\n return sodium.crypto_generichash(\n sodium.crypto_secretbox_NONCEBYTES,\n sodium.from_string(secret)\n );\n}\n\n/** --- STRING --- */\nexport async function encrypt(input: EncryptInput, secret: string): Promise<string> {\n const encrypted = await encryptBuffer(input, secret);\n return sodium.to_base64(encrypted);\n}\n\nexport async function decrypt(base64: string, secret: string): Promise<any | null> {\n const cipher = sodium.from_base64(base64);\n return await decryptBuffer(cipher, secret);\n}\n\n/** --- BUFFER --- */\n// Encrypt\nexport async function encryptBuffer(input: any, secret: string): Promise<Uint8Array> {\n await sodium.ready;\n const key = deriveKey(secret);\n const nonce = deriveNonce(secret);\n const compressed = await compresor.compressBuffer(input);\n return sodium.crypto_secretbox_easy(compressed, nonce, key);\n}\n\n// Decrypt\nexport async function decryptBuffer(box: Uint8Array, secret: string): Promise<any | null> {\n await sodium.ready;\n const key = deriveKey(secret);\n const nonce = deriveNonce(secret);\n try {\n const opened = sodium.crypto_secretbox_open_easy(box, nonce, key);\n if (!opened) return null;\n return await compresor.decompressBuffer(opened);\n } catch (error) {\n return null;\n }\n}\n\n/** --- HASH --- */\nexport async function hash(str: string): Promise<string> {\n await sodium.ready;\n const digest = sodium.crypto_generichash(32, sodium.from_string(str));\n return sodium\n .to_base64(digest)\n .replace(/[^a-zA-Z0-9]/g, \"\")\n}\n\nconst crypto = {\n encrypt,\n decrypt,\n encryptBuffer,\n decryptBuffer,\n hash,\n};\n\nexport default crypto;\n"],"names":["compresor"],"mappings":"iJAKA;AACA,SAAS,SAAS,CAAC,MAAc,EAAA;AAC9B,IAAA,OAAO,MAAM,CAAC,kBAAkB,CAC7B,MAAM,CAAC,yBAAyB,EAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAC5B;AACJ;AAEA,SAAS,WAAW,CAAC,MAAc,EAAA;AAChC,IAAA,OAAO,MAAM,CAAC,kBAAkB,CAC7B,MAAM,CAAC,2BAA2B,EAClC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAC5B;AACJ;AAEA;AACO,eAAe,OAAO,CAAC,KAAmB,EAAE,MAAc,EAAA;IAC9D,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;AACpD,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AACrC;AAEO,eAAe,OAAO,CAAC,MAAc,EAAE,MAAc,EAAA;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;AACzC,IAAA,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7C;AAEA;AACA;AACO,eAAe,aAAa,CAAC,KAAU,EAAE,MAAc,EAAA;IAC3D,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;AAC7B,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACjC,MAAM,UAAU,GAAG,MAAMA,gBAAS,CAAC,cAAc,CAAC,KAAK,CAAC;IACxD,OAAO,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9D;AAEA;AACO,eAAe,aAAa,CAAC,GAAe,EAAE,MAAc,EAAA;IAChE,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;AAC7B,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACjC,IAAI;AACD,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;AACjE,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AACxB,QAAA,OAAO,MAAMA,gBAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACjD,IAAA;AAAC,IAAA,OAAO,KAAK,EAAE;AACb,QAAA,OAAO,IAAI;AACb,IAAA;AACJ;AAEA;AACO,eAAe,IAAI,CAAC,GAAW,EAAA;IACnC,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACrE,IAAA,OAAO;SACH,SAAS,CAAC,MAAM;AAChB,SAAA,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACnC;AAEA,MAAM,MAAM,GAAG;IACZ,OAAO;IACP,OAAO;IACP,aAAa;IACb,aAAa;IACb,IAAI;"}
@@ -1 +1,55 @@
1
- import r from"libsodium-wrappers";import t from"./compress.mjs";function e(t){return r.crypto_generichash(r.crypto_secretbox_KEYBYTES,r.from_string(t))}function n(t){return r.crypto_generichash(r.crypto_secretbox_NONCEBYTES,r.from_string(t))}async function c(t,e){const n=await s(t,e);return r.to_base64(n)}async function o(t,e){const n=r.from_base64(t);return await a(n,e)}async function s(c,o){await r.ready;const s=e(o),a=n(o),i=await t.compressBuffer(c);return r.crypto_secretbox_easy(i,a,s)}async function a(c,o){await r.ready;const s=e(o),a=n(o);try{const e=r.crypto_secretbox_open_easy(c,a,s);return e?await t.decompressBuffer(e):null}catch(r){return null}}async function i(t){await r.ready;const e=r.crypto_generichash(32,r.from_string(t));return r.to_base64(e).replace(/[^a-zA-Z0-9]/g,"")}const u={encrypt:c,decrypt:o,encryptBuffer:s,decryptBuffer:a,hash:i};export{o as decrypt,a as decryptBuffer,u as default,c as encrypt,s as encryptBuffer,i as hash};//# sourceMappingURL=crypto.mjs.map
1
+ import sodium from'libsodium-wrappers';import compresor from'./compress.mjs';/** --- Key/Nonce Derivation --- */
2
+ function deriveKey(secret) {
3
+ return sodium.crypto_generichash(sodium.crypto_secretbox_KEYBYTES, sodium.from_string(secret));
4
+ }
5
+ function deriveNonce(secret) {
6
+ return sodium.crypto_generichash(sodium.crypto_secretbox_NONCEBYTES, sodium.from_string(secret));
7
+ }
8
+ /** --- STRING --- */
9
+ async function encrypt(input, secret) {
10
+ const encrypted = await encryptBuffer(input, secret);
11
+ return sodium.to_base64(encrypted);
12
+ }
13
+ async function decrypt(base64, secret) {
14
+ const cipher = sodium.from_base64(base64);
15
+ return await decryptBuffer(cipher, secret);
16
+ }
17
+ /** --- BUFFER --- */
18
+ // Encrypt
19
+ async function encryptBuffer(input, secret) {
20
+ await sodium.ready;
21
+ const key = deriveKey(secret);
22
+ const nonce = deriveNonce(secret);
23
+ const compressed = await compresor.compressBuffer(input);
24
+ return sodium.crypto_secretbox_easy(compressed, nonce, key);
25
+ }
26
+ // Decrypt
27
+ async function decryptBuffer(box, secret) {
28
+ await sodium.ready;
29
+ const key = deriveKey(secret);
30
+ const nonce = deriveNonce(secret);
31
+ try {
32
+ const opened = sodium.crypto_secretbox_open_easy(box, nonce, key);
33
+ if (!opened)
34
+ return null;
35
+ return await compresor.decompressBuffer(opened);
36
+ }
37
+ catch (error) {
38
+ return null;
39
+ }
40
+ }
41
+ /** --- HASH --- */
42
+ async function hash(str) {
43
+ await sodium.ready;
44
+ const digest = sodium.crypto_generichash(32, sodium.from_string(str));
45
+ return sodium
46
+ .to_base64(digest)
47
+ .replace(/[^a-zA-Z0-9]/g, "");
48
+ }
49
+ const crypto = {
50
+ encrypt,
51
+ decrypt,
52
+ encryptBuffer,
53
+ decryptBuffer,
54
+ hash,
55
+ };export{decrypt,decryptBuffer,crypto as default,encrypt,encryptBuffer,hash};//# sourceMappingURL=crypto.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.mjs","sources":["../../src/include/crypto.ts"],"sourcesContent":["import sodium from \"libsodium-wrappers\";\r\nimport compresor from \"./compress\";\r\n\r\nexport type EncryptInput = string | object | any[];\r\n\r\n/** --- Key/Nonce Derivation --- */\r\nfunction deriveKey(secret: string): Uint8Array {\r\n return sodium.crypto_generichash(\r\n sodium.crypto_secretbox_KEYBYTES,\r\n sodium.from_string(secret)\r\n );\r\n}\r\n\r\nfunction deriveNonce(secret: string): Uint8Array {\r\n return sodium.crypto_generichash(\r\n sodium.crypto_secretbox_NONCEBYTES,\r\n sodium.from_string(secret)\r\n );\r\n}\r\n\r\n/** --- STRING --- */\r\nexport async function encrypt(input: EncryptInput, secret: string): Promise<string> {\r\n const encrypted = await encryptBuffer(input, secret);\r\n return sodium.to_base64(encrypted);\r\n}\r\n\r\nexport async function decrypt(base64: string, secret: string): Promise<any | null> {\r\n const cipher = sodium.from_base64(base64);\r\n return await decryptBuffer(cipher, secret);\r\n}\r\n\r\n/** --- BUFFER --- */\r\n// Encrypt\r\nexport async function encryptBuffer(input: any, secret: string): Promise<Uint8Array> {\r\n await sodium.ready;\r\n const key = deriveKey(secret);\r\n const nonce = deriveNonce(secret);\r\n const compressed = await compresor.compressBuffer(input);\r\n return sodium.crypto_secretbox_easy(compressed, nonce, key);\r\n}\r\n\r\n// Decrypt\r\nexport async function decryptBuffer(box: Uint8Array, secret: string): Promise<any | null> {\r\n await sodium.ready;\r\n const key = deriveKey(secret);\r\n const nonce = deriveNonce(secret);\r\n try {\r\n const opened = sodium.crypto_secretbox_open_easy(box, nonce, key);\r\n if (!opened) return null;\r\n return await compresor.decompressBuffer(opened);\r\n } catch (error) {\r\n return null;\r\n }\r\n}\r\n\r\n/** --- HASH --- */\r\nexport async function hash(str: string): Promise<string> {\r\n await sodium.ready;\r\n const digest = sodium.crypto_generichash(32, sodium.from_string(str));\r\n return sodium\r\n .to_base64(digest)\r\n .replace(/[^a-zA-Z0-9]/g, \"\")\r\n}\r\n\r\nconst crypto = {\r\n encrypt,\r\n decrypt,\r\n encryptBuffer,\r\n decryptBuffer,\r\n hash,\r\n};\r\n\r\nexport default crypto;\r\n"],"names":["sodium","compresor","deriveKey","secret","crypto_generichash","crypto_secretbox_KEYBYTES","from_string","deriveNonce","crypto_secretbox_NONCEBYTES","async","encrypt","input","encrypted","encryptBuffer","to_base64","decrypt","base64","cipher","from_base64","decryptBuffer","ready","key","nonce","compressed","compressBuffer","crypto_secretbox_easy","box","opened","crypto_secretbox_open_easy","decompressBuffer","error","hash","str","digest","replace","crypto"],"mappings":"OAKAA,MAAA,4BAAAC,MAAA,iBACA,SAASC,EAAUC,GAChB,OAAOH,EAAOI,mBACXJ,EAAOK,0BACPL,EAAOM,YAAYH,GAEzB,CAEA,SAASI,EAAYJ,GAClB,OAAOH,EAAOI,mBACXJ,EAAOQ,4BACPR,EAAOM,YAAYH,GAEzB,CAGOM,eAAeC,EAAQC,EAAqBR,GAChD,MAAMS,QAAkBC,EAAcF,EAAOR,GAC7C,OAAOH,EAAOc,UAAUF,EAC3B,CAEOH,eAAeM,EAAQC,EAAgBb,GAC3C,MAAMc,EAASjB,EAAOkB,YAAYF,GAClC,aAAaG,EAAcF,EAAQd,EACtC,CAIOM,eAAeI,EAAcF,EAAYR,SACvCH,EAAOoB,MACb,MAAMC,EAAMnB,EAAUC,GAChBmB,EAAQf,EAAYJ,GACpBoB,QAAmBtB,EAAUuB,eAAeb,GAClD,OAAOX,EAAOyB,sBAAsBF,EAAYD,EAAOD,EAC1D,CAGOZ,eAAeU,EAAcO,EAAiBvB,SAC5CH,EAAOoB,MACb,MAAMC,EAAMnB,EAAUC,GAChBmB,EAAQf,EAAYJ,GAC1B,IACG,MAAMwB,EAAS3B,EAAO4B,2BAA2BF,EAAKJ,EAAOD,GAC7D,OAAKM,QACQ1B,EAAU4B,iBAAiBF,GADpB,IAEtB,CAAC,MAAOG,GACN,OAAO,IACT,CACJ,CAGOrB,eAAesB,EAAKC,SAClBhC,EAAOoB,MACb,MAAMa,EAASjC,EAAOI,mBAAmB,GAAIJ,EAAOM,YAAY0B,IAChE,OAAOhC,EACHc,UAAUmB,GACVC,QAAQ,gBAAiB,GAChC,CAEA,MAAMC,EAAS,CACZzB,UACAK,UACAF,gBACAM,gBACAY"}
1
+ {"version":3,"file":"crypto.mjs","sources":["../../src/include/crypto.ts"],"sourcesContent":["import sodium from \"libsodium-wrappers\";\nimport compresor from \"./compress\";\n\nexport type EncryptInput = string | object | any[];\n\n/** --- Key/Nonce Derivation --- */\nfunction deriveKey(secret: string): Uint8Array {\n return sodium.crypto_generichash(\n sodium.crypto_secretbox_KEYBYTES,\n sodium.from_string(secret)\n );\n}\n\nfunction deriveNonce(secret: string): Uint8Array {\n return sodium.crypto_generichash(\n sodium.crypto_secretbox_NONCEBYTES,\n sodium.from_string(secret)\n );\n}\n\n/** --- STRING --- */\nexport async function encrypt(input: EncryptInput, secret: string): Promise<string> {\n const encrypted = await encryptBuffer(input, secret);\n return sodium.to_base64(encrypted);\n}\n\nexport async function decrypt(base64: string, secret: string): Promise<any | null> {\n const cipher = sodium.from_base64(base64);\n return await decryptBuffer(cipher, secret);\n}\n\n/** --- BUFFER --- */\n// Encrypt\nexport async function encryptBuffer(input: any, secret: string): Promise<Uint8Array> {\n await sodium.ready;\n const key = deriveKey(secret);\n const nonce = deriveNonce(secret);\n const compressed = await compresor.compressBuffer(input);\n return sodium.crypto_secretbox_easy(compressed, nonce, key);\n}\n\n// Decrypt\nexport async function decryptBuffer(box: Uint8Array, secret: string): Promise<any | null> {\n await sodium.ready;\n const key = deriveKey(secret);\n const nonce = deriveNonce(secret);\n try {\n const opened = sodium.crypto_secretbox_open_easy(box, nonce, key);\n if (!opened) return null;\n return await compresor.decompressBuffer(opened);\n } catch (error) {\n return null;\n }\n}\n\n/** --- HASH --- */\nexport async function hash(str: string): Promise<string> {\n await sodium.ready;\n const digest = sodium.crypto_generichash(32, sodium.from_string(str));\n return sodium\n .to_base64(digest)\n .replace(/[^a-zA-Z0-9]/g, \"\")\n}\n\nconst crypto = {\n encrypt,\n decrypt,\n encryptBuffer,\n decryptBuffer,\n hash,\n};\n\nexport default crypto;\n"],"names":[],"mappings":"6EAKA;AACA,SAAS,SAAS,CAAC,MAAc,EAAA;AAC9B,IAAA,OAAO,MAAM,CAAC,kBAAkB,CAC7B,MAAM,CAAC,yBAAyB,EAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAC5B;AACJ;AAEA,SAAS,WAAW,CAAC,MAAc,EAAA;AAChC,IAAA,OAAO,MAAM,CAAC,kBAAkB,CAC7B,MAAM,CAAC,2BAA2B,EAClC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAC5B;AACJ;AAEA;AACO,eAAe,OAAO,CAAC,KAAmB,EAAE,MAAc,EAAA;IAC9D,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;AACpD,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AACrC;AAEO,eAAe,OAAO,CAAC,MAAc,EAAE,MAAc,EAAA;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;AACzC,IAAA,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7C;AAEA;AACA;AACO,eAAe,aAAa,CAAC,KAAU,EAAE,MAAc,EAAA;IAC3D,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;AAC7B,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC;IACxD,OAAO,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9D;AAEA;AACO,eAAe,aAAa,CAAC,GAAe,EAAE,MAAc,EAAA;IAChE,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;AAC7B,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACjC,IAAI;AACD,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;AACjE,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AACxB,QAAA,OAAO,MAAM,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACjD,IAAA;AAAC,IAAA,OAAO,KAAK,EAAE;AACb,QAAA,OAAO,IAAI;AACb,IAAA;AACJ;AAEA;AACO,eAAe,IAAI,CAAC,GAAW,EAAA;IACnC,MAAM,MAAM,CAAC,KAAK;AAClB,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACrE,IAAA,OAAO;SACH,SAAS,CAAC,MAAM;AAChB,SAAA,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACnC;AAEA,MAAM,MAAM,GAAG;IACZ,OAAO;IACP,OAAO;IACP,aAAa;IACb,aAAa;IACb,IAAI;"}
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./server/index.js"),r=require("./client/index.js"),t=require("./include/crypto.js"),u=require("./include/compress.js");exports.SecurequServer=e.default,exports.SecurequClient=r.default,exports.crypto=t.default,exports.compresor=u.default;//# sourceMappingURL=index.js.map
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var index=require('./server/index.js'),index$1=require('./client/index.js'),crypto=require('./include/crypto.js'),compress=require('./include/compress.js');exports.SecurequServer=index.default;exports.SecurequClient=index$1.default;exports.crypto=crypto.default;exports.compresor=compress.default;//# sourceMappingURL=index.js.map
package/index.mjs CHANGED
@@ -1 +1 @@
1
- export{default as SecurequServer}from"./server/index.mjs";export{default as SecurequClient}from"./client/index.mjs";export{default as crypto}from"./include/crypto.mjs";export{default as compresor}from"./include/compress.mjs";//# sourceMappingURL=index.mjs.map
1
+ export{default as SecurequServer}from'./server/index.mjs';export{default as SecurequClient}from'./client/index.mjs';export{default as crypto}from'./include/crypto.mjs';export{default as compresor}from'./include/compress.mjs';//# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "securequ",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "sideEffects": false,