You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Add form lifecycle event bridge for in-app forms (#334) (#338)
* feat: Add form lifecycle event bridge for in-app forms (#334)
* fix: batch dependabot security updates for transitive deps (#335)
fix: batch security updates for transitive dependencies
Consolidates 6 dependabot security PRs into a single lockfile update:
- handlebars 4.7.8→4.7.9 (8 security advisories)
- picomatch 2.3.1→2.3.2 (CVE-2026-33671, CVE-2026-33672)
- fast-xml-parser 4.5.3→4.5.5 (prototype pollution, entity expansion)
- flatted 3.3.3→3.4.2 (CWE-1321)
- tar 7.5.7→7.5.11 (symlink escape via drive-relative paths)
- basic-ftp 5.1.0→5.2.0 (skip invalid filenames)
All are transitive dependencies (lockfile-only, no source changes).
Closes#331, closes#330, closes#328, closes#325, closes#322, closes#316
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat: add form lifecycle event bridge for in-app forms
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: configure native SDK deps for form lifecycle hooks testing
Android SDK: 0a48d79980dc3f276422cf9c42ff145eb39f364a
iOS SDK branch: feat/form-lifecycle-hooks
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: unregister native lifecycle handler during re-registration
When registerFormLifecycleHandler is called again without explicit
cleanup, the re-registration path now tears down the native handler
before re-registering, matching the cleanup function's behavior.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: clear native mock between lifecycle tests to match re-registration behavior
The unregister test was failing because prior tests left the native
unregisterFormLifecycleHandler mock dirty — the re-registration path
now calls native unregister, so the mock accumulates calls across tests.
Also added assertion that re-registration calls native unregister.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(forms): validate required bridge message fields (MAGE-484) (#340)
* fix(forms): throw on missing required fields in bridge message parsing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: correct JSDoc and add integration tests for lifecycle event parsing
Fix JSDoc that said "logs a warning" when the code actually uses console.error.
Add integration tests to index.test.tsx verifying that parseFormLifecycleEvent
is correctly wired into the native event listener (invalid events filtered,
valid events forwarded, deepLinkUrl defaults).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(forms): validate deepLinkUrl as required on CTA events, normalize log level to warn
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(forms): allow empty buttonLabel on CTA events
A CTA button with no text label is still a valid click event. Only
formId and formName require non-empty strings.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs(forms): remove internal implementation details from public API docs
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* fix(forms): default buttonLabel to empty string instead of rejecting
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments