feat: add Vue 3 and Nuxt integration packages#586
Conversation
|
|
@Jorgagu is attempting to deploy a commit to the ory Team on Vercel. A member of the Team first needs to authorize it. |
c71b462 to
6e9245b
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #586 +/- ##
===========================================
+ Coverage 42.43% 60.64% +18.21%
===========================================
Files 136 182 +46
Lines 2008 3679 +1671
Branches 288 610 +322
===========================================
+ Hits 852 2231 +1379
- Misses 1149 1323 +174
- Partials 7 125 +118
🚀 New features to boost your workflow:
|
|
Hi @jonas-jonas @aeneasr @vinckr, this PR is ready for review 🎉 👋 @Jannik-Hm @Saganic, could you please test this as well and let me know if I missed anything during my own testing? |
b1f6174 to
c1cc2f7
Compare
|
Hey @Jorgagu to resolve the format CI, can you run 🐝 |
|
@vinckr thanks! I ran |
|
Cool stuff man! Given the massive size of the PR I'm not sure how quickly we can review this. We also need to figure out a way to add this to our e2e test suite (currently not open sourced) to ensure the advertised functionality matches the requirements. We also need to figure out who will be responsible on the team for maintaining those SDKs going forward (e.g. when we introduce new features). May I ask which approach you took to transfer the react elements to vue and nuxt? It will help us speed up review. |
1723f6e to
74080ae
Compare
74080ae to
741b30a
Compare
Port @ory/elements-vue, @ory/nuxt, and the nuxt-app example onto the pnpm workspace. Reference @ory/client-fetch 1.22.37 like the sibling packages, use workspace protocol for internal deps, and wire nx release groups, eslint vue support, and api-extractor reports for the new packages.
Port the component enhancement pass onto the pnpm workspace: - replace the per-icon modules with a unified Icon component and extract the icon typing into ui/types for lint-safe type imports - add ProviderLogo with real OIDC provider logos and a provider-logos entry - add settings toasts through vue-sonner (DefaultToast, showToast) - extract SSO rendering into OryFormSsoForm and DefaultSsoButtonContainer - handle flows without visible authentication methods in OryForm - support the OAuth2 consent flow in the default card header - keep storybook tooling at the workspace root per repo convention, adding the vue3 framework packages at the shared storybook version - regenerate the elements-vue API reports
Add a Storybook configuration for the Vue package mirroring the elements-react setup: @storybook/vue3-vite framework, addon set (essentials, interactions, a11y, storybook-addon-mock), Inter font assets, and vite aliases resolving @ory/elements-vue to the package source and $snapshots to the shared elements-react stub responses. Port the full story tree (login, registration, recovery, verification, settings, consent, error, customized) and shared story utilities. Adaptations against the original branch content: - import LoginFlowActiveEnum from the @ory/client-fetch package root instead of a deep src/models path not exported by 1.22.37 - align captcha, organization, and refresh code stories with the current stub-responses layout (interactive/hidden/client-error captcha variants, organization-oidc/organization-saml splits, renamed refresh code fixtures) - load @tailwindcss/vite through a dynamic import because the package is ESM-only and Storybook evaluates main.ts as CommonJS - add an eslint override for packages/elements-vue/stories matching the elements-react stories override
741b30a to
1bf47b5
Compare
|
Important Review skippedToo many files! This PR contains 367 files, which is 267 over the limit of 100. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (6)
📒 Files selected for processing (367)
You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This PR adds Vue 3 and Nuxt integration packages for Ory Elements, bringing feature parity with the existing React/Next.js implementation.
New Packages
@ory/elements-vue- Vue 3 component library for Ory authentication UIs<script setup>syntaxSessionProvider@ory/nuxt- Nuxt 3/4 integration moduleuseOryLogin,useOryRegistration,useOryRecovery,useOryVerification,useOrySettings,useOrySession,useOryLogout,useOryFlowErrorNUXT_PUBLIC_ORY_SDK_URL)Example Application
Complete Nuxt example app demonstrating all authentication flows at
examples/nuxt-app.Related Issue or Design Document
Fixes #581
Checklist
If this pull request addresses a security vulnerability,
I confirm that I got approval (please contact security@ory.sh) from the maintainers to push the changes.
Further comments
The Vue/Nuxt packages follow the same architecture patterns as the React/Next.js implementation:
provide/inject)All authentication methods are supported including password, passwordless (code), social login (OIDC), passkeys, WebAuthn, TOTP, and recovery codes.
This fixes the issue #581