Many new features and bug fixes towards production

This commit is contained in:
Troplo 2020-08-16 23:46:27 +10:00
parent 4348f4a9e9
commit 8254ec1827
21 changed files with 2024 additions and 203 deletions

750
frontend/licenses.html Normal file
View File

@ -0,0 +1,750 @@
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-scale=1">
</head>
<body>
<h1 id="package-name">frontend</h1>
<div class="licenses">
<h3>
<a href="https://fontawesome.com">@fortawesome&#x2F;fontawesome-svg-core</a>,
<a href="https://fontawesome.com">@fortawesome&#x2F;free-regular-svg-icons</a>,
<a href="https://fontawesome.com">@fortawesome&#x2F;free-solid-svg-icons</a>
</h3>
<blockquote>
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https:&#x2F;&#x2F;fontawesome.com&#x2F;license&#x2F;free.
# Icons: CC BY 4.0 License (https:&#x2F;&#x2F;creativecommons.org&#x2F;licenses&#x2F;by&#x2F;4.0&#x2F;)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https:&#x2F;&#x2F;scripts.sil.org&#x2F;OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https:&#x2F;&#x2F;opensource.org&#x2F;licenses&#x2F;MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn&#39;t need to do anything additional when using these
files normally.
We&#39;ve kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They&#39;re a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**
</blockquote>
<h3>
<a href="https://fontawesome.com">@fortawesome&#x2F;free-regular-svg-icons</a>,
<a href="https://fontawesome.com">@fortawesome&#x2F;free-solid-svg-icons</a>
</h3>
<blockquote>
import { IconDefinition, IconPrefix, IconName } from &quot;@fortawesome&#x2F;fontawesome-common-types&quot;;
export const definition: IconDefinition;
export const faCopyright: IconDefinition;
export const prefix: IconPrefix;
export const iconName: IconName;
export const width: number;
export const height: number;
export const ligatures: string[];
export const unicode: string;
export const svgPathData: string;
</blockquote>
<h3>
<a href="https://github.com/FortAwesome/vue-fontawesome">@fortawesome&#x2F;vue-fontawesome</a>
</h3>
<blockquote>
Copyright 2018 Fonticons, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the &quot;Software&quot;), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue-cli/tree/dev/packages/@vue/cli-plugin-babel#readme">@vue&#x2F;cli-plugin-babel</a>,
<a href="https://github.com/vuejs/vue-cli/tree/dev/packages/@vue/cli-plugin-eslint#readme">@vue&#x2F;cli-plugin-eslint</a>,
<a href="https://cli.vuejs.org/">@vue&#x2F;cli-service</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2017-present, Yuxi (Evan) You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/axios/axios">axios</a>
</h3>
<blockquote>
Copyright (c) 2014-present Matt Zabriskie
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/babel/babel-eslint">babel-eslint</a>
</h3>
<blockquote>
Copyright (c) 2014-2016 Sebastian McKenzie &lt;sebmck@gmail.com&gt;
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/npm/security-holder#readme">child_process</a>,
<a href="https://github.com/npm/security-holder#readme">fs</a>
</h3>
<blockquote>
ISC License Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. (&quot;ISC&quot;)
Copyright (c) 1995-2003 by Internet Software Consortium
Permission to use, copy, modify, and &#x2F;or distribute this software for any
purpose with or without fee is hereby granted, provided that the above copyright
notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD
TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</blockquote>
<h3>
<a href="https://github.com/zloirock/core-js#readme">core-js</a>
</h3>
<blockquote>
Copyright (c) 2014-2020 Denis Pushkarev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://d3js.org">d3</a>
</h3>
<blockquote>
Copyright 2010-2017 Mike Bostock
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and&#x2F;or other materials provided with the distribution.
* Neither the name of the author nor the names of contributors may be used to
endorse or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</blockquote>
<h3>
<a href="https://eslint.org">eslint</a>
</h3>
<blockquote>
Copyright JS Foundation and other contributors, https:&#x2F;&#x2F;js.foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://eslint.vuejs.org">eslint-plugin-vue</a>
</h3>
<blockquote>
MIT License
Copyright (c) 2017 Toru Nagashima
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://highlightjs.org/">highlight.js</a>
</h3>
<blockquote>
BSD 3-Clause License
Copyright (c) 2006, Ivan Sagalaev.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and&#x2F;or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</blockquote>
<h3>
<a href="https://lodash.com/">lodash.throttle</a>
</h3>
<blockquote>
Copyright jQuery Foundation and other contributors &lt;https:&#x2F;&#x2F;jquery.org&#x2F;&gt;
Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters &amp; Editors &lt;http:&#x2F;&#x2F;underscorejs.org&#x2F;&gt;
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https:&#x2F;&#x2F;github.com&#x2F;lodash&#x2F;lodash
The following license applies to all parts of this software except as
documented below:
&#x3D;&#x3D;&#x3D;&#x3D;
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
&#x3D;&#x3D;&#x3D;&#x3D;
Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.
CC0: http:&#x2F;&#x2F;creativecommons.org&#x2F;publicdomain&#x2F;zero&#x2F;1.0&#x2F;
&#x3D;&#x3D;&#x3D;&#x3D;
Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.
</blockquote>
<h3>
<a href="https://marked.js.org">marked</a>
</h3>
<blockquote>
# License information
## Contribution License Agreement
If you contribute code to this project, you are implicitly allowing your code
to be distributed under the MIT license. You are also implicitly verifying that
all code is your original work. &#x60;&lt;&#x2F;legalese&gt;&#x60;
## Marked
Copyright (c) 2011-2018, Christopher Jeffrey (https:&#x2F;&#x2F;github.com&#x2F;chjj&#x2F;)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
## Markdown
Copyright © 2004, John Gruber
http:&#x2F;&#x2F;daringfireball.net&#x2F;
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and&#x2F;or other materials provided with the distribution.
* Neither the name “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
This software is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
</blockquote>
<h3>
<a href="https://github.com/sass/node-sass">node-sass</a>
</h3>
<blockquote>
Copyright (c) 2013-2016 Andrew Nesbitt
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/sass/node-sass">node-sass</a>
</h3>
<blockquote>
Copyright (C) 2012 by Hampton Catlin
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the &quot;Software&quot;), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
The following files in the spec were taken from the original Ruby Sass project which
is copyright Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein and under
the same license.
</blockquote>
<h3>
<a href="https://github.com/sass/node-sass">node-sass</a>
</h3>
<blockquote>
Copyright (C) 2012-2016 by the Sass Open Source Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the &quot;Software&quot;), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
The following files in the spec were taken from the original Ruby Sass project which
is copyright Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein and under
the same license.
</blockquote>
<h3>
<a href="https://github.com/rstacruz/nprogress">nprogress</a>
</h3>
<blockquote>
Copyright (c) 2013-2014 Rico Sta. Cruz
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/webpack-contrib/sass-loader">sass-loader</a>
</h3>
<blockquote>
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
&#39;Software&#39;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &#39;AS IS&#39;, 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.
</blockquote>
<h3>
<a href="https://github.com/Automattic/socket.io-client#readme">socket.io-client</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2014 Guillermo Rauch
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue#readme">vue</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2013-present, Yuxi (Evan) You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/imcvampire/vue-axios#readme">vue-axios</a>
</h3>
<blockquote>
MIT License
Copyright (c) 2016 Nguyen Quoc Anh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue-router#readme">vue-router</a>
</h3>
<blockquote>
MIT License
Copyright (c) 2013-2016 Evan You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#readme">vue-template-compiler</a>
</h3>
<blockquote>
MIT License Copyright (c) &lt;year&gt; &lt;copyright holders&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 (including the next
paragraph) shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vuex#readme">vuex</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2015-2016 Evan You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
</div>
<style>
.licenses blockquote {
white-space: pre-wrap;
background-color: whitesmoke;
padding-left: 1rem;
padding-right: 1rem;
display: inline-block;
width: 50%;
}
@media only screen and (max-width: 768px) {
.licenses blockquote {
width: 100%;
margin: 0px;
}
}
@media only screen and (min-width: 768px) {
body {
margin-left: 10vw;
}
}
.licenses h3,
#package-name {
font-family: sans-serif;
}
</style>
</body>

View File

@ -0,0 +1,67 @@
{
"name": "frontend",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"@babel/preset-typescript": "^7.10.4",
"@coreui/coreui": "^3.2.2",
"@fortawesome/fontawesome-svg-core": "^1.2.28",
"@fortawesome/free-regular-svg-icons": "^5.13.0",
"@fortawesome/free-solid-svg-icons": "^5.13.0",
"@fortawesome/vue-fontawesome": "^0.1.9",
"@vuejs-community/vue-filter-date-format": "^1.6.1",
"axios": "^0.19.0",
"babel": "^6.23.0",
"babel-polyfill": "^6.26.0",
"buefy": "^0.8.20",
"child_process": "^1.0.2",
"core-js": "^3.6.4",
"d3": "^4.9.1",
"fs": "0.0.1-security",
"highlight.js": "^9.10.0",
"lodash.throttle": "^4.1.1",
"marked": "^0.8.2",
"node-sass": "^4.13.1",
"nprogress": "^0.2.0",
"sass-loader": "^8.0.2",
"socket.io-client": "^2.1.1",
"vue": "^2.6.11",
"vue-analytics": "^5.22.1",
"vue-axios": "^2.0.2",
"vue-router": "^2.7.0",
"vuex": "^2.1.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.5.2",
"@vue/cli-plugin-eslint": "~4.3.0",
"@vue/cli-service": "~4.3.0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"vue-template-compiler": "^2.6.11"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}

View File

@ -30,6 +30,7 @@ mini-br {
<button
slot='footer'
class='button button--modal'
style='z-index: 100' width='25rem'
@click='showAjaxErrorsModal = false'
ref='ajaxErrorsModalButton'
>
@ -43,12 +44,12 @@ mini-br {
:hide-footer='true'
>
<tab-view
:tabs='["Sign up", "Login"]'
:tabs='["Register", "Login"]'
v-model="showAccountTab"
padding='true'
slot='main'
>
<template slot='Sign up'>
<template slot='Register'>
<p style='margin-top: 0;' v-if='$store.state.token'>
<strong>Providing the state token is still valid, this will create an admin account</strong>
</p>
@ -98,16 +99,27 @@ mini-br {
width='100%'
>
</fancy-input>
By pressing the "Register" button, you agree to the Kaverti <router-link to="/legal/tos" v-on:click.native="closeAccountModal">Terms of Service</router-link>, and have read the <router-link to="/legal/privacy" v-on:click.native="closeAccountModal">Privacy Policy</router-link>.
<div style='margin-top: 0.5rem;'>
<b-button
class='is-info'
style="width: 55%"
:loading='signup.loading'
@click='createAccount'
v-if='!$store.state.meta.RegistrationsDisabled'
>
Sign up
Register
</b-button>
<b-button
class='is-info disabled'
disabled="disabled"
style="width: 55%"
:loading='signup.loading'
@click='closeAccountModal'
v-if='$store.state.meta.RegistrationsDisabled'
>
Disabled
</b-button>
&nbsp;
<b-button style="float: right" class="is-danger-passive" @click='closeAccountModal'>
Cancel
@ -136,97 +148,109 @@ mini-br {
>
</fancy-input>
<div style='margin-top: 0.5rem;'>
<b-button
class='button button--green button--margin'
:loading='login.loading'
@click='doLogin'
>
Log in
</b-button>
<div class='button button--borderless' @click='closeAccountModal'>
Cancel
</div>
<div style='margin-top: 0.5rem;'>
<b-button
class='is-info'
style="width: 55%"
:loading='login.loading'
@click='doLogin'
>
Login
</b-button>
&nbsp;
<b-button style="float: right" class="is-danger-passive" @click='closeAccountModal'>
Cancel
</b-button>
</div>
</form>
</template>
</tab-view>
</modal-window>
<header class='header'>
<div class='header__group is-info'>
<trpl-title><router-link class='logo' to='/'>{{name}}</router-link></trpl-title>
<b-navbar-item><trpl-para><router-link
to='/forums'
>
Forum
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/users'
>
Users
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/marketplace'
>
Marketplace
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/games'
>
Games
</router-link></trpl-para></b-navbar-item>
<div class="navbar-item has-dropdown is-hoverable is-info">
<a class="navbar-link">
<trpl-para>More</trpl-para>
</a>
<div class="navbar-dropdown is-boxed">
<router-link class="navbar-item" to='/blog'>Blog</router-link>
<a class="navbar-item" href="https://twitter.com/Kaverti">
Twitter
<template>
<b-navbar v-bind:fixed-top="true">
<template slot="brand">
<b-navbar-item tag="router-link" :to="{ path: '/' }">
<trpl-title>{{name}}</trpl-title>
</b-navbar-item>
</template>
<template slot="start">
<b-navbar-item><trpl-para><router-link
to='/forums'
>
Forum
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/users'
>
Users
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/marketplace'
>
Marketplace
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/games'
>
Games
</router-link></trpl-para></b-navbar-item>
<div class="navbar-item has-dropdown is-hoverable is-info">
<a class="navbar-link">
<trpl-para>More</trpl-para>
</a>
<a class="navbar-item" href="https://discord.gg/undefined">
Discord
</a>
<router-link class="navbar-item" to='/developers'>Developers</router-link>
<router-link class="navbar-item is-active" to='/premium'>Upgrade</router-link>
</div>
</div>
</div>
<div class='header__group' :class='{ "header__group--show": showMenu }'>
<template v-if='$store.state.username'>
<div class='header__group' :class='{ "header__group--show": showMenu }'>
<NotificationButton></NotificationButton>
<div class="navbar-item has-dropdown is-hoverable is-info">
<a class="navbar-link">
<trpl-para>{{this.$store.state.username}}</trpl-para>
<div class="navbar-dropdown is-boxed">
<router-link class="navbar-item" to='/blog'>Blog</router-link>
<a class="navbar-item" href="https://twitter.com/Kaverti">
Twitter
</a>
<div class="navbar-dropdown is-boxed">
<router-link class="navbar-item" :to='"/user/" + this.$store.state.username'>My Profile</router-link>
<router-link class="navbar-item" to='/settings'>Settings</router-link>
<router-link to='/admin' class="navbar-item" v-if='$store.state.admin'>Admin Panel</router-link>
<router-link class="navbar-item is-active" to='/premium'>Upgrade</router-link>
<a class="navbar-item" @click='logout'>
Log out
</a>
</div>
<a class="navbar-item" href="https://discord.gg/undefined">
Discord
</a>
<router-link class="navbar-item" to='/developers'>Developers</router-link>
<router-link class="navbar-item is-active" to='/premium'>Upgrade</router-link>
</div>
</div>
</template>
<template v-else>
<b-button class="is-info" @click='showAccountModalTab(0)'>
Sign up
</b-button>
<b-button @click='showAccountModalTab(1)'>
Login
</b-button>
<template slot="end" v-if='$store.state.username'>
<b-navbar-item tag="div">
<b-navbar-item>
<NotificationButton></NotificationButton>
</b-navbar-item>
<div>
<div class="navbar-item has-dropdown is-hoverable is-info">
<a class="navbar-link">
<trpl-para>{{this.$store.state.username}}</trpl-para>
</a>
<div class="navbar-dropdown is-boxed">
<router-link class="navbar-item" :to='"/user/" + this.$store.state.username'>My Profile</router-link>
<router-link class="navbar-item" to='/settings'>Settings</router-link>
<router-link to='/admin' class="navbar-item" v-if='$store.state.admin'>Admin Panel</router-link>
<router-link class="navbar-item is-active" to='/premium'>Upgrade</router-link>
<a class="navbar-item" @click='logout'>
Log out
</a>
</div>
</div>
</div>
</b-navbar-item>
<b-navbar-item class="search_bar">
<search-box header-bar='true'></search-box>
</b-navbar-item>
</template>
<search-box header-bar='true'></search-box>
</div>
<div class='header__overlay' :class='{ "header__overlay--show": showMenu }' @click='toggleMenu'></div>
<span class='header__menu_button' @click='toggleMenu'>
<font-awesome-icon :icon='["fa", "bars"]' />
</span>
</header>
<template slot="end" v-else>
<b-navbar-item tag="div">
<div class="buttons">
<a class="button is-info" @click="showAccountModalTab(0)">
<strong>Sign up</strong>
</a>
<a class="button is-light" @click="showAccountModalTab(1)">
Log in
</a>
</div>
</b-navbar-item>
</template>
</b-navbar>
</template>
<div class="container">
<b-message
type="is-info"
@ -280,6 +304,7 @@ mini-br {
password: '',
email: '',
confirmPassword: '',
passkey: '',
loading: false,
@ -376,6 +401,7 @@ mini-br {
this.signup.password = ''
this.signup.confirmPassword = ''
this.signup.email = ''
this.signup.passkey = ''
this.$store.commit('setToken', null)
this.$store.commit('setPassKey', null)
@ -385,6 +411,7 @@ mini-br {
this.signup.errors.hash = ''
this.signup.errors.confirmPassword = ''
this.signup.errors.email = ''
this.signup.errors.passkey = ''
},
clearLogin () {
this.login.username = ''
@ -407,15 +434,13 @@ mini-br {
let postParams = {
username: this.signup.username,
password: this.signup.password,
email: this.signup.email
email: this.signup.email,
passkey: this.signup.passkey
}
if(this.$store.state.token) {
postParams.admin = true
postParams.token = this.$store.state.token
}
if(this.$store.state.passkey) {
postParams.passkey = this.$store.state.passkey
}
if(this.signup.password !== this.signup.confirmPassword) {
this.signup.errors.confirmPassword = 'Passwords must match'

View File

@ -0,0 +1,744 @@
<template>
<main>
<h1 id="package-name">frontend</h1>
<div class="licenses">
<h3>
<a href="https://fontawesome.com">@fortawesome&#x2F;fontawesome-svg-core</a>,
<a href="https://fontawesome.com">@fortawesome&#x2F;free-regular-svg-icons</a>,
<a href="https://fontawesome.com">@fortawesome&#x2F;free-solid-svg-icons</a>
</h3>
<blockquote>
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https:&#x2F;&#x2F;fontawesome.com&#x2F;license&#x2F;free.
# Icons: CC BY 4.0 License (https:&#x2F;&#x2F;creativecommons.org&#x2F;licenses&#x2F;by&#x2F;4.0&#x2F;)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https:&#x2F;&#x2F;scripts.sil.org&#x2F;OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https:&#x2F;&#x2F;opensource.org&#x2F;licenses&#x2F;MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn&#39;t need to do anything additional when using these
files normally.
We&#39;ve kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They&#39;re a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**
</blockquote>
<h3>
<a href="https://fontawesome.com">@fortawesome&#x2F;free-regular-svg-icons</a>,
<a href="https://fontawesome.com">@fortawesome&#x2F;free-solid-svg-icons</a>
</h3>
<blockquote>
import { IconDefinition, IconPrefix, IconName } from &quot;@fortawesome&#x2F;fontawesome-common-types&quot;;
export const definition: IconDefinition;
export const faCopyright: IconDefinition;
export const prefix: IconPrefix;
export const iconName: IconName;
export const width: number;
export const height: number;
export const ligatures: string[];
export const unicode: string;
export const svgPathData: string;
</blockquote>
<h3>
<a href="https://github.com/FortAwesome/vue-fontawesome">@fortawesome&#x2F;vue-fontawesome</a>
</h3>
<blockquote>
Copyright 2018 Fonticons, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the &quot;Software&quot;), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue-cli/tree/dev/packages/@vue/cli-plugin-babel#readme">@vue&#x2F;cli-plugin-babel</a>,
<a href="https://github.com/vuejs/vue-cli/tree/dev/packages/@vue/cli-plugin-eslint#readme">@vue&#x2F;cli-plugin-eslint</a>,
<a href="https://cli.vuejs.org/">@vue&#x2F;cli-service</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2017-present, Yuxi (Evan) You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/axios/axios">axios</a>
</h3>
<blockquote>
Copyright (c) 2014-present Matt Zabriskie
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/babel/babel-eslint">babel-eslint</a>
</h3>
<blockquote>
Copyright (c) 2014-2016 Sebastian McKenzie &lt;sebmck@gmail.com&gt;
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/npm/security-holder#readme">child_process</a>,
<a href="https://github.com/npm/security-holder#readme">fs</a>
</h3>
<blockquote>
ISC License Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. (&quot;ISC&quot;)
Copyright (c) 1995-2003 by Internet Software Consortium
Permission to use, copy, modify, and &#x2F;or distribute this software for any
purpose with or without fee is hereby granted, provided that the above copyright
notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD
TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</blockquote>
<h3>
<a href="https://github.com/zloirock/core-js#readme">core-js</a>
</h3>
<blockquote>
Copyright (c) 2014-2020 Denis Pushkarev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://d3js.org">d3</a>
</h3>
<blockquote>
Copyright 2010-2017 Mike Bostock
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and&#x2F;or other materials provided with the distribution.
* Neither the name of the author nor the names of contributors may be used to
endorse or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</blockquote>
<h3>
<a href="https://eslint.org">eslint</a>
</h3>
<blockquote>
Copyright JS Foundation and other contributors, https:&#x2F;&#x2F;js.foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://eslint.vuejs.org">eslint-plugin-vue</a>
</h3>
<blockquote>
MIT License
Copyright (c) 2017 Toru Nagashima
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://highlightjs.org/">highlight.js</a>
</h3>
<blockquote>
BSD 3-Clause License
Copyright (c) 2006, Ivan Sagalaev.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and&#x2F;or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</blockquote>
<h3>
<a href="https://lodash.com/">lodash.throttle</a>
</h3>
<blockquote>
Copyright jQuery Foundation and other contributors &lt;https:&#x2F;&#x2F;jquery.org&#x2F;&gt;
Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters &amp; Editors &lt;http:&#x2F;&#x2F;underscorejs.org&#x2F;&gt;
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https:&#x2F;&#x2F;github.com&#x2F;lodash&#x2F;lodash
The following license applies to all parts of this software except as
documented below:
&#x3D;&#x3D;&#x3D;&#x3D;
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
&#x3D;&#x3D;&#x3D;&#x3D;
Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.
CC0: http:&#x2F;&#x2F;creativecommons.org&#x2F;publicdomain&#x2F;zero&#x2F;1.0&#x2F;
&#x3D;&#x3D;&#x3D;&#x3D;
Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.
</blockquote>
<h3>
<a href="https://marked.js.org">marked</a>
</h3>
<blockquote>
# License information
## Contribution License Agreement
If you contribute code to this project, you are implicitly allowing your code
to be distributed under the MIT license. You are also implicitly verifying that
all code is your original work. &#x60;&lt;&#x2F;legalese&gt;&#x60;
## Marked
Copyright (c) 2011-2018, Christopher Jeffrey (https:&#x2F;&#x2F;github.com&#x2F;chjj&#x2F;)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
## Markdown
Copyright © 2004, John Gruber
http:&#x2F;&#x2F;daringfireball.net&#x2F;
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and&#x2F;or other materials provided with the distribution.
* Neither the name Markdown nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
This software is provided by the copyright holders and contributors as is and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
</blockquote>
<h3>
<a href="https://github.com/sass/node-sass">node-sass</a>
</h3>
<blockquote>
Copyright (c) 2013-2016 Andrew Nesbitt
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/sass/node-sass">node-sass</a>
</h3>
<blockquote>
Copyright (C) 2012 by Hampton Catlin
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the &quot;Software&quot;), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
The following files in the spec were taken from the original Ruby Sass project which
is copyright Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein and under
the same license.
</blockquote>
<h3>
<a href="https://github.com/sass/node-sass">node-sass</a>
</h3>
<blockquote>
Copyright (C) 2012-2016 by the Sass Open Source Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the &quot;Software&quot;), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
The following files in the spec were taken from the original Ruby Sass project which
is copyright Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein and under
the same license.
</blockquote>
<h3>
<a href="https://github.com/rstacruz/nprogress">nprogress</a>
</h3>
<blockquote>
Copyright (c) 2013-2014 Rico Sta. Cruz
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/webpack-contrib/sass-loader">sass-loader</a>
</h3>
<blockquote>
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
&#39;Software&#39;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and&#x2F;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 &#39;AS IS&#39;, 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.
</blockquote>
<h3>
<a href="https://github.com/Automattic/socket.io-client#readme">socket.io-client</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2014 Guillermo Rauch
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue#readme">vue</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2013-present, Yuxi (Evan) You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/imcvampire/vue-axios#readme">vue-axios</a>
</h3>
<blockquote>
MIT License
Copyright (c) 2016 Nguyen Quoc Anh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue-router#readme">vue-router</a>
</h3>
<blockquote>
MIT License
Copyright (c) 2013-2016 Evan You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#readme">vue-template-compiler</a>
</h3>
<blockquote>
MIT License Copyright (c) &lt;year&gt; &lt;copyright holders&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 (including the next
paragraph) shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, 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.
</blockquote>
<h3>
<a href="https://github.com/vuejs/vuex#readme">vuex</a>
</h3>
<blockquote>
The MIT License (MIT)
Copyright (c) 2015-2016 Evan You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;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 &quot;AS IS&quot;, 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.
</blockquote>
</div>
</main>
</template>
<style>
.licenses blockquote {
white-space: pre-wrap;
background-color: whitesmoke;
padding-left: 1rem;
padding-right: 1rem;
display: inline-block;
width: 50%;
}
@media only screen and (max-width: 768px) {
.licenses blockquote {
width: 100%;
margin: 0px;
}
}
@media only screen and (min-width: 768px) {
body {
margin-left: 10vw;
}
}
.licenses h3,
#package-name {
font-family: sans-serif;
}
</style>

View File

@ -0,0 +1,41 @@
<template>
<center>
<div class="column is-9">
<h1>Privacy Policy</h1>
<h2>Last updated on the 16th of August 2020</h2>
<p>Welcome to Kaverti, Kaverti is a platform that allows users to socialize and customize their avatars.</p>
<h2>Stored user information:</h2>
<p>Kaverti needs to store some user information for our platform to work, and for the best experience imaginable. So what does it store?</p>
<table>
<ol>
<b>
<li><b>Your entered email</b> - Kaverti needs your email to verify that your account is created by a human, and not a bot, and to send out occasional warnings or event notifications.</li>
<li><b>Your IP address</b> - Kaverti stores your IP addresses for moderation purposes, and to verify that its actually you accessing the account, some moderation purposes can include IP bans in case you break the <router-link to="/legal/tos">Terms of Service</router-link></li>
<li><b>Your username</b> - Now this is an obvious one, when you register, you need to choose a unique username, we never suggest entering your real name as your username, but this is to identify who you are on this platform.</li>
<li><b>Your password</b> - Kaverti stores your password for secure authentication, to make sure its really you accessing the account, the password is hashed, and not even we can see it.</li>
</b>
</ol>
</table>
<h2>Stats, virtual currency and subscriptions:</h2>
<b>
<table>
<ol>
<li><b>Koins</b> - Koins are our virtual currency, this allows users to purchase items from the marketplace, Koins can be purchased individually as one time purchases, or obtained daily, your daily Koins will increase if you buy the Premium monthly subscription which can be cancelled at any time. Your Koin count is available for everyone to see on your profile, this may be removed in the future.</li>
<li><b>Post and thread count</b> - Kaverti keeps track of how many posts and threads you've made, and can be publicly viewable.</li>
<li><b>Join date</b> - Kaverti keeps a record on when you've created your account, and can be viewed on your profile or user list.</li>
<li><b>Updated date</b> - Kaverti keeps a record on when you've updated your post, account or Marketplace item.</li>
</ol>
</table>
</b>
<h2>Well that's fine, but wait, do you sell any of this to anyone?</h2>
<b>Short answer: No, we do not</b>
<b>
<table>
<ol>
<li>However, we do use the Google Analytics service for keeping track on visit and website analytics, to see if we're growing or not, if you have an AdBlocker on your router, or browser, usually it blocks Google Analytics, which is perfectly fine, we do not force anyone to disable such programs to get the same experience as other people without an ad blocking program.</li>
</ol>
</table>
</b>
</div>
</center>
</template>

View File

@ -0,0 +1,43 @@
<template>
<center>
<div class="column is-9">
<h1>Terms of Service</h1>
<h2>Last updated on the 16th of August 2020</h2>
<p>Welcome to Kaverti, Kaverti is a platform that allows users to socialize and customize their avatars, while this platform isn't nearly as finished as some others, you still need to abide by the Terms of Service</p>
<h2>Code of Conduct:</h2>
<p><b>All content posted by users are their responsibility</b>, Because of this, we need to maintain a clean environment so everyone can enjoy their time using this platform, The following rules that you need to agree to are:</p>
<table>
<ol>
<b>
<li>Insult, stalk, harass users, no matter the situation is not allowed!</li>
<li>Publishing private user information of another user or you, is not allowed!</li>
<li>Impersonating other members, whether it be an admin, or a user is not allowed!</li>
<li>Uploading copyrighted content to the Marketplace or another part of the platform is not allowed!</li>
<li>Making false and/or invalid reports against posts, or users is not allowed!</li>
<li>Spamming the forums, making a ridiculous amount of API requests, or just generally disrupt the Kaverti service is not allowed!, If you have discovered a vulnerability please report it directly, and not in a public place such as the Forums</li>
<li>There are restrictions against automated actions and webapp client modifications, You may modify your client as long as it doesn't have an unfair advantage to other users, for example, theming your own client is allowed, we do not provide any support for third party client modifications, also we do not allow automated API requests through standard user accounts, Bot accounts exist for a reason.</li>
<li>Uploading inappropriate 18+ content on Kaverti is not allowed!</li>
</b>
</ol>
</table>
<h2>Your account:</h2>
<b>
<table>
<ol>
<li>When registering for the Kaverti service, you are responsible for the security of your account, Make sure you use a very strong password, and enable 2FA when it becomes available. If you feel like your account is being used by someone else, please contact <a href="mailto:troplo@flowinity.com">troplo@flowinity.com</a></li>
<li>In addition to the above, you may not share your account to anyone except your parents/guardians, whether this be an 'account giveaway' or lending your account to a friend</li>
<li>You must be 13+ to register on Kaverti</li>
</ol>
</table>
</b>
<h2>Banning of Accounts:</h2>
<b>
<table>
<ol>
<li>Kaverti administrators can ban your Kaverti account or restrict access to certain parts of your website without any prior notice or reason. If you feel like your ban was unfair, do not worry, you can go <router-link to="/banned">here</router-link>, it allows you to submit an application on why you should be unbanned.</li>
</ol>
</table>
</b>
</div>
</center>
</template>

View File

@ -2,19 +2,13 @@
<div class='admin_users' ref='scrollElement'>
<h1 class='admin_users__header'>Users</h1>
<div class='category_widget__box'>
<h2>Filter</h2>
<div class='admin_users__filters'>
<fancy-input
<b-input
:large='false'
v-model='search'
></fancy-input>
&nbsp;
<select-filter
name='Role'
:options='roleOptions'
v-model='roleSelected'
>
</select-filter>
placeholder="Search Kaverti users"
icon="search"
></b-input>
</div>
</div>
<scroll-load
@ -24,52 +18,40 @@
query-selector='.admin_users'
:padding-bottom='100'
>
<table>
<tr>
<th>
<sort-menu v-model='tableSort' column='username' display='Username'></sort-menu>
</th>
<th>
Badges
</th>
<th>
<sort-menu v-model='tableSort' column='createdAt' display='Account created at'></sort-menu>
</th>
<th>
<sort-menu v-model='tableSort' column='postCount' display='Posts count'></sort-menu>
</th>
<th>
<sort-menu v-model='tableSort' column='threadCount' display='Threads count'></sort-menu>
</th>
</tr>
<tr v-for='user in users' :key='"user-row" + user.username' v-show="user && !user.hidden">
<td class='admin_users__user_column'>
<avatar-icon :user='user' size='small'></avatar-icon>
<router-link :to='"/user/" + user.username'>{{user.username}}</router-link>
</td>
<td>
<b-tooltip class="is-success" label="This user is a system user operated by administrators that mainly run API operations.">
<b-tag rounded class="is-success" v-if='user && user.system'>SYSTEM&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
&nbsp;
<b-tooltip class="is-info" label="This user is a bot account that can run automated API operations.">
<b-tag rounded class="is-info" v-if='user && user.bot'>BOT&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
&nbsp;
<b-tooltip class="is-info" label="User is an official Kaverti administrator.">
<b-tag rounded v-if='user && user.admin'>ADMIN&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
&nbsp;
<b-tooltip class="is-info" label="User is not discoverable in the user list.">
<b-tag rounded v-if='user && user.hidden'>HIDDEN&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
&nbsp;
</td>
<td>{{user.createdAt | formatDate}}</td>
<td>{{user.postCount}}</td>
<td>{{user.threadCount}}</td>
</tr>
</table>
<div class="card" v-for='user in users' :key='"user-row" + user.username' v-show="user && !user.hidden">
<div class="card-content">
<div class="media">
<div class="media-left">
<figure class="image is-48x48">
<avatar-icon :user="user"/>
</figure>
</div>
<div class="media-content">
<router-link :to='"/user/" + user.username'><p class="title is-4">{{user.username}}</p></router-link>
<b-tooltip class="is-success" label="This user is a system user operated by administrators that mainly run API operations.">
<b-tag rounded class="is-success" v-if='user && user.system'>SYSTEM&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
&nbsp;
<b-tooltip class="is-info" label="This user is a bot account that can run automated API operations.">
<b-tag rounded class="is-info" v-if='user && user.bot'>BOT&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
&nbsp;
<b-tooltip class="is-info" label="User is an official Kaverti administrator.">
<b-tag rounded v-if='user && user.admin'>ADMIN&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
&nbsp;
<b-tooltip class="is-info" label="User is not discoverable in the user list.">
<b-tag rounded v-if='user && user.hidden'>HIDDEN&nbsp;<i class="fas fa-info-circle"></i></b-tag>
</b-tooltip>
</div>
</div>
<div class="content">
{{user.description}} <br/>
{{user.createdAt | formatDate}}
</div>
</div>
</div>
<transition name='fade' mode='out-in'>
<loading-message key='loading' v-if='loading'></loading-message>
@ -82,9 +64,6 @@
</template>
<script>
import SelectFilter from '../SelectFilter.vue';
import SortMenu from '../SortMenu.vue';
import FancyInput from '../FancyInput.vue';
import LoadingMessage from '../LoadingMessage';
import ScrollLoad from '../ScrollLoad';
import AvatarIcon from '../AvatarIcon';
@ -95,9 +74,6 @@
export default {
name: 'UserList',
components: {
FancyInput,
SelectFilter,
SortMenu,
LoadingMessage,
ScrollLoad,
AvatarIcon

79
frontend/src/ignore.vue Normal file
View File

@ -0,0 +1,79 @@
<template>
<b-navbar>
<template slot="brand">
<b-navbar-item tag="router-link" :to="{ path: '/' }">
<trpl-title>{name}}</trpl-title>
</b-navbar-item>
</template>
<template slot="start">
<b-navbar-item><trpl-para><router-link
to='/forums'
>
Forum
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/users'
>
Users
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/marketplace'
>
Marketplace
</router-link></trpl-para></b-navbar-item>
<b-navbar-item><trpl-para><router-link
to='/games'
>
Games
</router-link></trpl-para></b-navbar-item>
<div class="navbar-item has-dropdown is-hoverable is-info">
<a class="navbar-link">
<trpl-para>More</trpl-para>
</a>
<div class="navbar-dropdown is-boxed">
<router-link class="navbar-item" to='/blog'>Blog</router-link>
<a class="navbar-item" href="https://twitter.com/Kaverti">
Twitter
</a>
<a class="navbar-item" href="https://discord.gg/undefined">
Discord
</a>
<router-link class="navbar-item" to='/developers'>Developers</router-link>
<router-link class="navbar-item is-active" to='/premium'>Upgrade</router-link>
</div>
</div>
</template>
<template slot="end">
<template v-if='$store.state.username'>
<div>
<NotificationButton></NotificationButton>
<div class="navbar-item has-dropdown is-hoverable is-info">
<a class="navbar-link">
<trpl-para>{{this.$store.state.username}}</trpl-para>
</a>
<div class="navbar-dropdown is-boxed">
<router-link class="navbar-item" :to='"/user/" + this.$store.state.username'>My Profile</router-link>
<router-link class="navbar-item" to='/settings'>Settings</router-link>
<router-link to='/admin' class="navbar-item" v-if='$store.state.admin'>Admin Panel</router-link>
<router-link class="navbar-item is-active" to='/premium'>Upgrade</router-link>
<a class="navbar-item" @click='logout'>
Log out
</a>
</div>
</div>
</div>
</template>
<template v-else>
<b-button class="is-info" @click='showAccountModalTab(0)' v-if='!$store.state.meta.RegistrationsDisabled'>
Register
</b-button>
<b-button @click='showAccountModalTab(1)'>
Login
</b-button>
</template>
<span class='header__menu_button' @click='toggleMenu'>
<font-awesome-icon :icon='["fa", "bars"]' />
</span>
</template>
</b-navbar>
</template>

View File

@ -68,6 +68,8 @@ const UserThreads = () => import('./components/routes/UserThreads')
const UserMarketplace = () => import('./components/routes/UserMarketplace')
const UsersList = () => import('./components/routes/UsersList')
const Banned = () => import('./components/routes/Banned')
const ToS = () => import('./components/routes/LegalToS')
const Privacy = () => import('./components/routes/LegalPrivacyPolicy')
const DeveloperPortal = () => import('./components/routes/DeveloperPortal')
const DeveloperDocs = () => import('./components/routes/DeveloperDocs')
@ -84,6 +86,8 @@ const AdminGeneral = () => import('./components/routes/AdminGeneral')
const AdminUsers = () => import('./components/routes/AdminUsers')
const AdminOther = () => import('./components/routes/AdminOther')
const Licenses = () => import('./components/routes/LICENSES')
import NotFound from './components/routes/NotFound'
import Reserved from './components/routes/Reserved'
@ -138,9 +142,13 @@ const router = new VueRouter({
{ path: '/thread/:slug/:id/:post_number', name: 'thread-post', component: Thread },
{ path: '/thread/new', component: ThreadNew },
{ path: '/marketplace', component: Reserved },
{ path: '/licenses', component: Licenses },
{ path: '/games', component: Games },
{ path: '/game', redirect: '/games', component: Index },
{ path: '/gaming', redirect: '/games', component: Index },
{ path: '/legal/privacy', component: Privacy },
{ path: '/legal/guidelines', redirect: '/legal/tos', component: ToS },
{ path: '/legal/tos', component: ToS },
{ path: '/g', redirect: '/games', component: Index },
{ path: '/out', redirect: '/', component: OutLink, children: [
{ path: '/out/https://*', redirect: 'https%3A%2F%2F*', component: OutLink },

View File

@ -12,7 +12,8 @@ export default new Vuex.Store({
meta: {
name: '',
title: '',
categories: [
RegistrationsDisabled: '',
categories: [
{ name: 'All', value: 'ALL', color: '#1565C0' }
]
},
@ -109,6 +110,7 @@ export default new Vuex.Store({
state.meta.showDescription = value.showDescription
state.meta.bannerEnabled = value.bannerEnabled
state.meta.bannerText = value.bannerText
state.meta.RegistrationsDisabled = value.RegistrationsDisabled
},
addCategories (state, value) {
if(Array.isArray(value)) {

View File

@ -66,6 +66,10 @@ let Errors = {
'You haven\'t added any settings yet',
500
],
registrationsDisabled: [
'Registrations disabled, bro',
400
],
passwordSame: [
'What\'s the point of changing your password if you\'re going to change it to what it already is.',
400

View File

@ -1,23 +0,0 @@
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
/*
Add altering commands here.
Return a promise to correctly handle asynchronicity.
Example:
return queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
},
down: (queryInterface, Sequelize) => {
/*
Add reverting commands here.
Return a promise to correctly handle asynchronicity.
Example:
return queryInterface.dropTable('users');
*/
}
};

View File

@ -0,0 +1,14 @@
module.exports = {
up(queryInterface, Sequelize) {
return Promise.all([
queryInterface.addColumn(
'settings',
'RegistrationsDisabled',
{
type: Sequelize.BOOLEAN,
default: false
},
)
]);
},
};

View File

@ -0,0 +1,33 @@
module.exports = {
up(queryInterface, Sequelize) {
return Promise.all([
queryInterface.addColumn(
'users',
'booster',
{
type: Sequelize.BOOLEAN,
default: false,
required: true
},
),
queryInterface.addColumn(
'categories',
'BoosterOnly',
{
type: Sequelize.BOOLEAN,
default: false,
required: true
},
),
queryInterface.addColumn(
'categories',
'AdminOnly',
{
type: Sequelize.BOOLEAN,
default: false,
required: true
},
),
]);
},
};

33
models/PassKey.js Normal file
View File

@ -0,0 +1,33 @@
let crypto = require('crypto')
module.exports = (sequelize, DataTypes) => {
let PassKey = sequelize.define('PassKey', {
passkey: {
type: DataTypes.STRING,
required: true,
defaultValue () {
return crypto.randomBytes(64).toString('hex')
},
validate: {
isString (val) {
if(typeof val !== 'string') {
throw new sequelize.ValidationError('passkey must be a string')
}
}
}
}
}, {
instanceMethods: {
isValid () {
let ms = Date.now() - this.createdAt
let dayMs = 1000*60*60*24
//Has less than 1 day passed
//since generating token?
return ms / dayMs < 1
}
}
})
return PassKey
}

View File

@ -21,6 +21,20 @@ module.exports = (sequelize, DataTypes) => {
type: DataTypes.STRING(191),
unique: true
},
locked: {
type: DataTypes.BOOLEAN,
default: false
},
BoosterOnly: {
type: DataTypes.BOOLEAN,
default: false,
required: true
},
AdminOnly: {
type: DataTypes.BOOLEAN,
default: false,
required: true
},
color: {
type: DataTypes.STRING,
defaultValue () {
@ -48,9 +62,19 @@ module.exports = (sequelize, DataTypes) => {
classMethods: {
associate (models) {
Category.hasMany(models.Thread)
}
},
async AdminOnlyFunc() {
if(Category && Category.AdminOnly && !user.session.admin) {
throw Errors.sequelizeValidation(sequelize.Sequelize, {
error: 'Only admins can access this category'
})
} else {
return false
}
},
}
})
return Category
}
}

View File

@ -42,10 +42,10 @@ module.exports = (sequelize, DataTypes) => {
type: DataTypes.STRING,
defaultValue: "wss://gateway.kaverti.com"
},
showDescription: {
RegistrationsDisabled: {
type: DataTypes.BOOLEAN,
defaultValue: false
}
},
}, {
classMethods: {
set (values) {

View File

@ -12,6 +12,10 @@ module.exports = (sequelize, DataTypes) => {
fields: ['username']
},
validate: {
is: {
args: [/^[a-zA-Z0-9_]*$/],
msg: 'Username can only contain numbers and letters'
},
len: {
args: [4, 16],
msg: 'username must be between 4 and 16 characters'
@ -31,15 +35,18 @@ module.exports = (sequelize, DataTypes) => {
email: {
type: DataTypes.TEXT,
validate: {
isEmail: true,
isEmail: {
args: true,
msg: 'Email is not formatted correctly'
},
isString (val) {
if(typeof val !== 'string') {
throw new sequelize.ValidationError('email must be a string')
}
},
len: {
args: [5, 70],
msg: 'email must be between 5 and 70 characters'
args: [5, 100],
msg: 'email must be between 5 and 100 characters'
}
}
},
@ -193,28 +200,24 @@ module.exports = (sequelize, DataTypes) => {
order: [['id', 'ASC']]
}]
},
async canBeAdmin (token) {
let { User, AdminToken } = sequelize.models
async canBeUser (passkey) {
let { User, PassKey } = sequelize.models
let adminUser = await User.findOne({ where: {
admin: true
}})
if(User) {
if(PassKey) {
let passkey = await PassKey.findOne({ where: { passkey } })
if(adminUser) {
if(token) {
let adminToken = await AdminToken.findOne({ where: { token } })
if(adminToken && adminToken.isValid()) {
await adminToken.destroy()
if(passkey && PassKey.isValid()) {
await passkey.destroy()
return true
} else {
throw Errors.invalidToken
throw Errors.invalidPassKey
}
} else {
throw Errors.sequelizeValidation(sequelize, {
error: 'Hello future admin, please go to https://kaverti.com/admin/verifyadminfunc?token='+ random(17814309853945734453) +' to activate your account',
path: 'token'
error: 'Invalid PassKey',
path: 'passkey'
})
}

View File

@ -72,7 +72,6 @@ router.get('/:category', async (req, res, next) => {
}
if(!threads) throw Errors.invalidParameter('id', 'category does not exist')
if(Array.isArray(threads)) {
resThreads = {
name: 'All',

View File

@ -42,6 +42,7 @@ router.post('/', async (req, res, next) => {
value: req.body.category
}})
if(!category) throw Errors.invalidCategory
if(category.locked && !req.session.admin) throw Errors.threadLocked
let user = await User.findOne({ where: {
username: req.session.username

View File

@ -36,6 +36,7 @@ router.post('/', async (req, res, next) => {
username: req.body.username,
email: req.body.email,
hash: req.body.password,
passkey: req.body.passkey,
admin: false,
bodyColor: '#fffff',
headColor: '#fffff',
@ -47,11 +48,7 @@ router.post('/', async (req, res, next) => {
currency2: '0',
picture: 'default'
}
if(req.body.admin && await User.canBeAdmin(req.body.token)) {
userParams.admin = true
}
throw Errors.registrationsDisabled
let user = await User.create(userParams)
await Ip.createIfNotExists(req.ip, user)
@ -302,7 +299,8 @@ router.get('/', async function(req, res) {
createdAt: 'X.id',
username: 'X.username',
threadCount: 'threadCount',
postCount: 'postCount'
postCount: 'postCount',
description: 'description'
};
let offset = Number.isInteger(+req.query.offset) ? +req.query.offset : 0;
let havingClause = '';
@ -327,7 +325,7 @@ router.get('/', async function(req, res) {
}
let sql = `
SELECT X.username, X.admin, X.bot, X.bodyColor, X.headColor, X.leftLegColor, X.rightLegColor, X.leftArmColor, X.rightArmColor, X.hidden, X.system, X.createdAt, X.postCount, COUNT(Threads.id) as threadCount
SELECT X.username, X.admin, X.bot, X.description, X.bodyColor, X.headColor, X.leftLegColor, X.rightLegColor, X.leftArmColor, X.rightArmColor, X.hidden, X.system, X.createdAt, X.postCount, COUNT(Threads.id) as threadCount
FROM (
SELECT Users.*, COUNT(Posts.id) as postCount
FROM Users