UNPKG

@ddunigma/node

Version:
1 lines 1.9 kB
'use strict';var chunkA3OZJS5G_cjs=require('./chunk-A3OZJS5G.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var i=44032,h=55203,c=h-i+1;function u(t){if(t.length===0)throw new chunkZTGECGM2_cjs.n("[Ddu64 obfuscation] Alphabet must not be empty.");if(t.length>c)throw new chunkZTGECGM2_cjs.n(`[Ddu64 obfuscation] Alphabet size (${t.length}) exceeds available Hangul syllables (${c}).`);let r=Math.floor(c/t.length),n=new Map;for(let e=0;e<t.length;e++)n.set(t[e],e);return {alphabet:t,syllablesPerChar:r,charToIndex:n}}chunkBCUBYE76_cjs.a(u,"buildSyllableMap");function g(t,r,n){let e=i+t*n.syllablesPerChar,o=r%n.syllablesPerChar;return e+o}chunkBCUBYE76_cjs.a(g,"charToSyllable");function d(t,r){if(t<i||t>h)return -1;let n=t-i,e=Math.floor(n/r.syllablesPerChar);return e>=r.alphabet.length?-1:e}chunkBCUBYE76_cjs.a(d,"syllableToCharIndex");var f=class{static{chunkBCUBYE76_cjs.a(this,"HangulObfuscationLayer");}config;constructor(r){this.config=u(r);}obfuscate(r){if(r.length===0)return "";let n=new Array(r.length);for(let e=0;e<r.length;e++){let o=r[e],s=this.config.charToIndex.get(o);if(s===void 0)throw new chunkZTGECGM2_cjs.n(`[Ddu64 obfuscation] Character "${o}" (U+${o.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase()}) not found in obfuscation alphabet.`);let p=g(s,e,this.config);n[e]=String.fromCharCode(p);}return n.join("")}deobfuscate(r){if(r.length===0)return "";let n=new Array(r.length);for(let e=0;e<r.length;e++){let o=r.charCodeAt(e),s=d(o,this.config);if(s===-1)throw new chunkZTGECGM2_cjs.n(`[Ddu64 obfuscation] Invalid syllable at position ${e}: U+${o.toString(16).padStart(4,"0").toUpperCase()} is not in the mapped range.`);n[e]=this.config.alphabet[s];}return n.join("")}};function A(t,r){return new f(chunkA3OZJS5G_cjs.g(t,r))}chunkBCUBYE76_cjs.a(A,"createEncoderObfuscationLayer");exports.a=f;exports.b=A;