Compare commits
3 Commits
020e5d3490
...
0022055898
Author | SHA1 | Date | |
---|---|---|---|
0022055898 | |||
d228a239cc | |||
2a4b6a0b65 |
@ -1 +0,0 @@
|
|||||||
last 2 year, firefox esr
|
|
@ -16,3 +16,6 @@ LICENSE
|
|||||||
README.md
|
README.md
|
||||||
README.old
|
README.old
|
||||||
SECURITY.md
|
SECURITY.md
|
||||||
|
docker-compose.yml
|
||||||
|
package-lock.json
|
||||||
|
yarn.lock
|
@ -1,3 +0,0 @@
|
|||||||
public/
|
|
||||||
coverage/
|
|
||||||
dist/
|
|
192
.eslintrc.cjs
192
.eslintrc.cjs
@ -1,192 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
const {defineConfig} = require("eslint-define-config");
|
|
||||||
|
|
||||||
const projects = defineConfig({
|
|
||||||
parserOptions: {
|
|
||||||
project: [
|
|
||||||
"./tsconfig.json",
|
|
||||||
"./client/tsconfig.json",
|
|
||||||
"./server/tsconfig.json",
|
|
||||||
"./shared/tsconfig.json",
|
|
||||||
"./test/tsconfig.json",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
}).parserOptions.project;
|
|
||||||
|
|
||||||
const baseRules = defineConfig({
|
|
||||||
rules: {
|
|
||||||
"block-scoped-var": "error",
|
|
||||||
curly: ["error", "all"],
|
|
||||||
"dot-notation": "error",
|
|
||||||
eqeqeq: "error",
|
|
||||||
"handle-callback-err": "error",
|
|
||||||
"no-alert": "error",
|
|
||||||
"no-catch-shadow": "error",
|
|
||||||
"no-control-regex": "off",
|
|
||||||
"no-console": "error",
|
|
||||||
"no-duplicate-imports": "error",
|
|
||||||
"no-else-return": "error",
|
|
||||||
"no-implicit-globals": "error",
|
|
||||||
"no-restricted-globals": ["error", "event", "fdescribe"],
|
|
||||||
"no-template-curly-in-string": "error",
|
|
||||||
"no-unsafe-negation": "error",
|
|
||||||
"no-useless-computed-key": "error",
|
|
||||||
"no-useless-constructor": "error",
|
|
||||||
"no-useless-return": "error",
|
|
||||||
"no-use-before-define": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
functions: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"no-var": "error",
|
|
||||||
"object-shorthand": [
|
|
||||||
"error",
|
|
||||||
"methods",
|
|
||||||
{
|
|
||||||
avoidExplicitReturnArrows: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"padding-line-between-statements": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
blankLine: "always",
|
|
||||||
prev: ["block", "block-like"],
|
|
||||||
next: "*",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
blankLine: "always",
|
|
||||||
prev: "*",
|
|
||||||
next: ["block", "block-like"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"prefer-const": "error",
|
|
||||||
"prefer-rest-params": "error",
|
|
||||||
"prefer-spread": "error",
|
|
||||||
"spaced-comment": ["error", "always"],
|
|
||||||
strict: "off",
|
|
||||||
yoda: "error",
|
|
||||||
},
|
|
||||||
}).rules;
|
|
||||||
|
|
||||||
const vueRules = defineConfig({
|
|
||||||
rules: {
|
|
||||||
"import/no-default-export": 0,
|
|
||||||
"import/unambiguous": 0, // vue SFC can miss script tags
|
|
||||||
"@typescript-eslint/prefer-readonly": 0, // can be used in template
|
|
||||||
"vue/component-tags-order": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
order: ["template", "style", "script"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"vue/multi-word-component-names": "off",
|
|
||||||
"vue/no-mutating-props": "off",
|
|
||||||
"vue/no-v-html": "off",
|
|
||||||
"vue/require-default-prop": "off",
|
|
||||||
"vue/v-slot-style": ["error", "longform"],
|
|
||||||
},
|
|
||||||
}).rules;
|
|
||||||
|
|
||||||
const tsRules = defineConfig({
|
|
||||||
rules: {
|
|
||||||
// note you must disable the base rule as it can report incorrect errors
|
|
||||||
"no-shadow": "off",
|
|
||||||
"@typescript-eslint/no-shadow": ["error"],
|
|
||||||
},
|
|
||||||
}).rules;
|
|
||||||
|
|
||||||
const tsRulesTemp = defineConfig({
|
|
||||||
rules: {
|
|
||||||
// TODO: eventually remove these
|
|
||||||
"@typescript-eslint/ban-ts-comment": "off",
|
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
|
||||||
"@typescript-eslint/no-non-null-assertion": "off",
|
|
||||||
"@typescript-eslint/no-this-alias": "off",
|
|
||||||
"@typescript-eslint/no-unnecessary-type-assertion": "off",
|
|
||||||
"@typescript-eslint/no-unsafe-argument": "off",
|
|
||||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
|
||||||
"@typescript-eslint/no-unsafe-call": "off",
|
|
||||||
"@typescript-eslint/no-unsafe-member-access": "off",
|
|
||||||
"@typescript-eslint/no-unused-vars": "off",
|
|
||||||
},
|
|
||||||
}).rules;
|
|
||||||
|
|
||||||
const tsTestRulesTemp = defineConfig({
|
|
||||||
rules: {
|
|
||||||
// TODO: remove these
|
|
||||||
"@typescript-eslint/no-unsafe-return": "off",
|
|
||||||
"@typescript-eslint/no-empty-function": "off",
|
|
||||||
"@typescript-eslint/restrict-plus-operands": "off",
|
|
||||||
},
|
|
||||||
}).rules;
|
|
||||||
|
|
||||||
module.exports = defineConfig({
|
|
||||||
root: true,
|
|
||||||
parserOptions: {
|
|
||||||
ecmaVersion: 2022,
|
|
||||||
},
|
|
||||||
overrides: [
|
|
||||||
{
|
|
||||||
files: ["**/*.ts", "**/*.vue"],
|
|
||||||
parser: "@typescript-eslint/parser",
|
|
||||||
parserOptions: {
|
|
||||||
tsconfigRootDir: __dirname,
|
|
||||||
project: projects,
|
|
||||||
extraFileExtensions: [".vue"],
|
|
||||||
},
|
|
||||||
plugins: ["@typescript-eslint"],
|
|
||||||
extends: [
|
|
||||||
"eslint:recommended",
|
|
||||||
"plugin:@typescript-eslint/recommended",
|
|
||||||
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
|
||||||
"prettier",
|
|
||||||
],
|
|
||||||
rules: {
|
|
||||||
...baseRules,
|
|
||||||
...tsRules,
|
|
||||||
...tsRulesTemp,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ["**/*.vue"],
|
|
||||||
parser: "vue-eslint-parser",
|
|
||||||
parserOptions: {
|
|
||||||
ecmaVersion: 2022,
|
|
||||||
ecmaFeatures: {
|
|
||||||
jsx: true,
|
|
||||||
},
|
|
||||||
parser: "@typescript-eslint/parser",
|
|
||||||
tsconfigRootDir: __dirname,
|
|
||||||
project: projects,
|
|
||||||
},
|
|
||||||
plugins: ["vue"],
|
|
||||||
extends: [
|
|
||||||
"eslint:recommended",
|
|
||||||
"plugin:vue/vue3-recommended",
|
|
||||||
"plugin:@typescript-eslint/recommended",
|
|
||||||
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
|
||||||
"prettier",
|
|
||||||
],
|
|
||||||
rules: {...baseRules, ...tsRules, ...tsRulesTemp, ...vueRules},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ["./tests/**/*.ts"],
|
|
||||||
parser: "@typescript-eslint/parser",
|
|
||||||
rules: {
|
|
||||||
...baseRules,
|
|
||||||
...tsRules,
|
|
||||||
...tsRulesTemp,
|
|
||||||
...tsTestRulesTemp,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
env: {
|
|
||||||
es6: true,
|
|
||||||
browser: true,
|
|
||||||
mocha: true,
|
|
||||||
node: true,
|
|
||||||
},
|
|
||||||
extends: ["eslint:recommended", "prettier"],
|
|
||||||
rules: baseRules,
|
|
||||||
});
|
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -3,8 +3,10 @@ npm-debug.log*
|
|||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
.npmrc
|
||||||
coverage/
|
coverage/
|
||||||
public/
|
public/
|
||||||
dist/
|
dist/
|
||||||
config/
|
config/
|
||||||
|
del/
|
||||||
|
old/
|
@ -1,28 +0,0 @@
|
|||||||
coverage/
|
|
||||||
public/
|
|
||||||
dist/
|
|
||||||
test/fixtures/.thelounge/logs/
|
|
||||||
test/fixtures/.thelounge/certificates/
|
|
||||||
test/fixtures/.thelounge/storage/
|
|
||||||
test/fixtures/.thelounge/sts-policies.json
|
|
||||||
*.log
|
|
||||||
*.png
|
|
||||||
*.svg
|
|
||||||
*.ico
|
|
||||||
*.wav
|
|
||||||
*.tpl
|
|
||||||
*.sh
|
|
||||||
*.opts
|
|
||||||
*.txt
|
|
||||||
yarn.lock
|
|
||||||
.gitignore
|
|
||||||
.npmrc
|
|
||||||
.npmignore
|
|
||||||
.prettierignore
|
|
||||||
.thelounge_home
|
|
||||||
.editorconfig
|
|
||||||
.eslintignore
|
|
||||||
.gitattributes
|
|
||||||
.browserslistrc
|
|
||||||
|
|
||||||
*.css
|
|
@ -1,4 +1,4 @@
|
|||||||
# The Lounge: Hard Chats Edition
|
# Hard Lounge
|
||||||
|
|
||||||
This is a fork of The Lounge intended to be used for the SuperNETs Webchat (located at https://webchat.supernets.org)
|
This is a fork of The Lounge intended to be used for the SuperNETs Webchat (located at https://webchat.supernets.org)
|
||||||
|
|
||||||
@ -16,4 +16,4 @@ If for some reason you decide to run our version of this container, we are more
|
|||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
|
|
||||||
- All developers & contributors of The Lounge - https://github.com/thelounge/thelounge
|
- Some of the developers & contributors of The Lounge, some of you however should never ever touch a code editor again. - https://github.com/thelounge/thelounge
|
||||||
|
92
README.old
92
README.old
@ -1,92 +0,0 @@
|
|||||||
<h1 align="center">
|
|
||||||
<img
|
|
||||||
width="300"
|
|
||||||
alt="The Lounge"
|
|
||||||
src="https://raw.githubusercontent.com/thelounge/thelounge/master/client/img/logo-vertical-transparent-bg.svg?sanitize=true">
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<h3 align="center">
|
|
||||||
Modern web IRC client designed for self-hosting
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<strong>
|
|
||||||
<a href="https://thelounge.chat/">Website</a>
|
|
||||||
•
|
|
||||||
<a href="https://thelounge.chat/docs">Docs</a>
|
|
||||||
•
|
|
||||||
<a href="https://demo.thelounge.chat/">Demo</a>
|
|
||||||
•
|
|
||||||
<a href="https://github.com/thelounge/thelounge-docker">Docker</a>
|
|
||||||
</strong>
|
|
||||||
</p>
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://demo.thelounge.chat/"><img
|
|
||||||
alt="#thelounge IRC channel on Libera.Chat"
|
|
||||||
src="https://img.shields.io/badge/Libera.Chat-%23thelounge-415364.svg?colorA=ff9e18"></a>
|
|
||||||
<a href="https://yarn.pm/thelounge"><img
|
|
||||||
alt="npm version"
|
|
||||||
src="https://img.shields.io/npm/v/thelounge.svg?colorA=333a41&maxAge=3600"></a>
|
|
||||||
<a href="https://github.com/thelounge/thelounge/actions"><img
|
|
||||||
alt="Build Status"
|
|
||||||
src="https://github.com/thelounge/thelounge/workflows/Build/badge.svg"></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img src="https://raw.githubusercontent.com/thelounge/thelounge.github.io/master/img/thelounge-screenshot.png" width="550">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
- **Modern features brought to IRC.** Push notifications, link previews, new message markers, and more bring IRC to the 21st century.
|
|
||||||
- **Always connected.** Remains connected to IRC servers while you are offline.
|
|
||||||
- **Cross platform.** It doesn't matter what OS you use, it just works wherever Node.js runs.
|
|
||||||
- **Responsive interface.** The client works smoothly on every desktop, smartphone and tablet.
|
|
||||||
- **Synchronized experience.** Always resume where you left off no matter what device.
|
|
||||||
|
|
||||||
To learn more about configuration, usage and features of The Lounge, take a look at [the website](https://thelounge.chat).
|
|
||||||
|
|
||||||
The Lounge is the official and community-managed fork of [Shout](https://github.com/erming/shout), by [Mattias Erming](https://github.com/erming).
|
|
||||||
|
|
||||||
## Installation and usage
|
|
||||||
|
|
||||||
The Lounge requires latest [Node.js](https://nodejs.org/) LTS version or more recent.
|
|
||||||
The [Yarn package manager](https://yarnpkg.com/) is also recommended.
|
|
||||||
If you want to install with npm, `--unsafe-perm` is required for a correct install.
|
|
||||||
|
|
||||||
### Running stable releases
|
|
||||||
|
|
||||||
Please refer to the [install and upgrade documentation on our website](https://thelounge.chat/docs/install-and-upgrade) for all available installation methods.
|
|
||||||
|
|
||||||
### Running from source
|
|
||||||
|
|
||||||
The following commands install and run the development version of The Lounge:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git clone https://github.com/thelounge/thelounge.git
|
|
||||||
cd thelounge
|
|
||||||
yarn install
|
|
||||||
NODE_ENV=production yarn build
|
|
||||||
yarn start
|
|
||||||
```
|
|
||||||
|
|
||||||
When installed like this, `thelounge` executable is not created. Use `node index <command>` to run commands.
|
|
||||||
|
|
||||||
⚠️ While it is the most recent codebase, this is not production-ready! Run at
|
|
||||||
your own risk. It is also not recommended to run this as root.
|
|
||||||
|
|
||||||
## Development setup
|
|
||||||
|
|
||||||
Simply follow the instructions to run The Lounge from source above, on your own
|
|
||||||
fork.
|
|
||||||
|
|
||||||
Before submitting any change, make sure to:
|
|
||||||
|
|
||||||
- Read the [Contributing instructions](https://github.com/thelounge/thelounge/blob/master/.github/CONTRIBUTING.md#contributing)
|
|
||||||
- Run `yarn test` to execute linters and the test suite
|
|
||||||
- Run `yarn format:prettier` if linting fails
|
|
||||||
- Run `yarn build:client` if you change or add anything in `client/js` or `client/components`
|
|
||||||
- The built files will be output to `public/` by webpack
|
|
||||||
- Run `yarn build:server` if you change anything in `server/`
|
|
||||||
- The built files will be output to `dist/` by tsc
|
|
||||||
- `yarn dev` can be used to start The Lounge with hot module reloading
|
|
@ -251,7 +251,7 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
class="input"
|
class="input"
|
||||||
name="leaveMessage"
|
name="leaveMessage"
|
||||||
placeholder="Hard Lounge - https://thelounge.chat"
|
placeholder="Hard Lounge - https://git.supernets.org/supernets/hardlounge"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="defaults.uuid && !store.state.serverConfiguration?.public">
|
<template v-if="defaults.uuid && !store.state.serverConfiguration?.public">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
hardlounge:
|
hardlounge:
|
||||||
image: git.supernets.org/supernets/hardlounge:latest
|
#image: git.supernets.org/supernets/hardlounge:latest
|
||||||
#build: .
|
build: .
|
||||||
ports:
|
ports:
|
||||||
- "9000:9000"
|
- "9000:9000"
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -130,7 +130,6 @@
|
|||||||
"emoji-regex": "10.2.1",
|
"emoji-regex": "10.2.1",
|
||||||
"eslint": "8.16.0",
|
"eslint": "8.16.0",
|
||||||
"eslint-config-prettier": "8.3.0",
|
"eslint-config-prettier": "8.3.0",
|
||||||
"eslint-define-config": "1.5.1",
|
|
||||||
"eslint-plugin-vue": "9.0.1",
|
"eslint-plugin-vue": "9.0.1",
|
||||||
"fork-ts-checker-webpack-plugin": "7.2.13",
|
"fork-ts-checker-webpack-plugin": "7.2.13",
|
||||||
"fuzzy": "0.1.3",
|
"fuzzy": "0.1.3",
|
||||||
@ -141,7 +140,7 @@
|
|||||||
"normalize.css": "8.0.1",
|
"normalize.css": "8.0.1",
|
||||||
"npm-run-all": "4.1.5",
|
"npm-run-all": "4.1.5",
|
||||||
"nyc": "15.1.0",
|
"nyc": "15.1.0",
|
||||||
"postcss": "8.4.26",
|
"postcss": "8.4.31",
|
||||||
"postcss-import": "14.0.2",
|
"postcss-import": "14.0.2",
|
||||||
"postcss-loader": "6.2.1",
|
"postcss-loader": "6.2.1",
|
||||||
"postcss-preset-env": "7.3.0",
|
"postcss-preset-env": "7.3.0",
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
plugins: [
|
|
||||||
require("postcss-import")(),
|
|
||||||
require("postcss-preset-env")(),
|
|
||||||
require("cssnano")({
|
|
||||||
preset: [
|
|
||||||
"default",
|
|
||||||
{
|
|
||||||
mergeRules: false,
|
|
||||||
discardComments: {
|
|
||||||
removeAll: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
};
|
|
@ -1,14 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
arrowParens: "always",
|
|
||||||
bracketSpacing: false,
|
|
||||||
printWidth: 100,
|
|
||||||
trailingComma: "es5",
|
|
||||||
overrides: [
|
|
||||||
{
|
|
||||||
files: "*.webmanifest",
|
|
||||||
options: {
|
|
||||||
parser: "json",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
@ -1,15 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
extends: "stylelint-config-standard",
|
|
||||||
rules: {
|
|
||||||
indentation: "tab",
|
|
||||||
"font-family-no-missing-generic-family-keyword": null,
|
|
||||||
"no-descending-specificity": null,
|
|
||||||
"at-rule-no-vendor-prefix": true,
|
|
||||||
"media-feature-name-no-vendor-prefix": true,
|
|
||||||
"property-no-vendor-prefix": true,
|
|
||||||
"selector-no-vendor-prefix": true,
|
|
||||||
"value-no-vendor-prefix": true,
|
|
||||||
"selector-class-pattern": null,
|
|
||||||
"selector-id-pattern": null,
|
|
||||||
},
|
|
||||||
};
|
|
@ -1,14 +0,0 @@
|
|||||||
/** @type {import('@volar-plugins/prettier')} */
|
|
||||||
const {volarPrettierPlugin} = require("@volar-plugins/prettier");
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
plugins: [
|
|
||||||
volarPrettierPlugin({
|
|
||||||
languages: ["html", "css", "scss", "typescript", "javascript"],
|
|
||||||
html: {
|
|
||||||
breakContentsFromTags: true,
|
|
||||||
},
|
|
||||||
useVscodeIndentation: true,
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
};
|
|
Loading…
Reference in New Issue
Block a user