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_ _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) ## 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) [https://postwoman.io](https://postwoman.io)

View File

@@ -97,9 +97,7 @@ function parseCurlCommand(curlCommand) {
} }
parsedArguments.F.forEach(function(multipartArgument) { parsedArguments.F.forEach(function(multipartArgument) {
// input looks like key=value. value could be json or a file path prepended with an @ // input looks like key=value. value could be json or a file path prepended with an @
let splitArguments = multipartArgument.split("=", 2); const [key, value] = multipartArgument.split("=", 2);
let key = splitArguments[0];
let value = splitArguments[1];
multipartUploads[key] = value; multipartUploads[key] = value;
}); });
} }

View File

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

View File

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

View File

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

541
package-lock.json generated
View File

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

View File

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

View File

@@ -38,11 +38,12 @@
</ul> </ul>
</div> </div>
</pw-modal> </pw-modal>
<pw-section class="blue" icon="cloud_upload" label="Request" ref="request"> <pw-section class="blue" icon="cloud_upload" label="Request" ref="request">
<ul> <ul>
<li> <li>
<label for="method">Method</label> <label for="method">Method</label>
<select id="method" v-model="method"> <select id="method" v-model="method" @change="methodChange">
<option>GET</option> <option>GET</option>
<option>HEAD</option> <option>HEAD</option>
<option>POST</option> <option>POST</option>
@@ -129,20 +130,22 @@
</ul> </ul>
<ul v-for="(param, index) in bodyParams" :key="index"> <ul v-for="(param, index) in bodyParams" :key="index">
<li> <li>
<input <input
:placeholder="'key '+(index+1)" :placeholder="'key '+(index+1)"
:name="'bparam'+index" :name="'bparam'+index"
v-model="param.key" :value="param.key"
@keyup.prevent="setRouteQueryState" @change="$store.commit('setKeyBodyParams', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState"
autofocus autofocus
/> />
</li> </li>
<li> <li>
<input <input
:placeholder="'value '+(index+1)" :placeholder="'value '+(index+1)"
:id="'bvalue'+index" :id="'bvalue'+index"
:name="'bvalue'+index" :name="'bvalue'+index"
v-model="param.value" :value="param.value"
@change="$store.commit('setValueBodyParams', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState" @keyup.prevent="setRouteQueryState"
/> />
</li> </li>
@@ -206,9 +209,9 @@
id="copyRequest" id="copyRequest"
ref="copyRequest" ref="copyRequest"
:disabled="!isValidURL" :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>
<button <button
class="icon" class="icon"
@@ -220,7 +223,7 @@
> >
<i class="material-icons">save</i> <i class="material-icons">save</i>
</button> </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> <i class="material-icons">clear_all</i>
</button> </button>
</div> </div>
@@ -263,62 +266,7 @@
</li> </li>
</ul> </ul>
</pw-section> </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> <section>
<input id="tab-one" type="radio" name="grp" checked="checked" /> <input id="tab-one" type="radio" name="grp" checked="checked" />
<label for="tab-one">Authentication</label> <label for="tab-one">Authentication</label>
@@ -373,6 +321,13 @@
<input placeholder="Token" name="bearer_token" v-model="bearerToken" /> <input placeholder="Token" name="bearer_token" v-model="bearerToken" />
</li> </li>
</ul> </ul>
<div class="flex-wrap">
<pw-toggle
:on="!urlExcludes.auth"
@change="setExclude('auth', !$event)">
Include in URL
</pw-toggle>
</div>
</pw-section> </pw-section>
</div> </div>
<input id="tab-two" type="radio" name="grp" /> <input id="tab-two" type="radio" name="grp" />
@@ -402,19 +357,21 @@
</ul> </ul>
<ul v-for="(header, index) in headers" :key="index"> <ul v-for="(header, index) in headers" :key="index">
<li> <li>
<input <input
:placeholder="'header '+(index+1)" :placeholder="'header '+(index+1)"
:name="'header'+index" :name="'header'+index"
v-model="header.key" :value="header.key"
@keyup.prevent="setRouteQueryState" @change="$store.commit('setKeyHeader', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState"
autofocus autofocus
/> />
</li> </li>
<li> <li>
<input <input
:placeholder="'value '+(index+1)" :placeholder="'value '+(index+1)"
:name="'value'+index" :name="'value'+index"
v-model="header.value" :value="header.value"
@change="$store.commit('setValueHeader', { index, value: $event.target.value })"
@keyup.prevent="setRouteQueryState" @keyup.prevent="setRouteQueryState"
/> />
</li> </li>
@@ -463,15 +420,21 @@
</ul> </ul>
<ul v-for="(param, index) in params" :key="index"> <ul v-for="(param, index) in params" :key="index">
<li> <li>
<input <input
:placeholder="'parameter '+(index+1)" :placeholder="'parameter '+(index+1)"
:name="'param'+index" :name="'param'+index"
v-model="param.key" :value="param.key"
@change="$store.commit('setKeyParams', { index, value: $event.target.value })"
autofocus autofocus
/> />
</li> </li>
<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> </li>
<div> <div>
<li> <li>
@@ -492,10 +455,75 @@
</pw-section> </pw-section>
</div> </div>
</section> </section>
<history @useHistory="handleUseHistory" ref="historyComponent"></history>
<pw-section class="yellow" icon="folder_special" label="Collections" ref="Collections"> <br>
<collections></collections>
<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> </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> </div>
</template> </template>
<script> <script>
@@ -577,27 +605,11 @@ export default {
collections, collections,
saveRequestAs saveRequestAs
}, },
data() { data () {
return { return {
label: "",
showModal: false, showModal: false,
copyButton: '<i class="material-icons">file_copy</i>', copyButton: '<i class="material-icons">file_copy</i>',
copiedButton: '<i class="material-icons">done</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, isHidden: true,
response: { response: {
status: "", status: "",
@@ -628,10 +640,18 @@ export default {
"text/plain" "text/plain"
], ],
showRequestModal: false, showRequestModal: false,
editRequest: {} editRequest: {},
urlExcludes: {}
}; };
}, },
watch: { watch: {
urlExcludes: {
deep: true,
handler () {
this.$store.commit("postwoman/applySetting", ['URL_EXCLUDES', Object.assign({}, this.urlExcludes)]);
}
},
contentType(val) { contentType(val) {
this.rawInput = !this.knownContentTypes.includes(val); this.rawInput = !this.knownContentTypes.includes(val);
}, },
@@ -718,6 +738,71 @@ export default {
} }
}, },
computed: { 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() { selectedRequest() {
return this.$store.state.postwoman.selectedRequest; return this.$store.state.postwoman.selectedRequest;
}, },
@@ -851,31 +936,21 @@ export default {
requestString.push(' method: "' + this.method + '",\n'); requestString.push(' method: "' + this.method + '",\n');
if (this.auth === "Basic") { if (this.auth === "Basic") {
var basic = this.httpUser + ":" + this.httpPassword; var basic = this.httpUser + ":" + this.httpPassword;
headers.push( this.$store.commit('addHeaders', ' "Authorization": "Basic ' + window.btoa(unescape(encodeURIComponent(basic))) + ",\n")
' "Authorization": "Basic ' +
window.btoa(unescape(encodeURIComponent(basic))) +
",\n"
);
} else if (this.auth === "Bearer Token") { } else if (this.auth === "Bearer Token") {
headers.push( this.$store.commit('addHeaders', ' "Authorization": "Bearer Token ' + this.bearerToken + ",\n")
' "Authorization": "Bearer Token ' + this.bearerToken + ",\n"
);
} }
if (["POST", "PUT", "PATCH"].includes(this.method)) { if (["POST", "PUT", "PATCH"].includes(this.method)) {
const requestBody = this.rawInput const requestBody = this.rawInput
? this.rawParams ? this.rawParams
: this.rawRequestBody; : this.rawRequestBody;
requestString.push(" body: " + requestBody + ",\n"); requestString.push(" body: " + requestBody + ",\n");
headers.push(' "Content-Length": ' + requestBody.length + ",\n"); this.$store.commit('addHeaders', ' "Content-Length": ' + requestBody.length + ",\n")
headers.push( this.$store.commit('addHeaders', ' "Content-Type": "' + this.contentType + '; charset=utf-8",\n')
' "Content-Type": "' + this.contentType + '; charset=utf-8",\n'
);
} }
if (this.headers) { if (this.headers) {
this.headers.forEach(function(element) { this.headers.forEach(function(element) {
headers.push( this.$store.commit('addHeaders', ' "' + element.key + '": "' + element.value + '",\n')
' "' + element.key + '": "' + element.value + '",\n'
);
}); });
} }
headers = headers.join("").slice(0, -3); headers = headers.join("").slice(0, -3);
@@ -954,7 +1029,7 @@ export default {
const config = this.$store.state.postwoman.settings.PROXY_ENABLED const config = this.$store.state.postwoman.settings.PROXY_ENABLED
? { ? {
method: "POST", method: "POST",
url: `${window.location.protocol}//${window.location.host}/proxy`, url: `https://postwoman.apollotv.xyz/`,
data: requestOptions data: requestOptions
} }
: requestOptions; : requestOptions;
@@ -1128,40 +1203,34 @@ export default {
this.params = params; this.params = params;
}, },
addRequestHeader() { addRequestHeader() {
this.headers.push({ this.$store.commit('addHeaders', {
key: "", key: "",
value: "" value: ""
}); });
return false; return false;
}, },
removeRequestHeader(index) { removeRequestHeader(index) {
this.headers.splice(index, 1); this.$store.commit('removeHeaders', index)
this.$toast.error("Deleted", { this.$toast.error("Deleted", {
icon: "delete" icon: "delete"
}); });
}, },
addRequestParam() { addRequestParam() {
this.params.push({ this.$store.commit('addParams', { key: "", value: "" })
key: "",
value: ""
});
return false; return false;
}, },
removeRequestParam(index) { removeRequestParam(index) {
this.params.splice(index, 1); this.$store.commit('removeParams', index)
this.$toast.error("Deleted", { this.$toast.error("Deleted", {
icon: "delete" icon: "delete"
}); });
}, },
addRequestBodyParam() { addRequestBodyParam() {
this.bodyParams.push({ this.$store.commit('addBodyParams', { key: "", value: "" })
key: "",
value: ""
});
return false; return false;
}, },
removeRequestBodyParam(index) { removeRequestBodyParam(index) {
this.bodyParams.splice(index, 1); this.$store.commit('removeBodyParams', index)
this.$toast.error("Deleted", { this.$toast.error("Deleted", {
icon: "delete" icon: "delete"
}); });
@@ -1218,13 +1287,13 @@ export default {
document.execCommand("copy"); document.execCommand("copy");
document.body.removeChild(dummy); document.body.removeChild(dummy);
this.$refs.copyRequest.innerHTML = this.copiedButton; this.$refs.copyRequest.innerHTML = this.copiedButton;
this.$toast.success("Copied to clipboard", { this.$toast.info("Copied to clipboard", {
icon: "done" icon: "done"
}); });
setTimeout( setTimeout(
() => () =>
(this.$refs.copyRequest.innerHTML = (this.$refs.copyRequest.innerHTML =
'<i class="material-icons">share</i>'), '<i class="material-icons">file_copy</i>'),
1000 1000
); );
} }
@@ -1311,12 +1380,12 @@ export default {
"method", "method",
"url", "url",
"path", "path",
"auth", !this.urlExcludes.auth ? "auth" : null,
"httpUser", "httpUser",
"httpPassword", "httpPassword",
"bearerToken", "bearerToken",
"contentType" "contentType"
].map(item => flat(item)); ].filter((item) => item !== null).map(item => flat(item));
let deeps = ["headers", "params"].map(item => deep(item)); let deeps = ["headers", "params"].map(item => deep(item));
let bodyParams = this.rawInput let bodyParams = this.rawInput
? [flat("rawParams")] ? [flat("rawParams")]
@@ -1373,10 +1442,7 @@ export default {
this.path = ""; this.path = "";
this.headers = []; this.headers = [];
for (const key of Object.keys(parsedCurl.headers)) { for (const key of Object.keys(parsedCurl.headers)) {
this.headers.push({ this.$store.commit('addHeaders', { key: key, value: parsedCurl.headers[key] })
key: key,
value: parsedCurl.headers[key]
});
} }
this.method = parsedCurl.method.toUpperCase(); this.method = parsedCurl.method.toUpperCase();
if (parsedCurl["data"]) { if (parsedCurl["data"]) {
@@ -1463,12 +1529,25 @@ export default {
hideRequestModal() { hideRequestModal() {
this.showRequestModal = false; this.showRequestModal = false;
this.editRequest = {}; 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() { mounted() {
this.observeRequestButton(); this.observeRequestButton();
}, },
created() { 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) if (Object.keys(this.$route.query).length)
this.setRouteQueries(this.$route.query); this.setRouteQueries(this.$route.query);
this.$watch( this.$watch(
@@ -1493,4 +1572,4 @@ export default {
); );
} }
}; };
</script> </script>

View File

@@ -40,9 +40,9 @@
<h3 class="title">Frames</h3> <h3 class="title">Frames</h3>
<span> <span>
<pw-toggle <pw-toggle
:on="!settings.DISABLE_FRAME_COLORS" :on="settings.FRAME_COLORS_ENABLED"
@change="applySetting('DISABLE_FRAME_COLORS', $event)" @change="toggleSetting('FRAME_COLORS_ENABLED')"
>Multi-color {{ settings.DISABLE_FRAME_COLORS ? "Disabled" : "Enabled" }}</pw-toggle> >Multi-color {{ settings.FRAME_COLORS_ENABLED ? "Enabled" : "Disabled" }}</pw-toggle>
</span> </span>
</li> </li>
</ul> </ul>
@@ -50,12 +50,17 @@
<pw-section class="blue" icon="public" label="Proxy"> <pw-section class="blue" icon="public" label="Proxy">
<ul> <ul>
<li> <li>
<pw-toggle <span>
:on="settings.PROXY_ENABLED" <pw-toggle
@change="applySetting('PROXY_ENABLED', $event)" :on="settings.PROXY_ENABLED"
>Proxy {{ settings.PROXY_ENABLED ? "enabled" : "disabled" }}</pw-toggle> @change="toggleSetting('PROXY_ENABLED')"
>Proxy {{ settings.PROXY_ENABLED ? "enabled" : "disabled" }}</pw-toggle>
</span>
</li> </li>
</ul> </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 PROXY SETTINGS URL AND KEY
-------------- --------------
@@ -75,6 +80,13 @@
</div> </div>
</template> </template>
<style scoped>
.info {
margin-left: 4px;
color: var(--fg-light-color);
}
</style>
<script> <script>
import section from "../components/section"; import section from "../components/section";
import swatch from "../components/settings/swatch"; import swatch from "../components/settings/swatch";
@@ -167,8 +179,8 @@
THEME_TAB_COLOR: "", THEME_TAB_COLOR: "",
THEME_COLOR_VIBRANT: true, THEME_COLOR_VIBRANT: true,
DISABLE_FRAME_COLORS: FRAME_COLORS_ENABLED:
this.$store.state.postwoman.settings.DISABLE_FRAME_COLORS || false, this.$store.state.postwoman.settings.FRAME_COLORS_ENABLED || false,
PROXY_ENABLED: PROXY_ENABLED:
this.$store.state.postwoman.settings.PROXY_ENABLED || false, this.$store.state.postwoman.settings.PROXY_ENABLED || false,
PROXY_URL: this.$store.state.postwoman.settings.PROXY_URL || "", 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. * to emphasise the different sections.
* This setting allows that to be turned off. * This setting allows that to be turned off.
*/ */
"DISABLE_FRAME_COLORS", "FRAME_COLORS_ENABLED",
/** /**
* Whether or not requests should be proxied. * Whether or not requests should be proxied.
@@ -45,7 +45,13 @@ export const SETTINGS_KEYS = [
/** /**
* The security key of the proxy. * 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 = () => ({ 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: '',
}
};