diff --git a/package-lock.json b/package-lock.json
index 88fe71e..1d1199b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -20,7 +20,7 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"requires": {
- "mime-types": "2.1.24",
+ "mime-types": "~2.1.24",
"negotiator": "0.6.2"
}
},
@@ -34,8 +34,8 @@
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
"integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
"requires": {
- "acorn": "6.3.0",
- "acorn-walk": "6.2.0"
+ "acorn": "^6.0.1",
+ "acorn-walk": "^6.0.1"
}
},
"acorn-walk": {
@@ -48,10 +48,10 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
"requires": {
- "fast-deep-equal": "2.0.1",
- "fast-json-stable-stringify": "2.0.0",
- "json-schema-traverse": "0.4.1",
- "uri-js": "4.2.2"
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
}
},
"ansi-align": {
@@ -60,7 +60,7 @@
"integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
"dev": true,
"requires": {
- "string-width": "2.1.1"
+ "string-width": "^2.0.0"
}
},
"ansi-regex": {
@@ -75,7 +75,7 @@
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "color-convert": "1.9.3"
+ "color-convert": "^1.9.0"
}
},
"anymatch": {
@@ -84,8 +84,8 @@
"integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
"dev": true,
"requires": {
- "micromatch": "3.1.10",
- "normalize-path": "2.1.1"
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
},
"dependencies": {
"normalize-path": {
@@ -94,7 +94,7 @@
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"requires": {
- "remove-trailing-separator": "1.1.0"
+ "remove-trailing-separator": "^1.0.1"
}
}
}
@@ -143,7 +143,7 @@
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": "~2.1.0"
}
},
"assert-plus": {
@@ -195,7 +195,7 @@
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "1.5.10",
- "is-buffer": "2.0.3"
+ "is-buffer": "^2.0.2"
},
"dependencies": {
"is-buffer": {
@@ -216,13 +216,13 @@
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dev": true,
"requires": {
- "cache-base": "1.0.1",
- "class-utils": "0.3.6",
- "component-emitter": "1.3.0",
- "define-property": "1.0.0",
- "isobject": "3.0.1",
- "mixin-deep": "1.3.2",
- "pascalcase": "0.1.1"
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
},
"dependencies": {
"define-property": {
@@ -231,7 +231,7 @@
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "^1.0.0"
}
},
"is-accessor-descriptor": {
@@ -240,7 +240,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -249,7 +249,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -258,9 +258,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
}
}
@@ -270,7 +270,7 @@
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"requires": {
- "tweetnacl": "0.14.5"
+ "tweetnacl": "^0.14.3"
}
},
"binary-extensions": {
@@ -285,15 +285,15 @@
"integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
"requires": {
"bytes": "3.1.0",
- "content-type": "1.0.4",
+ "content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "1.1.2",
+ "depd": "~1.1.2",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
- "on-finished": "2.3.0",
+ "on-finished": "~2.3.0",
"qs": "6.7.0",
"raw-body": "2.4.0",
- "type-is": "1.6.18"
+ "type-is": "~1.6.17"
}
},
"boxen": {
@@ -302,13 +302,13 @@
"integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
"dev": true,
"requires": {
- "ansi-align": "2.0.0",
- "camelcase": "4.1.0",
- "chalk": "2.4.2",
- "cli-boxes": "1.0.0",
- "string-width": "2.1.1",
- "term-size": "1.2.0",
- "widest-line": "2.0.1"
+ "ansi-align": "^2.0.0",
+ "camelcase": "^4.0.0",
+ "chalk": "^2.0.1",
+ "cli-boxes": "^1.0.0",
+ "string-width": "^2.0.0",
+ "term-size": "^1.2.0",
+ "widest-line": "^2.0.0"
}
},
"brace-expansion": {
@@ -316,7 +316,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
@@ -326,16 +326,16 @@
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dev": true,
"requires": {
- "arr-flatten": "1.1.0",
- "array-unique": "0.3.2",
- "extend-shallow": "2.0.1",
- "fill-range": "4.0.0",
- "isobject": "3.0.1",
- "repeat-element": "1.1.3",
- "snapdragon": "0.8.2",
- "snapdragon-node": "2.1.1",
- "split-string": "3.1.0",
- "to-regex": "3.0.2"
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"extend-shallow": {
@@ -344,7 +344,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -365,15 +365,15 @@
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"dev": true,
"requires": {
- "collection-visit": "1.0.0",
- "component-emitter": "1.3.0",
- "get-value": "2.0.6",
- "has-value": "1.0.0",
- "isobject": "3.0.1",
- "set-value": "2.0.1",
- "to-object-path": "0.3.0",
- "union-value": "1.0.1",
- "unset-value": "1.0.0"
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
}
},
"camelcase": {
@@ -399,9 +399,9 @@
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.5.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
"chokidar": {
@@ -410,18 +410,18 @@
"integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
"dev": true,
"requires": {
- "anymatch": "2.0.0",
- "async-each": "1.0.3",
- "braces": "2.3.2",
- "fsevents": "1.2.9",
- "glob-parent": "3.1.0",
- "inherits": "2.0.3",
- "is-binary-path": "1.0.1",
- "is-glob": "4.0.1",
- "normalize-path": "3.0.0",
- "path-is-absolute": "1.0.1",
- "readdirp": "2.2.1",
- "upath": "1.2.0"
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
}
},
"ci-info": {
@@ -436,10 +436,10 @@
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"dev": true,
"requires": {
- "arr-union": "3.1.0",
- "define-property": "0.2.5",
- "isobject": "3.0.1",
- "static-extend": "0.1.2"
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
},
"dependencies": {
"define-property": {
@@ -448,7 +448,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
}
}
@@ -459,14 +459,24 @@
"integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
"dev": true
},
+ "clipboard": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
+ "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
+ "requires": {
+ "good-listener": "^1.2.2",
+ "select": "^1.1.2",
+ "tiny-emitter": "^2.0.0"
+ }
+ },
"collection-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
"dev": true,
"requires": {
- "map-visit": "1.0.0",
- "object-visit": "1.0.1"
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
}
},
"color-convert": {
@@ -489,7 +499,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
- "delayed-stream": "1.0.0"
+ "delayed-stream": "~1.0.0"
}
},
"commander": {
@@ -515,12 +525,12 @@
"integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
"dev": true,
"requires": {
- "dot-prop": "4.2.0",
- "graceful-fs": "4.2.2",
- "make-dir": "1.3.0",
- "unique-string": "1.0.0",
- "write-file-atomic": "2.4.3",
- "xdg-basedir": "3.0.0"
+ "dot-prop": "^4.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "unique-string": "^1.0.0",
+ "write-file-atomic": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
}
},
"content-disposition": {
@@ -563,7 +573,7 @@
"integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
"dev": true,
"requires": {
- "capture-stack-trace": "1.0.1"
+ "capture-stack-trace": "^1.0.0"
}
},
"cross-spawn": {
@@ -572,9 +582,9 @@
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
- "lru-cache": "4.1.5",
- "shebang-command": "1.2.0",
- "which": "1.3.1"
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
"crypto-random-string": {
@@ -593,7 +603,7 @@
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
"integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
"requires": {
- "cssom": "0.3.8"
+ "cssom": "0.3.x"
}
},
"dashdash": {
@@ -601,7 +611,7 @@
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
}
},
"data-urls": {
@@ -609,9 +619,9 @@
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
"integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
"requires": {
- "abab": "2.0.1",
- "whatwg-mimetype": "2.3.0",
- "whatwg-url": "7.0.0"
+ "abab": "^2.0.0",
+ "whatwg-mimetype": "^2.2.0",
+ "whatwg-url": "^7.0.0"
}
},
"debug": {
@@ -644,7 +654,7 @@
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"requires": {
- "object-keys": "1.1.1"
+ "object-keys": "^1.0.12"
}
},
"define-property": {
@@ -653,8 +663,8 @@
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2",
- "isobject": "3.0.1"
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
},
"dependencies": {
"is-accessor-descriptor": {
@@ -663,7 +673,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -672,7 +682,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -681,9 +691,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
}
}
@@ -693,6 +703,11 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
+ "delegate": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
+ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
+ },
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -708,7 +723,7 @@
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
"integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
"requires": {
- "webidl-conversions": "4.0.2"
+ "webidl-conversions": "^4.0.2"
}
},
"dot-prop": {
@@ -717,7 +732,7 @@
"integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
"dev": true,
"requires": {
- "is-obj": "1.0.1"
+ "is-obj": "^1.0.0"
}
},
"duplexer3": {
@@ -731,8 +746,8 @@
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"requires": {
- "jsbn": "0.1.1",
- "safer-buffer": "2.1.2"
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
}
},
"ee-first": {
@@ -761,11 +776,11 @@
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz",
"integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==",
"requires": {
- "esprima": "3.1.3",
- "estraverse": "4.3.0",
- "esutils": "2.0.3",
- "optionator": "0.8.2",
- "source-map": "0.6.1"
+ "esprima": "^3.1.3",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
}
},
"esprima": {
@@ -794,13 +809,13 @@
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"dev": true,
"requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
}
},
"expand-brackets": {
@@ -809,13 +824,13 @@
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
"dev": true,
"requires": {
- "debug": "2.6.9",
- "define-property": "0.2.5",
- "extend-shallow": "2.0.1",
- "posix-character-classes": "0.1.1",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -824,7 +839,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
},
"extend-shallow": {
@@ -833,7 +848,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -843,36 +858,36 @@
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"requires": {
- "accepts": "1.3.7",
+ "accepts": "~1.3.7",
"array-flatten": "1.1.1",
"body-parser": "1.19.0",
"content-disposition": "0.5.3",
- "content-type": "1.0.4",
+ "content-type": "~1.0.4",
"cookie": "0.4.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "1.1.2",
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "etag": "1.8.1",
- "finalhandler": "1.1.2",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
- "methods": "1.1.2",
- "on-finished": "2.3.0",
- "parseurl": "1.3.3",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
- "proxy-addr": "2.0.5",
+ "proxy-addr": "~2.0.5",
"qs": "6.7.0",
- "range-parser": "1.2.1",
+ "range-parser": "~1.2.1",
"safe-buffer": "5.1.2",
"send": "0.17.1",
"serve-static": "1.14.1",
"setprototypeof": "1.1.1",
- "statuses": "1.5.0",
- "type-is": "1.6.18",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
"utils-merge": "1.0.1",
- "vary": "1.1.2"
+ "vary": "~1.1.2"
}
},
"express-handlebars": {
@@ -880,11 +895,11 @@
"resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.1.0.tgz",
"integrity": "sha512-7QlaXnSREMmN5P2o4gmpUZDfJlLtfBka9d6r7/ccXaU7rPp76odw9YYtwZYdIiha2JqwiaG6o2Wu6NZJQ0u7Fg==",
"requires": {
- "glob": "7.1.4",
- "graceful-fs": "4.2.2",
- "handlebars": "4.2.0",
- "object.assign": "4.1.0",
- "promise": "8.0.3"
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.1.2",
+ "handlebars": "^4.1.2",
+ "object.assign": "^4.1.0",
+ "promise": "^8.0.2"
}
},
"extend": {
@@ -898,8 +913,8 @@
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"dev": true,
"requires": {
- "assign-symbols": "1.0.0",
- "is-extendable": "1.0.1"
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -908,7 +923,7 @@
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
"requires": {
- "is-plain-object": "2.0.4"
+ "is-plain-object": "^2.0.4"
}
}
}
@@ -919,14 +934,14 @@
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dev": true,
"requires": {
- "array-unique": "0.3.2",
- "define-property": "1.0.0",
- "expand-brackets": "2.1.4",
- "extend-shallow": "2.0.1",
- "fragment-cache": "0.2.1",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -935,7 +950,7 @@
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "^1.0.0"
}
},
"extend-shallow": {
@@ -944,7 +959,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
},
"is-accessor-descriptor": {
@@ -953,7 +968,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -962,7 +977,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -971,9 +986,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
}
}
@@ -1004,10 +1019,10 @@
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dev": true,
"requires": {
- "extend-shallow": "2.0.1",
- "is-number": "3.0.0",
- "repeat-string": "1.6.1",
- "to-regex-range": "2.1.1"
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
},
"dependencies": {
"extend-shallow": {
@@ -1016,7 +1031,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -1027,12 +1042,12 @@
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
"requires": {
"debug": "2.6.9",
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "on-finished": "2.3.0",
- "parseurl": "1.3.3",
- "statuses": "1.5.0",
- "unpipe": "1.0.0"
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
}
},
"follow-redirects": {
@@ -1040,7 +1055,7 @@
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
- "debug": "3.1.0"
+ "debug": "=3.1.0"
},
"dependencies": {
"debug": {
@@ -1069,9 +1084,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.8",
- "mime-types": "2.1.24"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
}
},
"forwarded": {
@@ -1085,7 +1100,7 @@
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
"dev": true,
"requires": {
- "map-cache": "0.2.2"
+ "map-cache": "^0.2.2"
}
},
"fresh": {
@@ -1105,8 +1120,8 @@
"dev": true,
"optional": true,
"requires": {
- "nan": "2.14.0",
- "node-pre-gyp": "0.12.0"
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
},
"dependencies": {
"abbrev": {
@@ -1118,7 +1133,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
@@ -1132,21 +1148,23 @@
"dev": true,
"optional": true,
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.3.6"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
"balanced-match": {
"version": "1.0.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
@@ -1159,17 +1177,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -1183,7 +1204,7 @@
"dev": true,
"optional": true,
"requires": {
- "ms": "2.1.1"
+ "ms": "^2.1.1"
}
},
"deep-extend": {
@@ -1210,7 +1231,7 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "2.3.5"
+ "minipass": "^2.2.1"
}
},
"fs.realpath": {
@@ -1225,14 +1246,14 @@
"dev": true,
"optional": true,
"requires": {
- "aproba": "1.2.0",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.3"
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
}
},
"glob": {
@@ -1241,12 +1262,12 @@
"dev": true,
"optional": true,
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "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"
}
},
"has-unicode": {
@@ -1261,7 +1282,7 @@
"dev": true,
"optional": true,
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
@@ -1270,7 +1291,7 @@
"dev": true,
"optional": true,
"requires": {
- "minimatch": "3.0.4"
+ "minimatch": "^3.0.4"
}
},
"inflight": {
@@ -1279,14 +1300,15 @@
"dev": true,
"optional": true,
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
"version": "2.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
@@ -1298,8 +1320,9 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"isarray": {
@@ -1312,22 +1335,25 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "safe-buffer": "5.1.2",
- "yallist": "3.0.3"
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
}
},
"minizlib": {
@@ -1336,13 +1362,14 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "2.3.5"
+ "minipass": "^2.2.1"
}
},
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -1359,9 +1386,9 @@
"dev": true,
"optional": true,
"requires": {
- "debug": "4.1.1",
- "iconv-lite": "0.4.24",
- "sax": "1.2.4"
+ "debug": "^4.1.0",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
}
},
"node-pre-gyp": {
@@ -1370,16 +1397,16 @@
"dev": true,
"optional": true,
"requires": {
- "detect-libc": "1.0.3",
- "mkdirp": "0.5.1",
- "needle": "2.3.0",
- "nopt": "4.0.1",
- "npm-packlist": "1.4.1",
- "npmlog": "4.1.2",
- "rc": "1.2.8",
- "rimraf": "2.6.3",
- "semver": "5.7.0",
- "tar": "4.4.8"
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
}
},
"nopt": {
@@ -1388,8 +1415,8 @@
"dev": true,
"optional": true,
"requires": {
- "abbrev": "1.1.1",
- "osenv": "0.1.5"
+ "abbrev": "1",
+ "osenv": "^0.1.4"
}
},
"npm-bundled": {
@@ -1404,8 +1431,8 @@
"dev": true,
"optional": true,
"requires": {
- "ignore-walk": "3.0.1",
- "npm-bundled": "1.0.6"
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
}
},
"npmlog": {
@@ -1414,16 +1441,17 @@
"dev": true,
"optional": true,
"requires": {
- "are-we-there-yet": "1.1.5",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
}
},
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -1435,8 +1463,9 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"os-homedir": {
@@ -1457,8 +1486,8 @@
"dev": true,
"optional": true,
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"path-is-absolute": {
@@ -1479,10 +1508,10 @@
"dev": true,
"optional": true,
"requires": {
- "deep-extend": "0.6.0",
- "ini": "1.3.5",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
},
"dependencies": {
"minimist": {
@@ -1499,13 +1528,13 @@
"dev": true,
"optional": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "2.0.0",
- "safe-buffer": "5.1.2",
- "string_decoder": "1.1.1",
- "util-deprecate": "1.0.2"
+ "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"
}
},
"rimraf": {
@@ -1514,13 +1543,14 @@
"dev": true,
"optional": true,
"requires": {
- "glob": "7.1.3"
+ "glob": "^7.1.3"
}
},
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -1556,10 +1586,11 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"string_decoder": {
@@ -1568,15 +1599,16 @@
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
@@ -1591,13 +1623,13 @@
"dev": true,
"optional": true,
"requires": {
- "chownr": "1.1.1",
- "fs-minipass": "1.2.5",
- "minipass": "2.3.5",
- "minizlib": "1.2.1",
- "mkdirp": "0.5.1",
- "safe-buffer": "5.1.2",
- "yallist": "3.0.3"
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.4",
+ "minizlib": "^1.1.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.2"
}
},
"util-deprecate": {
@@ -1612,18 +1644,20 @@
"dev": true,
"optional": true,
"requires": {
- "string-width": "1.0.2"
+ "string-width": "^1.0.2 || 2"
}
},
"wrappy": {
"version": "1.0.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -1649,7 +1683,7 @@
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
}
},
"glob": {
@@ -1657,12 +1691,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "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"
}
},
"glob-parent": {
@@ -1671,8 +1705,8 @@
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
"dev": true,
"requires": {
- "is-glob": "3.1.0",
- "path-dirname": "1.0.2"
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
},
"dependencies": {
"is-glob": {
@@ -1681,7 +1715,7 @@
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"dev": true,
"requires": {
- "is-extglob": "2.1.1"
+ "is-extglob": "^2.1.0"
}
}
}
@@ -1692,7 +1726,15 @@
"integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
"dev": true,
"requires": {
- "ini": "1.3.5"
+ "ini": "^1.3.4"
+ }
+ },
+ "good-listener": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
+ "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
+ "requires": {
+ "delegate": "^3.1.2"
}
},
"got": {
@@ -1701,17 +1743,17 @@
"integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
"dev": true,
"requires": {
- "create-error-class": "3.0.2",
- "duplexer3": "0.1.4",
- "get-stream": "3.0.0",
- "is-redirect": "1.0.0",
- "is-retry-allowed": "1.2.0",
- "is-stream": "1.1.0",
- "lowercase-keys": "1.0.1",
- "safe-buffer": "5.1.2",
- "timed-out": "4.0.1",
- "unzip-response": "2.0.1",
- "url-parse-lax": "1.0.0"
+ "create-error-class": "^3.0.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "unzip-response": "^2.0.1",
+ "url-parse-lax": "^1.0.0"
}
},
"graceful-fs": {
@@ -1724,10 +1766,10 @@
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.2.0.tgz",
"integrity": "sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw==",
"requires": {
- "neo-async": "2.6.1",
- "optimist": "0.6.1",
- "source-map": "0.6.1",
- "uglify-js": "3.6.0"
+ "neo-async": "^2.6.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4"
}
},
"har-schema": {
@@ -1740,8 +1782,8 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"requires": {
- "ajv": "6.10.2",
- "har-schema": "2.0.0"
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
}
},
"has-flag": {
@@ -1761,9 +1803,9 @@
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
"dev": true,
"requires": {
- "get-value": "2.0.6",
- "has-values": "1.0.0",
- "isobject": "3.0.1"
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
}
},
"has-values": {
@@ -1772,8 +1814,8 @@
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
"dev": true,
"requires": {
- "is-number": "3.0.0",
- "kind-of": "4.0.0"
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
},
"dependencies": {
"kind-of": {
@@ -1782,7 +1824,7 @@
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -1792,7 +1834,7 @@
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
"integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
"requires": {
- "whatwg-encoding": "1.0.5"
+ "whatwg-encoding": "^1.0.1"
}
},
"http-errors": {
@@ -1800,10 +1842,10 @@
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
"integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
"requires": {
- "depd": "1.1.2",
+ "depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.1",
- "statuses": "1.5.0",
+ "statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
}
},
@@ -1812,9 +1854,9 @@
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
- "assert-plus": "1.0.0",
- "jsprim": "1.4.1",
- "sshpk": "1.16.1"
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
}
},
"iconv-lite": {
@@ -1822,7 +1864,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-by-default": {
@@ -1848,8 +1890,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -1879,7 +1921,7 @@
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -1888,7 +1930,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -1899,7 +1941,7 @@
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
"requires": {
- "binary-extensions": "1.13.1"
+ "binary-extensions": "^1.0.0"
}
},
"is-buffer": {
@@ -1914,7 +1956,7 @@
"integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
"dev": true,
"requires": {
- "ci-info": "1.6.0"
+ "ci-info": "^1.5.0"
}
},
"is-data-descriptor": {
@@ -1923,7 +1965,7 @@
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -1932,7 +1974,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -1943,9 +1985,9 @@
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
},
"dependencies": {
"kind-of": {
@@ -1980,7 +2022,7 @@
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
- "is-extglob": "2.1.1"
+ "is-extglob": "^2.1.1"
}
},
"is-installed-globally": {
@@ -1989,8 +2031,8 @@
"integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
"dev": true,
"requires": {
- "global-dirs": "0.1.1",
- "is-path-inside": "1.0.1"
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
}
},
"is-npm": {
@@ -2005,7 +2047,7 @@
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -2014,7 +2056,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -2031,7 +2073,7 @@
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
"dev": true,
"requires": {
- "path-is-inside": "1.0.2"
+ "path-is-inside": "^1.0.1"
}
},
"is-plain-object": {
@@ -2040,7 +2082,7 @@
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
"requires": {
- "isobject": "3.0.1"
+ "isobject": "^3.0.1"
}
},
"is-redirect": {
@@ -2105,32 +2147,32 @@
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.1.1.tgz",
"integrity": "sha512-cQZRBB33arrDAeCrAEWn1U3SvrvC8XysBua9Oqg1yWrsY/gYcusloJC3RZJXuY5eehSCmws8f2YeliCqGSkrtQ==",
"requires": {
- "abab": "2.0.1",
- "acorn": "6.3.0",
- "acorn-globals": "4.3.4",
- "array-equal": "1.0.0",
- "cssom": "0.3.8",
- "cssstyle": "1.4.0",
- "data-urls": "1.1.0",
- "domexception": "1.0.1",
- "escodegen": "1.12.0",
- "html-encoding-sniffer": "1.0.2",
- "nwsapi": "2.1.4",
+ "abab": "^2.0.0",
+ "acorn": "^6.1.1",
+ "acorn-globals": "^4.3.2",
+ "array-equal": "^1.0.0",
+ "cssom": "^0.3.6",
+ "cssstyle": "^1.2.2",
+ "data-urls": "^1.1.0",
+ "domexception": "^1.0.1",
+ "escodegen": "^1.11.1",
+ "html-encoding-sniffer": "^1.0.2",
+ "nwsapi": "^2.1.4",
"parse5": "5.1.0",
- "pn": "1.1.0",
- "request": "2.88.0",
- "request-promise-native": "1.0.7",
- "saxes": "3.1.11",
- "symbol-tree": "3.2.4",
- "tough-cookie": "3.0.1",
- "w3c-hr-time": "1.0.1",
- "w3c-xmlserializer": "1.1.2",
- "webidl-conversions": "4.0.2",
- "whatwg-encoding": "1.0.5",
- "whatwg-mimetype": "2.3.0",
- "whatwg-url": "7.0.0",
- "ws": "7.1.2",
- "xml-name-validator": "3.0.0"
+ "pn": "^1.1.0",
+ "request": "^2.88.0",
+ "request-promise-native": "^1.0.7",
+ "saxes": "^3.1.9",
+ "symbol-tree": "^3.2.2",
+ "tough-cookie": "^3.0.1",
+ "w3c-hr-time": "^1.0.1",
+ "w3c-xmlserializer": "^1.1.2",
+ "webidl-conversions": "^4.0.2",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^7.0.0",
+ "ws": "^7.0.0",
+ "xml-name-validator": "^3.0.0"
}
},
"json-schema": {
@@ -2171,7 +2213,7 @@
"integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
"dev": true,
"requires": {
- "package-json": "4.0.1"
+ "package-json": "^4.0.0"
}
},
"levn": {
@@ -2179,8 +2221,8 @@
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"requires": {
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2"
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
}
},
"lodash": {
@@ -2205,8 +2247,8 @@
"integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
"dev": true,
"requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
}
},
"make-dir": {
@@ -2215,7 +2257,7 @@
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"dev": true,
"requires": {
- "pify": "3.0.0"
+ "pify": "^3.0.0"
}
},
"map-cache": {
@@ -2230,7 +2272,7 @@
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
"dev": true,
"requires": {
- "object-visit": "1.0.1"
+ "object-visit": "^1.0.0"
}
},
"media-typer": {
@@ -2254,19 +2296,19 @@
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
"requires": {
- "arr-diff": "4.0.0",
- "array-unique": "0.3.2",
- "braces": "2.3.2",
- "define-property": "2.0.2",
- "extend-shallow": "3.0.2",
- "extglob": "2.0.4",
- "fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
- "nanomatch": "1.2.13",
- "object.pick": "1.3.0",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
}
},
"mime": {
@@ -2292,7 +2334,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
@@ -2306,8 +2348,8 @@
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true,
"requires": {
- "for-in": "1.0.2",
- "is-extendable": "1.0.1"
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -2316,7 +2358,7 @@
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
"requires": {
- "is-plain-object": "2.0.4"
+ "is-plain-object": "^2.0.4"
}
}
}
@@ -2339,17 +2381,17 @@
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
"dev": true,
"requires": {
- "arr-diff": "4.0.0",
- "array-unique": "0.3.2",
- "define-property": "2.0.2",
- "extend-shallow": "3.0.2",
- "fragment-cache": "0.2.1",
- "is-windows": "1.0.2",
- "kind-of": "6.0.2",
- "object.pick": "1.3.0",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
}
},
"negotiator": {
@@ -2373,16 +2415,16 @@
"integrity": "sha512-hRLYaw5Ihyw9zK7NF+9EUzVyS6Cvgc14yh8CAYr38tPxJa6UrOxwAQ351GwrgoanHCF0FalQFn6w5eoX/LGdJw==",
"dev": true,
"requires": {
- "chokidar": "2.1.8",
- "debug": "3.2.6",
- "ignore-by-default": "1.0.1",
- "minimatch": "3.0.4",
- "pstree.remy": "1.1.7",
- "semver": "5.7.1",
- "supports-color": "5.5.0",
- "touch": "3.1.0",
- "undefsafe": "2.0.2",
- "update-notifier": "2.5.0"
+ "chokidar": "^2.1.5",
+ "debug": "^3.1.0",
+ "ignore-by-default": "^1.0.1",
+ "minimatch": "^3.0.4",
+ "pstree.remy": "^1.1.6",
+ "semver": "^5.5.0",
+ "supports-color": "^5.2.0",
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.2",
+ "update-notifier": "^2.5.0"
},
"dependencies": {
"debug": {
@@ -2391,7 +2433,7 @@
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "ms": "^2.1.1"
}
},
"ms": {
@@ -2408,7 +2450,7 @@
"integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
"dev": true,
"requires": {
- "abbrev": "1.1.1"
+ "abbrev": "1"
}
},
"normalize-path": {
@@ -2423,7 +2465,7 @@
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"dev": true,
"requires": {
- "path-key": "2.0.1"
+ "path-key": "^2.0.0"
}
},
"nwsapi": {
@@ -2442,9 +2484,9 @@
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
"dev": true,
"requires": {
- "copy-descriptor": "0.1.1",
- "define-property": "0.2.5",
- "kind-of": "3.2.2"
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
},
"dependencies": {
"define-property": {
@@ -2453,7 +2495,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
},
"kind-of": {
@@ -2462,7 +2504,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -2478,7 +2520,7 @@
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
"dev": true,
"requires": {
- "isobject": "3.0.1"
+ "isobject": "^3.0.0"
}
},
"object.assign": {
@@ -2486,10 +2528,10 @@
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"requires": {
- "define-properties": "1.1.3",
- "function-bind": "1.1.1",
- "has-symbols": "1.0.0",
- "object-keys": "1.1.1"
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
}
},
"object.pick": {
@@ -2498,7 +2540,7 @@
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
"dev": true,
"requires": {
- "isobject": "3.0.1"
+ "isobject": "^3.0.1"
}
},
"on-finished": {
@@ -2514,7 +2556,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"optimist": {
@@ -2522,8 +2564,8 @@
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"requires": {
- "minimist": "0.0.10",
- "wordwrap": "0.0.3"
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
}
},
"optionator": {
@@ -2531,12 +2573,12 @@
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"requires": {
- "deep-is": "0.1.3",
- "fast-levenshtein": "2.0.6",
- "levn": "0.3.0",
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2",
- "wordwrap": "1.0.0"
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
},
"dependencies": {
"wordwrap": {
@@ -2558,10 +2600,10 @@
"integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
"dev": true,
"requires": {
- "got": "6.7.1",
- "registry-auth-token": "3.4.0",
- "registry-url": "3.1.0",
- "semver": "5.7.1"
+ "got": "^6.7.1",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
}
},
"parse5": {
@@ -2652,7 +2694,7 @@
"resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz",
"integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==",
"requires": {
- "asap": "2.0.6"
+ "asap": "~2.0.6"
}
},
"proxy-addr": {
@@ -2660,7 +2702,7 @@
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
"integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
"requires": {
- "forwarded": "0.1.2",
+ "forwarded": "~0.1.2",
"ipaddr.js": "1.9.0"
}
},
@@ -2713,10 +2755,10 @@
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"requires": {
- "deep-extend": "0.6.0",
- "ini": "1.3.5",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
},
"dependencies": {
"minimist": {
@@ -2728,7 +2770,8 @@
}
},
"readability": {
- "version": "git+https://github.com/mozilla/readability.git#60f470c4bb618a7987d5701b1228ec5ff49f2773"
+ "version": "git+https://github.com/mozilla/readability.git#60f470c4bb618a7987d5701b1228ec5ff49f2773",
+ "from": "git+https://github.com/mozilla/readability.git"
},
"readable-stream": {
"version": "2.3.6",
@@ -2736,13 +2779,13 @@
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "2.0.1",
- "safe-buffer": "5.1.2",
- "string_decoder": "1.1.1",
- "util-deprecate": "1.0.2"
+ "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"
}
},
"readdirp": {
@@ -2751,9 +2794,9 @@
"integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
- "micromatch": "3.1.10",
- "readable-stream": "2.3.6"
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
}
},
"regex-not": {
@@ -2762,8 +2805,8 @@
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dev": true,
"requires": {
- "extend-shallow": "3.0.2",
- "safe-regex": "1.1.0"
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
}
},
"registry-auth-token": {
@@ -2772,8 +2815,8 @@
"integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
"dev": true,
"requires": {
- "rc": "1.2.8",
- "safe-buffer": "5.1.2"
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
}
},
"registry-url": {
@@ -2782,7 +2825,7 @@
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
"dev": true,
"requires": {
- "rc": "1.2.8"
+ "rc": "^1.0.1"
}
},
"remove-trailing-separator": {
@@ -2808,26 +2851,26 @@
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"requires": {
- "aws-sign2": "0.7.0",
- "aws4": "1.8.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.8",
- "extend": "3.0.2",
- "forever-agent": "0.6.1",
- "form-data": "2.3.3",
- "har-validator": "5.1.3",
- "http-signature": "1.2.0",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.24",
- "oauth-sign": "0.9.0",
- "performance-now": "2.1.0",
- "qs": "6.5.2",
- "safe-buffer": "5.1.2",
- "tough-cookie": "2.4.3",
- "tunnel-agent": "0.6.0",
- "uuid": "3.3.3"
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
},
"dependencies": {
"punycode": {
@@ -2845,8 +2888,8 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"requires": {
- "psl": "1.4.0",
- "punycode": "1.4.1"
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
}
}
}
@@ -2856,7 +2899,7 @@
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
"integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
"requires": {
- "lodash": "4.17.15"
+ "lodash": "^4.17.11"
}
},
"request-promise-native": {
@@ -2865,8 +2908,8 @@
"integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
"requires": {
"request-promise-core": "1.1.2",
- "stealthy-require": "1.1.1",
- "tough-cookie": "2.5.0"
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
},
"dependencies": {
"tough-cookie": {
@@ -2874,8 +2917,8 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"requires": {
- "psl": "1.4.0",
- "punycode": "2.1.1"
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
}
}
}
@@ -2903,7 +2946,7 @@
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"dev": true,
"requires": {
- "ret": "0.1.15"
+ "ret": "~0.1.10"
}
},
"safer-buffer": {
@@ -2916,9 +2959,14 @@
"resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz",
"integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==",
"requires": {
- "xmlchars": "2.2.0"
+ "xmlchars": "^2.1.1"
}
},
+ "select": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
+ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
+ },
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -2931,7 +2979,7 @@
"integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
"dev": true,
"requires": {
- "semver": "5.7.1"
+ "semver": "^5.0.3"
}
},
"send": {
@@ -2940,18 +2988,18 @@
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
"requires": {
"debug": "2.6.9",
- "depd": "1.1.2",
- "destroy": "1.0.4",
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "etag": "1.8.1",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "1.7.2",
+ "http-errors": "~1.7.2",
"mime": "1.6.0",
"ms": "2.1.1",
- "on-finished": "2.3.0",
- "range-parser": "1.2.1",
- "statuses": "1.5.0"
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
},
"dependencies": {
"ms": {
@@ -2966,9 +3014,9 @@
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
"requires": {
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "parseurl": "1.3.3",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
"send": "0.17.1"
}
},
@@ -2978,10 +3026,10 @@
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dev": true,
"requires": {
- "extend-shallow": "2.0.1",
- "is-extendable": "0.1.1",
- "is-plain-object": "2.0.4",
- "split-string": "3.1.0"
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
},
"dependencies": {
"extend-shallow": {
@@ -2990,7 +3038,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -3006,7 +3054,7 @@
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"dev": true,
"requires": {
- "shebang-regex": "1.0.0"
+ "shebang-regex": "^1.0.0"
}
},
"shebang-regex": {
@@ -3027,14 +3075,14 @@
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"dev": true,
"requires": {
- "base": "0.11.2",
- "debug": "2.6.9",
- "define-property": "0.2.5",
- "extend-shallow": "2.0.1",
- "map-cache": "0.2.2",
- "source-map": "0.5.7",
- "source-map-resolve": "0.5.2",
- "use": "3.1.1"
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
},
"dependencies": {
"define-property": {
@@ -3043,7 +3091,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
},
"extend-shallow": {
@@ -3052,7 +3100,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
},
"source-map": {
@@ -3069,9 +3117,9 @@
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
"dev": true,
"requires": {
- "define-property": "1.0.0",
- "isobject": "3.0.1",
- "snapdragon-util": "3.0.1"
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -3080,7 +3128,7 @@
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "^1.0.0"
}
},
"is-accessor-descriptor": {
@@ -3089,7 +3137,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -3098,7 +3146,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -3107,9 +3155,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
}
}
@@ -3120,7 +3168,7 @@
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.2.0"
},
"dependencies": {
"kind-of": {
@@ -3129,7 +3177,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -3145,11 +3193,11 @@
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
"dev": true,
"requires": {
- "atob": "2.1.2",
- "decode-uri-component": "0.2.0",
- "resolve-url": "0.2.1",
- "source-map-url": "0.4.0",
- "urix": "0.1.0"
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
}
},
"source-map-url": {
@@ -3164,7 +3212,7 @@
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"dev": true,
"requires": {
- "extend-shallow": "3.0.2"
+ "extend-shallow": "^3.0.0"
}
},
"sshpk": {
@@ -3172,15 +3220,15 @@
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"requires": {
- "asn1": "0.2.4",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.2",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.2",
- "getpass": "0.1.7",
- "jsbn": "0.1.1",
- "safer-buffer": "2.1.2",
- "tweetnacl": "0.14.5"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
}
},
"static-extend": {
@@ -3189,8 +3237,8 @@
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
"dev": true,
"requires": {
- "define-property": "0.2.5",
- "object-copy": "0.1.0"
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
},
"dependencies": {
"define-property": {
@@ -3199,7 +3247,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
}
}
@@ -3220,8 +3268,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
}
},
"string_decoder": {
@@ -3230,7 +3278,7 @@
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
@@ -3239,7 +3287,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
},
"strip-eof": {
@@ -3260,9 +3308,14 @@
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
}
},
+ "sweetalert2": {
+ "version": "9.13.1",
+ "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-9.13.1.tgz",
+ "integrity": "sha512-yyhf9f3FIYNpOLVCbGOdFr13KuXqKWOiHvoFBio7mMtZxTpOsa3XRdVDd0EYCoI+MDuUyYh6TeeG345j8zxT/Q=="
+ },
"symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -3274,7 +3327,7 @@
"integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
"dev": true,
"requires": {
- "execa": "0.7.0"
+ "execa": "^0.7.0"
}
},
"timed-out": {
@@ -3283,13 +3336,18 @@
"integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
"dev": true
},
+ "tiny-emitter": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
+ },
"to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -3298,7 +3356,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -3309,10 +3367,10 @@
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"dev": true,
"requires": {
- "define-property": "2.0.2",
- "extend-shallow": "3.0.2",
- "regex-not": "1.0.2",
- "safe-regex": "1.1.0"
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
}
},
"to-regex-range": {
@@ -3321,8 +3379,8 @@
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"dev": true,
"requires": {
- "is-number": "3.0.0",
- "repeat-string": "1.6.1"
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
}
},
"toidentifier": {
@@ -3336,7 +3394,7 @@
"integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
"dev": true,
"requires": {
- "nopt": "1.0.10"
+ "nopt": "~1.0.10"
}
},
"tough-cookie": {
@@ -3344,9 +3402,9 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
"integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
"requires": {
- "ip-regex": "2.1.0",
- "psl": "1.4.0",
- "punycode": "2.1.1"
+ "ip-regex": "^2.1.0",
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
}
},
"tr46": {
@@ -3354,7 +3412,7 @@
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
"integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"requires": {
- "punycode": "2.1.1"
+ "punycode": "^2.1.0"
}
},
"tunnel-agent": {
@@ -3362,7 +3420,7 @@
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
@@ -3375,7 +3433,7 @@
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"requires": {
- "prelude-ls": "1.1.2"
+ "prelude-ls": "~1.1.2"
}
},
"type-is": {
@@ -3384,7 +3442,7 @@
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"media-typer": "0.3.0",
- "mime-types": "2.1.24"
+ "mime-types": "~2.1.24"
}
},
"uglify-js": {
@@ -3393,8 +3451,8 @@
"integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
"optional": true,
"requires": {
- "commander": "2.20.0",
- "source-map": "0.6.1"
+ "commander": "~2.20.0",
+ "source-map": "~0.6.1"
}
},
"undefsafe": {
@@ -3403,7 +3461,7 @@
"integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=",
"dev": true,
"requires": {
- "debug": "2.6.9"
+ "debug": "^2.2.0"
}
},
"union-value": {
@@ -3412,10 +3470,10 @@
"integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dev": true,
"requires": {
- "arr-union": "3.1.0",
- "get-value": "2.0.6",
- "is-extendable": "0.1.1",
- "set-value": "2.0.1"
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
}
},
"unique-string": {
@@ -3424,7 +3482,7 @@
"integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
"dev": true,
"requires": {
- "crypto-random-string": "1.0.0"
+ "crypto-random-string": "^1.0.0"
}
},
"unpipe": {
@@ -3438,8 +3496,8 @@
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
"dev": true,
"requires": {
- "has-value": "0.3.1",
- "isobject": "3.0.1"
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
},
"dependencies": {
"has-value": {
@@ -3448,9 +3506,9 @@
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
"dev": true,
"requires": {
- "get-value": "2.0.6",
- "has-values": "0.1.4",
- "isobject": "2.1.0"
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
},
"dependencies": {
"isobject": {
@@ -3490,16 +3548,16 @@
"integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
"dev": true,
"requires": {
- "boxen": "1.3.0",
- "chalk": "2.4.2",
- "configstore": "3.1.2",
- "import-lazy": "2.1.0",
- "is-ci": "1.2.1",
- "is-installed-globally": "0.1.0",
- "is-npm": "1.0.0",
- "latest-version": "3.1.0",
- "semver-diff": "2.1.0",
- "xdg-basedir": "3.0.0"
+ "boxen": "^1.2.1",
+ "chalk": "^2.0.1",
+ "configstore": "^3.0.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^1.0.10",
+ "is-installed-globally": "^0.1.0",
+ "is-npm": "^1.0.0",
+ "latest-version": "^3.0.0",
+ "semver-diff": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
}
},
"uri-js": {
@@ -3507,7 +3565,7 @@
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"requires": {
- "punycode": "2.1.1"
+ "punycode": "^2.1.0"
}
},
"urix": {
@@ -3522,7 +3580,7 @@
"integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
"dev": true,
"requires": {
- "prepend-http": "1.0.4"
+ "prepend-http": "^1.0.1"
}
},
"use": {
@@ -3557,9 +3615,9 @@
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
- "assert-plus": "1.0.0",
+ "assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
- "extsprintf": "1.3.0"
+ "extsprintf": "^1.2.0"
}
},
"w3c-hr-time": {
@@ -3567,7 +3625,7 @@
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
"integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
"requires": {
- "browser-process-hrtime": "0.1.3"
+ "browser-process-hrtime": "^0.1.2"
}
},
"w3c-xmlserializer": {
@@ -3575,9 +3633,9 @@
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz",
"integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==",
"requires": {
- "domexception": "1.0.1",
- "webidl-conversions": "4.0.2",
- "xml-name-validator": "3.0.0"
+ "domexception": "^1.0.1",
+ "webidl-conversions": "^4.0.2",
+ "xml-name-validator": "^3.0.0"
}
},
"webidl-conversions": {
@@ -3603,9 +3661,9 @@
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
"integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
"requires": {
- "lodash.sortby": "4.7.0",
- "tr46": "1.0.1",
- "webidl-conversions": "4.0.2"
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
}
},
"which": {
@@ -3614,7 +3672,7 @@
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
"requires": {
- "isexe": "2.0.0"
+ "isexe": "^2.0.0"
}
},
"widest-line": {
@@ -3623,7 +3681,7 @@
"integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
"dev": true,
"requires": {
- "string-width": "2.1.1"
+ "string-width": "^2.1.1"
}
},
"wordwrap": {
@@ -3642,9 +3700,9 @@
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
- "imurmurhash": "0.1.4",
- "signal-exit": "3.0.2"
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
}
},
"ws": {
@@ -3652,7 +3710,7 @@
"resolved": "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz",
"integrity": "sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==",
"requires": {
- "async-limiter": "1.0.1"
+ "async-limiter": "^1.0.0"
}
},
"xdg-basedir": {
diff --git a/package.json b/package.json
index bc36040..3f2c5ce 100644
--- a/package.json
+++ b/package.json
@@ -20,12 +20,14 @@
"homepage": "https://github.com/mbanerjeepalmer/commentative#readme",
"dependencies": {
"axios": "^0.19.0",
+ "clipboard": "^2.0.6",
"express": "^4.17.1",
"express-handlebars": "^3.1.0",
"jsdom": "^15.1.1",
"node-fetch": "^2.6.0",
"readability": "git+https://github.com/mozilla/readability.git",
- "request": "^2.88.0"
+ "request": "^2.88.0",
+ "sweetalert2": "^9.13.1"
},
"devDependencies": {
"nodemon": "^1.19.2"
diff --git a/public/scripts/newarticle.js b/public/scripts/newarticle.js
index e78bb51..ff5c959 100644
--- a/public/scripts/newarticle.js
+++ b/public/scripts/newarticle.js
@@ -17,20 +17,37 @@ addIndexToParagraphs();
function updateVisibleComments(selectedParagraphReference) {
console.log("updatingComments");
const comments = document.querySelectorAll(".comment-block");
- comments.forEach((commentBlock) => {
- //commentParagraphReference is the id of the paragraph that the comment has been added to
- let commentParagraphReference = commentBlock.getAttribute(
- "data-article-element-index"
- );
- //if it matches the current selected paragraph then display the comment
- if (commentParagraphReference === selectedParagraphReference) {
- commentBlock.style.display = "block";
- }
- //else hide all comments that dont relate to the current paragraph
- else {
- commentBlock.style.display = "none";
+ const prevButton = document.querySelector(".prev-comment-button");
+ const nextButton = document.querySelector(".next-comment-button");
+ let hasComments = false;
+ if (comments) {
+ comments.forEach((commentBlock) => {
+ //commentParagraphReference is the id of the paragraph that the comment has been added to
+ let commentParagraphReference = commentBlock.getAttribute(
+ "data-article-element-index"
+ );
+ //if it matches the current selected paragraph then display the comment
+ if (commentParagraphReference === selectedParagraphReference) {
+ commentBlock.classList.add("currentparagraph");
+ hasComments = true;
+ }
+ //else hide all comments that dont relate to the current paragraph
+ else {
+ commentBlock.classList.remove("currentparagraph");
+ commentBlock.style.display = "none";
+ }
+ });
+ if (hasComments && comments.length > 1) {
+ prevButton.style.display = "inline-block";
+ nextButton.style.display = "inline-block";
+ } else {
+ prevButton.style.display = "none";
+ nextButton.style.display = "none";
}
- });
+ }
+ //display the very first comment for the current paragraph(the rest remain hidden at this point)
+ let firstComment = document.querySelector(".currentparagraph");
+ if (firstComment) firstComment.style.display = "block";
}
// This is an ongoing check to see which element is in the middle of the screen.
@@ -76,61 +93,29 @@ function submitComment(e) {
.getAttribute("data-article-element-index");
//body is the text content of the comment
const body = document.querySelector(".addCommentTextArea").value;
- const user = "🖊️";
- if (firstSubmit) {
- //articleBody is a text only copy of the article(minus unnecessary html tags)
- // const articleBody = document.querySelector(".articleBody").value;
- const articleBody = document.querySelector(".article").textContent;
-
- // TODO: This `firstSubmit` thing feels weird.
- // Why does the user go through different journeys depending on whether they've submitted already?
- // the first time the user posts a comment, the articleBody gets posted to the db, i.e, this is the first time the database creates an entry for this user
- // the database then generates a unique url for this particular article(which will become our sharable link)
- // the problem is that the express app is unaware of this, so currently the requests to the comment database are being done from the frontend. not ideal.
- //the unique address for the database is being pulled from the address bar, but currently our app doesnt handle a refresh of this link
- // ideally the "new article" process should involve submitting the article content to the comment api, and then the link that the frontend gets sent to, instead of "newarticle?=articlelink" will be the unique link generated by our api
- // maybe the frontend talks only to the express app, and the express app communicates to the database - this seems to make more sense right now, may change this later
- firstSubmit = false;
- const params = { user, articleBody, commentData: [{ body, reference }] };
-
- fetch(url, {
- method: "POST",
- body: JSON.stringify(params),
- headers: {
- "Content-Type": "application/json",
- },
- })
- .then((res) => res.json())
- .then((articleObj) => {
- //TODO - move this step to backend, changing the url like this seems hackyyy
- history.pushState(null, "", "/" + articleObj.uuid);
- addNewComment(
- articleObj.comments[0].body,
- user,
- articleObj.comments[0].reference
- );
- document.querySelector(".addCommentTextArea").value = "";
- });
- } else {
- const path = window.location.pathname.split("/");
- const uuid = path[path.length - 1];
- const params = { user, commentData: [{ body, reference }] };
- console.log("hello", url + "/" + uuid);
- fetch(url + "/" + uuid, {
- method: "PUT",
- body: JSON.stringify(params),
- headers: {
- "Content-Type": "application/json",
- },
- })
- .then((res) => res.json())
- .then((commentObj) => {
- //the api returns the body and the paragraph index(reference) of the newly created comment
- addNewComment(commentObj[0].body, user, commentObj[0].reference);
- document.querySelector(".addCommentTextArea").value = "";
- });
- }
+ //dont submit empty comment
+ if (body.trim() === "") return;
+ const user = "Anonymous User";
+ const path = window.location.pathname.split("/");
+ const uuid = path[path.length - 1];
+ const params = { user, commentData: [{ body, reference }] };
+ console.log("hello", url + "/" + uuid);
+ fetch(url + "/" + uuid, {
+ method: "PUT",
+ body: JSON.stringify(params),
+ headers: {
+ "Content-Type": "application/json",
+ },
+ })
+ .then((res) => res.json())
+ .then((commentObj) => {
+ //the api returns the body and the paragraph index(reference) of the newly created comment
+ addNewComment(commentObj[0].body, user, commentObj[0].reference);
+ updateVisibleComments(commentObj[0].reference);
+ document.querySelector(".addCommentTextArea").value = "";
+ });
}
+// }
//function to add a new comment to the frontend display
function addNewComment(
@@ -143,7 +128,8 @@ function addNewComment(
const newCommentBlock = document.createElement("div");
newCommentBlock.classList.add("comment-block");
newCommentBlock.setAttribute("data-article-element-index", reference);
-
+ //initially display none, the updateComments function and the comment navigation(showNewComment) change the comments to visible as needed
+ newCommentBlock.style.display = "none";
const commentName = document.createElement("div");
commentName.classList.add("comment-name");
@@ -176,10 +162,53 @@ function keyDownUpdateSize(e) {
function keyUpUpdateSize(e) {
updateSize(e);
}
+let commentInput = document.querySelector(".addCommentTextArea");
+
+commentInput.addEventListener("keydown", keyDownUpdateSize);
+commentInput.addEventListener("keyup", keyUpUpdateSize);
+
+//The following is for comment navigation
+let commentIndex = 1;
-document
- .querySelector(".addCommentTextArea")
- .addEventListener("keydown", keyDownUpdateSize);
-document
- .querySelector(".addCommentTextArea")
- .addEventListener("keyup", keyUpUpdateSize);
+function showNewComment(index) {
+ let comments = document.querySelectorAll(".currentparagraph");
+ if (index > comments.length) {
+ commentIndex = 1;
+ }
+ if (index < 1) {
+ commentIndex = comments.length;
+ }
+ //set everything to display none
+ for (let i = 0; i < comments.length; i++) {
+ comments[i].style.display = "none";
+ }
+ //set the comment at the new index to be visible
+ comments[commentIndex - 1].style.display = "block";
+}
+
+let prevCommentButton = document.querySelector(".prev-comment-button");
+let nextCommentButton = document.querySelector(".next-comment-button");
+
+prevCommentButton.addEventListener("click", (e) => {
+ commentIndex -= 1;
+ showNewComment(commentIndex);
+});
+
+nextCommentButton.addEventListener("click", (e) => {
+ commentIndex += 1;
+ showNewComment(commentIndex);
+});
+
+//the following is for the invite button
+inviteButton = document.querySelector(".button-invite");
+//library that manages clipboard copying - doing it it with vanilla js is a bit cumbersome
+new ClipboardJS(inviteButton);
+inviteButton.addEventListener("click", (e) => {
+ Swal.fire({
+ title: "Success!",
+ text:
+ "The invite link has been copied to your clipboard. Send it to a friend so they can comment on this article!",
+ icon: "success",
+ confirmButtonText: "OK",
+ });
+});
diff --git a/public/styling/newarticle.css b/public/styling/newarticle.css
index 85bea0e..1554368 100644
--- a/public/styling/newarticle.css
+++ b/public/styling/newarticle.css
@@ -2,6 +2,7 @@ body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
line-height: 1.4;
+ position: relative;
color: #3e444d;
margin: 0;
}
@@ -26,6 +27,18 @@ p {
background: white;
}
+button {
+ margin: 0;
+ padding: 0;
+ border: none;
+ background: transparent;
+}
+
+button:active,
+button:focus {
+ border: none;
+ outline: none;
+}
.selected {
background: rgba(240, 59, 82, 0.1);
padding: 0.5rem;
@@ -84,7 +97,7 @@ footer strong {
font-weight: 600;
}
-.button-share {
+.button-invite {
background: #3e444d;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
padding: 0.75rem 1.5rem;
@@ -116,13 +129,16 @@ footer strong {
.comment-box.expanded {
display: flex;
+ flex-direction: column;
+ max-width: 38rem;
+ margin: 0 auto;
}
.comment-box.expanded .comment-block:first-child {
margin-top: 0.5rem;
}
-.comment-inner {
+/* .comment-inner {
padding: 1rem;
display: flex;
align-items: center;
@@ -133,10 +149,30 @@ footer strong {
padding-right: 1rem;
align-items: center;
color: #666;
+} */
+.comments {
+ position: relative;
}
-.comment-preview:first-word {
- font-weight: bold;
+.prev-next {
+ position: absolute;
+ top: 1rem;
+ right: 1rem;
+}
+
+.navbutton {
+ width: 1.5rem;
+ height: 1.5rem;
+ outline: none;
+ background-image: url("../assets/ic-chevron.svg");
+}
+
+.navbutton:active {
+ opacity: 0.4;
+}
+.prev-comment-button {
+ transform: rotate(180deg);
+ margin-right: 1rem;
}
.comment-block {
@@ -156,17 +192,21 @@ footer strong {
margin-right: 0.5rem;
color: #f03b52;
}
-
+.comment-content {
+ word-wrap: break-word;
+}
.comment-input {
padding: 1rem;
font-size: 1rem;
- width: 100%;
position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
height: auto;
}
.comment-input .addCommentTextArea {
- width: 100%;
+ width: calc(100% - 48px);
border: none;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
@@ -181,39 +221,8 @@ footer strong {
display: block;
width: 2rem;
height: 2rem;
- position: absolute;
- bottom: 1rem;
- right: 1rem;
}
-.button-send.active {
+.button-send:active {
background-image: url(../assets/ic-send-active.svg);
}
-
-.prev-next {
- position: absolute;
- top: 1rem;
- right: 1rem;
-}
-
-.chevron {
- background-image: url(../assets/ic-chevron.svg);
- display: inline-block;
- width: 1.5rem;
- height: 1.5rem;
-}
-
-.chevron.prev {
- transform: rotate(180deg);
- margin-right: 1rem;
-}
-
-.chevron-next {
- display: inline;
- background-image: url(../assets/ic-chevron.svg);
- transform: rotate(180deg);
-}
-
-.chevron.inactive {
- opacity: 0.4;
-}
diff --git a/src/app.js b/src/app.js
index e194d26..102fe5c 100644
--- a/src/app.js
+++ b/src/app.js
@@ -25,28 +25,56 @@ app.use(bodyParser.urlencoded({ extended: false }));
app.set("port", process.env.PORT || 3000);
app.use(express.static("public"));
+app.use(express.static("node_modules"));
-app.get("/", (req, res) => {
+app.get("/", (req, res, next) => {
res.render("home", { page: "home" });
});
-app.get("/newarticle", async (req, res) => {
- const url = req.query.contenturl;
- const articleObj = await readabilityParser(url);
+app.post("/newarticle", async (req, res, next) => {
+ const articleUrl = req.body.contenturl;
+ const articleBody = await readabilityParser(articleUrl);
+ const backendUrl =
+ "https://8rj0xswzt3.execute-api.eu-west-1.amazonaws.com/dev/commentative";
+ //no user and no commentData because at this point we're just submitting the article Body
+ const params = { user: null, commentData: [], articleBody };
+ axios
+ .post(backendUrl, params)
+ .then((res) => res.data)
+ .then((articleObj) => {
+ res.redirect(`/${articleObj.uuid}`);
+ })
+ .catch((err) => {
+ next(err);
+ });
+});
+
+app.get("/:uuid", async (req, res) => {
+ const url = `https://8rj0xswzt3.execute-api.eu-west-1.amazonaws.com/dev/commentative/${req.params.uuid}`;
+ const result = await axios(url);
+ const inviteLink = req.protocol + "://" + req.get("host") + req.originalUrl;
+ const articleObj = {
+ inviteLink,
+ content: result.data.articleBody.content,
+ siteName: result.data.articleBody.siteName,
+ title: result.data.articleBody.title,
+ comments: result.data.comments,
+ };
res.render("newarticle", { articleObj, page: "newarticle" });
});
-// app.get("/:uuid", async (req, res) => {
-// const url = `https://8rj0xswzt3.execute-api.eu-west-1.amazonaws.com/dev/commentative/${req.params.uuid}`;
-// const result = await axios(url);
-// const articleObj = {
-// header: "This is the actual header of the article",
-// content: result.data.articleBody,
-// comments: result.data.comments
-// };
-// console.log(articleObj);
-// res.render("newarticle", { articleObj, page: "newarticle" });
-// });
+app.get("*", (req, res) => {
+ res.status(404).send("page not found");
+});
+
+app.use((error, req, res, next) => {
+ // console.log(error);
+ const status = error.status || 500;
+ const message = error.message || "Something went wrong";
+ const name = error.name || "Error";
+ const errorObj = { name: name, message: message };
+ res.status(status).send(errorObj);
+});
app.listen(app.get("port"), () => {
console.log("App running on port", app.get("port"));
diff --git a/src/views/home.hbs b/src/views/home.hbs
index 2a57744..c402075 100644
--- a/src/views/home.hbs
+++ b/src/views/home.hbs
@@ -2,7 +2,7 @@
Host a discussion about
anything online
-
diff --git a/src/views/layouts/main.hbs b/src/views/layouts/main.hbs
index 46f6c31..581b932 100644
--- a/src/views/layouts/main.hbs
+++ b/src/views/layouts/main.hbs
@@ -8,6 +8,8 @@
+
+
Commentative
diff --git a/src/views/newarticle.hbs b/src/views/newarticle.hbs
index fdb35ae..9bb6bd7 100644
--- a/src/views/newarticle.hbs
+++ b/src/views/newarticle.hbs
@@ -2,7 +2,7 @@
-
+