* fix(profile): detect attempt to use banned words as display name. refactor profanity detection method.
* fix(profile): detect attempt to use banned words in blurb. further refactor profanity detection. inform the user their chat privileges have been revoked.
* refactor: add function to normalize Unicode strings and remove diacritics
* fix: improve regEx to prevent false partial matches e.g. 'hello' being recognised as banned words. porting fix from #12309
* fix(profile): refactor of profanity detection for #12445
* fix(profile): add test for swear words in new profile. fix existing tests
* fix(profile): show different error message for attempted slur use in username by new users.
* fix(profile): remove incorrect slur test
* fix(profile): fix slurs not caught at start of end of strings connect by punctuation
* tests(profile): fix tests for profanity checking
* remove exclusive test
* 11865 - update text for slur warnings
* 11865 - remove unused string from locale files
* 11865 - improve naming of banned word usage locale string
* 11865 - improve logic so that differentiated warnings are shown depending on whether a slur or other profanity has been used in a display name
* 11865 - construct slur regexes outside the validation function in which they are used
* 11865 - fix tests
This deletes two swear words that were causing trouble for French
speakers (they mean "delay" or "late").
It also puts English variants of those words back to the list of slurs
(IIRC, previously the base words were in that list but were moved to
swears because of the French issue).
* WIP: #12555
-dayOfMonth takes timezone into account on task update for monthly dailys
-startDate set to start of day in user's tz on task update for monthly
dailys
-tweaked a test so that it's actually testing something
* WIP: 12555
-task.startDate gets set to start of day in user's tz on task creation
and task update
-set preferences.timezoneOffset to nonzero value in certian test user objects
-removed date literals in test:api-v3:integration:tasks:PUT
* upgrade stripe module
* switch stripe api to latest version
* fix api version in tests
* start upgrading client and server
* client: switch to redirect
* implement checkout session creation for gems, start implementing webhooks
* stripe: start refactoring one time payments
* working gems and gift payments
* start adding support for subscriptions
* stripe: migrate subscriptions and fix cancelling sub
* allow upgrading group plans
* remove console.log statements
* group plans: upgrade from static page / create new one
* fix#11885, correct group plan modal title
* silence more stripe webhooks
* fix group plans redirects
* implement editing payment method
* start cleaning up code
* fix(stripe): update in-code docs, fix eslint issues
* subscriptions tests
* remove and skip old tests
* skip integration tests
* fix client build
* stripe webhooks: throw error if request fails
* subscriptions: correctly pass groupId
* remove console.log
* stripe: add unit tests for one time payments
* wip: stripe checkout tests
* stripe createCheckoutSession unit tests
* stripe createCheckoutSession unit tests
* stripe createCheckoutSession unit tests (editing card)
* fix existing webhooks tests
* add new webhooks tests
* add more webhooks tests
* fix lint
* stripe integration tests
* better error handling when retrieving customer from stripe
* client: remove unused strings and improve error handling
* payments: limit gift message length (server)
* payments: limit gift message length (client)
* fix redirects when payment is cancelled
* add back "subUpdateCard" string
* fix redirects when editing a sub card, use proper names for products, check subs when gifting
* Corrected recipient email address in reported PM Slack notification
Corrected the recipient email address in the Slack notification sent to moderators when a user reports their own private message.
* Installed new dependencies
* Removed personal comments
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* refactor(api-members): separate handler for the GET /challenges/:challengeId/members route
* refactor(api-members): challenges-related code removed from _getMembersForItem handler function
* feat(api-members): added support to the new includeTasks query parameter for the GET /challenges/:challengeId/members route
* fix(api-members): adjustments to the GET /challenges/:challengeId/members route
* fix(api-members): merge of _getMembersTasksFromChallenge and additional check for a test suite
* refactor(api-members): includeAllMembers query parameter got removed from the GET /challenges/:challengeId/members route
* GET-challenges_challengeId_members.test.js: use _id
* members.js: use _id instead of id
* use id instead of _id
* _id instead of id
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* upgrade helmet to version 4
* deps(short-uuid): upgrade to version 4, closes#12573
* deps(slack): upgrade to version 4
* deps(slack): upgrade to version 5, closes#11442
* deps(amplitude): upgrade to latest version use api v2
* fix tests
* slack tests: return promise
* refactor slack setup for tests
* fix slack unit tests
* fix(banned words): fix partial matching of words containing diacritics against banned words list (#12309)
* lint: remove whitespace to fix error
* test: add test to prevent partial matching of words containing diacritics against banned words list (#12309)
* doc: add link to Unicode table of diacritical marks (#12309)