cauthy-auth 0.19.0 → 0.22.0

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 (43) hide show
  1. package/dist/{cauthy-Bn3iv50y.d.ts → cauthy-DGAy45G2.d.ts} +1 -1
  2. package/dist/{cauthy-C29HCvag.d.mts → cauthy-XkIbG5gE.d.mts} +1 -1
  3. package/dist/client.d.mts +157 -2
  4. package/dist/client.d.ts +157 -2
  5. package/dist/client.js +37 -2
  6. package/dist/client.js.map +1 -1
  7. package/dist/client.mjs +37 -2
  8. package/dist/client.mjs.map +1 -1
  9. package/dist/express.d.mts +2 -2
  10. package/dist/express.d.ts +2 -2
  11. package/dist/fastify.d.mts +2 -2
  12. package/dist/fastify.d.ts +2 -2
  13. package/dist/hono.d.mts +2 -2
  14. package/dist/hono.d.ts +2 -2
  15. package/dist/index.d.mts +2 -2
  16. package/dist/index.d.ts +2 -2
  17. package/dist/index.js +181 -6
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +181 -6
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/next.d.mts +2 -2
  22. package/dist/next.d.ts +2 -2
  23. package/dist/react.d.mts +192 -1
  24. package/dist/react.d.ts +192 -1
  25. package/dist/react.js +279 -23
  26. package/dist/react.js.map +1 -1
  27. package/dist/react.mjs +278 -23
  28. package/dist/react.mjs.map +1 -1
  29. package/dist/svelte.d.mts +3 -3
  30. package/dist/svelte.d.ts +3 -3
  31. package/dist/svelte.js +37 -2
  32. package/dist/svelte.js.map +1 -1
  33. package/dist/svelte.mjs +37 -2
  34. package/dist/svelte.mjs.map +1 -1
  35. package/dist/{system-ZD_Wa8Bm.d.mts → system-BxMsSIu1.d.mts} +2 -0
  36. package/dist/{system-DhRr_WxR.d.ts → system-DTIeDXDP.d.ts} +2 -0
  37. package/dist/vue.d.mts +3 -3
  38. package/dist/vue.d.ts +3 -3
  39. package/dist/vue.js +37 -2
  40. package/dist/vue.js.map +1 -1
  41. package/dist/vue.mjs +37 -2
  42. package/dist/vue.mjs.map +1 -1
  43. package/package.json +1 -1
@@ -192,6 +192,8 @@ interface SessionUser {
192
192
  emailVerifyBy?: string;
193
193
  /** The language the person reads in ("es", "en-US"), when Cauthy knows it. */
194
194
  locale?: string;
195
+ /** A guest: a visitor's session before they sign up. No email; `account.upgrade` makes it an account, keeping `id`. */
196
+ isAnonymous?: boolean;
195
197
  }
196
198
  /** A value JSON can carry. What crosses from server to browser is typed as this, never `unknown`. */
197
199
  type JsonValue = string | number | boolean | null | JsonValue[] | {
package/dist/vue.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { ShallowRef, Plugin } from 'vue';
2
2
  import { SessionStore, SessionState, SessionStoreOptions, AuthClient } from './client.mjs';
3
- export { Account, AccountSession, AuthError, AuthMethods, AuthResult, Passkey, PasskeyKind } from './client.mjs';
4
- import { i as PublicSession } from './system-ZD_Wa8Bm.mjs';
5
- export { P as PermissionOf, f as Policy, R as RoleOf, k as SessionOrganization, m as SessionUser, p as can, r as definePolicy } from './system-ZD_Wa8Bm.mjs';
3
+ export { Account, AccountSession, AuthError, AuthMethods, AuthResult, Passkey, PasskeyKind, SSOConnection } from './client.mjs';
4
+ import { i as PublicSession } from './system-BxMsSIu1.mjs';
5
+ export { P as PermissionOf, f as Policy, R as RoleOf, k as SessionOrganization, m as SessionUser, p as can, r as definePolicy } from './system-BxMsSIu1.mjs';
6
6
  import './theme.mjs';
7
7
  import './validate-B_iC-4y8.mjs';
8
8
  import 'jose';
package/dist/vue.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { ShallowRef, Plugin } from 'vue';
2
2
  import { SessionStore, SessionState, SessionStoreOptions, AuthClient } from './client.js';
3
- export { Account, AccountSession, AuthError, AuthMethods, AuthResult, Passkey, PasskeyKind } from './client.js';
4
- import { i as PublicSession } from './system-DhRr_WxR.js';
5
- export { P as PermissionOf, f as Policy, R as RoleOf, k as SessionOrganization, m as SessionUser, p as can, r as definePolicy } from './system-DhRr_WxR.js';
3
+ export { Account, AccountSession, AuthError, AuthMethods, AuthResult, Passkey, PasskeyKind, SSOConnection } from './client.js';
4
+ import { i as PublicSession } from './system-DTIeDXDP.js';
5
+ export { P as PermissionOf, f as Policy, R as RoleOf, k as SessionOrganization, m as SessionUser, p as can, r as definePolicy } from './system-DTIeDXDP.js';
6
6
  import './theme.js';
7
7
  import './validate-B_iC-4y8.js';
8
8
  import 'jose';
package/dist/vue.js CHANGED
@@ -231,8 +231,14 @@ function createAuthClient(options = {}) {
231
231
  return null;
232
232
  }
233
233
  }
234
+ const upgradeUrl = (provider, o = {}) => `${base}/me/upgrade/social/${encodeURIComponent(provider)}${o.returnTo ? `?return_to=${encodeURIComponent(o.returnTo)}` : ""}`;
234
235
  const linkUrl = (provider, o = {}) => `${base}/me/identities/link/${encodeURIComponent(provider)}${o.returnTo ? `?return_to=${encodeURIComponent(o.returnTo)}` : ""}`;
235
236
  const socialUrl = (provider, o = {}) => `${base}/sign-in/social/${encodeURIComponent(provider)}${o.returnTo ? `?return_to=${encodeURIComponent(o.returnTo)}` : ""}`;
237
+ const ssoUrl = (target, o = {}) => {
238
+ const q = new URLSearchParams("connection" in target ? { connection: target.connection } : { email: target.email.trim() });
239
+ if (o.returnTo) q.set("return_to", o.returnTo);
240
+ return `${base}/sign-in/sso?${q}`;
241
+ };
236
242
  const passkeyUrl = (o = {}) => {
237
243
  const q = new URLSearchParams({ method: "passkey" });
238
244
  if (o.returnTo) q.set("return_to", o.returnTo);
@@ -244,11 +250,11 @@ function createAuthClient(options = {}) {
244
250
  const res = await doFetch(`${base}/methods`, { credentials: "same-origin", headers: { accept: "application/json" } });
245
251
  if (res.ok) {
246
252
  const m = await res.json();
247
- return { providers: [], signUp: true, magicLink: false, passkey: false, ...m, passkeyHere: m.passkeyHere === true, passkeyOnCauthy: m.passkeyOnCauthy ?? m.passkey === true };
253
+ return { providers: [], signUp: true, magicLink: false, passkey: false, ...m, passkeyHere: m.passkeyHere === true, passkeyOnCauthy: m.passkeyOnCauthy ?? m.passkey === true, sso: m.sso === true };
248
254
  }
249
255
  } catch {
250
256
  }
251
- return { providers: [], signUp: true, magicLink: false, passkey: false, passkeyHere: false, passkeyOnCauthy: false };
257
+ return { providers: [], signUp: true, magicLink: false, passkey: false, passkeyHere: false, passkeyOnCauthy: false, sso: false };
252
258
  }
253
259
  async function ceremony(begin, finish, form, run, more = {}) {
254
260
  const begun = await post(begin, form, null);
@@ -263,6 +269,7 @@ function createAuthClient(options = {}) {
263
269
  }
264
270
  return {
265
271
  signIn: {
272
+ anonymously: (f = {}) => post("/sign-in/anonymous", {}, null, f.captchaToken),
266
273
  email: (f) => post("/sign-in/email", { email: f.email, password: f.password }, firstProblem(checkEmail(f.email), checkPassword(f.password)), f.captchaToken),
267
274
  mfa: (f) => post("/sign-in/mfa", { code: f.code }, checkCode(f.code)),
268
275
  mfaMethods: () => post("/sign-in/mfa/methods", {}, null),
@@ -346,6 +353,11 @@ function createAuthClient(options = {}) {
346
353
  socialUrl,
347
354
  social(provider, o) {
348
355
  window.location.assign(socialUrl(provider, o));
356
+ },
357
+ ssoDiscover: (f) => post("/sign-in/sso/discover", { email: f.email.trim() }, checkEmail(f.email)),
358
+ ssoUrl,
359
+ sso(target, o) {
360
+ window.location.assign(ssoUrl(target, o));
349
361
  }
350
362
  },
351
363
  signUp: {
@@ -355,6 +367,24 @@ function createAuthClient(options = {}) {
355
367
  resetPassword: (f) => post("/reset-password", { token: f.token, password: f.password }, checkNewPassword(f.password)),
356
368
  verifyEmail: (f) => post("/verify-email", { token: f.token }, null),
357
369
  signOut: () => post("/sign-out", {}, null),
370
+ organizations: {
371
+ async list(system) {
372
+ const body = await read(`/me/organizations${system ? `?system=${encodeURIComponent(system)}` : ""}`);
373
+ return body && Array.isArray(body.organizations) ? body.organizations : [];
374
+ },
375
+ async members(id) {
376
+ const body = await read(`/me/organizations/members?id=${encodeURIComponent(id)}`);
377
+ return body && Array.isArray(body.members) ? body.members : null;
378
+ },
379
+ async roles(id) {
380
+ const body = await read(`/me/organizations/roles?id=${encodeURIComponent(id)}`);
381
+ return body && Array.isArray(body.roles) ? body.roles : null;
382
+ },
383
+ add: (id, f) => post("/me/organizations/members/add", { organizationId: id, email: f.email, role: f.role, name: f.name ?? "", locale: f.locale ?? "" }, checkEmail(f.email)),
384
+ setRole: (id, userId, role) => post("/me/organizations/members/role", { organizationId: id, userId, role }, null),
385
+ remove: (id, userId) => post("/me/organizations/members/remove", { organizationId: id, userId }, null),
386
+ inviteAgain: (id, userId, f = {}) => post("/me/organizations/members/invite", { organizationId: id, userId, locale: f.locale ?? "" }, null)
387
+ },
358
388
  account: {
359
389
  async get() {
360
390
  const body = await read("/me");
@@ -393,6 +423,11 @@ function createAuthClient(options = {}) {
393
423
  return body && Array.isArray(body.sessions) ? body.sessions : [];
394
424
  },
395
425
  signOutEverywhere: () => post("/me/sessions/end", {}, null),
426
+ upgrade: (f) => post("/me/upgrade", { email: f.email, password: f.password, name: f.name ?? "" }, firstProblem(checkName(f.name), checkEmail(f.email), checkNewPassword(f.password))),
427
+ upgradeUrl,
428
+ upgradeWith(provider, o) {
429
+ window.location.assign(upgradeUrl(provider, o));
430
+ },
396
431
  async agents() {
397
432
  const body = await read("/me/agents");
398
433
  return body && Array.isArray(body.agents) ? body.agents : [];