Commit Graph

80 Commits

Author SHA1 Message Date
Shaun Hamilton
35b18829d1 fix(curriculum): use mediaText for CSSHelp (#42393)
* fix(curriculum): use mediaText in CSSHelp

prevent selection of style elements with class or media attributes
this should avoid picking up some browser extensions
2021-06-07 23:33:58 +02:00
Shaun Hamilton
24be225fa4 feat(client): refactor propTypes to TS types (#42278) 2021-06-03 14:23:46 +03:00
Oliver Eyton-Williams
802273cf8a refactor: remove sinon (#42337) 2021-06-02 21:03:05 +05:30
Oliver Eyton-Williams
3b115a1876 fix(client): use @freecodecamp/strip-comments for js comments (#42254) 2021-06-01 01:37:45 +02:00
Nicholas Carrigan (he/him)
00b76c0389 fix: link import bug (#42266)
Fix a small bug in the CSS helper tool.
2021-05-27 08:46:23 +02:00
Shaun Hamilton
d5cc9ba259 feat(dev): add css helper function (#42148)
* feat(dev): add css helper function

* add media declaration methods

* use a selector to grab styles

* add CSSHelp class with annoying TS warnings (no-verify)

* replace indexing with getPropertyValue

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>

* connect CSSHelp to helpers, clean up types

* fix: return extended object, not modify prototype

* fix: unnecessary assertion error

* add tests with fixtures

* add afterAll document clean-up

* 'fix' tests

* undo jest transform config

* remove erroneous comments and logs

* reafactor: use existing types and narrow types

* refactor test descriptions

* rename files to appease Mrugesh 😄

* remove probably unnecessary document clean

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-05-25 07:34:55 -07:00
Oliver Eyton-Williams
66dae77fc5 feat: use TypeScript in the client (#42124) 2021-05-18 00:23:41 +05:30
Oliver Eyton-Williams
854fee4779 Revert "fix(client): use strip-comments library for js comments removal (#41960)" (#42103)
This reverts commit b16fadb436.
2021-05-11 17:12:48 +00:00
Mrugesh Mohapatra
83943de719 chore: rollback CSRF token generation (#42082)
This reverts commit e1c00138a9.
2021-05-11 00:27:08 +05:30
Oliver Eyton-Williams
e1c00138a9 fix: generate csrf tokens on server (#41968)
Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com>
2021-05-10 21:40:42 +05:30
renovate[bot]
21dd80c47a chore(deps): update dependency prettier to v2.3.0 (#42074)
* chore(deps): update dependency prettier to v2.3.0

* chore: apply formating per prettier

* fix: correctly disable import/no-unresolved

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Mrugesh Mohapatra <hi@mrugesh.dev>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-05-10 08:48:49 -07:00
Lasse Jørgensen
b16fadb436 fix(client): use strip-comments library for js comments removal (#41960) 2021-05-10 11:03:04 +02:00
Oliver Eyton-Williams
e1f673e685 fix: prevent excessive locale bundling (#41979)
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
2021-05-08 13:18:37 +05:30
Nicholas Carrigan
e46e80e08f feat(client): add chinese traditional
Add chinese traditional to the all-langs validation and necessary
client build configs.
2021-05-05 21:06:54 +05:30
Ahmad Abdolsaheb
27c8d564e4 fix(client): replace Stripe with PayPal (#41924)
* feat: remove stripe payment option from client

* feat: remove stripe completely

* fix: remove last Stripe remnants

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-05-03 11:45:23 +03:00
Oliver Eyton-Williams
2eac236e39 fix: remove JS comments revisited (#41952)
* fix: restrict removeJSComments to test-evaluator

To prevent @babel from being included everywhere, this only calls
removeJSComments inside the test-evaluator

* test: add removeJSComments test
2021-04-30 22:30:06 +03:00
Mrugesh Mohapatra
341fe76f0f chore: roll back CSRF changes for the weekend
This reverts commit 00193858a0.
2021-04-30 23:57:28 +05:30
Oliver Eyton-Williams
00193858a0 fix: generate csrf tokens on server not client (#41908)
Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>
2021-04-30 09:42:26 +03:00
Oliver Eyton-Williams
9be2fb9a10 fix: use lodash-es in the client (#41931) 2021-04-28 16:11:20 -05:00
Evgeny Klimenchenko
db369fbed1 fix(client): remove JS comments from user code for tests (#41873)
* Removes comments in js challanges by default

* fix local-scope-and-functions test regex

* fix all languages

* revert language changes

* removed unnecessary removeJSComments from challenges

* fix challanges in other languages

* removed removeJSComments from all challanges
2021-04-28 10:18:54 -05:00
Tom
e79e212912 fix(curriculum): helper function regex s flag causing error (#41910) 2021-04-23 22:59:33 +02:00
Shaun Hamilton
d3f59e6d5d fix(dev): rename superBlock with v7 to certSlug (#41738)
* fix(dev): rename superBlock with v7 to slug

* improve name slug -> certSlug

* superBlockTitle -> superBlock

* correct teeny, tiny mistake

* fix: correct slug to certSlug in certLocation

* refactor currentCerts

* rename showCert cert -> certSlug and various
2021-04-23 22:29:17 +03:00
Ahmad Abdolsaheb
d5d786049e feat(api): stripe checkout integration (#41666)
* feat: add api stripe checkout integration

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-04-02 15:33:34 +09:00
Mrugesh Mohapatra
ad9b1f89d8 fix(api, client): update Gatsby, webpack & related things (#41452)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-03-25 12:13:43 -07:00
Kristofer Koishigawa
1e9dc8cea5 fix: remove algolia indices and urls from translations (#41043) 2021-02-11 00:11:51 +05:30
Oliver Eyton-Williams
fffc0e51ec chore(client): refactor & organise config (#40875) 2021-02-03 15:22:07 +05:30
Tom
14ca6beb0a fix: naming scheme for messages in translation files (#40642)
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
2021-01-31 12:15:38 +05:30
Tom
072a7ce6c6 feat(i18n): translate server messages (#40626) 2021-01-31 12:15:38 +05:30
Tom
3978c6be28 feat: i18n user interface (#40306)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-01-31 12:15:32 +05:30
Erik Krogh Kristensen
11dfe9274f fix catastrophic backtracking when removing HTML comments (#40223)
* fix catastrophic backtracking when removing HTML comments

The regexp `/<!--(.|\s)*?-->/g` can experience catastrophic backtracking while matching a string like `<!--                                           -- >` (notice how it does not end with `-->`).    

[You can see the catastrophic backtracking in action here](https://regex101.com/r/2jvwFi/1/debugger). 

This is because both `.` and `\s` matches the space character, and there are therefore a large number of possible ways for `(.|\s)*` to match a long sequence of spaces.  
The regexp evaluator is greedy, and the problem therefore only exists when the string does not match the regexp. 

The fix is simply to remove the ambiguity such that there is only one possible way for the regexp to match a sequence of white-space.

* Update client/src/utils/curriculum-helpers.js

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-11-12 08:20:34 -08:00
Ahmad Abdolsaheb
3106fe804f fix(client): unify client donations methods (#39562)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-10-14 15:53:26 +05:30
Hassaan Pasha
80438cac3e feat(client, learn): add helper functions for common validation operations (#38605)
Co-authored-by: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
2020-09-17 19:38:01 +05:30
Oliver Eyton-Williams
c772382d59 fix: remove remnants of servicebot
None of the code was still in use.
2020-09-04 00:14:24 +05:30
rdm100
885538d9e1 fix: updated and consolidated quotes (#39069)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-06-15 18:42:27 +05:30
Ahmad Abdolsaheb
7db718141b feat: add paypal script loader for one time and subscription (#38553)
* fix: add one-time payment sdk script loader

* fix: remove paypal credit
2020-04-21 00:46:34 +05:30
Oliver Eyton-Williams
ffcf8294f1 fix: fetch CSRF cookie and set headers lazily (#38452)
* fix: fetch csrf cookie and set headers lazily

* fix: check cookie each call to keep it up to date

Previously the cookie was checked once and never updated until the
client was reloaded.  Stale or absent cookies would generate incorrect
tokens or no tokens, respectively, causing CSRF errors.
2020-03-27 16:41:33 +05:30
Oliver Eyton-Williams
35751bacf0 chore: remove rollbar from client and .env 2020-03-26 16:51:17 +05:30
Jacob Robinson
49efb02528 fix(client):remove hyperlink from flash message (#38429)
* fix(client):remove hyperlink from flash message

* Use full URL

Co-Authored-By: mrugesh <1884376+raisedadead@users.noreply.github.com>

Co-authored-by: mrugesh <1884376+raisedadead@users.noreply.github.com>
2020-03-24 17:31:48 +01:00
Oliver Eyton-Williams
23b899f50f fix(csrf): remove all csrf bypass 2020-03-17 23:28:23 +05:30
Ahmad Abdolsaheb
6c6eadfbe4 feat(donate): PayPal integration 2020-03-16 18:35:51 +05:30
mrugesh
059e826465 fix: remove all year-end gift implementation (#38030) 2020-01-09 02:37:50 +05:30
Kristofer Koishigawa
849e78d72e feat: enable MathJax for Project Euler challenges (#38017)
* feat: enable MathJax for Project Euler challenges

Enables MathJax to render mathematical formulae for some Project Euler problems

* refactor: DRY out script insertion

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-01-07 14:14:12 +03:00
Mrugesh Mohapatra
663f726c4e fix(donate): allow unauthenticated donations for year-end 2019-12-18 04:21:57 +05:30
Oliver Eyton-Williams
d40be9cbf2 fix: use util.inspect for more reliable logging (#37880)
The tests are probably overkill, but this way we will know if
util.inspect changes dramatically.
2019-12-06 08:37:10 -08:00
Mrugesh Mohapatra
aeec1bb9e6 feat(donate): integrate servicebot 2019-11-19 23:09:53 +05:30
Mrugesh Mohapatra
ef0a801c90 feat(donate): remove unauthenticated routes 2019-11-19 22:28:05 +05:30
Kristofer Koishigawa
77b27d79f6 fix: conditionally load MathJax (#37360)
* fix: Removed MathJax CDN from header and set it up to download whenever a user goes to a Rosetta Code challenge

* Reworked slightly so that MathJax CDN script is only rendered once

* Simplified further

* Resolved conflicts and updated MathJax fallback to work like the one on donate.js

* Escaped backticks in scriptLoaders.js

* refactor: remove reliance on state
2019-10-30 15:46:39 +03:00
Mrugesh Mohapatra
368aa688fa fix(client): call donate api withCredentials 2019-10-20 16:29:56 +05:30
Ahmad Abdolsaheb
78b6fd1adf fix: load stripe conditionally (#37365) 2019-10-17 18:21:01 +05:30
Oliver Eyton-Williams
4896e45eea fix: remove Gatsby proxy (#37364)
Direct ajax calls to the server directly, rather than a proxy to reduce
redirects while still allowing the server to be used in development.
2019-10-17 18:20:02 +05:30