diff --git a/.version b/.version
index dd9ac7fe..d9d36012 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-2.9.11
+2.9.12
diff --git a/README.md b/README.md
index a86d5189..f8c07241 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
+
@@ -74,28 +74,12 @@ services:
- '80:80'
- '81:81'
- '443:443'
- environment:
- DB_MYSQL_HOST: "db"
- DB_MYSQL_PORT: 3306
- DB_MYSQL_USER: "npm"
- DB_MYSQL_PASSWORD: "npm"
- DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- db:
- image: 'jc21/mariadb-aria:latest'
- restart: unless-stopped
- environment:
- MYSQL_ROOT_PASSWORD: 'npm'
- MYSQL_DATABASE: 'npm'
- MYSQL_USER: 'npm'
- MYSQL_PASSWORD: 'npm'
- volumes:
- - ./data/mysql:/var/lib/mysql
```
-3. Bring up your stack
+3. Bring up your stack by running
```bash
docker-compose up -d
diff --git a/backend/app.js b/backend/app.js
index 8f4890c3..ca6d6fba 100644
--- a/backend/app.js
+++ b/backend/app.js
@@ -40,13 +40,12 @@ app.use(function (req, res, next) {
}
res.set({
- 'Strict-Transport-Security': 'includeSubDomains; max-age=631138519; preload',
- 'X-XSS-Protection': '1; mode=block',
- 'X-Content-Type-Options': 'nosniff',
- 'X-Frame-Options': x_frame_options,
- 'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
- Pragma: 'no-cache',
- Expires: 0
+ 'X-XSS-Protection': '1; mode=block',
+ 'X-Content-Type-Options': 'nosniff',
+ 'X-Frame-Options': x_frame_options,
+ 'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
+ Pragma: 'no-cache',
+ Expires: 0
});
next();
});
diff --git a/backend/index.js b/backend/index.js
index f4f79518..8d42d096 100644
--- a/backend/index.js
+++ b/backend/index.js
@@ -44,84 +44,85 @@ async function appStart () {
async function createDbConfigFromEnvironment() {
return new Promise((resolve, reject) => {
- const envMysqlHost = process.env.DB_MYSQL_HOST || null;
- const envMysqlPort = process.env.DB_MYSQL_PORT || null;
- const envMysqlUser = process.env.DB_MYSQL_USER || null;
- const envMysqlName = process.env.DB_MYSQL_NAME || null;
- const envSqliteFile = process.env.DB_SQLITE_FILE || null;
+ const envMysqlHost = process.env.DB_MYSQL_HOST || null;
+ const envMysqlPort = process.env.DB_MYSQL_PORT || null;
+ const envMysqlUser = process.env.DB_MYSQL_USER || null;
+ const envMysqlName = process.env.DB_MYSQL_NAME || null;
+ let envSqliteFile = process.env.DB_SQLITE_FILE || null;
- if ((envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) || envSqliteFile) {
- const fs = require('fs');
- const filename = (process.env.NODE_CONFIG_DIR || './config') + '/' + (process.env.NODE_ENV || 'default') + '.json';
- let configData = {};
+ const fs = require('fs');
+ const filename = (process.env.NODE_CONFIG_DIR || './config') + '/' + (process.env.NODE_ENV || 'default') + '.json';
+ let configData = {};
- try {
- configData = require(filename);
- } catch (err) {
- // do nothing
- }
+ try {
+ configData = require(filename);
+ } catch (err) {
+ // do nothing
+ }
- if (configData.database && configData.database.engine && !configData.database.fromEnv) {
- logger.info('Manual db configuration already exists, skipping config creation from environment variables');
+ if (configData.database && configData.database.engine && !configData.database.fromEnv) {
+ logger.info('Manual db configuration already exists, skipping config creation from environment variables');
+ resolve();
+ return;
+ }
+
+ if ((!envMysqlHost || !envMysqlPort || !envMysqlUser || !envMysqlName) && !envSqliteFile){
+ envSqliteFile = '/data/database.sqlite';
+ logger.info(`No valid environment variables for database provided, using default SQLite file '${envSqliteFile}'`);
+ }
+
+ if (envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) {
+ const newConfig = {
+ fromEnv: true,
+ engine: 'mysql',
+ host: envMysqlHost,
+ port: envMysqlPort,
+ user: envMysqlUser,
+ password: process.env.DB_MYSQL_PASSWORD,
+ name: envMysqlName,
+ };
+
+ if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
+ // Config is unchanged, skip overwrite
resolve();
return;
}
- if (envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) {
- const newConfig = {
- fromEnv: true,
- engine: 'mysql',
- host: envMysqlHost,
- port: envMysqlPort,
- user: envMysqlUser,
- password: process.env.DB_MYSQL_PASSWORD,
- name: envMysqlName,
- };
+ logger.info('Generating MySQL knex configuration from environment variables');
+ configData.database = newConfig;
- if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
- // Config is unchanged, skip overwrite
- resolve();
- return;
+ } else {
+ const newConfig = {
+ fromEnv: true,
+ engine: 'knex-native',
+ knex: {
+ client: 'sqlite3',
+ connection: {
+ filename: envSqliteFile
+ },
+ useNullAsDefault: true
}
-
- logger.info('Generating MySQL db configuration from environment variables');
- configData.database = newConfig;
-
- } else {
- const newConfig = {
- fromEnv: true,
- engine: 'knex-native',
- knex: {
- client: 'sqlite3',
- connection: {
- filename: envSqliteFile
- },
- useNullAsDefault: true
- }
- };
- if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
- // Config is unchanged, skip overwrite
- resolve();
- return;
- }
-
- logger.info('Generating Sqlite db configuration from environment variables');
- configData.database = newConfig;
+ };
+ if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
+ // Config is unchanged, skip overwrite
+ resolve();
+ return;
}
- // Write config
- fs.writeFile(filename, JSON.stringify(configData, null, 2), (err) => {
- if (err) {
- logger.error('Could not write db config to config file: ' + filename);
- reject(err);
- } else {
- logger.info('Wrote db configuration to config file: ' + filename);
- resolve();
- }
- });
- } else {
- resolve();
+ logger.info('Generating SQLite knex configuration');
+ configData.database = newConfig;
}
+
+ // Write config
+ fs.writeFile(filename, JSON.stringify(configData, null, 2), (err) => {
+ if (err) {
+ logger.error('Could not write db config to config file: ' + filename);
+ reject(err);
+ } else {
+ logger.debug('Wrote db configuration to config file: ' + filename);
+ resolve();
+ }
+ });
});
}
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index 401c5604..b631dc71 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -832,7 +832,7 @@ const internalCertificate = {
requestLetsEncryptSsl: (certificate) => {
logger.info('Requesting Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
- const cmd = certbotCommand + ' certonly --non-interactive ' +
+ const cmd = certbotCommand + ' certonly ' +
'--config "' + letsencryptConfig + '" ' +
'--cert-name "npm-' + certificate.id + '" ' +
'--agree-tos ' +
@@ -874,7 +874,8 @@ const internalCertificate = {
// Whether the plugin has a ---credentials argument
const hasConfigArg = certificate.meta.dns_provider !== 'route53';
- let mainCmd = certbotCommand + ' certonly --non-interactive ' +
+ let mainCmd = certbotCommand + ' certonly ' +
+ '--config "' + letsencryptConfig + '" ' +
'--cert-name "npm-' + certificate.id + '" ' +
'--agree-tos ' +
'--email "' + certificate.meta.letsencrypt_email + '" ' +
@@ -969,10 +970,11 @@ const internalCertificate = {
renewLetsEncryptSsl: (certificate) => {
logger.info('Renewing Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
- const cmd = certbotCommand + ' renew --force-renewal --non-interactive ' +
+ const cmd = certbotCommand + ' renew --force-renewal ' +
'--config "' + letsencryptConfig + '" ' +
'--cert-name "npm-' + certificate.id + '" ' +
'--preferred-challenges "dns,http" ' +
+ '--no-random-sleep-on-renew ' +
'--disable-hook-validation ' +
(letsencryptStaging ? '--staging' : '');
@@ -998,9 +1000,11 @@ const internalCertificate = {
logger.info(`Renewing Let'sEncrypt certificates via ${dns_plugin.display_name} for Cert #${certificate.id}: ${certificate.domain_names.join(', ')}`);
- let mainCmd = certbotCommand + ' renew --non-interactive ' +
+ let mainCmd = certbotCommand + ' renew ' +
+ '--config "' + letsencryptConfig + '" ' +
'--cert-name "npm-' + certificate.id + '" ' +
- '--disable-hook-validation' +
+ '--disable-hook-validation ' +
+ '--no-random-sleep-on-renew ' +
(letsencryptStaging ? ' --staging' : '');
// Prepend the path to the credentials file as an environment variable
@@ -1026,7 +1030,8 @@ const internalCertificate = {
revokeLetsEncryptSsl: (certificate, throw_errors) => {
logger.info('Revoking Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
- const mainCmd = certbotCommand + ' revoke --non-interactive ' +
+ const mainCmd = certbotCommand + ' revoke ' +
+ '--config "' + letsencryptConfig + '" ' +
'--cert-path "/etc/letsencrypt/live/npm-' + certificate.id + '/fullchain.pem" ' +
'--delete-after-revoke ' +
(letsencryptStaging ? '--staging' : '');
diff --git a/backend/package.json b/backend/package.json
index d15c1c4f..28b6f178 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -11,11 +11,9 @@
"body-parser": "^1.19.0",
"compression": "^1.7.4",
"config": "^3.3.1",
- "diskdb": "^0.1.17",
"express": "^4.17.1",
"express-fileupload": "^1.1.9",
"gravatar": "^1.8.0",
- "html-entities": "^1.2.1",
"json-schema-ref-parser": "^8.0.0",
"jsonwebtoken": "^8.5.1",
"knex": "^0.20.13",
@@ -27,12 +25,9 @@
"nodemon": "^2.0.2",
"objection": "^2.2.16",
"path": "^0.12.7",
- "pg": "^7.12.1",
- "restler": "^3.4.0",
"signale": "^1.4.0",
"sqlite3": "^4.1.1",
- "temp-write": "^4.0.0",
- "unix-timestamp": "^0.2.0"
+ "temp-write": "^4.0.0"
},
"signale": {
"displayDate": true,
diff --git a/backend/templates/_location.conf b/backend/templates/_location.conf
index 2b857933..f286fda7 100644
--- a/backend/templates/_location.conf
+++ b/backend/templates/_location.conf
@@ -1,11 +1,16 @@
location {{ path }} {
- set $upstream {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }}$request_uri;
+ set $targetUri {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }};
+ {% unless path contains "~" and path contains "(" and path contains ")" %}
+ if ($request_uri != /){
+ set $targetUri $targetUri$request_uri;
+ }
+ {% endunless %}
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
- proxy_pass $upstream;
+ proxy_pass $targetUri;
{% if access_list_id > 0 %}
{% if access_list.items.length > 0 %}
diff --git a/backend/yarn.lock b/backend/yarn.lock
index 8442c626..96883182 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -136,11 +136,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
-ansi-styles@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
- integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=
-
anymatch@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
@@ -391,11 +386,6 @@ buffer-equal-constant-time@1.0.1:
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
-buffer-writer@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
- integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
-
buffer@^5.5.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
@@ -464,15 +454,6 @@ camelcase@^5.0.0, camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-chalk@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
- integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=
- dependencies:
- ansi-styles "~1.0.0"
- has-color "~0.1.0"
- strip-ansi "~0.1.0"
-
chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
@@ -858,15 +839,6 @@ dicer@0.3.0:
dependencies:
streamsearch "0.1.2"
-diskdb@^0.1.17:
- version "0.1.17"
- resolved "https://registry.yarnpkg.com/diskdb/-/diskdb-0.1.17.tgz#8abd095196b33b406791f1494b6b13b4422240c4"
- integrity sha1-ir0JUZazO0BnkfFJS2sTtEIiQMQ=
- dependencies:
- chalk "^0.4.0"
- merge "^1.1.3"
- node-uuid "^1.4.1"
-
doctrine@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
@@ -1501,11 +1473,6 @@ gravatar@^1.8.0:
querystring "0.2.0"
yargs "^15.4.1"
-has-color@~0.1.0:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
- integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=
-
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -1564,11 +1531,6 @@ homedir-polyfill@^1.0.1:
dependencies:
parse-passwd "^1.0.0"
-html-entities@^1.2.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
- integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==
-
http-cache-semantics@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
@@ -1596,11 +1558,6 @@ http-errors@~1.7.2:
statuses ">= 1.5.0 < 2"
toidentifier "1.0.0"
-iconv-lite@0.2.11:
- version "0.2.11"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
- integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg=
-
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -2221,11 +2178,6 @@ merge-descriptors@1.0.1:
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
-merge@^1.1.3:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
- integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
-
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
@@ -2444,11 +2396,6 @@ node-rsa@^1.0.8:
dependencies:
asn1 "^0.2.4"
-node-uuid@^1.4.1:
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
- integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=
-
nodemon@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416"
@@ -2689,11 +2636,6 @@ package-json@^6.3.0:
registry-url "^5.0.0"
semver "^6.2.0"
-packet-reader@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
- integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
-
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -2783,63 +2725,11 @@ path@^0.12.7:
process "^0.11.1"
util "^0.10.3"
-pg-connection-string@0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7"
- integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=
-
pg-connection-string@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.1.0.tgz#e07258f280476540b24818ebb5dca29e101ca502"
integrity sha512-bhlV7Eq09JrRIvo1eKngpwuqKtJnNhZdpdOlvrPrA4dxqXPjxSrbNrfnIDmTpwMyRszrcV4kU5ZA4mMsQUrjdg==
-pg-int8@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
- integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
-
-pg-packet-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914"
- integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg==
-
-pg-pool@^2.0.10:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a"
- integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==
-
-pg-types@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
- integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
- dependencies:
- pg-int8 "1.0.1"
- postgres-array "~2.0.0"
- postgres-bytea "~1.0.0"
- postgres-date "~1.0.4"
- postgres-interval "^1.1.0"
-
-pg@^7.12.1:
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.2.tgz#4e219f05a00aff4db6aab1ba02f28ffa4513b0bb"
- integrity sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA==
- dependencies:
- buffer-writer "2.0.0"
- packet-reader "1.0.0"
- pg-connection-string "0.1.3"
- pg-packet-stream "^1.1.0"
- pg-pool "^2.0.10"
- pg-types "^2.1.0"
- pgpass "1.x"
- semver "4.3.2"
-
-pgpass@1.x:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306"
- integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=
- dependencies:
- split "^1.0.0"
-
picomatch@^2.0.4, picomatch@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
@@ -2863,28 +2753,6 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-postgres-array@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
- integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
-
-postgres-bytea@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
- integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
-
-postgres-date@~1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.6.tgz#4925e8085b30c2ba1a06ac91b9a3473954a2ce2d"
- integrity sha512-o2a4gxeFcox+CgB3Ig/kNHBP23PiEXHCXx7pcIIsvzoNz4qv+lKTyiSkjOXIMNUl12MO/mOYl2K6wR9X5K6Plg==
-
-postgres-interval@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
- integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
- dependencies:
- xtend "^4.0.0"
-
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -2953,11 +2821,6 @@ pupa@^2.0.1:
dependencies:
escape-goat "^2.0.0"
-qs@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.0.tgz#ed079be28682147e6fd9a34cc2b0c1e0ec6453ee"
- integrity sha1-7Qeb4oaCFH5v2aNMwrDB4OxkU+4=
-
qs@6.7.0:
version "6.7.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
@@ -3115,16 +2978,6 @@ responselike@^1.0.2:
dependencies:
lowercase-keys "^1.0.0"
-restler@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/restler/-/restler-3.4.0.tgz#741ec0b3d16b949feea2813d0c3c68529e888d9b"
- integrity sha1-dB7As9FrlJ/uooE9DDxoUp6IjZs=
- dependencies:
- iconv-lite "0.2.11"
- qs "1.2.0"
- xml2js "0.4.0"
- yaml "0.2.3"
-
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -3186,11 +3039,6 @@ safe-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-sax@0.5.x:
- version "0.5.8"
- resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
- integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=
-
sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -3203,11 +3051,6 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
-semver@4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
- integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
-
semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@@ -3360,13 +3203,6 @@ split-string@^3.0.1, split-string@^3.0.2:
dependencies:
extend-shallow "^3.0.0"
-split@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
- integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
- dependencies:
- through "2"
-
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -3480,11 +3316,6 @@ strip-ansi@^6.0.0:
dependencies:
ansi-regex "^5.0.0"
-strip-ansi@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
- integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=
-
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -3579,7 +3410,7 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-through@2, through@^2.3.6:
+through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
@@ -3711,11 +3542,6 @@ unique-string@^2.0.0:
dependencies:
crypto-random-string "^2.0.0"
-unix-timestamp@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/unix-timestamp/-/unix-timestamp-0.2.0.tgz#e1cdc2808df6327d27e635d9351e72815288733e"
- integrity sha1-4c3CgI32Mn0n5jXZNR5ygVKIcz4=
-
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -3883,24 +3709,6 @@ xdg-basedir@^4.0.0:
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
-xml2js@0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.0.tgz#124fc4114b4129c810800ecb2ac86cf25462cb9a"
- integrity sha1-Ek/EEUtBKcgQgA7LKshs8lRiy5o=
- dependencies:
- sax "0.5.x"
- xmlbuilder ">=0.4.2"
-
-xmlbuilder@>=0.4.2:
- version "15.1.1"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
- integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
-
-xtend@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
y18n@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
@@ -3911,11 +3719,6 @@ yallist@^3.0.0, yallist@^3.1.1:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-yaml@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-0.2.3.tgz#b5450e92e76ef36b5dd24e3660091ebaeef3e5c7"
- integrity sha1-tUUOkudu82td0k42YAkeuu7z5cc=
-
yargs-parser@^18.1.2:
version "18.1.3"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml
index 99f262f1..79fbd799 100644
--- a/docker/docker-compose.dev.yml
+++ b/docker/docker-compose.dev.yml
@@ -37,6 +37,8 @@ services:
db:
image: jc21/mariadb-aria
container_name: npm_db
+ ports:
+ - 33306:3306
networks:
- nginx_proxy_manager
environment:
@@ -47,19 +49,6 @@ services:
volumes:
- db_data:/var/lib/mysql
- swagger:
- image: "swaggerapi/swagger-ui:latest"
- container_name: npm_swagger
- ports:
- - 3001:80
- networks:
- - nginx_proxy_manager
- environment:
- URL: "http://127.0.0.1:3081/api/schema"
- PORT: "80"
- depends_on:
- - npm
-
volumes:
npm_data:
name: npm_core_data
diff --git a/docker/rootfs/etc/nginx/conf.d/include/proxy.conf b/docker/rootfs/etc/nginx/conf.d/include/proxy.conf
index 1fda72b9..ac5b306a 100644
--- a/docker/rootfs/etc/nginx/conf.d/include/proxy.conf
+++ b/docker/rootfs/etc/nginx/conf.d/include/proxy.conf
@@ -1,9 +1,9 @@
-set $upstream $forward_scheme://$server:$port$request_uri;
+set $targetUri $forward_scheme://$server:$port$request_uri;
add_header X-Served-By $host;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
-proxy_pass $upstream;
+proxy_pass $targetUri;
diff --git a/docs/setup/README.md b/docs/setup/README.md
index 99fbd7bb..8fdad3b1 100644
--- a/docs/setup/README.md
+++ b/docs/setup/README.md
@@ -1,6 +1,44 @@
# Full Setup Instructions
-## MySQL Database
+## Running the App
+
+Create a `docker-compose.yml` file:
+
+```yml
+version: "3"
+services:
+ app:
+ image: 'jc21/nginx-proxy-manager:latest'
+ restart: unless-stopped
+ ports:
+ # These ports are in format :
+ - '80:80' # Public HTTP Port
+ - '443:443' # Public HTTPS Port
+ - '81:81' # Admin Web Port
+ # Add any other Stream port you want to expose
+ # - '21:21' # FTP
+
+ # Uncomment the next line if you uncomment anything in the section
+ # environment:
+ # Uncomment this if you want to change the location of
+ # the SQLite DB file within the container
+ # DB_SQLITE_FILE: "/data/database.sqlite"
+
+ # Uncomment this if IPv6 is not enabled on your host
+ # DISABLE_IPV6: 'true'
+
+ volumes:
+ - ./data:/data
+ - ./letsencrypt:/etc/letsencrypt
+```
+
+Then:
+
+```bash
+docker-compose up -d
+```
+
+## Using MySQL / MariaDB Database
If you opt for the MySQL configuration you will have to provide the database server yourself. You can also use MariaDB. Here are the minimum supported versions:
@@ -10,15 +48,7 @@ If you opt for the MySQL configuration you will have to provide the database ser
It's easy to use another docker container for your database also and link it as part of the docker stack, so that's what the following examples
are going to use.
-::: warning
-
-When using a `mariadb` database, the NPM configuration file should still use the `mysql` engine!
-
-:::
-
-## Running the App
-
-Via `docker-compose`:
+Here is an example of what your `docker-compose.yml` will look like when using a MariaDB container:
```yml
version: "3"
@@ -27,24 +57,18 @@ services:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- # Public HTTP Port:
- - '80:80'
- # Public HTTPS Port:
- - '443:443'
- # Admin Web Port:
- - '81:81'
+ # These ports are in format :
+ - '80:80' # Public HTTP Port
+ - '443:443' # Public HTTPS Port
+ - '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
- # These are the settings to access your db
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
- # If you would rather use Sqlite uncomment this
- # and remove all DB_MYSQL_* lines above
- # DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
@@ -52,6 +76,7 @@ services:
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
+
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
@@ -64,13 +89,11 @@ services:
- ./data/mysql:/var/lib/mysql
```
-_Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` variables. So if you keep the MySQL variables, you will not be able to use Sqlite._
+::: warning
-Then:
+Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` variables. So if you keep the MySQL variables, you will not be able to use SQLite.
-```bash
-docker-compose up -d
-```
+:::
## Running on Raspberry PI / ARM devices
@@ -89,57 +112,7 @@ for a list of supported architectures and if you want one that doesn't exist,
Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/)
on Raspbian.
-Via `docker-compose`:
-
-```yml
-version: "3"
-services:
- app:
- image: 'jc21/nginx-proxy-manager:latest'
- restart: unless-stopped
- ports:
- # Public HTTP Port:
- - '80:80'
- # Public HTTPS Port:
- - '443:443'
- # Admin Web Port:
- - '81:81'
- environment:
- # These are the settings to access your db
- DB_MYSQL_HOST: "db"
- DB_MYSQL_PORT: 3306
- DB_MYSQL_USER: "changeuser"
- DB_MYSQL_PASSWORD: "changepass"
- DB_MYSQL_NAME: "npm"
- # If you would rather use Sqlite uncomment this
- # and remove all DB_MYSQL_* lines above
- # DB_SQLITE_FILE: "/data/database.sqlite"
- # Uncomment this if IPv6 is not enabled on your host
- # DISABLE_IPV6: 'true'
- volumes:
- - ./data/nginx-proxy-manager:/data
- - ./letsencrypt:/etc/letsencrypt
- depends_on:
- - db
- db:
- image: yobasystems/alpine-mariadb:latest
- restart: unless-stopped
- environment:
- MYSQL_ROOT_PASSWORD: "changeme"
- MYSQL_DATABASE: "npm"
- MYSQL_USER: "changeuser"
- MYSQL_PASSWORD: "changepass"
- volumes:
- - ./data/mariadb:/var/lib/mysql
-```
-
-_Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` var>
-
-Then:
-
-```bash
-docker-compose up -d
-```
+Please note that the `jc21/mariadb-aria:latest` image might have some problems on some ARM devices, if you want a separate database container, use the `yobasystems/alpine-mariadb:latest` image.
## Initial Run
diff --git a/frontend/js/app/nginx/proxy/form.ejs b/frontend/js/app/nginx/proxy/form.ejs
index 1a498301..56868f55 100644
--- a/frontend/js/app/nginx/proxy/form.ejs
+++ b/frontend/js/app/nginx/proxy/form.ejs
@@ -257,16 +257,17 @@
-
Nginx variables available to you are:
+
<%- i18n('all-hosts', 'advanced-config-var-headline') %>
- - $server # Host/IP
- - $port # Port Number
- - $forward_scheme # http or https
+ $server
<%- i18n('proxy-hosts', 'forward-host') %>
+ $port
<%- i18n('proxy-hosts', 'forward-port') %>
+ $forward_scheme
<%- i18n('proxy-hosts', 'forward-scheme') %>
+
<%- i18n('all-hosts', 'advanced-config-header-info') %>
diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json
index 1e00ef7c..a6f9d8f9 100644
--- a/frontend/js/i18n/messages.json
+++ b/frontend/js/i18n/messages.json
@@ -84,6 +84,8 @@
"advanced": "Advanced",
"advanced-warning": "Enter your custom Nginx configuration here at your own risk!",
"advanced-config": "Custom Nginx Configuration",
+ "advanced-config-var-headline": "These proxy details are available as nginx variables:",
+ "advanced-config-header-info": "Please note, that any add_header or set_header directives added here will not be used by nginx. You will have to add a custom location '/' and add the header in the custom config there.",
"hsts-enabled": "HSTS Enabled",
"hsts-subdomains": "HSTS Subdomains",
"locations": "Custom locations"
@@ -141,7 +143,7 @@
"forward-http-status-code": "HTTP Code",
"forward-domain": "Forward Domain",
"preserve-path": "Preserve Path",
- "delete": "Delete Proxy Host",
+ "delete": "Delete Redirection Host",
"delete-confirm": "Are you sure you want to delete the Redirection host for: {domains}?",
"help-title": "What is a Redirection Host?",
"help-content": "A Redirection Host will redirect requests from the incoming domain and push the viewer to another domain.\nThe most common reason to use this type of host is when your website changes domains but you still have search engine or referrer links pointing to the old domain."
diff --git a/frontend/package.json b/frontend/package.json
index 8f4a55b9..198e6c93 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -7,7 +7,6 @@
"@babel/core": "^7.9.0",
"babel-core": "^6.26.3",
"babel-loader": "^8.1.0",
- "babel-minify-webpack-plugin": "^0.3.1",
"babel-preset-env": "^1.7.0",
"backbone": "^1.4.0",
"backbone.marionette": "^4.1.2",
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index f8561415..d524ff04 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -823,11 +823,6 @@ babel-helper-define-map@^6.24.1:
babel-types "^6.26.0"
lodash "^4.17.4"
-babel-helper-evaluate-path@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.3.0.tgz#2439545e0b6eae5b7f49b790acbebd6b9a73df20"
- integrity sha512-dRFlMTqUJRGzx5a2smKxmptDdNCXKSkPcXWzKLwAV72hvIZumrd/0z9RcewHkr7PmAEq+ETtpD1GK6wZ6ZUXzw==
-
babel-helper-explode-assignable-expression@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
@@ -837,11 +832,6 @@ babel-helper-explode-assignable-expression@^6.24.1:
babel-traverse "^6.24.1"
babel-types "^6.24.1"
-babel-helper-flip-expressions@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.3.0.tgz#f5b6394bd5219b43cf8f7b201535ed540c6e7fa2"
- integrity sha512-kNGohWmtAG3b7tN1xocRQ5rsKkH/hpvZsMiGOJ1VwGJKhnwzR5KlB3rvKBaBPl5/IGHcopB2JN+r1SUEX1iMAw==
-
babel-helper-function-name@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
@@ -869,21 +859,6 @@ babel-helper-hoist-variables@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-helper-is-nodes-equiv@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684"
- integrity sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=
-
-babel-helper-is-void-0@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.3.0.tgz#95570d20bd27b2206f68083ae9980ee7003d8fe7"
- integrity sha512-JVqdX8y7Rf/x4NwbqtUI7mdQjL9HWoDnoAEQ8Gv8oxzjvbJv+n75f7l36m9Y8C7sCUltX3V5edndrp7Hp1oSXQ==
-
-babel-helper-mark-eval-scopes@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.3.0.tgz#b4731314fdd7a89091271a5213b4e12d236e29e8"
- integrity sha512-nrho5Dg4vl0VUgURVpGpEGiwbst5JX7efIyDHFxmkCx/ocQFnrPt8ze9Kxl6TKjR29bJ7D/XKY1NMlSxOQJRbQ==
-
babel-helper-optimise-call-expression@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
@@ -912,11 +887,6 @@ babel-helper-remap-async-to-generator@^6.24.1:
babel-traverse "^6.24.1"
babel-types "^6.24.1"
-babel-helper-remove-or-void@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.3.0.tgz#f43c86147c8fcc395a9528cbb31e7ff49d7e16e3"
- integrity sha512-D68W1M3ibCcbg0ysh3ww4/O0g10X1CXK720oOuR8kpfY7w0yP4tVcpK7zDmI1JecynycTQYAZ1rhLJo9aVtIKQ==
-
babel-helper-replace-supers@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
@@ -929,11 +899,6 @@ babel-helper-replace-supers@^6.24.1:
babel-traverse "^6.24.1"
babel-types "^6.24.1"
-babel-helper-to-multiple-sequence-expressions@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz#8da2275ccc26995566118f7213abfd9af7214427"
- integrity sha512-1uCrBD+EAaMnAYh7hc944n8Ga19y3daEnoXWPYDvFVsxMCc1l8aDjksApaCEaNSSuewq8BEcff47Cy1PbLg2Gw==
-
babel-helpers@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
@@ -960,15 +925,6 @@ babel-messages@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
-babel-minify-webpack-plugin@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/babel-minify-webpack-plugin/-/babel-minify-webpack-plugin-0.3.1.tgz#292aa240af190e2dcadf4f684d6d84d179b6d5a4"
- integrity sha512-Johg6Ju0Gxevk2R55eutMqnyXwlyUzCtwunBpiyNzoxGnKum+x5nfNuYZYHGd5Bmc1gmhjwzb7GkxHWOtYWmtQ==
- dependencies:
- babel-core "^6.26.0"
- babel-preset-minify "^0.3.0"
- webpack-sources "^1.0.1"
-
babel-plugin-check-es2015-constants@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
@@ -976,82 +932,6 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-minify-builtins@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.3.0.tgz#4740117a6a784063aaf8f092989cf9e4bd484860"
- integrity sha512-MqhSHlxkmgURqj3144qPksbZ/qof1JWdumcbucc4tysFcf3P3V3z3munTevQgKEFNMd8F5/ECGnwb63xogLjAg==
- dependencies:
- babel-helper-evaluate-path "^0.3.0"
-
-babel-plugin-minify-constant-folding@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.3.0.tgz#687e40336bd4ddd921e0e197f0006235ac184bb9"
- integrity sha512-1XeRpx+aY1BuNY6QU/cm6P+FtEi3ar3XceYbmC+4q4W+2Ewq5pL7V68oHg1hKXkBIE0Z4/FjSoHz6vosZLOe/A==
- dependencies:
- babel-helper-evaluate-path "^0.3.0"
-
-babel-plugin-minify-dead-code-elimination@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.3.0.tgz#a323f686c404b824186ba5583cf7996cac81719e"
- integrity sha512-SjM2Fzg85YZz+q/PNJ/HU4O3W98FKFOiP9K5z3sfonlamGOzvZw3Eup2OTiEBsbbqTeY8yzNCAv3qpJRYCgGmw==
- dependencies:
- babel-helper-evaluate-path "^0.3.0"
- babel-helper-mark-eval-scopes "^0.3.0"
- babel-helper-remove-or-void "^0.3.0"
- lodash.some "^4.6.0"
-
-babel-plugin-minify-flip-comparisons@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.3.0.tgz#6627893a409c9f30ef7f2c89e0c6eea7ee97ddc4"
- integrity sha512-B8lK+ekcpSNVH7PZpWDe5nC5zxjRiiT4nTsa6h3QkF3Kk6y9qooIFLemdGlqBq6j0zALEnebvCpw8v7gAdpgnw==
- dependencies:
- babel-helper-is-void-0 "^0.3.0"
-
-babel-plugin-minify-guarded-expressions@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.3.0.tgz#2552d96189ef45d9a463f1a6b5e4fa110703ac8d"
- integrity sha512-O+6CvF5/Ttsth3LMg4/BhyvVZ82GImeKMXGdVRQGK/8jFiP15EjRpdgFlxv3cnqRjqdYxLCS6r28VfLpb9C/kA==
- dependencies:
- babel-helper-flip-expressions "^0.3.0"
-
-babel-plugin-minify-infinity@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.3.0.tgz#c5ec0edd433517cf31b3af17077c202beb48bbe7"
- integrity sha512-Sj8ia3/w9158DWieUxU6/VvnYVy59geeFEkVgLZYBE8EBP+sN48tHtBM/jSgz0ejEdBlcfqJ6TnvPmVXTzR2BQ==
-
-babel-plugin-minify-mangle-names@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.3.0.tgz#f28561bad0dd2f0380816816bb946e219b3b6135"
- integrity sha512-PYTonhFWURsfAN8achDwvR5Xgy6EeTClLz+fSgGRqjAIXb0OyFm3/xfccbQviVi1qDXmlSnt6oJhBg8KE4Fn7Q==
- dependencies:
- babel-helper-mark-eval-scopes "^0.3.0"
-
-babel-plugin-minify-numeric-literals@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.3.0.tgz#b57734a612e8a592005407323c321119f27d4b40"
- integrity sha512-TgZj6ay8zDw74AS3yiIfoQ8vRSNJisYO/Du60S8nPV7EW7JM6fDMx5Sar6yVHlVuuwNgvDUBh191K33bVrAhpg==
-
-babel-plugin-minify-replace@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.3.0.tgz#980125bbf7cbb5a637439de9d0b1b030a4693893"
- integrity sha512-VR6tTg2Lt0TicHIOw04fsUtpPw7RaRP8PC8YzSFwEixnzvguZjZJoL7TgG7ZyEWQD1cJ96UezswECmFNa815bg==
-
-babel-plugin-minify-simplify@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.3.0.tgz#14574cc74d21c81d3060fafa041010028189f11b"
- integrity sha512-2M16ytQOCqBi7bYMu4DCWn8e6KyFCA108F6+tVrBJxOmm5u2sOmTFEa8s94tR9RHRRNYmcUf+rgidfnzL3ik9Q==
- dependencies:
- babel-helper-flip-expressions "^0.3.0"
- babel-helper-is-nodes-equiv "^0.0.1"
- babel-helper-to-multiple-sequence-expressions "^0.3.0"
-
-babel-plugin-minify-type-constructors@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.3.0.tgz#7f5a86ef322c4746364e3c591b8514eeafea6ad4"
- integrity sha512-XRXpvsUCPeVw9YEUw+9vSiugcSZfow81oIJT0yR9s8H4W7yJ6FHbImi5DJHoL8KcDUjYnL9wYASXk/fOkbyR6Q==
- dependencies:
- babel-helper-is-void-0 "^0.3.0"
-
babel-plugin-syntax-async-functions@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
@@ -1275,33 +1155,6 @@ babel-plugin-transform-exponentiation-operator@^6.22.0:
babel-plugin-syntax-exponentiation-operator "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-inline-consecutive-adds@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz#f07d93689c0002ed2b2b62969bdd99f734e03f57"
- integrity sha512-iZsYAIjYLLfLK0yN5WVT7Xf7Y3wQ9Z75j9A8q/0IglQSpUt2ppTdHlwl/GeaXnxdaSmsxBu861klbTBbv2n+RA==
-
-babel-plugin-transform-member-expression-literals@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf"
- integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=
-
-babel-plugin-transform-merge-sibling-variables@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae"
- integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=
-
-babel-plugin-transform-minify-booleans@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198"
- integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=
-
-babel-plugin-transform-property-literals@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39"
- integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=
- dependencies:
- esutils "^2.0.2"
-
babel-plugin-transform-regenerator@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
@@ -1309,33 +1162,6 @@ babel-plugin-transform-regenerator@^6.22.0:
dependencies:
regenerator-transform "^0.10.0"
-babel-plugin-transform-regexp-constructors@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.3.0.tgz#9bb2c8dd082271a5cb1b3a441a7c52e8fd07e0f5"
- integrity sha512-h92YHzyl042rb0naKO8frTHntpRFwRgKkfWD8602kFHoQingjJNtbvZzvxqHncJ6XmKVyYvfrBpDOSkCTDIIxw==
-
-babel-plugin-transform-remove-console@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780"
- integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=
-
-babel-plugin-transform-remove-debugger@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2"
- integrity sha1-QrcnYxyXl44estGZp67IShgznvI=
-
-babel-plugin-transform-remove-undefined@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.3.0.tgz#03f5f0071867781e9beabbc7b77bf8095fd3f3ec"
- integrity sha512-TYGQucc8iP3LJwN3kDZLEz5aa/2KuFrqpT+s8f8NnHsBU1sAgR3y8Opns0xhC+smyDYWscqFCKM1gbkWQOhhnw==
- dependencies:
- babel-helper-evaluate-path "^0.3.0"
-
-babel-plugin-transform-simplify-comparison-operators@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9"
- integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=
-
babel-plugin-transform-strict-mode@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
@@ -1344,11 +1170,6 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-plugin-transform-undefined-to-void@^6.9.0:
- version "6.9.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280"
- integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=
-
babel-preset-env@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
@@ -1385,35 +1206,6 @@ babel-preset-env@^1.7.0:
invariant "^2.2.2"
semver "^5.3.0"
-babel-preset-minify@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.3.0.tgz#7db64afa75f16f6e06c0aa5f25195f6f36784d77"
- integrity sha512-+VV2GWEyak3eDOmzT1DDMuqHrw3VbE9nBNkx2LLVs4pH/Me32ND8DRpVDd8IRvk1xX5p75nygyRPtkMh6GIAbQ==
- dependencies:
- babel-plugin-minify-builtins "^0.3.0"
- babel-plugin-minify-constant-folding "^0.3.0"
- babel-plugin-minify-dead-code-elimination "^0.3.0"
- babel-plugin-minify-flip-comparisons "^0.3.0"
- babel-plugin-minify-guarded-expressions "^0.3.0"
- babel-plugin-minify-infinity "^0.3.0"
- babel-plugin-minify-mangle-names "^0.3.0"
- babel-plugin-minify-numeric-literals "^0.3.0"
- babel-plugin-minify-replace "^0.3.0"
- babel-plugin-minify-simplify "^0.3.0"
- babel-plugin-minify-type-constructors "^0.3.0"
- babel-plugin-transform-inline-consecutive-adds "^0.3.0"
- babel-plugin-transform-member-expression-literals "^6.9.0"
- babel-plugin-transform-merge-sibling-variables "^6.9.0"
- babel-plugin-transform-minify-booleans "^6.9.0"
- babel-plugin-transform-property-literals "^6.9.0"
- babel-plugin-transform-regexp-constructors "^0.3.0"
- babel-plugin-transform-remove-console "^6.9.0"
- babel-plugin-transform-remove-debugger "^6.9.0"
- babel-plugin-transform-remove-undefined "^0.3.0"
- babel-plugin-transform-simplify-comparison-operators "^6.9.0"
- babel-plugin-transform-undefined-to-void "^6.9.0"
- lodash.isplainobject "^4.0.6"
-
babel-register@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
@@ -4289,16 +4081,6 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
-lodash.isplainobject@^4.0.6:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
- integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
-
-lodash.some@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
- integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=
-
lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@~4.17.10:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
@@ -6869,7 +6651,7 @@ webpack-log@^2.0.0:
ansi-colors "^3.0.0"
uuid "^3.3.2"
-webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
+webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
version "1.4.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==