diff --git a/README.md b/README.md index 1c3b2ccb6..4be62d407 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ See the [CHANGELOG](CHANGELOG.md) file for details. Nityananda Gohain
Nityananda Gohain

💻 Terran Blake
Terran Blake

💻 Hossein Nedaee
Hossein Nedaee

💻 + Vladislav
Vladislav

💻 diff --git a/assets/css/fonts.scss b/assets/css/fonts.scss index e1ef94a7c..e51da7cb5 100644 --- a/assets/css/fonts.scss +++ b/assets/css/fonts.scss @@ -1,13 +1,13 @@ /* Material Design Icons */ @font-face { - font-family: 'Material Icons'; + font-family: "Material Icons"; font-style: normal; font-weight: 400; - src: url(~@/assets/fonts/material-icons-v48.woff2) format('woff2'); + src: url(~@/assets/fonts/material-icons-v48.woff2) format("woff2"); } .material-icons { - font-family: 'Material Icons'; + font-family: "Material Icons"; font-weight: normal; font-style: normal; font-size: 24px; @@ -18,35 +18,42 @@ white-space: nowrap; word-wrap: normal; direction: ltr; - -webkit-font-feature-settings: 'liga'; + -webkit-font-feature-settings: "liga"; -webkit-font-smoothing: antialiased; } /* Roboto Mono 400 */ @font-face { - font-family: 'Roboto Mono'; + font-family: "Roboto Mono"; font-style: normal; font-weight: 400; - src: local('Roboto Mono'), local('RobotoMono-Regular'), - url('~@/assets/fonts/roboto-mono-v7-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('~@/assets/fonts/roboto-mono-v7-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + src: local("Roboto Mono"), local("RobotoMono-Regular"), + url("~@/assets/fonts/roboto-mono-v7-latin-regular.woff2") format("woff2"), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url("~@/assets/fonts/roboto-mono-v7-latin-regular.woff") format("woff"); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } /* Poppins 500 */ @font-face { - font-family: 'Poppins'; + font-family: "Poppins"; font-style: normal; font-weight: 500; - src: local('Poppins Medium'), local('Poppins-Medium'), - url('~@/assets/fonts/poppins-v9-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('~@/assets/fonts/poppins-v9-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + src: local("Poppins Medium"), local("Poppins-Medium"), + url("~@/assets/fonts/poppins-v9-latin-500.woff2") format("woff2"), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url("~@/assets/fonts/poppins-v9-latin-500.woff") format("woff"); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } + /* poppins-700 - latin */ @font-face { - font-family: 'Poppins'; + font-family: "Poppins"; font-style: normal; font-weight: 700; - src: local('Poppins Bold'), local('Poppins-Bold'), - url('~@/assets/fonts/poppins-v9-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('~@/assets/fonts/poppins-v9-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + src: local("Poppins Bold"), local("Poppins-Bold"), + url("~@/assets/fonts/poppins-v9-latin-700.woff2") format("woff2"), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url("~@/assets/fonts/poppins-v9-latin-700.woff") format("woff"); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } diff --git a/assets/css/styles.scss b/assets/css/styles.scss index 97917b015..f873039c1 100644 --- a/assets/css/styles.scss +++ b/assets/css/styles.scss @@ -2,9 +2,11 @@ $responsiveWidth: 720px; // Make theme transition smoother. body.afterLoad { - &, & * { + + &, + & * { transition: background-color 0.2s ease-in-out, - border 0.2s ease-in-out; + border 0.2s ease-in-out; } } @@ -180,7 +182,7 @@ h3.title { header, footer { - & > div { + &>div { display: flex; padding: 16px; width: 100%; @@ -218,7 +220,6 @@ button { transition: all 0.2s ease-in-out; fill: var(--act-color); height: 40px; - box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.02); cursor: pointer; span { @@ -353,7 +354,7 @@ input[type="checkbox"] { display: none; &, - & + label { + &+label { vertical-align: middle; cursor: pointer; @@ -372,7 +373,7 @@ input[type="checkbox"] { } } - &:checked + label:before { + &:checked+label:before { background-color: var(--ac-color); border-color: var(--ac-color); color: var(--act-color); @@ -567,7 +568,7 @@ div.tab { display: none; } -input[type="radio"] + label { +input[type="radio"]+label { padding: 8px 16px; border-bottom: 2px solid transparent; cursor: pointer; @@ -578,11 +579,11 @@ input[type="radio"] + label { } } -input[type="radio"]:checked + label { +input[type="radio"]:checked+label { border-color: var(--fg-color); } -input[type="radio"]:checked + label + div.tab { +input[type="radio"]:checked+label+div.tab { display: block; } diff --git a/assets/css/themes.scss b/assets/css/themes.scss index 69362831b..85228a8eb 100644 --- a/assets/css/themes.scss +++ b/assets/css/themes.scss @@ -1,6 +1,5 @@ /** Main Themes: - - dark (default) - light - black @@ -33,6 +32,7 @@ :root { @include darkTheme; } + @media(prefers-color-scheme: dark) { :root.auto { @include darkTheme; @@ -64,6 +64,7 @@ :root.light { @include lightTheme; } + @media(prefers-color-scheme: light) { :root.auto { @include lightTheme; @@ -91,6 +92,7 @@ // Active text color --act-color: #000000; } + :root.black { @include blackTheme; } diff --git a/assets/js/curlparser.js b/assets/js/curlparser.js index be4386ce1..39aad35a2 100644 --- a/assets/js/curlparser.js +++ b/assets/js/curlparser.js @@ -2,222 +2,229 @@ import * as cookie from "cookie"; import * as URL from "url"; import * as querystring from "querystring"; - /** * given this: [ 'msg1=value1', 'msg2=value2' ] * output this: 'msg1=value1&msg2=value2' * @param dataArguments */ function joinDataArguments(dataArguments) { - let data = ''; - dataArguments.forEach(function(argument, i) { - if (i === 0) { - data += argument; - } else { - data += '&' + argument; - } - }) - return data; + let data = ""; + dataArguments.forEach(function(argument, i) { + if (i === 0) { + data += argument; + } else { + data += "&" + argument; + } + }); + return data; } function parseCurlCommand(curlCommand) { - let newlineFound = /\r|\n/.exec(curlCommand); - if (newlineFound) { - // remove newlines - curlCommand = curlCommand.replace(/\\\r|\\\n/g, ''); - } - // yargs parses -XPOST as separate arguments. just prescreen for it. - curlCommand = curlCommand.replace(/ -XPOST/, ' -X POST'); - curlCommand = curlCommand.replace(/ -XGET/, ' -X GET'); - curlCommand = curlCommand.replace(/ -XPUT/, ' -X PUT'); - curlCommand = curlCommand.replace(/ -XPATCH/, ' -X PATCH'); - curlCommand = curlCommand.replace(/ -XDELETE/, ' -X DELETE'); - curlCommand = curlCommand.trim(); - let parsedArguments = require("yargs-parser")(curlCommand); - let cookieString; - let cookies; - let url = parsedArguments._[1]; - if (!url) { - for (let argName in parsedArguments) { - if (typeof parsedArguments[argName] === 'string') { - if (['http', 'www.'].includes(parsedArguments[argName])) { - url = parsedArguments[argName]; - } - } + let newlineFound = /\r|\n/.exec(curlCommand); + if (newlineFound) { + // remove newlines + curlCommand = curlCommand.replace(/\\\r|\\\n/g, ""); + } + // yargs parses -XPOST as separate arguments. just prescreen for it. + curlCommand = curlCommand.replace(/ -XPOST/, " -X POST"); + curlCommand = curlCommand.replace(/ -XGET/, " -X GET"); + curlCommand = curlCommand.replace(/ -XPUT/, " -X PUT"); + curlCommand = curlCommand.replace(/ -XPATCH/, " -X PATCH"); + curlCommand = curlCommand.replace(/ -XDELETE/, " -X DELETE"); + curlCommand = curlCommand.trim(); + let parsedArguments = require("yargs-parser")(curlCommand); + let cookieString; + let cookies; + let url = parsedArguments._[1]; + if (!url) { + for (let argName in parsedArguments) { + if (typeof parsedArguments[argName] === "string") { + if (["http", "www."].includes(parsedArguments[argName])) { + url = parsedArguments[argName]; } + } } - let headers; + } + let headers; - let parseHeaders = function(headerFieldName) { - if (parsedArguments[headerFieldName]) { - if (!headers) { - headers = {}; - } - if (!Array.isArray(parsedArguments[headerFieldName])) { - parsedArguments[headerFieldName] = [parsedArguments[headerFieldName]]; - } - parsedArguments[headerFieldName].forEach(function(header) { - if (header.includes('Cookie')) { - // stupid javascript tricks: closure - cookieString = header; - } else { - let colonIndex = header.indexOf(':'); - let headerName = header.substring(0, colonIndex); - let headerValue = header.substring(colonIndex + 1).trim(); - headers[headerName] = headerValue; - } - }) + let parseHeaders = function(headerFieldName) { + if (parsedArguments[headerFieldName]) { + if (!headers) { + headers = {}; + } + if (!Array.isArray(parsedArguments[headerFieldName])) { + parsedArguments[headerFieldName] = [parsedArguments[headerFieldName]]; + } + parsedArguments[headerFieldName].forEach(function(header) { + if (header.includes("Cookie")) { + // stupid javascript tricks: closure + cookieString = header; + } else { + let colonIndex = header.indexOf(":"); + let headerName = header.substring(0, colonIndex); + let headerValue = header.substring(colonIndex + 1).trim(); + headers[headerName] = headerValue; } + }); } + }; - parseHeaders('H'); - parseHeaders('header'); - if (parsedArguments.A) { - if (!headers) { - headers = []; - } - headers['User-Agent'] = parsedArguments.A; - } else if (parsedArguments['user-agent']) { - if (!headers) { - headers = []; - } - headers['User-Agent'] = parsedArguments['user-agent']; + parseHeaders("H"); + parseHeaders("header"); + if (parsedArguments.A) { + if (!headers) { + headers = []; } + headers["User-Agent"] = parsedArguments.A; + } else if (parsedArguments["user-agent"]) { + if (!headers) { + headers = []; + } + headers["User-Agent"] = parsedArguments["user-agent"]; + } - if (parsedArguments.b) { - cookieString = parsedArguments.b; - } - if (parsedArguments.cookie) { - cookieString = parsedArguments.cookie; - } - let multipartUploads; - if (parsedArguments.F) { - multipartUploads = {}; - if (!Array.isArray(parsedArguments.F)) { - parsedArguments.F = [parsedArguments.F]; - } - parsedArguments.F.forEach(function(multipartArgument) { - // input looks like key=value. value could be json or a file path prepended with an @ - let splitArguments = multipartArgument.split('=', 2); - let key = splitArguments[0]; - let value = splitArguments[1]; - multipartUploads[key] = value; - }) - } - if (cookieString) { - let cookieParseOptions = { - decode: function(s) { return s } - } - // separate out cookie headers into separate data structure - // note: cookie is case insensitive - cookies = cookie.parse(cookieString.replace(/^Cookie: /gi, ''), cookieParseOptions); - } - let method; - if (parsedArguments.X === 'POST') { - method = 'post'; - } else if (parsedArguments.X === 'PUT' || - parsedArguments['T']) { - method = 'put'; - } else if (parsedArguments.X === 'PATCH') { - method = 'patch'; - } else if (parsedArguments.X === 'DELETE') { - method = 'delete'; - } else if (parsedArguments.X === 'OPTIONS') { - method = 'options'; - } else if ((parsedArguments['d'] || - parsedArguments['data'] || - parsedArguments['data-ascii'] || - parsedArguments['data-binary'] || - parsedArguments['F'] || - parsedArguments['form']) && !((parsedArguments['G'] || parsedArguments['get']))) { - method = 'post'; - } else if (parsedArguments['I'] || - parsedArguments['head']) { - method = 'head'; - } else { - method = 'get'; + if (parsedArguments.b) { + cookieString = parsedArguments.b; + } + if (parsedArguments.cookie) { + cookieString = parsedArguments.cookie; + } + let multipartUploads; + if (parsedArguments.F) { + multipartUploads = {}; + if (!Array.isArray(parsedArguments.F)) { + parsedArguments.F = [parsedArguments.F]; } + parsedArguments.F.forEach(function(multipartArgument) { + // input looks like key=value. value could be json or a file path prepended with an @ + let splitArguments = multipartArgument.split("=", 2); + let key = splitArguments[0]; + let value = splitArguments[1]; + multipartUploads[key] = value; + }); + } + if (cookieString) { + let cookieParseOptions = { + decode: function(s) { + return s; + } + }; + // separate out cookie headers into separate data structure + // note: cookie is case insensitive + cookies = cookie.parse( + cookieString.replace(/^Cookie: /gi, ""), + cookieParseOptions + ); + } + let method; + if (parsedArguments.X === "POST") { + method = "post"; + } else if (parsedArguments.X === "PUT" || parsedArguments["T"]) { + method = "put"; + } else if (parsedArguments.X === "PATCH") { + method = "patch"; + } else if (parsedArguments.X === "DELETE") { + method = "delete"; + } else if (parsedArguments.X === "OPTIONS") { + method = "options"; + } else if ( + (parsedArguments["d"] || + parsedArguments["data"] || + parsedArguments["data-ascii"] || + parsedArguments["data-binary"] || + parsedArguments["F"] || + parsedArguments["form"]) && + !(parsedArguments["G"] || parsedArguments["get"]) + ) { + method = "post"; + } else if (parsedArguments["I"] || parsedArguments["head"]) { + method = "head"; + } else { + method = "get"; + } - let compressed = !!parsedArguments.compressed; - let urlObject = URL.parse(url); // eslint-disable-line + let compressed = !!parsedArguments.compressed; + let urlObject = URL.parse(url); // eslint-disable-line - // if GET request with data, convert data to query string - // NB: the -G flag does not change the http verb. It just moves the data into the url. - if (parsedArguments['G'] || parsedArguments['get']) { - urlObject.query = urlObject.query ? urlObject.query : ''; - let option = 'd' in parsedArguments ? 'd' : 'data' in parsedArguments ? 'data' : null; - if (option) { - let urlQueryString = ''; + // if GET request with data, convert data to query string + // NB: the -G flag does not change the http verb. It just moves the data into the url. + if (parsedArguments["G"] || parsedArguments["get"]) { + urlObject.query = urlObject.query ? urlObject.query : ""; + let option = + "d" in parsedArguments ? "d" : "data" in parsedArguments ? "data" : null; + if (option) { + let urlQueryString = ""; - if (!url.includes('?')) { - url += '?'; - } else { - urlQueryString += '&'; - } + if (!url.includes("?")) { + url += "?"; + } else { + urlQueryString += "&"; + } - if (typeof(parsedArguments[option]) === 'object') { - urlQueryString += parsedArguments[option].join('&'); - } else { - urlQueryString += parsedArguments[option]; - } - urlObject.query += urlQueryString; - url += urlQueryString; - delete parsedArguments[option]; - } + if (typeof parsedArguments[option] === "object") { + urlQueryString += parsedArguments[option].join("&"); + } else { + urlQueryString += parsedArguments[option]; + } + urlObject.query += urlQueryString; + url += urlQueryString; + delete parsedArguments[option]; } - let query = querystring.parse(urlObject.query, null, null, { maxKeys: 10000 }); + } + let query = querystring.parse(urlObject.query, null, null, { + maxKeys: 10000 + }); - urlObject.search = null // Clean out the search/query portion. - let request = { - url: url, - urlWithoutQuery: URL.format(urlObject) - } - if (compressed) { - request['compressed'] = true; - } + urlObject.search = null; // Clean out the search/query portion. + let request = { + url: url, + urlWithoutQuery: URL.format(urlObject) + }; + if (compressed) { + request["compressed"] = true; + } - if (Object.keys(query).length > 0) { - request.query = query; - } - if (headers) { - request.headers = headers; - } - request['method'] = method; + if (Object.keys(query).length > 0) { + request.query = query; + } + if (headers) { + request.headers = headers; + } + request["method"] = method; - if (cookies) { - request.cookies = cookies; - request.cookieString = cookieString.replace('Cookie: ', ''); - } - if (multipartUploads) { - request.multipartUploads = multipartUploads; - } - if (parsedArguments.data) { - request.data = parsedArguments.data; - } else if (parsedArguments['data-binary']) { - request.data = parsedArguments['data-binary'] - request.isDataBinary = true; - } else if (parsedArguments['d']) { - request.data = parsedArguments['d']; - } else if (parsedArguments['data-ascii']) { - request.data = parsedArguments['data-ascii']; - } + if (cookies) { + request.cookies = cookies; + request.cookieString = cookieString.replace("Cookie: ", ""); + } + if (multipartUploads) { + request.multipartUploads = multipartUploads; + } + if (parsedArguments.data) { + request.data = parsedArguments.data; + } else if (parsedArguments["data-binary"]) { + request.data = parsedArguments["data-binary"]; + request.isDataBinary = true; + } else if (parsedArguments["d"]) { + request.data = parsedArguments["d"]; + } else if (parsedArguments["data-ascii"]) { + request.data = parsedArguments["data-ascii"]; + } - if (parsedArguments['u']) { - request.auth = parsedArguments['u']; - } - if (parsedArguments['user']) { - request.auth = parsedArguments['user']; - } - if (Array.isArray(request.data)) { - request.dataArray = request.data - request.data = joinDataArguments(request.data); - } + if (parsedArguments["u"]) { + request.auth = parsedArguments["u"]; + } + if (parsedArguments["user"]) { + request.auth = parsedArguments["user"]; + } + if (Array.isArray(request.data)) { + request.dataArray = request.data; + request.data = joinDataArguments(request.data); + } - if (parsedArguments['k'] || parsedArguments['insecure']) { - request.insecure = true; - } - return request; + if (parsedArguments["k"] || parsedArguments["insecure"]) { + request.insecure = true; + } + return request; } - export default parseCurlCommand; diff --git a/assets/js/pwa.js b/assets/js/pwa.js index 81adf4306..02ed1b133 100644 --- a/assets/js/pwa.js +++ b/assets/js/pwa.js @@ -35,8 +35,6 @@ export default () => { }); // When the app is uninstalled, add the prompts back - - return async () => { if (deferredPrompt) { deferredPrompt.prompt(); diff --git a/build.js b/build.js index fec57b032..b2dd9f89f 100644 --- a/build.js +++ b/build.js @@ -1,10 +1,12 @@ const axios = require("axios"); const fs = require("fs"); -const { spawnSync } = require("child_process"); +const { + spawnSync +} = require("child_process"); const runCommand = (command, args) => spawnSync(command, args) - .stdout.toString() - .replace(/\n/g, ""); + .stdout.toString() + .replace(/\n/g, ""); const FAIL_ON_ERROR = false; const PW_BUILD_DATA_DIR = "./.postwoman"; @@ -27,7 +29,9 @@ try { .get("https://api.github.com/repos/liyasthomas/postwoman/releases") // If we can't get it from GitHub, we'll resort to getting it from package.json .catch(ex => ({ - data: [{ tag_name: require("./package.json").version }] + data: [{ + tag_name: require("./package.json").version + }] }))).data[0]["tag_name"]; } @@ -37,8 +41,8 @@ try { version.variant = process.env.TRAVIS_BRANCH || runCommand("git", ["branch"]) - .split("* ")[1] - .split(" ")[0] + (IS_DEV_MODE ? " - DEV MODE" : ""); + .split("* ")[1] + .split(" ")[0] + (IS_DEV_MODE ? " - DEV MODE" : ""); if (["", "master"].includes(version.variant)) delete version.variant; diff --git a/components/autocomplete.vue b/components/autocomplete.vue index 26359b574..750bf4897 100644 --- a/components/autocomplete.vue +++ b/components/autocomplete.vue @@ -29,176 +29,182 @@ diff --git a/components/collections/addCollection.vue b/components/collections/addCollection.vue index 1d10775e3..8466f7de7 100644 --- a/components/collections/addCollection.vue +++ b/components/collections/addCollection.vue @@ -1,64 +1,64 @@ diff --git a/components/collections/addFolder.vue b/components/collections/addFolder.vue index bc70f87d4..1141bc47a 100644 --- a/components/collections/addFolder.vue +++ b/components/collections/addFolder.vue @@ -1,64 +1,67 @@ diff --git a/components/collections/collection.vue b/components/collections/collection.vue index 332d8d8fb..08aeb8bef 100644 --- a/components/collections/collection.vue +++ b/components/collections/collection.vue @@ -1,103 +1,103 @@ diff --git a/components/collections/editCollection.vue b/components/collections/editCollection.vue index 5cf952a99..6b67049d2 100644 --- a/components/collections/editCollection.vue +++ b/components/collections/editCollection.vue @@ -1,67 +1,71 @@ diff --git a/components/collections/editFolder.vue b/components/collections/editFolder.vue index b0b94f2c8..39c1f8244 100644 --- a/components/collections/editFolder.vue +++ b/components/collections/editFolder.vue @@ -1,70 +1,70 @@ diff --git a/components/collections/editRequest.vue b/components/collections/editRequest.vue index cbcb5c35c..3269b2c4b 100644 --- a/components/collections/editRequest.vue +++ b/components/collections/editRequest.vue @@ -1,132 +1,122 @@ - - diff --git a/components/collections/folder.vue b/components/collections/folder.vue index 4bacf9830..4deb99575 100644 --- a/components/collections/folder.vue +++ b/components/collections/folder.vue @@ -1,90 +1,90 @@ diff --git a/components/collections/importExportCollections.vue b/components/collections/importExportCollections.vue index 5e57518a7..a7d54f8ad 100644 --- a/components/collections/importExportCollections.vue +++ b/components/collections/importExportCollections.vue @@ -1,110 +1,117 @@ diff --git a/components/collections/index.vue b/components/collections/index.vue index 2e44eba69..4cd7383d8 100644 --- a/components/collections/index.vue +++ b/components/collections/index.vue @@ -5,50 +5,41 @@ TODO: - - diff --git a/components/logo.vue b/components/logo.vue index 3e080efe6..46cee36b3 100644 --- a/components/logo.vue +++ b/components/logo.vue @@ -1,11 +1,34 @@ @@ -59,8 +59,8 @@ margin: $handleSpacing; background-color: $inactiveHandleColor; - width: #{ $height - ($handleSpacing * 2) }; - height: #{ $height - ($handleSpacing * 2) }; + width: #{$height - ($handleSpacing * 2)}; + height: #{$height - ($handleSpacing * 2)}; border-radius: 100px; pointer-events: none; @@ -77,14 +77,12 @@ } } } - diff --git a/directives/textareaAutoHeight.js b/directives/textareaAutoHeight.js index 10a566ac5..6914d99d3 100644 --- a/directives/textareaAutoHeight.js +++ b/directives/textareaAutoHeight.js @@ -1,8 +1,8 @@ export default { - name: "textareaAutoHeight", - update(element) { - if (element.scrollHeight !== element.clientHeight) { - element.style.minHeight = `${element.scrollHeight}px`; + name: "textareaAutoHeight", + update(element) { + if (element.scrollHeight !== element.clientHeight) { + element.style.minHeight = `${element.scrollHeight}px`; + } } - } } diff --git a/layouts/default.vue b/layouts/default.vue index dbb10401e..6f9837e7b 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -4,7 +4,9 @@
-

Postwoman

+

+ Postwoman +

API request builder

@@ -12,13 +14,20 @@ + --> HTTP WebSocket - + - + @@ -30,7 +39,7 @@
@@ -38,9 +47,14 @@ add_to_home_screen Install PWA - @@ -48,17 +62,29 @@

- {{version.name}} + {{version.name}} - - {{version.hash}} + - + {{version.hash}} - ({{version.variant}}) + ({{version.variant}}) • - by Liyas Thomas 🦄Subscribe + by + Liyas Thomas 🦄 • + Subscribe

+ + diff --git a/layouts/error.vue b/layouts/error.vue index f2f332fdd..fc1e912e1 100644 --- a/layouts/error.vue +++ b/layouts/error.vue @@ -1,10 +1,16 @@ @@ -25,20 +31,20 @@ diff --git a/middleware/parsedefaulturl.js b/middleware/parsedefaulturl.js index 90fb6cf92..042f21cac 100644 --- a/middleware/parsedefaulturl.js +++ b/middleware/parsedefaulturl.js @@ -1,5 +1,8 @@ -export default function({ route, redirect }) { - if(route.fullPath !== '/') { +export default function ({ + route, + redirect +}) { + if (route.fullPath !== '/') { return redirect('/'); } -} \ No newline at end of file +} diff --git a/pages/index.vue b/pages/index.vue index f92021c01..4a97861a8 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -2,8 +2,8 @@
@@ -54,37 +54,62 @@
  • - +
  • - +
  • - +
  • -
    +
    • - Content Type + Content Type
    • - - Raw Input {{ rawInput ? "Enabled" : "Disabled" }} - + Raw Input {{ rawInput ? "Enabled" : "Disabled" }}
    @@ -92,15 +117,34 @@
    • - +
    • - +
    • - +
    • @@ -123,29 +167,60 @@
      • - +
    - -
    - - -
    @@ -167,13 +242,24 @@
    -
    - + @@ -181,13 +267,21 @@
    • - +
    • - +
      @@ -202,8 +296,18 @@
    -
    {{response.body}}
    - +
    {{response.body}}
    +
    @@ -256,12 +370,12 @@
    • - +
    - +
    @@ -276,15 +390,33 @@
    - +
    • - +
    • - +
    • @@ -304,7 +436,7 @@
    - +
    @@ -319,15 +451,27 @@
    - + - - + + - - + + diff --git a/pages/websocket.vue b/pages/websocket.vue index 34d806b63..c70884149 100644 --- a/pages/websocket.vue +++ b/pages/websocket.vue @@ -4,7 +4,13 @@ - +