diff --git a/webapp/CHANGELOG.md b/webapp/CHANGELOG.md new file mode 100644 index 0000000..a598062 --- /dev/null +++ b/webapp/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## [2022-08-06] + +- Added a changelog page. \ No newline at end of file diff --git a/webapp/package-lock.json b/webapp/package-lock.json index 7ba8d9e..60ea997 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -41,6 +41,7 @@ "tailwindcss": "^3.1.3", "tslib": "^2.3.1", "typescript": "^4.7.2", + "vite-plugin-markdown": "^2.1.0", "vitest": "^0.17.0", "vitest-svelte-kit": "^0.0.6" } @@ -1713,6 +1714,61 @@ "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", "dev": true }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.161", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.161.tgz", @@ -1725,6 +1781,15 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", @@ -2278,6 +2343,19 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -2492,6 +2570,37 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/front-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/front-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -2758,6 +2867,25 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, "node_modules/http-basic": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", @@ -3188,6 +3316,15 @@ "node": ">=10" } }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, "node_modules/local-pkg": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz", @@ -3305,6 +3442,31 @@ "semver": "bin/semver.js" } }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/marked": { "version": "4.0.17", "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz", @@ -3316,6 +3478,12 @@ "node": ">= 12" } }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4739,6 +4907,12 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -5232,6 +5406,12 @@ "node": ">=4.2.0" } }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5304,6 +5484,20 @@ } } }, + "node_modules/vite-plugin-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-markdown/-/vite-plugin-markdown-2.1.0.tgz", + "integrity": "sha512-eWLlrWzYZXEX3/HaXZo/KLjRpO72IUhbgaoFrbwB07ueXi6QfwqrgdZQfUcXTSofJCkN7GhErMC1K1RTAE0gGQ==", + "dev": true, + "dependencies": { + "front-matter": "^4.0.0", + "htmlparser2": "^6.0.0", + "markdown-it": "^12.0.0" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0" + } + }, "node_modules/vitest": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.17.0.tgz", @@ -6812,6 +7006,43 @@ "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", "dev": true }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, "electron-to-chromium": { "version": "1.4.161", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.161.tgz", @@ -6824,6 +7055,12 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, "es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", @@ -7138,6 +7375,12 @@ "eslint-visitor-keys": "^3.3.0" } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, "esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -7307,6 +7550,36 @@ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true }, + "front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "requires": { + "js-yaml": "^3.13.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -7511,6 +7784,18 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, "http-basic": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", @@ -7849,6 +8134,15 @@ "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, "local-pkg": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz", @@ -7938,11 +8232,38 @@ } } }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + } + } + }, "marked": { "version": "4.0.17", "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz", "integrity": "sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA==" }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -8987,6 +9308,12 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -9332,6 +9659,12 @@ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -9377,6 +9710,17 @@ "rollup": "^2.59.0" } }, + "vite-plugin-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-markdown/-/vite-plugin-markdown-2.1.0.tgz", + "integrity": "sha512-eWLlrWzYZXEX3/HaXZo/KLjRpO72IUhbgaoFrbwB07ueXi6QfwqrgdZQfUcXTSofJCkN7GhErMC1K1RTAE0gGQ==", + "dev": true, + "requires": { + "front-matter": "^4.0.0", + "htmlparser2": "^6.0.0", + "markdown-it": "^12.0.0" + } + }, "vitest": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.17.0.tgz", diff --git a/webapp/package.json b/webapp/package.json index b971c2a..63db242 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -43,6 +43,7 @@ "tailwindcss": "^3.1.3", "tslib": "^2.3.1", "typescript": "^4.7.2", + "vite-plugin-markdown": "^2.1.0", "vitest": "^0.17.0", "vitest-svelte-kit": "^0.0.6" }, diff --git a/webapp/src/lib/components/Footer.svelte b/webapp/src/lib/components/Footer.svelte index 95eed78..0c60b4c 100644 --- a/webapp/src/lib/components/Footer.svelte +++ b/webapp/src/lib/components/Footer.svelte @@ -9,7 +9,8 @@ - About - - + Changelog + - Contact - Discord diff --git a/webapp/src/routes/changelog.svelte b/webapp/src/routes/changelog.svelte new file mode 100644 index 0000000..3c87f24 --- /dev/null +++ b/webapp/src/routes/changelog.svelte @@ -0,0 +1,9 @@ + + +
+ {@html html} +
diff --git a/webapp/src/routes/sample.json b/webapp/src/routes/sample.json deleted file mode 100644 index 7d13bab..0000000 --- a/webapp/src/routes/sample.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ciphertext": "U2FsdGVkX19INYDEiZRN16Vf0TPXnW9zGpmpwTPzFojXItJusegI3so9MqTPnYRh4FtI9xSIuzwRYJ3Kbs9yCjhKYq9GMTAzqV6sZWMVAR+VktqoaUN97hpoRKJ92yeUa9VU3VOkseiWmd15LMCp4++yqv8R5EvUb94Syu2sE9mWpPCl1s4VtnEDUu+67TZMbRJU95xSyJgucbY5fqlDMRtPXoUg/KHwn+Nm8iz9P2Gm/i0tE+H3xMcJvszeAEyEuBi76Raesew8r4MwRNQnaO6QN4EnAnHJib38a3oIOWD+LY1LKxdqakK1+b/e6oZOQkptXMFOxy9PbEOlNr+GjjOLnOIwYf/rF6TkH/sh9ocIgtfpDgkvIp+mrxhkBuzA4Ut2MY7TnlWp0pa9zbyTYu7ylrCazaz56/Pz63joCdtA/9q1wz/cjEjjzCXcr7SktPvkzQ82sXzxOgdVmWdj3gcGCVZAqeCusLrj48tVk8YjWoQhyZcg57yyaJSvvv4I8y2KM7dEypiEsocpVTlBnwVqJjQKqsVNWbtP/mjliYMZzHNnivnqhonroC0/7rqIRmlKDmlFFmYFIbOxXvoTzbR4/pSFNAckXmXAMlEuiRHSfBlWe7aSYFxLoIQFHwTZgbRgj+IQTH5edWRwbDIO70iMxoxjZVnFxtuLIwudTTDeStgKMl5lOFL+W4e31tJS4kFOboPrdMXXvcF9vBPHt0AQpDA10BoKLkhwSpQMgQsO1CZnYJ5Wv8pDFTulKqhSLisyD+TvkCYMoRCTxu7/mA3BVCSHt6EIScCyMtIQxB+P6sVvBld+a0+2k2qvNXIfv2xmcfrYYpBEGe+di9a68v6VQyCB47GP6JRLr1yN7b9pOkKwVAmKI8j4tk1gjxR201d41LfyTR3A0uDNqQZH89kQ037C/AyjPBvUandu2Kj0/NoPuDBWG6WlsRWL7cBXfBHr4q0mfjnSPjb0pBwZE10yxRtFDXEIKjcO6BKzI86lHypARtVEuVRrZst1+jwyB4JTN2gaTIUq2rRtLTwgV6plKN3A8/M8bu+LYS0J3YD3x4V0sCHDAyPjb+YePgPxunQrOD/bJkkdvDo5wrf0IOgxmessT17mP857tZCh/dlwkBkB+GNH2xVGwkltxowBqiX8c4bsuay+kDfoCXf2QmP5dYeyQJs+Ia0svsu03Bwo+qXhtovkTWBfBuOZp4BrO1F4UKh2gPuZp69aPbGeEICl0TnA0aayNug7j9vZuHr2a+0Q3L/4LINQp0SIWs2ZQjB7r/R2ZTAV5iJpt8ApwVwcByZKqhrlXWiPvKQZrUBUM1gklYG8XPL/hDjotuzi/UHPiG8vqbc++b8WapoIWa0bxO4QSV2ahhi5KcM8pmCc4dRf1TGTSG5EWuoItzl7EPL2fMeCwpgCCSJNcnX02wE+bme7UfrekrtXt4UYsKGwPPYdBHqFvRpnB8eFTx3y1FwzgO4HOdiraFgzGPOBZYKG075K0WRZy3qAp4LapA+mh26Vtc38KypAFGqRkKvImz4arohaIlgXpRx9fp9JBMqEXuhCWhamVvJ5WB5VsQShuRPOCPGvNdui8xjmvyq6", - "hmac": "7fdb01d6706dafa2e807068f91192ed879d99699e43880054c3827a20d6d48ed", - "key": "o4mlngqrvZB1KFy-HrXNKPal-j5tWuaWwGJSBHPmiM0" -} diff --git a/webapp/src/routes/sample2.json b/webapp/src/routes/sample2.json deleted file mode 100644 index 9988c11..0000000 --- a/webapp/src/routes/sample2.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ciphertext": "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", - "hmac": "d8043607effc31a111868bdb71bb2a683d3d49464e830ac01f11ea96e21a03e4", - "key": "Pyy5o6r2UX10ADuRc7IDy3bpKqfNXl38IXwh7lda36E" -} diff --git a/webapp/svelte.config.js b/webapp/svelte.config.js index 591259e..f67eb78 100644 --- a/webapp/svelte.config.js +++ b/webapp/svelte.config.js @@ -1,6 +1,8 @@ // import adapter from '@sveltejs/adapter-auto'; import adapter from '@sveltejs/adapter-node'; import preprocess from 'svelte-preprocess'; +import { plugin as markdown } from 'vite-plugin-markdown'; +import { searchForWorkspaceRoot } from 'vite'; /** @type {import('@sveltejs/kit').Config} */ const config = { @@ -14,10 +16,17 @@ const config = { kit: { adapter: adapter(), vite: { + plugins: [markdown({ mode: ['html', 'toc'] })], test: { globals: true, environment: 'happy-dom', setupFiles: ['setupTest.js'] + }, + server: { + fs: { + // Allow serving CHANGELOG.md file + allow: [searchForWorkspaceRoot(process.cwd()), '/CHANGELOG.md'] + } } } }