diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index 5b7aaec388..aa1377ea18 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -355,9 +355,9 @@
"resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz"
},
"aws-sdk": {
- "version": "2.6.2",
+ "version": "2.6.3",
"from": "aws-sdk@>=2.0.25 <3.0.0",
- "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.6.2.tgz",
+ "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.6.3.tgz",
"dependencies": {
"lodash": {
"version": "3.5.0",
@@ -719,26 +719,11 @@
"from": "base64-stream@>=0.1.2 <0.2.0",
"resolved": "https://registry.npmjs.org/base64-stream/-/base64-stream-0.1.3.tgz"
},
- "base64-url": {
- "version": "1.2.2",
- "from": "base64-url@1.2.2",
- "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.2.tgz"
- },
"basic-auth": {
"version": "1.0.4",
"from": "basic-auth@>=1.0.3 <1.1.0",
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz"
},
- "basic-auth-connect": {
- "version": "1.0.0",
- "from": "basic-auth-connect@1.0.0",
- "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz"
- },
- "batch": {
- "version": "0.5.3",
- "from": "batch@0.5.3",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz"
- },
"bcrypt-pbkdf": {
"version": "1.0.0",
"from": "bcrypt-pbkdf@>=1.0.0 <2.0.0",
@@ -1613,35 +1598,11 @@
}
}
},
- "connect": {
- "version": "3.5.0",
- "from": "connect@>=1.8.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz",
- "dependencies": {
- "finalhandler": {
- "version": "0.5.0",
- "from": "finalhandler@0.5.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz"
- }
- }
- },
"connect-ratelimit": {
"version": "0.0.7",
"from": "connect-ratelimit@0.0.7",
"resolved": "https://registry.npmjs.org/connect-ratelimit/-/connect-ratelimit-0.0.7.tgz"
},
- "connect-timeout": {
- "version": "1.6.2",
- "from": "connect-timeout@>=1.6.2 <1.7.0",
- "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz",
- "dependencies": {
- "http-errors": {
- "version": "1.3.1",
- "from": "http-errors@>=1.3.1 <1.4.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz"
- }
- }
- },
"console-browserify": {
"version": "1.1.0",
"from": "console-browserify@>=1.1.0 <2.0.0",
@@ -1706,18 +1667,6 @@
"from": "cookie@0.1.5",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz"
},
- "cookie-parser": {
- "version": "1.3.5",
- "from": "cookie-parser@>=1.3.5 <1.4.0",
- "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz",
- "dependencies": {
- "cookie": {
- "version": "0.1.3",
- "from": "cookie@0.1.3",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"
- }
- }
- },
"cookie-session": {
"version": "1.2.0",
"from": "cookie-session@>=1.2.0 <2.0.0",
@@ -1753,11 +1702,6 @@
"from": "coupon-code@>=0.4.3 <0.5.0",
"resolved": "https://registry.npmjs.org/coupon-code/-/coupon-code-0.4.4.tgz"
},
- "crc": {
- "version": "3.3.0",
- "from": "crc@3.3.0",
- "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz"
- },
"create-ecdh": {
"version": "4.0.0",
"from": "create-ecdh@>=4.0.0 <5.0.0",
@@ -1788,11 +1732,6 @@
"from": "crypto-browserify@1.0.9",
"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz"
},
- "csrf": {
- "version": "3.0.3",
- "from": "csrf@>=3.0.0 <3.1.0",
- "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.3.tgz"
- },
"css": {
"version": "1.0.8",
"from": "css@>=1.0.8 <1.1.0",
@@ -1830,23 +1769,6 @@
"from": "csso@>=2.0.0 <2.1.0",
"resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz"
},
- "csurf": {
- "version": "1.8.3",
- "from": "csurf@>=1.8.3 <1.9.0",
- "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz",
- "dependencies": {
- "cookie": {
- "version": "0.1.3",
- "from": "cookie@0.1.3",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"
- },
- "http-errors": {
- "version": "1.3.1",
- "from": "http-errors@>=1.3.1 <1.4.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz"
- }
- }
- },
"csv-stringify": {
"version": "1.0.4",
"from": "csv-stringify@>=1.0.2 <2.0.0",
@@ -2261,11 +2183,6 @@
"from": "diffie-hellman@>=5.0.0 <6.0.0",
"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz"
},
- "docco": {
- "version": "0.4.0",
- "from": "docco@>=0.4.0 <0.5.0",
- "resolved": "https://registry.npmjs.org/docco/-/docco-0.4.0.tgz"
- },
"dom-serializer": {
"version": "0.1.0",
"from": "dom-serializer@>=0.1.0 <0.2.0",
@@ -2459,11 +2376,6 @@
"from": "error-ex@>=1.2.0 <2.0.0",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz"
},
- "errorhandler": {
- "version": "1.4.3",
- "from": "errorhandler@>=1.4.2 <1.5.0",
- "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz"
- },
"es5-ext": {
"version": "0.10.12",
"from": "es5-ext@>=0.10.6 <0.11.0",
@@ -2655,33 +2567,6 @@
"from": "express-csv@>=0.6.0 <0.7.0",
"resolved": "https://registry.npmjs.org/express-csv/-/express-csv-0.6.0.tgz"
},
- "express-session": {
- "version": "1.11.3",
- "from": "express-session@>=1.11.3 <1.12.0",
- "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz",
- "dependencies": {
- "base64-url": {
- "version": "1.2.1",
- "from": "base64-url@1.2.1",
- "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz"
- },
- "cookie": {
- "version": "0.1.3",
- "from": "cookie@0.1.3",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"
- },
- "depd": {
- "version": "1.0.1",
- "from": "depd@>=1.0.1 <1.1.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz"
- },
- "uid-safe": {
- "version": "2.0.0",
- "from": "uid-safe@>=2.0.0 <2.1.0",
- "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz"
- }
- }
- },
"express-validator": {
"version": "2.20.8",
"from": "express-validator@>=2.18.0 <3.0.0",
@@ -4596,6 +4481,28 @@
"from": "gzip-size@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-0.2.0.tgz"
},
+ "habitica-markdown": {
+ "version": "1.3.0",
+ "from": "habitica-markdown@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-1.3.0.tgz",
+ "dependencies": {
+ "linkify-it": {
+ "version": "2.0.0",
+ "from": "linkify-it@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.0.tgz"
+ },
+ "markdown-it": {
+ "version": "8.0.0",
+ "from": "markdown-it@8.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.0.0.tgz"
+ }
+ }
+ },
+ "habitica-markdown-emoji": {
+ "version": "1.2.4",
+ "from": "habitica-markdown-emoji@1.2.4",
+ "resolved": "https://registry.npmjs.org/habitica-markdown-emoji/-/habitica-markdown-emoji-1.2.4.tgz"
+ },
"handlebars": {
"version": "2.0.0",
"from": "handlebars@>=2.0.0 <2.1.0",
@@ -4759,11 +4666,6 @@
"from": "humanize-url@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz"
},
- "icalendar": {
- "version": "0.6.4",
- "from": "lefnire/node-icalendar#e06da0e55901f0ba940dfadc42c158ed0b1fead9",
- "resolved": "git://github.com/lefnire/node-icalendar.git#e06da0e55901f0ba940dfadc42c158ed0b1fead9"
- },
"iconv-lite": {
"version": "0.4.13",
"from": "iconv-lite@>=0.4.13 <0.5.0",
@@ -5496,9 +5398,9 @@
"resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz"
},
"jsonfile": {
- "version": "2.3.1",
+ "version": "2.4.0",
"from": "jsonfile@>=2.1.0 <3.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.3.1.tgz"
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz"
},
"jsonify": {
"version": "0.0.0",
@@ -5965,6 +5867,21 @@
"from": "markdown-it@>=6.0.1 <7.0.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-6.1.1.tgz"
},
+ "markdown-it-emoji": {
+ "version": "1.2.0",
+ "from": "markdown-it-emoji@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.2.0.tgz"
+ },
+ "markdown-it-link-attributes": {
+ "version": "1.0.0",
+ "from": "markdown-it-link-attributes@1.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-1.0.0.tgz"
+ },
+ "markdown-it-linkify-images": {
+ "version": "1.0.0",
+ "from": "markdown-it-linkify-images@1.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-linkify-images/-/markdown-it-linkify-images-1.0.0.tgz"
+ },
"maxmin": {
"version": "0.2.2",
"from": "maxmin@>=0.2.0 <0.3.0",
@@ -6193,23 +6110,6 @@
"from": "ms@0.7.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
},
- "multiparty": {
- "version": "3.3.2",
- "from": "multiparty@3.3.2",
- "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz",
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "from": "isarray@0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
- },
- "readable-stream": {
- "version": "1.1.14",
- "from": "readable-stream@>=1.1.9 <1.2.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
- }
- }
- },
"multipipe": {
"version": "0.1.2",
"from": "multipipe@>=0.1.2 <0.2.0",
@@ -7006,9 +6906,9 @@
"resolved": "https://registry.npmjs.org/paypal-rest-sdk/-/paypal-rest-sdk-1.6.9.tgz"
},
"pbkdf2": {
- "version": "3.0.6",
+ "version": "3.0.7",
"from": "pbkdf2@>=3.0.3 <4.0.0",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.6.tgz"
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.7.tgz"
},
"pend": {
"version": "1.2.0",
@@ -7329,11 +7229,6 @@
}
}
},
- "random-bytes": {
- "version": "1.0.0",
- "from": "random-bytes@>=1.0.0 <1.1.0",
- "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz"
- },
"randomatic": {
"version": "1.1.5",
"from": "randomatic@>=1.1.3 <2.0.0",
@@ -7547,18 +7442,6 @@
"from": "resolve-from@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"
},
- "response-time": {
- "version": "2.3.1",
- "from": "response-time@>=2.3.1 <2.4.0",
- "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.1.tgz",
- "dependencies": {
- "depd": {
- "version": "1.0.1",
- "from": "depd@>=1.0.1 <1.1.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz"
- }
- }
- },
"retry": {
"version": "0.9.0",
"from": "retry@>=0.9.0 <0.10.0",
@@ -7586,11 +7469,6 @@
"from": "ripemd160@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz"
},
- "rndm": {
- "version": "1.2.0",
- "from": "rndm@1.2.0",
- "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz"
- },
"run-sequence": {
"version": "1.2.2",
"from": "run-sequence@>=1.1.4 <2.0.0",
@@ -7711,28 +7589,6 @@
"from": "serve-favicon@>=2.3.0 <3.0.0",
"resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.0.tgz"
},
- "serve-index": {
- "version": "1.7.3",
- "from": "serve-index@>=1.7.2 <1.8.0",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz",
- "dependencies": {
- "accepts": {
- "version": "1.2.13",
- "from": "accepts@>=1.2.13 <1.3.0",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz"
- },
- "http-errors": {
- "version": "1.3.1",
- "from": "http-errors@>=1.3.1 <1.4.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz"
- },
- "negotiator": {
- "version": "0.5.3",
- "from": "negotiator@0.5.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"
- }
- }
- },
"serve-static": {
"version": "1.10.3",
"from": "serve-static@>=1.10.2 <1.11.0",
@@ -8056,23 +7912,6 @@
"from": "stream-consume@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz"
},
- "stream-counter": {
- "version": "0.2.0",
- "from": "stream-counter@>=0.2.0 <0.3.0",
- "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz",
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "from": "isarray@0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
- },
- "readable-stream": {
- "version": "1.1.14",
- "from": "readable-stream@>=1.1.8 <1.2.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
- }
- }
- },
"stream-http": {
"version": "2.4.0",
"from": "stream-http@>=2.0.0 <3.0.0",
@@ -8190,9 +8029,9 @@
"resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz"
},
"stripe": {
- "version": "4.10.0",
+ "version": "4.11.0",
"from": "stripe@>=4.2.0 <5.0.0",
- "resolved": "https://registry.npmjs.org/stripe/-/stripe-4.10.0.tgz",
+ "resolved": "https://registry.npmjs.org/stripe/-/stripe-4.11.0.tgz",
"dependencies": {
"bluebird": {
"version": "2.11.0",
@@ -8312,142 +8151,6 @@
}
}
},
- "swagger-node-express": {
- "version": "2.0.0",
- "from": "lefnire/swagger-node-express#habitrpg",
- "resolved": "git://github.com/lefnire/swagger-node-express.git#a75c64e68a4463ab7fd3a317ddb03a770b708880",
- "dependencies": {
- "accepts": {
- "version": "1.2.13",
- "from": "accepts@>=1.2.12 <1.3.0",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz"
- },
- "body-parser": {
- "version": "1.13.3",
- "from": "body-parser@>=1.13.3 <1.14.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz"
- },
- "bytes": {
- "version": "2.1.0",
- "from": "bytes@2.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz"
- },
- "commander": {
- "version": "2.6.0",
- "from": "commander@2.6.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz"
- },
- "compression": {
- "version": "1.5.2",
- "from": "compression@>=1.5.2 <1.6.0",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz"
- },
- "content-disposition": {
- "version": "0.5.0",
- "from": "content-disposition@0.5.0",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz"
- },
- "cookie": {
- "version": "0.1.3",
- "from": "cookie@0.1.3",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"
- },
- "depd": {
- "version": "1.0.1",
- "from": "depd@>=1.0.1 <1.1.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz"
- },
- "destroy": {
- "version": "1.0.3",
- "from": "destroy@1.0.3",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz"
- },
- "escape-html": {
- "version": "1.0.2",
- "from": "escape-html@1.0.2",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz"
- },
- "express": {
- "version": "3.21.2",
- "from": "express@>=3.0.0 <4.0.0",
- "resolved": "https://registry.npmjs.org/express/-/express-3.21.2.tgz",
- "dependencies": {
- "connect": {
- "version": "2.30.2",
- "from": "connect@2.30.2",
- "resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz"
- }
- }
- },
- "finalhandler": {
- "version": "0.4.0",
- "from": "finalhandler@0.4.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz"
- },
- "http-errors": {
- "version": "1.3.1",
- "from": "http-errors@>=1.3.1 <1.4.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz"
- },
- "iconv-lite": {
- "version": "0.4.11",
- "from": "iconv-lite@0.4.11",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz"
- },
- "lodash": {
- "version": "1.3.1",
- "from": "lodash@1.3.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.3.1.tgz"
- },
- "merge-descriptors": {
- "version": "1.0.0",
- "from": "merge-descriptors@1.0.0",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz"
- },
- "mime": {
- "version": "1.3.4",
- "from": "mime@1.3.4",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
- },
- "morgan": {
- "version": "1.6.1",
- "from": "morgan@>=1.6.1 <1.7.0",
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz"
- },
- "negotiator": {
- "version": "0.5.3",
- "from": "negotiator@0.5.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"
- },
- "pause": {
- "version": "0.1.0",
- "from": "pause@0.1.0",
- "resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz"
- },
- "qs": {
- "version": "4.0.0",
- "from": "qs@4.0.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz"
- },
- "send": {
- "version": "0.13.0",
- "from": "send@0.13.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz",
- "dependencies": {
- "statuses": {
- "version": "1.2.1",
- "from": "statuses@>=1.2.1 <1.3.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz"
- }
- }
- },
- "vary": {
- "version": "1.0.1",
- "from": "vary@>=1.0.1 <1.1.0",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz"
- }
- }
- },
"syntax-error": {
"version": "1.1.6",
"from": "syntax-error@>=1.1.1 <2.0.0",
@@ -8655,11 +8358,6 @@
"from": "trim-repeated@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz"
},
- "tsscmp": {
- "version": "1.0.5",
- "from": "tsscmp@1.0.5",
- "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz"
- },
"tty-browserify": {
"version": "0.0.0",
"from": "tty-browserify@>=0.0.0 <0.1.0",
@@ -8727,11 +8425,6 @@
"from": "uid-number@0.0.5",
"resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz"
},
- "uid-safe": {
- "version": "2.1.1",
- "from": "uid-safe@2.1.1",
- "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.1.tgz"
- },
"uid2": {
"version": "0.0.3",
"from": "uid2@>=0.0.0 <0.1.0",
@@ -8959,11 +8652,6 @@
"from": "verror@1.3.6",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
},
- "vhost": {
- "version": "3.0.2",
- "from": "vhost@>=3.0.1 <3.1.0",
- "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz"
- },
"viewport-list": {
"version": "4.0.1",
"from": "viewport-list@>=4.0.1 <5.0.0",
diff --git a/package.json b/package.json
index e2b3366e9d..0b63d22aa8 100644
--- a/package.json
+++ b/package.json
@@ -52,14 +52,13 @@
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^1.4.2",
"gulp.spritesmith": "^4.1.0",
- "icalendar": "lefnire/node-icalendar#e06da0e55901f0ba940dfadc42c158ed0b1fead9",
+ "habitica-markdown": "^1.3.0",
"image-size": "~0.3.2",
"in-app-purchase": "^1.1.6",
"jade": "~1.11.0",
"js2xmlparser": "~1.0.0",
"lodash": "^3.10.1",
"lodash.setwith": "^4.2.0",
- "markdown-it": "^6.0.1",
"merge-stream": "^1.0.0",
"method-override": "^2.3.5",
"moment": "^2.13.0",
@@ -88,7 +87,6 @@
"serve-favicon": "^2.3.0",
"stripe": "^4.2.0",
"superagent": "^1.8.3",
- "swagger-node-express": "lefnire/swagger-node-express#habitrpg",
"universal-analytics": "~0.3.2",
"useragent": "2.1.9",
"uuid": "^2.0.1",
diff --git a/website/common/locales/en/faq.json b/website/common/locales/en/faq.json
index 5b52d4c378..b679e5c3ea 100644
--- a/website/common/locales/en/faq.json
+++ b/website/common/locales/en/faq.json
@@ -9,7 +9,7 @@
"faqQuestion1": "How do I set up my tasks?",
"iosFaqAnswer1": "Good Habits (the ones with a +) are tasks that you can do many times a day, such as eating vegetables. Bad Habits (the ones with a -) are tasks that you should avoid, like biting nails. Habits with a + and a - have a good choice and a bad choice, like taking the stairs vs. taking the elevator. Good Habits award experience and gold. Bad Habits subtract health.\n\n Dailies are tasks that you have to do every day, like brushing your teeth or checking your email. You can adjust the days that a Daily is due by tapping to edit it. If you skip a Daily that is due, your avatar will take damage overnight. Be careful not to add too many Dailies at once!\n\n To-Dos are your To-Do list. Completing a To-Do earns you gold and experience. You never lose health from To-Dos. You can add a due date to a To-Do by tapping to edit.",
"androidFaqAnswer1": "Good Habits (the ones with a +) are tasks that you can do many times a day, such as eating vegetables. Bad Habits (the ones with a -) are tasks that you should avoid, like biting nails. Habits with a + and a - have a good choice and a bad choice, like taking the stairs vs. taking the elevator. Good Habits award experience and gold. Bad Habits subtract health.\n\n Dailies are tasks that you have to do every day, like brushing your teeth or checking your email. You can adjust the days that a Daily is due by tapping to edit it. If you skip a Daily that is due, your character will take damage overnight. Be careful not to add too many Dailies at once!\n\n To-Dos are your To-Do list. Completing a To-Do earns you gold and experience. You never lose health from To-Dos. You can add a due date to a To-Do by tapping to edit.",
- "webFaqAnswer1": "Good Habits (the ones with a ) are tasks that you can do many times a day, such as eating vegetables. Bad Habits (the ones with a ) are tasks that you should avoid, like biting nails. Habits with a and a have a good choice and a bad choice, like taking the stairs vs. taking the elevator. Good Habits award Experience and Gold. Bad Habits subtract Health.\n
\n Dailies are tasks that you have to do every day, like brushing your teeth or checking your email. You can adjust the days that a Daily is due by clicking the pencil item to edit it. If you skip a Daily that is due, your avatar will take damage overnight. Be careful not to add too many Dailies at once!\n
\n To-Dos are your To-Do list. Completing a To-Do earns you Gold and Experience. You never lose Health from To-Dos. You can add a due date to a To-Do by clicking the pencil icon to edit.",
+ "webFaqAnswer1": "Good Habits (the ones with a :heavy_plus_sign:) are tasks that you can do many times a day, such as eating vegetables. Bad Habits (the ones with a :heavy_minus_sign:) are tasks that you should avoid, like biting nails. Habits with a :heavy_plus_sign: and a :heavy_minus_sign: have a good choice and a bad choice, like taking the stairs vs. taking the elevator. Good Habits award Experience and Gold. Bad Habits subtract Health.\n
\n Dailies are tasks that you have to do every day, like brushing your teeth or checking your email. You can adjust the days that a Daily is due by clicking the pencil item to edit it. If you skip a Daily that is due, your avatar will take damage overnight. Be careful not to add too many Dailies at once!\n
\n To-Dos are your To-Do list. Completing a To-Do earns you Gold and Experience. You never lose Health from To-Dos. You can add a due date to a To-Do by clicking the pencil icon to edit.",
"faqQuestion2": "What are some sample tasks?",
"iosFaqAnswer2": "The wiki has four lists of sample tasks to use as inspiration:\n
\n * [Sample Habits](http://habitica.wikia.com/wiki/Sample_Habits)\n * [Sample Dailies](http://habitica.wikia.com/wiki/Sample_Dailies)\n * [Sample To-Dos](http://habitica.wikia.com/wiki/Sample_To-Dos)\n * [Sample Custom Rewards](http://habitica.wikia.com/wiki/Sample_Custom_Rewards)",
@@ -59,7 +59,7 @@
"faqQuestion11": "How do I report a bug or request a feature?",
"iosFaqAnswer11": "You can report a bug, request a feature, or send feedback under Menu > Report a Bug and Menu > Send Feedback! We'll do everything we can to assist you.",
"androidFaqAnswer11": "You can report a bug, request a feature, or send feedback under About > Report a Bug and About > Send us Feedback! We'll do everything we can to assist you.",
- "webFaqAnswer11": "To report a bug, go to [Help > Report a Bug](https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac) and read the points above the chat box. If you're unable to log in to Habitica, send your login details (not your password!) to admin@habitica.com. Don't worry, we'll get you fixed up soon!\n
\n Feature requests are collected on Trello. Go to [Help > Request a Feature](https://trello.com/c/odmhIqyW/440-read-first-table-of-contents) and follow the instructions. Ta-da!",
+ "webFaqAnswer11": "To report a bug, go to [Help > Report a Bug](https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac) and read the points above the chat box. If you're unable to log in to Habitica, send your login details (not your password!) to [admin@habitica.com](mailto:admin@habitica.com). Don't worry, we'll get you fixed up soon!\n
\n Feature requests are collected on Trello. Go to [Help > Request a Feature](https://trello.com/c/odmhIqyW/440-read-first-table-of-contents) and follow the instructions. Ta-da!",
"faqQuestion12": "How do I battle a World Boss?",
"iosFaqAnswer12": "World Bosses are special monsters that appear in the Tavern. All active users are automatically battling the Boss, and their tasks and skills will damage the Boss as usual.\n\n You can also be in a normal Quest at the same time. Your tasks and skills will count towards both the World Boss and the Boss/Collection Quest in your party.\n\n A World Boss will never hurt you or your account in any way. Instead, it has a Rage Bar that fills when users skip Dailies. If its Rage bar fills, it will attack one of the Non-Player Characters around the site and their image will change.\n\n You can read more about [past World Bosses](http://habitica.wikia.com/wiki/World_Bosses) on the wiki.",
diff --git a/website/server/controllers/top-level/pages.js b/website/server/controllers/top-level/pages.js
index 8c1f9aff2e..09b44d8419 100644
--- a/website/server/controllers/top-level/pages.js
+++ b/website/server/controllers/top-level/pages.js
@@ -1,10 +1,6 @@
import locals from '../../middlewares/locals';
import _ from 'lodash';
-import markdownIt from 'markdown-it';
-
-const md = markdownIt({
- html: true,
-});
+import md from 'habitica-markdown';
let api = {};
diff --git a/website/views/static/faq.jade b/website/views/static/faq.jade
index c14efc2250..9a7873967a 100644
--- a/website/views/static/faq.jade
+++ b/website/views/static/faq.jade
@@ -22,8 +22,8 @@ block content
- for heading, index in headings
a.h2.accordion.collapsed(ng-href='#' + heading, data-toggle='collapse')=env.t('faqQuestion' + index)
.clearfix.collapse(id=heading)
- !=md.render(env.t('webFaqAnswer' + index))
+ !=md.unsafeHTMLRender(env.t('webFaqAnswer' + index))
hr
- h3!=md.render(env.t('webFaqStillNeedHelp'))
+ h3!=md.unsafeHTMLRender(env.t('webFaqStillNeedHelp'))
diff --git a/website/views/static/overview.jade b/website/views/static/overview.jade
index b22c377bf3..21417ea861 100644
--- a/website/views/static/overview.jade
+++ b/website/views/static/overview.jade
@@ -18,6 +18,6 @@ block content
- for step in stepsNum
h3=env.t('step'+step)
p
- !=md.render(env.t('webStep'+step+'Text'))
+ !=md.unsafeHTMLRender(env.t('webStep'+step+'Text'))
hr
- !=md.render(env.t('overviewQuestions'))
+ !=md.unsafeHTMLRender(env.t('overviewQuestions'))