@ddunigma/node
Version:
1 lines • 3.61 kB
JavaScript
;var chunkJY2ZPBJK_cjs=require('./chunk-JY2ZPBJK.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs'),crypto=require('crypto'),zlib=require('zlib'),util=require('util');var C=util.promisify(zlib.deflateRaw),O=util.promisify(zlib.inflateRaw),z=util.promisify(zlib.brotliCompress),I=util.promisify(zlib.brotliDecompress),F=util.promisify(crypto.pbkdf2);function K(e){let t=e,r=String(t?.message??"").toLowerCase();return String(t?.code??"")==="ERR_BUFFER_TOO_LARGE"||r.includes("output length")||r.includes("buffer too large")||r.includes("cannot create a buffer larger")}chunkBCUBYE76_cjs.a(K,"isBufferTooLargeError");function p(e,t,r){throw K(e)?new Error(`[Ddu64 ${r}] Decompressed data exceeds limit. Limit: ${t} bytes`,{cause:e}):e}chunkBCUBYE76_cjs.a(p,"rethrowDecompressLimitError");function o(e){return Buffer.isBuffer(e)?e:e.buffer instanceof SharedArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength)}chunkBCUBYE76_cjs.a(o,"toBufferView");function i(e){let t=new Uint8Array(e.byteLength);return t.set(e),t}chunkBCUBYE76_cjs.a(i,"toOwnedUint8Array");var S=class{static{chunkBCUBYE76_cjs.a(this,"NodeAdapter");}runtime="node";async deriveKey(t,r){if(chunkJY2ZPBJK_cjs.a(r)==="pbkdf2"){let n=await F(t,chunkJY2ZPBJK_cjs.e(r?.salt),chunkJY2ZPBJK_cjs.b(r?.iterations),32,chunkJY2ZPBJK_cjs.c(r?.hash));return i(n)}return this.deriveKeySync(t,r)}deriveKeySync(t,r){return chunkJY2ZPBJK_cjs.a(r)==="pbkdf2"?i(crypto.pbkdf2Sync(t,chunkJY2ZPBJK_cjs.e(r?.salt),chunkJY2ZPBJK_cjs.b(r?.iterations),32,chunkJY2ZPBJK_cjs.c(r?.hash))):i(crypto.createHash("sha256").update(t).digest())}async encrypt(t,r,n){return this.encryptSync(t,r,n)}encryptSync(t,r,n){let s=crypto.randomBytes(12),a=crypto.createCipheriv("aes-256-gcm",r,s);n&&n.length>0&&a.setAAD(o(n));let l=Buffer.concat([a.update(t),a.final()]),c=a.getAuthTag(),u=new Uint8Array(28+l.length);return u.set(s,0),u.set(c,12),u.set(l,28),u}async decrypt(t,r,n){return this.decryptSync(t,r,n)}decryptSync(t,r,n){if(t.length<28)throw new Error("[Ddu64 decrypt] Invalid encrypted data: too short");let s=t.subarray(0,12),a=t.subarray(12,28),l=t.subarray(28),c=crypto.createDecipheriv("aes-256-gcm",r,s);n&&n.length>0&&c.setAAD(o(n)),c.setAuthTag(a);let u=Buffer.concat([c.update(l),c.final()]);return i(u)}randomBytes(t){return i(crypto.randomBytes(t))}async deflate(t,r){let n={};r!==void 0&&(n.level=r);let s=await C(o(t),n);return i(s)}deflateSync(t,r){let n={};return r!==void 0&&(n.level=r),i(zlib.deflateRawSync(o(t),n))}async inflate(t,r){if(r===void 0||r===Number.POSITIVE_INFINITY){let s=await O(o(t));return i(s)}let n={maxOutputLength:r};try{let s=await O(o(t),n);return i(s)}catch(s){p(s,r,"inflate");}}inflateSync(t,r){if(r===void 0||r===Number.POSITIVE_INFINITY)return i(zlib.inflateRawSync(o(t)));try{return i(zlib.inflateRawSync(o(t),{maxOutputLength:r}))}catch(n){p(n,r,"inflate");}}async brotliCompress(t,r){let n={};r!==void 0&&(n.params={[zlib.constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,r))});let s=await z(o(t),n);return i(s)}brotliCompressSync(t,r){let n={};return r!==void 0&&(n.params={[zlib.constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,r))}),i(zlib.brotliCompressSync(o(t),n))}async brotliDecompress(t,r){if(r===void 0||r===Number.POSITIVE_INFINITY){let n=await I(o(t));return i(n)}try{let n=await I(o(t),{maxOutputLength:r});return i(n)}catch(n){p(n,r,"brotli");}}brotliDecompressSync(t,r){if(r===void 0||r===Number.POSITIVE_INFINITY)return i(zlib.brotliDecompressSync(o(t)));try{return i(zlib.brotliDecompressSync(o(t),{maxOutputLength:r}))}catch(n){p(n,r,"brotli");}}};exports.a=S;