diff --git a/database_reports/count_users_who_own_specified_gear.js b/database_reports/count_users_who_own_specified_gear.js index 4931f64eee..c22cb4dcaa 100644 --- a/database_reports/count_users_who_own_specified_gear.js +++ b/database_reports/count_users_who_own_specified_gear.js @@ -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++){ diff --git a/migrations/archive/2013/20131028_task_subdocs_tags_invites.js b/migrations/archive/2013/20131028_task_subdocs_tags_invites.js index 7e4c38b286..4069d381ed 100644 --- a/migrations/archive/2013/20131028_task_subdocs_tags_invites.js +++ b/migrations/archive/2013/20131028_task_subdocs_tags_invites.js @@ -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. diff --git a/migrations/archive/2017/20170111_announce_collection_quest_change_in_parties.js b/migrations/archive/2017/20170111_announce_collection_quest_change_in_parties.js index 07abd4fa8a..6bd4ccd45e 100644 --- a/migrations/archive/2017/20170111_announce_collection_quest_change_in_parties.js +++ b/migrations/archive/2017/20170111_announce_collection_quest_change_in_parties.js @@ -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(); diff --git a/migrations/archive/s3-upload.js b/migrations/archive/s3-upload.js index 32ae1d71cb..1a11fbe6b9 100644 --- a/migrations/archive/s3-upload.js +++ b/migrations/archive/s3-upload.js @@ -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({ diff --git a/migrations/command-line/cancelSubscription.js b/migrations/command-line/cancelSubscription.js index a59a0a4c7f..ee51f908ac 100644 --- a/migrations/command-line/cancelSubscription.js +++ b/migrations/command-line/cancelSubscription.js @@ -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: '' }, diff --git a/package-lock.json b/package-lock.json index 9f1f06e5bf..abd0631b0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index d226279891..0a5ac00ccf 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/test/api/unit/libs/payments/google.test.js b/test/api/unit/libs/payments/google.test.js index 3cf40b0a4e..7df7f273ef 100644 --- a/test/api/unit/libs/payments/google.test.js +++ b/test/api/unit/libs/payments/google.test.js @@ -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; + }); }); }); diff --git a/test/api/v3/integration/qrcodes/GET-qrcodes_user.test.js b/test/api/v3/integration/qrcodes/GET-qrcodes_user.test.js deleted file mode 100644 index 796494cecd..0000000000 --- a/test/api/v3/integration/qrcodes/GET-qrcodes_user.test.js +++ /dev/null @@ -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}`); - }); -}); diff --git a/test/helpers/api-integration/external-server.js b/test/helpers/api-integration/external-server.js index 0c52eedd4f..5b199d058d 100644 --- a/test/helpers/api-integration/external-server.js +++ b/test/helpers/api-integration/external-server.js @@ -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(); diff --git a/test/helpers/api-integration/requester.js b/test/helpers/api-integration/requester.js index f5c63b9d14..ad01f35978 100644 --- a/test/helpers/api-integration/requester.js +++ b/test/helpers/api-integration/requester.js @@ -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}`; diff --git a/website/client/package-lock.json b/website/client/package-lock.json index 78e44d9bc2..c45bb0b268 100644 --- a/website/client/package-lock.json +++ b/website/client/package-lock.json @@ -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" } diff --git a/website/client/package.json b/website/client/package.json index a116711b39..71b5dcb2ba 100644 --- a/website/client/package.json +++ b/website/client/package.json @@ -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", diff --git a/website/client/src/components/appFooter.vue b/website/client/src/components/appFooter.vue index 8ca55b4063..c3e0b81ac0 100644 --- a/website/client/src/components/appFooter.vue +++ b/website/client/src/components/appFooter.vue @@ -34,7 +34,7 @@
  • {{ $t('tumblr') }}
  • diff --git a/website/client/src/components/static/app.vue b/website/client/src/components/static/app.vue index 5997b32717..46bbd4d315 100644 --- a/website/client/src/components/static/app.vue +++ b/website/client/src/components/static/app.vue @@ -18,7 +18,7 @@ diff --git a/website/client/src/components/static/header.vue b/website/client/src/components/static/header.vue index 0994f2228a..c1324807b0 100644 --- a/website/client/src/components/static/header.vue +++ b/website/client/src/components/static/header.vue @@ -52,7 +52,7 @@ diff --git a/website/client/src/components/static/home.vue b/website/client/src/components/static/home.vue index 576b185cc8..d9c7782d3a 100644 --- a/website/client/src/components/static/home.vue +++ b/website/client/src/components/static/home.vue @@ -6,7 +6,7 @@
    - http://www.allaboutcookies.org/manage-cookies/index.html for information on commonly used browsers. + https://www.allaboutcookies.org/manage-cookies/index.html for information on commonly used browsers. For more information about targeting and advertising cookies and how you can opt out, you can also visit http://optout.aboutads.info. Please be aware + >https://optout.aboutads.info. Please be aware that if cookies are disabled, not all features of the Service may operate properly or as intended.

    Third-Party Analytics Providers

    diff --git a/website/client/src/components/static/terms.vue b/website/client/src/components/static/terms.vue index c37b48b83e..e3b99aa39d 100644 --- a/website/client/src/components/static/terms.vue +++ b/website/client/src/components/static/terms.vue @@ -70,9 +70,9 @@

    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.

    FOR ANY CUSTOMER WHO PURCHASED PREMIUM IN APPLE INC.'s APP STORE ("APP STORE"), PLEASE CONTACT APPLE INC.'s SUPPORT TEAM: http://reportaproblem.apple.com. APPLE'S APP STORE DOES NOT ALLOW DEVELOPERS TO ISSUE REFUND FOR APP STORE PURCHASES MADE BY CUSTOMERS. + >https://reportaproblem.apple.com. APPLE'S APP STORE DOES NOT ALLOW DEVELOPERS TO ISSUE REFUND FOR APP STORE PURCHASES MADE BY CUSTOMERS.

    Warranty Disclaimer

    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.

    diff --git a/website/common/locales/README.md b/website/common/locales/README.md index 3f25e8a20a..c0e03a1e66 100644 --- a/website/common/locales/README.md +++ b/website/common/locales/README.md @@ -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). diff --git a/website/common/locales/en/questsContent.json b/website/common/locales/en/questsContent.json index d0fce2dd93..3d1c84b6e2 100644 --- a/website/common/locales/en/questsContent.json +++ b/website/common/locales/en/questsContent.json @@ -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—it’s 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 you’ve barely submerged when an impact rocks the sub, sending its occupants tumbling. “What’s going on?” @AriesFaries shouts.

    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, it’s 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!’", diff --git a/website/common/locales/en/settings.json b/website/common/locales/en/settings.json index f1147f768d..c883eaa79f 100644 --- a/website/common/locales/en/settings.json +++ b/website/common/locales/en/settings.json @@ -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", diff --git a/website/common/script/content/bundles.js b/website/common/script/content/bundles.js index 5179cb1cd5..bda8e75941 100644 --- a/website/common/script/content/bundles.js +++ b/website/common/script/content/bundles.js @@ -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, diff --git a/website/common/script/content/constants/events.js b/website/common/script/content/constants/events.js index 9ed33d8edb..ed7145637c 100644 --- a/website/common/script/content/constants/events.js +++ b/website/common/script/content/constants/events.js @@ -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', diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index 8d6bb0ec14..7950bbc467 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -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', }, ]; }, diff --git a/website/common/script/libs/statsComputed.js b/website/common/script/libs/statsComputed.js index 150200f4da..5345f43c16 100644 --- a/website/common/script/libs/statsComputed.js +++ b/website/common/script/libs/statsComputed.js @@ -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()); diff --git a/website/server/controllers/api-v3/user.js b/website/server/controllers/api-v3/user.js index 0aeb1bf4dc..bfd0f68c52 100644 --- a/website/server/controllers/api-v3/user.js +++ b/website/server/controllers/api-v3/user.js @@ -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 diff --git a/website/server/controllers/api-v3/webhook.js b/website/server/controllers/api-v3/webhook.js index 00b5bf54cb..c8f08d3059 100644 --- a/website/server/controllers/api-v3/webhook.js +++ b/website/server/controllers/api-v3/webhook.js @@ -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 diff --git a/website/server/controllers/top-level/dataexport.js b/website/server/controllers/top-level/dataexport.js index fd9a10c8bf..aaae4f411d 100644 --- a/website/server/controllers/top-level/dataexport.js +++ b/website/server/controllers/top-level/dataexport.js @@ -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 diff --git a/website/server/controllers/top-level/qrcodes.js b/website/server/controllers/top-level/qrcodes.js deleted file mode 100644 index 588b5c69bd..0000000000 --- a/website/server/controllers/top-level/qrcodes.js +++ /dev/null @@ -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; diff --git a/website/server/libs/payments/google.js b/website/server/libs/payments/google.js index 86f0967213..9beac9b2a4 100644 --- a/website/server/libs/payments/google.js +++ b/website/server/libs/payments/google.js @@ -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; diff --git a/website/server/libs/user/index.js b/website/server/libs/user/index.js index 6ff39ef1b9..f2aa73df69 100644 --- a/website/server/libs/user/index.js +++ b/website/server/libs/user/index.js @@ -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); diff --git a/website/server/middlewares/notFound.js b/website/server/middlewares/notFound.js index feb73d8a7f..77f858e353 100644 --- a/website/server/middlewares/notFound.js +++ b/website/server/middlewares/notFound.js @@ -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 diff --git a/website/server/models/user/hooks.js b/website/server/models/user/hooks.js index 93a4df68b9..58340c73cd 100644 --- a/website/server/models/user/hooks.js +++ b/website/server/models/user/hooks.js @@ -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')) { diff --git a/website/server/models/user/schema.js b/website/server/models/user/schema.js index 9e9fd4fd5d..868c158a6c 100644 --- a/website/server/models/user/schema.js +++ b/website/server/models/user/schema.js @@ -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