@adnsistemas/pdf-lib 2.7.0 → 2.7.2

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.
package/dist/pdf-lib.js CHANGED
@@ -10331,6 +10331,12 @@
10331
10331
  class PDFWriter {
10332
10332
  constructor(context, objectsPerTick, snapshot) {
10333
10333
  this.parsedObjects = 0;
10334
+ /**
10335
+ * If PDF has an XRef Stream, then the last object will be probably be skipped on saving.
10336
+ * If that's the case, this property will have that object number, and the PDF /Size can
10337
+ * be corrected, to be accurate.
10338
+ */
10339
+ this._largestSkippedObjectNum = 0;
10334
10340
  this.shouldWaitForTick = (n) => {
10335
10341
  this.parsedObjects += n;
10336
10342
  return this.parsedObjects % this.objectsPerTick === 0;
@@ -10339,6 +10345,27 @@
10339
10345
  this.objectsPerTick = objectsPerTick;
10340
10346
  this.snapshot = snapshot;
10341
10347
  }
10348
+ /**
10349
+ * For incremental saves, defers the decision to the snapshot.
10350
+ * For full saves, checks that the object is not an XRef stream object.
10351
+ * @param {boolean} incremental If making an incremental save, or a full save of the PDF
10352
+ * @param {number} objNum Object number
10353
+ * @param {PDFObject} object PDFObject used to check if it is an XRef stream, when not 'incremental' saving
10354
+ * @returns {boolean} whether the object should be saved or not
10355
+ */
10356
+ shouldSave(incremental, objNum, object) {
10357
+ let should = true;
10358
+ if (incremental) {
10359
+ should = this.snapshot.shouldSave(objNum);
10360
+ }
10361
+ else {
10362
+ should = !(object instanceof PDFRawStream &&
10363
+ object.dict.lookup(PDFName.of('Type')) === PDFName.of('XRef'));
10364
+ }
10365
+ if (!should && this._largestSkippedObjectNum < objNum)
10366
+ this._largestSkippedObjectNum = objNum;
10367
+ return should;
10368
+ }
10342
10369
  serializeToBuffer() {
10343
10370
  return __awaiter(this, void 0, void 0, function* () {
10344
10371
  const incremental = !(this.snapshot instanceof DefaultDocumentSnapshot);
@@ -10352,7 +10379,7 @@
10352
10379
  buffer[offset++] = CharCodes$1.Newline;
10353
10380
  for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {
10354
10381
  const [ref, object] = indirectObjects[idx];
10355
- if (!this.snapshot.shouldSave(ref.objectNumber)) {
10382
+ if (!this.shouldSave(incremental, ref.objectNumber, object)) {
10356
10383
  continue;
10357
10384
  }
10358
10385
  const objectNumber = String(ref.objectNumber);
@@ -10398,8 +10425,16 @@
10398
10425
  return refSize + objectSize;
10399
10426
  }
10400
10427
  createTrailerDict(prevStartXRef) {
10428
+ /**
10429
+ * if last object (XRef Stream) is not in the output, then size is one less.
10430
+ * An XRef Stream object should always be the largest object number in PDF
10431
+ */
10432
+ const size = this.context.largestObjectNumber +
10433
+ (this._largestSkippedObjectNum === this.context.largestObjectNumber
10434
+ ? 0
10435
+ : 1);
10401
10436
  return this.context.obj({
10402
- Size: this.context.largestObjectNumber + 1,
10437
+ Size: size,
10403
10438
  Root: this.context.trailerInfo.Root,
10404
10439
  Encrypt: this.context.trailerInfo.Encrypt,
10405
10440
  Info: this.context.trailerInfo.Info,
@@ -10409,6 +10444,7 @@
10409
10444
  }
10410
10445
  computeBufferSize(incremental) {
10411
10446
  return __awaiter(this, void 0, void 0, function* () {
10447
+ this._largestSkippedObjectNum = 0;
10412
10448
  const header = PDFHeader.forVersion(1, 7);
10413
10449
  let size = this.snapshot.pdfSize;
10414
10450
  if (!incremental) {
@@ -10421,7 +10457,7 @@
10421
10457
  for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {
10422
10458
  const indirectObject = indirectObjects[idx];
10423
10459
  const [ref, object] = indirectObject;
10424
- if (!this.snapshot.shouldSave(ref.objectNumber))
10460
+ if (!this.shouldSave(incremental, ref.objectNumber, object))
10425
10461
  continue;
10426
10462
  if (security)
10427
10463
  this.encrypt(ref, object, security);
@@ -13380,7 +13416,7 @@ end\
13380
13416
  else if(depth== 2) for(var x=0; x<w; x++) { var gr= 85*((data[off+(x>>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
13381
13417
  else if(depth== 4) for(var x=0; x<w; x++) { var gr= 17*((data[off+(x>>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
13382
13418
  else if(depth== 8) for(var x=0; x<w; x++) { var gr=data[off+ x], al=(gr ==tr)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
13383
- else if(depth==16) for(var x=0; x<w; x++) { var gr=data[off+(x<<1)], al=(rs(data,off+(x<<i))==tr)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
13419
+ else if(depth==16) for(var x=0; x<w; x++) { var gr=data[off+(x<<1)], al=(rs(data,off+(x<<1))==tr)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }
13384
13420
  }
13385
13421
  }
13386
13422
  //console.log(Date.now()-time);
@@ -13406,6 +13442,7 @@ end\
13406
13442
  //console.log(type,len);
13407
13443
 
13408
13444
  if (type=="IHDR") { UPNG.decode._IHDR(data, offset, out); }
13445
+ else if(type=="CgBI") { out.tabs[type] = data.slice(offset,offset+4); }
13409
13446
  else if(type=="IDAT") {
13410
13447
  for(var i=0; i<len; i++) dd[doff+i] = data[offset+i];
13411
13448
  doff += len;
@@ -13435,11 +13472,16 @@ end\
13435
13472
  out.tabs[type] = [];
13436
13473
  for(var i=0; i<8; i++) out.tabs[type].push(bin.readUint(data, offset+i*4));
13437
13474
  }
13438
- else if(type=="tEXt") {
13475
+ else if(type=="tEXt" || type=="zTXt") {
13439
13476
  if(out.tabs[type]==null) out.tabs[type] = {};
13440
13477
  var nz = bin.nextZero(data, offset);
13441
13478
  var keyw = bin.readASCII(data, offset, nz-offset);
13442
- var text = bin.readASCII(data, nz+1, offset+len-nz-1);
13479
+ var text, tl=offset+len-nz-1;
13480
+ if(type=="tEXt") text = bin.readASCII(data, nz+1, tl);
13481
+ else {
13482
+ var bfr = UPNG.decode._inflate(data.slice(nz+2,nz+2+tl));
13483
+ text = bin.readUTF8(bfr,0,bfr.length);
13484
+ }
13443
13485
  out.tabs[type][keyw] = text;
13444
13486
  }
13445
13487
  else if(type=="iTXt") {
@@ -13447,12 +13489,17 @@ end\
13447
13489
  var nz = 0, off = offset;
13448
13490
  nz = bin.nextZero(data, off);
13449
13491
  var keyw = bin.readASCII(data, off, nz-off); off = nz + 1;
13450
- data[off]; data[off+1]; off+=2;
13492
+ var cflag = data[off]; data[off+1]; off+=2;
13451
13493
  nz = bin.nextZero(data, off);
13452
13494
  bin.readASCII(data, off, nz-off); off = nz + 1;
13453
13495
  nz = bin.nextZero(data, off);
13454
13496
  bin.readUTF8(data, off, nz-off); off = nz + 1;
13455
- var text = bin.readUTF8(data, off, len-(off-offset));
13497
+ var text, tl=len-(off-offset);
13498
+ if(cflag==0) text = bin.readUTF8(data, off, tl);
13499
+ else {
13500
+ var bfr = UPNG.decode._inflate(data.slice(off,off+tl));
13501
+ text = bin.readUTF8(bfr,0,bfr.length);
13502
+ }
13456
13503
  out.tabs[type][keyw] = text;
13457
13504
  }
13458
13505
  else if(type=="PLTE") {
@@ -13479,12 +13526,12 @@ end\
13479
13526
  else if(type=="IEND") {
13480
13527
  break;
13481
13528
  }
13482
- //else { log("unknown chunk type", type, len); }
13529
+ //else { console.log("unknown chunk type", type, len); out.tabs[type]=data.slice(offset,offset+len); }
13483
13530
  offset += len;
13484
13531
  bin.readUint(data, offset); offset += 4;
13485
13532
  }
13486
13533
  if(foff!=0) { var fr = out.frames[out.frames.length-1];
13487
- fr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height); foff=0;
13534
+ fr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height);
13488
13535
  }
13489
13536
  out.data = UPNG.decode._decompress(out, dd, out.width, out.height);
13490
13537
 
@@ -13494,7 +13541,8 @@ end\
13494
13541
 
13495
13542
  UPNG.decode._decompress = function(out, dd, w, h) {
13496
13543
  var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), buff = new Uint8Array((bpl+1+out.interlace)*h);
13497
- dd = UPNG.decode._inflate(dd,buff);
13544
+ if(out.tabs["CgBI"]) dd = UPNG.inflateRaw(dd,buff);
13545
+ else dd = UPNG.decode._inflate(dd,buff);
13498
13546
  if (out.interlace==0) dd = UPNG.decode._filterZero(dd, out, 0, w, h);
13499
13547
  else if(out.interlace==1) dd = UPNG.decode._readInterlace(dd, out);
13500
13548
  //console.log(Date.now()-time);
@@ -13504,7 +13552,7 @@ end\
13504
13552
  UPNG.decode._inflate = function(data, buff) { var out=UPNG["inflateRaw"](new Uint8Array(data.buffer, 2,data.length-6),buff); return out; };
13505
13553
  UPNG.inflateRaw=function(){var H={};H.H={};H.H.N=function(N,W){var R=Uint8Array,i=0,m=0,J=0,h=0,Q=0,X=0,u=0,w=0,d=0,v,C;
13506
13554
  if(N[0]==3&&N[1]==0)return W?W:new R(0);var V=H.H,n=V.b,A=V.e,l=V.R,M=V.n,I=V.A,e=V.Z,b=V.m,Z=W==null;
13507
- if(Z)W=new R(N.length>>>2<<3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7);
13555
+ if(Z)W=new R(N.length>>>2<<5);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7);
13508
13556
  var D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3;
13509
13557
  w+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1;}if(m==2){J=A(N,d,5)+257;
13510
13558
  h=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0;}for(var c=0;
@@ -13601,7 +13649,7 @@ end\
13601
13649
  var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth;
13602
13650
  bpp = Math.ceil(bpp/8);
13603
13651
 
13604
- var i=0, di=1, type=data[off], x=0;
13652
+ var i,di, type=data[off], x=0;
13605
13653
 
13606
13654
  if(type>1) data[off]=[0,0,1][type-2];
13607
13655
  if(type==3) for(x=bpp; x<bpl; x++) data[x+1] = (data[x+1] + (data[x+1-bpp]>>>1) )&255;
@@ -13701,12 +13749,13 @@ end\
13701
13749
 
13702
13750
 
13703
13751
 
13752
+
13704
13753
  UPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte)
13705
13754
  {
13706
13755
  if(ps==null) ps=0;
13707
13756
  if(forbidPlte==null) forbidPlte = false;
13708
13757
 
13709
- var nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]);
13758
+ var nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte,false]);
13710
13759
  UPNG.encode.compressPNG(nimg, -1);
13711
13760
 
13712
13761
  return UPNG.encode._main(nimg, w, h, dels, tabs);
@@ -13854,7 +13903,7 @@ end\
13854
13903
  UPNG.encode.compress = function(bufs, w, h, ps, prms) // prms: onlyBlend, minBits, forbidPlte
13855
13904
  {
13856
13905
  //var time = Date.now();
13857
- var onlyBlend = prms[0], evenCrd = prms[1], forbidPrev = prms[2], minBits = prms[3], forbidPlte = prms[4];
13906
+ var onlyBlend = prms[0], evenCrd = prms[1], forbidPrev = prms[2], minBits = prms[3], forbidPlte = prms[4], dither=prms[5];
13858
13907
 
13859
13908
  var ctype = 6, depth = 8, alphaAnd=255;
13860
13909
 
@@ -13870,17 +13919,27 @@ end\
13870
13919
  var frms = UPNG.encode.framize(bufs, w, h, onlyBlend, evenCrd, forbidPrev);
13871
13920
  //console.log("framize", Date.now()-time); time = Date.now();
13872
13921
 
13873
- var cmap={}, plte=[], inds=[];
13922
+ var cmap={}, plte=[], inds=[];
13874
13923
 
13875
13924
  if(ps!=0) {
13876
13925
  var nbufs = []; for(var i=0; i<frms.length; i++) nbufs.push(frms[i].img.buffer);
13877
13926
 
13878
- var abuf = UPNG.encode.concatRGBA(nbufs), qres = UPNG.quantize(abuf, ps);
13879
- var cof = 0, bb = new Uint8Array(qres.abuf);
13880
- for(var i=0; i<frms.length; i++) { var ti=frms[i].img, bln=ti.length; inds.push(new Uint8Array(qres.inds.buffer, cof>>2, bln>>2));
13881
- for(var j=0; j<bln; j+=4) { ti[j]=bb[cof+j]; ti[j+1]=bb[cof+j+1]; ti[j+2]=bb[cof+j+2]; ti[j+3]=bb[cof+j+3]; } cof+=bln; }
13927
+ var abuf = UPNG.encode.concatRGBA(nbufs), qres = UPNG.quantize(abuf, ps);
13882
13928
 
13883
13929
  for(var i=0; i<qres.plte.length; i++) plte.push(qres.plte[i].est.rgba);
13930
+
13931
+ var cof = 0;
13932
+ for(var i=0; i<frms.length; i++) {
13933
+ var frm=frms[i], bln=frm.img.length, ind = new Uint8Array(qres.inds.buffer, cof>>2, bln>>2); inds.push(ind);
13934
+ var bb = new Uint8Array(qres.abuf,cof,bln);
13935
+
13936
+ //console.log(frm.img, frm.width, frm.height);
13937
+ //var time = Date.now();
13938
+ if(dither) UPNG.encode.dither(frm.img, frm.rect.width, frm.rect.height, plte, bb, ind);
13939
+ //console.log(Date.now()-time);
13940
+ frm.img.set(bb); cof+=bln;
13941
+ }
13942
+
13884
13943
  //console.log("quantize", Date.now()-time); time = Date.now();
13885
13944
  }
13886
13945
  else {
@@ -14072,8 +14131,8 @@ end\
14072
14131
  else if(h*bpl>500000 || bpp==1) ftry=[0];
14073
14132
  var opts; if(levelZero) opts={level:0};
14074
14133
 
14075
- var CMPR = (levelZero && UZIP!=null) ? UZIP : pako$1;
14076
14134
 
14135
+ var CMPR = (data.length>10e6 && UZIP!=null) ? UZIP : pako$1;
14077
14136
  for(var i=0; i<ftry.length; i++) {
14078
14137
  for(var y=0; y<h; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, ftry[i]);
14079
14138
  //var nimg = new Uint8Array(data.length);
@@ -14083,6 +14142,7 @@ end\
14083
14142
  //console.log(crc, UZIP.adler(data,2,data.length-6));
14084
14143
  fls.push(CMPR["deflate"](data,opts));
14085
14144
  }
14145
+
14086
14146
  var ti, tsize=1e9;
14087
14147
  for(var i=0; i<fls.length; i++) if(fls[i].length<tsize) { ti=i; tsize=fls[i].length; }
14088
14148
  return fls[ti];
@@ -14137,27 +14197,30 @@ end\
14137
14197
 
14138
14198
  UPNG.quantize = function(abuf, ps)
14139
14199
  {
14140
- var oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer);
14200
+ var sb = new Uint8Array(abuf), tb = sb.slice(0), tb32 = new Uint32Array(tb.buffer);
14141
14201
 
14142
- var KD = UPNG.quantize.getKDtree(nimg, ps);
14202
+ var KD = UPNG.quantize.getKDtree(tb, ps);
14143
14203
  var root = KD[0], leafs = KD[1];
14144
14204
 
14145
- UPNG.quantize.planeDst;
14146
- var sb = oimg, tb = nimg32, len=sb.length;
14205
+ var planeDst = UPNG.quantize.planeDst;
14206
+ var len=sb.length;
14147
14207
 
14148
- var inds = new Uint8Array(oimg.length>>2);
14149
- for(var i=0; i<len; i+=4) {
14150
- var r=sb[i]*(1/255), g=sb[i+1]*(1/255), b=sb[i+2]*(1/255), a=sb[i+3]*(1/255);
14151
-
14152
- // exact, but too slow :(
14153
- var nd = UPNG.quantize.getNearest(root, r, g, b, a);
14154
- //var nd = root;
14155
- //while(nd.left) nd = (planeDst(nd.est,r,g,b,a)<=0) ? nd.left : nd.right;
14156
-
14157
- inds[i>>2] = nd.ind;
14158
- tb[i>>2] = nd.est.rgba;
14159
- }
14160
- return { abuf:nimg.buffer, inds:inds, plte:leafs };
14208
+ var inds = new Uint8Array(len>>2), nd;
14209
+ if(sb.length<20e6) // precise, but slow :(
14210
+ for(var i=0; i<len; i+=4) {
14211
+ var r=sb[i]*(1/255), g=sb[i+1]*(1/255), b=sb[i+2]*(1/255), a=sb[i+3]*(1/255);
14212
+
14213
+ nd = UPNG.quantize.getNearest(root, r, g, b, a);
14214
+ inds[i>>2] = nd.ind; tb32[i>>2] = nd.est.rgba;
14215
+ }
14216
+ else
14217
+ for(var i=0; i<len; i+=4) {
14218
+ var r=sb[i]*(1/255), g=sb[i+1]*(1/255), b=sb[i+2]*(1/255), a=sb[i+3]*(1/255);
14219
+
14220
+ nd = root; while(nd.left) nd = (planeDst(nd.est,r,g,b,a)<=0) ? nd.left : nd.right;
14221
+ inds[i>>2] = nd.ind; tb32[i>>2] = nd.est.rgba;
14222
+ }
14223
+ return { abuf:tb.buffer, inds:inds, plte:leafs };
14161
14224
  };
14162
14225
 
14163
14226
  UPNG.quantize.getKDtree = function(nimg, ps, err) {
@@ -14265,12 +14328,12 @@ end\
14265
14328
  ];
14266
14329
 
14267
14330
  var A = Rj, M = UPNG.M4;
14268
- var b = [0.5,0.5,0.5,0.5], mi = 0, tmi = 0;
14331
+ var b = [Math.random(),Math.random(),Math.random(),Math.random()], mi = 0, tmi = 0;
14269
14332
 
14270
14333
  if(N!=0)
14271
- for(var i=0; i<10; i++) {
14334
+ for(var i=0; i<16; i++) {
14272
14335
  b = M.multVec(A, b); tmi = Math.sqrt(M.dot(b,b)); b = M.sml(1/tmi, b);
14273
- if(Math.abs(tmi-mi)<1e-9) break; mi = tmi;
14336
+ if(i!=0 && Math.abs(tmi-mi)<1e-9) break; mi = tmi;
14274
14337
  }
14275
14338
  //b = [0,0,1,0]; mi=N;
14276
14339
  var q = [m0*iN, m1*iN, m2*iN, m3*iN];
@@ -14307,6 +14370,66 @@ end\
14307
14370
  return nimg.buffer;
14308
14371
  };
14309
14372
 
14373
+ UPNG.encode.dither = function(sb, w, h, plte, tb, oind) {
14374
+
14375
+ function addErr(er, tg, ti, f) {
14376
+ tg[ti]+=(er[0]*f)>>4; tg[ti+1]+=(er[1]*f)>>4; tg[ti+2]+=(er[2]*f)>>4; tg[ti+3]+=(er[3]*f)>>4;
14377
+ }
14378
+ function N(x) { return Math.max(0, Math.min(255, x)); }
14379
+ function D(a,b) { var dr=a[0]-b[0], dg=a[1]-b[1], db=a[2]-b[2], da=a[3]-b[3]; return (dr*dr + dg*dg + db*db + da*da); }
14380
+
14381
+
14382
+ var pc=plte.length, nplt = [];
14383
+ for(var i=0; i<pc; i++) {
14384
+ var c = plte[i];
14385
+ nplt.push([((c>>>0)&255), ((c>>>8)&255), ((c>>>16)&255), ((c>>>24)&255)]);
14386
+ }
14387
+ for(var i=0; i<pc; i++) {
14388
+ var ne=0xffffffff, ni=0;
14389
+ for(var j=0; j<pc; j++) { var ce=D(nplt[i],nplt[j]); if(j!=i && ce<ne) { ne=ce; ni=j; } }
14390
+ }
14391
+
14392
+ var tb32 = new Uint32Array(tb.buffer);
14393
+ var err = new Int16Array(w*h*4);
14394
+
14395
+ for(var y=0; y<h; y++) {
14396
+ for(var x=0; x<w; x++) {
14397
+ var i = (y*w+x)*4;
14398
+
14399
+ var cc = [N(sb[i]+err[i]), N(sb[i+1]+err[i+1]), N(sb[i+2]+err[i+2]), N(sb[i+3]+err[i+3])];
14400
+
14401
+ var ni=0, nd = 0xffffff;
14402
+ for(var j=0; j<pc; j++) {
14403
+ var cd = D(cc,nplt[j]);
14404
+ if(cd<nd) { nd=cd; ni=j; }
14405
+ }
14406
+
14407
+ //ni = oind[i>>2];
14408
+ var nc = nplt[ni];
14409
+ var er = [cc[0]-nc[0], cc[1]-nc[1], cc[2]-nc[2], cc[3]-nc[3]];
14410
+
14411
+ //addErr(er, err, i+4, 16);
14412
+
14413
+ //*
14414
+ if(x!=w-1) addErr(er, err, i+4 , 7);
14415
+ if(y!=h-1) {
14416
+ if(x!= 0) addErr(er, err, i+4*w-4, 3);
14417
+ addErr(er, err, i+4*w , 5);
14418
+ if(x!=w-1) addErr(er, err, i+4*w+4, 1); //*/
14419
+ }
14420
+
14421
+ oind[i>>2] = ni; tb32[i>>2] = plte[ni];
14422
+ }
14423
+ }
14424
+ };
14425
+ if (typeof module !== 'undefined') {
14426
+ if (exports && exports.default) {
14427
+ module.exports = exports.default;
14428
+ } else if (exports) {
14429
+ module.exports = exports;
14430
+ }
14431
+ }
14432
+
14310
14433
  const getImageType = (ctype) => {
14311
14434
  if (ctype === 0)
14312
14435
  return PngType.Greyscale;