This commit is contained in:
Liyas Thomas
2019-10-29 12:18:01 +05:30
14 changed files with 661 additions and 483 deletions

View File

@@ -130,6 +130,25 @@ _History entries can be sorted by any fields_
_Histories can deleted one-by-one or all together_
📁 **Collections**: Keep your API requests organized with collections and folders. Reuse them with a single click.
**Options:**
- Create infinite collections, folders and requests
- Edit, delete, move, export, import and replace
_Export, import and replace collections with JSON files_
_Collections are synced with local session storage_
📁 **Proxy**: Enable Proxy Mode from Settings to access blocked APIs
**Features:**
- Hide your IP address
- Fixes [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (Cross Origin Resource Sharing) issues
- Access APIs served in non-HTTPS (`http://`, `localhost`, etc.)
_Proxy is hosted by ApolloTV - [Privacy policy](https://apollotv.xyz/legal)_
## Demo 🚀 [![Website](https://img.shields.io/website-up-down-green-red/https/shields.io.svg?label=website)](https://postwoman.io)
[https://postwoman.io](https://postwoman.io)

View File

@@ -97,9 +97,7 @@ function parseCurlCommand(curlCommand) {
}
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];
const [key, value] = multipartArgument.split("=", 2);
multipartUploads[key] = value;
});
}

View File

@@ -1,5 +1,5 @@
<template>
<fieldset :id="label.toLowerCase()" :class="{ 'no-colored-frames': noFrameColors }">
<fieldset :id="label.toLowerCase()" :class="{ 'no-colored-frames': !frameColorsEnabled }">
<legend @click.prevent="collapse">
<i class="material-icons icon">{{ icon }}</i>
<span>{{ label }}</span>
@@ -24,8 +24,8 @@
<script>
export default {
computed: {
noFrameColors() {
return this.$store.state.postwoman.settings.DISABLE_FRAME_COLORS || false;
frameColorsEnabled() {
return this.$store.state.postwoman.settings.FRAME_COLORS_ENABLED || false;
}
},

View File

@@ -33,6 +33,7 @@
</nav>
</div>
</header>
<br>
<nuxt id="main" />
<footer>
<!-- Top section of footer: GitHub/install links -->

View File

@@ -27,9 +27,6 @@ export default {
server: {
host: '0.0.0.0', // default: localhost
},
serverMiddleware: [
'~/proxy/index.js'
],
head: {
title: `${meta.name} \u2022 ${meta.shortDescription}`,
meta: [

541
package-lock.json generated
View File

@@ -911,9 +911,9 @@
}
},
"@nuxt/babel-preset-app": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/babel-preset-app/-/babel-preset-app-2.10.1.tgz",
"integrity": "sha512-kTJ1+kperaoPdkIE1Do6x+/2cMEk0zMKiLCc6a4vUvnhkfPLc5m5/ylwx2kke42xXqTGHNX84BSaJ891AxDJgQ==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/babel-preset-app/-/babel-preset-app-2.10.2.tgz",
"integrity": "sha512-620Ho7tp0054PL+1fu4aJAaKs/VbpkS9KsuUMPNmmxPPt+UfVtEIesds5OIatT4tgO/SPQXfwPC4chA5u1duBQ==",
"requires": {
"@babel/core": "^7.6.4",
"@babel/plugin-proposal-class-properties": "^7.5.5",
@@ -926,17 +926,17 @@
}
},
"@nuxt/builder": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/builder/-/builder-2.10.1.tgz",
"integrity": "sha512-LyKVoR7f8CKkeIk1EYvpXaMxO6ShASH3iA/5ck0PDm0qcl6iyn4bTwvF55cwkbPP+hStEjqpkhTccNxDTWCgQQ==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/builder/-/builder-2.10.2.tgz",
"integrity": "sha512-Apk46yuCbcSCrBN2dh1idIESjkxciW8pyAcGBfNW17IzEA55/XmkjQWTEMlI7fkHDUFQ4YXOcM+gYqP/cx72ew==",
"requires": {
"@nuxt/devalue": "^1.2.4",
"@nuxt/utils": "2.10.1",
"@nuxt/vue-app": "2.10.1",
"chokidar": "^3.2.1",
"@nuxt/utils": "2.10.2",
"@nuxt/vue-app": "2.10.2",
"chokidar": "^3.2.2",
"consola": "^2.10.1",
"fs-extra": "^8.1.0",
"glob": "^7.1.4",
"glob": "^7.1.5",
"hash-sum": "^2.0.0",
"ignore": "^5.1.4",
"lodash": "^4.17.15",
@@ -946,6 +946,19 @@
"upath": "^1.2.0"
},
"dependencies": {
"glob": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
"integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -954,17 +967,17 @@
}
},
"@nuxt/cli": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/cli/-/cli-2.10.1.tgz",
"integrity": "sha512-byXTGebvtQfzd7yBSVeHD7IZqB+Qeh9shCO8Cn6j803fHJA7s+XwzhZq3lOqOvHBO4rQ3LTkjKnsBaYtGGtVuw==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/cli/-/cli-2.10.2.tgz",
"integrity": "sha512-EYLb5zYggTkdxO9Og9Vn+5/LDcQioL1zijIr5V2gi690v3Zim2rSifdgxuUDOlUPzoy+3kiOFqdtzOJ81ES+bA==",
"requires": {
"@nuxt/config": "2.10.1",
"@nuxt/utils": "2.10.1",
"@nuxt/config": "2.10.2",
"@nuxt/utils": "2.10.2",
"boxen": "^4.1.0",
"chalk": "^2.4.2",
"consola": "^2.10.1",
"esm": "^3.2.25",
"execa": "^2.1.0",
"execa": "^3.2.0",
"exit": "^0.1.2",
"fs-extra": "^8.1.0",
"hable": "^2.3.2",
@@ -986,15 +999,16 @@
}
},
"execa": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz",
"integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-3.2.0.tgz",
"integrity": "sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw==",
"requires": {
"cross-spawn": "^7.0.0",
"get-stream": "^5.0.0",
"human-signals": "^1.1.1",
"is-stream": "^2.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^3.0.0",
"npm-run-path": "^4.0.0",
"onetime": "^5.1.0",
"p-finally": "^2.0.0",
"signal-exit": "^3.0.2",
@@ -1020,9 +1034,9 @@
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"npm-run-path": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
"integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.0.tgz",
"integrity": "sha512-8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ==",
"requires": {
"path-key": "^3.0.0"
}
@@ -1061,25 +1075,25 @@
}
},
"@nuxt/config": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/config/-/config-2.10.1.tgz",
"integrity": "sha512-ydxDU1U4bEwLixn8wqYy8Y+4nVOtMaSodW0a4Kuyx9Z/3qnQbI0yvdO58I6CIw+6njAmATsAqaApIcX9bJQOeQ==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/config/-/config-2.10.2.tgz",
"integrity": "sha512-A4Tvm85PyeBAKwTlqQkFiuatmXr2Ro/oLelvi9wnrF/jSmgzU9NwcIZIQBND0/XpK1BL49ze5al5+SELOoGUpg==",
"requires": {
"@nuxt/utils": "2.10.1",
"@nuxt/utils": "2.10.2",
"consola": "^2.10.1",
"std-env": "^2.2.1"
}
},
"@nuxt/core": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/core/-/core-2.10.1.tgz",
"integrity": "sha512-6GLUNo7wILEEeEzxcTLVc3N5ao+A7z36iW5RUK1PibT2CERwlJbyoQILMioxXwTldPTA4tPAm7xmOgb4CC66Yw==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/core/-/core-2.10.2.tgz",
"integrity": "sha512-PCA9J41kv7SA3rZbhuLwwzPMJr7NtDVofTzAMJ+NOpIuGiQ7rHTtwgprEXs9j08A5hyk5zfmgypjyZKxxmOFjA==",
"requires": {
"@nuxt/config": "2.10.1",
"@nuxt/config": "2.10.2",
"@nuxt/devalue": "^1.2.4",
"@nuxt/server": "2.10.1",
"@nuxt/utils": "2.10.1",
"@nuxt/vue-renderer": "2.10.1",
"@nuxt/server": "2.10.2",
"@nuxt/utils": "2.10.2",
"@nuxt/vue-renderer": "2.10.2",
"consola": "^2.10.1",
"debug": "^4.1.1",
"esm": "^3.2.25",
@@ -1133,11 +1147,11 @@
}
},
"@nuxt/generator": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/generator/-/generator-2.10.1.tgz",
"integrity": "sha512-tjd1cf1fX3eGpdIeacgkdWloOIin3XQBFzJoquNbz4noqwWuhjyN6Noi+9FaDrFpMu6qZE5rvX1Zf0/6kP1SJg==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/generator/-/generator-2.10.2.tgz",
"integrity": "sha512-0d8oENAxSnv5s2FtqtyDZ2S9lLVge9M1gKmw5BFaRJRyvfT0Bq9hG+tU9lnHslYkScEToomFUcV5Wt1E22fuvQ==",
"requires": {
"@nuxt/utils": "2.10.1",
"@nuxt/utils": "2.10.2",
"chalk": "^2.4.2",
"consola": "^2.10.1",
"fs-extra": "^8.1.0",
@@ -1166,12 +1180,12 @@
}
},
"@nuxt/server": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/server/-/server-2.10.1.tgz",
"integrity": "sha512-+1PMy8VknZWKj/uxKxwllTXuU+mgGOq17YSWfhKUAidlAb1YpdndlVOuWZgfdEsoQjJYq1vmIHMg8389chy7+g==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/server/-/server-2.10.2.tgz",
"integrity": "sha512-kWUmBq9/4ftXJXcSfNphMwweEfd8lBD7XCrFR/tK3FciIO/MuWlAtReNP8fC+KTC00RXks2fiR1xFpGEsIHUaA==",
"requires": {
"@nuxt/config": "2.10.1",
"@nuxt/utils": "2.10.1",
"@nuxt/config": "2.10.2",
"@nuxt/utils": "2.10.2",
"@nuxtjs/youch": "^4.2.3",
"chalk": "^2.4.2",
"compression": "^1.7.4",
@@ -1190,9 +1204,9 @@
}
},
"@nuxt/utils": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/utils/-/utils-2.10.1.tgz",
"integrity": "sha512-SXTm0vSh3H6Izpib/p0IepopmKaJz4JUtSuHVoauCv+CQMj09GRUeKwZ8SbXjBNQmGI+tdKedVlUUKKYY8R4LQ==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/utils/-/utils-2.10.2.tgz",
"integrity": "sha512-GBtQlGovu7inXwaKBsD+ayt//4yZAJAazlHibMoRJxK/O8gfhuGf/hINxB98ZpjhjttCuJ6nABUN90+e06ARtg==",
"requires": {
"consola": "^2.10.1",
"fs-extra": "^8.1.0",
@@ -1212,9 +1226,9 @@
}
},
"@nuxt/vue-app": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/vue-app/-/vue-app-2.10.1.tgz",
"integrity": "sha512-GyjBOwyngKrb4NeSRP5s8tr4ccu05FhwuaN+TIlXsRSaPYaGz7LnLsxp5UgHrgMJH8TqIB6k4b9syejR7FT8Jg==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/vue-app/-/vue-app-2.10.2.tgz",
"integrity": "sha512-aP5JWQaaimo/zMyoZg7aUqS6wYZq9jtDt/woKWOeuJJvnKE+youitazXbuVf+1l4c771b4AZMEuDW1duOfjDRA==",
"requires": {
"node-fetch": "^2.6.0",
"unfetch": "^4.1.0",
@@ -1228,12 +1242,12 @@
}
},
"@nuxt/vue-renderer": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/vue-renderer/-/vue-renderer-2.10.1.tgz",
"integrity": "sha512-gjI8/0U5Qe5ieaRW9Y7/a+QOePABgvp4zkUZCUdQKtjniJ3AMKpvppSORKIH0YJl1Uv+X/BY84MfjEnLYdB0AQ==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/vue-renderer/-/vue-renderer-2.10.2.tgz",
"integrity": "sha512-nvgTlAPQ0gWAF8lXMGqjkbl54xunVX+v4he8CGqE+6S2ipdLxahmpbtxMRlJeAaGzOdv+rB6tF33O2PF9cL84w==",
"requires": {
"@nuxt/devalue": "^1.2.4",
"@nuxt/utils": "2.10.1",
"@nuxt/utils": "2.10.2",
"consola": "^2.10.1",
"fs-extra": "^8.1.0",
"lru-cache": "^5.1.1",
@@ -1243,17 +1257,17 @@
}
},
"@nuxt/webpack": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/@nuxt/webpack/-/webpack-2.10.1.tgz",
"integrity": "sha512-AH88HI8mJPj6EcMztgsVbfEwcUT46kcAkgFpYbVeMmucf7IxChyS+uf1ev9q4+wWvw1B8Hp9enAIZXBfEIjYTg==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/@nuxt/webpack/-/webpack-2.10.2.tgz",
"integrity": "sha512-Hb/9VDORABVk4AFrMLWwoEk4UV4XL8W6Yp9PvuGZ0t4a82243gWEZ39veawQmRHRsO96fBJrzs4dzwKVnkLosg==",
"requires": {
"@babel/core": "^7.6.4",
"@nuxt/babel-preset-app": "2.10.1",
"@nuxt/babel-preset-app": "2.10.2",
"@nuxt/friendly-errors-webpack-plugin": "^2.5.0",
"@nuxt/utils": "2.10.1",
"@nuxt/utils": "2.10.2",
"babel-loader": "^8.0.6",
"cache-loader": "^4.1.0",
"caniuse-lite": "^1.0.30000999",
"caniuse-lite": "^1.0.30001002",
"chalk": "^2.4.2",
"consola": "^2.10.1",
"css-loader": "^3.2.0",
@@ -1261,7 +1275,7 @@
"eventsource-polyfill": "^0.9.6",
"extract-css-chunks-webpack-plugin": "^4.6.0",
"file-loader": "^4.2.0",
"glob": "^7.1.4",
"glob": "^7.1.5",
"hard-source-webpack-plugin": "^0.13.1",
"hash-sum": "^2.0.0",
"html-webpack-plugin": "^3.2.0",
@@ -1270,7 +1284,7 @@
"pify": "^4.0.1",
"postcss": "^7.0.18",
"postcss-import": "^12.0.1",
"postcss-import-resolver": "^1.2.3",
"postcss-import-resolver": "^2.0.0",
"postcss-loader": "^3.0.0",
"postcss-preset-env": "^6.7.0",
"postcss-url": "^8.0.0",
@@ -1282,14 +1296,27 @@
"time-fix-plugin": "^2.0.6",
"url-loader": "^2.2.0",
"vue-loader": "^15.7.1",
"webpack": "^4.41.0",
"webpack-bundle-analyzer": "^3.5.2",
"webpack": "^4.41.2",
"webpack-bundle-analyzer": "^3.6.0",
"webpack-dev-middleware": "^3.7.2",
"webpack-hot-middleware": "^2.25.0",
"webpack-node-externals": "^1.7.2",
"webpackbar": "^4.0.0"
},
"dependencies": {
"glob": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
"integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -1298,22 +1325,30 @@
}
},
"@nuxtjs/axios": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/@nuxtjs/axios/-/axios-5.6.0.tgz",
"integrity": "sha512-Rl4nnudm+sSkMtgfSEAeA5bq6aFpbBoYVXLXWaDxfydslukRd2SdEDdGv0gHE7F/jtIw+JfptWDHCHnzuoO/Ng==",
"version": "5.8.0",
"resolved": "https://registry.npmjs.org/@nuxtjs/axios/-/axios-5.8.0.tgz",
"integrity": "sha512-1+I2mTUuydKkY/Jz1InpLpkGWpReO5USNWxZpPaQL3py4Kv3sDF83ll/uHGngosyXr+OKBXoALRLCjmwSY77lg==",
"requires": {
"@nuxtjs/proxy": "^1.3.3",
"axios": "^0.19.0",
"axios-retry": "^3.1.2",
"consola": "^2.10.1"
"consola": "^2.10.1",
"defu": "^0.0.3"
},
"dependencies": {
"defu": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/defu/-/defu-0.0.3.tgz",
"integrity": "sha512-u/fe4fBwrD0KACvI0sYWTWFzooqONZq8ywPnK0ZkAgLNwaDTKpSWvMiiU4QmzhrQCXu8Y0+HIWP8amE18lsL4A=="
}
}
},
"@nuxtjs/google-analytics": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@nuxtjs/google-analytics/-/google-analytics-2.2.0.tgz",
"integrity": "sha512-Ds166zi7KAwc23gHOkKHovSdMEDJS55UJGkowT4IfVAOCE00l65J3fKI9t2P9+O5cdokXTadNiMLGZV5QM731Q==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/google-analytics/-/google-analytics-2.2.1.tgz",
"integrity": "sha512-li2Xd9G1v6+wdAiAM+G7USTrQ+/ND/fmf02cKs5IRLbKxba+RHDePKu4s5kvWyrgeczgZRaL+Tm4s24mGDYS6g==",
"requires": {
"vue-analytics": "^5.16.2"
"vue-analytics": "^5.17.2"
}
},
"@nuxtjs/google-tag-manager": {
@@ -1400,6 +1435,12 @@
"@types/node": "*"
}
},
"@types/sizzle": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz",
"integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==",
"dev": true
},
"@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz",
@@ -2041,16 +2082,16 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"autoprefixer": {
"version": "9.6.4",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.4.tgz",
"integrity": "sha512-Koz2cJU9dKOxG8P1f8uVaBntOv9lP4yz9ffWvWaicv9gHBPhpQB22nGijwd8gqW9CNT+UdkbQOQNLVI8jN1ZfQ==",
"version": "9.7.0",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.0.tgz",
"integrity": "sha512-j2IRvaCfrUxIiZun9ba4mhJ2omhw4OY88/yVzLO+lHhGBumAAK72PgM6gkbSN8iregPOn1ZlxGkmZh2CQ7X4AQ==",
"requires": {
"browserslist": "^4.7.0",
"caniuse-lite": "^1.0.30000998",
"browserslist": "^4.7.2",
"caniuse-lite": "^1.0.30001004",
"chalk": "^2.4.2",
"normalize-range": "^0.1.2",
"num2fraction": "^1.2.2",
"postcss": "^7.0.18",
"postcss": "^7.0.19",
"postcss-value-parser": "^4.0.2"
}
},
@@ -2092,9 +2133,9 @@
}
},
"is-buffer": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
}
}
},
@@ -2355,9 +2396,9 @@
}
},
"bluebird": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz",
"integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg=="
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz",
"integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg=="
},
"bn.js": {
"version": "4.11.8",
@@ -2528,13 +2569,13 @@
}
},
"browserslist": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz",
"integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==",
"version": "4.7.2",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz",
"integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==",
"requires": {
"caniuse-lite": "^1.0.30000989",
"electron-to-chromium": "^1.3.247",
"node-releases": "^1.1.29"
"caniuse-lite": "^1.0.30001004",
"electron-to-chromium": "^1.3.295",
"node-releases": "^1.1.38"
}
},
"buffer": {
@@ -2769,9 +2810,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30000999",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz",
"integrity": "sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg=="
"version": "1.0.30001004",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001004.tgz",
"integrity": "sha512-3nfOR4O8Wa2RWoYfJkMtwRVOsK96TQ+eq57wd0iKaEWl8dwG4hKZ/g0MVBfCvysFvMLi9fQGR/DvozMdkEPl3g=="
},
"caseless": {
"version": "0.12.0",
@@ -2801,18 +2842,18 @@
"integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ=="
},
"chokidar": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.2.1.tgz",
"integrity": "sha512-/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w==",
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.2.2.tgz",
"integrity": "sha512-bw3pm7kZ2Wa6+jQWYP/c7bAZy3i4GwiIiMO2EeRjrE48l8vBqC/WvFhSF0xyM8fQiPEGvwMY/5bqDG7sSEOuhg==",
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.1.0",
"fsevents": "~2.1.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.1.3"
"readdirp": "~3.2.0"
}
},
"chownr": {
@@ -3285,11 +3326,11 @@
"integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
},
"core-js-compat": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz",
"integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==",
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.4.tgz",
"integrity": "sha512-7OK3/LPP8R3Ovasf3GilEOp+o1w0ZKJ75FMou2RDfTwIV69G5RkKCGFnqgBv/ZhR6xo9GCzlfVALyHmydbE7DA==",
"requires": {
"browserslist": "^4.6.6",
"browserslist": "^4.7.2",
"semver": "^6.3.0"
},
"dependencies": {
@@ -3615,13 +3656,14 @@
"integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk="
},
"cypress": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-3.4.1.tgz",
"integrity": "sha512-1HBS7t9XXzkt6QHbwfirWYty8vzxNMawGj1yI+Fu6C3/VZJ8UtUngMW6layqwYZzLTZV8tiDpdCNBypn78V4Dg==",
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-3.5.0.tgz",
"integrity": "sha512-I1iSReD2C8CTP6s4BvQky4gEqHBnKLmhBIqFyCUZdj6BQ6ZDxGnmIbQPM5g79E2iP60KTIbTK99ZPSDVtsNUUg==",
"dev": true,
"requires": {
"@cypress/listr-verbose-renderer": "0.4.1",
"@cypress/xvfb": "1.2.4",
"@types/sizzle": "2.3.2",
"arch": "2.1.1",
"bluebird": "3.5.0",
"cachedir": "1.3.0",
@@ -3648,6 +3690,7 @@
"request-progress": "3.0.0",
"supports-color": "5.5.0",
"tmp": "0.1.0",
"untildify": "3.0.3",
"url": "0.11.0",
"yauzl": "2.10.0"
},
@@ -3770,9 +3813,9 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
"deepmerge": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.1.1.tgz",
"integrity": "sha512-+qO5WbNBKBaZez95TffdUDnGIo4+r5kmsX8aOb7PDHvXsTbghAmleuxjs6ytNaf5Eg4FGBXDS5vqO61TRi6BMg=="
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.1.tgz",
"integrity": "sha512-32P7FIV6JKt0hPMFNlWFytzVGpppYHFKdnhFUEMXheWc8Lw4HnHEzJa5yxhaQedDAXv2SI6zD7+UbqnC5k9g9Q=="
},
"define-properties": {
"version": "1.1.3",
@@ -3998,9 +4041,9 @@
"integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ=="
},
"electron-to-chromium": {
"version": "1.3.280",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.280.tgz",
"integrity": "sha512-qYWNMjKLEfQAWZF2Sarvo+ahigu0EArnpCFSoUuZJS3W5wIeVfeEvsgmT2mgIrieQkeQ0+xFmykK3nx2ezekPQ=="
"version": "1.3.296",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz",
"integrity": "sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ=="
},
"elegant-spinner": {
"version": "1.0.1",
@@ -4046,20 +4089,45 @@
}
},
"enhanced-resolve": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
"integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz",
"integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
"requires": {
"graceful-fs": "^4.1.2",
"memory-fs": "^0.4.0",
"object-assign": "^4.0.1",
"tapable": "^0.2.7"
"memory-fs": "^0.5.0",
"tapable": "^1.0.0"
},
"dependencies": {
"tapable": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
"integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A=="
"memory-fs": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
"integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
"requires": {
"errno": "^0.1.3",
"readable-stream": "^2.0.1"
}
},
"readable-stream": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
}
}
},
@@ -4093,9 +4161,9 @@
}
},
"es-abstract": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
"integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
"version": "1.16.0",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
"integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
"requires": {
"es-to-primitive": "^1.2.0",
"function-bind": "^1.1.1",
@@ -4187,9 +4255,9 @@
}
},
"eventemitter3": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
"integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
"integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg=="
},
"events": {
"version": "3.0.0",
@@ -4526,9 +4594,9 @@
"integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w=="
},
"figures": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz",
"integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
"integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
"requires": {
"escape-string-regexp": "^1.0.5"
}
@@ -4641,9 +4709,9 @@
}
},
"follow-redirects": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.8.1.tgz",
"integrity": "sha512-micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw==",
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
"integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
"requires": {
"debug": "^3.0.0"
},
@@ -4801,9 +4869,9 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.0.tgz",
"integrity": "sha512-+iXhW3LuDQsno8dOIrCIT/CBjeBWuP7PXe8w9shnj9Lebny/Gx1ZjVBYwexLz36Ri2jKuXMNpV6CYNh8lHHgrQ==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.1.tgz",
"integrity": "sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==",
"optional": true
},
"fstream": {
@@ -5185,9 +5253,9 @@
"integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="
},
"hosted-git-info": {
"version": "2.8.4",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
"integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
"integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
"dev": true
},
"hsl-regex": {
@@ -5339,11 +5407,11 @@
}
},
"http-proxy": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
"integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
"version": "1.18.0",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
"integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
"requires": {
"eventemitter3": "^3.0.0",
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
"requires-port": "^1.0.0"
}
@@ -5375,6 +5443,11 @@
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
},
"human-signals": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
"integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -5716,9 +5789,9 @@
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
},
"is-retry-allowed": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
"integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
"integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
},
"is-stream": {
"version": "1.1.0",
@@ -6682,9 +6755,9 @@
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"minipass": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.0.1.tgz",
"integrity": "sha512-2y5okJ4uBsjoD2vAbLKL9EUQPPkC0YMIp+2mZOXG3nBba++pdfJWRxx2Ewirc0pwAJYu4XtWg2EkVo1nRXuO/w==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz",
"integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==",
"requires": {
"yallist": "^4.0.0"
},
@@ -6939,9 +7012,9 @@
"integrity": "sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ=="
},
"node-releases": {
"version": "1.1.35",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.35.tgz",
"integrity": "sha512-JGcM/wndCN/2elJlU0IGdVEJQQnJwsLbgPCFd2pY7V0mxf17bZ0Gb/lgOtL29ZQhvEX5shnVhxQyZz3ex94N8w==",
"version": "1.1.39",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz",
"integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==",
"requires": {
"semver": "^6.3.0"
},
@@ -6966,9 +7039,9 @@
}
},
"node-sass": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
"integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
"version": "4.13.0",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz",
"integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==",
"dev": true,
"requires": {
"async-foreach": "^0.1.3",
@@ -6978,7 +7051,7 @@
"get-stdin": "^4.0.1",
"glob": "^7.0.3",
"in-publish": "^2.0.0",
"lodash": "^4.17.11",
"lodash": "^4.17.15",
"meow": "^3.7.0",
"mkdirp": "^0.5.1",
"nan": "^2.13.2",
@@ -7134,17 +7207,17 @@
"dev": true
},
"nuxt": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/nuxt/-/nuxt-2.10.1.tgz",
"integrity": "sha512-75QQ3x1WAcoBb7krHLzSXVK2/TKUFCHfsskd0bbdAl1KI9Xweyd6SGtdgGsdjWOlaUhijsXFqrPnfPPmrpLMzQ==",
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/nuxt/-/nuxt-2.10.2.tgz",
"integrity": "sha512-BDeio2WwwMrW4bctRYNHq1su+rwIJzuo87bAZv8Xs2/Gw5g4bPIGZTiKGx6tSZBjxnONsGDOxhFOWZ5JpQEtrQ==",
"requires": {
"@nuxt/builder": "2.10.1",
"@nuxt/cli": "2.10.1",
"@nuxt/core": "2.10.1",
"@nuxt/generator": "2.10.1",
"@nuxt/builder": "2.10.2",
"@nuxt/cli": "2.10.2",
"@nuxt/core": "2.10.2",
"@nuxt/generator": "2.10.2",
"@nuxt/loading-screen": "^1.2.0",
"@nuxt/opencollective": "^0.3.0",
"@nuxt/webpack": "2.10.1"
"@nuxt/webpack": "2.10.2"
}
},
"oauth-sign": {
@@ -7626,9 +7699,9 @@
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
},
"postcss": {
"version": "7.0.18",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz",
"integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==",
"version": "7.0.21",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
"integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
"requires": {
"chalk": "^2.4.2",
"source-map": "^0.6.1",
@@ -7970,11 +8043,11 @@
}
},
"postcss-import-resolver": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/postcss-import-resolver/-/postcss-import-resolver-1.2.3.tgz",
"integrity": "sha512-7f+RZTagq9AjLYICk5TRLbjYAqGfOngRyNkKoV7MHcSew1FTatHliQuK/lg+eXuxppLy9wAfrFx15nxURMZmEg==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz",
"integrity": "sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==",
"requires": {
"enhanced-resolve": "^3.4.1"
"enhanced-resolve": "^4.1.1"
}
},
"postcss-initial": {
@@ -8895,9 +8968,9 @@
}
},
"readdirp": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.3.tgz",
"integrity": "sha512-ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q==",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz",
"integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==",
"requires": {
"picomatch": "^2.0.4"
}
@@ -8961,9 +9034,9 @@
}
},
"regjsgen": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
"integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA=="
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
"integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg=="
},
"regjsparser": {
"version": "0.6.0",
@@ -9276,9 +9349,9 @@
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"schema-utils": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.4.1.tgz",
"integrity": "sha512-RqYLpkPZX5Oc3fw/kHHHyP56fg5Y+XBpIpV8nCg0znIALfq3OH+Ea9Hfeac9BAMwG5IICltiZ0vxFvJQONfA5w==",
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz",
"integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==",
"requires": {
"ajv": "^6.10.2",
"ajv-keywords": "^3.4.1"
@@ -9725,12 +9798,12 @@
}
},
"ssri": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-7.0.1.tgz",
"integrity": "sha512-FfndBvkXL9AHyGLNzU3r9AvYIBBZ7gm+m+kd0p8cT3/v4OliMAyipZAhLVEv1Zi/k4QFq9CstRGVd9pW/zcHFQ==",
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz",
"integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==",
"requires": {
"figgy-pudding": "^3.5.1",
"minipass": "^3.0.0"
"minipass": "^3.1.1"
}
},
"stable": {
@@ -10215,9 +10288,9 @@
"integrity": "sha512-I42EWhJ+2aeNQawGx1VtpO0DFI9YcfuvAMNIdKyf/6sRbHJ4P+ZQ/zIT87tE+ln1ymAGcCJds4dolfSAS0AcNg=="
},
"terser": {
"version": "4.3.8",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz",
"integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==",
"version": "4.3.9",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.3.9.tgz",
"integrity": "sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA==",
"requires": {
"commander": "^2.20.0",
"source-map": "~0.6.1",
@@ -10232,17 +10305,17 @@
}
},
"terser-webpack-plugin": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.1.3.tgz",
"integrity": "sha512-z5Utx0TxmirZvRNL1GC795tlDM+bO83ZfcbtkL1y1VLoWtZ7S2a9+HFCLnabSRE/Yjsu4zCEX6U6CIRo4dVmcQ==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.2.1.tgz",
"integrity": "sha512-jwdauV5Al7zopR6OAYvIIRcxXCSvLjZjr7uZE8l2tIWb/ryrGN48sJftqGf5k9z09tWhajx53ldp0XPI080YnA==",
"requires": {
"cacache": "^13.0.1",
"find-cache-dir": "^3.0.0",
"jest-worker": "^24.9.0",
"schema-utils": "^2.4.1",
"schema-utils": "^2.5.0",
"serialize-javascript": "^2.1.0",
"source-map": "^0.6.1",
"terser": "^4.3.8",
"terser": "^4.3.9",
"webpack-sources": "^1.4.3"
},
"dependencies": {
@@ -10546,19 +10619,14 @@
"integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw=="
},
"uglify-js": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.1.tgz",
"integrity": "sha512-+dSJLJpXBb6oMHP+Yvw8hUgElz4gLTh82XuX68QiJVTXaE5ibl6buzhNkQdYhBlIhozWOC9ge16wyRmjG4TwVQ==",
"version": "3.6.4",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.4.tgz",
"integrity": "sha512-9Yc2i881pF4BPGhjteCXQNaXx1DCwm3dtOyBaG2hitHjLWOczw/ki8vD1bqyT3u6K0Ms/FpCShkmfg+FtlOfYA==",
"requires": {
"commander": "2.20.0",
"commander": "~2.20.3",
"source-map": "~0.6.1"
},
"dependencies": {
"commander": {
"version": "2.20.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -10683,6 +10751,12 @@
}
}
},
"untildify": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz",
"integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==",
"dev": true
},
"upath": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
@@ -11009,9 +11083,9 @@
"integrity": "sha512-ER5moSbLZuNSMBFnEBVGhQ1uCBNJslH9W/Dw2W7GZN23UQA69uapP5GTT9Vm8Trc0PzBSVt6LzF3hGjmv41xcg=="
},
"vuex-persist": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/vuex-persist/-/vuex-persist-2.1.0.tgz",
"integrity": "sha512-H9RqXHeynBQG60rUrsinYNLoRFXkSxh2Xx8kTVFuvLRQ9jZd3HLMvm713m2r1dN/pVZBUgiIzTu6uj5hBsAOqg==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/vuex-persist/-/vuex-persist-2.1.1.tgz",
"integrity": "sha512-FD/l3M5b2y3r/zerE/IV7EmWAq03g/t5uKboLD3dB+8hyTAQztX+rqNvbJqBJ3aOcccIrkvEmyvwgOW9QM/LPg==",
"requires": {
"flatted": "^2.0.0",
"lodash.merge": "^4.6.2"
@@ -11695,9 +11769,9 @@
}
},
"webpack": {
"version": "4.41.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz",
"integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==",
"version": "4.41.2",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz",
"integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==",
"requires": {
"@webassemblyjs/ast": "1.8.5",
"@webassemblyjs/helper-module-context": "1.8.5",
@@ -11746,41 +11820,6 @@
"y18n": "^4.0.0"
}
},
"enhanced-resolve": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz",
"integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
"requires": {
"graceful-fs": "^4.1.2",
"memory-fs": "^0.5.0",
"tapable": "^1.0.0"
},
"dependencies": {
"memory-fs": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
"integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
"requires": {
"errno": "^0.1.3",
"readable-stream": "^2.0.1"
}
}
}
},
"readable-stream": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"schema-utils": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
@@ -11809,14 +11848,6 @@
"figgy-pudding": "^3.5.1"
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"terser-webpack-plugin": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
@@ -11836,9 +11867,9 @@
}
},
"webpack-bundle-analyzer": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.5.2.tgz",
"integrity": "sha512-g9spCNe25QYUVqHRDkwG414GTok2m7pTTP0wr6l0J50Z3YLS04+BGodTqqoVBL7QfU/U/9p/oiI5XFOyfZ7S/A==",
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz",
"integrity": "sha512-orUfvVYEfBMDXgEKAKVvab5iQ2wXneIEorGNsyuOyVYpjYrI7CUOhhXNDd3huMwQ3vNNWWlGP+hzflMFYNzi2g==",
"requires": {
"acorn": "^6.0.7",
"acorn-walk": "^6.1.1",
@@ -12030,9 +12061,9 @@
}
},
"wrap-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.0.0.tgz",
"integrity": "sha512-8YwLklVkHe4QNpGFrK6Mxm+BaMY7da6C9GlDED3xs3XwThyJHSbVwg9qC4s1N8tBFcnM1S0s8I390RC6SgGe+g==",
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.1.0.tgz",
"integrity": "sha512-y8j9eJaotnWgJkysmwld5GkLH2KE9srRvqQE2bu1tZb0O9Qgk1mLyz4Q4KIWyjZAi2+6NRqkM/A580IsUseDdw==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",

View File

@@ -18,23 +18,23 @@
"test": "start-server-and-test dev http://localhost:3000 e2e"
},
"dependencies": {
"@nuxtjs/axios": "^5.6.0",
"@nuxtjs/google-analytics": "^2.2.0",
"@nuxtjs/axios": "^5.8.0",
"@nuxtjs/google-analytics": "^2.2.1",
"@nuxtjs/google-tag-manager": "^2.3.0",
"@nuxtjs/pwa": "^3.0.0-beta.19",
"@nuxtjs/sitemap": "^2.0.0",
"@nuxtjs/toast": "^3.2.1",
"highlight.js": "^9.15.10",
"nuxt": "^2.10.1",
"nuxt": "^2.10.2",
"v-tooltip": "^2.0.2",
"vue-virtual-scroll-list": "^1.4.2",
"vuejs-auto-complete": "^0.9.0",
"vuex-persist": "^2.1.0",
"vuex-persist": "^2.1.1",
"yargs-parser": "^15.0.0"
},
"devDependencies": {
"cypress": "^3.4.1",
"node-sass": "^4.12.0",
"cypress": "^3.5.0",
"node-sass": "^4.13.0",
"sass-loader": "^7.3.1",
"start-server-and-test": "^1.10.6"
}

View File

@@ -38,11 +38,12 @@
</ul>
</div>
</pw-modal>
<pw-section class="blue" icon="cloud_upload" label="Request" ref="request">
<ul>
<li>
<label for="method">Method</label>
<select id="method" v-model="method">
<select id="method" v-model="method" @change="methodChange">
<option>GET</option>
<option>HEAD</option>
<option>POST</option>
@@ -132,7 +133,8 @@
<input
:placeholder="'key '+(index+1)"
:name="'bparam'+index"
v-model="param.key"
:value="param.key"
@change="$store.commit('setKeyBodyParams', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState"
autofocus
/>
@@ -142,7 +144,8 @@
:placeholder="'value '+(index+1)"
:id="'bvalue'+index"
:name="'bvalue'+index"
v-model="param.value"
:value="param.value"
@change="$store.commit('setValueBodyParams', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState"
/>
</li>
@@ -206,9 +209,9 @@
id="copyRequest"
ref="copyRequest"
:disabled="!isValidURL"
v-tooltip.bottom="'Sharable request URL'"
v-tooltip.bottom="'Copy Request URL'"
>
<i class="material-icons">share</i>
<i class="material-icons">file_copy</i>
</button>
<button
class="icon"
@@ -220,7 +223,7 @@
>
<i class="material-icons">save</i>
</button>
<button class="icon" @click="clearContent" v-tooltip.bottom="'Clear all'">
<button class="icon" @click="clearContent" v-tooltip.bottom="'Clear All'">
<i class="material-icons">clear_all</i>
</button>
</div>
@@ -263,62 +266,7 @@
</li>
</ul>
</pw-section>
<pw-section class="purple" icon="cloud_download" id="response" label="Response" ref="response">
<ul>
<li>
<label for="status">status</label>
<input
:class="statusCategory ? statusCategory.className : ''"
:value="response.status || '(waiting to send request)'"
ref="status"
id="status"
name="status"
readonly
type="text"
/>
</li>
</ul>
<ul v-for="(value, key) in response.headers" :key="key">
<li>
<label :for="key">{{key}}</label>
<input :id="key" :value="value" :name="key" readonly />
</li>
</ul>
<ul v-if="response.body">
<li>
<div class="flex-wrap">
<label for="body">response</label>
<div>
<button class="icon" @click="copyResponse" ref="copyResponse" v-if="response.body">
<i class="material-icons">file_copy</i>
<span>Copy</span>
</button>
</div>
</div>
<div id="response-details-wrapper">
<pre><code
ref="responseBody"
id="body"
rows="16"
placeholder="(waiting to send request)"
>{{response.body}}</code></pre>
<iframe
:class="{hidden: !previewEnabled}"
class="covers-response"
ref="previewFrame"
src="about:blank"
></iframe>
</div>
<div class="align-right" v-if="response.body && responseType === 'text/html'">
<button class="icon" @click.prevent="togglePreview">
<i class="material-icons" v-if="!previewEnabled">visibility</i>
<i class="material-icons" v-if="previewEnabled">visibility_off</i>
<span>{{ previewEnabled ? 'Hide Preview' : 'Preview HTML' }}</span>
</button>
</div>
</li>
</ul>
</pw-section>
<section>
<input id="tab-one" type="radio" name="grp" checked="checked" />
<label for="tab-one">Authentication</label>
@@ -373,6 +321,13 @@
<input placeholder="Token" name="bearer_token" v-model="bearerToken" />
</li>
</ul>
<div class="flex-wrap">
<pw-toggle
:on="!urlExcludes.auth"
@change="setExclude('auth', !$event)">
Include in URL
</pw-toggle>
</div>
</pw-section>
</div>
<input id="tab-two" type="radio" name="grp" />
@@ -405,7 +360,8 @@
<input
:placeholder="'header '+(index+1)"
:name="'header'+index"
v-model="header.key"
:value="header.key"
@change="$store.commit('setKeyHeader', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState"
autofocus
/>
@@ -414,7 +370,8 @@
<input
:placeholder="'value '+(index+1)"
:name="'value'+index"
v-model="header.value"
:value="header.value"
@change="$store.commit('setValueHeader', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState"
/>
</li>
@@ -466,12 +423,18 @@
<input
:placeholder="'parameter '+(index+1)"
:name="'param'+index"
v-model="param.key"
:value="param.key"
@change="$store.commit('setKeyParams', { index, value: $event.target.value })"
autofocus
/>
</li>
<li>
<input :placeholder="'value '+(index+1)" :name="'value'+index" v-model="param.value" />
<input
:placeholder="'value '+(index+1)"
:name="'value'+index"
:value="param.value"
@change="$store.commit('setValueParams', { index, value: $event.target.value })"
/>
</li>
<div>
<li>
@@ -492,10 +455,75 @@
</pw-section>
</div>
</section>
<history @useHistory="handleUseHistory" ref="historyComponent"></history>
<pw-section class="yellow" icon="folder_special" label="Collections" ref="Collections">
<collections></collections>
<br>
<pw-section class="purple" icon="cloud_download" id="response" label="Response" ref="response">
<ul>
<li>
<label for="status">status</label>
<input
:class="statusCategory ? statusCategory.className : ''"
:value="response.status || '(waiting to send request)'"
ref="status"
id="status"
name="status"
readonly
type="text"
/>
</li>
</ul>
<ul v-for="(value, key) in response.headers" :key="key">
<li>
<label :for="key">{{key}}</label>
<input :id="key" :value="value" :name="key" readonly />
</li>
</ul>
<ul v-if="response.body">
<li>
<div class="flex-wrap">
<label for="body">response</label>
<div>
<button class="icon" @click="copyResponse" ref="copyResponse" v-if="response.body">
<i class="material-icons">file_copy</i>
<span>Copy</span>
</button>
</div>
</div>
<div id="response-details-wrapper">
<pre><code
ref="responseBody"
id="body"
rows="16"
placeholder="(waiting to send request)"
>{{response.body}}</code></pre>
<iframe
:class="{hidden: !previewEnabled}"
class="covers-response"
ref="previewFrame"
src="about:blank"
></iframe>
</div>
<div class="align-right" v-if="response.body && responseType === 'text/html'">
<button class="icon" @click.prevent="togglePreview">
<i class="material-icons" v-if="!previewEnabled">visibility</i>
<i class="material-icons" v-if="previewEnabled">visibility_off</i>
<span>{{ previewEnabled ? 'Hide Preview' : 'Preview HTML' }}</span>
</button>
</div>
</li>
</ul>
</pw-section>
<br>
<pw-section class="yellow" icon="folder_special" label="Collections" ref="Collections">
<collections />
</pw-section>
<br>
<history @useHistory="handleUseHistory" ref="historyComponent"></history>
</div>
</template>
<script>
@@ -577,27 +605,11 @@ export default {
collections,
saveRequestAs
},
data() {
data () {
return {
label: "",
showModal: false,
copyButton: '<i class="material-icons">file_copy</i>',
copiedButton: '<i class="material-icons">done</i>',
method: "GET",
url: "https://reqres.in",
auth: "None",
path: "/api/users",
httpUser: "",
httpPassword: "",
passwordFieldType: "password",
bearerToken: "",
headers: [],
params: [],
bodyParams: [],
rawParams: "",
rawInput: false,
contentType: "application/json",
requestType: "JavaScript XHR",
isHidden: true,
response: {
status: "",
@@ -628,10 +640,18 @@ export default {
"text/plain"
],
showRequestModal: false,
editRequest: {}
editRequest: {},
urlExcludes: {}
};
},
watch: {
urlExcludes: {
deep: true,
handler () {
this.$store.commit("postwoman/applySetting", ['URL_EXCLUDES', Object.assign({}, this.urlExcludes)]);
}
},
contentType(val) {
this.rawInput = !this.knownContentTypes.includes(val);
},
@@ -718,6 +738,71 @@ export default {
}
},
computed: {
url: {
get() { return this.$store.state.request.url; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'url' }) },
},
method: {
get() { return this.$store.state.request.method; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'method' }) },
},
path: {
get() { return this.$store.state.request.path; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'path' }) },
},
label: {
get() { return this.$store.state.request.label; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'label' }) },
},
auth: {
get() { return this.$store.state.request.auth; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'auth' }) },
},
httpUser: {
get() { return this.$store.state.request.httpUser; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'httpUser' }) },
},
httpPassword: {
get() { return this.$store.state.request.httpPassword; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'httpPassword' }) },
},
bearerToken: {
get() { return this.$store.state.request.bearerToken; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'bearerToken' }) },
},
headers: {
get() { return this.$store.state.request.headers; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'headers' }) },
},
params: {
get() { return this.$store.state.request.params; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'params' }) },
},
bodyParams: {
get() { return this.$store.state.request.bodyParams; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'bodyParams' }) },
},
rawParams: {
get() { return this.$store.state.request.rawParams; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'rawParams' }) },
},
rawInput: {
get() { return this.$store.state.request.rawInput; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'rawInput' }) },
},
requestType: {
get() { return this.$store.state.request.requestType; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'requestType' }) },
},
contentType: {
get() { return this.$store.state.request.contentType; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'contentType' }) },
},
passwordFieldType: {
get() { return this.$store.state.request.passwordFieldType; },
set(value) { this.$store.commit('setState', { value, 'attribute': 'passwordFieldType' }) }
},
selectedRequest() {
return this.$store.state.postwoman.selectedRequest;
},
@@ -851,31 +936,21 @@ export default {
requestString.push(' method: "' + this.method + '",\n');
if (this.auth === "Basic") {
var basic = this.httpUser + ":" + this.httpPassword;
headers.push(
' "Authorization": "Basic ' +
window.btoa(unescape(encodeURIComponent(basic))) +
",\n"
);
this.$store.commit('addHeaders', ' "Authorization": "Basic ' + window.btoa(unescape(encodeURIComponent(basic))) + ",\n")
} else if (this.auth === "Bearer Token") {
headers.push(
' "Authorization": "Bearer Token ' + this.bearerToken + ",\n"
);
this.$store.commit('addHeaders', ' "Authorization": "Bearer Token ' + this.bearerToken + ",\n")
}
if (["POST", "PUT", "PATCH"].includes(this.method)) {
const requestBody = this.rawInput
? this.rawParams
: this.rawRequestBody;
requestString.push(" body: " + requestBody + ",\n");
headers.push(' "Content-Length": ' + requestBody.length + ",\n");
headers.push(
' "Content-Type": "' + this.contentType + '; charset=utf-8",\n'
);
this.$store.commit('addHeaders', ' "Content-Length": ' + requestBody.length + ",\n")
this.$store.commit('addHeaders', ' "Content-Type": "' + this.contentType + '; charset=utf-8",\n')
}
if (this.headers) {
this.headers.forEach(function(element) {
headers.push(
' "' + element.key + '": "' + element.value + '",\n'
);
this.$store.commit('addHeaders', ' "' + element.key + '": "' + element.value + '",\n')
});
}
headers = headers.join("").slice(0, -3);
@@ -954,7 +1029,7 @@ export default {
const config = this.$store.state.postwoman.settings.PROXY_ENABLED
? {
method: "POST",
url: `${window.location.protocol}//${window.location.host}/proxy`,
url: `https://postwoman.apollotv.xyz/`,
data: requestOptions
}
: requestOptions;
@@ -1128,40 +1203,34 @@ export default {
this.params = params;
},
addRequestHeader() {
this.headers.push({
this.$store.commit('addHeaders', {
key: "",
value: ""
});
return false;
},
removeRequestHeader(index) {
this.headers.splice(index, 1);
this.$store.commit('removeHeaders', index)
this.$toast.error("Deleted", {
icon: "delete"
});
},
addRequestParam() {
this.params.push({
key: "",
value: ""
});
this.$store.commit('addParams', { key: "", value: "" })
return false;
},
removeRequestParam(index) {
this.params.splice(index, 1);
this.$store.commit('removeParams', index)
this.$toast.error("Deleted", {
icon: "delete"
});
},
addRequestBodyParam() {
this.bodyParams.push({
key: "",
value: ""
});
this.$store.commit('addBodyParams', { key: "", value: "" })
return false;
},
removeRequestBodyParam(index) {
this.bodyParams.splice(index, 1);
this.$store.commit('removeBodyParams', index)
this.$toast.error("Deleted", {
icon: "delete"
});
@@ -1218,13 +1287,13 @@ export default {
document.execCommand("copy");
document.body.removeChild(dummy);
this.$refs.copyRequest.innerHTML = this.copiedButton;
this.$toast.success("Copied to clipboard", {
this.$toast.info("Copied to clipboard", {
icon: "done"
});
setTimeout(
() =>
(this.$refs.copyRequest.innerHTML =
'<i class="material-icons">share</i>'),
'<i class="material-icons">file_copy</i>'),
1000
);
}
@@ -1311,12 +1380,12 @@ export default {
"method",
"url",
"path",
"auth",
!this.urlExcludes.auth ? "auth" : null,
"httpUser",
"httpPassword",
"bearerToken",
"contentType"
].map(item => flat(item));
].filter((item) => item !== null).map(item => flat(item));
let deeps = ["headers", "params"].map(item => deep(item));
let bodyParams = this.rawInput
? [flat("rawParams")]
@@ -1373,10 +1442,7 @@ export default {
this.path = "";
this.headers = [];
for (const key of Object.keys(parsedCurl.headers)) {
this.headers.push({
key: key,
value: parsedCurl.headers[key]
});
this.$store.commit('addHeaders', { key: key, value: parsedCurl.headers[key] })
}
this.method = parsedCurl.method.toUpperCase();
if (parsedCurl["data"]) {
@@ -1463,12 +1529,25 @@ export default {
hideRequestModal() {
this.showRequestModal = false;
this.editRequest = {};
},
setExclude (excludedField, excluded) {
this.urlExcludes[excludedField] = excluded;
this.setRouteQueryState();
},
methodChange() {
// this.$store.commit('setState', { 'value': ["POST", "PUT", "PATCH"].includes(this.method) ? 'application/json' : '', 'attribute': 'contentType' })
this.contentType = ["POST", "PUT", "PATCH"].includes(this.method) ? 'application/json' : '';
}
},
mounted() {
this.observeRequestButton();
},
created() {
this.urlExcludes = this.$store.state.postwoman.settings.URL_EXCLUDES || {
// Exclude authentication by default for security reasons.
auth: true
};
if (Object.keys(this.$route.query).length)
this.setRouteQueries(this.$route.query);
this.$watch(

View File

@@ -40,9 +40,9 @@
<h3 class="title">Frames</h3>
<span>
<pw-toggle
:on="!settings.DISABLE_FRAME_COLORS"
@change="applySetting('DISABLE_FRAME_COLORS', $event)"
>Multi-color {{ settings.DISABLE_FRAME_COLORS ? "Disabled" : "Enabled" }}</pw-toggle>
:on="settings.FRAME_COLORS_ENABLED"
@change="toggleSetting('FRAME_COLORS_ENABLED')"
>Multi-color {{ settings.FRAME_COLORS_ENABLED ? "Enabled" : "Disabled" }}</pw-toggle>
</span>
</li>
</ul>
@@ -50,12 +50,17 @@
<pw-section class="blue" icon="public" label="Proxy">
<ul>
<li>
<pw-toggle
:on="settings.PROXY_ENABLED"
@change="applySetting('PROXY_ENABLED', $event)"
>Proxy {{ settings.PROXY_ENABLED ? "enabled" : "disabled" }}</pw-toggle>
<span>
<pw-toggle
:on="settings.PROXY_ENABLED"
@change="toggleSetting('PROXY_ENABLED')"
>Proxy {{ settings.PROXY_ENABLED ? "enabled" : "disabled" }}</pw-toggle>
</span>
</li>
</ul>
<ul class="info">
<li><p>Postwoman's Proxy is hosted by ApolloTV.<br>Read the ApolloTV privacy policy <a href="https://apollotv.xyz/legal" target="_blank">here</a>.</p></li>
</ul>
<!--
PROXY SETTINGS URL AND KEY
--------------
@@ -75,6 +80,13 @@
</div>
</template>
<style scoped>
.info {
margin-left: 4px;
color: var(--fg-light-color);
}
</style>
<script>
import section from "../components/section";
import swatch from "../components/settings/swatch";
@@ -167,8 +179,8 @@
THEME_TAB_COLOR: "",
THEME_COLOR_VIBRANT: true,
DISABLE_FRAME_COLORS:
this.$store.state.postwoman.settings.DISABLE_FRAME_COLORS || false,
FRAME_COLORS_ENABLED:
this.$store.state.postwoman.settings.FRAME_COLORS_ENABLED || false,
PROXY_ENABLED:
this.$store.state.postwoman.settings.PROXY_ENABLED || false,
PROXY_URL: this.$store.state.postwoman.settings.PROXY_URL || "",

View File

@@ -1,58 +0,0 @@
import express from 'express';
import bodyParser from 'body-parser';
import axios from 'axios';
const app = express();
app.use(bodyParser.json());
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', '*');
next();
});
app.post('/', async (req, res) => {
const {
method,
url,
auth,
headers,
data
} = req.body;
try {
const payload = await axios({
method,
url,
auth,
headers,
data
});
return await res.json({
data: payload.data,
status: payload.status,
statusText: payload.statusText,
headers: payload.headers,
});
} catch (error) {
if (error.response) {
const errorResponse = error.response;
return await res.json({
data: errorResponse.data,
status: errorResponse.status,
statusText: errorResponse.statusText,
headers: errorResponse.headers,
});
} else {
return res.status(500).send();
}
}
});
export default {
path: '/proxy',
handler: app
}

View File

@@ -1,3 +1,24 @@
export default {
import Vuex from 'vuex';
import state from './state';
import VuexPersist from 'vuex-persist'
}
export default {
install(Vue) {
Vue.use(Vuex);
const vuexLocalStorage = new VuexPersist({
key: 'vuex',
storage: window.localStorage,
reducer: ({ ...request }) => ({
...request
})
})
const store = new Vuex.Store({
state,
plugins: [vuexLocalStorage.plugin]
});
Vue.prototype.$store = store;
},
};

53
store/mutations.js Normal file
View File

@@ -0,0 +1,53 @@
export default {
setState(state, object){
state.request[object.attribute] = object.value
},
addHeaders(state, value) {
state.request.headers.push(value);
},
removeHeaders(state, index) {
state.request.headers.splice(index, 1)
},
setKeyHeader(state, object) {
state.request.headers[object.index].key = object.value
},
setValueHeader(state, object) {
state.request.headers[object.index].value = object.value
},
addParams(state, value) {
state.request.params.push(value);
},
removeParams(state, index) {
state.request.params.splice(index, 1)
},
setKeyParams(state, object) {
state.request.params[object.index].key = object.value
},
setValueParams(state, object) {
state.request.params[object.index].value = object.value
},
addBodyParams(state, value) {
state.request.bodyParams.push(value);
},
removeBodyParams(state, index) {
state.request.bodyParams.splice(index, 1)
},
setKeyBodyParams(state, object) {
state.request.bodyParams[object.index].key = object.value
},
setValueBodyParams(state, object) {
state.request.bodyParams[object.index].value = object.value
},
};

View File

@@ -31,7 +31,7 @@ export const SETTINGS_KEYS = [
* to emphasise the different sections.
* This setting allows that to be turned off.
*/
"DISABLE_FRAME_COLORS",
"FRAME_COLORS_ENABLED",
/**
* Whether or not requests should be proxied.
@@ -45,7 +45,13 @@ export const SETTINGS_KEYS = [
/**
* The security key of the proxy.
*/
"PROXY_KEY"
"PROXY_KEY",
/**
* An array of properties to exclude from the URL.
* e.g. 'auth'
*/
"URL_EXCLUDES"
];
export const state = () => ({

19
store/state.js Normal file
View File

@@ -0,0 +1,19 @@
export default {
request: {
method: 'GET',
url: 'https://reqres.in',
path: '/api/users',
label: '',
auth: 'None',
httpUser: '',
httpPassword: '',
bearerToken: '',
headers: [],
params: [],
bodyParams: [],
rawParams: '',
rawInput: false,
requestType: '',
contentType: '',
}
};