mirror of
https://github.com/Ride-The-Lightning/RTL.git
synced 2024-11-19 01:40:29 +01:00
Initial commit
This commit is contained in:
commit
da659c8dd4
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
376
angular/3rdpartylicenses.txt
Normal file
376
angular/3rdpartylicenses.txt
Normal file
@ -0,0 +1,376 @@
|
|||||||
|
angular-calendar@0.25.2
|
||||||
|
MIT
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 Matt Lewis
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
dragula@3.7.2
|
||||||
|
MIT
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright © 2015-2016 Nicolas Bevacqua
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
@swimlane/ngx-datatable@12.0.0
|
||||||
|
MIT
|
||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2016 Swimlane <info@swimlane.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.
|
||||||
|
|
||||||
|
core-js@2.5.6
|
||||||
|
MIT
|
||||||
|
Copyright (c) 2014-2018 Denis Pushkarev
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
classlist.js@1.1.20150312
|
||||||
|
Dedicated to the public domain
|
||||||
|
This is free and unencumbered software released into the public domain.
|
||||||
|
|
||||||
|
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
distribute this software, either in source code form or as a compiled
|
||||||
|
binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
means.
|
||||||
|
|
||||||
|
In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
of this software dedicate any and all copyright interest in the
|
||||||
|
software to the public domain. We make this dedication for the benefit
|
||||||
|
of the public at large and to the detriment of our heirs and
|
||||||
|
successors. We intend this dedication to be an overt act of
|
||||||
|
relinquishment in perpetuity of all present and future rights to this
|
||||||
|
software under copyright law.
|
||||||
|
|
||||||
|
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 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.
|
||||||
|
|
||||||
|
For more information, please refer to <http://unlicense.org/>
|
||||||
|
|
||||||
|
web-animations-js@2.3.1
|
||||||
|
Apache-2.0
|
||||||
|
Apache-2.0
|
||||||
|
|
||||||
|
zone.js@0.8.26
|
||||||
|
MIT
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2016-2018 Google, Inc.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
rxjs@6.1.0
|
||||||
|
Apache-2.0
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
hammerjs@2.0.8
|
||||||
|
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.
|
BIN
angular/assets/img/RTL1.jpg
Normal file
BIN
angular/assets/img/RTL1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.6 KiB |
BIN
angular/assets/img/RTL2.jpg
Normal file
BIN
angular/assets/img/RTL2.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.4 KiB |
BIN
angular/assets/img/favicon.ico
Normal file
BIN
angular/assets/img/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
33
angular/assets/styles/style.css
Normal file
33
angular/assets/styles/style.css
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
.mat-raised-button {
|
||||||
|
margin-top: 5px !important;
|
||||||
|
max-height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-card {
|
||||||
|
padding: 12px 24px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-card-header-text {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-form-field-wrapper {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 15px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-select {
|
||||||
|
margin: 0 15px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: #388e3c !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.red {
|
||||||
|
color: #c62828 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.yellow {
|
||||||
|
color: #ffd740 !important;
|
||||||
|
}
|
26
angular/data-table.b0aebd744ce7adb780a9.svg
Normal file
26
angular/data-table.b0aebd744ce7adb780a9.svg
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>Generated by Fontastic.me</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="data-table" horiz-adv-x="512">
|
||||||
|
<font-face font-family="data-table" units-per-em="512" ascent="480" descent="-32"/>
|
||||||
|
<missing-glyph horiz-adv-x="512" />
|
||||||
|
|
||||||
|
<glyph glyph-name="filter" unicode="b" d="M213 128l86 0 0 43-86 0z m-149 256l0-43 384 0 0 43z m64-149l256 0 0 42-256 0z"/>
|
||||||
|
<glyph glyph-name="collapse" unicode="a" d="M158 115l30-30 68 68 68-68 30 30-98 98z m196 282l-30 30-68-68-68 68-30-30 98-98z"/>
|
||||||
|
<glyph glyph-name="expand" unicode="c" d="M256 388l68-68 30 30-98 98-98-98 30-30z m0-264l-68 68-30-30 98-98 98 98-30 30z"/>
|
||||||
|
<glyph glyph-name="close" unicode="d" d="M405 375l-30 30-119-119-119 119-30-30 119-119-119-119 30-30 119 119 119-119 30 30-119 119z"/>
|
||||||
|
<glyph glyph-name="up" unicode="e" d="M256 341l-128-128 30-30 98 98 98-98 30 30z"/>
|
||||||
|
<glyph glyph-name="down" unicode="f" d="M354 329l-98-98-98 98-30-30 128-128 128 128z"/>
|
||||||
|
<glyph glyph-name="sort" unicode="g" d="M64 128l128 0 0 43-128 0z m0 256l0-43 384 0 0 43z m0-149l256 0 0 42-256 0z"/>
|
||||||
|
<glyph glyph-name="done" unicode="h" d="M192 166l-90 90-29-30 119-119 256 256-30 30z"/>
|
||||||
|
<glyph glyph-name="done-all" unicode="i" d="M384 363l-30 30-135-136 30-30z m90 30l-225-226-89 89-31-30 120-119 256 256z m-483-167l137-119 30 30-119 119-30-30z"/>
|
||||||
|
<glyph glyph-name="search" unicode="j" d="M192 128c46 0 87 16 120 42 0 0 164-164 164-164 4-4 9-6 15-6 5 0 11 2 15 6 8 9 8 22 0 30 0 0-164 165-164 165 26 33 42 74 42 119 0 106-86 192-192 192-106 0-192-86-192-192 0-106 86-192 192-192z m0 341c82 0 149-67 149-149 0-82-67-149-149-149-82 0-149 67-149 149 0 82 67 149 149 149z"/>
|
||||||
|
<glyph glyph-name="pin" unicode="k" d="M224 160l32-160 32 160c-10-1-21-2-32-2-10 0-22 1-32 2z m127 149c-16 9-31 30-31 43l0 32c0 11 6 19 12 26 7 6 12 14 12 22 0 27-31 48-88 48-57 0-87-21-87-48 0-8 4-16 12-22 5-7 11-15 11-26l0-32c0-13-14-34-31-43-19-9-35-27-35-44 0-37 51-74 130-74 80 0 130 37 130 74 0 17-15 34-35 44z"/>
|
||||||
|
<glyph glyph-name="add" unicode="m" d="M405 235l-128 0 0-128-42 0 0 128-128 0 0 42 128 0 0 128 42 0 0-128 128 0z"/>
|
||||||
|
<glyph glyph-name="left" unicode="o" d="M329 169l-98 98 98 98-30 30-128-128 128-128z"/>
|
||||||
|
<glyph glyph-name="right" unicode="p" d="M183 163l98 98-98 98 30 30 128-128-128-128z"/>
|
||||||
|
<glyph glyph-name="skip" unicode="q" d="M128 128l181 128-181 128z m213 256l0-256 43 0 0 256z"/>
|
||||||
|
<glyph glyph-name="prev" unicode="r" d="M128 384l43 0 0-256-43 0z m75-128l181-128 0 256z"/>
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 2.6 KiB |
BIN
angular/data-table.bce071e976865da51100.eot
Normal file
BIN
angular/data-table.bce071e976865da51100.eot
Normal file
Binary file not shown.
12
angular/index.html
Normal file
12
angular/index.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<title>RTL</title>
|
||||||
|
<base href="/">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
|
||||||
|
<link rel="icon" type="image/x-icon" href="./assets/img/favicon.ico">
|
||||||
|
<link rel="stylesheet" href="styles.e42543d5905705013850.css"></head>
|
||||||
|
<body>
|
||||||
|
<rtl-root></rtl-root>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="runtime.6afe30102d8fe7337431.js"></script><script type="text/javascript" src="polyfills.c7939909ac1e754960ad.js"></script><script type="text/javascript" src="main.0e2ecc4db6f9386acca3.js"></script></body></html>
|
1
angular/main.0e2ecc4db6f9386acca3.js
Normal file
1
angular/main.0e2ecc4db6f9386acca3.js
Normal file
File diff suppressed because one or more lines are too long
1
angular/polyfills.c7939909ac1e754960ad.js
Normal file
1
angular/polyfills.c7939909ac1e754960ad.js
Normal file
File diff suppressed because one or more lines are too long
1
angular/runtime.6afe30102d8fe7337431.js
Normal file
1
angular/runtime.6afe30102d8fe7337431.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
!function(r){function e(e){for(var t,p,c=e[0],a=e[1],f=e[2],l=0,s=[];l<c.length;l++)o[p=c[l]]&&s.push(o[p][0]),o[p]=0;for(t in a)Object.prototype.hasOwnProperty.call(a,t)&&(r[t]=a[t]);for(i&&i(e);s.length;)s.shift()();return u.push.apply(u,f||[]),n()}function n(){for(var r,e=0;e<u.length;e++){for(var n=u[e],t=!0,c=1;c<n.length;c++)0!==o[n[c]]&&(t=!1);t&&(u.splice(e--,1),r=p(p.s=n[0]))}return r}var t={},o={0:0},u=[];function p(e){if(t[e])return t[e].exports;var n=t[e]={i:e,l:!1,exports:{}};return r[e].call(n.exports,n,n.exports,p),n.l=!0,n.exports}p.m=r,p.c=t,p.d=function(r,e,n){p.o(r,e)||Object.defineProperty(r,e,{configurable:!1,enumerable:!0,get:n})},p.r=function(r){Object.defineProperty(r,"__esModule",{value:!0})},p.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return p.d(e,"a",e),e},p.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},p.p="";var c=window.webpackJsonp=window.webpackJsonp||[],a=c.push.bind(c);c.push=e,c=c.slice();for(var f=0;f<c.length;f++)e(c[f]);var i=a;n()}([]);
|
1
angular/styles.e42543d5905705013850.css
Normal file
1
angular/styles.e42543d5905705013850.css
Normal file
File diff suppressed because one or more lines are too long
48
app.js
Normal file
48
app.js
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
const path = require("path");
|
||||||
|
const express = require("express");
|
||||||
|
const bodyParser = require("body-parser");
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
//Declare all Routes here
|
||||||
|
const infoRoutes = require("./routes/getInfo");
|
||||||
|
const channelsRoutes = require("./routes/channels");
|
||||||
|
const peersRoutes = require("./routes/peers");
|
||||||
|
const feesRoutes = require("./routes/fees");
|
||||||
|
const balanceRoutes = require("./routes/balance");
|
||||||
|
const walletRoutes = require("./routes/wallet");
|
||||||
|
const UISettingsRoutes = require("./routes/UISettings");
|
||||||
|
|
||||||
|
app.use(bodyParser.json());
|
||||||
|
app.use(bodyParser.urlencoded({ extended: false }));
|
||||||
|
app.use("/", express.static(path.join(__dirname, "angular")));
|
||||||
|
|
||||||
|
// CORS fix, Only required for developement due to separate backend and frontend servers
|
||||||
|
app.use((req, res, next) => {
|
||||||
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
res.setHeader(
|
||||||
|
"Access-Control-Allow-Headers",
|
||||||
|
"Origin, X-Requested-With, Content-Type, Accept, Authorization"
|
||||||
|
);
|
||||||
|
res.setHeader(
|
||||||
|
"Access-Control-Allow-Methods",
|
||||||
|
"GET, POST, PATCH, PUT, DELETE, OPTIONS"
|
||||||
|
);
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
// CORS fix, Only required for developement due to separate backend and frontend servers
|
||||||
|
|
||||||
|
// Use declared routes here
|
||||||
|
app.use("/api/getinfo", infoRoutes);
|
||||||
|
app.use("/api/channels", channelsRoutes);
|
||||||
|
app.use("/api/peers", peersRoutes);
|
||||||
|
app.use("/api/fees", feesRoutes);
|
||||||
|
app.use("/api/balance", balanceRoutes);
|
||||||
|
app.use("/api/wallet", walletRoutes);
|
||||||
|
app.use("/api/uisettings", UISettingsRoutes);
|
||||||
|
|
||||||
|
// sending angular application when route doesn't match
|
||||||
|
app.use((req, res, next) => {
|
||||||
|
res.sendFile(path.join(__dirname, "angular", "index.html"));
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = app;
|
20
config.js
Normal file
20
config.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
var config = {};
|
||||||
|
|
||||||
|
config.lnd_server_url = 'https://localhost:8080/v1';
|
||||||
|
config.lnd_dir = '';
|
||||||
|
|
||||||
|
config.debuglevel='debug';
|
||||||
|
config.debughtlc=true;
|
||||||
|
config.maxpendingchannels=5;
|
||||||
|
config.alias='TEST_MYLN';
|
||||||
|
config.color='#68F450';
|
||||||
|
|
||||||
|
config.bitcoin = { active: 1, testnet: 1, mainnet: 1 };
|
||||||
|
|
||||||
|
// config.bitcoin = { active: 1, testnet: 1, mainnet: 1, node: neutrino };
|
||||||
|
// config.neutrino = { connect: faucet.lightning.community };
|
||||||
|
config.externalip='24.228.183.56';
|
||||||
|
|
||||||
|
config.autopilot = {active: 1, maxchannels: 5, allocation: 0.3};
|
||||||
|
|
||||||
|
module.exports = config;
|
24
connect.js
Normal file
24
connect.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
var fs = require('fs');
|
||||||
|
var config = require('./config');
|
||||||
|
var clArgs = require('optimist').argv;
|
||||||
|
|
||||||
|
if(undefined !== clArgs.lndir) {
|
||||||
|
config.lnd_dir = clArgs.lndir;
|
||||||
|
} else {
|
||||||
|
if(config.lnd_dir === '') {
|
||||||
|
config.lnd_dir = __dirname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var macaroon = fs.readFileSync(config.lnd_dir + '/admin.macaroon').toString('hex');
|
||||||
|
var options = {
|
||||||
|
url: '',
|
||||||
|
rejectUnauthorized: false,
|
||||||
|
json: true,
|
||||||
|
headers: {
|
||||||
|
'Grpc-Metadata-macaroon': macaroon,
|
||||||
|
},
|
||||||
|
form: ''
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = options;
|
33
controllers/UISettings.js
Normal file
33
controllers/UISettings.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
var fs = require('fs');
|
||||||
|
var file_path = './settings/ui.settings.json';
|
||||||
|
|
||||||
|
exports.getUISettings = (req, res, next) => {
|
||||||
|
console.log('Getting UI Settings!');
|
||||||
|
fs.readFile(file_path, function(err, data) {
|
||||||
|
if (err) {
|
||||||
|
console.log('Reading UI Settings Failed!');
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Reading UI Settings Failed!",
|
||||||
|
error: err
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.log('UI theme read successfully');
|
||||||
|
res.status(200).json({settings: JSON.parse(data)});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.updateUISettings = (req, res, next) => {
|
||||||
|
fs.writeFile(file_path, JSON.stringify(req.body.updatedSettings), function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.log('Updating UI Settings Failed!');
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Updating UI Settings Failed!",
|
||||||
|
error: 'Updating UI Settings Failed!'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.log('UI theme updated successfully');
|
||||||
|
res.status(201).json({message: 'UI theme updated successfully'});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
19
controllers/balance.js
Normal file
19
controllers/balance.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
var request = require('request');
|
||||||
|
var options = require("../connect");
|
||||||
|
var config = require('../config');
|
||||||
|
|
||||||
|
exports.getBalance = (req, res, next) => {
|
||||||
|
options.url = config.lnd_server_url + '/balance/' + req.params.source;
|
||||||
|
options.qs = req.query;
|
||||||
|
request.get(options, (error, response, body) => {
|
||||||
|
console.log('Request params: ' + JSON.stringify(req.params) + '\nRequest Query: ' + JSON.stringify(req.query) + ' \nBalance Received: ' + JSON.stringify(body));
|
||||||
|
if(undefined === body || body.error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Fetching balance failed!",
|
||||||
|
error: (undefined === body) ? 'ERROR From Server!' : body.error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(200).json({balance: body});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
43
controllers/channels.js
Normal file
43
controllers/channels.js
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
var request = require('request');
|
||||||
|
var options = require("../connect");
|
||||||
|
var config = require('../config');
|
||||||
|
|
||||||
|
exports.getChannels = (req, res, next) => {
|
||||||
|
if (undefined === req.params.channelType || req.params.channelType === 'all') {
|
||||||
|
options.url = config.lnd_server_url + '/channels';
|
||||||
|
} else {
|
||||||
|
options.url = config.lnd_server_url + '/channels/' + req.params.channelType;
|
||||||
|
}
|
||||||
|
options.qs = req.query;
|
||||||
|
request.get(options, (error, response, body) => {
|
||||||
|
console.log('Request params: ' + JSON.stringify(req.params) + '\nRequest Query: ' + JSON.stringify(req.query) + ' \nChannel Received: ' + JSON.stringify(body));
|
||||||
|
if(undefined === body || body.error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Fetching channels failed!",
|
||||||
|
error: (undefined === body) ? 'ERROR From Server!' : body.error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(200).json(body);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.postChannel = (req, res, next) => {
|
||||||
|
options.url = config.lnd_server_url + '/channels';
|
||||||
|
options.form = JSON.stringify({
|
||||||
|
node_pubkey_string: req.body.node_pubkey,
|
||||||
|
local_funding_amount: req.body.local_funding_amount
|
||||||
|
});
|
||||||
|
request.post(options, (error, response, body) => {
|
||||||
|
console.log('Channel Open Response: ');
|
||||||
|
console.log(body);
|
||||||
|
if(undefined === body || body.error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Open channel failed!",
|
||||||
|
error: (undefined === body) ? 'ERROR From Server!' : body.error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(201).json(body);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
27
controllers/fees.js
Normal file
27
controllers/fees.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
var request = require('request');
|
||||||
|
var options = require("../connect");
|
||||||
|
var config = require('../config');
|
||||||
|
|
||||||
|
exports.getFees = (req, res, next) => {
|
||||||
|
options.url = config.lnd_server_url + '/fees';
|
||||||
|
request.get(options, (error, response, body) => {
|
||||||
|
console.log("Fee Received: " + JSON.stringify(body));
|
||||||
|
if(undefined === body || body.error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Fetching fee failed!",
|
||||||
|
error: (undefined === body) ? 'ERROR From Server!' : body.error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (undefined === body.day_fee_sum) {
|
||||||
|
body.day_fee_sum = 0;
|
||||||
|
}
|
||||||
|
if (undefined === body.week_fee_sum) {
|
||||||
|
body.week_fee_sum = 0;
|
||||||
|
}
|
||||||
|
if (undefined === body.month_fee_sum) {
|
||||||
|
body.month_fee_sum = 0;
|
||||||
|
}
|
||||||
|
res.status(200).json({fees: body});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
18
controllers/getInfo.js
Normal file
18
controllers/getInfo.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
var request = require('request');
|
||||||
|
var options = require("../connect");
|
||||||
|
var config = require('../config');
|
||||||
|
|
||||||
|
exports.getInfo = (req, res, next) => {
|
||||||
|
options.url = config.lnd_server_url + '/getinfo';
|
||||||
|
request.get(options, (error, response, body) => {
|
||||||
|
console.log('Information Received: ' + JSON.stringify(body));
|
||||||
|
if(undefined === body || body.error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Fetching Info failed!",
|
||||||
|
error: (undefined === body) ? 'ERROR From Server!' : body.error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(200).json({body});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
40
controllers/peers.js
Normal file
40
controllers/peers.js
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
var fs = require('fs');
|
||||||
|
var request = require('request');
|
||||||
|
var options = require("../connect");
|
||||||
|
var config = require('../config');
|
||||||
|
|
||||||
|
exports.getPeers = (req, res, next) => {
|
||||||
|
options.url = config.lnd_server_url + '/peers';
|
||||||
|
request.get(options, (error, response, body) => {
|
||||||
|
console.log('Peers Received: ' + JSON.stringify(body));
|
||||||
|
if(error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Fetching peers failed!",
|
||||||
|
error: error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(200).json(body.peers);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.postPeer = (req, res, next) => {
|
||||||
|
options.url = 'https://localhost:8080/v1/peers';
|
||||||
|
options.form = JSON.stringify({
|
||||||
|
addr: { host: req.body.host, pubkey: req.body.pubkey },
|
||||||
|
perm: req.body.perm
|
||||||
|
});
|
||||||
|
console.log('Options: ' + JSON.stringify(options));
|
||||||
|
request.post(options, (error, response, body) => {
|
||||||
|
console.log('Peer Add Response: ');
|
||||||
|
console.log(body);
|
||||||
|
if(undefined === body || body.error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: "Adding peers failed!",
|
||||||
|
error: (undefined === body) ? 'ERROR From Server!' : body.error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(201).json({message: 'Peer Added!'});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
36
controllers/wallet.js
Normal file
36
controllers/wallet.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
var request = require('request');
|
||||||
|
var options = require("../connect");
|
||||||
|
var config = require('../config');
|
||||||
|
|
||||||
|
exports.operateWallet = (req, res, next) => {
|
||||||
|
console.log('\nRequest Body before conversion: ');
|
||||||
|
console.log(req.body);
|
||||||
|
var requestBody = {
|
||||||
|
wallet_password: Buffer.from(req.body.wallet_password).toString('base64')
|
||||||
|
};
|
||||||
|
console.log('\nRequest Body after conversion into Uint8Array: ');
|
||||||
|
console.log(requestBody);
|
||||||
|
if (undefined === req.params.operation || req.params.operation === 'unlock') {
|
||||||
|
options.url = config.lnd_server_url + '/unlockwallet';
|
||||||
|
options.form = JSON.stringify(requestBody);
|
||||||
|
err_message = 'Unlocking wallet failed! Verify that lnd is running!';
|
||||||
|
} else {
|
||||||
|
options.url = config.lnd_server_url + '/initwallet';
|
||||||
|
options.form = JSON.stringify(requestBody);
|
||||||
|
err_message = 'Initializing wallet failed!';
|
||||||
|
}
|
||||||
|
options.qs = req.query;
|
||||||
|
console.log('\nForm: ' + options.form);
|
||||||
|
request.post(options, (error, response, body) => {
|
||||||
|
console.log('\nUnlock Wallet Response: ');
|
||||||
|
console.log(body);
|
||||||
|
if(undefined === body || body.error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: err_message,
|
||||||
|
error: (undefined === body) ? 'ERROR From Server!' : body.error
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(201).json({wallet: 'successful'});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
75
package.json
Normal file
75
package.json
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"name": "rtl",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"ng": "ng",
|
||||||
|
"start": "ng build && ng serve",
|
||||||
|
"build": "ng build",
|
||||||
|
"test": "ng test",
|
||||||
|
"lint": "ng lint",
|
||||||
|
"e2e": "ng e2e"
|
||||||
|
},
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@agm/core": "1.0.0-beta.2",
|
||||||
|
"@angular/animations": "^6.0.3",
|
||||||
|
"@angular/cdk": "6.0.2",
|
||||||
|
"@angular/common": "^6.0.3",
|
||||||
|
"@angular/compiler": "^6.0.3",
|
||||||
|
"@angular/core": "^6.0.3",
|
||||||
|
"@angular/flex-layout": "5.0.0-beta.14",
|
||||||
|
"@angular/forms": "^6.0.3",
|
||||||
|
"@angular/http": "^6.0.3",
|
||||||
|
"@angular/material": "6.0.2",
|
||||||
|
"@angular/platform-browser": "^6.0.3",
|
||||||
|
"@angular/platform-browser-dynamic": "^6.0.3",
|
||||||
|
"@angular/router": "^6.0.3",
|
||||||
|
"@swimlane/ngx-charts": "8.0.0",
|
||||||
|
"@swimlane/ngx-datatable": "12.0.0",
|
||||||
|
"angular-calendar": "0.25.2",
|
||||||
|
"angular-in-memory-web-api": "0.6.0",
|
||||||
|
"bcrypt": "^2.0.1",
|
||||||
|
"body-parser": "^1.18.3",
|
||||||
|
"classlist.js": "1.1.20150312",
|
||||||
|
"core-js": "2.5.6",
|
||||||
|
"date-fns": "1.29.0",
|
||||||
|
"express": "^4.16.3",
|
||||||
|
"hammerjs": "2.0.8",
|
||||||
|
"leaflet-map": "0.2.1",
|
||||||
|
"ng2-dragula": "1.5.0",
|
||||||
|
"ngx-pagination": "3.1.1",
|
||||||
|
"ngx-perfect-scrollbar": "6.0.0",
|
||||||
|
"ngx-quill": "3.1.0",
|
||||||
|
"node-sass": "^4.9.2",
|
||||||
|
"optimist": "^0.6.1",
|
||||||
|
"rxjs": "6.1.0",
|
||||||
|
"rxjs-compat": "6.1.0",
|
||||||
|
"web-animations-js": "2.3.1",
|
||||||
|
"zone.js": "0.8.26"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@angular/cli": "6.0.1",
|
||||||
|
"@angular/compiler-cli": "6.0.1",
|
||||||
|
"@angular-devkit/build-angular": "0.6.1",
|
||||||
|
"@angular/language-service": "6.0.1",
|
||||||
|
"@types/hammerjs": "2.0.35",
|
||||||
|
"@types/jasmine": "2.8.7",
|
||||||
|
"@types/jasminewd2": "2.0.3",
|
||||||
|
"@types/node": "10.0.9",
|
||||||
|
"codelyzer": "4.3.0",
|
||||||
|
"jasmine-core": "3.1.0",
|
||||||
|
"jasmine-spec-reporter": "4.2.1",
|
||||||
|
"karma": "2.0.2",
|
||||||
|
"karma-chrome-launcher": "2.2.0",
|
||||||
|
"karma-cli": "1.0.1",
|
||||||
|
"karma-coverage-istanbul-reporter": "1.4.2",
|
||||||
|
"karma-jasmine": "1.1.2",
|
||||||
|
"karma-jasmine-html-reporter": "1.1.0",
|
||||||
|
"protractor": "5.3.2",
|
||||||
|
"ts-node": "6.0.3",
|
||||||
|
"tslint": "5.10.0",
|
||||||
|
"typescript": "2.7.2",
|
||||||
|
"nodemon": "^1.17.4"
|
||||||
|
}
|
||||||
|
}
|
8
routes/UISettings.js
Normal file
8
routes/UISettings.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
const UISettingsController = require("../controllers/UISettings");
|
||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get("/", UISettingsController.getUISettings);
|
||||||
|
router.post("/", UISettingsController.updateUISettings);
|
||||||
|
|
||||||
|
module.exports = router;
|
8
routes/balance.js
Normal file
8
routes/balance.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
const BalanceController = require("../controllers/balance");
|
||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get("/", BalanceController.getBalance);
|
||||||
|
router.get("/:source", BalanceController.getBalance);
|
||||||
|
|
||||||
|
module.exports = router;
|
9
routes/channels.js
Normal file
9
routes/channels.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
const ChannelsController = require("../controllers/channels");
|
||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get("/", ChannelsController.getChannels);
|
||||||
|
router.get("/:channelType", ChannelsController.getChannels);
|
||||||
|
router.post("/", ChannelsController.postChannel);
|
||||||
|
|
||||||
|
module.exports = router;
|
7
routes/fees.js
Normal file
7
routes/fees.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
const FeesController = require("../controllers/fees");
|
||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get("/", FeesController.getFees);
|
||||||
|
|
||||||
|
module.exports = router;
|
7
routes/getInfo.js
Normal file
7
routes/getInfo.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
const infoController = require("../controllers/getInfo");
|
||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get("/", infoController.getInfo);
|
||||||
|
|
||||||
|
module.exports = router;
|
8
routes/peers.js
Normal file
8
routes/peers.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
const PeersController = require("../controllers/peers");
|
||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get("/", PeersController.getPeers);
|
||||||
|
router.post("/", PeersController.postPeer);
|
||||||
|
|
||||||
|
module.exports = router;
|
7
routes/wallet.js
Normal file
7
routes/wallet.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
const WalletController = require("../controllers/wallet");
|
||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.post("/:operation", WalletController.operateWallet);
|
||||||
|
|
||||||
|
module.exports = router;
|
53
rtl.js
Normal file
53
rtl.js
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
const app = require("./app");
|
||||||
|
const debug = require("debug")("node-angular");
|
||||||
|
const http = require("http");
|
||||||
|
|
||||||
|
const normalizePort = val => {
|
||||||
|
var port = parseInt(val, 10);
|
||||||
|
|
||||||
|
if (isNaN(port)) {
|
||||||
|
// named pipe
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (port >= 0) {
|
||||||
|
// port number
|
||||||
|
return port;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
const onError = error => {
|
||||||
|
if (error.syscall !== "listen") {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
const bind = typeof addr === "string" ? "pipe " + addr : "port " + port;
|
||||||
|
switch (error.code) {
|
||||||
|
case "EACCES":
|
||||||
|
console.error(bind + " requires elevated privileges");
|
||||||
|
process.exit(1);
|
||||||
|
break;
|
||||||
|
case "EADDRINUSE":
|
||||||
|
console.error(bind + " is already in use");
|
||||||
|
process.exit(1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const onListening = () => {
|
||||||
|
const addr = server.address();
|
||||||
|
const bind = typeof addr === "string" ? "pipe " + addr : "port " + port;
|
||||||
|
debug("Listening on " + bind);
|
||||||
|
};
|
||||||
|
|
||||||
|
const port = normalizePort(process.env.PORT || "3000");
|
||||||
|
app.set("port", port);
|
||||||
|
|
||||||
|
const server = http.createServer(app);
|
||||||
|
server.on("error", onError);
|
||||||
|
server.on("listening", onListening);
|
||||||
|
server.listen(port);
|
||||||
|
console.log('Server is up and running, please open the UI at http://localhost:3000');
|
1
settings/ui.settings.json
Normal file
1
settings/ui.settings.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"name":"RTL","loadingSpinner":false,"fixedHeader":false,"sidenavIsOpened":true,"sidenavIsPinned":true,"sidenavUserBlock":true,"menu":"vertical","menuType":"default","theme":"blue-dark","rtl":false}
|
Loading…
Reference in New Issue
Block a user