@ddunigma/node
Version:
1 lines • 3.43 kB
JavaScript
import {a as a$1,e,b,c}from'./chunk-Q6SCBUV2.js';import {a}from'./chunk-EI7MMDWY.js';import {pbkdf2,pbkdf2Sync,createHash,randomBytes,createCipheriv,createDecipheriv}from'crypto';import {deflateRaw,inflateRaw,brotliCompress,brotliDecompress,deflateRawSync,inflateRawSync,constants,brotliCompressSync,brotliDecompressSync}from'zlib';import {promisify}from'util';var C=promisify(deflateRaw),O=promisify(inflateRaw),z=promisify(brotliCompress),I=promisify(brotliDecompress),F=promisify(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")}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}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)}a(o,"toBufferView");function i(e){let t=new Uint8Array(e.byteLength);return t.set(e),t}a(i,"toOwnedUint8Array");var S=class{static{a(this,"NodeAdapter");}runtime="node";async deriveKey(t,r){if(a$1(r)==="pbkdf2"){let n=await F(t,e(r?.salt),b(r?.iterations),32,c(r?.hash));return i(n)}return this.deriveKeySync(t,r)}deriveKeySync(t,r){return a$1(r)==="pbkdf2"?i(pbkdf2Sync(t,e(r?.salt),b(r?.iterations),32,c(r?.hash))):i(createHash("sha256").update(t).digest())}async encrypt(t,r,n){return this.encryptSync(t,r,n)}encryptSync(t,r,n){let s=randomBytes(12),a=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=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(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(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(inflateRawSync(o(t)));try{return i(inflateRawSync(o(t),{maxOutputLength:r}))}catch(n){p(n,r,"inflate");}}async brotliCompress(t,r){let n={};r!==void 0&&(n.params={[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={[constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,r))}),i(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(brotliDecompressSync(o(t)));try{return i(brotliDecompressSync(o(t),{maxOutputLength:r}))}catch(n){p(n,r,"brotli");}}};export{S as a};