diff --git a/components/Admin/AboutApp/index.js b/components/Admin/AboutApp/index.js
new file mode 100644
index 0000000..37befd1
--- /dev/null
+++ b/components/Admin/AboutApp/index.js
@@ -0,0 +1,39 @@
+import { Descriptions, Row, Badge, Space } from 'antd';
+
+const AboutApp = () => (
+
+
+
+ {process.env.APP_NAME}
+
+
+ {process.env.APP_DESCRIPTION}
+
+
+ v{process.env.APP_VERSION}
+
+
+ {process.env.HOMEPAGE}
+
+
+
+
+
+ {process.env.REPOSITORY_URL}
+
+
+ {process.env.BUG_TRACKER}
+
+
+
+ {process.env.COMMIT_HASH.substring(0, 8)}
+
+
+
+ {process.env.APP_LICENSE}
+
+
+
+);
+
+export default AboutApp;
diff --git a/components/Admin/Navbar/index.js b/components/Admin/Navbar/index.js
index a360df8..e99ff20 100644
--- a/components/Admin/Navbar/index.js
+++ b/components/Admin/Navbar/index.js
@@ -1,7 +1,13 @@
import { useEffect, useState } from 'react';
import LinkTo from '~/components/LinkTo';
import { Avatar, Col, Menu, Row, Space, Typography } from 'antd';
-import { LinkOutlined, FormOutlined, TagsOutlined, UserOutlined } from '@ant-design/icons';
+import {
+ InfoCircleOutlined,
+ LinkOutlined,
+ FormOutlined,
+ TagsOutlined,
+ UserOutlined
+} from '@ant-design/icons';
import API from '~/lib/api';
@@ -19,6 +25,10 @@ export const navbar = {
redirects: {
icon: ,
title: 'Redirects'
+ },
+ about: {
+ icon: ,
+ title: 'About'
}
};
diff --git a/next.config.js b/next.config.js
new file mode 100644
index 0000000..429e52b
--- /dev/null
+++ b/next.config.js
@@ -0,0 +1,17 @@
+const pkg = require('./package.json');
+
+// starts a command line process to get the git hash
+const commitHash = require('child_process').execSync('git rev-parse HEAD').toString().trim();
+
+module.exports = {
+ env: {
+ APP_NAME: pkg.name,
+ APP_DESCRIPTION: pkg.description,
+ APP_VERSION: pkg.version,
+ APP_LICENSE: pkg.license,
+ HOMEPAGE: pkg.homepage,
+ BUG_TRACKER: pkg.bugs,
+ REPOSITORY_URL: pkg.repository.url,
+ COMMIT_HASH: commitHash
+ }
+};
diff --git a/package-lock.json b/package-lock.json
index 905f522..c4557b9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,7 +15,7 @@
"luxon": "^2.3.0",
"mongoose": "^6.1.8",
"nanoid": "^3.2.0",
- "next": "^12.0.9",
+ "next": "^12.1.5",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-emoji-render": "^1.2.4",
@@ -628,9 +628,9 @@
"dev": true
},
"node_modules/@next/env": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz",
- "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ=="
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.5.tgz",
+ "integrity": "sha512-+34yUJslfJi7Lyx6ELuN8nWcOzi27izfYnZIC1Dqv7kmmfiBVxgzR3BXhlvEMTKC2IRJhXVs2FkMY+buQe3k7Q=="
},
"node_modules/@next/eslint-plugin-next": {
"version": "12.0.9",
@@ -641,10 +641,25 @@
"glob": "7.1.7"
}
},
+ "node_modules/@next/swc-android-arm-eabi": {
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.5.tgz",
+ "integrity": "sha512-SKnGTdYcoN04Y2DvE0/Y7/MjkA+ltsmbuH/y/hR7Ob7tsj+8ZdOYuk+YvW1B8dY20nDPHP58XgDTSm2nA8BzzA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/@next/swc-android-arm64": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz",
- "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.5.tgz",
+ "integrity": "sha512-YXiqgQ/9Rxg1dXp6brXbeQM1JDx9SwUY/36JiE+36FXqYEmDYbxld9qkX6GEzkc5rbwJ+RCitargnzEtwGW0mw==",
"cpu": [
"arm64"
],
@@ -657,9 +672,9 @@
}
},
"node_modules/@next/swc-darwin-arm64": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz",
- "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.5.tgz",
+ "integrity": "sha512-y8mhldb/WFZ6lFeowkGfi0cO/lBdiBqDk4T4LZLvCpoQp4Or/NzUN6P5NzBQZ5/b4oUHM/wQICEM+1wKA4qIVw==",
"cpu": [
"arm64"
],
@@ -672,9 +687,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz",
- "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.5.tgz",
+ "integrity": "sha512-wqJ3X7WQdTwSGi0kIDEmzw34QHISRIQ5uvC+VXmsIlCPFcMA+zM5723uh8NfuKGquDMiEMS31a83QgkuHMYbwQ==",
"cpu": [
"x64"
],
@@ -687,9 +702,9 @@
}
},
"node_modules/@next/swc-linux-arm-gnueabihf": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz",
- "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.5.tgz",
+ "integrity": "sha512-WnhdM5duONMvt2CncAl+9pim0wBxDS2lHoo7ub/o/i1bRbs11UTzosKzEXVaTDCUkCX2c32lIDi1WcN2ZPkcdw==",
"cpu": [
"arm"
],
@@ -702,9 +717,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz",
- "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.5.tgz",
+ "integrity": "sha512-Jq2H68yQ4bLUhR/XQnbw3LDW0GMQn355qx6rU36BthDLeGue7YV7MqNPa8GKvrpPocEMW77nWx/1yI6w6J07gw==",
"cpu": [
"arm64"
],
@@ -717,9 +732,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz",
- "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.5.tgz",
+ "integrity": "sha512-KgPjwdbhDqXI7ghNN8V/WAiLquc9Ebe8KBrNNEL0NQr+yd9CyKJ6KqjayVkmX+hbHzbyvbui/5wh/p3CZQ9xcQ==",
"cpu": [
"arm64"
],
@@ -732,9 +747,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz",
- "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.5.tgz",
+ "integrity": "sha512-O2ErUTvCJ6DkNTSr9pbu1n3tcqykqE/ebty1rwClzIYdOgpB3T2MfEPP+K7GhUR87wmN/hlihO9ch7qpVFDGKw==",
"cpu": [
"x64"
],
@@ -747,9 +762,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz",
- "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.5.tgz",
+ "integrity": "sha512-1eIlZmlO/VRjxxzUBcVosf54AFU3ltAzHi+BJA+9U/lPxCYIsT+R4uO3QksRzRjKWhVQMRjEnlXyyq5SKJm7BA==",
"cpu": [
"x64"
],
@@ -762,9 +777,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz",
- "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.5.tgz",
+ "integrity": "sha512-oromsfokbEuVb0CBLLE7R9qX3KGXucZpsojLpzUh1QJjuy1QkrPJncwr8xmWQnwgtQ6ecMWXgXPB+qtvizT9Tw==",
"cpu": [
"arm64"
],
@@ -777,9 +792,9 @@
}
},
"node_modules/@next/swc-win32-ia32-msvc": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz",
- "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.5.tgz",
+ "integrity": "sha512-a/51L5KzBpeZSW9LbekMo3I3Cwul+V+QKwbEIMA+Qwb2qrlcn1L9h3lt8cHqNTFt2y72ce6aTwDTw1lyi5oIRA==",
"cpu": [
"ia32"
],
@@ -792,9 +807,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz",
- "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.5.tgz",
+ "integrity": "sha512-/SoXW1Ntpmpw3AXAzfDRaQidnd8kbZ2oSni8u5z0yw6t4RwJvmdZy1eOaAADRThWKV+2oU90++LSnXJIwBRWYQ==",
"cpu": [
"x64"
],
@@ -4220,15 +4235,14 @@
"dev": true
},
"node_modules/next": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz",
- "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/next/-/next-12.1.5.tgz",
+ "integrity": "sha512-YGHDpyfgCfnT5GZObsKepmRnne7Kzp7nGrac07dikhutWQug7hHg85/+sPJ4ZW5Q2pDkb+n0FnmLkmd44htIJQ==",
"dependencies": {
- "@next/env": "12.1.0",
+ "@next/env": "12.1.5",
"caniuse-lite": "^1.0.30001283",
"postcss": "8.4.5",
- "styled-jsx": "5.0.0",
- "use-subscription": "1.5.1"
+ "styled-jsx": "5.0.1"
},
"bin": {
"next": "dist/bin/next"
@@ -4237,17 +4251,18 @@
"node": ">=12.22.0"
},
"optionalDependencies": {
- "@next/swc-android-arm64": "12.1.0",
- "@next/swc-darwin-arm64": "12.1.0",
- "@next/swc-darwin-x64": "12.1.0",
- "@next/swc-linux-arm-gnueabihf": "12.1.0",
- "@next/swc-linux-arm64-gnu": "12.1.0",
- "@next/swc-linux-arm64-musl": "12.1.0",
- "@next/swc-linux-x64-gnu": "12.1.0",
- "@next/swc-linux-x64-musl": "12.1.0",
- "@next/swc-win32-arm64-msvc": "12.1.0",
- "@next/swc-win32-ia32-msvc": "12.1.0",
- "@next/swc-win32-x64-msvc": "12.1.0"
+ "@next/swc-android-arm-eabi": "12.1.5",
+ "@next/swc-android-arm64": "12.1.5",
+ "@next/swc-darwin-arm64": "12.1.5",
+ "@next/swc-darwin-x64": "12.1.5",
+ "@next/swc-linux-arm-gnueabihf": "12.1.5",
+ "@next/swc-linux-arm64-gnu": "12.1.5",
+ "@next/swc-linux-arm64-musl": "12.1.5",
+ "@next/swc-linux-x64-gnu": "12.1.5",
+ "@next/swc-linux-x64-musl": "12.1.5",
+ "@next/swc-win32-arm64-msvc": "12.1.5",
+ "@next/swc-win32-ia32-msvc": "12.1.5",
+ "@next/swc-win32-x64-msvc": "12.1.5"
},
"peerDependencies": {
"fibers": ">= 3.1.0",
@@ -6560,14 +6575,14 @@
"dev": true
},
"node_modules/styled-jsx": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz",
- "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.1.tgz",
+ "integrity": "sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw==",
"engines": {
"node": ">= 12.0.0"
},
"peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || 18.x.x"
+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
},
"peerDependenciesMeta": {
"@babel/core": {
@@ -7118,17 +7133,6 @@
"resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
"integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="
},
- "node_modules/use-subscription": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
- "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
- "dependencies": {
- "object-assign": "^4.1.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -7759,9 +7763,9 @@
"dev": true
},
"@next/env": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz",
- "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ=="
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.5.tgz",
+ "integrity": "sha512-+34yUJslfJi7Lyx6ELuN8nWcOzi27izfYnZIC1Dqv7kmmfiBVxgzR3BXhlvEMTKC2IRJhXVs2FkMY+buQe3k7Q=="
},
"@next/eslint-plugin-next": {
"version": "12.0.9",
@@ -7772,70 +7776,76 @@
"glob": "7.1.7"
}
},
+ "@next/swc-android-arm-eabi": {
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.5.tgz",
+ "integrity": "sha512-SKnGTdYcoN04Y2DvE0/Y7/MjkA+ltsmbuH/y/hR7Ob7tsj+8ZdOYuk+YvW1B8dY20nDPHP58XgDTSm2nA8BzzA==",
+ "optional": true
+ },
"@next/swc-android-arm64": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz",
- "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.5.tgz",
+ "integrity": "sha512-YXiqgQ/9Rxg1dXp6brXbeQM1JDx9SwUY/36JiE+36FXqYEmDYbxld9qkX6GEzkc5rbwJ+RCitargnzEtwGW0mw==",
"optional": true
},
"@next/swc-darwin-arm64": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz",
- "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.5.tgz",
+ "integrity": "sha512-y8mhldb/WFZ6lFeowkGfi0cO/lBdiBqDk4T4LZLvCpoQp4Or/NzUN6P5NzBQZ5/b4oUHM/wQICEM+1wKA4qIVw==",
"optional": true
},
"@next/swc-darwin-x64": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz",
- "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.5.tgz",
+ "integrity": "sha512-wqJ3X7WQdTwSGi0kIDEmzw34QHISRIQ5uvC+VXmsIlCPFcMA+zM5723uh8NfuKGquDMiEMS31a83QgkuHMYbwQ==",
"optional": true
},
"@next/swc-linux-arm-gnueabihf": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz",
- "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.5.tgz",
+ "integrity": "sha512-WnhdM5duONMvt2CncAl+9pim0wBxDS2lHoo7ub/o/i1bRbs11UTzosKzEXVaTDCUkCX2c32lIDi1WcN2ZPkcdw==",
"optional": true
},
"@next/swc-linux-arm64-gnu": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz",
- "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.5.tgz",
+ "integrity": "sha512-Jq2H68yQ4bLUhR/XQnbw3LDW0GMQn355qx6rU36BthDLeGue7YV7MqNPa8GKvrpPocEMW77nWx/1yI6w6J07gw==",
"optional": true
},
"@next/swc-linux-arm64-musl": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz",
- "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.5.tgz",
+ "integrity": "sha512-KgPjwdbhDqXI7ghNN8V/WAiLquc9Ebe8KBrNNEL0NQr+yd9CyKJ6KqjayVkmX+hbHzbyvbui/5wh/p3CZQ9xcQ==",
"optional": true
},
"@next/swc-linux-x64-gnu": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz",
- "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.5.tgz",
+ "integrity": "sha512-O2ErUTvCJ6DkNTSr9pbu1n3tcqykqE/ebty1rwClzIYdOgpB3T2MfEPP+K7GhUR87wmN/hlihO9ch7qpVFDGKw==",
"optional": true
},
"@next/swc-linux-x64-musl": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz",
- "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.5.tgz",
+ "integrity": "sha512-1eIlZmlO/VRjxxzUBcVosf54AFU3ltAzHi+BJA+9U/lPxCYIsT+R4uO3QksRzRjKWhVQMRjEnlXyyq5SKJm7BA==",
"optional": true
},
"@next/swc-win32-arm64-msvc": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz",
- "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.5.tgz",
+ "integrity": "sha512-oromsfokbEuVb0CBLLE7R9qX3KGXucZpsojLpzUh1QJjuy1QkrPJncwr8xmWQnwgtQ6ecMWXgXPB+qtvizT9Tw==",
"optional": true
},
"@next/swc-win32-ia32-msvc": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz",
- "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.5.tgz",
+ "integrity": "sha512-a/51L5KzBpeZSW9LbekMo3I3Cwul+V+QKwbEIMA+Qwb2qrlcn1L9h3lt8cHqNTFt2y72ce6aTwDTw1lyi5oIRA==",
"optional": true
},
"@next/swc-win32-x64-msvc": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz",
- "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.5.tgz",
+ "integrity": "sha512-/SoXW1Ntpmpw3AXAzfDRaQidnd8kbZ2oSni8u5z0yw6t4RwJvmdZy1eOaAADRThWKV+2oU90++LSnXJIwBRWYQ==",
"optional": true
},
"@nodelib/fs.scandir": {
@@ -10367,26 +10377,26 @@
"dev": true
},
"next": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz",
- "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==",
- "requires": {
- "@next/env": "12.1.0",
- "@next/swc-android-arm64": "12.1.0",
- "@next/swc-darwin-arm64": "12.1.0",
- "@next/swc-darwin-x64": "12.1.0",
- "@next/swc-linux-arm-gnueabihf": "12.1.0",
- "@next/swc-linux-arm64-gnu": "12.1.0",
- "@next/swc-linux-arm64-musl": "12.1.0",
- "@next/swc-linux-x64-gnu": "12.1.0",
- "@next/swc-linux-x64-musl": "12.1.0",
- "@next/swc-win32-arm64-msvc": "12.1.0",
- "@next/swc-win32-ia32-msvc": "12.1.0",
- "@next/swc-win32-x64-msvc": "12.1.0",
+ "version": "12.1.5",
+ "resolved": "https://registry.npmjs.org/next/-/next-12.1.5.tgz",
+ "integrity": "sha512-YGHDpyfgCfnT5GZObsKepmRnne7Kzp7nGrac07dikhutWQug7hHg85/+sPJ4ZW5Q2pDkb+n0FnmLkmd44htIJQ==",
+ "requires": {
+ "@next/env": "12.1.5",
+ "@next/swc-android-arm-eabi": "12.1.5",
+ "@next/swc-android-arm64": "12.1.5",
+ "@next/swc-darwin-arm64": "12.1.5",
+ "@next/swc-darwin-x64": "12.1.5",
+ "@next/swc-linux-arm-gnueabihf": "12.1.5",
+ "@next/swc-linux-arm64-gnu": "12.1.5",
+ "@next/swc-linux-arm64-musl": "12.1.5",
+ "@next/swc-linux-x64-gnu": "12.1.5",
+ "@next/swc-linux-x64-musl": "12.1.5",
+ "@next/swc-win32-arm64-msvc": "12.1.5",
+ "@next/swc-win32-ia32-msvc": "12.1.5",
+ "@next/swc-win32-x64-msvc": "12.1.5",
"caniuse-lite": "^1.0.30001283",
"postcss": "8.4.5",
- "styled-jsx": "5.0.0",
- "use-subscription": "1.5.1"
+ "styled-jsx": "5.0.1"
}
},
"nice-try": {
@@ -12063,9 +12073,9 @@
"dev": true
},
"styled-jsx": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz",
- "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.1.tgz",
+ "integrity": "sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw==",
"requires": {}
},
"stylelint": {
@@ -12483,14 +12493,6 @@
"resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
"integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="
},
- "use-subscription": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
- "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
- "requires": {
- "object-assign": "^4.1.1"
- }
- },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
diff --git a/package.json b/package.json
index 8a25e53..b1e21f4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,14 @@
{
"name": "cesium.link",
+ "description": "Mapping CeSIUM's website to shorter urls",
"version": "2.0.0-beta",
+ "license": "MIT",
+ "homepage": "https://cesium.link",
+ "bugs": "https://github.com/cesium/cesium.link/issues",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/cesium/cesium.link"
+ },
"private": true,
"scripts": {
"develop": "npm-run-all dev",
@@ -26,7 +34,7 @@
"luxon": "^2.3.0",
"mongoose": "^6.1.8",
"nanoid": "^3.2.0",
- "next": "^12.0.9",
+ "next": "^12.1.5",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-emoji-render": "^1.2.4",
diff --git a/pages/_version.tsx b/pages/_version.tsx
new file mode 100644
index 0000000..b9248df
--- /dev/null
+++ b/pages/_version.tsx
@@ -0,0 +1,3 @@
+export default function Version() {
+ return `${process.env.COMMIT_HASH}`;
+}
diff --git a/pages/admin/index.tsx b/pages/admin/index.tsx
index 524b0ae..fc185e6 100644
--- a/pages/admin/index.tsx
+++ b/pages/admin/index.tsx
@@ -4,6 +4,7 @@ import { AdminContextProvider } from '~/components/Admin/Context';
import FormsTable from '~/components/Admin/FormsTable';
import LinksTable from '~/components/Admin/LinksTable';
import RedirectsTable from '~/components/Admin/RedirectsTable';
+import AboutApp from '~/components/Admin/AboutApp';
import Navbar, { navbar as entries } from '~/components/Admin/Navbar';
import Footer from '~/components/Footer';
@@ -24,6 +25,7 @@ function Admin() {
{(!tab || tab === 'links') && }
{(!tab || tab === 'forms') && }
{(!tab || tab === 'redirects') && }
+ {(!tab || tab === 'about') && }
);