* added recaptcha v3
* update recaptcha package and make visible on forms
* linting
* make recaptcha optional for dynamic-form
* remove comments
* remove comments
* remove recaptcha provider since it wasn't used
* make recaptcha required if enabled and use getValue to retrieve token
* add types for react-google-recaptcha
* fix linting
* fix linting
* fix linting
* fix linting
* refactor(recaptcha): validate in form actions and separate parse from validate
- Add validateRecaptchaToken() to validate reCAPTCHA in form actions and
return formErrors so Conform displays them (contact, review, register).
- Add getRecaptchaFromForm() to parse site key and token from FormData.
- Make validateRecaptchaToken() a pure function (siteKey, token, message)
so validation is separate from form parsing and easier to test/reuse.
- Contact, review, and register actions: parse via getRecaptchaFromForm(),
then validate via validateRecaptchaToken(), and pass token to mutations.
Made-with: Cursor
* fix linting
* remove client side logic and error handling
* rename validat function for recaptha token to assertRecaptchaTokenPresent
* remove unused recaptcha settings in graphql
* fix linting
* remove client side logic and validation for recaptcha
* remove unused properties from RecaptchaSettings interface
* remove unnecessary DynamicFormInner wrapper component
Made-with: Cursor
* remove unused failedLoginLockoutDurationSeconds and isEnabledOnCheckout from getReCaptchaSettings
Made-with: Cursor
* add changeset
* chore: add tests for recaptcha
---------
Co-authored-by: Jorge Moya <jorge.moya@bigcommerce.com>
Summary
Merges
canaryintointegrations/makeswiftto bring the Makeswift integration up to date.What came from canary
~/lib/recaptchahelpers andgetRecaptchaSiteKey().canary) bumpConflict resolutions
core/app/[locale]/(default)/product/[slug]/page.tsx— kept both makeswift imports (getMakeswiftPageMetadata,ProductDetailfrom~/lib/makeswift/components/product-detail) and canary's newgetRecaptchaSiteKeyimport.core/app/[locale]/(default)/webpages/[id]/contact/page.tsx— kept bothgetMakeswiftPageMetadataand the newgetRecaptchaSiteKeyimport.pnpm-lock.yaml— accepted canary's version then regenerated withpnpm install --no-frozen-lockfile.Changeset cleanup
Removed
.changeset/lazy-rivers-stare.md(targets@bigcommerce/catalyst-core, not@bigcommerce/catalyst-makeswift).