Merge branch 'develop' into sabrecat/teams-rebase

This commit is contained in:
SabreCat 2022-06-14 14:46:50 -05:00
commit 4ac1a3e717
35 changed files with 419 additions and 835 deletions

View file

@ -119,7 +119,7 @@ function path(obj, path, def) {
* @param {String} path dot separated
* @param {*} def default value ( if result undefined )
* @returns {*}
* http://stackoverflow.com/a/16190716
* https://stackoverflow.com/a/16190716
* Usage: console.log(path(someObject, pathname));
*/
for(var i = 0,path = path.split('.'),len = path.length; i < len; i++){

View file

@ -2,7 +2,7 @@
// TODO it might be better we just find() and save() all user objects using mongoose, and rely on our defined pre('save')
// and default values to "migrate" users. This way we can make sure those parts are working properly too
// @see http://stackoverflow.com/questions/14867697/mongoose-full-collection-scan
// @see https://stackoverflow.com/questions/14867697/mongoose-full-collection-scan
// Also, what do we think of a Mongoose Migration module? something like https://github.com/madhums/mongoose-migrate
// IMPORTANT NOTE: this migration was written when we were using version 3 of lodash.

View file

@ -19,7 +19,7 @@ const Timer = require('./utils/timer');
const connectToDb = require('./utils/connect').connectToDb;
const closeDb = require('./utils/connect').closeDb;
const message = '`This party\'s collection quest has been made easier! For details, refer to http://habitica.fandom.com/wiki/User_blog:LadyAlys/Collection_Quests_are_Now_Easier`';
const message = '`This party\'s collection quest has been made easier! For details, refer to https://habitica.fandom.com/wiki/User_blog:LadyAlys/Collection_Quests_are_Now_Easier`';
const timer = new Timer();

View file

@ -16,7 +16,7 @@ AWS.config.update({
const BUCKET_NAME = config.S3.bucket;
const s3 = new AWS.S3();
// Adapted from http://stackoverflow.com/a/22210077/2601552
// Adapted from https://stackoverflow.com/a/22210077/2601552
function uploadFile (buffer, fileName) {
return new Promise((resolve, reject) => {
s3.putObject({

View file

@ -2,7 +2,7 @@
// For some reason people often to contact me to cancel their sub,
// rather than do it online. Even when I point them to
// the FAQ (http://goo.gl/1uoPGQ) they insist...
// the FAQ (https://habitica.fandom.com/wiki/FAQ) they insist...
db.users.update(
{ _id: '' },

390
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.232.2",
"version": "4.233.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -27,20 +27,20 @@
"integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw=="
},
"@babel/core": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz",
"integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==",
"version": "7.18.5",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz",
"integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==",
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.10",
"@babel/helper-compilation-targets": "^7.17.10",
"@babel/helper-module-transforms": "^7.17.7",
"@babel/helpers": "^7.17.9",
"@babel/parser": "^7.17.10",
"@babel/generator": "^7.18.2",
"@babel/helper-compilation-targets": "^7.18.2",
"@babel/helper-module-transforms": "^7.18.0",
"@babel/helpers": "^7.18.2",
"@babel/parser": "^7.18.5",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.10",
"@babel/types": "^7.17.10",
"@babel/traverse": "^7.18.5",
"@babel/types": "^7.18.4",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@ -56,63 +56,10 @@
"@babel/highlight": "^7.16.7"
}
},
"@babel/compat-data": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz",
"integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw=="
},
"@babel/generator": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz",
"integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==",
"requires": {
"@babel/types": "^7.17.10",
"@jridgewell/gen-mapping": "^0.1.0",
"jsesc": "^2.5.1"
}
},
"@babel/helper-compilation-targets": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz",
"integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==",
"requires": {
"@babel/compat-data": "^7.17.10",
"@babel/helper-validator-option": "^7.16.7",
"browserslist": "^4.20.2",
"semver": "^6.3.0"
}
},
"@babel/helper-function-name": {
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
"integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
"requires": {
"@babel/template": "^7.16.7",
"@babel/types": "^7.17.0"
}
},
"@babel/helper-module-transforms": {
"version": "7.17.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz",
"integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==",
"requires": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
"@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0"
}
},
"@babel/helper-simple-access": {
"version": "7.17.7",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz",
"integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==",
"requires": {
"@babel/types": "^7.17.0"
}
"@babel/helper-environment-visitor": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz",
"integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ=="
},
"@babel/helper-validator-identifier": {
"version": "7.16.7",
@ -120,9 +67,9 @@
"integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
},
"@babel/highlight": {
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
"integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
"version": "7.17.12",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz",
"integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==",
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
@ -130,53 +77,36 @@
}
},
"@babel/parser": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz",
"integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ=="
"version": "7.18.5",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz",
"integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw=="
},
"@babel/traverse": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz",
"integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==",
"version": "7.18.5",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz",
"integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==",
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.10",
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/generator": "^7.18.2",
"@babel/helper-environment-visitor": "^7.18.2",
"@babel/helper-function-name": "^7.17.9",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.17.10",
"@babel/types": "^7.17.10",
"@babel/parser": "^7.18.5",
"@babel/types": "^7.18.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz",
"integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==",
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
"integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
}
},
"browserslist": {
"version": "4.20.3",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz",
"integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==",
"requires": {
"caniuse-lite": "^1.0.30001332",
"electron-to-chromium": "^1.4.118",
"escalade": "^3.1.1",
"node-releases": "^2.0.3",
"picocolors": "^1.0.0"
}
},
"caniuse-lite": {
"version": "1.0.30001334",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz",
"integrity": "sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw=="
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@ -187,11 +117,6 @@
"supports-color": "^5.3.0"
}
},
"node-releases": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz",
"integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ=="
},
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@ -567,97 +492,28 @@
}
},
"@babel/helpers": {
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz",
"integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==",
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz",
"integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==",
"requires": {
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.9",
"@babel/types": "^7.17.0"
"@babel/traverse": "^7.18.2",
"@babel/types": "^7.18.2"
},
"dependencies": {
"@babel/code-frame": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
"integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
"requires": {
"@babel/highlight": "^7.16.7"
}
},
"@babel/generator": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz",
"integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==",
"requires": {
"@babel/types": "^7.17.10",
"@jridgewell/gen-mapping": "^0.1.0",
"jsesc": "^2.5.1"
}
},
"@babel/helper-function-name": {
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
"integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
"requires": {
"@babel/template": "^7.16.7",
"@babel/types": "^7.17.0"
}
},
"@babel/helper-validator-identifier": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
"integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
},
"@babel/highlight": {
"version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
"integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@babel/parser": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz",
"integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ=="
},
"@babel/traverse": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz",
"integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==",
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.10",
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-function-name": "^7.17.9",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.17.10",
"@babel/types": "^7.17.10",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
"version": "7.17.10",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz",
"integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==",
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
"integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
}
}
},
@ -1978,6 +1834,14 @@
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4="
},
"@types/jsonwebtoken": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz",
"integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==",
"requires": {
"@types/node": "*"
}
},
"@types/keyv": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz",
@ -2965,7 +2829,7 @@
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
},
"asn1": {
"version": "0.2.4",
@ -4774,7 +4638,7 @@
"contentstream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/contentstream/-/contentstream-1.0.0.tgz",
"integrity": "sha1-C9z6RtowRkqGzo+n7OVlQQ3G+aU=",
"integrity": "sha512-jqWbfFZFG9tZbdej7+TzXI4kanABh3BLtTWY6NxqTK5zo6iTIeo5aq4iRVfYsLQ0y8ccQqmJR/J4NeMmEdnR2w==",
"requires": {
"readable-stream": "~1.0.33-1"
},
@ -4782,7 +4646,7 @@
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
},
"readable-stream": {
"version": "1.0.34",
@ -5097,7 +4961,7 @@
"cwise-compiler": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz",
"integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=",
"integrity": "sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==",
"requires": {
"uniq": "^1.0.0"
}
@ -5122,7 +4986,7 @@
"data-uri-to-buffer": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz",
"integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo="
"integrity": "sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw=="
},
"debug": {
"version": "4.1.1",
@ -5460,7 +5324,7 @@
"dezalgo": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
"integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
"integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==",
"requires": {
"asap": "^2.0.0",
"wrappy": "1"
@ -7154,7 +7018,7 @@
"first-chunk-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
"integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
"integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ=="
},
"flagged-respawn": {
"version": "1.0.1",
@ -7531,12 +7395,12 @@
}
},
"get-pixels": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.2.tgz",
"integrity": "sha512-6ar+8yPxRd1pskEcl2GSEu1La0+xYRjjnkby6AYiRDDwZ0tJbPQmHnSeH9fGLskT8kvR0OukVgtZLcsENF9YKQ==",
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.3.tgz",
"integrity": "sha512-5kyGBn90i9tSMUVHTqkgCHsoWoR+/lGbl4yC83Gefyr0HLIhgSWEx/2F/3YgsZ7UpYNuM6pDhDK7zebrUJ5nXg==",
"requires": {
"data-uri-to-buffer": "0.0.3",
"jpeg-js": "^0.3.2",
"jpeg-js": "^0.4.1",
"mime-types": "^2.0.1",
"ndarray": "^1.0.13",
"ndarray-pack": "^1.1.1",
@ -7587,7 +7451,7 @@
"gif-encoder": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/gif-encoder/-/gif-encoder-0.4.3.tgz",
"integrity": "sha1-iitP6MqJWkjjoLbLs0CgpqNXGJk=",
"integrity": "sha512-HMfSa+EIng62NbDhM63QGYoc49/m8DcZ9hhBtw+CXX9mKboSpeFVxjZ2WEWaMFZ14MUjfACK7jsrxrJffIVrCg==",
"requires": {
"readable-stream": "~1.1.9"
},
@ -7595,7 +7459,7 @@
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
},
"readable-stream": {
"version": "1.1.14",
@ -8378,11 +8242,11 @@
}
},
"gulp.spritesmith": {
"version": "6.12.1",
"resolved": "https://registry.npmjs.org/gulp.spritesmith/-/gulp.spritesmith-6.12.1.tgz",
"integrity": "sha512-Z1dDBrtOL1IhOgVLALj8d/Hh03KFkgQW9jy7oLePhgBwVjtJMUrGAYFqDQwgdKG8PUDdExpJcGujKs7MMXbUyQ==",
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/gulp.spritesmith/-/gulp.spritesmith-6.13.0.tgz",
"integrity": "sha512-maHC3FgCiOV+9wuLAgcqzq+oZjI8b57CgFVi0/r8Ax1AM2i51nEoKXtXM8RUh9ybTjT1mcGWNYzACDOK2hC8RQ==",
"requires": {
"async": "~2.1.5",
"async": "~3.2.3",
"minimatch": "~3.0.3",
"spritesheet-templates": "^10.3.0",
"spritesmith": "^3.4.0",
@ -8392,18 +8256,10 @@
"vinyl": "~2.1.0"
},
"dependencies": {
"async": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz",
"integrity": "sha512-+g/Ncjbx0JSq2Mk03WQkyKvNh5q9Qvyo/RIqIqnmC5feJY70PNl2ESwZU2BhAB+AZPkHNzzyC2Dq2AS5VnTKhQ==",
"requires": {
"lodash": "^4.14.0"
}
},
"underscore": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz",
"integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g=="
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz",
"integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ=="
},
"vinyl": {
"version": "2.1.0",
@ -8469,7 +8325,7 @@
"handlebars-layouts": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/handlebars-layouts/-/handlebars-layouts-3.1.4.tgz",
"integrity": "sha1-JrO+uTG0uHffv35v6vQFjuYiiwI="
"integrity": "sha512-2llBmvnj8ueOfxNHdRzJOcgalzZjYVd9+WAl93kPYmlX4WGx7FTHTzNxhK+i9YKY2OSjzfehgpLiIwP/OJr6tw=="
},
"har-schema": {
"version": "2.0.0",
@ -9025,7 +8881,7 @@
"iota-array": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz",
"integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc="
"integrity": "sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA=="
},
"ipaddr.js": {
"version": "1.9.1",
@ -9604,9 +9460,9 @@
"integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="
},
"jpeg-js": {
"version": "0.3.7",
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz",
"integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ=="
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz",
"integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q=="
},
"jquery": {
"version": "3.6.0",
@ -9778,11 +9634,12 @@
}
},
"jwks-rsa": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.3.tgz",
"integrity": "sha512-+zSFnZYHckwxEIgjEu81AAWDyqx8z5/OVtmhuXPbchUA9Y4bipVDqvL/5Z5Qhe088e/uxPvp8QDpIDOmI2cEBg==",
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.4.tgz",
"integrity": "sha512-mpArfgPkUpX11lNtGxsF/szkasUcbWHGplZl/uFvFO2NuMHmt0dQXIihh0rkPU2yQd5niQtuUHbXnG/WKiXF6Q==",
"requires": {
"@types/express": "^4.17.13",
"@types/jsonwebtoken": "^8.5.8",
"debug": "^4.3.4",
"jose": "^2.0.5",
"limiter": "^1.1.5",
@ -9883,7 +9740,7 @@
"layout": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/layout/-/layout-2.2.0.tgz",
"integrity": "sha1-MeRL/BjdEBmz/7II5AKku/4uavQ=",
"integrity": "sha512-+kdgg25XW11BA4cl9vF+SH01HaBipld2Nf/PlU2kSYncAbdUbDoahzrlh6yhR93N/wR2TGgcFoxebzR1LKmZUg==",
"requires": {
"bin-pack": "~1.0.1"
}
@ -10181,7 +10038,7 @@
"lru-cache": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
"integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=",
"integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==",
"requires": {
"pseudomap": "^1.0.1",
"yallist": "^2.0.0"
@ -10190,7 +10047,7 @@
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
}
}
},
@ -11258,7 +11115,7 @@
"ndarray-ops": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz",
"integrity": "sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=",
"integrity": "sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw==",
"requires": {
"cwise-compiler": "^1.0.0"
}
@ -11266,7 +11123,7 @@
"ndarray-pack": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz",
"integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=",
"integrity": "sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g==",
"requires": {
"cwise-compiler": "^1.1.2",
"ndarray": "^1.0.13"
@ -11339,7 +11196,7 @@
"node-bitmap": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz",
"integrity": "sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE="
"integrity": "sha512-Jx5lPaaLdIaOsj2mVLWMWulXF6GQVdyLvNSxmiYCvZ8Ma2hfKX0POoR2kgKOqz+oFsRreq0yYZjQ2wjE9VNzCA=="
},
"node-fetch": {
"version": "2.6.7",
@ -11524,7 +11381,7 @@
"obj-extend": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/obj-extend/-/obj-extend-0.1.0.tgz",
"integrity": "sha1-u0SKR3X7les0p4H5CLusLfI9u1s="
"integrity": "sha512-or9c7Ue2wWCun41DuLP3+LKEUjSZcDSxfCM4HZQSX9tcjLL/yuzTW7MmtVNs+MmN16uDRpDrFmFK/WVSm4vklg=="
},
"object-assign": {
"version": "4.1.1",
@ -11914,7 +11771,7 @@
"parse-data-uri": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz",
"integrity": "sha1-vwTYUd1ch7CrI45dAazklLYEtMk=",
"integrity": "sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w==",
"requires": {
"data-uri-to-buffer": "0.0.3"
}
@ -12138,11 +11995,11 @@
"integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ=="
},
"pixelsmith": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/pixelsmith/-/pixelsmith-2.4.1.tgz",
"integrity": "sha512-6lVOPf9eBd9bWfxo5efmJcAiF6y65Ui9Ir8IR8jocrj/v/8QoLWZmgnhO7KGUfqkwPLNlCBfxVdjp4QihdPmPQ==",
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/pixelsmith/-/pixelsmith-2.6.0.tgz",
"integrity": "sha512-1W0C8EVxAPJwsCodw/+dfeEtdSc8JuHFipVylf51PIvh7S7Q33qmVCCzeWQp1y1sXpZ52iXGY2D/ICMyHPIULw==",
"requires": {
"async": "~0.9.0",
"async": "^3.2.3",
"concat-stream": "~1.5.1",
"get-pixels": "~3.3.0",
"mime-types": "~2.1.7",
@ -12152,15 +12009,10 @@
"vinyl-file": "~1.3.0"
},
"dependencies": {
"async": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
"integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
},
"concat-stream": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
"integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
"integrity": "sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==",
"requires": {
"inherits": "~2.0.1",
"readable-stream": "~2.0.0",
@ -12170,7 +12022,7 @@
"process-nextick-args": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
"integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw=="
},
"readable-stream": {
"version": "2.0.6",
@ -12227,7 +12079,7 @@
"pngjs-nozlib": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/pngjs-nozlib/-/pngjs-nozlib-1.0.0.tgz",
"integrity": "sha1-nmTWAs/pzOTZ1Zl9BodCmnPwt9c="
"integrity": "sha512-N1PggqLp9xDqwAoKvGohmZ3m4/N9xpY0nDZivFqQLcpLHmliHnCp9BuNCsOeqHWMuEEgFjpEaq9dZq6RZyy0fA=="
},
"posix-character-classes": {
"version": "0.1.1",
@ -13155,24 +13007,17 @@
}
},
"save-pixels": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/save-pixels/-/save-pixels-2.3.4.tgz",
"integrity": "sha1-SdNJwGuNfAEn2/DaJLRKylr7Wf4=",
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/save-pixels/-/save-pixels-2.3.6.tgz",
"integrity": "sha512-/ayfEWBxt0tFpf5lxSU1S0+/TBn7EiaTZD+6GL+mwizHm3BKCBysnzT6Js7BusDUVcNVLkeJJKLZcBgdpM2leQ==",
"requires": {
"contentstream": "^1.0.0",
"gif-encoder": "~0.4.1",
"jpeg-js": "0.0.4",
"jpeg-js": "^0.4.3",
"ndarray": "^1.0.18",
"ndarray-ops": "^1.2.2",
"pngjs-nozlib": "^1.0.0",
"through": "^2.3.4"
},
"dependencies": {
"jpeg-js": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.0.4.tgz",
"integrity": "sha1-Bqr0fv7HrwsZJKWc1pWm0rXthw4="
}
}
},
"sax": {
@ -13789,9 +13634,9 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
"spritesheet-templates": {
"version": "10.5.1",
"resolved": "https://registry.npmjs.org/spritesheet-templates/-/spritesheet-templates-10.5.1.tgz",
"integrity": "sha512-GNJMjHR5Va+W0hq49gu70rcKcGwUts4LUPC2Z1mgsa4QWaXbWhsdWK+Tm4FFhzZGmXSz35pGzvWTd0eN/WlWsA==",
"version": "10.5.2",
"resolved": "https://registry.npmjs.org/spritesheet-templates/-/spritesheet-templates-10.5.2.tgz",
"integrity": "sha512-dMrLgS5eHCEDWqo1c3mDM5rGdJpBNf1JAJrxTKA4qR54trNTtxqGZlH3ZppS5FHTgjKgOtEmycqE2vGSkCYiVw==",
"requires": {
"handlebars": "^4.6.0",
"handlebars-layouts": "^3.1.4",
@ -13801,9 +13646,9 @@
},
"dependencies": {
"underscore": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz",
"integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g=="
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz",
"integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ=="
}
}
},
@ -13822,7 +13667,7 @@
"concat-stream": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
"integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
"integrity": "sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==",
"requires": {
"inherits": "~2.0.1",
"readable-stream": "~2.0.0",
@ -13832,7 +13677,7 @@
"process-nextick-args": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
"integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw=="
},
"readable-stream": {
"version": "2.0.6",
@ -14168,9 +14013,9 @@
"integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ=="
},
"superagent": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.3.tgz",
"integrity": "sha512-WA6et4nAvgBCS73lJvv1D0ssI5uk5Gh+TGN/kNe+B608EtcVs/yzfl+OLXTzDs7tOBDIpvgh/WUs1K2OK1zTeQ==",
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.6.tgz",
"integrity": "sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==",
"requires": {
"component-emitter": "^1.3.0",
"cookiejar": "^2.1.3",
@ -14179,7 +14024,7 @@
"form-data": "^4.0.0",
"formidable": "^2.0.1",
"methods": "^1.1.2",
"mime": "^2.5.0",
"mime": "2.6.0",
"qs": "^6.10.3",
"readable-stream": "^3.6.0",
"semver": "^7.3.7"
@ -14965,12 +14810,19 @@
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
},
"underscore.string": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
"integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz",
"integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==",
"requires": {
"sprintf-js": "^1.0.3",
"sprintf-js": "^1.1.1",
"util-deprecate": "^1.0.2"
},
"dependencies": {
"sprintf-js": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
"integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
}
}
},
"undertaker": {
@ -15217,7 +15069,7 @@
"punycode": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
"integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
"integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw=="
}
}
},
@ -15416,12 +15268,12 @@
"clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
},
"clone-stats": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
"integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
"integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA=="
},
"replace-ext": {
"version": "0.0.1",

View file

@ -1,10 +1,10 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.232.2",
"version": "4.233.1",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.17.10",
"@babel/core": "^7.18.5",
"@babel/preset-env": "^7.18.2",
"@babel/register": "^7.17.7",
"@google-cloud/trace-agent": "^5.1.6",
@ -36,14 +36,14 @@
"gulp-babel": "^8.0.0",
"gulp-imagemin": "^7.1.0",
"gulp-nodemon": "^2.5.0",
"gulp.spritesmith": "^6.12.1",
"gulp.spritesmith": "^6.13.0",
"habitica-markdown": "^3.0.0",
"helmet": "^4.6.0",
"image-size": "^1.0.1",
"in-app-purchase": "^1.11.3",
"js2xmlparser": "^4.0.2",
"jsonwebtoken": "^8.5.1",
"jwks-rsa": "^2.1.3",
"jwks-rsa": "^2.1.4",
"lodash": "^4.17.21",
"merge-stream": "^2.0.0",
"method-override": "^3.0.0",
@ -68,7 +68,7 @@
"rimraf": "^3.0.2",
"short-uuid": "^4.2.0",
"stripe": "^8.222.0",
"superagent": "^7.1.3",
"superagent": "^7.1.6",
"universal-analytics": "^0.5.3",
"useragent": "^2.1.9",
"uuid": "^8.3.2",

View file

@ -326,6 +326,36 @@ describe('Google Payments', () => {
});
});
it('should cancel a user subscription with multiple inactive subscriptions', async () => {
const laterDate = moment.utc().add(7, 'days');
iap.getPurchaseData.restore();
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
.returns([{ expirationDate, autoRenewing: false },
{ expirationDate: laterDate, autoRenewing: false },
]);
await googlePayments.cancelSubscribe(user, headers);
expect(iapSetupStub).to.be.calledOnce;
expect(iapValidateStub).to.be.calledOnce;
expect(iapValidateStub).to.be.calledWith(iap.GOOGLE, {
data: receipt,
signature,
});
expect(iapIsValidatedStub).to.be.calledOnce;
expect(iapIsValidatedStub).to.be.calledWith({
expirationDate,
});
expect(iapGetPurchaseDataStub).to.be.calledOnce;
expect(paymentCancelSubscriptionSpy).to.be.calledOnce;
expect(paymentCancelSubscriptionSpy).to.be.calledWith({
user,
paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE,
nextBill: laterDate.toDate(),
headers,
});
});
it('should not cancel a user subscription with autorenew', async () => {
iap.getPurchaseData.restore();
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
@ -346,5 +376,28 @@ describe('Google Payments', () => {
expect(paymentCancelSubscriptionSpy).to.not.be.called;
});
it('should not cancel a user subscription with multiple subscriptions with one autorenew', async () => {
iap.getPurchaseData.restore();
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
.returns([{ expirationDate, autoRenewing: false },
{ autoRenewing: true },
{ expirationDate, autoRenewing: false }]);
await googlePayments.cancelSubscribe(user, headers);
expect(iapSetupStub).to.be.calledOnce;
expect(iapValidateStub).to.be.calledOnce;
expect(iapValidateStub).to.be.calledWith(iap.GOOGLE, {
data: receipt,
signature,
});
expect(iapIsValidatedStub).to.be.calledOnce;
expect(iapIsValidatedStub).to.be.calledWith({
expirationDate,
});
expect(iapGetPurchaseDataStub).to.be.calledOnce;
expect(paymentCancelSubscriptionSpy).to.not.be.called;
});
});
});

View file

@ -1,33 +0,0 @@
import superagent from 'superagent';
import nconf from 'nconf';
import {
generateUser,
translate as t,
} from '../../../../helpers/api-integration/v3';
const API_TEST_SERVER_PORT = nconf.get('PORT');
xdescribe('GET /qr-code/user/:memberId', () => {
let user;
before(async () => {
user = await generateUser();
});
it('validates req.params.memberId', async () => {
await expect(user.get('/qr-code/user/invalidUUID')).to.eventually.be.rejected.and.eql({
code: 400,
error: 'BadRequest',
message: t('invalidReqParams'),
});
});
it('redirects to profile page', async () => {
const url = `http://localhost:${API_TEST_SERVER_PORT}/qr-code/user/${user._id}`;
const response = await superagent.get(url).end((err, res) => {
expect(err).to.be(undefined);
return res;
});
expect(response.status).to.eql(200);
expect(response.request.url).to.eql(`http://localhost:${API_TEST_SERVER_PORT}/static/front/#?memberId=${user._id}`);
});
});

View file

@ -28,7 +28,7 @@ app.post('/webhooks/:id', (req, res) => {
});
// Helps close down server from within mocha test
// See http://stackoverflow.com/a/37054753/2601552
// See https://stackoverflow.com/a/37054753/2601552
const sockets = {};
server.on('connection', socket => {
const id = uuid();

View file

@ -40,7 +40,6 @@ function _requestMaker (user, method, additionalSets = {}) {
|| route.indexOf('/paypal') === 0
|| route.indexOf('/amazon') === 0
|| route.indexOf('/stripe') === 0
|| route.indexOf('/qr-code') === 0
|| route.indexOf('/analytics') === 0
) {
url += `${route}`;

View file

@ -4785,17 +4785,17 @@
"integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w=="
},
"@storybook/addon-actions": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.5.6.tgz",
"integrity": "sha512-AGtzpWOU/B0FxcqFDM7E/KSHQyr6tMbVts77JlAKCIbwqEncD1LIQoz9CyMdbr1jynkep0Ck0JjcDdmp7CXVoQ==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.5.8.tgz",
"integrity": "sha512-9ciR1iWBTzQNBDlq0iQs9+TV7gng+FbQxW5mHNxNvT9SxY1dt02wCPHZeVE/5la61wBXZs/zpEepZA93VzVBDw==",
"requires": {
"@storybook/addons": "6.5.6",
"@storybook/api": "6.5.6",
"@storybook/client-logger": "6.5.6",
"@storybook/components": "6.5.6",
"@storybook/core-events": "6.5.6",
"@storybook/addons": "6.5.8",
"@storybook/api": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/components": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/theming": "6.5.6",
"@storybook/theming": "6.5.8",
"core-js": "^3.8.2",
"fast-deep-equal": "^3.1.3",
"global": "^4.4.0",
@ -4811,17 +4811,17 @@
},
"dependencies": {
"@storybook/addons": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.6.tgz",
"integrity": "sha512-Ktv7Pk4iq+8+6yifXu3bOiC1ii9VXD93mmha7XcrdW+wl8jti9Ll5jLKEN0lAhd+Qupz4R0g9+znpRXk5n0pBg==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.8.tgz",
"integrity": "sha512-L3LmbsYP9tDHHvpr/yv8YuEkzym7SXp/jZ0km31tpG3EuZmgGu7MXPrZ2ymEw4PkAhQzztgRr23VTfKobGUojA==",
"requires": {
"@storybook/api": "6.5.6",
"@storybook/channels": "6.5.6",
"@storybook/client-logger": "6.5.6",
"@storybook/core-events": "6.5.6",
"@storybook/api": "6.5.8",
"@storybook/channels": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/router": "6.5.6",
"@storybook/theming": "6.5.6",
"@storybook/router": "6.5.8",
"@storybook/theming": "6.5.8",
"@types/webpack-env": "^1.16.0",
"core-js": "^3.8.2",
"global": "^4.4.0",
@ -4829,17 +4829,17 @@
}
},
"@storybook/api": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.6.tgz",
"integrity": "sha512-GHhjb6mji+R+FWytx7MIOKqca49ZXjvnIPpyp5zXAtgdk2Yn2j8C0MRPO1ovh4nHKWVvx6larmhskRxfUjk06g==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.8.tgz",
"integrity": "sha512-/MueV+wLCvy9gFA3ih4g7QYjDmn14i+D2ydonfaEC7R+agFGXxXwJGPKkz3yBNrRpNkBwcbY9mAmv8lE2AqgqQ==",
"requires": {
"@storybook/channels": "6.5.6",
"@storybook/client-logger": "6.5.6",
"@storybook/core-events": "6.5.6",
"@storybook/channels": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/router": "6.5.6",
"@storybook/router": "6.5.8",
"@storybook/semver": "^7.3.2",
"@storybook/theming": "6.5.6",
"@storybook/theming": "6.5.8",
"core-js": "^3.8.2",
"fast-deep-equal": "^3.1.3",
"global": "^4.4.0",
@ -4853,9 +4853,9 @@
}
},
"@storybook/channels": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.6.tgz",
"integrity": "sha512-rS0Dk9fSiMBsPvkiMo9CuvDCoXbGmYKiX/juS3F4u+sedhH+XtH4jFf49lJWoNVAE6eJPFyXATU4p1mm8Z85kQ==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.8.tgz",
"integrity": "sha512-fNql1lEIvWlI1NiRtwFMWOOvfW6qxgeSP6xoqiAJ0b+QYegEFG9UxJDuEvVHq++S81FulgQ5U+p+5R9XSV19tQ==",
"requires": {
"core-js": "^3.8.2",
"ts-dedent": "^2.0.0",
@ -4863,22 +4863,22 @@
}
},
"@storybook/client-logger": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.6.tgz",
"integrity": "sha512-hJzhn5EO0S4fUAZkKzBGNACJfupV9n+7TSIaU4mpVP+/ImS9uPdorAAtyqp5HC6R6vA67POoSgX0+qPgZnWvaw==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.8.tgz",
"integrity": "sha512-dH6HSaVuOIMHy1+rpsqcD3SJxVZEEbuEtsNpdUGwLJaIuduhUJJpM2xQfUW0siZDyrgwoa+znll+G0YNUbv7sg==",
"requires": {
"core-js": "^3.8.2",
"global": "^4.4.0"
}
},
"@storybook/components": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.6.tgz",
"integrity": "sha512-Qh40wMkqWD3ZbGqxqa0pi5JFWazIbcZWbqUakH9zARgLk+LBrpJvPuu7GmQrDUtJTA33H4tD/4ujt6AibnaQwQ==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.8.tgz",
"integrity": "sha512-YE+LZ1/GXoqertxodsf+L9ehcohbICRAxgE/iNqc7MZfk95SD3XRSUbxhCpGe8QTIZJpzs1tK4LFZ3Fg5w/+Lg==",
"requires": {
"@storybook/client-logger": "6.5.6",
"@storybook/client-logger": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/theming": "6.5.6",
"@storybook/theming": "6.5.8",
"@types/react-syntax-highlighter": "11.0.5",
"core-js": "^3.8.2",
"qs": "^6.10.0",
@ -4888,9 +4888,9 @@
}
},
"@storybook/core-events": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.6.tgz",
"integrity": "sha512-bzktgM1i0QPrayH1ANbKb7nYpehSpi5QHWps2vVQbvtpI/pGlTtpde1e87vfAt74Bvsvd3/9IpQkQKteDODAkA==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.8.tgz",
"integrity": "sha512-lzG4Lg65WFYvjs2k/E3CP4+eyPexEGrDyRMO9Pbj9H9x+eosYptauEbT/wXF83bmUWZKLWWVUAZX7hDcxBO8cw==",
"requires": {
"core-js": "^3.8.2"
}
@ -4904,21 +4904,21 @@
}
},
"@storybook/router": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.6.tgz",
"integrity": "sha512-SL9X/+bkJxafH5V9r65liMgs+EvGddMCQ/4JP/p3GIu6+2G3pW613Ww5sqCBCB1R4zoYcsMT7F1q/D5NWByVHg==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.8.tgz",
"integrity": "sha512-tseNJpZ2ZzVYowjekUMpGJVVRMrwOkttieD9mRbHrhh+2n7b+SoMKnuLi3ow0xeOyPL8ZDng2FgRjQzQHXA5Sw==",
"requires": {
"@storybook/client-logger": "6.5.6",
"@storybook/client-logger": "6.5.8",
"core-js": "^3.8.2",
"regenerator-runtime": "^0.13.7"
}
},
"@storybook/theming": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.6.tgz",
"integrity": "sha512-JEKl9gdVD2Ef9xSwRtaq6EpjJD5xe7X2OP/4e61ucrp/rSOk7SOpYUZYQh6PhYLGhnGbgQkedVVc9CUhK8bs6Q==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.8.tgz",
"integrity": "sha512-1VaKHqj38Ls1bJwDpg3+aEOlvVib/DCFkP6WYrP/AQtNAzxiyw5WkaoRlTVJZvCdu5TxjpG4O6/Ai5TI9QftIg==",
"requires": {
"@storybook/client-logger": "6.5.6",
"@storybook/client-logger": "6.5.8",
"core-js": "^3.8.2",
"regenerator-runtime": "^0.13.7"
}
@ -5026,9 +5026,9 @@
"integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw=="
},
"qs": {
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
"integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
"version": "6.10.5",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.5.tgz",
"integrity": "sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==",
"requires": {
"side-channel": "^1.0.4"
}
@ -5157,15 +5157,15 @@
}
},
"@storybook/addon-links": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.5.6.tgz",
"integrity": "sha512-a4+9HLc6+M9qv5Fvezoc8AJYze8HDfHlsEFvCY1AtQiyVEmxFRNBdAp6w+/teNzihXWY78EKRcGM0jjyt+9mWg==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.5.8.tgz",
"integrity": "sha512-UxzEPnT1PLPsuy3tt+o3UJTbI4Kihec+/yzpzzGKreUnCC8EWTsOhtMQAVVit2t4BMl4vNrxKO0mKSc8saT3Gw==",
"requires": {
"@storybook/addons": "6.5.6",
"@storybook/client-logger": "6.5.6",
"@storybook/core-events": "6.5.6",
"@storybook/addons": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/router": "6.5.6",
"@storybook/router": "6.5.8",
"@types/qs": "^6.9.5",
"core-js": "^3.8.2",
"global": "^4.4.0",
@ -5176,17 +5176,17 @@
},
"dependencies": {
"@storybook/addons": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.6.tgz",
"integrity": "sha512-Ktv7Pk4iq+8+6yifXu3bOiC1ii9VXD93mmha7XcrdW+wl8jti9Ll5jLKEN0lAhd+Qupz4R0g9+znpRXk5n0pBg==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.8.tgz",
"integrity": "sha512-L3LmbsYP9tDHHvpr/yv8YuEkzym7SXp/jZ0km31tpG3EuZmgGu7MXPrZ2ymEw4PkAhQzztgRr23VTfKobGUojA==",
"requires": {
"@storybook/api": "6.5.6",
"@storybook/channels": "6.5.6",
"@storybook/client-logger": "6.5.6",
"@storybook/core-events": "6.5.6",
"@storybook/api": "6.5.8",
"@storybook/channels": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/router": "6.5.6",
"@storybook/theming": "6.5.6",
"@storybook/router": "6.5.8",
"@storybook/theming": "6.5.8",
"@types/webpack-env": "^1.16.0",
"core-js": "^3.8.2",
"global": "^4.4.0",
@ -5194,17 +5194,17 @@
}
},
"@storybook/api": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.6.tgz",
"integrity": "sha512-GHhjb6mji+R+FWytx7MIOKqca49ZXjvnIPpyp5zXAtgdk2Yn2j8C0MRPO1ovh4nHKWVvx6larmhskRxfUjk06g==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.8.tgz",
"integrity": "sha512-/MueV+wLCvy9gFA3ih4g7QYjDmn14i+D2ydonfaEC7R+agFGXxXwJGPKkz3yBNrRpNkBwcbY9mAmv8lE2AqgqQ==",
"requires": {
"@storybook/channels": "6.5.6",
"@storybook/client-logger": "6.5.6",
"@storybook/core-events": "6.5.6",
"@storybook/channels": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/router": "6.5.6",
"@storybook/router": "6.5.8",
"@storybook/semver": "^7.3.2",
"@storybook/theming": "6.5.6",
"@storybook/theming": "6.5.8",
"core-js": "^3.8.2",
"fast-deep-equal": "^3.1.3",
"global": "^4.4.0",
@ -5218,9 +5218,9 @@
}
},
"@storybook/channels": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.6.tgz",
"integrity": "sha512-rS0Dk9fSiMBsPvkiMo9CuvDCoXbGmYKiX/juS3F4u+sedhH+XtH4jFf49lJWoNVAE6eJPFyXATU4p1mm8Z85kQ==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.8.tgz",
"integrity": "sha512-fNql1lEIvWlI1NiRtwFMWOOvfW6qxgeSP6xoqiAJ0b+QYegEFG9UxJDuEvVHq++S81FulgQ5U+p+5R9XSV19tQ==",
"requires": {
"core-js": "^3.8.2",
"ts-dedent": "^2.0.0",
@ -5228,18 +5228,18 @@
}
},
"@storybook/client-logger": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.6.tgz",
"integrity": "sha512-hJzhn5EO0S4fUAZkKzBGNACJfupV9n+7TSIaU4mpVP+/ImS9uPdorAAtyqp5HC6R6vA67POoSgX0+qPgZnWvaw==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.8.tgz",
"integrity": "sha512-dH6HSaVuOIMHy1+rpsqcD3SJxVZEEbuEtsNpdUGwLJaIuduhUJJpM2xQfUW0siZDyrgwoa+znll+G0YNUbv7sg==",
"requires": {
"core-js": "^3.8.2",
"global": "^4.4.0"
}
},
"@storybook/core-events": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.6.tgz",
"integrity": "sha512-bzktgM1i0QPrayH1ANbKb7nYpehSpi5QHWps2vVQbvtpI/pGlTtpde1e87vfAt74Bvsvd3/9IpQkQKteDODAkA==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.8.tgz",
"integrity": "sha512-lzG4Lg65WFYvjs2k/E3CP4+eyPexEGrDyRMO9Pbj9H9x+eosYptauEbT/wXF83bmUWZKLWWVUAZX7hDcxBO8cw==",
"requires": {
"core-js": "^3.8.2"
}
@ -5253,21 +5253,21 @@
}
},
"@storybook/router": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.6.tgz",
"integrity": "sha512-SL9X/+bkJxafH5V9r65liMgs+EvGddMCQ/4JP/p3GIu6+2G3pW613Ww5sqCBCB1R4zoYcsMT7F1q/D5NWByVHg==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.8.tgz",
"integrity": "sha512-tseNJpZ2ZzVYowjekUMpGJVVRMrwOkttieD9mRbHrhh+2n7b+SoMKnuLi3ow0xeOyPL8ZDng2FgRjQzQHXA5Sw==",
"requires": {
"@storybook/client-logger": "6.5.6",
"@storybook/client-logger": "6.5.8",
"core-js": "^3.8.2",
"regenerator-runtime": "^0.13.7"
}
},
"@storybook/theming": {
"version": "6.5.6",
"resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.6.tgz",
"integrity": "sha512-JEKl9gdVD2Ef9xSwRtaq6EpjJD5xe7X2OP/4e61ucrp/rSOk7SOpYUZYQh6PhYLGhnGbgQkedVVc9CUhK8bs6Q==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.8.tgz",
"integrity": "sha512-1VaKHqj38Ls1bJwDpg3+aEOlvVib/DCFkP6WYrP/AQtNAzxiyw5WkaoRlTVJZvCdu5TxjpG4O6/Ai5TI9QftIg==",
"requires": {
"@storybook/client-logger": "6.5.6",
"@storybook/client-logger": "6.5.8",
"core-js": "^3.8.2",
"regenerator-runtime": "^0.13.7"
}
@ -5310,9 +5310,9 @@
"integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA=="
},
"qs": {
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
"integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
"version": "6.10.5",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.5.tgz",
"integrity": "sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==",
"requires": {
"side-channel": "^1.0.4"
}
@ -5515,144 +5515,35 @@
}
},
"@storybook/addons": {
"version": "6.4.19",
"resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.19.tgz",
"integrity": "sha512-QNyRYhpqmHV8oJxxTBdkRlLSbDFhpBvfvMfIrIT1UXb/eemdBZTaCGVvXZ9UixoEEI7f8VwAQ44IvkU5B1509w==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.8.tgz",
"integrity": "sha512-L3LmbsYP9tDHHvpr/yv8YuEkzym7SXp/jZ0km31tpG3EuZmgGu7MXPrZ2ymEw4PkAhQzztgRr23VTfKobGUojA==",
"requires": {
"@storybook/api": "6.4.19",
"@storybook/channels": "6.4.19",
"@storybook/client-logger": "6.4.19",
"@storybook/core-events": "6.4.19",
"@storybook/csf": "0.0.2--canary.87bc651.0",
"@storybook/router": "6.4.19",
"@storybook/theming": "6.4.19",
"@storybook/api": "6.5.8",
"@storybook/channels": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/router": "6.5.8",
"@storybook/theming": "6.5.8",
"@types/webpack-env": "^1.16.0",
"core-js": "^3.8.2",
"global": "^4.4.0",
"regenerator-runtime": "^0.13.7"
},
"dependencies": {
"@emotion/cache": {
"version": "10.0.29",
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz",
"integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==",
"requires": {
"@emotion/sheet": "0.9.4",
"@emotion/stylis": "0.8.5",
"@emotion/utils": "0.11.3",
"@emotion/weak-memoize": "0.2.5"
}
},
"@emotion/core": {
"version": "10.3.1",
"resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz",
"integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==",
"requires": {
"@babel/runtime": "^7.5.5",
"@emotion/cache": "^10.0.27",
"@emotion/css": "^10.0.27",
"@emotion/serialize": "^0.11.15",
"@emotion/sheet": "0.9.4",
"@emotion/utils": "0.11.3"
}
},
"@emotion/css": {
"version": "10.0.27",
"resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz",
"integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==",
"requires": {
"@emotion/serialize": "^0.11.15",
"@emotion/utils": "0.11.3",
"babel-plugin-emotion": "^10.0.27"
}
},
"@emotion/hash": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
"integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
},
"@emotion/is-prop-valid": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
"integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
"requires": {
"@emotion/memoize": "0.7.4"
}
},
"@emotion/memoize": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
"integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="
},
"@emotion/serialize": {
"version": "0.11.16",
"resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz",
"integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==",
"requires": {
"@emotion/hash": "0.8.0",
"@emotion/memoize": "0.7.4",
"@emotion/unitless": "0.7.5",
"@emotion/utils": "0.11.3",
"csstype": "^2.5.7"
}
},
"@emotion/sheet": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz",
"integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA=="
},
"@emotion/styled": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.3.0.tgz",
"integrity": "sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==",
"requires": {
"@emotion/styled-base": "^10.3.0",
"babel-plugin-emotion": "^10.0.27"
}
},
"@emotion/styled-base": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.3.0.tgz",
"integrity": "sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==",
"requires": {
"@babel/runtime": "^7.5.5",
"@emotion/is-prop-valid": "0.8.8",
"@emotion/serialize": "^0.11.15",
"@emotion/utils": "0.11.3"
}
},
"@emotion/stylis": {
"version": "0.8.5",
"resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
"integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
},
"@emotion/unitless": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
"integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
},
"@emotion/utils": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz",
"integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw=="
},
"@emotion/weak-memoize": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
"integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA=="
},
"@storybook/api": {
"version": "6.4.19",
"resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.19.tgz",
"integrity": "sha512-aDvea+NpQCBjpNp9YidO1Pr7fzzCp15FSdkG+2ihGQfv5raxrN+IIJnGUXecpe71nvlYiB+29UXBVK7AL0j51Q==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.8.tgz",
"integrity": "sha512-/MueV+wLCvy9gFA3ih4g7QYjDmn14i+D2ydonfaEC7R+agFGXxXwJGPKkz3yBNrRpNkBwcbY9mAmv8lE2AqgqQ==",
"requires": {
"@storybook/channels": "6.4.19",
"@storybook/client-logger": "6.4.19",
"@storybook/core-events": "6.4.19",
"@storybook/csf": "0.0.2--canary.87bc651.0",
"@storybook/router": "6.4.19",
"@storybook/channels": "6.5.8",
"@storybook/client-logger": "6.5.8",
"@storybook/core-events": "6.5.8",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/router": "6.5.8",
"@storybook/semver": "^7.3.2",
"@storybook/theming": "6.4.19",
"@storybook/theming": "6.5.8",
"core-js": "^3.8.2",
"fast-deep-equal": "^3.1.3",
"global": "^4.4.0",
@ -5660,15 +5551,15 @@
"memoizerific": "^1.11.3",
"regenerator-runtime": "^0.13.7",
"store2": "^2.12.0",
"telejson": "^5.3.2",
"telejson": "^6.0.8",
"ts-dedent": "^2.0.0",
"util-deprecate": "^1.0.2"
}
},
"@storybook/channels": {
"version": "6.4.19",
"resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.19.tgz",
"integrity": "sha512-EwyoncFvTfmIlfsy8jTfayCxo2XchPkZk/9txipugWSmc057HdklMKPLOHWP0z5hLH0IbVIKXzdNISABm36jwQ==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.8.tgz",
"integrity": "sha512-fNql1lEIvWlI1NiRtwFMWOOvfW6qxgeSP6xoqiAJ0b+QYegEFG9UxJDuEvVHq++S81FulgQ5U+p+5R9XSV19tQ==",
"requires": {
"core-js": "^3.8.2",
"ts-dedent": "^2.0.0",
@ -5676,92 +5567,48 @@
}
},
"@storybook/client-logger": {
"version": "6.4.19",
"resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.19.tgz",
"integrity": "sha512-zmg/2wyc9W3uZrvxaW4BfHcr40J0v7AGslqYXk9H+ERLVwIvrR4NhxQFaS6uITjBENyRDxwzfU3Va634WcmdDQ==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.8.tgz",
"integrity": "sha512-dH6HSaVuOIMHy1+rpsqcD3SJxVZEEbuEtsNpdUGwLJaIuduhUJJpM2xQfUW0siZDyrgwoa+znll+G0YNUbv7sg==",
"requires": {
"core-js": "^3.8.2",
"global": "^4.4.0"
}
},
"@storybook/core-events": {
"version": "6.4.19",
"resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.19.tgz",
"integrity": "sha512-KICzUw6XVQUJzFSCXfvhfHAuyhn4Q5J4IZEfuZkcGJS4ODkrO6tmpdYE5Cfr+so95Nfp0ErWiLUuodBsW9/rtA==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.8.tgz",
"integrity": "sha512-lzG4Lg65WFYvjs2k/E3CP4+eyPexEGrDyRMO9Pbj9H9x+eosYptauEbT/wXF83bmUWZKLWWVUAZX7hDcxBO8cw==",
"requires": {
"core-js": "^3.8.2"
}
},
"@storybook/csf": {
"version": "0.0.2--canary.87bc651.0",
"resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.2--canary.87bc651.0.tgz",
"integrity": "sha512-ajk1Uxa+rBpFQHKrCcTmJyQBXZ5slfwHVEaKlkuFaW77it8RgbPJp/ccna3sgoi8oZ7FkkOyvv1Ve4SmwFqRqw==",
"version": "0.0.2--canary.4566f4d.1",
"resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.2--canary.4566f4d.1.tgz",
"integrity": "sha512-9OVvMVh3t9znYZwb0Svf/YQoxX2gVOeQTGe2bses2yj+a3+OJnCrUF3/hGv6Em7KujtOdL2LL+JnG49oMVGFgQ==",
"requires": {
"lodash": "^4.17.15"
}
},
"@storybook/router": {
"version": "6.4.19",
"resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.19.tgz",
"integrity": "sha512-KWWwIzuyeEIWVezkCihwY2A76Il9tUNg0I410g9qT7NrEsKyqXGRYOijWub7c1GGyNjLqz0jtrrehtixMcJkuA==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.8.tgz",
"integrity": "sha512-tseNJpZ2ZzVYowjekUMpGJVVRMrwOkttieD9mRbHrhh+2n7b+SoMKnuLi3ow0xeOyPL8ZDng2FgRjQzQHXA5Sw==",
"requires": {
"@storybook/client-logger": "6.4.19",
"@storybook/client-logger": "6.5.8",
"core-js": "^3.8.2",
"fast-deep-equal": "^3.1.3",
"global": "^4.4.0",
"history": "5.0.0",
"lodash": "^4.17.21",
"memoizerific": "^1.11.3",
"qs": "^6.10.0",
"react-router": "^6.0.0",
"react-router-dom": "^6.0.0",
"ts-dedent": "^2.0.0"
"regenerator-runtime": "^0.13.7"
}
},
"@storybook/theming": {
"version": "6.4.19",
"resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.19.tgz",
"integrity": "sha512-V4pWmTvAxmbHR6B3jA4hPkaxZPyExHvCToy7b76DpUTpuHihijNDMAn85KhOQYIeL9q14zP/aiz899tOHsOidg==",
"version": "6.5.8",
"resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.8.tgz",
"integrity": "sha512-1VaKHqj38Ls1bJwDpg3+aEOlvVib/DCFkP6WYrP/AQtNAzxiyw5WkaoRlTVJZvCdu5TxjpG4O6/Ai5TI9QftIg==",
"requires": {
"@emotion/core": "^10.1.1",
"@emotion/is-prop-valid": "^0.8.6",
"@emotion/styled": "^10.0.27",
"@storybook/client-logger": "6.4.19",
"@storybook/client-logger": "6.5.8",
"core-js": "^3.8.2",
"deep-object-diff": "^1.1.0",
"emotion-theming": "^10.0.27",
"global": "^4.4.0",
"memoizerific": "^1.11.3",
"polished": "^4.0.5",
"resolve-from": "^5.0.0",
"ts-dedent": "^2.0.0"
}
},
"babel-plugin-emotion": {
"version": "10.2.2",
"resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz",
"integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==",
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@emotion/hash": "0.8.0",
"@emotion/memoize": "0.7.4",
"@emotion/serialize": "^0.11.16",
"babel-plugin-macros": "^2.0.0",
"babel-plugin-syntax-jsx": "^6.18.0",
"convert-source-map": "^1.5.0",
"escape-string-regexp": "^1.0.5",
"find-root": "^1.1.0",
"source-map": "^0.5.7"
}
},
"emotion-theming": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.3.0.tgz",
"integrity": "sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==",
"requires": {
"@babel/runtime": "^7.5.5",
"@emotion/weak-memoize": "0.2.5",
"hoist-non-react-statics": "^3.3.0"
"regenerator-runtime": "^0.13.7"
}
},
"fast-deep-equal": {
@ -5770,9 +5617,9 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"has-symbols": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"is-function": {
"version": "1.0.2",
@ -5801,51 +5648,20 @@
"resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
"integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA=="
},
"polished": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz",
"integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==",
"requires": {
"@babel/runtime": "^7.16.7"
},
"dependencies": {
"@babel/runtime": {
"version": "7.17.2",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz",
"integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
}
}
},
"qs": {
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
"integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
"requires": {
"side-channel": "^1.0.4"
}
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
},
"store2": {
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/store2/-/store2-2.13.1.tgz",
"integrity": "sha512-iJtHSGmNgAUx0b/MCS6ASGxb//hGrHHRgzvN+K5bvkBTN7A9RTpPSf1WSp+nPGvWCJ1jRnvY7MKnuqfoi3OEqg=="
"version": "2.13.2",
"resolved": "https://registry.npmjs.org/store2/-/store2-2.13.2.tgz",
"integrity": "sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg=="
},
"telejson": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/telejson/-/telejson-5.3.3.tgz",
"integrity": "sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA==",
"version": "6.0.8",
"resolved": "https://registry.npmjs.org/telejson/-/telejson-6.0.8.tgz",
"integrity": "sha512-nerNXi+j8NK1QEfBHtZUN/aLdDcyupA//9kAboYLrtzZlPLpUfqbVGWb9zz91f/mIjRbAYhbgtnJHY8I1b5MBg==",
"requires": {
"@types/is-function": "^1.0.0",
"global": "^4.4.0",
@ -13870,9 +13686,9 @@
"integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
},
"async": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
"integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
},
"async-each": {
"version": "1.0.3",
@ -16009,9 +15825,9 @@
}
},
"core-js": {
"version": "3.22.7",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.7.tgz",
"integrity": "sha512-Jt8SReuDKVNZnZEzyEQT5eK6T2RRCXkfTq7Lo09kpm+fHjgGewSbNjV+Wt4yZMhPDdzz2x1ulI5z/w4nxpBseg=="
"version": "3.22.8",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz",
"integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA=="
},
"core-js-compat": {
"version": "3.11.0",
@ -19556,29 +19372,6 @@
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
"integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
},
"history": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.0.0.tgz",
"integrity": "sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==",
"requires": {
"@babel/runtime": "^7.7.6"
},
"dependencies": {
"@babel/runtime": {
"version": "7.16.3",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz",
"integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
}
}
},
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@ -20718,7 +20511,7 @@
"is-window": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz",
"integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0="
"integrity": "sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg=="
},
"is-windows": {
"version": "1.0.2",
@ -22208,20 +22001,20 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
"nconf": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/nconf/-/nconf-0.11.3.tgz",
"integrity": "sha512-iYsAuDS9pzjVMGIzJrGE0Vk3Eh8r/suJanRAnWGBd29rVS2XtSgzcAo5l6asV3e4hH2idVONHirg1efoBOslBg==",
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.0.tgz",
"integrity": "sha512-T3fZPw3c7Dfrz8JBQEbEcZJ2s8f7cUMpKuyBtsGQe0b71pcXx6gNh4oti2xh5dxB+gO9ufNfISBlGvvWtfyMcA==",
"requires": {
"async": "^1.4.0",
"async": "^3.0.0",
"ini": "^2.0.0",
"secure-keys": "^1.0.0",
"yargs": "^16.1.1"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-styles": {
"version": "4.3.0",
@ -22270,21 +22063,21 @@
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"string-width": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
"integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.0"
"strip-ansi": "^6.0.1"
}
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.0"
"ansi-regex": "^5.0.1"
}
},
"wrap-ansi": {
@ -25017,69 +24810,6 @@
"react-popper": "^1.3.6"
}
},
"react-router": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.1.1.tgz",
"integrity": "sha512-55o96RiDZmC0uD17DPqVmzzfdNd2Dc+EjkYvMAmHl43du/GItaTdFr5WwjTryNWPXZ+OOVQxQhwAX25UwxpHtw==",
"requires": {
"history": "^5.1.0"
},
"dependencies": {
"@babel/runtime": {
"version": "7.16.3",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz",
"integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"history": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.1.0.tgz",
"integrity": "sha512-zPuQgPacm2vH2xdORvGGz1wQMuHSIB56yNAy5FnLuwOwgSYyPKptJtcMm6Ev+hRGeS+GzhbmRacHzvlESbFwDg==",
"requires": {
"@babel/runtime": "^7.7.6"
}
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
}
}
},
"react-router-dom": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.1.1.tgz",
"integrity": "sha512-O3UH89DI4o+swd2q6lF4dSmpuNCxwkUXcj0zAFcVc1H+YoPE6T7uwoFMX0ws1pUvCY8lYDucFpOqCCdal6VFzg==",
"requires": {
"history": "^5.1.0",
"react-router": "6.1.1"
},
"dependencies": {
"@babel/runtime": {
"version": "7.16.3",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz",
"integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"history": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.1.0.tgz",
"integrity": "sha512-zPuQgPacm2vH2xdORvGGz1wQMuHSIB56yNAy5FnLuwOwgSYyPKptJtcMm6Ev+hRGeS+GzhbmRacHzvlESbFwDg==",
"requires": {
"@babel/runtime": "^7.7.6"
}
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
}
}
},
"react-select": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/react-select/-/react-select-3.2.0.tgz",
@ -28440,7 +28170,7 @@
"uuid-browser": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/uuid-browser/-/uuid-browser-3.1.0.tgz",
"integrity": "sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA="
"integrity": "sha512-dsNgbLaTrd6l3MMxTtouOCFw4CBFc/3a+GgYA2YyrJvyQ1u6q4pcu3ktLoUZ/VN/Aw9WsauazbgsgdfVWgAKQg=="
},
"v8-compile-cache": {
"version": "2.1.0",
@ -28746,7 +28476,6 @@
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
@ -28757,7 +28486,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
@ -28766,7 +28494,6 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@ -28776,7 +28503,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
@ -28784,26 +28510,22 @@
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"optional": true
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"emojis-list": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"optional": true
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"optional": true
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"loader-utils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
"integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@ -28814,7 +28536,6 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}

View file

@ -13,11 +13,11 @@
"storybook:serve": "vue-cli-service storybook:serve -p 6006 -c config/storybook"
},
"dependencies": {
"@storybook/addon-actions": "6.5.6",
"@storybook/addon-actions": "6.5.8",
"@storybook/addon-knobs": "6.2.9",
"@storybook/addon-links": "6.5.6",
"@storybook/addon-links": "6.5.8",
"@storybook/addon-notes": "5.3.21",
"@storybook/addons": "6.4.19",
"@storybook/addons": "6.5.8",
"@storybook/vue": "6.3.13",
"@vue/cli-plugin-babel": "^4.5.15",
"@vue/cli-plugin-eslint": "^4.5.17",
@ -32,7 +32,7 @@
"bootstrap": "^4.6.0",
"bootstrap-vue": "^2.22.0",
"chai": "^4.3.6",
"core-js": "^3.22.7",
"core-js": "^3.22.8",
"dompurify": "^2.3.8",
"eslint": "^6.8.0",
"eslint-config-habitrpg": "^6.2.0",
@ -45,7 +45,7 @@
"jquery": "^3.6.0",
"lodash": "^4.17.21",
"moment": "^2.29.3",
"nconf": "^0.11.3",
"nconf": "^0.12.0",
"sass": "^1.34.0",
"sass-loader": "^8.0.2",
"smartbanner.js": "^1.19.0",

View file

@ -34,7 +34,7 @@
</li>
<li>
<a
href="http://blog.habitrpg.com/"
href="https://blog.habitrpg.com/"
target="_blank"
>{{ $t('tumblr') }}</a>
</li>

View file

@ -18,7 +18,7 @@
</a>
<a
href="https://geo.itunes.apple.com/us/app/habitica/id994882113?mt=8"
style="display:inline-block;overflow:hidden;background:url(http://linkmaker.itunes.apple.com/images/badges/en-us/badge_appstore-lrg.svg#svgView) no-repeat;background-size:100%;width:152px;height:45px;margin-left:20px;image-rendering:auto"
style="display:inline-block;overflow:hidden;background:url(https://linkmaker.itunes.apple.com/images/badges/en-us/badge_appstore-lrg.svg#svgView) no-repeat;background-size:100%;width:152px;height:45px;margin-left:20px;image-rendering:auto"
></a>
</div>
</div>

View file

@ -52,7 +52,7 @@
<li class="nav-item">
<a
class="nav-link"
href="http://blog.habitrpg.com/"
href="https://blog.habitrpg.com/"
target="_blank"
>{{ $t('tumblr') }}</a>
</li>

View file

@ -6,7 +6,7 @@
<noscript class="banner">
{{ $t('jsDisabledHeadingFull') }}
<br />
<a href="http://www.enable-javascript.com/" target="_blank">{{ $t('jsDisabledLink') }}</a>
<a href="https://www.enable-javascript.com/" target="_blank">{{ $t('jsDisabledLink') }}</a>
</noscript>
<div
id="intro-signup"

View file

@ -137,15 +137,15 @@
browser which allows you to refuse cookies. Further information about the procedure to follow in order to
disable cookies can be found on your Internet browser providers website via your help screen. You may
wish to refer to <a
href="http://www.allaboutcookies.org/manage-cookies/index.html"
href="https://www.allaboutcookies.org/manage-cookies/index.html"
target="_blank"
>
http://www.allaboutcookies.org/manage-cookies/index.html</a> for information on commonly used browsers.
https://www.allaboutcookies.org/manage-cookies/index.html</a> for information on commonly used browsers.
For more information about targeting and advertising cookies and how you can opt out, you can also visit
<a
href="http://optout.aboutads.info"
href="https://optout.aboutads.info"
target="_blank"
>http://optout.aboutads.info</a>. Please be aware
>https://optout.aboutads.info</a>. Please be aware
that if cookies are disabled, not all features of the Service may operate properly or as intended.
</p>
<h3>Third-Party Analytics Providers</h3>

View file

@ -70,9 +70,9 @@
<p>WITHIN THIRTY (30) DAYS OF YOUR PREMIUM PAYMENT DATE AS SHOWN ON YOUR PAYMENT BILL, YOU CAN REQUEST A FULL REFUND BY CONTACTING US AT ADMIN@HABITICA.COM. AFTER THIRTY (30) DAYS OF YOUR PREMIUM PAYMENT DATE, ANY PAYMENT REFUND IS SOLELY SUBJECT TO OUR DISCRETION. THE REFUND SHALL BE YOUR SOLE AND EXCLUSIVE REMEDY.</p>
<p>
FOR ANY CUSTOMER WHO PURCHASED PREMIUM IN APPLE INC.'s APP STORE ("APP STORE"), PLEASE CONTACT APPLE INC.'s SUPPORT TEAM: <a
href="http://reportaproblem.apple.com"
href="https://reportaproblem.apple.com"
target="_blank"
>http://reportaproblem.apple.com</a>. APPLE'S APP STORE DOES NOT ALLOW DEVELOPERS TO ISSUE REFUND FOR APP STORE PURCHASES MADE BY CUSTOMERS.
>https://reportaproblem.apple.com</a>. APPLE'S APP STORE DOES NOT ALLOW DEVELOPERS TO ISSUE REFUND FOR APP STORE PURCHASES MADE BY CUSTOMERS.
</p>
<h2>Warranty Disclaimer</h2>
<p>THE SERVICE AND ANY CONTENT MADE AVAILABLE BY HABITRPG VIA THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT ANY WARRANTIES OF ANY KIND, INCLUDING, WITHOUT LIMITATION, THAT THE SERVICE OR CONTENT WILL OPERATE ERROR-FREE OR THAT THE SERVICE OR CONTENT OR ITS SERVERS ARE FREE OF COMPUTER VIRUSES OR SIMILAR CONTAMINATION OR DESTRUCTIVE FEATURES.</p>

View file

@ -1,4 +1,4 @@
HabitRPG's translations are managed at http://translate.habitica.com/
HabitRPG's translations are managed at https://translate.habitica.com/
The files in this folder are automatically pulled from there, with
exception of the original American-English strings which are managed
@ -10,5 +10,5 @@ request that your changes be translated; changes are automatically
copied to the translation website on a regular basis.
If you want to help with translations, please first read [Guidance for
Linguists](http://habitica.fandom.com/wiki/Guidance_for_Linguists) and
Linguists](https://habitica.fandom.com/wiki/Guidance_for_Linguists) and
note especially its information about the [Translations Trello card](https://trello.com/c/SvTsLdRF/12-translations).

View file

@ -702,7 +702,7 @@
"cuddleBuddiesNotes": "Contains 'The Killer Bunny', 'The Nefarious Ferret', and 'The Guinea Pig Gang'. Available until March 31.",
"aquaticAmigosText": "Aquatic Amigos Quest Bundle",
"aquaticAmigosNotes": "Contains 'The Magical Axolotl', 'The Kraken of Inkomplete', and 'The Call of Octothulu'. Available until August 31.",
"aquaticAmigosNotes": "Contains 'The Magical Axolotl', 'The Kraken of Inkomplete', and 'The Call of Octothulu'. Available until June 30.",
"questSeaSerpentText": "Danger in the Depths: Sea Serpent Strike!",
"questSeaSerpentNotes": "Your streaks have you feeling lucky—its the perfect time for a trip to the seahorse racetrack. You board the submarine at Diligent Docks and settle in for the trip to Dilatory, but youve barely submerged when an impact rocks the sub, sending its occupants tumbling. “Whats going on?” @AriesFaries shouts.<br><br>You glance through a nearby porthole and are shocked by the wall of shimmering scales passing by it. “Sea serpent!” Captain @Witticaster calls through the intercom. “Brace yourselves, its coming round again!” As you grip the arms of your seat, your unfinished tasks flash before your eyes. Maybe if we work together and complete them, you think, we can drive this monster away!",

View file

@ -28,7 +28,6 @@
"deleteAccount": "Delete Account",
"deleteAccPop": "Cancel and remove your Habitica account.",
"feedback": "If you'd like to give us feedback, please enter it below - we'd love to know what you liked or didn't like about Habitica! Don't speak English well? No problem! Use the language you prefer.",
"qrCode": "QR Code",
"dataExport": "Data Export",
"saveData": "Here are a few options for saving your data.",
"habitHistory": "Habit History",

View file

@ -128,8 +128,9 @@ const bundles = {
'kraken',
'octopus',
],
event: EVENTS.bundle202206,
canBuy () {
return moment().isBetween('2020-07-14', '2020-08-02');
return moment().isBefore(EVENTS.bundle202206.end);
},
type: 'quests',
value: 7,

View file

@ -15,6 +15,10 @@ export const EVENTS = {
season: 'normal',
npcImageSuffix: '',
},
bundle202206: {
start:'2022-06-14T08:00-04:00',
end:'2022-06-30T20:00-04:00',
},
potions202205: {
start: '2022-05-17T08:00-04:00',
end: '2022-05-31T20:00-04:00',

View file

@ -1,5 +1,5 @@
import moment from 'moment';
// import { EVENTS } from './constants';
import { EVENTS } from './constants';
// Magic Hatching Potions are configured like this:
// type: 'premiumHatchingPotion', // note no "s" at the end
// path: 'premiumHatchingPotions.Rainbow',
@ -45,34 +45,34 @@ const featuredItems = {
];
},
quests () {
if (moment().isBefore('2022-05-31T20:00-04:00')) {
if (moment().isBefore(EVENTS.bundle202206.end)) {
return [
{
type: 'bundles',
path: 'bundles.delightfulDinos',
path: 'bundles.aquaticAmigos',
},
{
type: 'quests',
path: 'quests.alligator',
path: 'quests.seaserpent',
},
{
type: 'quests',
path: 'quests.turtle',
path: 'quests.dolphin',
},
];
}
return [
{
type: 'quests',
path: 'quests.ferret',
path: 'quests.badger',
},
{
type: 'quests',
path: 'quests.silver',
path: 'quests.onyx',
},
{
type: 'quests',
path: 'quests.basilist',
path: 'quests.rooster',
},
];
},

View file

@ -11,7 +11,7 @@ function equipmentStatBonusComputed (stat, user) {
// toObject is required here due to lodash values not working well with mongoose doc objects.
// if toObject doesn't exist, we can assume the object is already plain JSON
// see http://stackoverflow.com/questions/25767334/underscore-js-keys-and-omit-not-working-as-expected
// see https://stackoverflow.com/questions/25767334/underscore-js-keys-and-omit-not-working-as-expected
const { equipped } = user.items.gear;
const equippedKeys = values(!equipped.toObject ? equipped : equipped.toObject());

View file

@ -1318,8 +1318,8 @@ api.userSell = {
* @apiParam (Query) {String} path Full path to unlock. See "content" API call for list of items.
*
* @apiParamExample {curl} Example call:
* curl -X POST http://habitica.com/api/v3/user/unlock?path=background.midnight_clouds
* curl -X POST http://habitica.com/api/v3/user/unlock?path=hair.color.midnight
* curl -X POST https://habitica.com/api/v3/user/unlock?path=background.midnight_clouds
* curl -X POST https://habitica.com/api/v3/user/unlock?path=hair.color.midnight
*
* @apiSuccess {Object} data.purchased
* @apiSuccess {Object} data.items

View file

@ -43,7 +43,7 @@ const api = {};
* @apiParamExample {json} Task Activity Example
* {
* "enabled": true, // default
* "url": "http://some-webhook-url.com",
* "url": "https://some-webhook-url.com",
* "label": "My Webhook",
* "type": "taskActivity", // default
* "options": {
@ -56,7 +56,7 @@ const api = {};
* @apiParamExample {json} Group Chat Received Example
* {
* "enabled": true,
* "url": "http://some-webhook-url.com",
* "url": "https://some-webhook-url.com",
* "label": "My Chat Webhook",
* "type": "groupChatReceived",
* "options": {
@ -66,7 +66,7 @@ const api = {};
* @apiParamExample {json} User Activity Example
* {
* "enabled": true,
* "url": "http://some-webhook-url.com",
* "url": "https://some-webhook-url.com",
* "label": "My Activity Webhook",
* "type": "userActivity",
* "options": { // set at least one to true
@ -78,7 +78,7 @@ const api = {};
* @apiParamExample {json} Quest Activity Example
* {
* "enabled": true,
* "url": "http://some-webhook-url.com",
* "url": "https://some-webhook-url.com",
* "label": "My Quest Webhook",
* "type": "questActivity",
* "options": { // set at least one to true
@ -89,7 +89,7 @@ const api = {};
* }
* @apiParamExample {json} Minimal Example
* {
* "url": "http://some-webhook-url.com"
* "url": "https://some-webhook-url.com"
* }
*
* @apiSuccess (201) {Object} data The created webhook

View file

@ -160,6 +160,7 @@ api.exportUserDataXml = {
/**
* @api {get} /export/avatar-:uuid.html Render a user avatar as an HTML page
* @apiName ExportUserAvatarHtml
* @apiDescription This HTML export feature is not currently working (https://github.com/HabitRPG/habitica/issues/9489).
* @apiGroup DataExport
*
* @apiParam (Path) {String} uuid The User ID of the user

View file

@ -1,17 +0,0 @@
const api = {};
api.redirectProfileQRCode = {
method: 'GET',
url: '/qr-code/user/:memberid',
runCron: false,
async handler (req, res) {
req.checkParams('memberid', res.t('memberIdRequired')).notEmpty().isUUID();
const validationErrors = req.validationErrors();
if (validationErrors) throw validationErrors;
res.redirect(301, `/static/front/#?memberId=${req.params.memberid}`);
},
};
export default api;

View file

@ -244,11 +244,15 @@ api.cancelSubscribe = async function cancelSubscribe (user, headers) {
const purchases = iap.getPurchaseData(googleRes);
if (purchases.length === 0) throw new NotAuthorized(this.constants.RESPONSE_INVALID_RECEIPT);
const subscriptionData = purchases[0];
// Check to make sure the sub isn't active anymore.
if (subscriptionData.autoRenewing !== false) return;
dateTerminated = new Date(Number(subscriptionData.expirationDate));
for (const i in purchases) {
if (Object.prototype.hasOwnProperty.call(purchases, i)) {
const purchase = purchases[i];
if (purchase.autoRenewing !== false) return;
if (!dateTerminated || Number(purchase.expirationDate) > Number(dateTerminated)) {
dateTerminated = new Date(Number(purchase.expirationDate));
}
}
}
} catch (err) {
// Status:410 means that the subsctiption isn't active anymore and we can safely delete it
if (err && err.message === 'Status:410') {
@ -257,13 +261,14 @@ api.cancelSubscribe = async function cancelSubscribe (user, headers) {
throw err;
}
}
await payments.cancelSubscription({
user,
nextBill: dateTerminated,
paymentMethod: this.constants.PAYMENT_METHOD_GOOGLE,
headers,
});
if (dateTerminated) {
await payments.cancelSubscription({
user,
nextBill: dateTerminated,
paymentMethod: this.constants.PAYMENT_METHOD_GOOGLE,
headers,
});
}
};
export default api;

View file

@ -58,7 +58,7 @@ const updatablePaths = [
];
// This tells us for which paths users can call `PUT /user`.
// The trick here is to only accept leaf paths, not root/intermediate paths (see http://goo.gl/OEzkAs)
// The trick here is to only accept leaf paths, not root/intermediate paths (see https://goo.gl/OEzkAs)
const acceptablePUTPaths = _.reduce(UserSchema.paths, (accumulator, val, leaf) => {
const found = _.find(updatablePaths, rootPath => leaf.indexOf(rootPath) === 0);

View file

@ -13,7 +13,6 @@ const TOP_LEVEL_ROUTES = [
'/stripe',
'/export',
'/email',
'/qr-code',
// logout, old-client
// and /static/user/auth/local/reset-password-set-new-one don't need the not found
// handler because they don't have any child route

View file

@ -246,7 +246,7 @@ schema.pre('save', true, function preSaveUser (next, done) {
// use the default values defined in the user schema and not the real ones.
//
// To check if a field was selected Document.isDirectSelected('field') can be used.
// more info on its usage can be found at http://mongoosejs.com/docs/api.html#document_Document-isDirectSelected
// more info on its usage can be found at https://mongoosejs.com/docs/api.html#document_Document-isDirectSelected
// do not calculate achievements if items or achievements are not selected
if (this.isDirectSelected('items') && this.isDirectSelected('achievements')) {

View file

@ -68,7 +68,7 @@ export default new Schema({
},
// We want to know *every* time an object updates.
// Mongoose uses __v to designate when an object contains arrays which
// have been updated (http://goo.gl/gQLz41), but we want *every* update
// have been updated, but we want *every* update
_v: { $type: Number, default: 0 },
migration: String,
achievements: {
@ -441,7 +441,7 @@ export default new Schema({
// Using an array without validation because otherwise mongoose
// treat this as a subdocument and applies _id by default
// Schema is (id, name, inviter, publicGuild)
// TODO one way to fix is http://mongoosejs.com/docs/guide.html#_id
// TODO one way to fix is https://mongoosejs.com/docs/guide.html#_id
guilds: { $type: Array, default: () => [] },
// Using a Mixed type because otherwise user.invitations.party = {}
// to reset invitation, causes validation to fail TODO