* fix(logs): Remove console.log's
* chore(challengeMap): challengeMap -> completedChallenges
* chore(userModel): Update user model
* feat(userIDs): Add user ident fields
* chore(github): Remove more refs to github data
* fix(auth): Route should have specific targets
* fix(signup): Redirection should be to signup
Closes#16945
* feat(redirect): All fallback redirects to signin
* fix: send back to originating route
* fix(server,secrets): Specify profile field for LinkedIn provider.
* fix(profile): Add route to react profile page
* fix(seed): Simplify copy of lessons and remove need for image
* rework copy for account creation and login emails
* fix: Fixup email template and lock-file
* fix(files): Decouple files from challenges
* feat(server/react): Remove action logger
use redux remote devtools instead!
* feat(Challenges): Disable js on edit, enable on execute
* feat(Challenge/Preview): Show message when js is disabled
* refactor(frameEpic): Reduce code by using lodash
* feat(frameEpic): Disable js in preview by state
* feat(frameEpic): Colocate epic in Challenges/redux
* refactor(ExecuteChallengeEpic): CoLocated with Challenges
* refactor(executeChallengesEpic): Separate tests from main logic
* feat(Challenge/Preview): Update main on edit
* feat(frameEpuc): Replace frame on edit/execute
This allows for sandbox to work properly
* fix(Challenges/Utils): Require utisl
* revert(frameEpic): Hoist function to mount code in frame
* fix(frameEpic): Ensure new frame is given classname
* feat(executeChallenge): Update main on code unlocked
* fix(frameEpic): Filter out empty test message
* fix(Challenge/Preview): Remove unnessary quote in classname
* feat(codeStorageEpic): Separate localstorage from solutions loading
* fix(fetchUser): Merge user actions into one
prefer many effects from one action over one action to one effect
* fix(themes): Centralize theme utils and defs
* fix(entities.user): Fix user reducer namespacing
* feat(frame): Refactor frameEpic to util
* feat(Challenges.redux): Should not attempt to update main from storage
* fix(loadPreviousChallengeEpic): Refactor for RFR
* fix(Challenges.Modern): Show preview plane
Earlier we did not need emails for everyone, this is not the case
anymore. We now require emails, and all other auth mechanisms are
now deprecated for new users.