├── .gitignore ├── JS_Packer.html ├── README.md ├── example └── png.html └── lib └── canvastool.pngencoder.min.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | *.sass-cache 4 | .DS_Store 5 | .cache 6 | Thumbs.db 7 | _notes 8 | config.rb 9 | 10 | _sandbox.html 11 | -------------------------------------------------------------------------------- /JS_Packer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JS Packer 7 | 8 | 9 |

JS Packer

10 |

pack JavaScript into a self-extracting PNG

11 |

usage

12 |
    13 |
  1. Paste your JS code into the textarea
  2. 14 |
  3. Press the pack button
  4. 15 |
  5. Download the result (either the dataURI or the image)
  6. 16 |
  7. Open it in your WebBrowser as a html file
  8. 17 |
18 | 19 | 24 | 25 |
26 |
27 |
28 | 29 | 30 | 244 | 245 | 246 | 247 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [see JS_Packer](http://yomotsu.github.com/JS_Packer/JS_Packer.html) 2 | -------------------------------------------------------------------------------- /example/png.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yomotsu/JS_Packer/c56a53ab57d3dbcf24b48c09094c0b7a2cffa515/example/png.html -------------------------------------------------------------------------------- /lib/canvastool.pngencoder.min.js: -------------------------------------------------------------------------------- 1 | /** @license CanvasTool.PngEncoder 2012 - imaya [ https://github.com/imaya/CanvasTool.PngEncoder ] The MIT License */ 2 | (function() {'use strict';var aa=this;function j(a,c,b){a=a.split(".");b=b||aa;!(a[0]in b)&&b.execScript&&b.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)!a.length&&void 0!==c?b[e]=c:b=b[e]?b[e]:b[e]={}}Math.floor(2147483648*Math.random()).toString(36);var m="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array;function n(a,c){this.index="number"===typeof c?c:0;this.r=0;this.buffer=a instanceof(m?Uint8Array:Array)?a:new (m?Uint8Array:Array)(32768);if(2*this.buffer.length<=this.index)throw Error("invalid index");this.buffer.length<=this.index&&this.I()}n.prototype.I=function(){var a=this.buffer,c,b=a.length,e=new (m?Uint8Array:Array)(b<<1);if(m)e.set(a);else for(c=0;c>>8&255]<<16|r[a>>>16&255]<<8|r[a>>>24&255])>>32-c:r[a]>>8-c);if(8>c+f)g=g<>c-b-1&1,8===++f&&(f=0,e[d++]=r[g],g=0,d===e.length&&(e=this.I()));e[d]=g;this.buffer=e;this.r=f;this.index=d};n.prototype.finish=function(){var a=this.buffer,c=this.index;0w;++w){for(var ca=ba,da=w,x=w,z=x,ea=7,x=x>>>1;x;x>>>=1)z<<=1,z|=x&1,--ea;ca[da]=(z<>>0}var r=ba;var A={ca:function(a,c,b){return A.update(a,0,c,b)},update:function(a,c,b,e){for(var d=A.aa,f="number"===typeof b?b:b=0,e="number"===typeof e?e:a.length,c=c^4294967295,f=e&7;f--;++b)c=c>>>8^d[(c^a[b])&255];for(f=e>>3;f--;b+=8)c=c>>>8^d[(c^a[b])&255],c=c>>>8^d[(c^a[b+1])&255],c=c>>>8^d[(c^a[b+2])&255],c=c>>>8^d[(c^a[b+3])&255],c=c>>>8^d[(c^a[b+4])&255],c=c>>>8^d[(c^a[b+5])&255],c=c>>>8^d[(c^a[b+6])&255],c=c>>>8^d[(c^a[b+7])&255];return(c^4294967295)>>>0}},fa,ga=[0,1996959894,3993919788,2567524794, 5 | 124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304, 6 | 3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486, 7 | 2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580, 8 | 2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221, 9 | 2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863, 10 | 817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];fa=m?new Uint32Array(ga):ga;A.aa=fa;function B(a){this.buffer=new (m?Uint16Array:Array)(2*a);this.length=0}B.prototype.getParent=function(a){return 2*((a-2)/4|0)};B.prototype.ra=function(a){return 2*a+2};B.prototype.push=function(a,c){var b,e,d=this.buffer,f;b=this.length;d[this.length++]=c;for(d[this.length++]=a;0d[e])f=d[b],d[b]=d[e],d[e]=f,f=d[b+1],d[b+1]=d[e+1],d[e+1]=f,b=e;else break;return this.length}; 11 | B.prototype.pop=function(){var a,c,b=this.buffer,e,d,f;c=b[0];a=b[1];this.length-=2;b[0]=b[this.length];b[1]=b[this.length+1];for(f=0;;){d=this.ra(f);if(d>=this.length)break;d+2b[d]&&(d+=2);if(b[d]>b[f])e=b[f],b[f]=b[d],b[d]=e,e=b[f+1],b[f+1]=b[d+1],b[d+1]=e;else break;f=d}return{index:a,value:c,length:this.length}};function C(a){var c=a.length,b=0,e=Number.POSITIVE_INFINITY,d,f,g,h,k,p,l,o,i;for(o=0;ob&&(b=a[o]),a[o]>=1;for(i=p;iG;G++)switch(!0){case 143>=G:F.push([G+48,8]);break;case 255>=G:F.push([G-144+400,9]);break;case 279>=G:F.push([G-256+0,7]);break;case 287>=G:F.push([G-280+192,8]);break;default:throw"invalid literal: "+G;} 13 | D.prototype.o=function(){var a,c,b,e=this.input;switch(this.p){case 0:c=0;for(b=e.length;c>>8&255;d[f++]=e&255;d[f++]=e>>>8&255;if(m)d.set(a,f),f+=a.length,d=d.subarray(0,f);else{b=0;for(e=a.length;bu;u++)v[u]=t[h[u]];for(g=19;4=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272,a-31,2];case 42>= 20 | a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:throw"invalid length: "+a;}}var I=[],J,K;for(J=3;258>=J;J++)K=ia(J),I[J]=K[2]<<24|K[1]<<16|K[0]; 21 | var ja=m?new Uint32Array(I):I; 22 | H.prototype.sa=function(a){switch(!0){case 1===a:a=[0,a-1,0];break;case 2===a:a=[1,a-2,0];break;case 3===a:a=[2,a-3,0];break;case 4===a:a=[3,a-4,0];break;case 6>=a:a=[4,a-5,1];break;case 8>=a:a=[5,a-7,1];break;case 12>=a:a=[6,a-9,2];break;case 16>=a:a=[7,a-13,2];break;case 24>=a:a=[8,a-17,3];break;case 32>=a:a=[9,a-25,3];break;case 48>=a:a=[10,a-33,4];break;case 64>=a:a=[11,a-49,4];break;case 96>=a:a=[12,a-65,5];break;case 128>=a:a=[13,a-97,5];break;case 192>=a:a=[14,a-129,6];break;case 256>=a:a= 23 | [15,a-193,6];break;case 384>=a:a=[16,a-257,7];break;case 512>=a:a=[17,a-385,7];break;case 768>=a:a=[18,a-513,8];break;case 1024>=a:a=[19,a-769,8];break;case 1536>=a:a=[20,a-1025,9];break;case 2048>=a:a=[21,a-1537,9];break;case 3072>=a:a=[22,a-2049,10];break;case 4096>=a:a=[23,a-3073,10];break;case 6144>=a:a=[24,a-4097,11];break;case 8192>=a:a=[25,a-6145,11];break;case 12288>=a:a=[26,a-8193,12];break;case 16384>=a:a=[27,a-12289,12];break;case 24576>=a:a=[28,a-16385,13];break;case 32768>=a:a=[29,a- 24 | 24577,13];break;default:throw"invalid distance";}return a};H.prototype.fb=function(){var a=this.ba,c=[],b=0,e;e=ja[this.length];c[b++]=e&65535;c[b++]=e>>16&255;c[b++]=e>>24;e=this.sa(a);c[b++]=e[0];c[b++]=e[1];c[b++]=e[2];return c}; 25 | D.prototype.Q=function(a){function c(a,b){var c=a.fb(),d,e;d=0;for(e=c.length;d=d;)i[d++]=0;for(d=0;29>=d;)t[d++]=0}i[256]=1;b=0;for(e=a.length;b=e){k&&c(k,-1);d=0;for(f=e-b;dg&&c+gf&&(d=e,f=g);if(258===g)break}return new H(f,c-d)}; 28 | D.prototype.va=function(a,c,b,e){var d=new (m?Uint32Array:Array)(a+b),f,g,h=new (m?Uint32Array:Array)(316),k=new (m?Uint8Array:Array)(19);for(f=g=0;fa)for(;0a?a:138,e>a-3&&e=e?(h[b++]=17,h[b++]=e-3,k[17]++):(h[b++]=18,h[b++]=e-11,k[18]++),a-=e;else if(h[b++]=d[f],k[d[f]]++, 29 | a--,3>a)for(;0a?a:6,e>a-3&&e2*d[i-1]+f[i]&&(d[i]=2*d[i-1]+f[i]),h[i]=Array(d[i]),k[i]=Array(d[i]);for(l=0;la[l]?(h[i][o]=b,k[i][o]=c,t+=2):(h[i][o]=a[l],k[i][o]=l,++l);p[i]=0;1===f[i]&&e(i)}return g}; 33 | D.prototype.z=function(a){var c=new (m?Uint16Array:Array)(a.length),b=[],e=[],d=0,f,g,h;f=0;for(g=a.length;f1<d)throw"undercommitted";f=0;for(g=a.length;f>>=1}return c};function L(a,c){this.input=a;this.b=new (m?Uint8Array:Array)(32768);this.p=M.F;var b={},e;if((c||!(c={}))&&"number"===typeof c.compressionType)this.p=c.compressionType;for(e in c)b[e]=c[e];b.outputBuffer=this.b;this.U=new D(this.input,b)}var M=ha; 34 | L.prototype.o=function(){var a,c,b,e=0;b=this.b;a=N;switch(a){case N:c=Math.LOG2E*Math.log(32768)-8;break;default:throw Error("invalid compression method");}c=c<<4|a;b[e++]=c;switch(a){case N:switch(this.p){case M.NONE:a=0;break;case M.Z:a=1;break;case M.F:a=2;break;default:throw Error("unsupported compression type");}break;default:throw Error("invalid compression method");}a=a<<6|0;b[e++]=a|31-(256*c+a)%31;b=this.input;if("string"===typeof b){b=b.split("");c=0;for(a=b.length;c>>0}c=1;a=0;for(var d=b.length,f,g=0;0>>0;this.U.h=e;b=this.U.o();e=b.length;m&&(b=new Uint8Array(b.buffer),b.length<=e+4&&(this.b=new Uint8Array(b.length+4),this.b.set(b),b=this.b),b=b.subarray(0,e+4));b[e++]=c>>24&255;b[e++]=c>>16&255;b[e++]=c>>8&255;b[e++]=c&255;return b};var ka=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];m&&new Uint16Array(ka);var la=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258];m&&new Uint16Array(la);var ma=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0];m&&new Uint8Array(ma);var na=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];m&&new Uint16Array(na); 36 | var oa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];m&&new Uint8Array(oa);var O=new (m?Uint8Array:Array)(288),P,pa;P=0;for(pa=O.length;P=P?8:255>=P?9:279>=P?7:8;C(O);var qa=new (m?Uint8Array:Array)(30),Q,ra;Q=0;for(ra=qa.length;Q=R?8:255>=R?9:279>=R?7:8;C(xa);var za=new (m?Uint8Array:Array)(30),S,Aa;S=0;for(Aa=za.length;Se&&(s>>>= 46 | 8-e,i>>>=8-e),s=[s],p&&s.push(i),c.push(s);break;case 2:case U:q=0;for(y=a.length;qb.charCodeAt(3)?1:a.charCodeAt(0)b.charCodeAt(0)?1:a.charCodeAt(1)b.charCodeAt(1)?1:a.charCodeAt(2)b.charCodeAt(2)?1:0});q=0;for(y=k.length;q1<b[e]||126b[e]||255a.Va?c.length:a.Va,h=0;if(0===g)return[];Y(b,X(a.name));b.push(0);switch(this.e){case 16:b.push(16);break;case 8:case 4:case 2:case 1:b.push(8);break;default:throw Error("invalid bit depth");}e=c.sort(function(a,b){return a.countb.count?-1:0});for(d=e[0].count;fg;g+=i.l)for(e=0;ef;f+=i.j)if(p=a[e+f+(d+g)*b])h=(e+f-i.i)/i.j,k=(d+g-i.k)/i.l,v.T.push(p);v.width=h+1;v.height=k+1}return t}; 63 | T.prototype.Xa=function(a){var c=[],b,e,d,f,g,h,k=this.e,p,l;p=8/k;d=0;for(f=a.length;dk)0===d%p&&(l=d/p,c[l]=0),c[l]|=b[0]<<(p-d%p-1)*k;else{g=0;for(h=b.length;g>>1,b.push(a[g]+256-e&255);return b};T.prototype.ha=function(a,c){var b=[],e,d,f,g=this.q,h,k;h=0;for(k=a.length;h>>=8;while(0