@happyvertical/smrt-users 0.55.8 → 0.55.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +42 -0
  2. package/agents/permissions.md +3 -0
  3. package/dist/chunks/{TerminalAuthService-CNYOmaaa.js → TerminalAuthService-C8l5BIWm.js} +521 -517
  4. package/dist/chunks/TerminalAuthService-C8l5BIWm.js.map +1 -0
  5. package/dist/collections/RolePermissionCollection.d.ts.map +1 -1
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +199 -105
  9. package/dist/index.js.map +1 -1
  10. package/dist/manifest.json +142 -1
  11. package/dist/recipes.d.ts +97 -0
  12. package/dist/recipes.d.ts.map +1 -0
  13. package/dist/smrt-knowledge.json +146 -5
  14. package/dist/svelte/auth.d.ts +69 -0
  15. package/dist/svelte/auth.d.ts.map +1 -0
  16. package/dist/svelte/auth.js +43 -0
  17. package/dist/svelte/components/AccountSecurityPanel.svelte +42 -0
  18. package/dist/svelte/components/AccountSecurityPanel.svelte.d.ts +14 -0
  19. package/dist/svelte/components/AccountSecurityPanel.svelte.d.ts.map +1 -0
  20. package/dist/svelte/components/MagicLinkForm.svelte +43 -0
  21. package/dist/svelte/components/MagicLinkForm.svelte.d.ts +14 -0
  22. package/dist/svelte/components/MagicLinkForm.svelte.d.ts.map +1 -0
  23. package/dist/svelte/components/OidcProviderButtons.svelte +28 -0
  24. package/dist/svelte/components/OidcProviderButtons.svelte.d.ts +12 -0
  25. package/dist/svelte/components/OidcProviderButtons.svelte.d.ts.map +1 -0
  26. package/dist/svelte/components/PasskeySignInButton.svelte +28 -0
  27. package/dist/svelte/components/PasskeySignInButton.svelte.d.ts +12 -0
  28. package/dist/svelte/components/PasskeySignInButton.svelte.d.ts.map +1 -0
  29. package/dist/svelte/components/SignInForm.svelte +43 -0
  30. package/dist/svelte/components/SignInForm.svelte.d.ts +14 -0
  31. package/dist/svelte/components/SignInForm.svelte.d.ts.map +1 -0
  32. package/dist/svelte/components/SignUpForm.svelte +38 -0
  33. package/dist/svelte/components/SignUpForm.svelte.d.ts +12 -0
  34. package/dist/svelte/components/SignUpForm.svelte.d.ts.map +1 -0
  35. package/dist/svelte/i18n.d.ts +33 -0
  36. package/dist/svelte/i18n.d.ts.map +1 -1
  37. package/dist/svelte/i18n.js +33 -0
  38. package/dist/svelte/index.d.ts +15 -1
  39. package/dist/svelte/index.d.ts.map +1 -1
  40. package/dist/svelte/index.js +14 -1
  41. package/dist/sveltekit.js +1 -1
  42. package/dist/ui.d.ts.map +1 -1
  43. package/dist/ui.js +54 -0
  44. package/dist/ui.js.map +1 -1
  45. package/package.json +9 -9
  46. package/dist/chunks/TerminalAuthService-CNYOmaaa.js.map +0 -1
package/README.md CHANGED
@@ -10,6 +10,48 @@ pnpm add @happyvertical/smrt-users
10
10
 
11
11
  ## Usage
12
12
 
13
+ ### Auth component adapter
14
+
15
+ The `@happyvertical/smrt-users/svelte` authentication components take a
16
+ `UsersAuthAdapter`. Bind each callback to an application server action; the
17
+ components never receive a session bearer, API-key value, magic-link signing
18
+ secret, or OIDC client secret. On the server, password actions use
19
+ `createPasswordCredentialHandlers()`, magic-link actions use
20
+ `MagicLinkService`, and OIDC actions use `OidcLoginService`. Session and API
21
+ key revoke actions must verify the current account owns the selected record
22
+ before calling `SessionService.destroySession()` or the profile API-key
23
+ service. Passkey sign-in is deliberately hidden unless the host passes a
24
+ `passkeyCeremony` callback to `createUsersAuthAdapter()`. An endpoint alone
25
+ cannot enable it: the callback must perform the #3275 WebAuthn browser ceremony
26
+ and delegate its verified result to an authorized server action.
27
+
28
+ Auth components display safe, registered `users.auth.*` messages when an
29
+ adapter rejects; callback diagnostics are never rendered. Configure these
30
+ messages through the s-m-r-t UI i18n context. Existing error and success feedback
31
+ updates when the locale changes, preserving form drafts without repeating the
32
+ auth action. Default English messages are registered by the auth module.
33
+
34
+ ```svelte
35
+ <script lang="ts">
36
+ import { SignInForm, type UsersAuthAdapter } from '@happyvertical/smrt-users/svelte';
37
+
38
+ const adapter: UsersAuthAdapter = {
39
+ async signInWithPassword({ email, password }) {
40
+ await fetch('/auth/password/sign-in', {
41
+ method: 'POST',
42
+ headers: { 'content-type': 'application/json' },
43
+ body: JSON.stringify({ email, password }),
44
+ });
45
+ },
46
+ };
47
+ </script>
48
+
49
+ <SignInForm {adapter} />
50
+ ```
51
+
52
+ The endpoint in this example is application-owned. It must call the package
53
+ handler/service on the server; it is not a generated public identity API.
54
+
13
55
  ### Application discovery conformance
14
56
 
15
57
  The SvelteKit `createResourceListHandler()` export produces the app CLI
@@ -101,6 +101,9 @@ membership or tenant DENY to attenuate inherited role authority.
101
101
  - When a package adds built-in self-personalization permissions after role
102
102
  creation, explicitly call seedDefaultRolePersonalizationPermissions(). It
103
103
  upgrades owner/admin/member/viewer idempotently and never grants custom roles.
104
+ The built-in self-personalization slugs are `fields.policy.personalize`,
105
+ `overviews.personalize` and `shell.personalize`, each seeded only once its
106
+ package registered it.
104
107
 
105
108
  ## Guards and RLS
106
109