Compare commits

...

6 Commits

Author SHA1 Message Date
Shahana Farooqui 711cd5ac2b CI/CD Adjustment 5
CI/CD Adjustment 5
3 years ago
Shahana Farooqui 4406212102 CI/CD Adjustment 4
CI/CD Adjustment 4
3 years ago
Shahana Farooqui e1e2355078 CI/CD Adjustment 3
CI/CD Adjustment 3 arm32v7
3 years ago
Shahana Farooqui 2e525caf89 CI/CD Adjustments 2
CI/CD Adjustments 2
3 years ago
Shahana Farooqui 91caee4c83 CI/CD Fixes
CI/CD Fixes
3 years ago
Shahana Farooqui ef84ad9afb Package updates
Updated docker NodeJS from 10 to 14
Updated Angular from 11 to 12
Updated Material from 11 to 12
Updated Angular cli from 11 to 12
Updated Karma from 5 to 6
Updated rxjs from 6 to 7
Updated ngrx from 10 to 12
Updated angularx-qrcode from 10 to 11
Updated @angular/flex-layout from 11 to 12
Updated angular-user-idle from 2.2.4 to 2.2.5
Updated typescript from 4.0.2 to 4.2.4
Updated zone.js from 0.10.2 to 0.11.4
Migrated from TSLint to ESLint
Installed save-dev crypto-browserify & stream-browserify
3 years ago

@ -11,7 +11,7 @@ jobs:
command: |
LATEST_TAG="${CIRCLE_TAG:1}"
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-amd64"
DOCKERHUB_DOCKERFILE="Dockerfile"
DOCKERHUB_DOCKERFILE="docker/Dockerfile"
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" .
sudo docker push "$DOCKERHUB_DESTINATION"
@ -26,7 +26,7 @@ jobs:
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG="${CIRCLE_TAG:1}"
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm32v7"
DOCKERHUB_DOCKERFILE="Dockerfile.arm32v7"
DOCKERHUB_DOCKERFILE="docker/Dockerfile.arm32v7"
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" .
sudo docker push "$DOCKERHUB_DESTINATION"
@ -41,7 +41,7 @@ jobs:
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG="${CIRCLE_TAG:1}"
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm64v8"
DOCKERHUB_DOCKERFILE="Dockerfile.arm64v8"
DOCKERHUB_DOCKERFILE="docker/Dockerfile.arm64v8"
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" .
sudo docker push "$DOCKERHUB_DESTINATION"

@ -0,0 +1,50 @@
{
"root": true,
"ignorePatterns": [
"projects/**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": [
"tsconfig.json",
"e2e/tsconfig.json"
],
"createDefaultProgram": true
},
"extends": [
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates"
],
"rules": {
"@angular-eslint/component-selector": [
"error",
{
"prefix": "rtl",
"style": "kebab-case",
"type": "element"
}
],
"@angular-eslint/directive-selector": [
"error",
{
"style": "camelCase",
"type": "attribute"
}
]
}
},
{
"files": [
"*.html"
],
"extends": [
"plugin:@angular-eslint/template/recommended"
],
"rules": {}
}
]
}

@ -1,33 +0,0 @@
FROM node:10-jessie-slim AS builder
ADD https://github.com/krallin/tini/releases/download/v0.18.0/tini-static-armel /tini
ADD https://github.com/krallin/tini/releases/download/v0.18.0/tini-static-armel.asc /tini.asc
RUN apt-get install gnupg
RUN gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
&& gpg --batch --verify /tini.asc /tini
RUN chmod +x /tini
WORKDIR /RTL
COPY . /RTL
COPY package.json /RTL/package.json
COPY package-lock.json /RTL/package-lock.json
# Install dependencies
RUN npm install --only=prod
COPY . /RTL
FROM arm32v7/node:10-jessie-slim
WORKDIR /RTL
COPY --from=builder "/RTL" .
COPY --from=builder "/tini" /sbin/tini
EXPOSE 3000
ENTRYPOINT ["/sbin/tini", "-g", "--"]
CMD ["node", "rtl"]

@ -26,9 +26,7 @@
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"allowedCommonJsDependencies": [
"hammerjs",
"sha256",
"qrcode",
"otplib"
@ -39,7 +37,13 @@
"styles": [
"src/app/shared/theme/styles/styles.scss"
],
"scripts": []
"scripts": [],
"vendorChunk": true,
"extractLicenses": false,
"buildOptimizer": false,
"sourceMap": true,
"optimization": false,
"namedChunks": true
},
"configurations": {
"production": {
@ -105,15 +109,11 @@
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@angular-eslint/builder:lint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
},
@ -132,5 +132,8 @@
}
}
},
"defaultProject": "RTLApp"
"defaultProject": "RTLApp",
"cli": {
"defaultCollection": "@angular-eslint/schematics"
}
}

File diff suppressed because one or more lines are too long

@ -5,7 +5,7 @@ MIT
MIT
The MIT License
Copyright (c) 2020 Google LLC.
Copyright (c) 2021 Google LLC.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -64,7 +64,7 @@ MIT
MIT
The MIT License
Copyright (c) 2020 Google LLC.
Copyright (c) 2021 Google LLC.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -422,6 +422,26 @@ THE SOFTWARE.
bn.js
MIT
Copyright Fedor Indutny, 2015.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
brorand
MIT
@ -622,29 +642,6 @@ convert-hex
convert-string
core-util-is
MIT
Copyright Node.js contributors. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
create-ecdh
MIT
The MIT License (MIT)
@ -747,30 +744,6 @@ ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
css-loader
MIT
Copyright JS Foundation and other contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
d3-array
BSD-3-Clause
Copyright 2010-2020 Mike Bostock
@ -1432,31 +1405,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
hammerjs
MIT
The MIT License (MIT)
Copyright (C) 2011-2014 by Jorik Tangelder (Eight Media)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
hash-base
MIT
The MIT License (MIT)
@ -1525,6 +1473,28 @@ PERFORMANCE OF THIS SOFTWARE.
isarray
MIT
MIT License
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
md5.js
MIT
@ -1666,55 +1636,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
process
MIT
(The MIT License)
Copyright (c) 2013 Roman Shtylman <shtylman@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
process-nextick-args
MIT
# Copyright (c) 2015 Calvin Metcalf
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.**
public-encrypt
MIT
Copyright (c) 2017 Calvin Metcalf
@ -2216,7 +2137,7 @@ sha256
stream-browserify
MIT
This software is released under the MIT license:
MIT License
Copyright (c) James Halliday
@ -2382,7 +2303,7 @@ zone.js
MIT
The MIT License
Copyright (c) 2010-2020 Google LLC. http://angular.io/license
Copyright (c) 2010-2020 Google LLC. https://angular.io/license
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,6 +1,4 @@
<!doctype html>
<html lang="en">
<head>
<!DOCTYPE html><html lang="en"><head>
<meta charset="utf-8">
<title>RTL</title>
<base href="/rtl/">
@ -12,8 +10,9 @@
<link rel="mask-icon" href="assets/images/favicon-light/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="styles.34373e0f495fd5a53b6a.css"></head>
<style>@font-face{font-family:Roboto;src:url(Roboto-Thin.dbd56bd3357dc3617fe5.woff2) format("woff2"),url(Roboto-Thin.e7f7c82374bd0ebef14b.woff) format("woff");font-weight:100;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-ThinItalic.a8cef84f735ef887abdc.woff2) format("woff2"),url(Roboto-ThinItalic.5dd9349c940073834e9a.woff) format("woff");font-weight:100;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Light.c27d89ac77468ae18f28.woff2) format("woff2"),url(Roboto-Light.d923dfafc0c5183b59aa.woff) format("woff");font-weight:300;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-LightItalic.506274c7228cf81cae4d.woff2) format("woff2"),url(Roboto-LightItalic.d4b8c137518d9d92bb28.woff) format("woff");font-weight:300;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Regular.64cfb66c866ea50cad47.woff2) format("woff2"),url(Roboto-Regular.e02e9d6ff5547f7e9962.woff) format("woff");font-weight:400;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-RegularItalic.4dd2af1e8df532f41db8.woff2) format("woff2"),url(Roboto-RegularItalic.5ea38fff9eebef99c5df.woff) format("woff");font-weight:400;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Medium.1d3bced88509b0838984.woff2) format("woff2"),url(Roboto-Medium.092c6130df8fd2199888.woff) format("woff");font-weight:500;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-MediumItalic.d620b8f53f75966fe42e.woff2) format("woff2"),url(Roboto-MediumItalic.18ff1628c628080166c1.woff) format("woff");font-weight:500;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Bold.92fbd4e93cf0a5dbebaa.woff2) format("woff2"),url(Roboto-Bold.73288d91c325e82a5b92.woff) format("woff");font-weight:700;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-BoldItalic.5f600d98a73d800ae575.woff2) format("woff2"),url(Roboto-BoldItalic.6d89acbd21d7e3fbecb2.woff) format("woff");font-weight:700;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Black.41ed1105a6ebb8ffe34e.woff2) format("woff2"),url(Roboto-Black.937491dfcbe64ca9a9f1.woff) format("woff");font-weight:900;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-BlackItalic.50ca4c51ebc27e7e7d2f.woff2) format("woff2"),url(Roboto-BlackItalic.2e1ee657996854c6f427.woff) format("woff");font-weight:900;font-style:italic;}html{width:100%;height:99%;line-height:1.5;overflow-x:hidden;font-family:Roboto,sans-serif!important;font-size:62.5%;}body{box-sizing:border-box;margin:0;}body{height:100%;overflow:hidden;}*{margin:0;padding:0;}</style><link rel="stylesheet" href="styles.3746732b097bd500162f.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.3746732b097bd500162f.css"></noscript></head>
<body>
<rtl-app></rtl-app>
<script src="runtime.76e78b7c520ee74ce1af.js" defer></script><script src="polyfills.a290c5ced4c403cfee17.js" defer></script><script src="main.023be7f19d26fb1d812e.js" defer></script></body>
</html>
<script src="runtime.2201f3a07375d009e274.js" defer></script><script src="polyfills.99f4d82f067fba7525c4.js" defer></script><script src="main.683e874402ff68e7a47e.js" defer></script>
</body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
(()=>{"use strict";var e,r,t,o={},a={};function n(e){var r=a[e];if(void 0!==r)return r.exports;var t=a[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=o,e=[],n.O=(r,t,o,a)=>{if(!t){var l=1/0;for(f=0;f<e.length;f++){for(var[t,o,a]=e[f],i=!0,d=0;d<t.length;d++)(!1&a||l>=a)&&Object.keys(n.O).every(e=>n.O[e](t[d]))?t.splice(d--,1):(i=!1,a<l&&(l=a));i&&(e.splice(f--,1),r=o())}return r}a=a||0;for(var f=e.length;f>0&&e[f-1][2]>a;f--)e[f]=e[f-1];e[f]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((r,t)=>(n.f[t](e,r),r),[])),n.u=e=>e+"."+{432:"fff61848c87895e92d32",646:"a7fbcc7e2f4d061c3f2a",891:"f25072f21dff6868476a",958:"1cf4b84ed31a6dda6249"}[e]+".js",n.miniCssF=e=>"styles.3746732b097bd500162f.css",n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="rtl:",n.l=(e,o,a,l)=>{if(r[e])r[e].push(o);else{var i,d;if(void 0!==a)for(var f=document.getElementsByTagName("script"),s=0;s<f.length;s++){var u=f[s];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==t+a){i=u;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,n.nc&&i.setAttribute("nonce",n.nc),i.setAttribute("data-webpack",t+a),i.src=e),r[e]=[o];var c=(t,o)=>{i.onerror=i.onload=null,clearTimeout(p);var a=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach(e=>e(o)),t)return t(o)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=c.bind(null,i.onerror),i.onload=c.bind(null,i.onload),d&&document.head.appendChild(i)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="",(()=>{var e={666:0};n.f.j=(r,t)=>{var o=n.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(666!=r){var a=new Promise((t,a)=>o=e[r]=[t,a]);t.push(o[2]=a);var l=n.p+n.u(r),i=new Error;n.l(l,t=>{if(n.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var a=t&&("load"===t.type?"missing":t.type),l=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+a+": "+l+")",i.name="ChunkLoadError",i.type=a,i.request=l,o[1](i)}},"chunk-"+r,r)}else e[r]=0},n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,[l,i,d]=t,f=0;for(o in i)n.o(i,o)&&(n.m[o]=i[o]);if(d)var s=d(n);for(r&&r(t);f<l.length;f++)n.o(e,a=l[f])&&e[a]&&e[a][0](),e[l[f]]=0;return n.O(s)},t=self.webpackChunkrtl=self.webpackChunkrtl||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();

@ -1 +0,0 @@
!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],p=0,s=[];p<i.length;p++)a=i[p],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++)0!==o[t[i]]&&(n=!1);n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={0:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise(function(r,n){t=o[e]=[r,n]});r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+""+({}[e]||e)+"."+{1:"237c2154eb3e4109a251",5:"25446aaee9f74a416633",6:"eee0e0f329ec52d3bce7",7:"e4068d65b9329bce7749"}[e]+".js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout(function(){u({type:"timeout",target:i})},12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,(function(r){return e[r]}).bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var f=c;t()}([]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -8,7 +8,7 @@ var path = require('path');
var logger = require('./controllers/shared/logger');
var connect = {};
var errMsg = '';
var request = require('request');
var request = require('request-promise');
var ini = require('ini');
var parseHocon = require('hocon-parser');
common.path_separator = (platform === 'win32') ? '\\' : '/';
@ -359,26 +359,24 @@ connect.getAllNodeAllChannelBackup = (node) => {
json: true,
headers: {'Grpc-Metadata-macaroon': fs.readFileSync(node.macaroon_path + '/admin.macaroon').toString('hex')}
};
request(options, function (err, res, body) {
if (err) {
logger.error({fileName: 'Connect', lineNum: 443, msg: 'Channel Backup Response Failed: ' + JSON.stringify(err)});
} else {
fs.writeFile(channel_backup_file, JSON.stringify(body), function(err) {
if (err) {
if (node.ln_node) {
logger.error({fileName: 'Connect', lineNum: 448, msg: 'Channel Backup Failed for Node ' + node.ln_node + ' with error response: ' + JSON.stringify(err)});
} else {
logger.error({fileName: 'Connect', lineNum: 450, msg: 'Channel Backup Failed: ' + JSON.stringify(err)});
}
request(options).then(function(body) {
fs.writeFile(channel_backup_file, JSON.stringify(body), function(err) {
if (err) {
if (node.ln_node) {
logger.error({fileName: 'Connect', lineNum: 448, msg: 'Channel Backup Failed for Node ' + node.ln_node + ' with error response: ' + JSON.stringify(err)});
} else {
if (node.ln_node) {
logger.info({fileName: 'Connect', msg: 'Channel Backup Successful for Node: ' + node.ln_node});
} else {
logger.info({fileName: 'Connect', msg: 'Channel Backup Successful'});
}
logger.error({fileName: 'Connect', lineNum: 450, msg: 'Channel Backup Failed: ' + JSON.stringify(err)});
}
});
}
} else {
if (node.ln_node) {
logger.info({fileName: 'Connect', msg: 'Channel Backup Successful for Node: ' + node.ln_node});
} else {
logger.info({fileName: 'Connect', msg: 'Channel Backup Successful'});
}
}
});
}, (err) => {
logger.error({fileName: 'Connect', lineNum: 379, msg: 'Channel Backup Response Failed: ' + JSON.stringify(err)});
})
};

@ -1,4 +1,4 @@
FROM node:10-alpine
FROM node:14-alpine
RUN apk add --no-cache tini
@ -8,7 +8,7 @@ COPY package.json /RTL/package.json
COPY package-lock.json /RTL/package-lock.json
# Install dependencies
RUN npm install --only=prod
RUN npm install --production
COPY . /RTL

@ -0,0 +1,33 @@
FROM node:14-stretch-slim AS builder
ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel /tini
ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel.asc /tini.asc
# RUN apt-get install gnupg
# RUN gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
# && gpg --batch --verify /tini.asc /tini
RUN chmod +x /tini
WORKDIR /RTL
COPY . /RTL
COPY package.json /RTL/package.json
COPY package-lock.json /RTL/package-lock.json
# Install dependencies
RUN npm install --production
COPY . /RTL
FROM arm32v7/node:14-stretch-slim
WORKDIR /RTL
COPY --from=builder "/RTL" .
COPY --from=builder "/tini" /sbin/tini
EXPOSE 3000
ENTRYPOINT ["/sbin/tini", "-g", "--"]
CMD ["node", "rtl"]

@ -1,6 +1,6 @@
FROM node:10-stretch-slim AS builder
FROM node:14-stretch-slim AS builder
ADD https://github.com/krallin/tini/releases/download/v0.18.0/tini-static-arm64 /tini
ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-arm64 /tini
RUN chmod +x /tini
WORKDIR /RTL
@ -11,11 +11,11 @@ COPY package.json /RTL/package.json
COPY package-lock.json /RTL/package-lock.json
# Install dependencies
RUN npm install --only=prod
RUN npm install --production
COPY . /RTL
FROM arm64v8/node:10-stretch-slim
FROM arm64v8/node:14-stretch-slim
WORKDIR /RTL

@ -8,7 +8,7 @@ volumes:
services:
bitcoind:
container_name: ${COMPOSE_PROJECT_NAME}_bitcoind
image: bitcoind:0.17.1
image: bitcoind:0.19.0
build: ./bitcoind
command: [
"bitcoind",
@ -37,7 +37,7 @@ services:
lnd:
container_name: ${COMPOSE_PROJECT_NAME}_lnd
image: lnd:0.5.2-beta
image: lnd:0.12.0-beta
build: ./lnd
restart: unless-stopped
command: [
@ -101,7 +101,7 @@ services:
rtl:
container_name: ${COMPOSE_PROJECT_NAME}_rtl
image: shahanafarooqui/rtl:0.6.4
image: shahanafarooqui/rtl:0.10.2
restart: unless-stopped
depends_on:
- lnd

13467
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -1,12 +1,12 @@
{
"name": "rtl",
"version": "0.10.2-beta",
"version": "0.11.0-beta-rc1",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --open",
"prebuild": "node ./prebuild",
"build": "ng analytics off && ng build --prod",
"prebuild": "node ./src/prebuild",
"build": "ng analytics off && ng lint && ng build --configuration production",
"serve": "ng serve",
"server": "nodemon ./rtl.js",
"test": "ng test",
@ -16,64 +16,70 @@
},
"private": true,
"dependencies": {
"@angular/animations": "~11.0.4",
"@angular/cdk": "^11.0.3",
"@angular/common": "~11.0.4",
"@angular/compiler": "~11.0.4",
"@angular/compiler-cli": "~11.0.4",
"@angular/core": "~11.0.4",
"@angular/flex-layout": "^11.0.0-beta.33",
"@angular/forms": "~11.0.4",
"@angular/material": "^11.0.3",
"@angular/platform-browser": "~11.0.4",
"@angular/platform-browser-dynamic": "~11.0.4",
"@angular/router": "~11.0.4",
"@angular/animations": "~12.0.1",
"@angular/cdk": "^12.0.1",
"@angular/common": "~12.0.1",
"@angular/compiler": "~12.0.1",
"@angular/compiler-cli": "~12.0.1",
"@angular/core": "~12.0.1",
"@angular/flex-layout": "^12.0.0-beta.34",
"@angular/forms": "~12.0.1",
"@angular/material": "^12.0.1",
"@angular/platform-browser": "~12.0.1",
"@angular/platform-browser-dynamic": "~12.0.1",
"@angular/router": "~12.0.1",
"@fortawesome/angular-fontawesome": "^0.8.1",
"@fortawesome/fontawesome-svg-core": "^1.2.32",
"@fortawesome/free-regular-svg-icons": "^5.15.1",
"@fortawesome/free-solid-svg-icons": "^5.15.1",
"@ngrx/effects": "^10.1.0",
"@ngrx/store": "^10.1.0",
"@ngrx/effects": "^12.0.0",
"@ngrx/store": "^12.0.0",
"@swimlane/ngx-charts": "^16.0.0",
"angular-user-idle": "^2.2.4",
"angularx-qrcode": "^10.0.11",
"angular-user-idle": "^2.2.5",
"angularx-qrcode": "^11.0.0",
"atob": "^2.1.2",
"cookie-parser": "^1.4.5",
"express": "^4.17.1",
"hammerjs": "^2.0.8",
"hocon-parser": "^1.0.1",
"ini": "^2.0.0",
"jsonwebtoken": "^8.5.1",
"material-design-icons": "^3.0.1",
"ngx-perfect-scrollbar": "^10.0.1",
"otplib": "^12.0.1",
"request": "^2.88.2",
"request-promise": "^4.2.6",
"roboto-fontface": "^0.10.0",
"rxjs": "~6.6.0",
"rxjs": "^7.1.0",
"sha256": "^0.2.0",
"tslib": "^2.0.0",
"typescript": "~4.0.2",
"zone.js": "~0.10.2"
"typescript": "~4.2.4",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.1100.4",
"@angular/cli": "^11.2.9",
"@ngrx/store-devtools": "^10.1.0",
"@angular-devkit/build-angular": "~12.0.1",
"@angular-eslint/builder": "12.0.0",
"@angular-eslint/eslint-plugin": "12.0.0",
"@angular-eslint/eslint-plugin-template": "12.0.0",
"@angular-eslint/schematics": "12.0.0",
"@angular-eslint/template-parser": "12.0.0",
"@angular/cli": "^12.0.1",
"@ngrx/store-devtools": "^12.0.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.19.9",
"codelyzer": "^6.0.0",
"@typescript-eslint/eslint-plugin": "4.23.0",
"@typescript-eslint/parser": "4.23.0",
"crypto-browserify": "^3.12.0",
"dotenv": "^8.2.0",
"eslint": "^7.26.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.1.0",
"karma": "~6.3.2",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.0.3",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"nodemon": "^2.0.6",
"protractor": "~7.0.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0"
"stream-browserify": "^3.0.0",
"ts-node": "~8.3.0"
}
}

@ -1,4 +1,4 @@
import { Component, OnChanges, Input } from '@angular/core';
import { Component, Input } from '@angular/core';
import { ChannelsStatus } from '../../../shared/models/clModels';
@Component({
@ -6,11 +6,9 @@ import { ChannelsStatus } from '../../../shared/models/clModels';
templateUrl: './channel-status-info.component.html',
styleUrls: ['./channel-status-info.component.scss']
})
export class CLChannelStatusInfoComponent implements OnChanges {
export class CLChannelStatusInfoComponent {
@Input() channelsStatus: ChannelsStatus = {};
constructor() {}
ngOnChanges() {}
}

@ -220,7 +220,7 @@ export class CLHomeComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -108,7 +108,7 @@ export class CLLookupsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -15,8 +15,6 @@ export class CLFeeRatesComponent implements AfterContentChecked {
constructor() { }
ngOnInit() {}
ngAfterContentChecked() {
if (this.feeRateStyle === feeRateStyle.KB) {
this.perkbw = this.feeRates.perkb;

@ -112,7 +112,7 @@ export class CLNetworkInfoComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core';
import { Component } from '@angular/core';
import { take } from 'rxjs/operators';
import { Store } from '@ngrx/store';
@ -15,15 +15,13 @@ import * as fromRTLReducer from '../../../store/rtl.reducers';
templateUrl: './on-chain-receive.component.html',
styleUrls: ['./on-chain-receive.component.scss']
})
export class CLOnChainReceiveComponent implements OnInit {
export class CLOnChainReceiveComponent {
public addressTypes = ADDRESS_TYPES;
public selectedAddressType = ADDRESS_TYPES[0];
public newAddress = '';
constructor(private store: Store<fromRTLReducer.RTLState>, private clEffects: CLEffects) {}
ngOnInit() {}
onGenerateAddress() {
this.store.dispatch(new RTLActions.OpenSpinner('Getting New Address...'));
this.store.dispatch(new CLActions.GetNewAddress(this.selectedAddressType));

@ -287,7 +287,7 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -33,7 +33,7 @@ export class CLOnChainSendComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -60,7 +60,7 @@ export class CLOnChainComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -60,7 +60,7 @@ export class CLUTXOTablesComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -254,7 +254,7 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -154,7 +154,7 @@ export class CLChannelPendingTableComponent implements OnInit, AfterViewInit, On
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -86,7 +86,7 @@ export class CLChannelsTablesComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -172,7 +172,7 @@ export class CLOpenChannelComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -162,7 +162,7 @@ export class CLConnectPeerComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -49,7 +49,7 @@ export class CLConnectionsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -193,7 +193,7 @@ export class CLPeersComponent implements OnInit, AfterViewInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -157,7 +157,7 @@ export class CLFeeReportComponent implements OnInit, AfterViewInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -29,7 +29,7 @@ export class CLReportsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -169,7 +169,7 @@ export class CLTransactionsReportComponent implements OnInit, AfterViewInit, OnD
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -119,7 +119,7 @@ export class CLFailedTransactionsComponent implements OnInit, AfterViewInit, OnD
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnInit, ViewChild, OnDestroy, SimpleChanges, Input, AfterViewInit } from '@angular/core';
import { Component, OnInit, OnChanges, ViewChild, OnDestroy, SimpleChanges, Input, AfterViewInit } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { Store } from '@ngrx/store';
@ -22,7 +22,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers';
{ provide: MatPaginatorIntl, useValue: getPaginatorLabel('Events') }
]
})
export class CLForwardingHistoryComponent implements OnInit, AfterViewInit, OnDestroy {
export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
@ViewChild(MatSort, { static: false }) sort: MatSort|undefined;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator|undefined;
@Input() eventsData = [];
@ -134,7 +134,7 @@ export class CLForwardingHistoryComponent implements OnInit, AfterViewInit, OnDe
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -32,7 +32,7 @@ export class CLRoutingComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -29,7 +29,7 @@ export class CLSignVerifyMessageComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnInit, OnDestroy } from '@angular/core';
import { Component, OnDestroy } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { MatSnackBar } from '@angular/material/snack-bar';
@ -11,7 +11,7 @@ import { LoggerService } from '../../../shared/services/logger.service';
templateUrl: './sign.component.html',
styleUrls: ['./sign.component.scss']
})
export class CLSignComponent implements OnInit, OnDestroy {
export class CLSignComponent implements OnDestroy {
public message = '';
public signedMessage = '';
public signature = '';
@ -19,8 +19,6 @@ export class CLSignComponent implements OnInit, OnDestroy {
constructor(private dataService: DataService, private snackBar: MatSnackBar, private logger: LoggerService) {}
ngOnInit() {}
onSign():boolean|void {
if (!this.message || this.message === '') { return true; }
this.dataService.signMessage(this.message).pipe(takeUntil(this.unSubs[0])).subscribe(res => {
@ -46,7 +44,7 @@ export class CLSignComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnInit, OnDestroy } from '@angular/core';
import { Component, OnDestroy } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { MatSnackBar } from '@angular/material/snack-bar';
@ -11,7 +11,7 @@ import { LoggerService } from '../../../shared/services/logger.service';
templateUrl: './verify.component.html',
styleUrls: ['./verify.component.scss']
})
export class CLVerifyComponent implements OnInit, OnDestroy {
export class CLVerifyComponent implements OnDestroy {
public message = '';
public verifiedMessage = '';
public signature = '';
@ -22,8 +22,6 @@ export class CLVerifyComponent implements OnInit, OnDestroy {
constructor(private dataService: DataService, private snackBar: MatSnackBar, private logger: LoggerService) {}
ngOnInit() {}
onVerify():boolean|void {
if ((!this.message || this.message === '') || (!this.signature || this.signature === '')) { return true; }
this.dataService.verifyMessage(this.message, this.signature).pipe(takeUntil(this.unSubs[0]))
@ -56,7 +54,7 @@ export class CLVerifyComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -806,7 +806,7 @@ export class CLEffects implements OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -106,7 +106,7 @@ export class CLCreateInvoiceComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -78,7 +78,7 @@
</ng-container>
<tr mat-footer-row *matFooterRowDef="['no_invoice']" [ngClass]="{'display-none': invoices?.data && invoices?.data?.length>0}"></tr>
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: flgSticky;"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [@newlyAddedRowAnimation]="(row.label == newlyAddedInvoiceMemo && row.value == newlyAddedInvoiceValue && flgAnimate) ? 'added' : 'notAdded'"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [@newlyAddedRowAnimation]="(row.label === newlyAddedInvoiceMemo && row.value === newlyAddedInvoiceValue && flgAnimate) ? 'added' : 'notAdded'"></tr>
</table>
</div>
<mat-paginator [pageSize]="pageSize" [pageSizeOptions]="pageSizeOptions" [showFirstLastButtons]="screenSize === screenSizeEnum.XS ? false : true" class="mb-1"></mat-paginator>

@ -192,7 +192,7 @@ export class CLLightningInvoicesComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -296,7 +296,7 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -103,7 +103,7 @@ export class CLQueryRoutesComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -191,7 +191,7 @@ export class CLLightningSendPaymentsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -48,7 +48,7 @@ export class CLTransactionsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnChanges, Input } from '@angular/core';
import { Component, Input } from '@angular/core';
import { ChannelsStatus } from '../../../shared/models/eclModels';
@Component({
@ -6,11 +6,9 @@ import { ChannelsStatus } from '../../../shared/models/eclModels';
templateUrl: './channel-status-info.component.html',
styleUrls: ['./channel-status-info.component.scss']
})
export class ECLChannelStatusInfoComponent implements OnChanges {
export class ECLChannelStatusInfoComponent {
@Input() channelsStatus: ChannelsStatus = {};
constructor() {}
ngOnChanges() {}
}

@ -1,4 +1,4 @@
import { Component, Input } from '@angular/core';
import { Component, OnChanges, Input } from '@angular/core';
import { Fees } from '../../../shared/models/eclModels';
@Component({
@ -6,7 +6,7 @@ import { Fees } from '../../../shared/models/eclModels';
templateUrl: './fee-info.component.html',
styleUrls: ['./fee-info.component.scss']
})
export class ECLFeeInfoComponent {
export class ECLFeeInfoComponent implements OnChanges {
@Input() fees: Fees;
totalFees = [{'name': 'Monthly', 'value': 0}, {'name': 'Weekly', 'value': 0}, {'name': 'Daily', 'value': 0}];
maxFeeValue = 100;

@ -192,7 +192,7 @@ export class ECLHomeComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -124,7 +124,7 @@ export class ECLLookupsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core';
import { Component } from '@angular/core';
import { take } from 'rxjs/operators';
import { Store } from '@ngrx/store';
@ -14,13 +14,11 @@ import * as fromRTLReducer from '../../../store/rtl.reducers';
templateUrl: './on-chain-receive.component.html',
styleUrls: ['./on-chain-receive.component.scss']
})
export class ECLOnChainReceiveComponent implements OnInit {
export class ECLOnChainReceiveComponent {
public newAddress = '';
constructor(private store: Store<fromRTLReducer.RTLState>, private eclEffects: ECLEffects) {}
ngOnInit() {}
onGenerateAddress() {
this.store.dispatch(new RTLActions.OpenSpinner('Getting New Address...'));
this.store.dispatch(new ECLActions.GetNewAddress());

@ -114,7 +114,7 @@ export class ECLOnChainSendModalComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -33,7 +33,7 @@ export class ECLOnChainSendComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -115,7 +115,7 @@ export class ECLOnChainTransactionHistoryComponent implements OnInit, OnDestroy
ngOnDestroy() {
this.unsub.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -50,7 +50,7 @@ export class ECLOnChainComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -147,7 +147,7 @@ export class ECLChannelInactiveTableComponent implements OnInit, AfterViewInit,
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -189,7 +189,7 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -123,7 +123,7 @@ export class ECLChannelPendingTableComponent implements OnInit, AfterViewInit, O
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -73,7 +73,7 @@ export class ECLChannelsTablesComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -122,7 +122,7 @@ export class ECLOpenChannelComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -146,7 +146,7 @@ export class ECLConnectPeerComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -45,7 +45,7 @@ export class ECLConnectionsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
import { Component, OnInit, AfterViewInit, OnDestroy, ViewChild } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil, filter } from 'rxjs/operators';
@ -32,7 +32,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers';
{ provide: MatPaginatorIntl, useValue: getPaginatorLabel('Peers') },
]
})
export class ECLPeersComponent implements OnInit, OnDestroy {
export class ECLPeersComponent implements OnInit, AfterViewInit, OnDestroy {
@ViewChild(MatSort, { static: false }) sort: MatSort|undefined;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator|undefined;
public faUsers = faUsers;
@ -192,7 +192,7 @@ export class ECLPeersComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -150,7 +150,7 @@ export class ECLFeeReportComponent implements OnInit, AfterViewInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -29,7 +29,7 @@ export class ECLReportsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -169,7 +169,7 @@ export class ECLTransactionsReportComponent implements OnInit, AfterViewInit, On
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -140,7 +140,7 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -134,7 +134,7 @@ export class ECLRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -33,7 +33,7 @@ export class ECLRoutingComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -638,7 +638,7 @@ export class ECLEffects implements OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -110,7 +110,7 @@ export class ECLCreateInvoiceComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -83,7 +83,7 @@
</ng-container>
<tr mat-footer-row *matFooterRowDef="['no_invoice']" [ngClass]="{'display-none': invoices?.data && invoices?.data?.length>0}"></tr>
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: flgSticky;"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [@newlyAddedRowAnimation]="(row.label == newlyAddedInvoiceMemo && row.value == newlyAddedInvoiceValue && flgAnimate) ? 'added' : 'notAdded'"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [@newlyAddedRowAnimation]="(row.label === newlyAddedInvoiceMemo && row.value === newlyAddedInvoiceValue && flgAnimate) ? 'added' : 'notAdded'"></tr>
</table>
</div>
<mat-paginator [pageSize]="pageSize" [pageSizeOptions]="pageSizeOptions" [showFirstLastButtons]="screenSize === screenSizeEnum.XS ? false : true" class="mb-1"></mat-paginator>

@ -168,7 +168,7 @@ export class ECLLightningInvoicesComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,6 +1,6 @@
import { Component, OnInit, OnDestroy, ViewChild, Input, AfterViewInit } from '@angular/core';
import { DecimalPipe, TitleCasePipe } from '@angular/common';
import { forkJoin, Subject } from 'rxjs';
import { DecimalPipe } from '@angular/common';
import { Subject } from 'rxjs';
import { takeUntil, take } from 'rxjs/operators';
import { Store } from '@ngrx/store';
import { faHistory } from '@fortawesome/free-solid-svg-icons';
@ -359,7 +359,7 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD
}
return paymentReqs;
}, '');
forkJoin(this.dataService.decodePayments(paymentRequests)
this.dataService.decodePayments(paymentRequests)
.pipe(takeUntil(this.unSubs[2]))
.subscribe((decodedPayments: any[][]) => {
decodedPayments.forEach((decodedPayment, idx) => {
@ -369,14 +369,14 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD
});
let flattenedPayments = paymentsDataCopy.reduce((acc, curr) => acc.concat(curr), []);
this.commonService.downloadFile(flattenedPayments, 'Payments');
}));
});
}
}
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -99,7 +99,7 @@ export class ECLQueryRoutesComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -166,7 +166,7 @@ export class ECLLightningSendPaymentsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -48,7 +48,7 @@ export class ECLTransactionsComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -29,7 +29,7 @@ export class BackupComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -135,7 +135,7 @@ export class ChannelBackupTableComponent implements OnInit, AfterViewInit, OnDes
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -94,7 +94,7 @@ export class ChannelRestoreTableComponent implements OnInit, AfterViewInit, OnDe
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -61,7 +61,7 @@ export class ChannelLiquidityInfoComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

@ -1,4 +1,4 @@
import { Component, OnChanges, Input } from '@angular/core';
import { Component, Input } from '@angular/core';
import { ChannelsStatus } from '../../../shared/models/lndModels';
@Component({
@ -6,11 +6,9 @@ import { ChannelsStatus } from '../../../shared/models/lndModels';
templateUrl: './channel-status-info.component.html',
styleUrls: ['./channel-status-info.component.scss']
})
export class ChannelStatusInfoComponent implements OnChanges {
export class ChannelStatusInfoComponent {
@Input() channelsStatus: ChannelsStatus = {};
constructor() {}
ngOnChanges() {}
}

@ -223,7 +223,7 @@ export class HomeComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();
completeSub.next(null);
completeSub.complete();
});
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save