UNPKG

iconv-tiny

Version:

Pure JS ESM Encodings Set for Browser and NodeJS

22 lines (20 loc) 5.35 kB
/** * Code generated. DO NOT EDIT. * This file is part of Iconv-Tiny v1.1.0 * (c) 2025-present vip.delete * @license MIT **/ const ns = {}; (function(){class k{constructor(a){this.h=a}getName(){return this.h}decode(a,b){b=this.newDecoder(b);return b.decode(a)+b.decode()}encode(a,b){return this.newEncoder(b).encode(a)}}class l extends k{newDecoder(){return new m(new TextDecoder(this.h))}}class m{constructor(a){this.g=a}decode(a){return a?this.g.decode(a,{stream:!0}):this.g.decode()}};class n{constructor(a,b,c){this.g=a;this.i=b;this.h=c}create(a){var b=this.i,c=this.h??"";const d=(new Uint16Array(256)).fill(65533);for(var e=0;e<256-b.length;)d[e]=e++;let f=0;for(;e<256;)d[e++]=b.charCodeAt(f++);for(b=0;b<c.length;)d[c.charCodeAt(b)]=c.charCodeAt(b+1),b+=2;a=a?.overrides??[];for(c=0;c<a.length-1;)b=a[c++],e=a[c++],d[Number(b)]=typeof e==="number"?e:e.charCodeAt(0);return new p(this.g,d)}} class p extends l{constructor(a,b){super(a);this.i=b;this.g=null;try{super.newDecoder(),this.j=!0}catch{this.j=!1}}newDecoder(a){const b=a?.defaultCharUnicode;return this.j&&(a?.native??!1)?super.newDecoder():new q(this.i,b)}newEncoder(a){if(!this.g){this.g=(new Uint16Array(65536)).fill(65533);for(let b=0;b<256;b++){const c=this.i[b];c!==65533&&(this.g[c]=b)}}return new r(this.g,a?.defaultCharByte)}} class q{constructor(a,b){this.g=a;if(typeof b!=="function"){const c=b?.length?b.charCodeAt(0):65533;b=()=>c}this.h=b}decode(a){if(!a)return"";const b=this.g,c=this.h,d=a.length,e=new Uint16Array(d);for(let f=0;f<d;f++){const g=a[f],h=b[g];e[f]=h===65533?c(g,f)??h:h}return(new TextDecoder("UTF-16LE")).decode(e)}} class r{constructor(a,b){this.g=a;if(typeof b!=="function"){const c=b?.length?b.charCodeAt(0):63;b=()=>c}this.h=b}encode(a){if(!a)return new Uint8Array(0);const b=new Uint8Array(a.length);this.encodeInto(a,b);return b}encodeInto(a,b){const c=this.g,d=this.h,e=Math.min(a.length,b.length);for(let f=0;f<e;f++){const g=a.charCodeAt(f),h=c[g];b[f]=h===65533?d(g,f)??63:h}return{read:e,written:e}}};class t{constructor(a,b){this.h=a;this.g=b}create(){return new u(this.h,this.g)}}class u extends k{constructor(a,b){super(v[a]+w[b]);this.g=a;this.i=b}newDecoder(a){return new x[this.g](!(a?.stripBOM??1),this.i)}newEncoder(a){return new y[this.g](a?.addBOM??0,this.g,this.i)}}class z extends m{constructor(a){super(new TextDecoder("UTF-8",{ignoreBOM:a}))}} class D{constructor(a){this.addBOM=a;this.g=new TextEncoder}encode(a){if(!a)return new Uint8Array(0);const b=new Uint8Array((this.addBOM?4:0)+a.length*4);({written:a}=this.encodeInto(a,b));return b.subarray(0,a)}encodeInto(a,b){let c=0;if(this.addBOM){if(b.length<3)return{read:0,written:0};b[0]=239;b[1]=187;b[2]=191;c+=3;this.addBOM=0}const {read:d,written:e}=this.g.encodeInto(a,b.subarray(c));return{read:d,written:e+c}}} class E{constructor(a,b,c){this.addBOM=a;this.h=F[b];this.g=G[b][c]}encode(a){if(!a)return new Uint8Array(0);var b=this.h;b=new Uint8Array((this.addBOM?b:0)+a.length*b);({written:a}=this.encodeInto(a,b));return b.subarray(0,a)}encodeInto(a,b){const c=this.h;var d=this.g;let e=0;if(this.addBOM){if(b.length<c)return{read:0,written:0};d("",0,b,e);e+=c;this.addBOM=0}d=Math.min(a.length,b.length-e&~(c-1));for(let f=0;f<d;f++,e+=c)f=this.g(a,f,b,e);return{read:d,written:e}}} class H extends m{constructor(a,b){super(new TextDecoder("UTF-16"+w[b],{ignoreBOM:a}))}} class I{constructor(a,b){this.i=a;this.h=new Uint8Array(4);this.g=0;this.get=J[b]}decode(a){if(!a)return this.g?String.fromCharCode(65533):"";const b=new Uint8Array(a.length+4);let c=0,d=0;if(this.g){for(;this.g<4&&c<a.length;)this.h[this.g++]=a[c++];if(this.g<4)return"";d=K(b,d,this.get(this.h,0))}const e=a.length-3;for(;c<e;c+=4)d=K(b,d,this.get(a,c));(this.g=a.length-c)&&this.h.set(a.subarray(c));return(new TextDecoder("UTF-16",{ignoreBOM:this.i})).decode(b.subarray(0,d))}} function K(a,b,c){c>1114111&&(c=65533);if(c>65535){c-=65536;const d=55296|c>>10;a[b++]=d;a[b++]=d>>8;c=56320|c&1023}a[b++]=c;a[b++]=c>>8;return b} const w=["LE","BE",""],v=["UTF-16","UTF-32","UTF-8"],G=[[function(a,b,c,d){a=a.charCodeAt(b);c[d]=a;c[d+1]=a>>8;return b},function(a,b,c,d){a=a.charCodeAt(b);c[d]=a>>8;c[d+1]=a;return b}],[function(a,b,c,d){a=a.codePointAt(b);c[d]=a;c[d+1]=a>>8;c[d+2]=a>>16;c[d+3]=a>>24;return a>65535?b+1:b},function(a,b,c,d){a=a.codePointAt(b);c[d]=a>>24;c[d+1]=a>>16;c[d+2]=a>>8;c[d+3]=a;return a>65535?b+1:b}]],J=[function(a,b){return(a[b]|a[b+1]<<8|a[b+2]<<16|a[b+3]<<24)>>>0},function(a,b){return(a[b]<<24|a[b+1]<< 16|a[b+2]<<8|a[b+3])>>>0}],F=[2,4],x=[H,I,z],y=[E,E,D];class L{constructor(a,b){a??={};const c=new Map;this.cache=new Map;b=(b??"").split(",").map(d=>d.split(" ").map(M));for(const d of Object.keys(a)){const e=a[d];if(e?.create){const f=M(d);c.set(f,e);b.filter(g=>g.includes(f)).forEach(g=>g.forEach(h=>c.set(h,e)))}}this.g=c}decode(a,b,c){return this.getEncoding(b,c).decode(a,c)}encode(a,b,c){return this.getEncoding(b,c).encode(a,c)}getEncoding(a,b){a=M(a);const c=a+(b?.overrides??"");var d=this.cache.get(c);if(!d){d=this.g.get(a);if(!d)throw Error(`Encoding "${a}" not supported`); d=d.create(b);this.cache.set(c,d)}return d}}function M(a){return a.toLowerCase().replace(/[^a-z0-9]/gu,"").replace(/(?<!\d)0+/gu,"")};ns.IconvTiny=L;ns.canonicalize=M;ns.SBCS=n;ns.Unicode=t;})(); export const { IconvTiny, canonicalize, SBCS, Unicode } = ns;