aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar thursday <xthursdayx@mailbox.org>2021-11-16 03:11:29 -0500
committerLibravatar GitHub <noreply@github.com>2021-11-16 03:11:29 -0500
commit7962660cc2c07e6c3bfa74faf7d8ba429546ea73 (patch)
treeff385e1590b875bf4799f275b393bc9053d94e02
parentUpdate entrypoint.sh (diff)
parentMerge branch 'master' into master (diff)
downloadferdium-server-7962660cc2c07e6c3bfa74faf7d8ba429546ea73.tar.gz
ferdium-server-7962660cc2c07e6c3bfa74faf7d8ba429546ea73.tar.zst
ferdium-server-7962660cc2c07e6c3bfa74faf7d8ba429546ea73.zip
Merge pull request #2 from getferdi/master
Update to head
-rw-r--r--.dockerignore4
-rwxr-xr-x.husky/pre-commit9
-rw-r--r--CONTRIBUTING.md23
-rw-r--r--Dockerfile6
-rw-r--r--README.md4
-rw-r--r--docker/.gitignore1
-rw-r--r--docker/README.md50
-rwxr-xr-xdocker/entrypoint.sh35
-rw-r--r--package-lock.json189
-rw-r--r--package.json2
10 files changed, 169 insertions, 154 deletions
diff --git a/.dockerignore b/.dockerignore
index 110334e..e97b248 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -15,6 +15,4 @@ docker
15!docker/entrypoint.sh 15!docker/entrypoint.sh
16!docker/.env 16!docker/.env
17node_modules 17node_modules
18 18.husky
19
20
diff --git a/.husky/pre-commit b/.husky/pre-commit
index 20d0d06..1a92cb3 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -1,4 +1,9 @@
1#!/bin/sh 1#!/bin/sh
2. "$(dirname "$0")/_/husky.sh"
3 2
4npm run lint 3FILE_NAME="$(dirname "$0")/_/husky.sh"
4
5# Conditionally invoke so as to avoid running npm commands if this is a clean checkout (ie before installing npm modules)
6if [ -f $FILE_NAME ]; then
7 . $FILE_NAME
8 npm run lint
9fi
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 440cc19..a0b4c0b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -17,6 +17,7 @@
17 - [Git](#git) 17 - [Git](#git)
18 - [Clone repository with submodule](#clone-repository-with-submodule) 18 - [Clone repository with submodule](#clone-repository-with-submodule)
19 - [Install dependencies](#install-dependencies) 19 - [Install dependencies](#install-dependencies)
20 - [Start development app](#start-development-app)
20 - [Styleguide](#styleguide) 21 - [Styleguide](#styleguide)
21 - [Git Commit Messages format](#git-commit-messages-format) 22 - [Git Commit Messages format](#git-commit-messages-format)
22 - [Javascript Coding style-checker](#javascript-coding-style-checker) 23 - [Javascript Coding style-checker](#javascript-coding-style-checker)
@@ -87,7 +88,7 @@ cd server
87git submodule update --init --recursive 88git submodule update --init --recursive
88``` 89```
89 90
90It is important you execute the last command to get the required submodules (recipes, server). 91It is important you execute the last command to get the required submodules (recipes).
91 92
92### Install dependencies 93### Install dependencies
93 94
@@ -116,25 +117,17 @@ mkdir -p data
116 117
117- Run the database migrations with 118- Run the database migrations with
118 119
119 ```bash 120```bash
120 node ace migration:refresh 121node ace migration:refresh
121 ``` 122```
122 123
123- To get the full functionality, you will need to have an SMTP server running for local development. 124- To get the full functionality, you will need to have an SMTP server running for local development.
124 125
125<!-- ### Package recipe repository
126
127Ferdi requires its recipes to be packaged before it can use it. When running Ferdi as a development instance, you'll need to package the local recipes before you can create any services inside Ferdi.
128
129```bash
130cd recipes && npm i && npm run package
131``` -->
132
133### Start development app 126### Start development app
134 127
135 ```bash 128```bash
136 npm start --dev 129npm start --dev
137 ``` 130```
138 131
139### Styleguide 132### Styleguide
140 133
diff --git a/Dockerfile b/Dockerfile
index 31dc994..ad057dc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
1FROM node:lts-alpine as build 1FROM node:14.17-alpine as build
2 2
3WORKDIR /server-build 3WORKDIR /server-build
4 4
@@ -8,12 +8,12 @@ COPY . /server-build
8 8
9RUN ["npm", "ci", "--production", "--build-from-source", "--sqlite=/usr/local"] 9RUN ["npm", "ci", "--production", "--build-from-source", "--sqlite=/usr/local"]
10 10
11FROM node:lts-alpine 11FROM node:14.17-alpine
12 12
13WORKDIR /app 13WORKDIR /app
14LABEL maintainer="xthursdayx" 14LABEL maintainer="xthursdayx"
15 15
16ENV HOST=0.0.0.0 PORT=3333 DATA_DIR="/data" 16ENV HOST=0.0.0.0 PORT=3333 DATA_DIR="/data"
17 17
18RUN ["apk", "add", "--no-cache", "sqlite-libs", "curl", "su-exec"] 18RUN ["apk", "add", "--no-cache", "sqlite-libs", "curl", "su-exec"]
19 19
diff --git a/README.md b/README.md
index 6a45b08..853d019 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
6Official Server software for the [Ferdi Messaging Browser](https://getferdi.com) 6Official Server software for the [Ferdi Messaging Browser](https://getferdi.com)
7 7
8- [Ferdi-server](#ferdi-server) 8- [Ferdi-server](#ferdi-server)
9 - [Why use a custom Ferdi server?](#why-use-a-custom-ferdi-server) 9 - [Why use a custom Ferdi-server?](#why-use-a-custom-ferdi-server)
10 - [Features](#features) 10 - [Features](#features)
11 - [Setup](#setup) 11 - [Setup](#setup)
12 - [with Docker](#with-docker) 12 - [with Docker](#with-docker)
@@ -89,7 +89,7 @@ For more information on configuring the Docker image, please read [the Ferdi doc
89 89
90### Manual setup 90### Manual setup
91 91
921. Clone this repository 921. Clone repository with submodule
932. Install the [AdonisJS CLI](https://adonisjs.com/) 932. Install the [AdonisJS CLI](https://adonisjs.com/)
943. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs 943. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs
954. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc 954. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc
diff --git a/docker/.gitignore b/docker/.gitignore
new file mode 100644
index 0000000..7376571
--- /dev/null
+++ b/docker/.gitignore
@@ -0,0 +1 @@
docker-compose.override.yml
diff --git a/docker/README.md b/docker/README.md
index 3d8bd5f..7581bef 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -1,5 +1,5 @@
1# Ferdi-server-docker 1# Ferdi-server-docker
2[Ferdi](https://github.com/getferdi/ferdi) is a hard-fork of [Franz](https://github.com/meetfranz/franz), adding awesome features and removing unwanted ones. Ferdi-server is an unofficial replacement of the Franz server for use with the Ferdi Client. 2[Ferdi](https://github.com/getferdi/ferdi) is a hard-fork of [Franz](https://github.com/meetfranz/franz), adding awesome features and removing unwanted ones. Ferdi-server is an unofficial replacement of the Franz server for use with the Ferdi Client.
3 3
4This is a dockerized version of [Ferdi-server](https://github.com/getferdi/server) running on Alpine Linux and Node.js (v10.16.3). 4This is a dockerized version of [Ferdi-server](https://github.com/getferdi/server) running on Alpine Linux and Node.js (v10.16.3).
5 5
@@ -35,7 +35,7 @@ To create the docker container with the proper parameters:
35 docker create \ 35 docker create \
36 --name=ferdi-server \ 36 --name=ferdi-server \
37 -e NODE_ENV=development \ 37 -e NODE_ENV=development \
38 -e EXTERNAL_DOMAIN=<ferdi-serverdomain> \ 38 -e EXTERNAL_DOMAIN=<ferdi-serverdomain> \
39 -e DB_CONNECTION=<database> \ 39 -e DB_CONNECTION=<database> \
40 -e DB_HOST=<yourdbhost> \ 40 -e DB_HOST=<yourdbhost> \
41 -e DB_PORT=<yourdbport> \ 41 -e DB_PORT=<yourdbport> \
@@ -65,15 +65,15 @@ To create the docker container with the proper parameters:
65 65
66 You can use the provided sample [docker-compose.yml](https://github.com/getferdi/server/tree/master/docker/docker-compose.yml) if you are happy with the default environmental variables. This will pull the latest image from Docker Hub or use a local copy of the image which you can build using the instructions provided in the [Building locally section](#building-locally). 66 You can use the provided sample [docker-compose.yml](https://github.com/getferdi/server/tree/master/docker/docker-compose.yml) if you are happy with the default environmental variables. This will pull the latest image from Docker Hub or use a local copy of the image which you can build using the instructions provided in the [Building locally section](#building-locally).
67 67
68 To start the application, use `docker-compose up -d`. 68 To start the application, use `docker-compose -f docker/docker-compose.yml up -d`.
69The server will be launched at [http://localhost:3333/](http://localhost:3333/) address. 69The server will be launched at [http://localhost:3333/](http://localhost:3333/) address.
70 70
71## Configuration 71## Configuration
72 72
73Container images are configured using parameters passed at runtime (such as those above). An explanaition of the default parameters is included below, but please see [the Docker documentation](https://docs.docker.com/get-started/overview/) for additional information. 73Container images are configured using parameters passed at runtime (such as those above). An explanaition of the default parameters is included below, but please see [the Docker documentation](https://docs.docker.com/get-started/overview/) for additional information.
74 74
75<strike>If any environmental parameter is not passed to the container, its value will be taken from the `/config/config.txt` file.</strike> 75<strike>If any environmental parameter is not passed to the container, its value will be taken from the `/config/config.txt` file.</strike>
76**Warning, the use of `config.txt` is now deprecated. Please make sure to pass the correct environmental variables to your container at runtime. ** 76**Warning, the use of `config.txt` is now deprecated. Please make sure to pass the correct environmental variables to your container at runtime. **
77 77
78| Parameter | Function | 78| Parameter | Function |
79| :----: | --- | 79| :----: | --- |
@@ -108,7 +108,7 @@ By enabling the `CONNECT_WITH_FRANZ` option, Ferdi-server can:
108 108
109## Supported databases and drivers 109## Supported databases and drivers
110 110
111To use a different database than the default, SQLite3, enter the driver code below in your ENV configuration. 111To use a different database than the default, SQLite3, enter the driver code below in your ENV configuration.
112 112
113| Database | Driver | 113| Database | Driver |
114| :----: | --- | 114| :----: | --- |
@@ -150,7 +150,7 @@ If you are an existing Ferdi-server user who usees an external database or diffe
150| `-v <path to recipes>:/app/recipes` | this will strore Ferdi-server's recipes on the docker host for persistence | 150| `-v <path to recipes>:/app/recipes` | this will strore Ferdi-server's recipes on the docker host for persistence |
151 151
152**In eithr case, pleasee be sure to pass the correct variables to the new Ferdi-server container in order maintain access to your existing database.** 152**In eithr case, pleasee be sure to pass the correct variables to the new Ferdi-server container in order maintain access to your existing database.**
153 153
154## NGINX config block 154## NGINX config block
155 155
156To access Ferdi-server from outside of your home network on a subdomain use this server block: 156To access Ferdi-server from outside of your home network on a subdomain use this server block:
@@ -158,19 +158,19 @@ To access Ferdi-server from outside of your home network on a subdomain use this
158``` 158```
159# Ferdi-server 159# Ferdi-server
160server { 160server {
161 listen 443 ssl http2; 161 listen 443 ssl http2;
162 server_name ferdi.my.website; 162 server_name ferdi.my.website;
163 163
164 # all ssl related config moved to ssl.conf 164 # all ssl related config moved to ssl.conf
165 include /config/nginx/ssl.conf; 165 include /config/nginx/ssl.conf;
166 166
167 location / { 167 location / {
168 proxy_pass http://<Ferdi-IP>:3333; 168 proxy_pass http://<Ferdi-IP>:3333;
169 proxy_set_header X-Real-IP $remote_addr; 169 proxy_set_header X-Real-IP $remote_addr;
170 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 170 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
171 proxy_set_header Host $host; 171 proxy_set_header Host $host;
172 proxy_set_header X-Forwarded-Proto $scheme; 172 proxy_set_header X-Forwarded-Proto $scheme;
173 } 173 }
174} 174}
175``` 175```
176 176
@@ -217,15 +217,13 @@ Below are the instructions for updating the container to get the most recent ver
217* Delete the container: `docker rm ferdi-server` 217* Delete the container: `docker rm ferdi-server`
218* Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and ENV settings will be preserved) 218* Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and ENV settings will be preserved)
219* Start the new container: `docker start ferdi-server` 219* Start the new container: `docker start ferdi-server`
220* You can also remove the old dangling images: `docker image prune`
221 220
222### Via Docker Compose 221### Via Docker Compose
223 222
224* Update all images: `docker-compose pull` 223* Update all images: `docker-compose -f docker/docker-compose.yml pull`
225 * or update a single image: `docker-compose pull ferdi-server` 224 * or update a single image: `docker-compose -f docker/docker-compose.yml pull ferdi-server`
226* Let compose update all containers as necessary: `docker-compose up -d` 225* Let compose update all containers as necessary: `docker-compose -f docker/docker-compose.yml up -d`
227 * or update a single container: `docker-compose up -d ferdi-server` 226 * or update a single container: `docker-compose -f docker/docker-compose.yml up -d ferdi-server`
228* You can also remove the old dangling images: `docker image prune`
229 227
230## Building locally 228## Building locally
231 229
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index 2d1fd89..2e58abc 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -1,6 +1,6 @@
1#!/bin/sh 1#!/bin/sh
2 2
3echo << EOL 3cat << EOL
4------------------------------------- 4-------------------------------------
5 ____ ___ 5 ____ ___
6 / __/__ _______/ (_) 6 / __/__ _______/ (_)
@@ -14,24 +14,31 @@ Support our Open Collective at:
14https://opencollective.com/getferdi/ 14https://opencollective.com/getferdi/
15EOL 15EOL
16 16
17key_file="${DATA_DIR}/FERDI_APP_KEY.txt"
18
19print_app_key_message() {
20 app_key=$1
21 printf '**** App key is %s. ' ${app_key}
22 printf 'You can modify `%s` to update the app key ****\n' ${key_file}
23}
24
17# Create APP key if needed 25# Create APP key if needed
18if [[ -f "${DATA_DIR}/FERDI_APP_KEY.txt" ]]; then 26if [ -z ${APP_KEY} ] && [ ! -f ${key_file} ]
19 echo " " 27then
20 echo "**** App Key found ****" 28 echo '**** Generating Ferdi-server app key for first run ****'
21 APP_KEY=$(cat /data/FERDI_APP_KEY.txt) 29 adonis key:generate
22 echo "**** App Key set to $APP_KEY you can modify FERDI_APP_KEY.txt to update your key ****" 30 APP_KEY=$(grep APP_KEY .env | cut -d '=' -f2)
23elif [[ -z "${APP_KEY}" ]]; then 31 echo ${APP_KEY} > ${key_file}
24 echo "**** Generating Ferdi-server app key for first run ****" 32 print_app_key_message ${APP_KEY}
25 adonis key:generate 33else
26 APP_KEY=$(grep APP_KEY .env | cut -d '=' -f2) 34 APP_KEY=$(cat ${key_file})
27 echo "${APP_KEY}" > "${DATA_DIR}/FERDI_APP_KEY.txt" 35 print_app_key_message ${APP_KEY}
28 echo "**** App Key set to $APP_KEY you can modify FERDI_APP_KEY.txt to update your key ****"
29fi 36fi
30 37
31export APP_KEY 38export APP_KEY
32 39
33node ace migration:run --force 40node ace migration:run --force
34 41
35chown -R ${PUID:-1000}:${PGID:-1000} $DATA_DIR /app 42chown -R "${PUID:-1000}":"${PGID:-1000}" "${DATA_DIR}" /app
36 43
37su-exec ${PUID:-1000}:${PGID:-1000} node server.js 44su-exec "${PUID:-1000}":"${PGID:-1000}" node server.js
diff --git a/package-lock.json b/package-lock.json
index 313d615..cdd0e6e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2745,14 +2745,6 @@
2745 "universalify": "^0.1.0" 2745 "universalify": "^0.1.0"
2746 } 2746 }
2747 }, 2747 },
2748 "fs-minipass": {
2749 "version": "1.2.6",
2750 "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
2751 "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==",
2752 "requires": {
2753 "minipass": "^2.2.1"
2754 }
2755 },
2756 "fs.realpath": { 2748 "fs.realpath": {
2757 "version": "1.0.0", 2749 "version": "1.0.0",
2758 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2750 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -3994,23 +3986,6 @@
3994 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3986 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
3995 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 3987 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
3996 }, 3988 },
3997 "minipass": {
3998 "version": "2.3.5",
3999 "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
4000 "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
4001 "requires": {
4002 "safe-buffer": "^5.1.2",
4003 "yallist": "^3.0.0"
4004 }
4005 },
4006 "minizlib": {
4007 "version": "1.2.1",
4008 "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
4009 "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
4010 "requires": {
4011 "minipass": "^2.2.1"
4012 }
4013 },
4014 "mixin-deep": { 3989 "mixin-deep": {
4015 "version": "1.3.2", 3990 "version": "1.3.2",
4016 "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", 3991 "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
@@ -4752,46 +4727,38 @@
4752 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 4727 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
4753 }, 4728 },
4754 "pg": { 4729 "pg": {
4755 "version": "7.18.2", 4730 "version": "8.7.1",
4756 "resolved": "https://registry.npmjs.org/pg/-/pg-7.18.2.tgz", 4731 "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz",
4757 "integrity": "sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA==", 4732 "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==",
4758 "requires": { 4733 "requires": {
4759 "buffer-writer": "2.0.0", 4734 "buffer-writer": "2.0.0",
4760 "packet-reader": "1.0.0", 4735 "packet-reader": "1.0.0",
4761 "pg-connection-string": "0.1.3", 4736 "pg-connection-string": "^2.5.0",
4762 "pg-packet-stream": "^1.1.0", 4737 "pg-pool": "^3.4.1",
4763 "pg-pool": "^2.0.10", 4738 "pg-protocol": "^1.5.0",
4764 "pg-types": "^2.1.0", 4739 "pg-types": "^2.1.0",
4765 "pgpass": "1.x", 4740 "pgpass": "1.x"
4766 "semver": "4.3.2"
4767 },
4768 "dependencies": {
4769 "semver": {
4770 "version": "4.3.2",
4771 "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz",
4772 "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c="
4773 }
4774 } 4741 }
4775 }, 4742 },
4776 "pg-connection-string": { 4743 "pg-connection-string": {
4777 "version": "0.1.3", 4744 "version": "2.5.0",
4778 "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz", 4745 "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
4779 "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=" 4746 "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
4780 }, 4747 },
4781 "pg-int8": { 4748 "pg-int8": {
4782 "version": "1.0.1", 4749 "version": "1.0.1",
4783 "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", 4750 "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
4784 "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" 4751 "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
4785 }, 4752 },
4786 "pg-packet-stream": {
4787 "version": "1.1.0",
4788 "resolved": "https://registry.npmjs.org/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz",
4789 "integrity": "sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg=="
4790 },
4791 "pg-pool": { 4753 "pg-pool": {
4792 "version": "2.0.10", 4754 "version": "3.4.1",
4793 "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.10.tgz", 4755 "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz",
4794 "integrity": "sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==" 4756 "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ=="
4757 },
4758 "pg-protocol": {
4759 "version": "1.5.0",
4760 "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
4761 "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="
4795 }, 4762 },
4796 "pg-types": { 4763 "pg-types": {
4797 "version": "2.2.0", 4764 "version": "2.2.0",
@@ -4806,11 +4773,11 @@
4806 } 4773 }
4807 }, 4774 },
4808 "pgpass": { 4775 "pgpass": {
4809 "version": "1.0.2", 4776 "version": "1.0.4",
4810 "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz", 4777 "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
4811 "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=", 4778 "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
4812 "requires": { 4779 "requires": {
4813 "split": "^1.0.0" 4780 "split2": "^3.1.1"
4814 } 4781 }
4815 }, 4782 },
4816 "pify": { 4783 "pify": {
@@ -4867,9 +4834,9 @@
4867 "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" 4834 "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
4868 }, 4835 },
4869 "postgres-date": { 4836 "postgres-date": {
4870 "version": "1.0.4", 4837 "version": "1.0.7",
4871 "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.4.tgz", 4838 "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
4872 "integrity": "sha512-bESRvKVuTrjoBluEcpv2346+6kgB7UlnqWZsnbnCccTNq/pqfj1j6oBaN5+b/NrDXepYUT/HKadqv3iS9lJuVA==" 4839 "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="
4873 }, 4840 },
4874 "postgres-interval": { 4841 "postgres-interval": {
4875 "version": "1.2.0", 4842 "version": "1.2.0",
@@ -6041,14 +6008,6 @@
6041 "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", 6008 "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==",
6042 "dev": true 6009 "dev": true
6043 }, 6010 },
6044 "split": {
6045 "version": "1.0.1",
6046 "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
6047 "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
6048 "requires": {
6049 "through": "2"
6050 }
6051 },
6052 "split-string": { 6011 "split-string": {
6053 "version": "3.1.0", 6012 "version": "3.1.0",
6054 "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 6013 "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -6076,6 +6035,26 @@
6076 } 6035 }
6077 } 6036 }
6078 }, 6037 },
6038 "split2": {
6039 "version": "3.2.2",
6040 "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
6041 "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
6042 "requires": {
6043 "readable-stream": "^3.0.0"
6044 },
6045 "dependencies": {
6046 "readable-stream": {
6047 "version": "3.6.0",
6048 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
6049 "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
6050 "requires": {
6051 "inherits": "^2.0.3",
6052 "string_decoder": "^1.1.1",
6053 "util-deprecate": "^1.0.1"
6054 }
6055 }
6056 }
6057 },
6079 "sprintf-js": { 6058 "sprintf-js": {
6080 "version": "1.0.3", 6059 "version": "1.0.3",
6081 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 6060 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -6381,19 +6360,37 @@
6381 } 6360 }
6382 }, 6361 },
6383 "tar": { 6362 "tar": {
6384 "version": "4.4.15", 6363 "version": "4.4.19",
6385 "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.15.tgz", 6364 "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
6386 "integrity": "sha512-ItbufpujXkry7bHH9NpQyTXPbJ72iTlXgkBAYsAjDXk3Ds8t/3NfO5P4xZGy7u+sYuQUbimgzswX4uQIEeNVOA==", 6365 "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
6387 "requires": { 6366 "requires": {
6388 "chownr": "^1.1.1", 6367 "chownr": "^1.1.4",
6389 "fs-minipass": "^1.2.5", 6368 "fs-minipass": "^1.2.7",
6390 "minipass": "^2.8.6", 6369 "minipass": "^2.9.0",
6391 "minizlib": "^1.2.1", 6370 "minizlib": "^1.3.3",
6392 "mkdirp": "^0.5.0", 6371 "mkdirp": "^0.5.5",
6393 "safe-buffer": "^5.1.2", 6372 "safe-buffer": "^5.2.1",
6394 "yallist": "^3.0.3" 6373 "yallist": "^3.1.1"
6395 }, 6374 },
6396 "dependencies": { 6375 "dependencies": {
6376 "chownr": {
6377 "version": "1.1.4",
6378 "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
6379 "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
6380 },
6381 "fs-minipass": {
6382 "version": "1.2.7",
6383 "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
6384 "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
6385 "requires": {
6386 "minipass": "^2.6.0"
6387 }
6388 },
6389 "minimist": {
6390 "version": "1.2.5",
6391 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
6392 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
6393 },
6397 "minipass": { 6394 "minipass": {
6398 "version": "2.9.0", 6395 "version": "2.9.0",
6399 "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", 6396 "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
@@ -6402,6 +6399,32 @@
6402 "safe-buffer": "^5.1.2", 6399 "safe-buffer": "^5.1.2",
6403 "yallist": "^3.0.0" 6400 "yallist": "^3.0.0"
6404 } 6401 }
6402 },
6403 "minizlib": {
6404 "version": "1.3.3",
6405 "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
6406 "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
6407 "requires": {
6408 "minipass": "^2.9.0"
6409 }
6410 },
6411 "mkdirp": {
6412 "version": "0.5.5",
6413 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
6414 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
6415 "requires": {
6416 "minimist": "^1.2.5"
6417 }
6418 },
6419 "safe-buffer": {
6420 "version": "5.2.1",
6421 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
6422 "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
6423 },
6424 "yallist": {
6425 "version": "3.1.1",
6426 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
6427 "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
6405 } 6428 }
6406 } 6429 }
6407 }, 6430 },
@@ -6475,11 +6498,6 @@
6475 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 6498 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
6476 "dev": true 6499 "dev": true
6477 }, 6500 },
6478 "through": {
6479 "version": "2.3.8",
6480 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
6481 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
6482 },
6483 "tildify": { 6501 "tildify": {
6484 "version": "1.2.0", 6502 "version": "1.2.0",
6485 "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", 6503 "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
@@ -6962,11 +6980,6 @@
6962 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 6980 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
6963 "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" 6981 "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
6964 }, 6982 },
6965 "yallist": {
6966 "version": "3.0.3",
6967 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
6968 "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
6969 },
6970 "youch": { 6983 "youch": {
6971 "version": "2.0.10", 6984 "version": "2.0.10",
6972 "resolved": "https://registry.npmjs.org/youch/-/youch-2.0.10.tgz", 6985 "resolved": "https://registry.npmjs.org/youch/-/youch-2.0.10.tgz",
@@ -6986,4 +6999,4 @@
6986 } 6999 }
6987 } 7000 }
6988 } 7001 }
6989} 7002} \ No newline at end of file
diff --git a/package.json b/package.json
index eb5c3a2..cfb563f 100644
--- a/package.json
+++ b/package.json
@@ -43,7 +43,7 @@
43 "fs-extra": "^8.1.0", 43 "fs-extra": "^8.1.0",
44 "mysql": "2.18.1", 44 "mysql": "2.18.1",
45 "node-fetch": "^2.6.1", 45 "node-fetch": "^2.6.1",
46 "pg": "^7.18.2", 46 "pg": "^8.0.3",
47 "sqlite3": "^4.1.0", 47 "sqlite3": "^4.1.0",
48 "targz": "^1.0.1", 48 "targz": "^1.0.1",
49 "uuid": "^8.3.2" 49 "uuid": "^8.3.2"