Merge branch 'develop' into sabrecat/teams-rebase

This commit is contained in:
SabreCat
2022-08-09 11:55:46 -05:00
14 changed files with 235 additions and 103 deletions

69
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "habitica", "name": "habitica",
"version": "4.238.0", "version": "4.239.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@@ -1367,9 +1367,9 @@
} }
}, },
"@babel/register": { "@babel/register": {
"version": "7.18.6", "version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz",
"integrity": "sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==", "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==",
"requires": { "requires": {
"clone-deep": "^4.0.1", "clone-deep": "^4.0.1",
"find-cache-dir": "^2.0.0", "find-cache-dir": "^2.0.0",
@@ -4333,7 +4333,7 @@
"co": { "co": {
"version": "4.6.0", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"dev": true "dev": true
}, },
"coa": { "coa": {
@@ -7523,7 +7523,7 @@
"github-from-package": { "github-from-package": {
"version": "0.0.0", "version": "0.0.0",
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
"dev": true "dev": true
}, },
"glob": { "glob": {
@@ -10693,6 +10693,29 @@
"rimraf": "^2.6.2" "rimraf": "^2.6.2"
}, },
"dependencies": { "dependencies": {
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"rimraf": { "rimraf": {
"version": "2.7.1", "version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -10700,22 +10723,6 @@
"dev": true, "dev": true,
"requires": { "requires": {
"glob": "^7.1.3" "glob": "^7.1.3"
},
"dependencies": {
"glob": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
}
} }
} }
} }
@@ -11262,7 +11269,7 @@
"noop-logger": { "noop-logger": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==",
"dev": true "dev": true
}, },
"nopt": { "nopt": {
@@ -12783,7 +12790,7 @@
"resolve-from": { "resolve-from": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "integrity": "sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==",
"dev": true "dev": true
} }
} }
@@ -12913,15 +12920,15 @@
"integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q=="
}, },
"run-rs": { "run-rs": {
"version": "0.7.6", "version": "0.7.7",
"resolved": "https://registry.npmjs.org/run-rs/-/run-rs-0.7.6.tgz", "resolved": "https://registry.npmjs.org/run-rs/-/run-rs-0.7.7.tgz",
"integrity": "sha512-k//mO+AI4EVrDoVWDZiYBAu298mJosGUoi0gXII4yHsDWmdAF6fT1m/XDwV8DIA2LebSmgYZauW2DWx43W/trQ==", "integrity": "sha512-63cLkmCl5JDz642EvtcDvIMG4VEJ7bOI8iJ3ovnydZYPkp8VD02Khr7wcbSs2CoOA9iXdNF27XMZdw+mVLlV2A==",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "2.4.1", "chalk": "2.4.1",
"co": "4.6.0", "co": "4.6.0",
"commander": "2.15.1", "commander": "2.15.1",
"moment": "2.22.2", "moment": "^2.29.2",
"mongodb": "3.6.x", "mongodb": "3.6.x",
"mongodb-topology-manager": "2.1.0", "mongodb-topology-manager": "2.1.0",
"prettyjson": "1.2.2" "prettyjson": "1.2.2"
@@ -12943,12 +12950,6 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
"dev": true "dev": true
},
"moment": {
"version": "2.22.2",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
"integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=",
"dev": true
} }
} }
}, },

View File

@@ -1,12 +1,12 @@
{ {
"name": "habitica", "name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.", "description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.238.0", "version": "4.239.0",
"main": "./website/server/index.js", "main": "./website/server/index.js",
"dependencies": { "dependencies": {
"@babel/core": "^7.18.6", "@babel/core": "^7.18.6",
"@babel/preset-env": "^7.18.6", "@babel/preset-env": "^7.18.6",
"@babel/register": "^7.18.6", "@babel/register": "^7.18.9",
"@google-cloud/trace-agent": "^5.1.6", "@google-cloud/trace-agent": "^5.1.6",
"@parse/node-apn": "^5.1.3", "@parse/node-apn": "^5.1.3",
"@slack/webhook": "^6.1.0", "@slack/webhook": "^6.1.0",
@@ -121,7 +121,7 @@
"mocha": "^5.1.1", "mocha": "^5.1.1",
"monk": "^7.3.4", "monk": "^7.3.4",
"require-again": "^2.0.0", "require-again": "^2.0.0",
"run-rs": "^0.7.6", "run-rs": "^0.7.7",
"sinon": "^13.0.2", "sinon": "^13.0.2",
"sinon-chai": "^3.7.0", "sinon-chai": "^3.7.0",
"sinon-stub-promise": "^4.0.0" "sinon-stub-promise": "^4.0.0"

View File

@@ -1799,26 +1799,26 @@
} }
}, },
"@babel/plugin-proposal-optional-chaining": { "@babel/plugin-proposal-optional-chaining": {
"version": "7.18.6", "version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
"integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
"requires": { "requires": {
"@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
"@babel/plugin-syntax-optional-chaining": "^7.8.3" "@babel/plugin-syntax-optional-chaining": "^7.8.3"
}, },
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": { "@babel/helper-plugin-utils": {
"version": "7.18.6", "version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
"integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w=="
}, },
"@babel/helper-skip-transparent-expression-wrappers": { "@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.18.6", "version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
"integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
"requires": { "requires": {
"@babel/types": "^7.18.6" "@babel/types": "^7.18.9"
} }
}, },
"@babel/helper-validator-identifier": { "@babel/helper-validator-identifier": {
@@ -1827,9 +1827,9 @@
"integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g=="
}, },
"@babel/types": { "@babel/types": {
"version": "7.18.7", "version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
"integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6",
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
@@ -4382,6 +4382,49 @@
"postcss": "^7.0.0" "postcss": "^7.0.0"
} }
}, },
"@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"requires": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
},
"@jridgewell/set-array": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
},
"@jridgewell/source-map": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.14",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
"integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@mdx-js/mdx": { "@mdx-js/mdx": {
"version": "1.6.22", "version": "1.6.22",
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
@@ -6446,6 +6489,11 @@
"@types/react": "*" "@types/react": "*"
} }
}, },
"acorn": {
"version": "8.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
"integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A=="
},
"ajv": { "ajv": {
"version": "6.12.6", "version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -7148,20 +7196,14 @@
} }
}, },
"terser": { "terser": {
"version": "5.10.0", "version": "5.14.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
"integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
"requires": { "requires": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map": "~0.7.2",
"source-map-support": "~0.5.20" "source-map-support": "~0.5.20"
},
"dependencies": {
"source-map": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
}
} }
}, },
"terser-webpack-plugin": { "terser-webpack-plugin": {
@@ -9405,6 +9447,11 @@
"@types/react": "*" "@types/react": "*"
} }
}, },
"acorn": {
"version": "8.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
"integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A=="
},
"ajv": { "ajv": {
"version": "6.12.6", "version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -9947,20 +9994,14 @@
} }
}, },
"terser": { "terser": {
"version": "5.10.0", "version": "5.14.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
"integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
"requires": { "requires": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map": "~0.7.2",
"source-map-support": "~0.5.20" "source-map-support": "~0.5.20"
},
"dependencies": {
"source-map": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
}
} }
}, },
"terser-webpack-plugin": { "terser-webpack-plugin": {
@@ -16293,7 +16334,7 @@
"de-indent": { "de-indent": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
"integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg=="
}, },
"debug": { "debug": {
"version": "4.1.1", "version": "4.1.1",
@@ -16771,9 +16812,9 @@
} }
}, },
"dompurify": { "dompurify": {
"version": "2.3.8", "version": "2.3.10",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.8.tgz", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.10.tgz",
"integrity": "sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw==" "integrity": "sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g=="
}, },
"domutils": { "domutils": {
"version": "1.7.0", "version": "1.7.0",
@@ -27297,9 +27338,9 @@
"integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
}, },
"terser": { "terser": {
"version": "4.6.7", "version": "4.8.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
"integrity": "sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g==", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
"requires": { "requires": {
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map": "~0.6.1", "source-map": "~0.6.1",
@@ -28265,9 +28306,60 @@
"integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=" "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk="
}, },
"vue": { "vue": {
"version": "2.6.14", "version": "2.7.8",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.8.tgz",
"integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" "integrity": "sha512-ncwlZx5qOcn754bCu5/tS/IWPhXHopfit79cx+uIlLMyt3vCMGcXai5yCG5y+I6cDmEj4ukRYyZail9FTQh7lQ==",
"requires": {
"@vue/compiler-sfc": "2.7.8",
"csstype": "^3.1.0"
},
"dependencies": {
"@babel/parser": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg=="
},
"@vue/compiler-sfc": {
"version": "2.7.8",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.8.tgz",
"integrity": "sha512-2DK4YWKfgLnW9VDR9gnju1gcYRk3flKj8UNsms7fsRmFcg35slVTZEkqwBtX+wJBXaamFfn6NxSsZh3h12Ix/Q==",
"requires": {
"@babel/parser": "^7.18.4",
"postcss": "^8.4.14",
"source-map": "^0.6.1"
}
},
"csstype": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
},
"nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
},
"postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"requires": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
}
}
}, },
"vue-cli-plugin-storybook": { "vue-cli-plugin-storybook": {
"version": "2.1.0", "version": "2.1.0",
@@ -28584,12 +28676,12 @@
} }
}, },
"vue-template-compiler": { "vue-template-compiler": {
"version": "2.6.14", "version": "2.7.8",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.8.tgz",
"integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", "integrity": "sha512-eQqdcUpJKJpBRPDdxCNsqUoT0edNvdt1jFjtVnVS/LPPmr0BU2jWzXlrf6BVMeODtdLewB3j8j3WjNiB+V+giw==",
"requires": { "requires": {
"de-indent": "^1.0.2", "de-indent": "^1.0.2",
"he": "^1.1.0" "he": "^1.2.0"
} }
}, },
"vue-template-es2015-compiler": { "vue-template-es2015-compiler": {

View File

@@ -33,7 +33,7 @@
"bootstrap-vue": "^2.22.0", "bootstrap-vue": "^2.22.0",
"chai": "^4.3.6", "chai": "^4.3.6",
"core-js": "^3.23.5", "core-js": "^3.23.5",
"dompurify": "^2.3.8", "dompurify": "^2.3.10",
"eslint": "^6.8.0", "eslint": "^6.8.0",
"eslint-config-habitrpg": "^6.2.0", "eslint-config-habitrpg": "^6.2.0",
"eslint-plugin-mocha": "^5.3.0", "eslint-plugin-mocha": "^5.3.0",
@@ -55,16 +55,16 @@
"svgo-loader": "^2.2.1", "svgo-loader": "^2.2.1",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"validator": "^13.7.0", "validator": "^13.7.0",
"vue": "^2.6.14", "vue": "^2.7.8",
"vue-cli-plugin-storybook": "2.1.0", "vue-cli-plugin-storybook": "2.1.0",
"vue-mugen-scroll": "^0.2.6", "vue-mugen-scroll": "^0.2.6",
"vue-router": "^3.5.4", "vue-router": "^3.5.4",
"vue-template-compiler": "^2.6.14", "vue-template-compiler": "^2.7.8",
"vuedraggable": "^2.24.3", "vuedraggable": "^2.24.3",
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#153d339e4dbebb73733658aeda1d5b7fcc55b0a0", "vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#153d339e4dbebb73733658aeda1d5b7fcc55b0a0",
"webpack": "^4.46.0" "webpack": "^4.46.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.18.6" "@babel/plugin-proposal-optional-chaining": "^7.18.9"
} }
} }

View File

@@ -463,6 +463,11 @@
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-woodlandWizard2x {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-woodlandWizard2x.png');
width: 60px;
height: 64px;
}
.achievement-zodiac2x { .achievement-zodiac2x {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-zodiac2x.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-zodiac2x.png');
width: 60px; width: 60px;

View File

@@ -135,5 +135,8 @@
"achievementReptacularRumbleModalText": "You collected all the reptile pets!", "achievementReptacularRumbleModalText": "You collected all the reptile pets!",
"achievementGroupsBeta2022": "Interactive Beta Tester", "achievementGroupsBeta2022": "Interactive Beta Tester",
"achievementGroupsBeta2022Text": "You and your group provided invaluable feedback to help Habitica test.", "achievementGroupsBeta2022Text": "You and your group provided invaluable feedback to help Habitica test.",
"achievementGroupsBeta2022ModalText":"You and your groups helped Habitica by testing and providing feedback!" "achievementGroupsBeta2022ModalText":"You and your groups helped Habitica by testing and providing feedback!",
"achievementWoodlandWizard": "Woodland Wizard",
"achievementWoodlandWizardText": "Has hatched all standard colors of forest creatures: Badger, Bear, Deer, Fox, Frog, Hedgehog, Owl, Snail, Squirrel, and Treeling!",
"achievementWoodlandWizardModalText": "You collected all the forest pets!"
} }

View File

@@ -188,6 +188,11 @@ const animalSetAchievs = {
titleKey: 'achievementReptacularRumble', titleKey: 'achievementReptacularRumble',
textKey: 'achievementReptacularRumbleText', textKey: 'achievementReptacularRumbleText',
}, },
woodlandWizard: {
icon: 'achievement-woodlandWizard',
titleKey: 'achievementWoodlandWizard',
textKey: 'achievementWoodlandWizardText',
},
zodiacZookeeper: { zodiacZookeeper: {
icon: 'achievement-zodiac', icon: 'achievement-zodiac',
titleKey: 'achievementZodiacZookeeper', titleKey: 'achievementZodiacZookeeper',

View File

@@ -144,8 +144,9 @@ const bundles = {
'hedgehog', 'hedgehog',
'treeling', 'treeling',
], ],
event: EVENTS.bundle202208,
canBuy () { canBuy () {
return moment().isBetween('2018-09-11', '2018-10-02'); return moment().isBetween(EVENTS.bundle202208.start, EVENTS.bundle202208.end);
}, },
type: 'quests', type: 'quests',
value: 7, value: 7,

View File

@@ -55,6 +55,23 @@ const ANIMAL_SET_ACHIEVEMENTS = {
achievementKey: 'reptacularRumble', achievementKey: 'reptacularRumble',
notificationType: 'ACHIEVEMENT_ANIMAL_SET', notificationType: 'ACHIEVEMENT_ANIMAL_SET',
}, },
woodlandWizard: {
type: 'pet',
species: [
'Badger',
'BearCub',
'Deer',
'Fox',
'Frog',
'Hedgehog',
'Owl',
'Snail',
'Squirrel',
'Treeling',
],
achievementKey: 'woodlandWizard',
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
},
zodiacZookeeper: { zodiacZookeeper: {
type: 'pet', type: 'pet',
species: [ species: [

View File

@@ -10,11 +10,17 @@ const gemsPromo = {
export const EVENTS = { export const EVENTS = {
noCurrentEventAfter: { noCurrentEventAfter: {
start: '2022-07-31T20:00-04:00', start: '2022-09-30T20:00-04:00',
end: '2022-12-21T08:00-04:00', end: '2022-12-21T08:00-04:00',
season: 'normal', season: 'normal',
npcImageSuffix: '', npcImageSuffix: '',
}, },
bundle202208: {
start: '2022-08-09T08:00-04:00',
end: '2022-09-30T20:00-04:00',
season: 'normal',
npcImageSuffix: '',
},
summer2022: { summer2022: {
start: '2022-06-21T08:00-04:00', start: '2022-06-21T08:00-04:00',
end: '2022-07-31T20:00-04:00', end: '2022-07-31T20:00-04:00',

View File

@@ -40,24 +40,24 @@ const featuredItems = {
}, },
{ {
type: 'eggs', type: 'eggs',
path: 'eggs.Cactus', path: 'eggs.BearCub',
}, },
]; ];
}, },
quests () { quests () {
if (moment().isBefore(EVENTS.bundle202206.end)) { if (moment().isBetween(EVENTS.bundle202208.start, EVENTS.bundle202208.end)) {
return [ return [
{ {
type: 'bundles', type: 'bundles',
path: 'bundles.aquaticAmigos', path: 'bundles.forestFriends',
}, },
{ {
type: 'quests', type: 'quests',
path: 'quests.seaserpent', path: 'quests.owl',
}, },
{ {
type: 'quests', type: 'quests',
path: 'quests.dolphin', path: 'quests.snail',
}, },
]; ];
} }

View File

@@ -218,6 +218,7 @@ function _getBasicAchievements (user, language) {
_addSimple(result, user, { path: 'zodiacZookeeper', language }); _addSimple(result, user, { path: 'zodiacZookeeper', language });
_addSimple(result, user, { path: 'birdsOfAFeather', language }); _addSimple(result, user, { path: 'birdsOfAFeather', language });
_addSimple(result, user, { path: 'reptacularRumble', language }); _addSimple(result, user, { path: 'reptacularRumble', language });
_addSimple(result, user, { path: 'woodlandWizard', language });
_addSimpleWithMasterCount(result, user, { path: 'beastMaster', language }); _addSimpleWithMasterCount(result, user, { path: 'beastMaster', language });
_addSimpleWithMasterCount(result, user, { path: 'mountMaster', language }); _addSimpleWithMasterCount(result, user, { path: 'mountMaster', language });

View File

@@ -150,6 +150,7 @@ export default new Schema({
zodiacZookeeper: Boolean, zodiacZookeeper: Boolean,
birdsOfAFeather: Boolean, birdsOfAFeather: Boolean,
reptacularRumble: Boolean, reptacularRumble: Boolean,
woodlandWizard: Boolean,
// Onboarding Guide // Onboarding Guide
createdTask: Boolean, createdTask: Boolean,
completedTask: Boolean, completedTask: Boolean,