TypeScript migration

Co-ordination
As discussed in the last contributors meeting we're looking to migrate our client to TypeScript.
In order to help people work in parallel this issue can be used to track who is working on what. I've put a checklist of all the unmigrated files at the bottom.  If you want to work on a file or some files, please edit in your github username next to the file(s) you want to work on.  If you don't have edit permission, please just reply to this issue @ me and I'll take care of it.
Guidelines
Take a look at the Codebase Best Practices
Small is beautiful
If a file can be migrated on its own, that's perfect.  That makes the PR incredibly easy to review and minimises the chance we break anything.
PropTypes can go
None of the components in the client dirs are intended to be consumed by JavaScript components - eventually everything will be tsx.  With that in mind static type checking should be enough.
React Guidelines
So, we're all on the same page: https://github.com/typescript-cheatsheets/react#readme has some useful advice.  Mostly the linters will warn us, but this is definitely worth a look.
un-typed packages
If the package does not come with types attached, then please npm i the definitions (if they exist) from DefinitelyTyped.  Usually they're just published as @types/name-of-package.
Ignore linting if necessary
Migration should be incremental and painless.  If you find that fixing the type and lint errors can't be done without migrating all the related files, feel free to use @ts-ignore or eslint-disable. However, this should only be a last resort when the problems cannot be addressed otherwise.
That said, it's more important that each change is easy to understand and review than it is it write perfect TS.  We'll get there eventually.
Keeping Git History
Sometimes changing the file from <filename>.js -> <filename>.tsx? causes the original file to be deleted, and a new one created, and other times the filename just changes - in terms of Git. Ideally, we want the file history to be preserved.
The best bet at achieving this is by:

Rename the file
Commit with the flag --no-verify to prevent husky from complaining about the errors
Refactor to TS for migration, in a separate commit.

Note: Editors like VSCode are still likely to show you the file has been deleted and a new one created. If you use the CLI to git add ., then VSCode will show the file as renamed in stage
Tests are running
We will not be merging any PRs with failing tests.
Files that cannot be migrated (yet)
In order to migrate gatsby-node.js, gatsby-config.js and any files that they import requires additional tooling. See: https://github.com/freeCodeCamp/freeCodeCamp/issues/42892
More guidelines may get added
As we do this, chances are we'll revise the approach.  Any thoughts/comments/critiques are welcome, but I wanted to keep this straightforward for now.
   list of files left to migrate (collapsed because it's rather long)

[ ] /client/utils/challengeTypes.js  @awu43
[ ] /client/utils/index.js @awu43
[ ] /client/utils/stateManagement.js @awu43
[ ] /client/utils/tags.js @awu43
[ ] /client/utils/tags.test.js @awu43
[x] /client/utils/gatsby/layoutSelector.js @awu43
[ ] /client/utils/gatsby/layoutSelector.test.js @awu43
[x] /client/src/utils/ajax.js @awu43
[x] /client/src/utils/algolia-locale-setup.js @awu43
[x] /client/src/utils/curriculum-helpers.test.js @awu43
[ ] /client/src/utils/format.js (Not currently possible to migrate)
[x] /client/src/utils/format.test.js @awu43
[x] /client/src/utils/get-words.js @awu43
[x] /client/src/utils/handled-error.js @awu43
[x] /client/src/utils/handled-error.test.js @awu43
[x] /client/src/utils/index.js @awu43
[x] /client/src/utils/reallyWeirdErrorMessage.js @awu43
[x] /client/src/utils/report-error.js @awu43
[x] /client/src/utils/reportedErrorMessage.js @awu43
[x] /client/src/utils/scriptLoaders.js @awu43
[x] /client/src/utils/standardErrorMessage.js @awu43
[x] /client/src/utils/to-learn-path.js @awu43
[ ] /client/src/templates/Introduction/Intro.js @vishwasnavadak
[ ] /client/src/templates/Introduction/SuperBlockIntro.js @vishwasnavadak
[ ] /client/src/templates/Introduction/redux/index.js @ShaunSHamilton
[ ] /client/src/templates/Introduction/components/Block.js (@ShaunSHamilton)
[ ] /client/src/templates/Introduction/components/CertChallenge.js (@ShaunSHamilton)
[ ] /client/src/templates/Introduction/components/CertificationCard.js (@ShaunSHamilton)
[ ] /client/src/templates/Introduction/components/Challenges.js (@ShaunSHamilton)
[ ] /client/src/templates/Introduction/components/ClaimCertSteps.js (@ShaunSHamilton)
[ ] /client/src/templates/Introduction/components/SuperBlockIntro.js (@ShaunSHamilton)
[ ] /client/src/templates/Challenges/utils/build.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/fetch-and-cache.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/frame.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/getTargetEditor.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/index.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/index.test.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/postUpdate$.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/worker-executor.js @Nirajn2311
[ ] /client/src/templates/Challenges/utils/worker-executor.test.js @Nirajn2311
[ ] /client/src/templates/Challenges/redux/code-lock-epic.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/redux/code-storage-epic.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/redux/completion-epic.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/redux/create-question-epic.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/redux/create-question-epic.test.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/redux/current-challenge-saga.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/redux/execute-challenge-saga.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/redux/index.js @ShaunSHamilton
[ ] /client/src/templates/Challenges/rechallenge/builders.js @victor-duarte
[ ] /client/src/templates/Challenges/rechallenge/throwers.js @victor-duarte
[ ] /client/src/templates/Challenges/rechallenge/transformers.js @victor-duarte
[ ] /client/src/templates/Challenges/projects/SolutionForm.js ( @Sembauke )
[x] /client/src/templates/Challenges/projects/Tool-Panel.js ( @thecodingaviator )
[ ] /client/src/templates/Challenges/components/HelpModal.js @iigorcunha
[ ] /client/src/templates/Challenges/components/Preview.js @iigorcunha
[ ] /client/src/templates/Challenges/components/PrismFormatted.js ( @thecodingaviator )
[ ] /client/src/templates/Challenges/components/Side-Panel.js @iigorcunha
[ ] /client/src/templates/Challenges/components/Test-Suite.js @kattmina
[ ] /client/src/templates/Challenges/components/Tool-Panel.js @kattmina
[ ] /client/src/templates/Challenges/components/VideoModal.js @iigorcunha
[ ] /client/src/templates/Challenges/classic/ActionRow.js (@ShaunSHamilton)
[ ] /client/src/templates/Challenges/classic/DesktopLayout.js (@ShaunSHamilton)
[x] /client/src/templates/Challenges/classic/Editor.js (@ShaunSHamilton)
[ ] /client/src/templates/Challenges/classic/EditorTabs.js (@ShaunSHamilton)
[ ] /client/src/templates/Challenges/classic/MobileLayout.js (@ShaunSHamilton)
[ ] /client/src/templates/Challenges/classic/MultifileEditor.js (@ShaunSHamilton)
[x] /client/src/resources/certAndProjectMap.js ( @thecodingaviator )
[x] /client/src/resources/honesty-policy.js ( @thecodingaviator )
[ ] /client/src/redux/accept-terms-saga.js @ShaunSHamilton
[ ] /client/src/redux/app-mount-saga.js @ShaunSHamilton
[ ] /client/src/redux/cookieValues.js @ShaunSHamilton
[ ] /client/src/redux/createStore.js @ShaunSHamilton
[ ] /client/src/redux/donation-saga.js @ShaunSHamilton
[ ] /client/src/redux/error-saga.js @ShaunSHamilton
[ ] /client/src/redux/failed-updates-epic.js @ShaunSHamilton
[ ] /client/src/redux/failed-updates-epic.test.js @ShaunSHamilton
[ ] /client/src/redux/fetch-user-saga.js @ShaunSHamilton
[ ] /client/src/redux/ga-saga.js @ShaunSHamilton
[ ] /client/src/redux/ga-saga.test.js @ShaunSHamilton
[ ] /client/src/redux/hard-go-to-epic.js @ShaunSHamilton
[ ] /client/src/redux/index.js @ShaunSHamilton
[ ] /client/src/redux/night-mode-saga.js @ShaunSHamilton
[ ] /client/src/redux/report-user-saga.js @ShaunSHamilton
[ ] /client/src/redux/rootEpic.js @ShaunSHamilton
[ ] /client/src/redux/rootReducer.js @ShaunSHamilton
[ ] /client/src/redux/rootSaga.js @ShaunSHamilton
[ ] /client/src/redux/show-cert-saga.js @ShaunSHamilton
[ ] /client/src/redux/update-complete-epic.js @ShaunSHamilton
[ ] /client/src/redux/settings/danger-zone-saga.js @ShaunSHamilton
[ ] /client/src/redux/settings/index.js @ShaunSHamilton
[ ] /client/src/redux/settings/settings-sagas.js @ShaunSHamilton
[ ] /client/src/redux/settings/update-email-saga.js @ShaunSHamilton
[ ] /client/src/redux/settings/update-legacy-certificate-saga.js @ShaunSHamilton
[ ] /client/src/pages/search.js @awu43
[x] /client/src/components/RedirectHome.js ( @thecodingaviator )
[x] /client/src/components/createExternalRedirects.js ( @thecodingaviator )
[x] /client/src/components/createExternalRedirects.test.js ( @thecodingaviator )
[x] /client/src/components/createLanguageRedirect.js ( @thecodingaviator )
[x] /client/src/components/createLanguageRedirect.test.js ( @thecodingaviator )
[x] /client/src/components/createRedirect.js ( @thecodingaviator )
[ ] /client/src/components/settings/Certification.js (@Nirajn2311)
[ ] /client/src/components/settings/Certification.test.js (@Nirajn2311)
[ ] /client/src/components/settings/Honesty.test.js (@Nirajn2311)
[ ] /client/src/components/search/WithInstantSearch.js @awu43
[ ] /client/src/components/search/redux/index.js @ShaunSHamilton
[ ] /client/src/components/layouts/Certification.js @RaymenDeol
[ ] /client/src/components/layouts/Default.js @sharmaabhinav
[ ] /client/src/components/layouts/Learn.js @sharmaabhinav
[ ] /client/src/components/layouts/index.js @Ismailtlem
[ ] /client/src/components/landing/Landing.test.js @pedrocsilva
[ ] /client/src/components/landing/index.js @pedrocsilva
[ ] /client/src/components/landing/components/AsSeenIn.js @pedrocsilva
[ ] /client/src/components/landing/components/BigCallToAction.js @pedrocsilva
[ ] /client/src/components/landing/components/CampersImage.js @pedrocsilva
[ ] /client/src/components/landing/components/Certifications.js @pedrocsilva
[ ] /client/src/components/landing/components/LandingTop.js @pedrocsilva
[ ] /client/src/components/landing/components/Testimonials.js @pedrocsilva
[ ] /client/src/components/helpers/index.js @Mvrs
[ ] /client/src/components/helpers/skeletonStyles.js @Mvrs
[ ] /client/src/components/formHelpers/Form.js @vishwasnavadak
[ ] /client/src/components/formHelpers/Form.test.js @vishwasnavadak
[ ] /client/src/components/formHelpers/FormFields.js @vishwasnavadak
[ ] /client/src/components/formHelpers/FormValidators.js @vishwasnavadak
[ ] /client/src/components/formHelpers/index.js @vishwasnavadak
[ ] /client/src/components/SolutionViewer/ProjectModal.js (@ShaunSHamilton)
[ ] /client/src/components/SolutionViewer/SolutionViewer.js (@ShaunSHamilton)
[ ] /client/src/components/OfflineWarning/OfflineWarning.js @mnlightstone
[ ] /client/src/components/Map/Map.test.js @sharmaabhinav
[ ] /client/src/components/Map/index.js @sharmaabhinav
[ ] /client/src/components/Intro/Intro.test.js @sharmaabhinav
[ ] /client/src/components/Intro/index.js @sharmaabhinav
[ ] /client/src/components/Intro/components/IntroDescription.js @Ismailtlem
[ ] /client/src/components/Header/Header.test.js @Ismailtlem
[x] /client/src/components/FourOhFour/index.js @nhcarrigan
[x] /client/src/components/Footer/Footer.test.js ( @thecodingaviator )
[x] /client/src/components/Footer/index.js ( @thecodingaviator )
[ ] /client/src/components/Flash/redux/index.js (@ShaunSHamilton)
[ ] /client/src/components/Donation/DonateCompletion.js @Nrestrepo05
[ ] /client/src/components/Donation/DonateForm.js @Nrestrepo05
[ ] /client/src/components/Donation/DonationModal.js @Nrestrepo05
[ ] /client/src/components/Donation/DonationTextComponents.js @Nrestrepo05
[ ] /client/src/components/Donation/PayPalButtonScriptLoader.js @Nrestrepo05
[ ] /client/src/components/Donation/PaypalButton.js @Nrestrepo05
[ ] /client/src/components/Donation/assets/ApplePay.js @Nrestrepo05
[ ] /client/src/components/Donation/assets/GooglePay.js @Nrestrepo05
[ ] /client/src/client/frame-runner.js
[ ] /client/src/client/workers/sass-compile.js
[ ] /client/src/client/workers/test-evaluator.js
[ ] /client/src/tests/integration/handled-error.test.js @Mvrs
[ ] /client/src/mocks/challenge-nodes.js @Mvrs
[ ] /client/src/mocks/fileMock.js @Mvrs
[ ] /client/src/mocks/gatsby-link.js @Mvrs
[ ] /client/src/mocks/gatsby.js @Mvrs
[ ] /client/src/mocks/react-i18nextMock.js @Mvrs
[ ] /client/src/mocks/styleMock.js @Mvrs
[ ] /client/i18n/config.js @Mvrs
[ ] /client/i18n/configForTests.js @Mvrs
[ ] /client/i18n/locales.test.js @Mvrs
[ ] /client/i18n/schema-validation.js @Mvrs
[ ] /client/i18n/validate-keys.js @Mvrs

  Merged at Party

[X] /client/src/html.js ( @thecodingaviator )
[x] /client/src/utils/createTypes.js @ShaunSHamilton
[X] /client/src/utils/__fixtures/curriculum-helpers-css.js ( @thecodingaviator )
[X] /client/src/utils/__fixtures/curriculum-helpers-html.js ( @thecodingaviator )
[X] /client/src/utils/__fixtures/curriculum-helpers-javascript.js ( @thecodingaviator )
[X] /client/src/utils/__fixtures/curriculum-helpers-remove-white-space.js ( @thecodingaviator )
[X] /client/src/templates/Challenges/video/Show.js (@moT01)
[X] /client/src/templates/Challenges/projects/frontend/Show.js (@moT01)
[X] /client/src/templates/Challenges/projects/backend/Show.js (@moT01)
[X] /client/src/templates/Challenges/components/BreadCrumb.js (@moT01)
[x] /client/src/templates/Challenges/components/Challenge-Description.js (@sembauke)
[X] /client/src/templates/Challenges/components/Challenge-Title.js (@moT01)
[X] /client/src/templates/Challenges/components/ChallengeTitle.test.js (@moT01)
[X] /client/src/templates/Challenges/components/CompletionModal.js (@moT01)
[X] /client/src/templates/Challenges/components/CompletionModal.test.js (@moT01)
[X] /client/src/templates/Challenges/components/CompletionModalBody.js (@moT01)
[X] /client/src/templates/Challenges/components/CompletionModalBody.test.js (@moT01)
[X] /client/src/templates/Challenges/components/Hotkeys.js (@moT01)
[X] /client/src/templates/Challenges/components/Output.js ( @thecodingaviator )
[X] /client/src/templates/Challenges/components/ResetModal.js (@moT01)
[X] /client/src/templates/Challenges/codeally/show.js (@moT01)
[X] /client/src/templates/Challenges/classic/Show.js (@moT01)
[x] /client/src/redux/propTypes.js (@ShaunSHamilton)
[X] /client/src/pages/404.js @awu43
[X] /client/src/pages/certification.js @awu43
[X] /client/src/pages/challenges.js @awu43
[X] /client/src/pages/challenges.test.js @awu43
[X] /client/src/pages/donate.js @awu43
[X] /client/src/pages/email-sign-up.js @awu43
[X] /client/src/pages/index.js @awu43
[X] /client/src/pages/learn.js @awu43
[X] /client/src/pages/settings.js @awu43
[X] /client/src/pages/unsubscribed.js @awu43
[X] /client/src/pages/update-email.js @awu43
[X] /client/src/pages/user.js @awu43
[X] /client/src/components/AppMountNotifier.js @sharmaabhinav
[X] /client/src/components/settings/About.js (@Nirajn2311)
[X] /client/src/components/settings/DangerZone.js (@Nirajn2311)
[X] /client/src/components/settings/DeleteModal.js (@Nirajn2311)
[X] /client/src/components/settings/Email.js (@Nirajn2311)
[X] /client/src/components/settings/Honesty.js (@Nirajn2311)
[X] /client/src/components/settings/Internet.js (@Nirajn2311)
[X] /client/src/components/settings/Portfolio.js (@Nirajn2311)
[X] /client/src/components/settings/Privacy.js (@Nirajn2311)
[X] /client/src/components/settings/ResetModal.js (@Nirajn2311)
[X] /client/src/components/settings/SectionHeader.js (@Nirajn2311)
[X] /client/src/components/settings/Theme.js (@Nirajn2311)
[X] /client/src/components/settings/ToggleSetting.js (@Nirajn2311)
[X] /client/src/components/settings/Username.js (@Nirajn2311)
[X] /client/src/components/search/searchPage/EmptySearch.js @krishna-saurav
[X] /client/src/components/search/searchPage/NoResults.js @krishna-saurav
[X] /client/src/components/search/searchPage/SearchPageHits.js @krishna-saurav
[X] /client/src/components/search/searchBar/NoHitsSuggestion.js @krishna-saurav
[X] /client/src/components/search/searchBar/SearchBar.js @krishna-saurav
[X] /client/src/components/search/searchBar/SearchBar.test.js @krishna-saurav
[X] /client/src/components/search/searchBar/SearchHits.js @krishna-saurav
[X] /client/src/components/search/searchBar/SearchSuggestion.js @krishna-saurav
[X] /client/src/components/profile/Profile.js @Dripcoding
[X] /client/src/components/profile/Profile.test.js @Dripcoding
[X] /client/src/components/profile/components/Camper.js @Dripcoding
[X] /client/src/components/profile/components/Certifications.js @Dripcoding
[X] /client/src/components/profile/components/HeatMap.js @Dripcoding
[X] /client/src/components/profile/components/HeatMap.test.js @Dripcoding
[X] /client/src/components/profile/components/Portfolio.js @Dripcoding
[X] /client/src/components/profile/components/SocialIcons.js @Dripcoding
[X] /client/src/components/profile/components/TimeLine.js @Dripcoding
[X] /client/src/components/profile/components/TimeLine.test.js @Dripcoding
[X] /client/src/components/profile/components/TimelinePagination.js @Dripcoding
[X] /client/src/components/helpers/AvatarRenderer.js ( @thecodingaviator )
[X] /client/src/components/helpers/ButtonSpacer.js ( @thecodingaviator )
[X] /client/src/components/helpers/CurrentChallengeLink.js @Mvrs
[X] /client/src/components/helpers/FullWidthRow.js ( @thecodingaviator )
[X] /client/src/components/helpers/ImageLoader.js ( @thecodingaviator )
[X] /client/src/components/helpers/Link.js ( @thecodingaviator )
[X] /client/src/components/helpers/Link.test.js ( @thecodingaviator )
[X] /client/src/components/helpers/Loader.js ( @thecodingaviator )
[X] /client/src/components/helpers/Loader.test.js ( @thecodingaviator )
[X] /client/src/components/helpers/SkeletonSprite.js @Mvrs
[X] /client/src/components/helpers/SlimWidthRow.js @Mvrs
[X] /client/src/components/helpers/Spacer.js @Mvrs
[X] /client/src/components/helpers/ToggleButton.js @Mvrs
[X] /client/src/components/helpers/borderColorPicker.js ( @thecodingaviator )
[X] /client/src/components/helpers/form/BlockSaveButton.js ( @thecodingaviator )
[X] /client/src/components/helpers/form/BlockSaveWrapper.js ( @thecodingaviator )
[X] /client/src/components/formHelpers/BlockSaveButton.js ( @thecodingaviator )
[X] /client/src/components/formHelpers/BlockSaveButton.test.js ( @thecodingaviator )
[X] /client/src/components/formHelpers/BlockSaveWrapper.js ( @thecodingaviator )
[X] /client/src/components/formHelpers/BlockSaveWrapper.test.js ( @thecodingaviator )
[X] /client/src/components/OfflineWarning/index.js @mnlightstone
[X] /client/src/components/Header/index.js @akshatgarg12
[X] /client/src/components/Header/components/AuthOrProfile.js @akshatgarg12
[X] /client/src/components/Header/components/Login.js @akshatgarg12
[X] /client/src/components/Header/components/MenuButton.js @akshatgarg12
[X] /client/src/components/Header/components/NavLinks.js @akshatgarg12
[X] /client/src/components/Header/components/NavLogo.js @akshatgarg12
[X] /client/src/components/Header/components/UniversalNav.js @akshatgarg12
[X] /client/src/components/Header/components/UserState.js @akshatgarg12
[X] /client/src/client-only-routes/ShowCertification.js (@ShaunSHamilton)
[X] /client/src/client-only-routes/ShowProfileOrFourOhFour.js (@ShaunSHamilton)
[X] /client/src/client-only-routes/ShowProjectLinks.js (@ShaunSHamilton)
[X] /client/src/client-only-routes/ShowSettings.js (@ShaunSHamilton)
[X] /client/src/client-only-routes/ShowSettings.test.js (@ShaunSHamilton)
[X] /client/src/client-only-routes/ShowUnsubscribed.js (@ShaunSHamilton)
[X] /client/src/client-only-routes/ShowUser.js (@ShaunSHamilton)
[X] /client/src/assets/images/components/AmazonLogo.js ( @thecodingaviator )
[X] /client/src/assets/images/components/AppleLogo.js ( @thecodingaviator )
[X] /client/src/assets/images/components/AsFeatureLogo.js ( @thecodingaviator )
[X] /client/src/assets/images/components/GoogleLogo.js ( @thecodingaviator )
[X] /client/src/assets/images/components/MicrosoftLogo.js ( @thecodingaviator )
[X] /client/src/assets/images/components/SpotifyLogo.js ( @thecodingaviator )
[X] /client/src/assets/images/components/index.js ( @thecodingaviator )
[X] /client/src/assets/icons/APIIcon.js ( @thecodingaviator )
[X] /client/src/assets/icons/Algorithm.js ( @thecodingaviator )
[X] /client/src/assets/icons/Analytics.js ( @thecodingaviator )
[X] /client/src/assets/icons/Caret.js ( @thecodingaviator )
[X] /client/src/assets/icons/CertificationIcon.js ( @thecodingaviator )
[X] /client/src/assets/icons/Clipboard.js ( @thecodingaviator )
[X] /client/src/assets/icons/Cup.js ( @thecodingaviator )
[X] /client/src/assets/icons/D3Icon.js ( @thecodingaviator )
[X] /client/src/assets/icons/DefaultAvatar.js ( @thecodingaviator )
[X] /client/src/assets/icons/DonateWithPayPal.js ( @thecodingaviator )
[X] /client/src/assets/icons/Fail.js ( @thecodingaviator )
[X] /client/src/assets/icons/FreeCodeCampLogo.js ( @thecodingaviator )
[X] /client/src/assets/icons/GreenNotCompleted.js ( @thecodingaviator )
[X] /client/src/assets/icons/GreenPass.js ( @thecodingaviator )
[X] /client/src/assets/icons/Heart.js ( @thecodingaviator )
[X] /client/src/assets/icons/Initial.js ( @thecodingaviator )
[X] /client/src/assets/icons/IntroInformation.js ( @thecodingaviator )
[X] /client/src/assets/icons/JavaScriptIcon.js ( @thecodingaviator )
[X] /client/src/assets/icons/LinkButton.js ( @thecodingaviator )
[X] /client/src/assets/icons/PythonIcon.js ( @thecodingaviator )
[X] /client/src/assets/icons/ReactIcon.js ( @thecodingaviator )
[X] /client/src/assets/icons/ResponsiveDesign.js ( @thecodingaviator )
[X] /client/src/assets/icons/Shield.js ( @thecodingaviator )
[X] /client/src/assets/icons/Spacer.js ( @thecodingaviator )
[X] /client/src/assets/icons/TensorflowIcon.js ( @thecodingaviator )
[X] /client/src/assets/icons/ToggleCheck.js ( @thecodingaviator )
[X] /client/src/assets/icons/index.js ( @thecodingaviator )
[x] /client/src/analytics/index.js ( @thecodingaviator )
[X] /client/src/analytics/mocks/index.js ( @thecodingaviator )

Because this is a refactor we would want to rename the files to kebab-case where possible.

camelCase
PascalCase
snake_case
kebab-case

@ojeytonwilliams  I would like to contribute. Can I get edit permission for the above comment?

I'm not sure it's possible to make an issue publicly editable. @raisedadead do you know?
@krishna-saurav if you let us know which you're looking at, I can add your name to the checklist.

@ojeytonwilliams  Np !! I would like to take up below files :
/client/src/components/search/searchPage/EmptySearch.js
/client/src/components/search/searchPage/NoResults.js
/client/src/components/search/searchPage/SearchPageHits.js
/client/src/components/search/searchBar/NoHitsSuggestion.js
/client/src/components/search/searchBar/SearchBar.js
/client/src/components/search/searchBar/SearchBar.test.js
/client/src/components/search/searchBar/SearchHits.js
/client/src/components/search/searchBar/SearchSuggestion.js
/client/src/components/search/redux/index.js

Sorry, GitHub issues are editable by maintainers (our moderators) only. I think commenting on this thread should be fine and someone from the team would be able to scratch off the files from the OP once we have a PR merged.

I've edited the checklist for those files. Thanks for taking these on @krishna-saurav

I would like to work on these  @ojeytonwilliams
/client/src/components/Header/index.js
/client/src/components/Header/components/AuthOrProfile.js
/client/src/components/Header/components/Login.js
/client/src/components/Header/components/MenuButton.js
/client/src/components/Header/components/NavLinks.js
/client/src/components/Header/components/NavLogo.js
/client/src/components/Header/components/UniversalNav.js
/client/src/components/Header/components/UserState.js

Awesome, thanks @akshatgarg12, I've edited you in.

@ojeytonwilliams I'd like to work on these files:
/client/src/components/profile/Profile.js
/client/src/components/profile/Profile.test.js
/client/src/components/profile/components/Camper.js
/client/src/components/profile/components/Certifications.js
/client/src/components/profile/components/HeatMap.js
/client/src/components/profile/components/HeatMap.test.js
/client/src/components/profile/components/Portfolio.js
/client/src/components/profile/components/SocialIcons.js
/client/src/components/profile/components/TimeLine.js
/client/src/components/profile/components/TimeLine.test.js
/client/src/components/profile/components/TimelinePagination.js

Hey! Can I help migrate some files?

Hey! Can I help migrate some files?

Sure go for it!

Thanks @Dripcoding, I've added your name to those files.

Hey! Can I help migrate some files?

Sure go for it! @pedrocsilva
Please specify which files you want to migrate to TypeScript.

I'll migrate these:
/client/src/components/landing/Landing.test.js
/client/src/components/landing/index.js
/client/src/components/landing/components/AsSeenIn.js
/client/src/components/landing/components/BigCallToAction.js
/client/src/components/landing/components/CampersImage.js
/client/src/components/landing/components/Certifications.js
/client/src/components/landing/components/LandingTop.js
/client/src/components/landing/components/Testimonials.js

Cheers, @pedrocsilva I've added your name, too.

This is going to be a merge-party issue. We will merge all linked PRs in a virtual party where we can have all contributors: just-chatting, reviewing PRs (resolving conflicts) and landing them.

I can do  /client/utils/index.js, /client/utils/challengeTypes.js, and /client/utils/buildChallenges.js

Hey, I'd like to take client/src/pages:
/client/src/pages/404.js
/client/src/pages/certification.js
/client/src/pages/challenges.js
/client/src/pages/challenges.test.js
/client/src/pages/donate.js
/client/src/pages/email-sign-up.js
/client/src/pages/index.js
/client/src/pages/learn.js
/client/src/pages/search.js
/client/src/pages/settings.js
/client/src/pages/unsubscribed.js
/client/src/pages/update-email.js
/client/src/pages/user.js

Thanks @awu43, I've edited you in :+1:

Hey! I want to help with the following files:
/client/src/components/Donation/DonateCompletion.js
/client/src/components/Donation/DonateForm.js
/client/src/components/Donation/DonationModal.js
/client/src/components/Donation/DonationTextComponents.js
/client/src/components/Donation/PayPalButtonScriptLoader.js
/client/src/components/Donation/PaypalButton.js
/client/src/components/Donation/assets/ApplePay.js
/client/src/components/Donation/assets/GooglePay.js

Thanks @Nrestrepo05, I've edited you in too +1

Sorry, I won't be able to work on this issue this week. Can I do it next week? If not, I'll look for a new issue later. Thanks!

Yea it's fine, there are a lot of files to be changed and everyone's just getting started with it.

Hi @ojeytonwilliams may I help to migrate js to ts

Hello all,
The TypeScript Merge Party is scheduled to go down on the 25th of June, 2021, at 14:00 GMT.
Here is the forum post with more information: https://forum.freecodecamp.org/t/merge-party-typescript/465413
See you there 👀

7AM PT 😬. That's... less than ideal.

Sorry, I won't be able to work on this issue this week. Can I do it next week? If not, I'll look for a new issue later. Thanks!

@ojeytonwilliams Hey, if you don't have time to do the Donation components can I give it a go?

I think, from the conversation in #contributors chat, that @Nrestrepo05 is still working on the Donation components.  Is that right @Nrestrepo05?  If so, it would be best to avoid duplicating each other's work.
If you're interested, @Mvrs , there are still a fair few unclaimed files - I'd be happy to assign you to any that you'd like to work on.

7AM PT . That's... less than ideal.

Sorry @awu43, this one isn't great for people in the states.  However, if we have it much later, then becomes too late for people in Asia.  If we do have a second party, we'll try and remember to make it a bit later so that different people can attend.

I think, from the conversation in #contributors chat, that @Nrestrepo05 is still working on the Donation components.  Is that right @Nrestrepo05?  If so, it would be best to avoid duplicating each other's work.
If you're interested, @Mvrs , there are still a fair few unclaimed files - I'd be happy to assign you to any that you'd like to work on.

I can dig into the client/src/helpers/** methods.

I can dig into the client/src/helpers/** methods.

Perfect, thanks.  I've made the edits.

Sorry, I won't be able to work on this issue this week. Can I do it next week? If not, I'll look for a new issue later. Thanks!

@ojeytonwilliams Hey, if you don't have time to do the Donation components can I give it a go?

Hello, @Mvrs! Sorry, I'm using my free time to work on it 😕

Hey! I want to help with the following files:

[ ] /client/src/components/layouts/Default.js
[ ] /client/src/components/layouts/Learn.js
[ ] /client/src/components/AppMountNotifier.js

Hello! I'd love to help with this project. I'm new to the codebase, so can I just start off with these two files?
 /client/src/components/OfflineWarning/OfflineWarning.js
 /client/src/components/OfflineWarning/index.js

@sharmaabhinav I have added you to the list.
@mnlightstone I have added you to the list.

7AM PT 😬. That's... less than ideal.

Yeah I agree, for people on the east coast of the US that’s in the middle of the work day, is it possible we do the 26th (Saturday) instead?

Timezones are pretty hard. We would love to get everyone on the same meeting/call; the thing is, moving things is just going to be inconvenient for someone else.
We appreciate your understanding of this, and regardless of you being able to join, we want to let you know that your help and contribution to the code is much appreciated.
Cheers.

@ojeytonwilliams was wondering do I make a commit after ever file change? (So the Git History looks clean)

@Mvrs For the most part, the PRs will be squashed. So, we are not much fussed about the branch history. What I did find, however, is Git is more likely to recognise a file as renamed, if the steps mentioned in the original post are followed. That is, it is always nice to preserve file history. So, it should be fine to  do all file renames in the same commit.

@Mvrs For the most part, the PRs will be squashed. So, we are not much fussed about the branch history. What I did find, however, is Git is more likely to recognise a file as renamed, if the steps mentioned in the original post are followed. That is, it is always nice to preserve file history. So, it should be fine to  do all file renames in the same commit.

Thanks for clearing that up!

@ojeytonwilliams looked at the list and my assigned files mixed up with @thecodingaviator /client/src/components/formHelpers/ and my /client/src/components/helpers/**. Just want to make sure my changes matter lol.

He - can I get started on the following please :
 /client/src/components/layouts/Certification.js

@ojeytonwilliams looked at the list and my assigned files mixed up with @thecodingaviator /client/src/components/formHelpers/ and my /client/src/components/helpers/**. Just want to make sure my changes matter lol.

Hey @Mvrs Please go through #42476 and see which files I've already worked on. Let me know which other ones you want to take up and I'll edit you in

He - can I get started on the following please :
 /client/src/components/layouts/Certification.js

@RaymenDeol I've edited you in. Go for it!

@ojeytonwilliams looked at the list and my assigned files mixed up with @thecodingaviator /client/src/components/formHelpers/ and my /client/src/components/helpers/**. Just want to make sure my changes matter lol.

Hey @Mvrs Please go through #42476 and see which files I've already worked on. Let me know which other ones you want to take up and I'll edit you in

I believe you didn't touch the helpers/ module yet. I'm almost done 🙏🏿

@ojeytonwilliams looked at the list and my assigned files mixed up with @thecodingaviator /client/src/components/formHelpers/ and my /client/src/components/helpers/**. Just want to make sure my changes matter lol.

Hey @Mvrs Please go through #42476 and see which files I've already worked on. Let me know which other ones you want to take up and I'll edit you in

I believe you didn't touch the helpers/ module yet. I'm almost done 🙏🏿

I've worked on some files there like this one

If anyone doesn't know about this tool - it's kinda nice. You can type in a file or folder name/path and see if any open PR's touch that area of the code.

@thecodingaviator nice! I will avoid the form components then lol.

@ojeytonwilliams what else needs to be done?

@ojeytonwilliams looked at the list and my assigned files mixed up with @thecodingaviator /client/src/components/formHelpers/ and my /client/src/components/helpers/**. Just want to make sure my changes matter lol.

Hey @Mvrs Please go through #42476 and see which files I've already worked on. Let me know which other ones you want to take up and I'll edit you in

I believe you didn't touch the helpers/ module yet. I'm almost done 🙏🏿

I've worked on some files there like this one

@thecodingaviator Why did you continue to work on the files I already worked on? You shared a link of you doing two files in /helpers/form/* so I told I will not touch those. I was taking the rest lol. But, then you proceeded to do more helpers. C'mon my guy.

@ojeytonwilliams looked at the list and my assigned files mixed up with @thecodingaviator /client/src/components/formHelpers/ and my /client/src/components/helpers/**. Just want to make sure my changes matter lol.

Hey @Mvrs Please go through #42476 and see which files I've already worked on. Let me know which other ones you want to take up and I'll edit you in

I believe you didn't touch the helpers/ module yet. I'm almost done 🙏🏿

I've worked on some files there like this one

@thecodingaviator Why did you continue to work on the files I already worked on? You shared a link of you doing two files in /helpers/form/* so I told I will not touch those. I was taking the rest lol. But, then you proceeded to do more helpers. C'mon my guy.

Hey, @Mvrs please go through the helpers I've edited/worked upon on this link and this link. I am pretty sure I have only worked on those files that I have claimed in the file list above (this excludes any files I've edited to update imports but not migrated). However, if you feel like I've worked on a file that you claimed, I'd be happy to exclude it from my PRs. :)

@thecodingaviator Im saying two days ago you only had one link (which contained two files). I already informed you not to continue since I'm already doing the rest. The ones you were assigned was obviously a mistake in the list which was also brought up. Here are my files. Just exclude the ones I've done that you've done.

@thecodingaviator Im saying two days ago you only had one link (which contained two files). I already informed you not to continue since I'm already doing the rest. The ones you were assigned was obviously a mistake in the list which was also brought up. Here are my files. Just exclude the ones I've done that you've done.

@Mvrs I'll remove those files from my PRs as a professional courtesy. However, I will strongly recommend using the tool Tom mentioned above to make sure you do not work on the same file(s) again if someone else already has an open PR. Happy coding :)

@thecodingaviator Im saying two days ago you only had one link (which contained two files). I already informed you not to continue since I'm already doing the rest. The ones you were assigned was obviously a mistake in the list which was also brought up. Here are my files. Just exclude the ones I've done that you've done.

@Mvrs I'll remove those files from my PRs as a professional courtesy. However, I will strongly recommend using the tool Tom mentioned above to make sure you do not work on the same file(s) again if someone else already has an open PR. Happy coding :)

Note taken. Thanks for the tip and hacking coding as well 🙃

Notes for Merge Party

[ ] First PR to be merged for Spacer changes: https://github.com/freeCodeCamp/freeCodeCamp/pull/42593
[ ] Needs changes reverted to certain files: https://github.com/freeCodeCamp/freeCodeCamp/pull/42378
[ ] Many files refer to children - majority of these should be JSX.ElementChildrenAttribute (most accurate typing, from what I have read) will be done post-party
[ ] Requires deliberation before merge: https://github.com/freeCodeCamp/freeCodeCamp/pull/42575
[ ] Requires look over before merge: https://github.com/freeCodeCamp/freeCodeCamp/pull/42561
[ ] Needs type package change reverted before merge: https://github.com/freeCodeCamp/freeCodeCamp/pull/42585
[ ] Needs update before merge: https://github.com/freeCodeCamp/freeCodeCamp/pull/42287
[ ] Thought needs to be given about the addition of the react-instantsearch-core library
[ ] Needs update before merge: https://github.com/freeCodeCamp/freeCodeCamp/pull/42367
[ ] Needs to not delete Italian work... : https://github.com/freeCodeCamp/freeCodeCamp/pull/42553

Needs Rebase with next

[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42587
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42476
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42467
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42457
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42445
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42598
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42586
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42582
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42327

Fully Ready-To-Go

[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42593
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42468
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42469
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42453
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42462
[ ] https://github.com/freeCodeCamp/freeCodeCamp/pull/42587

Thank you, all those who contributed! Merge Party is over, but this issue still stands with many components still needing migrated.
Feel free to @ us, if you want to work on a file/files 😃

139 files done!

@ShaunSHamilton are you going to make a list of the files that are left?

@ShaunSHamilton are you going to make a list of the files that are left?

All the files that are unticked in the original post.

I think Shaun means unassigned rather than unticked^

Hey friends,
I'm going to try to land https://github.com/freeCodeCamp/freeCodeCamp/pull/42635 today, which will aim to resolve the existing linter issues, remove as many eslint-disable lines as possible, and get the client into a state where it builds.
Once this lands, we can rebase our open migration PRs and ensure we continue to pass our CI. 🙂

@nhcarrigan I'll have #42636 redone after that then?

Sounds good 🙂
Mostly hoping to resolve the issue where your PR, for example, is failing checks because next is failing checks.

Round 2, here we go. I can do /client/src/utils
/client/src/utils/ajax.js
/client/src/utils/algolia-locale-setup.js
/client/src/utils/curriculum-helpers.test.js
/client/src/utils/format.js
/client/src/utils/format.test.js
/client/src/utils/get-words.js
/client/src/utils/handled-error.js
/client/src/utils/handled-error.test.js
/client/src/utils/index.js
/client/src/utils/reallyWeirdErrorMessage.js
/client/src/utils/report-error.js
/client/src/utils/reportedErrorMessage.js
/client/src/utils/scriptLoaders.js
/client/src/utils/standardErrorMessage.js
/client/src/utils/to-learn-path.js

It looks like /client/src/utils/createTypes.js has already been done (#42278).

@awu43 I’ve edited you in. Have a quick look the the OP to cross check but you should be good to go

@thecodingaviator are these open? /client/src/templates/Challenges/redux/**
I would like to take these.

@Mvrs No, I have taken all of the redux files.
You are welcome to look through the list in the original post to see which files do not have names next to them, and request your handle be added.

@Mvrs No, I have taken all of the redux files.
You are welcome to look through the list in the original post to see which files do not have names next to them, and request your handle be added.

Got it! But they all have names next to them. How to tell if one is AFK or not? 🤣

Got it! But they all have names next to them. How to tell if one is AFK or not? 🤣

@Mvrs I am not sure what you are looking at, because I can see a few dozen without names scattered around:

@ShaunSHamilton lol. I'll just take those

@ShaunSHamilton lol. I'll just take those and these /client/src/templates/Challenges/components/**

@Mvrs I've assigned the following files to you:

As for /client/src/templates/Challenges/components/**, not all of those files are available (those with usernames next to them are taken). Please let me know which specific ones you want

📢 Please target all further PRs to the main branch.

Ready for more files, I'll take /client/utils/**.
/client/utils/buildChallenges.js
/client/utils/challengeTypes.js
/client/utils/index.js
/client/utils/stateManagement.js
/client/utils/tags.js
/client/utils/tags.test.js
/client/utils/gatsby/challengePageCreator.js
/client/utils/gatsby/index.js
/client/utils/gatsby/layoutSelector.js
/client/utils/gatsby/layoutSelector.test.js

Just updating everyone!!!
I'm still here and will have my files done soon 🚀

Hi, Is it too late to say I will migrate below files? @ojeytonwilliams
 /client/src/templates/Introduction/Intro.js
 /client/src/templates/Introduction/SuperBlockIntro.js

I don't see them assigned to anyone. So will be happy to help.

@vishwasnavadak I have edited your name against those files 👍

I would like to migrate /client/src/components/landing/index.js & /client/src/components/landing/components/*

it's ok to get these files?
client/src/redux/accept-terms-saga.js
client/src/redux/app-mount-saga.js
client/src/redux/cookieValues.js
client/src/redux/donation-saga.js

I did not see anyone get those files.

it's ok to get these files?
@iigorcunha Sure go for it!

Have any files still free to migrate?

I can take up these files
/client/src/components/Map/Map.test.js
/client/src/components/Map/index.js
/client/src/components/Intro/Intro.test.js
/client/src/components/Intro/index.js

I have added you in @sharmaabhinav!

Have any files still free to migrate?

Hey @iigorcunha
Here are some of the remaining tests
 /client/src/templates/Challenges/rechallenge/builders.js
 /client/src/templates/Challenges/rechallenge/throwers.js
 /client/src/templates/Challenges/rechallenge/transformers.js
 /client/src/templates/Challenges/components/HelpModal.js
 /client/src/templates/Challenges/components/Preview.js
 /client/src/templates/Challenges/components/Side-Panel.js
 /client/src/templates/Challenges/components/Test-Suite.js
 /client/src/templates/Challenges/components/Tool-Panel.js
 /client/src/templates/Challenges/components/VideoModal.js

Hi Guys! I would also like to help :) Could I take:
/client/src/templates/Challenges/components/Test-Suite.js
/client/src/templates/Challenges/components/Tool-Panel.js ?

Hi Guys! I would also like to help :) Could I take:
/client/src/templates/Challenges/components/Test-Suite.js
/client/src/templates/Challenges/components/Tool-Panel.js ?

Sure I will ad you in!

Only a couple of files are not converted yet:
 /client/src/templates/Challenges/rechallenge/builders.js
 /client/src/templates/Challenges/rechallenge/throwers.js
 /client/src/templates/Challenges/rechallenge/transformers.js
 /client/src/components/search/WithInstantSearch.js
 /client/src/components/layouts/index.js
 /client/src/components/Intro/components/IntroDescription.js
 /client/src/components/Header/Header.test.js
 /client/src/client/frame-runner.js
 /client/src/client/workers/sass-compile.js
 /client/src/client/workers/test-evaluator.js

Feel free to take some of them!

@Sembauke  as I saw in MathJax documentation, Versions greater than 3.0 are compatible with typescript. in this case the best  way to migrate this is upgrading MathJax? or just disable the lint in this lines? do you have any suggestion?

@Sembauke can I discuss something about migrating files here? or have another way to do? it's better send a pull request and discuss there?

Opening a PR is the way to go so we can keep this issue clean 😁

Hi,
I am interested in taking those files :
 /client/src/components/layouts/index.js
 /client/src/components/Intro/components/IntroDescription.js
 /client/src/components/Header/Header.test.js

Is there a time limit for pushing the converted files ?

@Ismailtlem no, no time limits at the moment.  Since it's a migration and not adding features or fixing critical bugs, there's no great time pressure.  I went ahead and added you to those files.

Hi Guys! I would also like to help :) Could I take:
/client/src/templates/Challenges/components/Test-Suite.js
/client/src/templates/Challenges/components/Tool-Panel.js ?

Sure I will add you in!

Thank you, I will do it this weekend :)

Hi @Sembauke, @ojeytonwilliams,
If still unassigned, I can pick up /client/src/templates/Challenges/rechallenge/* upon confirmation.

Hi @Sembauke, @ojeytonwilliams,
If still unassigned, I can pick up /client/src/templates/Challenges/rechallenge/* upon confirmation.

Sure I will add you in!

Only 4 files left unassigned:
 /client/src/client/frame-runner.js
 /client/src/client/workers/sass-compile.js
 /client/src/client/workers/test-evaluator.js
 /client/src/components/search/WithInstantSearch.js

Feel free to assign yourself.

I'll take /client/src/components/search/WithInstantSearch.js.

I'll take /client/src/components/search/WithInstantSearch.js.

I added you

Hey everyone, I just wanted to make the warning a bit more visible. Any file that's not just used by the client will not be migrateable (yet), due to the lack of tooling mentioned in https://github.com/freeCodeCamp/freeCodeCamp/issues/42892.  If a file is directly used by gatsby-config, gatsby-node or by anything outside of the client directory, then it will be used without compilation and so cannot be migrated yet.
Sorry about the inconvenience, but those files will need to wait for the additional tooling.

@ojeytonwilliams, @Sembauke,

Hey everyone, I just wanted to make the warning a bit more visible. Any file that's not just used by the client will not be migrateable (yet), due to the lack of tooling mentioned in #42892. If a file is directly used by gatsby-config, gatsby-node or by anything outside of the client directory, then it will be used without compilation and so cannot be migrated yet.
Sorry about the inconvenience, but those files will need to wait for the additional tooling.

The files under  /client/src/templates/Challenges/rechallenge/* fall under the previous note.
 /client/src/templates/Challenges/rechallenge/builders.js
 /client/src/templates/Challenges/rechallenge/throwers.js
 /client/src/templates/Challenges/rechallenge/transformers.js

After migrating builders.js and running npm run test the following was thrown:
Error: Cannot find module '../rechallenge/builders'
Require stack:
- /Users/victorduarte/Documents/Projects/Forks/freeCodeCamp/client/src/templates/Challenges/utils/build.js
- /Users/victorduarte/Documents/Projects/Forks/freeCodeCamp/curriculum/test/test-challenges.js

The later (is outside client folder) ends up using from builders.js.
If any instructions are given on how to proceed will look into it. For the time being will stop migration of these.

Hello world! Want to help too but don't figure out very well 😅; it's about updating js files to ts and make it work right?

May i take ?
/client/src/client/frame-runner.js

Hey @victor-duarte,
The file that is is looking for builder.js  appears to be here:
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/templates/Challenges/utils/build.js#L2
As Oliver said in the freecodecamp chat this file can not yet be migrated because of that.
After a solution is implemented for #42892 you may be able to migrate this file.
I am not sure about the other two files you mentioned maybe @ojeytonwilliams can give you an answer on that.
Sorry for the inconvenience,
As you see there  are still some files migratable:
 /client/src/client/workers/sass-compile.js
 /client/src/client/workers/test-evaluator.js

Feel free to take them.

May i take ?
/client/src/client/frame-runner.js

Sure I will ad you in!

Hi Guys! I would also like to help :) Could I take:
/client/src/templates/Challenges/components/Test-Suite.js
/client/src/templates/Challenges/components/Tool-Panel.js ?

Sure I will add you in!

Thank you, I will do it this weekend :)

I have a delay - personal issues - I'm starting work on refactor this week, just letting you know. My apologies!

Thanks for keeping us posted, @kattmina.  Don't worry about the delay - take your time.

Can I pick up these two?
 /client/src/client/workers/sass-compile.js
 /client/src/client/workers/test-evaluator.js

Can I pick up these two?
 /client/src/client/workers/sass-compile.js
 /client/src/client/workers/test-evaluator.js

Yes I will ad you in!

Are there any files left for migration?

Are there any files left for migration?

Everything is currently assigned, @imrishabh18, but to keep making progress I suggest we wait until all the outstanding PRs are reviewed and merged.  Once that's done, enough time will have passed that we can remove the assignments and open them up again.
@Sembauke @ShaunSHamilton does that seem reasonable?

@ojeytonwilliams are there any files left unassigned and can be migrated to TS for JS?
Please let me know.

@ojeytonwilliams, Is there any component that needs to migrate from JS to TS or any component that has the priority to build we can discuss about it.

@mansijain980 @ashiskumar-1999 hey, thanks for the offer of help, but we're going to wait until the maintainers have had time to review and merge the existing PRs before we re-open assignments.

Hey @ojeytonwilliams, Thanks for the reply.
Until is there any other issue that you wants to be solved currently?

Sure, we use "help wanted" and "first timers only" labels to highlight good issues for contributors to work on.  You can see them here.  Also, the contribution docs have a lot of useful info about how to get started.

Hi,
Is typescript migration of those files assigned to anyone ?
/client/src/templates/Introduction/components/Block.js  /client/src/templates/Introduction/components/CertChallenge.js  /client/src/templates/Introduction/components/CertificationCard.js  /client/src/templates/Introduction/components/Challenges.js  /client/src/templates/Introduction/components/ClaimCertSteps.js  /client/src/templates/Introduction/components/SuperBlockIntro.js
If not, i can take them

Created the PR https://github.com/freeCodeCamp/freeCodeCamp/pull/43262 with the migrated files.
The PR is marked as has-translation. I haven't made changes related to i18n, but I did pulled the latest changes from upstream with rebase. Could anyone help me understand what is the issue with the PR?

@vishwasnavadak, thanks for letting us know. Please see the comment on your PR.

@Ismailtlem nope, they're all yours. I've edited you in.  Thanks!

Hi! I just added a PR (#43490) migrating ActionRow.js. My first open source PR ever, so please let me know if there's anything I can improve!

Hi, is  /client/src/templates/Introduction/components/Challenges.js assigned to anyone?
If not, I'd like to work on it. Thanks

Can I pick up these files?
 /client/src/templates/Challenges/classic/DesktopLayout.js
 /client/src/templates/Challenges/classic/EditorTabs.js
 /client/src/templates/Challenges/classic/MobileLayout.js
 /client/src/templates/Challenges/classic/MultifileEditor.js

I put you down for that file @shubhangi013
There's two open PR's for refactoring the DesktopLayout @meronokbay, we just forgot to mark it on here. I put you down for the other three

I can take those as well :
 /client/src/templates/Introduction/components/SuperBlockIntro.js
 /client/src/templates/Introduction/components/Block.js

If still not assigned to anyone

Sure @Ismailtlem, thanks for taking them on.

Hey @ojeytonwilliams, Can I take these for the typescript migration?
/client/src/components/landing/

Hey @ashiskumar-1999,
These seem to be taken already, sorry!

@ojeytonwilliams
Okay, you can mention the file names that needs the migration and not taken away by anyone.

@ashiskumar-1999  sure here are some:
 /client/src/components/SolutionViewer/ProjectModal.js
 /client/src/components/SolutionViewer/SolutionViewer.js

Thanks @Sembauke , I am taking it.

Hey @Sembauke, I have migrated the .js file to the .tsx file. I just want you to cross-check the code to find any ambiguities. Can I share the code sample here?

Hello @ashiskumar-1999 i believe you can create a PR, we’ll review it for ambiguities and request changes.

Hello.
What are the rules to select the files that are not migrate yet. I started working from top of the components and some of them it seems that are already taken.

@RobertoMSousa Hello there. It does not appear there are any files available to migrate at the moment. That is, all files have been assigned to those who previously requested them.


Capacitor support?

Describe the bug
I wanted to check, and have it officially stated somewhere, if this plugin is supported and works on Capacitor (iOS and Android)?
It would be a good idea to update the readme to state this if it does in fact support Capacitor.
Are there any specific requirements, or steps needed, to make sure that the plugin is setup and working correctly on Capacitor?

Will test and try. Could be worth adding here: https://github.com/riderx/awesome-capacitor

Yes @dylanvdmerwe. You can try it with the latest beta version. Not an issue.
Cheers and have a nice day :)
Chris
Neutrinos


Change Timed Message Deletes to defer Statements

Describe the bug
When bot is restarted when signin is active, it will leave message and not delete it.
To Reproduce
Start signin
Restart Bot
Signin is still visible but doesn't work
Expected behavior
When bot is killed it should close out by deleting all those pending message deletes
Logs and Evidence
N/A
Additional context
N/A

Based on testing defer statement will only run when the goroutine closes, not when the program closes. For this to be done, close channels will need to be pushed to all of these commands. For now closing this bug as there is not a good solutions without reworking OBIII entriely


[Bug]: Exported Swift code doesn't compile

What happened?
Hi all 👋
I am investigating if we can use Token Studio at the current company in the iOS project. I was playing with code generation for Swift and unfortunately I wasn't able to get the output in Swift that compiles.
Reproduction

Open https://configurator.tokens.studio/
Don't upload tokens -  use default studio.token.json that are provided as an example
Add a new platform with:

transforms: ios-swift
formats: ios-swift/class.swift

Click "Run Style Dictionary"

Here's the link to reproduce the issue.
Expected output
Output in Swift that compiles. Right now the generated code contains many invalid lines of code like:
public class  {
    public static let colorsBlue100 = #ebf8ff
    public static let dimensionXl = 4px * 2 * 2 * 2 * 2
    public static let fontWeightsBodyBold = Bold
    public static let exampleShadow = [object Object]
    public static let fontFamiliesHeading = Inter
}

Version
0.9.1

Related issue: https://github.com/tokens-studio/sd-transforms/issues/59
We currently by default apply style-dictionary transforms on the transformGroup that are Web specific. You see this in the hex value, font family value, they would work in CSS but not other platforms.
We basically need more input from iOS developers about how these values should work in iOS context, because I am not an iOS developer myself :). I would be happy to add transforms that work for iOS/mobile context, could you elaborate on how values work in iOS for:

typography
border
shadow
color
dimensions

As for the [object Object] and the math expression not getting resolved, not sure why this happens with your tokens, would need to see a reproduction with some tokens and a style-dictionary config / build file.


[ENH] Improve error messages in test_object_tags test

This PR improves error messages in the test_object_tags interface contract test, adding the source class and specific reasons for failures.
Ports https://github.com/sktime/sktime/pull/4014

Codecov Report

Merging #90 (5725435) into main (7f9cb98) will decrease coverage by 0.07%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #90      +/-   ##
==========================================
- Coverage   59.12%   59.05%   -0.08%
==========================================
  Files          22       22
  Lines        1397     1397
==========================================
- Hits          826      825       -1
- Misses        571      572       +1

Impacted Files
Coverage Δ

skbase/testing/test_all_objects.py
79.25% <0.00%> (ø)

skbase/lookup/_lookup.py
43.47% <0.00%> (-0.37%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


issue with handling of warning/error report level

I've noticed what looks like an issue, but I'm not exactly sure if the issue is in clang-tidy-sarif or in sarif-fmt or in my understanding how they should be propertly used.
If I run the example from the test case, clang-tidy '-checks=cert-*' cpp.cpp | clang-tidy-sarif, in SARIF file I get 3 "results" with level: "warning" reported.  So far so good.
Now I tell clang-tidy to report one of the warnings as an error: clang-tidy '-checks=cert-*' '-warnings-as-errors=clang*' cpp.cpp | clang-tidy-sarif. This gets me two "results" in SARIF with level: "warning" and one result with level: "error". This looks reasonable. But if I run that SARIF through sarif-fmt, it still prints 3 warnings, not 2 warnings an 1 error.
I have read the long explanation about level handling, and it seems to indicate that clang-tidy-sarif needs to also fill in kind and maybe rules fields, for sarif-fmt to show something as an error. Is my understanding correct? Or should this be fixed in some other way?

hmmm, reading through the specification again (https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/sarif-v2.1.0-csprd01.html#_Toc10541086)
it seems the implementation in sarif-fmt is just flat out missing the first stanza:

A result object MAY contain a property named level whose value is one of a fixed set of strings that specify the severity level of the result.
If present, the level property SHALL have one of the following values, with the specified meanings:
·         "warning": The rule specified by ruleId was evaluated and a problem was found.
·         "error": The rule specified by ruleId was evaluated and a serious problem was found.
·         "note": The rule specified by ruleId was evaluated and a minor problem or an opportunity to improve the code was found.
·         "none": The concept of “severity” does not apply to this result because the kind property (§3.27.9) has a value other than "fail".

I'm not sure why, since that seems like a very weird / obvious thing to skip. But seems like a bug.

Reading "3.27.9 kind property" section, looks like we should also set kind: "fail" for every result:

A result object MAY contain a property named kind whose value is one of a fixed set of strings that specify the nature of the result.

If present, the kind property SHALL have one of the following values, with the specified meanings:
...
"fail": The result represents a problem whose severity is specified by the level property (§3.27.10).

hmm, ah yeah maybe I had it right the first time around, I think what's missing is the sentence immediately after:

If kind is absent, it SHALL default to "fail".

It's also a bit late so maybe if I read with a fresh pair of eyes it'll be more clear what's going on, but that seems suspicious.


feat: Implement SemScore metric

Implementation of SemScore metric: https://arxiv.org/pdf/2401.17072.pdf
Renaming the train optional dependency group to pipelines since those dependencies are used across all the pipelines (training, evaluation).

Part of #30

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (2a26151) 97.87% compared to head (1e2ce17) 98.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #38      +/-   ##
==========================================
+ Coverage   97.87%   98.00%   +0.12%
==========================================
  Files           6        6
  Lines         235      250      +15
==========================================
+ Hits          230      245      +15
  Misses          5        5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


How do I omit attributes in callbacks

Tried all the following, nothing worked:
func (t *TwitterBox) BeforeUpdate(db *gorm.DB) (err error) {
  db.Omit("oauth_token", "oauth_secret")
  return
}

func (t *TwitterBox) BeforeUpdate(scope *gorm.Scope) (err error) {
  scope.Search.Omit("oauth_token", "oauth_secret")
  return
}

func (t *TwitterBox) BeforeUpdate(scope *gorm.Scope) (err error) {
  attrs, _ := scope.InstanceGet("gorm:update_interface")
  attrsMap, _ := attrs.(map[string]interface{})
  delete(attrsMap, "oauth_token")
  delete(attrsMap, "oauth_secret")
  scope.InstanceSet("gorm:update_interface", attrsMap)
  return
}

Any help appreciated.

It won't works as the callback will be run after get those fields need to be update.
But I think scopes would be helpful for you.
https://github.com/jinzhu/gorm/blob/master/main.go#L203

Yeah I just ended up having to add Omit anyplace I did an Update, but I can see that scopes would be a more elegant way to accomplish that. Thanks!


Update NearFutureElectrical-DecayingRTGs for 1.1, primary moved to SpaceDock

Not sure why the build failed. JSONLint says the syntax is valid...

Same issue as https://github.com/KSP-CKAN/NetKAN/pull/3718

Because of how $vref works there isn't an elegant solution for this case. You'll need to hardcode ksp_version.

Tests fine locally, merging with my thanks.


No coveralls data on recent builds

Coveralls data is pushed but reported as empty at Coveralls: https://coveralls.io/jobs/42985161
started seeing this in #109, but also happens for #110, so it looks like an upstream problem, maybe due to cpp-coveralls which released a new version: https://github.com/eddyxu/cpp-coveralls
Otherwise it looks like we sent at least some data:
+ coveralls-merge keyvi.cov_report python.cov_report
Reporting on files:
keyvi/include/keyvi/compression/predictive_compression.h
keyvi/include/keyvi/dictionary/fsa/internal/int_value_store.h
keyvi/include/keyvi/util/vint.h
keyvi/include/keyvi/util/os_utils.h
keyvi/include/keyvi/dictionary/fsa/internal/unpacked_state_stack.h
keyvi/include/keyvi/index/internal/merge_job.h
keyvi/include/keyvi/dictionary/fsa/internal/int_inner_weights_value_store.h
keyvi/include/keyvi/dictionary/dictionary_compiler.h
keyvi/include/keyvi/stringdistance/needleman_wunsch.h
keyvi/include/keyvi/index/internal/merge_policy.h
keyvi/include/keyvi/dictionary/sort/in_memory_sorter.h
keyvi/include/keyvi/dictionary/fsa/generator_adapter.h
keyvi/include/keyvi/dictionary/fsa/internal/value_store_persistence.h
keyvi/include/keyvi/dictionary/fsa/internal/ivalue_store.h
keyvi/include/keyvi/dictionary/match_iterator.h
keyvi/include/keyvi/dictionary/sort/tpie_sorter.h

A newer cpp-coveralls was already in use for a build that worked.
Other users report the issue to be on the coveralls backend: https://github.com/lemurheavy/coveralls-public/issues/1230

Coverage data is back, so it looks like the problem was on the coveralls backend, closing.


Doesn't work for EnergyPlusv 8+ or python 3.6.1

Hi aaron, due you have source code for higher versions of python ? Also it will be helpful if you provide some documentation of the functionalities.

No. This project was really a one-off side project that I don't maintain. I
put the source up in case it helped anyone else. But there shouldn't be
much for you to change to get it working for 3.6. The much larger issue
would be newer EnergyPlus versions.
On Thu, Jun 15, 2017 at 4:06 AM gSasikala<EMAIL_ADDRESS>wrote:

Hi aaron, due you have source code for higher versions of python ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/aarongarrett/idf2xml/issues/1, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABcX3Q2EZATvPUCWkUenoN0Gt1ih-eS_ks5sEOXxgaJpZM4N63ZC
.

--
Aaron Garrett, Ph.D.
Assistant Professor
Computer Science
Wofford College
429 North Church Street
Spartanburg, SC 29303
<EMAIL_ADDRESS>(864) 597-4529


update main example

Codecov Report

Merging #19 (460675d) into main (cfb1df8) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #19   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines           58        58
  Branches         2         2
=========================================
  Hits            58        58

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cfb1df8...460675d. Read the comment docs.


Improve logging API

remove ServiceContexts - they are unneccessary and add complexity.
add a context.logger(CoreHandler) method. logs with handler address, class and node.
add a context.logger(Class) method. logs with class and node.
add a new constructor for RemoteLogger and ConsoleLogger to match changes
all local exceptions must be handled and propagated to a console or remote logger.

if a CoreContext is available.

Changes allows logging without adding or requiring a service context. This enables logging from anywhere in the application. Improves logging traceability.

Fixed.
Ignored CoreHandler for now, considered to retrieve the handlers address for Address annotation.  This would break compatibility between the programmatic Protocol API and the annotated router API.


Update deps

Review request: :pager: @hueniverse @arb @Marsup

Looks good.

Thanks for the reviews.

Label, assignment...


Add new reputation validator: GITHUB_ORGANIZATION_COMMITS

Can a Github organization be part of a group?

Can a Github organization be part of a group? @cedoor

I think it was meant as the commit number of the user belonging to an organization.

Can a Github organization be part of a group? @cedoor

I think it was meant as the commit number of the user belonging to an organization.

Makes sense now, thank you!


security.provider-policy COMPOSITE will not authenticate against below first Authentication provider

Environment Details

Helidon Version: 2.5.0
Helidon MP
JDK version: 17.0.1
OS: MacOS Monterey 12.1
Docker version (if applicable):

Problem Description
When using composite security.provider-policy, only the first authentication provide will be used
Steps to reproduce
Please use the following zip
helidon-quickstart-mp.zip

Set environment variable SERVER_EXTERNAL_MP_CONFIG to point to  the mp-config.yaml in the zip file(absolute path recommended)
run the helidon-quickstart-mp.jar in the target folder in the zip file
Go to http://localhost:8000/greeton a browser, it should prompt you to enter a username and password
Enter the user name password for authenticator-2 in the mp-config.yaml
See Authentication failed and ask you for the username password again
Enter the user name password for authenticator-1 in the mp-config.yaml
See {"message":"Hello World!"} on your browser

I am using 2 http-basic-auth provider to reproduce this issue in a simpler way, but in reality, mixing for example http-basic-auth and oidc provider can see the same behavior as well.

The flags work as follows:
SUFFICIENT
- if an authentication provider returns success, finish authentication
- if an authentication provider returns abstain, continue to next
- if an authentication provider returns failure, finish authentication and fail
Because the first provider cannot authenticate daniel1, it returns failure and hence the chain fails.
This can be simply fixed by making the provider optional - optional provider returns abstain instead of failure in case of failure.
The following configuration will work as expected (keep everything else as is):
  providers:
    - name: "authenticator-1"
      http-basic-auth:
        optional: true

Closing as this works as deisgned and I have provided a response that resolves the question and the application works as expected after the fix (tried on reproducer)