Merge branch 'master' of github.com:Ocelot-Social-Community/Ocelot-Social into 6812-script-auto-backups-for-kubernetes-servers

# Conflicts:
#	neo4j/README.md
This commit is contained in:
Wolfgang Huß 2023-12-12 16:59:35 +01:00
commit c8abe9c51c
35 changed files with 20101 additions and 1291 deletions

View File

@ -28,12 +28,13 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Remove old documentation files
run: rm -rf ./deployment/src/old/ # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
- name: Check Markdown Links
uses: gaurav-nelson/github-action-markdown-link-check@master
with:
use-quiet-mode: 'yes'
use-verbose-mode: 'no'
# at any .md file change take the chance to check the links in all .md files
check-modified-files-only: 'no'
config-file: '.github/workflows/mlc_config.json'
base-branch: 'master'

View File

@ -3,7 +3,7 @@
"retryOn429": true,
"retryCount": 2,
"fallbackRetryDelay": "30s",
"aliveStatusCodes": [200, 206],
"aliveStatusCodes": [200, 206, 303, 403],
"ignorePatterns": [
{
"pattern": "^(https:\/\/github.com\/Ocelot-Social-Community\/Ocelot-Social\/pull\/|http:\/\/localhost)"

View File

@ -260,10 +260,38 @@ jobs:
version: ${{ env.BUILD_VERSION }}
git_commit_sha: ${{ github.sha }}
git_tag_prefix: "b"
- name: Generate changelog
run: |
yarn install
yarn auto-changelog --latest-version ${{ env.VERSION }} --unreleased-only
id: changelog
uses: mikepenz/release-changelog-builder-action@v4
with:
configurationJson: |
{
"pr_template": "- ##{{NUMBER}} #{{TITLE}} #{{ASSIGNEES}}",
"categories": [
{
"title": "### 🚀 Features",
"labels": ["feat"]
},
{
"title": "### 🐛 Fixes",
"labels": ["fix"]
},
{
"title": "### 💬 Refactoring, Documentation & Other",
"labels": ["chore","ci","docs","refactor"]
},
{
"title": "### 📦 Build & Dependencies",
"labels": ["build","bump"]
}
],
"max_pull_requests": 1000,
"max_back_track_time_days": 1000
}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: package-version-to-git-release
continue-on-error: true # Will fail if tag exists
id: create_release
@ -273,7 +301,7 @@ jobs:
with:
tag_name: ${{ env.VERSION }}
release_name: ${{ env.VERSION }}
body_path: ./CHANGELOG.md
body: ${{steps.changelog.outputs.changelog}}
draft: false
prerelease: false

11
.vuepress/config.js Normal file
View File

@ -0,0 +1,11 @@
import { defineUserConfig } from 'vuepress'
import meta from './config/meta'
import theme from './config/theme'
import plugins from './config/plugins'
export default defineUserConfig({
pagePatterns: ['**/*.md', '!.vuepress', '!node_modules', '!backend/node_modules', '!webapp/node_modules', '!deployment/src/old'],
...meta,
theme,
plugins,
})

8
.vuepress/config/meta.js Normal file
View File

@ -0,0 +1,8 @@
export default {
base: '/',
title: 'Ocelot.Social Documentation',
description: 'Ocelot.Social Documentation',
head: [
['meta', {name: 'viewport', content: 'width=device-width,initial-scale=1'}],
],
}

View File

@ -0,0 +1,18 @@
import { searchProPlugin } from 'vuepress-plugin-search-pro'
export default [
searchProPlugin({
indexContent: true,
autoSuggestions: true,
customFields: [
{
getter: (page) => page.frontmatter.category,
formatter: "Category: $content",
},
{
getter: (page) => page.frontmatter.tag,
formatter: "Tag: $content",
},
],
})
]

82
.vuepress/config/theme.js Normal file
View File

@ -0,0 +1,82 @@
import path from 'path'
import fs from 'fs'
import { hopeTheme } from 'vuepress-theme-hope'
export default hopeTheme({
favicon: 'favicon.ico',
logo: '/logo.svg',
docsRepo: 'https://github.com/Ocelot-Social-Community/Ocelot-Social',
docsBranch: 'master',
docsDir: '.',
editLink: true,
lastUpdated: false,
contributors: false,
print: false,
pure: true,
displayFooter: true,
footer: 'CC BY busFaktor() e.V. & Authors',
sidebar: generateSidebar('../../SUMMARY.md'),
navbar: [
{ text: 'Home', link: '/' },
{
text: 'Github',
link: 'https://github.com/Ocelot-Social-Community/Ocelot-Social'
},
],
plugins: {
mdEnhance: {
tabs: true,
imgSize: true
}
}
})
function generateSidebar(summaryFileName) {
const summaryFile = path.resolve(__dirname, summaryFileName)
try {
return getSummaryData(summaryFile)
} catch (err) {
console.error(`Error generating sidebar from file ${summaryFileName}:`, err)
process.exit(1)
}
}
function getSummaryData(file) {
const lines = fs.readFileSync(file, 'utf8').split('\n')
const sidebarStructure = []
let currentParent = null
lines.forEach((line, i) => {
const level = line.search(/\S|$/) / 2
const match = line.match(/^\s*\*\s*\[([^\]]+)\]\(([^)]+)\)/)
if (match) {
const newEntry = { text: match[1], link: `/${match[2]}`, children: [] }
if (level === 0) {
sidebarStructure.push(newEntry)
currentParent = sidebarStructure[sidebarStructure.length - 1]
} else {
let parent = currentParent
for (let i = 1; i < level; i++) {
parent = parent.children[parent.children.length - 1]
}
parent.children.push(newEntry)
}
}
})
sidebarStructure.forEach(removeEmptyArrays)
return sidebarStructure
}
function removeEmptyArrays(item) {
if (item.children && item.children.length === 0) {
delete item.children;
} else if (item.children) {
item.children.forEach(removeEmptyArrays);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

65
.vuepress/public/logo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,10 +1,10 @@
# CONTRIBUTING
Thank you so much for thinking of contributing to the [ocelot.social](https://ocelot.social) project! It's awesome you're here, we really appreciate it. :-\)
Thank you so much for thinking of contributing to the <!-- [ -->ocelot.social<!-- ](https://ocelot.social) --> project! It's awesome you're here, we really appreciate it. :-\)
## Getting Set Up
Instructions for how to install all the necessary software and some code guidelines can be found in our main [Readme](/README.md) or in our [documentation](/SUMMARY.md).
Instructions for how to install all the necessary software and some code guidelines can be found in our main [Readme](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md) or in our [documentation](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/SUMMARY.md).
To get you started we recommend that you join forces with a regular contributor. Please join [our Discord instance](https://discord.gg/AJSX9DCSUA) to chat with developers or just get in touch directly on an issue on either [Github](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues) or [Zenhub](https://app.zenhub.com/workspaces/ocelotsocial-5fb21ff922cb410015dd6535/board?filterLogic=any&repos=301151089):
@ -36,7 +36,7 @@ Every pull request needs to:
## Contribution Flow For Open Source Contributors
See [contributing in main README.md](/README.md#contributing)
See [contributing in main README.md](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md#contributing)
## The Team
@ -48,6 +48,9 @@ You can talk to our core team on [Discord](https://discord.gg/AJSX9DCSUA). And o
* Moriz (@Mogge)
* Wolle (@Tirokk)
* Alex (@ogerly)
* Hannes (@elweyn5803)
* Mathias (@mahula)
* Markus (@maeckes#1133)
<!-- * Robert (@roschaefer)
* Matt (@mattwr18)

View File

@ -2,15 +2,17 @@
[![Build Status Test](https://github.com/Ocelot-Social-Community/Ocelot-Social/actions/workflows/test.yml/badge.svg)](https://github.com/Ocelot-Social-Community/Ocelot-Social/actions)
[![Build Status Publish](https://github.com/Ocelot-Social-Community/Ocelot-Social/actions/workflows/publish.yml/badge.svg)](https://github.com/Ocelot-Social-Community/Ocelot-Social/actions)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/LICENSE.md)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/LICENSE.md)
[![Discord Channel](https://img.shields.io/discord/489522408076738561.svg)](https://discord.gg/AJSX9DCSUA)
[![Open Source Helpers](https://www.codetriage.com/ocelot-social-community/ocelot-social/badges/users.svg)](https://www.codetriage.com/ocelot-social-community/ocelot-social)
[Ocelot.social](https://ocelot.social) is free and open source software program code to run social networks. Its development is supported by a community of programmers and interested network operators.
<!-- [ -->Ocelot.social<!-- ](<https://ocelot.social>) --> is free and open source software program code to run social networks. Its development is supported by a community of programmers and interested network operators.
<!-- markdownlint-disable MD033 -->
<p align="center">
<a href="https://ocelot.social" target="_blank"><img src="webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%"></a>
<!-- <a href="https://ocelot.social" target="_blank"> -->
<img src="https://raw.githubusercontent.com/Ocelot-Social-Community/Ocelot-Social/master/webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%">
<!-- </a> -->
</p>
<!-- markdownlint-enable MD033 -->
@ -67,13 +69,13 @@ Try out our live demo network, see [here](#live-demo-and-developer-logins).
If you're wondering how you could help, there are plenty of ways, e.g.:
- Spread the good word about ocelot.social to make it more popular:
- Add the link [ocelot.social](https://ocelot.social) to your website.
- Add the link <!-- [ -->ocelot.social<!-- ](https://ocelot.social)--> to your website.
- Give ocelot.social a Like at <https://alternativeto.net/software/ocelot-social/>.
- Star our project on GitHub at <https://github.com/Ocelot-Social-Community/Ocelot-Social/>.
- Promote it on your social networks.
- Tell your friends about it by word-of-mouth.
- Write a press article on ocelot.social or contact the editorial office of your local news page or radio station.
- Take a [good first issue](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) or issues that need help. Make sure to read [CONTRIBUTING.md](/CONTRIBUTING.md) first though.
- Take a [good first issue](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) or issues that need help. Make sure to read [CONTRIBUTING.md](./CONTRIBUTING.md) first though.
- Testing and [reporting](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues/new/choose) bugs.
- Translating: Please [contact us](#contact).
- Reviewing and testing pull requests.
@ -138,11 +140,11 @@ $ cd Ocelot-Social
### Live Demo and Developer Logins
**Try out our deployed [development environment](https://stage.ocelot.social).**
**Try out our deployed <!-- [ -->development environment<!--](https://stage.ocelot.social)-->.**
Visit our staging networks:
- central staging network: [stage.ocelot.social](https://stage.ocelot.social)
- central staging network: <!-- [ -->stage.ocelot.social<!-- ](https://stage.ocelot.social)-->
<!-- - rebranded staging network: [rebrand.ocelot.social](https://stage.ocelot.social). -->
#### Login
@ -249,7 +251,7 @@ $ yarn locales --fix
$ yarn test
```
Check out our [contribution guideline](./CONTRIBUTING.md), too!
Check out our [contribution guideline](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/CONTRIBUTING.md), too!
#### Developer Chat
@ -303,7 +305,7 @@ Locale Icons made by [Freepik](http://www.freepik.com/) from [www.flaticon.com](
Browser compatibility testing with [BrowserStack](https://www.browserstack.com/).
<!-- markdownlint-disable MD033 -->
<img alt="BrowserStack Logo" src=".gitbook/assets/browserstack-logo.svg" width="256">
<img alt="BrowserStack Logo" src="https://raw.githubusercontent.com/Ocelot-Social-Community/Ocelot-Social/master/.gitbook/assets/browserstack-logo.svg" width="256">
<!-- markdownlint-enable MD033 -->
### License

View File

@ -1,7 +1,6 @@
# Table of contents
* [Introduction](README.md)
* [Edit this Documentation](edit-this-documentation.md)
* [Neo4J](neo4j/README.md)
* [Backend](backend/README.md)
* [GraphQL](backend/graphql.md)
@ -19,4 +18,5 @@
* [Contributing](CONTRIBUTING.md)
* [Feature Specification](cypress/features.md)
* [Code of Conduct](CODE_OF_CONDUCT.md)
* [Documentation](documentation.md)
* [License](LICENSE.md)

View File

@ -83,8 +83,8 @@ More details about our GraphQL playground and how to use it with ocelot.social c
Database indexes and constraints need to be created and upgraded when the database and the backend are running:
{% tabs %}
{% tab title="Docker" %}
::: tabs
@tab:active Docker
```bash
# in main folder while docker-compose is running
@ -102,8 +102,7 @@ $ docker compose exec backend /bin/sh -c "yarn prod:migrate init"
$ docker exec backend yarn run db:migrate up
```
{% endtab %}
{% tab title="Without Docker" %}
@tab Without Docker
```bash
# in folder backend/ while database is running
@ -116,16 +115,15 @@ yarn run db:migrate init
yarn run db:migrate up
```
{% endtab %}
{% endtabs %}
:::
#### Seed Database
If you want your backend to return anything else than an empty response, you
need to seed your database:
{% tabs %}
{% tab title="Docker" %}
::: tabs
@tab:active Docker
In another terminal run:
@ -147,8 +145,7 @@ $ docker exec backend yarn run db:migrate init
$ docker exec backend yarn run db:migrate up
```
{% endtab %}
{% tab title="Without Docker" %}
@tab Without Docker
Run:
@ -164,16 +161,15 @@ To reset the database run:
$ yarn run db:reset
```
{% endtab %}
{% endtabs %}
:::
### Data migrations
Although Neo4J is schema-less,you might find yourself in a situation in which
you have to migrate your data e.g. because your data modeling has changed.
{% tabs %}
{% tab title="Docker" %}
::: tabs
@tab:active Docker
Generate a data migration file:
@ -190,8 +186,7 @@ To run the migration:
$ docker exec backend yarn run db:migrate up
```
{% endtab %}
{% tab title="Without Docker" %}
@tab Without Docker
Generate a data migration file:
@ -208,16 +203,15 @@ To run the migration:
$ yarn run db:migrate up
```
{% endtab %}
{% endtabs %}
:::
## Testing
**Beware**: We have no multiple database setup at the moment. We clean the
database after each test, running the tests will wipe out all your data!
{% tabs %}
{% tab title="Docker" %}
::: tabs
@tab:active Docker
Run the unit tests:
@ -226,9 +220,7 @@ Run the unit tests:
$ docker exec backend yarn run test
```
{% endtab %}
{% tab title="Without Docker" %}
@tab Without Docker
Run the unit tests:
@ -237,5 +229,4 @@ Run the unit tests:
$ yarn run test
```
{% endtab %}
{% endtabs %}
:::

View File

@ -74,7 +74,7 @@
"metascraper-url": "^5.34.2",
"metascraper-video": "^5.33.5",
"metascraper-youtube": "^5.33.5",
"migrate": "^2.0.0",
"migrate": "^2.0.1",
"mime-types": "^2.1.26",
"minimatch": "^3.0.4",
"mustache": "^4.2.0",
@ -100,13 +100,11 @@
"@typescript-eslint/eslint-plugin": "^5.57.1",
"@typescript-eslint/parser": "^5.57.1",
"apollo-server-testing": "~2.11.0",
"chai": "~4.3.8",
"cucumber": "~6.0.5",
"eslint": "^8.37.0",
"eslint-config-prettier": "^9.0.0",
"eslint-config-standard": "^17.0.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-jest": "^27.2.1",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^4.2.1",

File diff suppressed because it is too large Load Diff

View File

@ -14,9 +14,9 @@ The following features will be implemented. This gets done in three steps:
2. In a second step we will make our prototype publicly available with an advanced feature set including the technology and organizational structure to drive a bigger public social network.
3. In a third step all the remaining features will be implemented to build the full product.
### User Account
The implemented features can be found [here](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/e2e)
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/user_account)
### User Account
* Sign-up
* Agree to Data Privacy Statement
@ -34,8 +34,6 @@ The following features will be implemented. This gets done in three steps:
### User Profile
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/user_profile)
* Upload and Change Avatar
* Upload and Change Profile Picture
* Edit Social Media Accounts
@ -46,8 +44,6 @@ The following features will be implemented. This gets done in three steps:
### Dashboard
[Clickdummy](https://preview.uxpin.com/24a2ab8adcd84f9a763d87ed27251351225e0ecd#/pages/99768919/simulate/sitemap?mode=i)
* Show Link to own Profile
* Show Friends Widget
* Show Favorites Widget
@ -59,8 +55,6 @@ The following features will be implemented. This gets done in three steps:
### Posts
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/post)
* Creating Posts
* Persistent Links
* Upload Teaser Picture for Post
@ -85,8 +79,6 @@ The following features will be implemented. This gets done in three steps:
### Notifications
[Cucumber features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/notifications)
* User @-mentionings
* Notify authors for comments
* Administrative notifications to all users
@ -108,8 +100,6 @@ The following features will be implemented. This gets done in three steps:
### Blacklist
[Video](https://www.youtube.com/watch?v=-uDvvmN8hLQ)
* Blacklist Users
* Blacklist specific Terms
* Blacklist Tags
@ -117,8 +107,6 @@ The following features will be implemented. This gets done in three steps:
### Search
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/search)
* Search for Categories
* Search for Tags
* Fulltext Search
@ -238,8 +226,6 @@ Shows automatically related actions for existing post.
### Moderation
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/moderation)
* Report Button for users for doubtful Content
* Moderator Panel
* List of reported Content \(later replaced by User-Moderation\)
@ -250,8 +236,6 @@ Shows automatically related actions for existing post.
### Administration
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/administration)
* Provide Admin-Interface to send Users Invite Code
* Static Pages for Data Privacy Statement ...
* Create, edit and delete Announcements
@ -265,8 +249,6 @@ Shows automatically related actions for existing post.
### Internationalization
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/internationalization)
* Frontend UI
* Backend Error Messages

View File

@ -9,8 +9,6 @@
$ export DOCKER_DEFAULT_PLATFORM=linux/amd64
```
For even more informations, see [Docker More Closely](#docker-more-closely)
### Docker Compose Override File For Apple M1 Platform
For Docker compose `up` or `build` commands, you can use our Apple M1 override file that specifies the M1 platform:
@ -27,7 +25,3 @@ $ docker compose -f docker-compose.ocelotsocial-branded.yml -f docker-compose.ap
# only once: init admin user and create indexes and constraints in Neo4j database
$ docker compose exec backend /bin/sh -c "yarn prod:migrate init"
```
## Docker More Closely In Main Code
To get more informations about the Apple M1 platform and to analyze the Docker builds etc. you find our documentation in our main code, [here](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/DOCKER_MORE_CLOSELY.md).

View File

@ -11,7 +11,7 @@ $ minikube dashboard
This will give you an overview. Some of the steps below need some timing to make resources available to other dependent deployments. Keeping an eye on the dashboard is a great way to check that.
Follow the installation instruction for [Kubernetes with Helm](./kubernetes/README.md).
Follow the installation instruction for [Kubernetes with Helm](./src/kubernetes/README.md).
If all the pods and services have settled and everything looks green in your
minikube dashboard, expose the services you want on your host system.

View File

@ -1,7 +1,7 @@
# Ocelot.Social Deploy And Rebranding
[![Build Status Publish](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/actions/workflows/publish.yml/badge.svg)](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/actions)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/blob/LICENSE.md)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/blob/master/LICENSE.md)
[![Discord Channel](https://img.shields.io/discord/489522408076738561.svg)](https://discord.gg/AJSX9DCSUA)
[![Open Source Helpers](https://www.codetriage.com/ocelot-social-community/ocelot-social-deploy-rebranding/badges/users.svg)](https://www.codetriage.com/ocelot-social-community/ocelot-social-deploy-rebranding)
@ -10,17 +10,19 @@ The forked original repository is [stage.ocelot.social](https://github.com/Ocelo
<!-- markdownlint-disable MD033 -->
<p align="center">
<a href="https://ocelot.social" target="_blank"><img src="../webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%"></a>
<!-- <a href="https://ocelot.social" target="_blank"> -->
<img src="../webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%">
<!-- </a> -->
</p>
<!-- markdownlint-enable MD033 -->
## Live demo
__Try out our deployed [development environment](https://stage.ocelot.social).__
__Try out our deployed <!-- [ -->development environment<!-- ](https://stage.ocelot.social)-->.__
Visit our staging networks:
- central staging network: [stage.ocelot.social](https://stage.ocelot.social)
- central staging network: <!-- [ -->stage.ocelot.social<!-- ](https://stage.ocelot.social)-->
<!-- - rebranded staging network: [rebrand.ocelot.social](https://stage.ocelot.social). -->
Logins:
@ -39,16 +41,18 @@ Fork this repository to configure and rebrand it for your own [ocelot.social](ht
Write your own data into the main configuration file:
- [package.json](/package.json)
- [package.json](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/package.json)
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](/package.json) file as your `dockerOrganisation`.
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/package.json) file as your `dockerOrganisation`.
### Configure And Branding
The next step is:
- [Set Environment Variables and Configurations](./deployment-values.md)
<!-- markdown-link-check-disable -->
- [Configure And Branding](./configurations/stage.ocelot.social/branding/README.md)
<!-- markdown-link-check-enable -->
### Optional: Locally Testing Configuration And Branding
@ -71,7 +75,7 @@ For the maintenance page have a look in your browser at `http://localhost:5000/`
### Push Changes To GitHub
Before merging these changes into the "master" branch on your GitHub fork repository, you need to configure the GitHub repository secrets. This is necessary to [publish](/.github/workflows/publish.yml) the Docker images by pushing them via GitHub actions to repositories belonging to your DockerHub organisation.
Before merging these changes into the "master" branch on your GitHub fork repository, you need to configure the GitHub repository secrets. This is necessary to [publish](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/.github/workflows/publish.yml) the Docker images by pushing them via GitHub actions to repositories belonging to your DockerHub organisation.
First, go to your DockerHub profile under `Account Settings` and click on the `Security` tab. There you create an access token called `<your-organisation>-access-token` and copy the token to a safe place.
@ -100,9 +104,9 @@ See the login details and browser addresses above.
### Deployment
Afterwards you can [deploy](/deployment/deployment.md) it on your server:
Afterwards you can [deploy](./deployment.md) it on your server:
- [Kubernetes with Helm](/deployment/kubernetes/README.md)
- [Kubernetes with Helm](./src/kubernetes/README.md)
## Developer Chat
@ -131,7 +135,7 @@ Browser compatibility testing with [BrowserStack](https://www.browserstack.com/)
## License
See the [LICENSE](/LICENSE.md) file for license rights and limitations (MIT).
See the [LICENSE](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/LICENSE.md) file for license rights and limitations (MIT).
We need `DOCKER_BUILDKIT=0` for this to work.

View File

@ -4,14 +4,14 @@ Before you start the deployment you have to do preparations.
## Deployment Preparations
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](/package.json) file as your `dockerOrganisation`.
Read more details in the [main README](/README.md) under [Usage](/README.md#usage).
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/package.json) file as your `dockerOrganisation`.
Read more details in the [main README](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md) under [Usage](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md#usage).
## Deployment Methods
You have the following options for a deployment:
- [Kubernetes with Helm](./kubernetes/README.md)
- [Kubernetes with Helm](./src/kubernetes/README.md)
## After Deployment

View File

@ -1,7 +1,5 @@
#!/bin/bash
# !!! never tested !!!
# base setup
SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
@ -35,7 +33,7 @@ helm install \
--kubeconfig=${KUBECONFIG} \
--namespace cert-manager \
--create-namespace \
--version v1.13.1 \
--version v1.13.2 \
--set installCRDs=true
## install Ocelot with helm

View File

@ -68,17 +68,17 @@ Take one of the IPs of perhaps two or more droplets in your cluster from the lis
To understand what makes sense to do when managing your DNS with DigitalOcean, you need to know how DNS works:
DNS means `Domain Name System`. It resolves domains like `example.com` into an IP like `123.123.123.123`.
DigitalOcean is not a domain registrar, but provides a DNS management service. If you use DigitalOcean's DNS management service, you can configure [your cluster](/deployment/kubernetes/README.md#dns) to always resolve the domain to the correct IP and automatically update it for that.
DigitalOcean is not a domain registrar, but provides a DNS management service. If you use DigitalOcean's DNS management service, you can configure [your cluster](./README.md#dns) to always resolve the domain to the correct IP and automatically update it for that.
The IPs of the DigitalOcean machines are not necessarily stable, so the cluster's DNS service will update the DNS records managed by DigitalOcean to the new IP as needed.
***CAUTION:** If you are using an external DNS, you currently have to do this manually, which can cause downtime.*
## Deploy
Yeah, you're done here. Back to [Deployment with Helm for Kubernetes](/deployment/src/kubernetes/README.md).
Yeah, you're done here. Back to [Deployment with Helm for Kubernetes](./README.md).
## Backups On DigitalOcean
You can and should do [backups](/deployment/kubernetes/Backup.md) with Kubernetes for sure.
You can and should do [backups](./Backup.md) with Kubernetes for sure.
Additional to backup and copying the Neo4j database dump and the backend images you can do a volume snapshot on DigitalOcean at the moment you have the database in sleep mode.

View File

@ -9,7 +9,7 @@ Please contact us if you are interested in options not listed below.
Managed Kubernetes:
- [DigitalOcean](/deployment/src/kubernetes/DigitalOcean.md)
- [DigitalOcean](./DigitalOcean.md)
## Configuration
@ -76,7 +76,7 @@ $ helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.13.1 \
--version v1.13.2 \
--set installCRDs=true
# or kubeconfig.yaml in your repo, then adjust
$ helm install \
@ -84,7 +84,7 @@ $ helm install \
--kubeconfig ./kubeconfig.yaml \
--namespace cert-manager \
--create-namespace \
--version v1.13.1 \
--version v1.13.2 \
--set installCRDs=true
``` -->
@ -165,7 +165,7 @@ $ doctl compute firewall get <ID> --context <context-name>
***ATTENTION:** This seems not to work at all so we leave it away at the moment*
***TODO:** I thought this is necessary if we use the DigitalOcean DNS management service? See [Manage DNS With DigitalOcean](/deployment/kubernetes/DigitalOcean.md#manage-dns-with-digitalocean)*
***TODO:** I thought this is necessary if we use the DigitalOcean DNS management service? See [Manage DNS With DigitalOcean](./DigitalOcean.md#manage-dns-with-digitalocean)*
This chart is only necessary (recommended is more precise) if you run DigitalOcean without load balancer.
You need to generate an access token with read + write for the `dns.values.yaml` at <https://cloud.digitalocean.com/account/api/tokens> and fill it in.
@ -280,9 +280,9 @@ helm uninstall ocelot \
## Backups
You can and should do [backups](/deployment/kubernetes/Backup.md) with Kubernetes for sure.
You can and should do [backups](./Backup.md) with Kubernetes for sure.
## Error Reporting
<!-- ## Error Reporting
We use [Sentry](https://github.com/getsentry/sentry) for error reporting in both
our backend and web frontend. You can either use a hosted or a self-hosted
@ -297,7 +297,7 @@ If you are lucky enough to have a kubernetes cluster with the required hardware
support, try this [helm chart](https://github.com/helm/charts/tree/master/stable/sentry).
On our kubernetes cluster we get "mult-attach" errors for persistent volumes.
Apparently DigitalOcean's kubernetes clusters do not fulfill the requirements.
Apparently DigitalOcean's kubernetes clusters do not fulfill the requirements. -->
## Kubernetes Commands (Without Helm) To Deploy New Docker Images To A Kubernetes Cluster

View File

@ -23,13 +23,12 @@ CAUTION: It seems that the behaviour of DigitalOcean has changed and the load ba
And to create a load balancer costs money. Please refine the following documentation if required.
{% endhint %}
{% tabs %}
{% tab title="Without Load Balancer" %}
::: tabs
@tab:active Without Load Balancer
A solution without a load balance you can find [here](../no-loadbalancer/README.md).
{% endtab %}
{% tab title="With DigitalOcean Load Balancer" %}
@tab With DigitalOcean Load Balancer
{% hint style="info" %}
CAUTION: It seems that the behaviour of DigitalOcean has changed and the load balancer is not created automatically anymore.
@ -44,8 +43,7 @@ address. On DigitalOcean, this is how it should look like:
If the load balancer isn't created automatically you have to create it your self on DigitalOcean under Networks.
In case you don't need a DigitalOcean load balancer (which costs money by the way) have a look in the tab `Without Load Balancer`.
{% endtab %}
{% endtabs %}
:::
Check the ingress server is working correctly:

View File

@ -1,4 +1,6 @@
# Edit this Documentation
# Documentation
## Edit this Documentation
Find the [**table of contents** for this documentation on GitHub](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/SUMMARY.md) and navigate to the file you need to update.
@ -10,15 +12,15 @@ If you are ready, fill in the **Propose file change** at the end of the webpage.
After that you have to compare your change branch to our `master` branch with a pull request. Here make a comment which issue you have fixed. (If you are working on one of our [open issues](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues) please include the number.)
## Markdown your documentation
### Markdown your documentation
To design your documentation see the syntax description at GitBook:
[https://toolchain.gitbook.com/syntax/markdown.html](https://toolchain.gitbook.com/syntax/markdown.html)
### Some quick Examples
#### Some quick Examples
#### Headlines
##### Headlines
```markdown
# Main Headline
@ -26,21 +28,19 @@ To design your documentation see the syntax description at GitBook:
### Small Headlines
```
#### Tabs
##### Tabs
```markdown
{% tabs %}
{% tab title="XXX" %}
XXX
{% endtab %}
{% tab title="XXX" %}
XXX
{% endtab %}
{% endtabs %}
::: tabs
@tab:active First tab's title <!-- this tab is setactive -->
@tab Second tab's title
:::
```
#### Commands
##### Commands
~~~markdown
```<LANGUAGE> (for text highlighting)
@ -48,33 +48,34 @@ XXX
```
~~~
#### Links
##### Links
```markdown
[XXX](https://XXX)
```
For the documentation to work in both frameworks - Github and Vuepress - please use absolute path for Github internal documentation links (e.g. /README.md over ../../README.mdetc.)
#### Screenshots or other Images
##### Screenshots or other Images
```markdown
![XXX](https://XXX)
```
#### Hints for ToDos
##### Hints for ToDos
```markdown
{% hint style="info" %} TODO: XXX {% endhint %}
```
## Host the Screenshots
### Host the Screenshots
### Host on Ocelot-Social \(GitHub\) Repository
#### Host on Ocelot-Social \(GitHub\) Repository
{% hint style="info" %}
TODO: How to host on Ocelot-Social \(GitHub\) repository ...
{% endhint %}
### Quick Solution
#### Quick Solution
To quickly host the screenshots go to:
@ -88,27 +89,41 @@ Right click on it and choose kind of **Open link in new tab**.
Copy the URL and paste it were you need it.
## Screenshot Modification
### Screenshot Modification
### Add an Arrow or some other Marking Stuff
#### Add an Arrow or some other Marking Stuff
{% tabs %}
{% tab title="macOS" %}
::: tabs
@tab:active macOS
#### In the Preview App
##### In the Preview App
Got to: **Menu** + **Tools** \(GER: Werkzeuge\) + **Annotate** \(GER: Anmerkungen\) + etc.
{% endtab %}
{% tab title="Windows" %}
@tab Windows
{% hint style="info" %}
TODO: How to modify screenshots in Windows ...
{% endhint %}
{% endtab %}
{% tab title="Linux" %}
@tab Linux
{% hint style="info" %}
TODO: How to modify screenshots in Linux ...
{% endhint %}
{% endtab %}
{% endtabs %}
:::
## Deploy this Documentation
TODO
```bash
# set configured Node version
nvm use
# install Vuepress
npm install
# run vuepress
npm run docs:dev
```

16248
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,6 @@
"description": "Free and open source software program code available to run social networks.",
"author": "ocelot.social Community",
"license": "MIT",
"private": false,
"repository": {
"type": "git",
"url": "https://github.com/Ocelot-Social-Community/Ocelot-Social.git"
@ -27,24 +26,24 @@
"scripts": {
"db:seed": "cd backend && yarn run db:seed",
"db:reset": "cd backend && yarn run db:reset",
"docs:build": "NODE_OPTIONS=--openssl-legacy-provider vuepress build .",
"docs:dev": "NODE_OPTIONS=--openssl-legacy-provider vuepress dev .",
"cypress:run": "cypress run --e2e --browser electron --config-file ./cypress/cypress.config.js",
"cypress:open": "cypress open --e2e --browser electron --config-file ./cypress/cypress.config.js",
"cucumber:setup": "cd backend && yarn run dev",
"cucumber": "wait-on tcp:4000 && cucumber-js --require-module @babel/register --exit",
"release": "yarn version --no-git-tag-version --no-commit-hooks --no-commit && auto-changelog --latest-version $(node -p -e \"require('./package.json').version\") && cd backend && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp/maintenance/source && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../../../package.json').version\")"
},
"devDependencies": {
"@babel/core": "^7.23.3",
"@babel/preset-env": "^7.23.3",
"@babel/core": "^7.23.5",
"@babel/preset-env": "^7.23.5",
"@babel/register": "^7.22.15",
"@badeball/cypress-cucumber-preprocessor": "^19.1.1",
"@badeball/cypress-cucumber-preprocessor": "^19.2.0",
"@cypress/browserify-preprocessor": "^3.0.2",
"@cucumber/cucumber": "10.0.1",
"@faker-js/faker": "8.3.1",
"auto-changelog": "^2.3.0",
"bcryptjs": "^2.4.3",
"cross-env": "^7.0.3",
"cucumber": "^6.0.5",
"cypress": "^13.5.1",
"cypress": "^13.6.1",
"cypress-network-idle": "^1.14.2",
"date-fns": "^2.25.0",
"dotenv": "^16.3.1",
@ -60,6 +59,11 @@
"slug": "^8.2.3",
"wait-on": "^7.2.0"
},
"optionalDependencies": {
"vuepress": "^2.0.0-rc.0",
"vuepress-plugin-search-pro": "^2.0.0-rc.4",
"vuepress-theme-hope": "^2.0.0-rc.4"
},
"resolutions": {
"set-value": "^2.0.1",
"nan": "2.17.0"

View File

@ -25,6 +25,10 @@ module.exports = {
'no-console': ['error'],
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'vue/component-name-in-template-casing': ['error', 'kebab-case'],
// deactivate Vue3 rules for now, project will be migrated to Vue3
'vue/multi-word-component-names': 0,
'vue/no-mutating-props': 0,
'vue/no-v-text-v-html-on-component': 0,
'prettier/prettier': ['error', {
htmlWhitespaceSensitivity: 'ignore'
}],

View File

@ -59,8 +59,8 @@ We ensure the quality of our frontend code by using
For more information see our [frontend testing guide](testing.md). Use these commands to run the tests:
{% tabs %}
{% tab title="With Docker" %}
::: tabs
@tab:active With Docker
After starting the application following the above guidelines, open new terminal windows for each of these commands:
@ -81,9 +81,7 @@ $ docker-compose exec webapp yarn storybook
You can then visit the Storybook playground on `http://localhost:3002`
{% endtab %}
{% tab title="Without Docker" %}
@tab title Without Docker
After starting the application following the above guidelines, open new terminal windows and navigate to the `/webapp` directory for each of these commands:
@ -109,8 +107,7 @@ $ yarn storybook
You can then visit the Storybook playground on `http://localhost:3002`
{% endtab %}
{% endtabs %}
:::
## Maintenance Mode

View File

@ -16,6 +16,7 @@
/>
</slot>
</template>
<!-- eslint-disable-next-line vue/no-useless-template-attributes -->
<template #popover="" class="legend">
<div class="legend-container">
<div class="legend-header">{{ $t(`editor.legend.legendTitle`) }}</div>

View File

@ -8,8 +8,8 @@ The maintenance mode shows a translatable page that tells the user that we are r
At the moment the maintenance mode can only be locally tested with Docker-Compose.
{% tabs %}
{% tab title="Locally Without Docker" %}
::: tabs
@tab:active Locally Without Docker
{% hint style="info" %}
TODO: Implement a locally running maintenance mode! Without Docker …
@ -25,8 +25,7 @@ $ yarn generate:maintenance
… is unfortunatelly **not(!)** working at the moment.
This is because the code is rewritten to be easy usable for Docker-Compose. Therefore we lost this possibility.
{% endtab %}
{% tab title="Locally With Docker" %}
@tab Locally With Docker
To get the maintenance mode running use the command:
@ -37,3 +36,5 @@ $ docker-compose up
And the maintenance mode page or service will be started as well in an own container.
In the browser you can reach it under `http://localhost:3001/`.
:::

View File

@ -100,7 +100,7 @@
"eslint-plugin-prettier": "~3.4.0",
"eslint-plugin-promise": "~4.3.1",
"eslint-plugin-standard": "~5.0.0",
"eslint-plugin-vue": "~6.2.2",
"eslint-plugin-vue": "~9.19.2",
"flush-promises": "^1.0.2",
"identity-obj-proxy": "^3.0.0",
"jest": "29.5",

View File

@ -57,6 +57,7 @@
</div>
</template>
<!-- eslint-disable vue/no-reserved-component-names -->
<script>
import { isEmpty, toArray } from 'lodash'
import mapboxgl from 'mapbox-gl'
@ -560,6 +561,7 @@ export default {
},
}
</script>
<!-- eslint-enable vue/no-reserved-component-names -->
<style lang="scss">
// description: https: //github.com/geospoc/v-mapbox/tree/v1.11.2/docs

View File

@ -2344,6 +2344,13 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
"@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
dependencies:
eslint-visitor-keys "^3.3.0"
"@faker-js/faker@5.1.0":
version "5.1.0"
resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-5.1.0.tgz#cee1d77ada0d0dbbe77201d18b1ebabf432d9c0f"
@ -5327,6 +5334,11 @@ acorn-jsx@^5.1.0:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn-walk@^6.0.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
@ -5372,6 +5384,11 @@ acorn@^8.1.0, acorn@^8.8.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
acorn@^8.9.0:
version "8.11.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==
agent-base@5:
version "5.1.1"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
@ -9345,14 +9362,18 @@ eslint-plugin-standard@~5.0.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4"
integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==
eslint-plugin-vue@~6.2.2:
version "6.2.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==
eslint-plugin-vue@~9.19.2:
version "9.19.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz#7ab83a001a1ac8bccae013c5b9cb5d2c644fb376"
integrity sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
natural-compare "^1.4.0"
semver "^5.6.0"
vue-eslint-parser "^7.0.0"
nth-check "^2.1.1"
postcss-selector-parser "^6.0.13"
semver "^7.5.4"
vue-eslint-parser "^9.3.1"
xml-name-validator "^4.0.0"
eslint-scope@^4.0.3:
version "4.0.3"
@ -9370,6 +9391,14 @@ eslint-scope@^5.0.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-scope@^7.1.1:
version "7.2.2"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
eslint-utils@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
@ -9394,6 +9423,11 @@ eslint-visitor-keys@^2.0.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
version "3.4.3"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint@~6.8.0:
version "6.8.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
@ -9451,6 +9485,15 @@ espree@^6.1.2:
acorn-jsx "^5.1.0"
eslint-visitor-keys "^1.1.0"
espree@^9.3.1:
version "9.6.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
dependencies:
acorn "^8.9.0"
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.4.1"
esprima@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@ -9468,6 +9511,13 @@ esquery@^1.0.1:
dependencies:
estraverse "^4.0.0"
esquery@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
dependencies:
estraverse "^5.1.0"
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
@ -9475,12 +9525,19 @@ esrecurse@^4.1.0:
dependencies:
estraverse "^4.1.0"
esrecurse@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
dependencies:
estraverse "^5.2.0"
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
estraverse@^5.2.0:
estraverse@^5.1.0, estraverse@^5.2.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
@ -13975,6 +14032,13 @@ nth-check@^1.0.2, nth-check@~1.0.1:
dependencies:
boolbase "~1.0.0"
nth-check@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
dependencies:
boolbase "^1.0.0"
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
@ -15359,14 +15423,13 @@ postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-sel
indexes-of "^1.0.1"
uniq "^1.0.1"
postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2:
version "6.0.13"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
dependencies:
cssesc "^3.0.0"
indexes-of "^1.0.1"
uniq "^1.0.1"
util-deprecate "^1.0.2"
postcss-svgo@^4.0.2:
version "4.0.2"
@ -16898,10 +16961,10 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.1.3, semver@^7.3.2, semver@^7.3.5, semver@^7.3.8:
version "7.3.8"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
semver@^7.1.3, semver@^7.3.2, semver@^7.3.5, semver@^7.3.6, semver@^7.3.8, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
dependencies:
lru-cache "^6.0.0"
@ -19061,17 +19124,18 @@ vue-count-to@~1.0.13:
resolved "https://registry.yarnpkg.com/vue-count-to/-/vue-count-to-1.0.13.tgz#3e7573ea6e64c2b2972f64e0a2ab2e23c7590ff3"
integrity sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ==
vue-eslint-parser@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz#a4ed2669f87179dedd06afdd8736acbb3a3864d6"
integrity sha512-yR0dLxsTT7JfD2YQo9BhnQ6bUTLsZouuzt9SKRP7XNaZJV459gvlsJo4vT2nhZ/2dH9j3c53bIx9dnqU2prM9g==
vue-eslint-parser@^9.3.1:
version "9.3.2"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499"
integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==
dependencies:
debug "^4.1.1"
eslint-scope "^5.0.0"
eslint-visitor-keys "^1.1.0"
espree "^6.1.2"
esquery "^1.0.1"
lodash "^4.17.15"
debug "^4.3.4"
eslint-scope "^7.1.1"
eslint-visitor-keys "^3.3.0"
espree "^9.3.1"
esquery "^1.4.0"
lodash "^4.17.21"
semver "^7.3.6"
vue-hot-reload-api@^2.3.0:
version "2.3.3"

3695
yarn.lock

File diff suppressed because it is too large Load Diff