diff options
author | thursday <xthursdayx@mailbox.org> | 2021-11-16 03:11:29 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-16 03:11:29 -0500 |
commit | 7962660cc2c07e6c3bfa74faf7d8ba429546ea73 (patch) | |
tree | ff385e1590b875bf4799f275b393bc9053d94e02 | |
parent | Update entrypoint.sh (diff) | |
parent | Merge branch 'master' into master (diff) | |
download | ferdium-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-- | .dockerignore | 4 | ||||
-rwxr-xr-x | .husky/pre-commit | 9 | ||||
-rw-r--r-- | CONTRIBUTING.md | 23 | ||||
-rw-r--r-- | Dockerfile | 6 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | docker/.gitignore | 1 | ||||
-rw-r--r-- | docker/README.md | 50 | ||||
-rwxr-xr-x | docker/entrypoint.sh | 35 | ||||
-rw-r--r-- | package-lock.json | 189 | ||||
-rw-r--r-- | package.json | 2 |
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 |
17 | node_modules | 17 | node_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 | ||
4 | npm run lint | 3 | FILE_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) | ||
6 | if [ -f $FILE_NAME ]; then | ||
7 | . $FILE_NAME | ||
8 | npm run lint | ||
9 | fi | ||
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 | |||
87 | git submodule update --init --recursive | 88 | git submodule update --init --recursive |
88 | ``` | 89 | ``` |
89 | 90 | ||
90 | It is important you execute the last command to get the required submodules (recipes, server). | 91 | It 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 | 121 | node 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 | |||
127 | Ferdi 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 | ||
130 | cd 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 | 129 | npm start --dev |
137 | ``` | 130 | ``` |
138 | 131 | ||
139 | ### Styleguide | 132 | ### Styleguide |
140 | 133 | ||
@@ -1,4 +1,4 @@ | |||
1 | FROM node:lts-alpine as build | 1 | FROM node:14.17-alpine as build |
2 | 2 | ||
3 | WORKDIR /server-build | 3 | WORKDIR /server-build |
4 | 4 | ||
@@ -8,12 +8,12 @@ COPY . /server-build | |||
8 | 8 | ||
9 | RUN ["npm", "ci", "--production", "--build-from-source", "--sqlite=/usr/local"] | 9 | RUN ["npm", "ci", "--production", "--build-from-source", "--sqlite=/usr/local"] |
10 | 10 | ||
11 | FROM node:lts-alpine | 11 | FROM node:14.17-alpine |
12 | 12 | ||
13 | WORKDIR /app | 13 | WORKDIR /app |
14 | LABEL maintainer="xthursdayx" | 14 | LABEL maintainer="xthursdayx" |
15 | 15 | ||
16 | ENV HOST=0.0.0.0 PORT=3333 DATA_DIR="/data" | 16 | ENV HOST=0.0.0.0 PORT=3333 DATA_DIR="/data" |
17 | 17 | ||
18 | RUN ["apk", "add", "--no-cache", "sqlite-libs", "curl", "su-exec"] | 18 | RUN ["apk", "add", "--no-cache", "sqlite-libs", "curl", "su-exec"] |
19 | 19 | ||
@@ -6,7 +6,7 @@ | |||
6 | Official Server software for the [Ferdi Messaging Browser](https://getferdi.com) | 6 | Official 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 | ||
92 | 1. Clone this repository | 92 | 1. Clone repository with submodule |
93 | 2. Install the [AdonisJS CLI](https://adonisjs.com/) | 93 | 2. Install the [AdonisJS CLI](https://adonisjs.com/) |
94 | 3. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs | 94 | 3. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs |
95 | 4. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc | 95 | 4. 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 | ||
4 | This is a dockerized version of [Ferdi-server](https://github.com/getferdi/server) running on Alpine Linux and Node.js (v10.16.3). | 4 | This 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`. |
69 | The server will be launched at [http://localhost:3333/](http://localhost:3333/) address. | 69 | The server will be launched at [http://localhost:3333/](http://localhost:3333/) address. |
70 | 70 | ||
71 | ## Configuration | 71 | ## Configuration |
72 | 72 | ||
73 | Container 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. | 73 | Container 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 | ||
111 | To use a different database than the default, SQLite3, enter the driver code below in your ENV configuration. | 111 | To 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 | ||
156 | To access Ferdi-server from outside of your home network on a subdomain use this server block: | 156 | To 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 |
160 | server { | 160 | server { |
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 | ||
3 | echo << EOL | 3 | cat << EOL |
4 | ------------------------------------- | 4 | ------------------------------------- |
5 | ____ ___ | 5 | ____ ___ |
6 | / __/__ _______/ (_) | 6 | / __/__ _______/ (_) |
@@ -14,24 +14,31 @@ Support our Open Collective at: | |||
14 | https://opencollective.com/getferdi/ | 14 | https://opencollective.com/getferdi/ |
15 | EOL | 15 | EOL |
16 | 16 | ||
17 | key_file="${DATA_DIR}/FERDI_APP_KEY.txt" | ||
18 | |||
19 | print_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 |
18 | if [[ -f "${DATA_DIR}/FERDI_APP_KEY.txt" ]]; then | 26 | if [ -z ${APP_KEY} ] && [ ! -f ${key_file} ] |
19 | echo " " | 27 | then |
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) |
23 | elif [[ -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 | 33 | else |
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 ****" | ||
29 | fi | 36 | fi |
30 | 37 | ||
31 | export APP_KEY | 38 | export APP_KEY |
32 | 39 | ||
33 | node ace migration:run --force | 40 | node ace migration:run --force |
34 | 41 | ||
35 | chown -R ${PUID:-1000}:${PGID:-1000} $DATA_DIR /app | 42 | chown -R "${PUID:-1000}":"${PGID:-1000}" "${DATA_DIR}" /app |
36 | 43 | ||
37 | su-exec ${PUID:-1000}:${PGID:-1000} node server.js | 44 | su-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" |