2535fd7095
* split component prepare new views / states
* extract empty and disabled state as components
* fix empty state mail icon
* first logic switching between modes, move page to /private-messages/index.vue
* extract autoCompleteHelper.js
* style header + start new message input
* style plus button + focus input
* state logic, types for sanity
* WIP PM new Message started
* add /members/username test
* first design changes to messageCard
* delete private message or chat - based on the mode
* copy as todo
* mention links to modal
* report chat or private message
* WIP likeButton
* likeButton styling
* hide like on private message cards
* fix unit test
* replace copy as todo - to just a copy to clipboard
* style changes
* menu position + like button width
* dropdown items background + like font
* fix like button padding
* move api endpoints and tests around to group inbox methods + like for inbox private messages
* restyle system messages
* Dropdown Radius and Padding
* WIP system messages
* fix lint
* copy delta commit of allowing liking own private messages
* enable liking private messages
* fix menu non hovered item icon color
* fix import path
* ignore background on system messages
* requested changes + migration
* update migration to update the unique id to some messages and delete the duplicates
* migration based on users pagination
* fix(migration): use Promise.all
* change to bulkWrites per User, and all messages in one run (of a user)
* check for array
* use rest operator ...
* skip sorting to get the users
* remove migration, disable like for private messages without uniqueMessageId
* lean+bulkWrite for likes, add time checks for like and auth for further debugging
* add a limit 2 get the messages by uniqueId
* Adding a simple server start script
* remove pinned nodemon dep
* fix inbox controller/tests
* fix / requested style changes
* fix empty state padding /
* hide avatar weapons on messages - fix avatar spacing on messages
* Hourglass Simplification (#15323)
* begin removing obsolete tests
* begin refactoring
* update cron tests
* cleanup
* finish basic implementation of new logic
* add more subscription tests
* subscription test improvements
* return nextHourglassDate again
* fix gem limit
* fix(test): short circuit this.
* fix(admin): correct logic and style for shrimple subs
* WIP(frontend): draft of main subs page view
* fix hourglass count
* Fix hourglass logic for upgrades
* fix admin panel display
* WIP(subs): extant Stripe state
* fix admin panel strings
* fix missing transaction type
* add new field for cumulative subscription count
* show date for hourglass bonus if it was received
* fix test
* feat(subscription): max Gems progress readout
* fix(css): correct and refactor heights and selection states
* fix(subs): correct border-radius and redirect
* fix(stripe): correct redirect after success
* Admin panel display fixes
* don’t give additional HG for new sub if they already got one this month
* fix issue with promo hourglasses
* fix(subscription): update layout when gifting
* fix(subscriptions): more gift layout revisions
* fix(subscriptions): minor visual updates
* fix(subs): pass autoRenews through Stripe
* fix(subs): gifts DON't renew
* fix(lint): unnecessary ternary
* fix(lint): do negate object ig
* fix(subs): try again on gifts
* fix(subs): unhovery and un-12-monthy
* fix bug with incorrectly giving HG bonus
* remove only
* fix test
* fix test
* fix(subs): also redirect to subs after gift sub
* fix(subs): fix typeError
* fix(g1g1): don't try to find Gems promo during bogo
---------
Co-authored-by: Phillip Thelen <phillip@habitica.com>
Co-authored-by: Kalista Payne <sabe@habitica.com>
* chore(sprites): update subproject
* fix(layout): tighten cancellation note
* fix(subs): Google wording and HG escape
* chore(testing): fake g1g1 dates
* fix(subs): don't hide HG preview entirely
* fix(subs): center next hourglass message
* working validatedTextInput.vue within start-new-conversation-input-header.vue 🎉
* fix(git): remove changes from old develop
* Revert "fix(git): remove changes from old develop"
This reverts commit 0e30f7df00.
* fix(git): no actually just this file i guesss
* adding an empty loading state, hiding
* fought the avatar arch nemesis again
* fix chatMessages (party chat) message spacing
* move disabled text back to above the input area - re-enable input area
* show disabled private messages top panel
* fix font color
* fixing uiStates - removing disabled - moving the own user check to the last
* fix(lint): add missing prop defaults
* fix(lint): object default should be fn
* fix(chat): correct grammar in error
---------
Co-authored-by: SabreCat <sabe@habitica.com>
Co-authored-by: Kalista Payne <sabrecat@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
134 lines
4.6 KiB
JSON
134 lines
4.6 KiB
JSON
{
|
|
"name": "habitica",
|
|
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
|
"version": "5.32.5",
|
|
"main": "./website/server/index.js",
|
|
"dependencies": {
|
|
"@babel/core": "^7.22.10",
|
|
"@babel/preset-env": "^7.22.10",
|
|
"@babel/register": "^7.22.15",
|
|
"@google-cloud/trace-agent": "^7.1.2",
|
|
"@parse/node-apn": "^5.2.3",
|
|
"@slack/webhook": "^6.1.0",
|
|
"accepts": "^1.3.8",
|
|
"amazon-payments": "^0.2.9",
|
|
"amplitude": "^6.0.0",
|
|
"apidoc": "^0.54.0",
|
|
"apple-auth": "^1.0.9",
|
|
"babel-preset-env": "^1.7.0",
|
|
"bcrypt": "^5.1.1",
|
|
"body-parser": "^1.20.3",
|
|
"bootstrap": "^4.6.2",
|
|
"compression": "^1.7.4",
|
|
"cookie-session": "^2.0.0",
|
|
"coupon-code": "^0.4.5",
|
|
"csv-stringify": "^5.6.5",
|
|
"cwait": "^1.1.1",
|
|
"domain-middleware": "~0.1.0",
|
|
"eslint": "^8.55.0",
|
|
"eslint-config-habitrpg": "^6.2.3",
|
|
"eslint-plugin-mocha": "^5.0.0",
|
|
"express": "^4.21.1",
|
|
"express-basic-auth": "^1.2.1",
|
|
"express-validator": "^5.2.0",
|
|
"firebase-admin": "^12.1.1",
|
|
"glob": "^8.1.0",
|
|
"got": "^11.8.6",
|
|
"gulp": "^4.0.0",
|
|
"gulp-babel": "^8.0.0",
|
|
"gulp-filter": "^7.0.0",
|
|
"gulp-imagemin": "^7.1.0",
|
|
"gulp-nodemon": "^2.5.0",
|
|
"gulp.spritesmith": "^6.13.0",
|
|
"habitica-markdown": "^3.0.0",
|
|
"helmet": "^4.6.0",
|
|
"in-app-purchase": "^1.11.3",
|
|
"js2xmlparser": "^5.0.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"jwks-rsa": "^2.1.5",
|
|
"lodash": "^4.17.21",
|
|
"merge-stream": "^2.0.0",
|
|
"method-override": "^3.0.0",
|
|
"moment": "^2.29.4",
|
|
"moment-recur": "^1.0.7",
|
|
"mongoose": "^7.8.3",
|
|
"morgan": "^1.10.0",
|
|
"nconf": "^0.12.1",
|
|
"node-gcm": "^1.0.5",
|
|
"nodemon": "^2.0.20",
|
|
"on-headers": "^1.0.2",
|
|
"passport": "^0.5.3",
|
|
"passport-facebook": "^3.0.0",
|
|
"passport-google-oauth2": "^0.2.0",
|
|
"passport-google-oauth20": "2.0.0",
|
|
"paypal-rest-sdk": "^1.8.1",
|
|
"pp-ipn": "^1.1.0",
|
|
"ps-tree": "^1.0.0",
|
|
"rate-limiter-flexible": "^2.4.2",
|
|
"redis": "^3.1.2",
|
|
"remove-markdown": "^0.5.0",
|
|
"rimraf": "^3.0.2",
|
|
"short-uuid": "^4.2.2",
|
|
"sinon": "^15.2.0",
|
|
"stripe": "^12.18.0",
|
|
"superagent": "^8.1.2",
|
|
"universal-analytics": "^0.5.3",
|
|
"useragent": "^2.1.9",
|
|
"uuid": "^9.0.0",
|
|
"validator": "^13.11.0",
|
|
"webpack-bundle-analyzer": "^4.10.2",
|
|
"winston": "^3.10.0",
|
|
"winston-loggly-bulk": "^3.3.0",
|
|
"xml2js": "^0.6.2"
|
|
},
|
|
"private": true,
|
|
"engines": {
|
|
"node": "20",
|
|
"npm": "^10"
|
|
},
|
|
"scripts": {
|
|
"lint": "eslint --ext .js --fix . && cd website/client && npm run lint",
|
|
"lint-no-fix": "eslint --ext .js . && cd website/client && npm run lint-no-fix",
|
|
"test": "npm run lint && gulp test && gulp apidoc",
|
|
"test:build": "gulp test:prepare:build",
|
|
"test:api-v3": "gulp test:api-v3",
|
|
"test:api:unit": "gulp test:api:unit",
|
|
"test:api-v3:integration": "gulp test:api-v3:integration",
|
|
"test:api-v3:integration:separate-server": "NODE_ENV=test gulp test:api-v3:integration:separate-server",
|
|
"test:api-v4:integration": "gulp test:api-v4:integration",
|
|
"test:api-v4:integration:separate-server": "NODE_ENV=test gulp test:api-v4:integration:separate-server",
|
|
"test:sanity": "nyc --silent --no-clean mocha test/sanity --recursive",
|
|
"test:common": "nyc --silent --no-clean mocha test/common --recursive",
|
|
"test:content": "nyc --silent --no-clean mocha test/content --recursive",
|
|
"test:nodemon": "gulp test:nodemon",
|
|
"coverage": "nyc report --reporter=html --report-dir coverage/results; open coverage/results/index.html",
|
|
"sprites": "gulp sprites:compile",
|
|
"client:dev": "cd website/client && npm run serve",
|
|
"client:build": "cd website/client && npm run build",
|
|
"client:unit": "cd website/client && npm run test:unit",
|
|
"start": "gulp nodemon",
|
|
"start:simple": "node ./website/server/index.js",
|
|
"debug": "gulp nodemon --inspect",
|
|
"mongo:dev": "run-rs -v 5.0.23 -l ubuntu1804 --keep --dbpath mongodb-data --number 1 --quiet",
|
|
"mongo:test": "run-rs -v 5.0.23 -l ubuntu1804 --keep --dbpath mongodb-data-testing --number 1 --quiet",
|
|
"postinstall": "git config --global url.\"https://\".insteadOf git:// && gulp build && cd website/client && npm install",
|
|
"apidoc": "gulp apidoc",
|
|
"heroku-postbuild": ".heroku/report_deploy.sh"
|
|
},
|
|
"devDependencies": {
|
|
"axios": "^1.7.4",
|
|
"chai": "^4.3.7",
|
|
"chai-as-promised": "^7.1.1",
|
|
"chai-moment": "^0.1.0",
|
|
"chalk": "^5.3.0",
|
|
"cross-spawn": "^7.0.5",
|
|
"mocha": "^5.1.1",
|
|
"monk": "^7.3.4",
|
|
"nyc": "^15.1.0",
|
|
"require-again": "^2.0.0",
|
|
"run-rs": "^0.7.7",
|
|
"sinon-chai": "^3.7.0",
|
|
"sinon-stub-promise": "^4.0.0"
|
|
}
|
|
}
|