Browse Source

convert app to be built using webpack

master
Yeiniel Suárez Sosa 9 months ago
parent
commit
b0675b1ad3
No known key found for this signature in database GPG Key ID: E2CFACE611B42B6C
61 changed files with 11392 additions and 1459 deletions
  1. +5
    -0
      .babelrc
  2. +3
    -0
      .gitignore
  3. +0
    -8
      3rdparty/favico-0.3.10.min.js
  4. +0
    -15
      3rdparty/inflate.min.js
  5. +0
    -8
      3rdparty/inflate.min.js.map
  6. +5
    -2
      electron.makefile
  7. +0
    -1372
      js/weechat.js
  8. +9880
    -0
      package-lock.json
  9. +20
    -3
      package.json
  10. +0
    -0
      src/assets/audio/sonar.mp3
  11. +0
    -0
      src/assets/audio/sonar.ogg
  12. +0
    -0
      src/assets/img/badge_playstore.png
  13. +0
    -0
      src/assets/img/favicon.png
  14. +0
    -0
      src/assets/img/glowing-bear.icns
  15. +0
    -0
      src/assets/img/glowing-bear.png
  16. +0
    -0
      src/assets/img/glowing-bear.svg
  17. +0
    -0
      src/assets/img/glowing_bear_128x128.png
  18. +0
    -0
      src/assets/img/glowing_bear_60x60.png
  19. +0
    -0
      src/assets/img/glowing_bear_90x90.png
  20. +0
    -0
      src/assets/img/glyphicons-halflings-white.png
  21. +0
    -0
      src/css/glowingbear.css
  22. +0
    -0
      src/css/themes/base16-default.css
  23. +0
    -0
      src/css/themes/base16-light.css
  24. +0
    -0
      src/css/themes/base16-mocha.css
  25. +0
    -0
      src/css/themes/base16-ocean-dark.css
  26. +0
    -0
      src/css/themes/base16-solarized-dark.css
  27. +0
    -0
      src/css/themes/base16-solarized-light.css
  28. +0
    -0
      src/css/themes/black.css
  29. +0
    -0
      src/css/themes/blue.css
  30. +0
    -0
      src/css/themes/dark-spacious.css
  31. +0
    -0
      src/css/themes/dark.css
  32. +0
    -0
      src/css/themes/light.css
  33. +0
    -0
      src/directives/input.html
  34. +0
    -0
      src/directives/plugin.html
  35. +0
    -0
      src/electron-globals.js
  36. +0
    -0
      src/electron-main.js
  37. +0
    -26
      src/index.html
  38. +0
    -0
      src/js/bufferResume.js
  39. +8
    -6
      src/js/connection.js
  40. +0
    -0
      src/js/file-change.js
  41. +0
    -0
      src/js/filters.js
  42. +5
    -2
      src/js/glowingbear.js
  43. +0
    -0
      src/js/handlers.js
  44. +0
    -0
      src/js/imgur-drop-directive.js
  45. +0
    -0
      src/js/imgur.js
  46. +0
    -0
      src/js/inputbar.js
  47. +0
    -0
      src/js/irc-utils.js
  48. +0
    -0
      src/js/localstorage.js
  49. +2
    -2
      src/js/models.js
  50. +0
    -0
      src/js/notifications.js
  51. +0
    -0
      src/js/plugin-directive.js
  52. +0
    -0
      src/js/plugins.js
  53. +0
    -0
      src/js/settings.js
  54. +0
    -0
      src/js/utils.js
  55. +0
    -0
      src/js/websockets.js
  56. +1370
    -0
      src/js/weechat.js
  57. +0
    -0
      src/js/whenscrolled-directive.js
  58. +27
    -0
      src/main.js
  59. +0
    -0
      src/serviceworker.js
  60. +15
    -15
      test/karma.conf.js
  61. +52
    -0
      webpack.config.js

+ 5
- 0
.babelrc View File

@ -0,0 +1,5 @@
{
"presets": [
"@babel/preset-env"
]
}

+ 3
- 0
.gitignore View File

@ -4,3 +4,6 @@ node_modules/
# Electron stuff
fonts/
Glowing\ Bear-*/
# local build products
build/

+ 0
- 8
3rdparty/favico-0.3.10.min.js
File diff suppressed because it is too large
View File


+ 0
- 15
3rdparty/inflate.min.js View File

@ -1,15 +0,0 @@
/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */(function() {'use strict';var m=this;function q(c,d){var a=c.split("."),b=m;!(a[0]in b)&&b.execScript&&b.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)!a.length&&void 0!==d?b[e]=d:b=b[e]?b[e]:b[e]={}};var s="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array&&"undefined"!==typeof DataView;function t(c){var d=c.length,a=0,b=Number.POSITIVE_INFINITY,e,f,g,h,k,l,p,n,r,K;for(n=0;n<d;++n)c[n]>a&&(a=c[n]),c[n]<b&&(b=c[n]);e=1<<a;f=new (s?Uint32Array:Array)(e);g=1;h=0;for(k=2;g<=a;){for(n=0;n<d;++n)if(c[n]===g){l=0;p=h;for(r=0;r<g;++r)l=l<<1|p&1,p>>=1;K=g<<16|n;for(r=l;r<e;r+=k)f[r]=K;++h}++g;h<<=1;k<<=1}return[f,a,b]};function u(c,d){this.g=[];this.h=32768;this.d=this.f=this.a=this.l=0;this.input=s?new Uint8Array(c):c;this.m=!1;this.i=v;this.s=!1;if(d||!(d={}))d.index&&(this.a=d.index),d.bufferSize&&(this.h=d.bufferSize),d.bufferType&&(this.i=d.bufferType),d.resize&&(this.s=d.resize);switch(this.i){case w:this.b=32768;this.c=new (s?Uint8Array:Array)(32768+this.h+258);break;case v:this.b=0;this.c=new (s?Uint8Array:Array)(this.h);this.e=this.A;this.n=this.w;this.j=this.z;break;default:throw Error("invalid inflate mode");
}}var w=0,v=1,x={u:w,t:v};
u.prototype.k=function(){for(;!this.m;){var c=y(this,3);c&1&&(this.m=!0);c>>>=1;switch(c){case 0:var d=this.input,a=this.a,b=this.c,e=this.b,f=d.length,g=void 0,h=void 0,k=b.length,l=void 0;this.d=this.f=0;if(a+1>=f)throw Error("invalid uncompressed block header: LEN");g=d[a++]|d[a++]<<8;if(a+1>=f)throw Error("invalid uncompressed block header: NLEN");h=d[a++]|d[a++]<<8;if(g===~h)throw Error("invalid uncompressed block header: length verify");if(a+g>d.length)throw Error("input buffer is broken");switch(this.i){case w:for(;e+
g>b.length;){l=k-e;g-=l;if(s)b.set(d.subarray(a,a+l),e),e+=l,a+=l;else for(;l--;)b[e++]=d[a++];this.b=e;b=this.e();e=this.b}break;case v:for(;e+g>b.length;)b=this.e({p:2});break;default:throw Error("invalid inflate mode");}if(s)b.set(d.subarray(a,a+g),e),e+=g,a+=g;else for(;g--;)b[e++]=d[a++];this.a=a;this.b=e;this.c=b;break;case 1:this.j(z,A);break;case 2:B(this);break;default:throw Error("unknown BTYPE: "+c);}}return this.n()};
var C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],D=s?new Uint16Array(C):C,E=[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],F=s?new Uint16Array(E):E,G=[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],H=s?new Uint8Array(G):G,I=[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],J=s?new Uint16Array(I):I,L=[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=s?new Uint8Array(L):L,N=new (s?Uint8Array:Array)(288),O,P;O=0;for(P=N.length;O<P;++O)N[O]=143>=O?8:255>=O?9:279>=O?7:8;var z=t(N),Q=new (s?Uint8Array:Array)(30),R,S;R=0;for(S=Q.length;R<S;++R)Q[R]=5;var A=t(Q);function y(c,d){for(var a=c.f,b=c.d,e=c.input,f=c.a,g=e.length,h;b<d;){if(f>=g)throw Error("input buffer is broken");a|=e[f++]<<b;b+=8}h=a&(1<<d)-1;c.f=a>>>d;c.d=b-d;c.a=f;return h}
function T(c,d){for(var a=c.f,b=c.d,e=c.input,f=c.a,g=e.length,h=d[0],k=d[1],l,p;b<k&&!(f>=g);)a|=e[f++]<<b,b+=8;l=h[a&(1<<k)-1];p=l>>>16;c.f=a>>p;c.d=b-p;c.a=f;return l&65535}
function B(c){function d(a,c,b){var d,e=this.q,f,g;for(g=0;g<a;)switch(d=T(this,c),d){case 16:for(f=3+y(this,2);f--;)b[g++]=e;break;case 17:for(f=3+y(this,3);f--;)b[g++]=0;e=0;break;case 18:for(f=11+y(this,7);f--;)b[g++]=0;e=0;break;default:e=b[g++]=d}this.q=e;return b}var a=y(c,5)+257,b=y(c,5)+1,e=y(c,4)+4,f=new (s?Uint8Array:Array)(D.length),g,h,k,l;for(l=0;l<e;++l)f[D[l]]=y(c,3);if(!s){l=e;for(e=f.length;l<e;++l)f[D[l]]=0}g=t(f);h=new (s?Uint8Array:Array)(a);k=new (s?Uint8Array:Array)(b);c.q=0;
c.j(t(d.call(c,a,g,h)),t(d.call(c,b,g,k)))}u.prototype.j=function(c,d){var a=this.c,b=this.b;this.o=c;for(var e=a.length-258,f,g,h,k;256!==(f=T(this,c));)if(256>f)b>=e&&(this.b=b,a=this.e(),b=this.b),a[b++]=f;else{g=f-257;k=F[g];0<H[g]&&(k+=y(this,H[g]));f=T(this,d);h=J[f];0<M[f]&&(h+=y(this,M[f]));b>=e&&(this.b=b,a=this.e(),b=this.b);for(;k--;)a[b]=a[b++-h]}for(;8<=this.d;)this.d-=8,this.a--;this.b=b};
u.prototype.z=function(c,d){var a=this.c,b=this.b;this.o=c;for(var e=a.length,f,g,h,k;256!==(f=T(this,c));)if(256>f)b>=e&&(a=this.e(),e=a.length),a[b++]=f;else{g=f-257;k=F[g];0<H[g]&&(k+=y(this,H[g]));f=T(this,d);h=J[f];0<M[f]&&(h+=y(this,M[f]));b+k>e&&(a=this.e(),e=a.length);for(;k--;)a[b]=a[b++-h]}for(;8<=this.d;)this.d-=8,this.a--;this.b=b};
u.prototype.e=function(){var c=new (s?Uint8Array:Array)(this.b-32768),d=this.b-32768,a,b,e=this.c;if(s)c.set(e.subarray(32768,c.length));else{a=0;for(b=c.length;a<b;++a)c[a]=e[a+32768]}this.g.push(c);this.l+=c.length;if(s)e.set(e.subarray(d,d+32768));else for(a=0;32768>a;++a)e[a]=e[d+a];this.b=32768;return e};
u.prototype.A=function(c){var d,a=this.input.length/this.a+1|0,b,e,f,g=this.input,h=this.c;c&&("number"===typeof c.p&&(a=c.p),"number"===typeof c.v&&(a+=c.v));2>a?(b=(g.length-this.a)/this.o[2],f=258*(b/2)|0,e=f<h.length?h.length+f:h.length<<1):e=h.length*a;s?(d=new Uint8Array(e),d.set(h)):d=h;return this.c=d};
u.prototype.n=function(){var c=0,d=this.c,a=this.g,b,e=new (s?Uint8Array:Array)(this.l+(this.b-32768)),f,g,h,k;if(0===a.length)return s?this.c.subarray(32768,this.b):this.c.slice(32768,this.b);f=0;for(g=a.length;f<g;++f){b=a[f];h=0;for(k=b.length;h<k;++h)e[c++]=b[h]}f=32768;for(g=this.b;f<g;++f)e[c++]=d[f];this.g=[];return this.buffer=e};
u.prototype.w=function(){var c,d=this.b;s?this.s?(c=new Uint8Array(d),c.set(this.c.subarray(0,d))):c=this.c.subarray(0,d):(this.c.length>d&&(this.c.length=d),c=this.c);return this.buffer=c};function U(c,d){var a,b;this.input=c;this.a=0;if(d||!(d={}))d.index&&(this.a=d.index),d.verify&&(this.B=d.verify);a=c[this.a++];b=c[this.a++];switch(a&15){case V:this.method=V;break;default:throw Error("unsupported compression method");}if(0!==((a<<8)+b)%31)throw Error("invalid fcheck flag:"+((a<<8)+b)%31);if(b&32)throw Error("fdict flag is not supported");this.r=new u(c,{index:this.a,bufferSize:d.bufferSize,bufferType:d.bufferType,resize:d.resize})}
U.prototype.k=function(){var c=this.input,d,a;d=this.r.k();this.a=this.r.a;if(this.B){a=(c[this.a++]<<24|c[this.a++]<<16|c[this.a++]<<8|c[this.a++])>>>0;var b=d;if("string"===typeof b){var e=b.split(""),f,g;f=0;for(g=e.length;f<g;f++)e[f]=(e[f].charCodeAt(0)&255)>>>0;b=e}for(var h=1,k=0,l=b.length,p,n=0;0<l;){p=1024<l?1024:l;l-=p;do h+=b[n++],k+=h;while(--p);h%=65521;k%=65521}if(a!==(k<<16|h)>>>0)throw Error("invalid adler-32 checksum");}return d};var V=8;q("Zlib.Inflate",U);q("Zlib.Inflate.prototype.decompress",U.prototype.k);var W={ADAPTIVE:x.t,BLOCK:x.u},X,Y,Z,$;if(Object.keys)X=Object.keys(W);else for(Y in X=[],Z=0,W)X[Z++]=Y;Z=0;for($=X.length;Z<$;++Z)Y=X[Z],q("Zlib.Inflate.BufferType."+Y,W[Y]);}).call(this); //@ sourceMappingURL=inflate.min.js.map

+ 0
- 8
3rdparty/inflate.min.js.map
File diff suppressed because it is too large
View File


+ 5
- 2
electron.makefile View File

@ -1,5 +1,8 @@
# Common flags for electron-packager on all platforms
ELECTRON_COMMON=. "Glowing Bear" --overwrite --version-string.FileDescription="Glowing Bear" --ignore=node_modules --ignore=test --ignore=bower_components
ELECTRON_COMMON=./build "Glowing Bear" --overwrite --version-string.FileDescription="Glowing Bear" --ignore=node_modules --ignore=test --ignore=bower_components
build:
npm run build
# fetch dependencies for local installation
bower:
@ -22,5 +25,5 @@ build-electron-windows: uselocal
build-electron-darwin: uselocal
electron-packager ${ELECTRON_COMMON} --platform=darwin --arch=x64 --electron-version=9.0.5 --icon=assets/img/glowing-bear.icns
build-electron-linux: uselocal
build-electron-linux: build
electron-packager ${ELECTRON_COMMON} --platform=linux --arch=x64 --electron-version=9.0.5 --icon=assets/img/favicon.ico

+ 0
- 1372
js/weechat.js
File diff suppressed because it is too large
View File


+ 9880
- 0
package-lock.json
File diff suppressed because it is too large
View File


+ 20
- 3
package.json View File

@ -7,8 +7,13 @@
"main": "electron-main.js",
"license": "GPLv3",
"devDependencies": {
"@babel/core": "^7.12.9",
"@babel/preset-env": "^7.12.7",
"babel-loader": "^8.2.2",
"bower": "^1.8.8",
"copy-webpack-plugin": "^6.3.2",
"electron-packager": "^15.0.0",
"html-webpack-plugin": "^4.5.0",
"http-server": "^0.12.3",
"jasmine-core": "^3.6.0",
"jshint": "^2.11.1",
@ -19,13 +24,17 @@
"linkifyjs": "^2.1.9",
"protractor": "^7.0.0",
"shelljs": "^0.8.4",
"uglify-js": "^3.10.4"
"uglify-js": "^3.10.4",
"webpack": "^5.8.0",
"webpack-cli": "^4.2.0",
"webpack-dev-server": "^3.11.0"
},
"scripts": {
"build": "webpack",
"postinstall": "bower install -p",
"minify": " uglifyjs js/localstorage.js js/weechat.js js/irc-utils.js js/glowingbear.js js/settings.js js/utils.js js/notifications.js js/filters.js js/handlers.js js/connection.js js/file-change.js js/imgur-drop-directive.js js/whenscrolled-directive.js js/inputbar.js js/plugin-directive.js js/websockets.js js/models.js js/bufferResume.js js/plugins.js js/imgur.js -c -m -o min.js --source-map url='min.js.map'",
"prestart": "npm install",
"start": "http-server -a localhost -p 8000",
"start": "webpack serve",
"pretest": "npm install",
"test": "karma start test/karma.conf.js",
"test-single-run": "karma start test/karma.conf.js --single-run",
@ -37,7 +46,15 @@
"make-local": "make -f electron.makefile uselocal",
"build-electron-windows": "make -f electron.makefile bower build-electron-windows",
"build-electron-darwin": "make -f electron.makefile bower build-electron-darwin",
"build-electron-linux": "make -f electron.makefile bower build-electron-linux",
"build-electron-linux": "make -f electron.makefile build-electron-linux",
"update-index-async": "node -e \"require('shelljs/global'); sed('-i', /\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/, '//@@NG_LOADER_START@@\\n' + cat('app/bower_components/angular-loader/angular-loader.min.js') + '\\n//@@NG_LOADER_END@@', 'app/index-async.html');\""
},
"dependencies": {
"angular": "^1.8.2",
"angular-route": "^1.8.2",
"angular-sanitize": "^1.8.2",
"angular-touch": "^1.8.2",
"favico.js": "^0.3.10",
"zlibjs": "^0.3.1"
}
}

assets/audio/sonar.mp3 → src/assets/audio/sonar.mp3 View File


assets/audio/sonar.ogg → src/assets/audio/sonar.ogg View File


assets/img/badge_playstore.png → src/assets/img/badge_playstore.png View File


assets/img/favicon.png → src/assets/img/favicon.png View File


assets/img/glowing-bear.icns → src/assets/img/glowing-bear.icns View File


assets/img/glowing-bear.png → src/assets/img/glowing-bear.png View File


assets/img/glowing-bear.svg → src/assets/img/glowing-bear.svg View File


assets/img/glowing_bear_128x128.png → src/assets/img/glowing_bear_128x128.png View File


assets/img/glowing_bear_60x60.png → src/assets/img/glowing_bear_60x60.png View File


assets/img/glowing_bear_90x90.png → src/assets/img/glowing_bear_90x90.png View File


assets/img/glyphicons-halflings-white.png → src/assets/img/glyphicons-halflings-white.png View File


css/glowingbear.css → src/css/glowingbear.css View File


css/themes/base16-default.css → src/css/themes/base16-default.css View File


css/themes/base16-light.css → src/css/themes/base16-light.css View File


css/themes/base16-mocha.css → src/css/themes/base16-mocha.css View File


css/themes/base16-ocean-dark.css → src/css/themes/base16-ocean-dark.css View File


css/themes/base16-solarized-dark.css → src/css/themes/base16-solarized-dark.css View File


css/themes/base16-solarized-light.css → src/css/themes/base16-solarized-light.css View File


css/themes/black.css → src/css/themes/black.css View File


css/themes/blue.css → src/css/themes/blue.css View File


css/themes/dark-spacious.css → src/css/themes/dark-spacious.css View File


css/themes/dark.css → src/css/themes/dark.css View File


css/themes/light.css → src/css/themes/light.css View File


directives/input.html → src/directives/input.html View File


directives/plugin.html → src/directives/plugin.html View File


electron-globals.js → src/electron-globals.js View File


electron-main.js → src/electron-main.js View File


index.html → src/index.html View File

@ -19,36 +19,10 @@
<link rel="shortcut icon" type="image/png" href="assets/img/favicon.png" >
<link href="css/glowingbear.css" rel="stylesheet" media="screen">
<link href="css/themes/dark.css" rel="stylesheet" media="screen" id="themeCSS" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.8.0/angular.min.js" integrity="sha512-jiG+LwJB0bmXdn4byKzWH6whPpnLy1pnGA/p3VCXFLk4IJ/Ftfcb22katPTapt35Q6kwrlnRheK6UPOIdJhYTA==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-route/1.8.0/angular-route.min.js" integrity="sha512-KgQeEw8J2b0mJH/09XwcsYPr0koz6wqhHR4Kpii/4Tjayshk4swTbyGpWRCPpQQlP/4kJEXGqBXsXgkL+wPTpw==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.8.0/angular-sanitize.min.js" integrity="sha512-ZKFv9PnfnRmoBms0LvWmODQW9dXBwualot+o5RowVKQAxxY/6t/El/qTM9E+U+EB5+xcrxxDvhcUcTYBw/kbiQ==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-touch/1.8.0/angular-touch.min.js" integrity="sha512-Fv9vdYa1UF171Mgs1hGeRXULvHflaw78t5EPI/cG6pVp9SjhjlhfL2ifdkwxEP0EBAhlA02UuE8mEjm65CYYpw==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.10.2/underscore-min.js" integrity="sha512-HKvDCFVKg8ZPGjecy6on7UECEpE76Y86h3GaE4JMCz+deFWdjcW/tWnh0hCfaBvURvlOa9f5CNVzt7EFkulYbw==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/emojione/2.2.7/lib/js/emojione.min.js" integrity="sha256-9cBkVeU53NiJ9/BdcJta3HbERAmf5X9DE2WvL8V+gDs=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-linkify/2.1.9/linkify.min.js" integrity="sha512-kxj7VjlzsQgiku2vbRcZI0FJ0dXmPsiRLugiRxJrCROusKHaFfX/hGDD1/L/R0Y+xI8zlA2B5nm6USapz7nQbg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-linkify/2.1.9/linkify-string.min.js" integrity="sha512-CMBjJdVIcw7zafkE+uedZCnw6r4ABU1Fev5xA7db0D097/NzhO6Ajo2kdZFOQ+y0kg9sE/t44bPAwuuNhUVIcQ==" crossorigin="anonymous"></script>
<script type="text/javascript" src="3rdparty/inflate.min.js"></script>
<script type="text/javascript" src="js/localstorage.js"></script>
<script type="text/javascript" src="js/weechat.js"></script>
<script type="text/javascript" src="js/irc-utils.js"></script>
<script type="text/javascript" src="js/glowingbear.js"></script>
<script type="text/javascript" src="js/settings.js"></script>
<script type="text/javascript" src="js/utils.js"></script>
<script type="text/javascript" src="js/notifications.js"></script>
<script type="text/javascript" src="js/filters.js"></script>
<script type="text/javascript" src="js/handlers.js"></script>
<script type="text/javascript" src="js/connection.js"></script>
<script type="text/javascript" src="js/file-change.js"></script>
<script type="text/javascript" src="js/imgur-drop-directive.js"></script>
<script type="text/javascript" src="js/whenscrolled-directive.js"></script>
<script type="text/javascript" src="js/inputbar.js"></script>
<script type="text/javascript" src="js/plugin-directive.js"></script>
<script type="text/javascript" src="js/websockets.js"></script>
<script type="text/javascript" src="js/bufferResume.js"></script>
<script type="text/javascript" src="js/models.js"></script>
<script type="text/javascript" src="js/plugins.js"></script>
<script type="text/javascript" src="js/imgur.js"></script>
<script type="text/javascript" src="3rdparty/favico-0.3.10.min.js"></script>
</head>
<body ng-controller="WeechatCtrl" ng-keydown="handleKeyPress($event)" ng-keyup="handleKeyRelease($event)" ng-keypress="handleKeyPress($event)" ng-class="{'no-overflow': connected}" ng-init="init()" lang="en-US">
<audio id="audioNotificationInitializer"><source src="data:audio/mp3;base64,/+MYxAAJs2H8AABLSZv4Af/5yAsCIElB/v/+Y///U+QiEaSchGO+IMQjZCgOLw4KVoIEkf/r69Kbfc7/WbLRPsyvp7/p/p///+MYxBQK+1oUAACNMUWSyLcrqpERhDqKCBWcgbTmuIq8ISkQSv+yf/tbZf9krRTptRUv/XT////66NJQFZTpOd3KUEtM+a+l/+MYxCMKM2YcAACNMB+Jqe+HLv+75fSreYSWGtqHJghl6y///89fcz/p8qIRKeFWYKEGo5mLFmCGBjV0FEJn/9f85V87iy98/+MYxDULA1YYAABHLbI52f2/4v////n7U/swVr0SzhrRIueMLLog0qIKcOwu/5v/lLR/r9DPN/R+vmf//////V8tAxlMY1sy/+MYxEQKM2IYAABHLZjRjUlgUSUAhTUBFHVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxFYJ22oAAACHMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"></audio>

js/bufferResume.js → src/js/bufferResume.js View File


js/connection.js → src/js/connection.js View File

@ -1,10 +1,12 @@
(function() {
// (function() {
'use strict';
var weechat = angular.module('weechat');
import * as weeChat from './weechat';
weechat.factory('connection',
['$rootScope', '$log', 'handlers', 'models', 'settings', 'ngWebsockets', 'utils', function($rootScope,
// var weechat = angular.module('weechat');
// weechat.factory('connection',
export const connectionFactory = ['$rootScope', '$log', 'handlers', 'models', 'settings', 'ngWebsockets', 'utils', function($rootScope,
$log,
handlers,
models,
@ -700,5 +702,5 @@ weechat.factory('connection',
attemptReconnect: attemptReconnect,
requestCompletion: requestCompletion
};
}]);
})();
}];
// })();

js/file-change.js → src/js/file-change.js View File


js/filters.js → src/js/filters.js View File


js/glowingbear.js → src/js/glowingbear.js View File

@ -1,6 +1,9 @@
(function() {
'use strict';
import * as Favico from "favico.js";
import { connectionFactory } from './connection';
// cordova splash screen
document.addEventListener("deviceready", function () {
if (navigator.splashscreen !== undefined) {
@ -1029,4 +1032,4 @@ weechat.config(['$routeProvider', '$locationProvider',
}
]);
})();
weechat.factory('connection', connectionFactory);

js/handlers.js → src/js/handlers.js View File


js/imgur-drop-directive.js → src/js/imgur-drop-directive.js View File


js/imgur.js → src/js/imgur.js View File


js/inputbar.js → src/js/inputbar.js View File


js/irc-utils.js → src/js/irc-utils.js View File


js/localstorage.js → src/js/localstorage.js View File


js/models.js → src/js/models.js View File

@ -2,9 +2,10 @@
* This file contains the weechat models and various
* helper methods to work with them.
*/
(function() {
'use strict';
import * as weeChat from './weechat';
var models = angular.module('weechatModels', []);
models.service('models', ['$rootScope', '$filter', 'bufferResume', function($rootScope, $filter, bufferResume) {
@ -707,4 +708,3 @@ models.service('models', ['$rootScope', '$filter', 'bufferResume', function($roo
delete(this.model.buffers[bufferId]);
};
}]);
})();

js/notifications.js → src/js/notifications.js View File


js/plugin-directive.js → src/js/plugin-directive.js View File


js/plugins.js → src/js/plugins.js View File


js/settings.js → src/js/settings.js View File


js/utils.js → src/js/utils.js View File


js/websockets.js → src/js/websockets.js View File


+ 1370
- 0
src/js/weechat.js
File diff suppressed because it is too large
View File


js/whenscrolled-directive.js → src/js/whenscrolled-directive.js View File


+ 27
- 0
src/main.js View File

@ -0,0 +1,27 @@
"use strict";
import "angular";
import "angular-route";
import "angular-sanitize";
import "angular-touch";
import "./js/localstorage.js";
import "./js/irc-utils.js";
import "./js/plugins.js";
import "./js/glowingbear.js";
import "./js/settings.js";
import "./js/utils.js";
import "./js/notifications.js";
import "./js/filters.js";
import "./js/handlers.js";
import "./js/file-change.js";
import "./js/imgur-drop-directive.js";
import "./js/whenscrolled-directive.js";
import "./js/inputbar.js";
import "./js/plugin-directive.js";
import "./js/websockets.js";
import "./js/bufferResume.js";
import "./js/models.js";
import "./js/imgur.js";

serviceworker.js → src/serviceworker.js View File


+ 15
- 15
test/karma.conf.js View File

@ -12,21 +12,21 @@ module.exports = function(config){
'bower_components/underscore/underscore.js',
'node_modules/linkifyjs/dist/linkify.js',
'node_modules/linkifyjs/dist/linkify-string.js',
'js/localstorage.js',
'js/weechat.js',
'js/irc-utils.js',
'js/glowingbear.js',
'js/utils.js',
'js/notifications.js',
'js/filters.js',
'js/handlers.js',
'js/connection.js',
'js/inputbar.js',
'js/plugin-directive.js',
'js/websockets.js',
'js/models.js',
'js/bufferResume.js',
'js/plugins.js',
'src/js/localstorage.js',
'src/js/weechat.js',
'src/js/irc-utils.js',
'src/js/glowingbear.js',
'src/js/utils.js',
'src/js/notifications.js',
'src/js/filters.js',
'src/js/handlers.js',
'src/js/connection.js',
'src/js/inputbar.js',
'src/js/plugin-directive.js',
'src/js/websockets.js',
'src/js/models.js',
'src/js/bufferResume.js',
'src/js/plugins.js',
'test/unit/**/*.js'
],


+ 52
- 0
webpack.config.js View File

@ -0,0 +1,52 @@
"use strict";
const path = require("path");
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require("copy-webpack-plugin");
module.exports = {
context: path.resolve(__dirname, 'src'),
entry: './main.js',
output: {
path: path.resolve(__dirname, 'build'),
},
devServer: {
contentBase: path.resolve(__dirname, 'build')
},
devtool: 'source-map',
plugins: [
new HtmlWebpackPlugin({
template: './index.html',
minify: false
}),
new CopyWebpackPlugin({
patterns: [
"**/*.css",
"**/*.svg",
"**/*.png",
"directives/*.html",
"serviceworker.js",
"electron-*.js",
"../package.json",
"../manifest.json",
"../manifest.webapp",
"../webapp.manifest.json"
]
})
],
module: {
rules: [
{
test: /\.js$/i,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader'
}
]
}
]
}
};

Loading…
Cancel
Save