cauthy-auth 0.20.0 → 0.23.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 +133 -3
  4. package/dist/client.d.ts +133 -3
  5. package/dist/client.js +54 -0
  6. package/dist/client.js.map +1 -1
  7. package/dist/client.mjs +54 -0
  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 +178 -5
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +178 -5
  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 +171 -2
  24. package/dist/react.d.ts +171 -2
  25. package/dist/react.js +261 -3
  26. package/dist/react.js.map +1 -1
  27. package/dist/react.mjs +260 -3
  28. package/dist/react.mjs.map +1 -1
  29. package/dist/svelte.d.mts +2 -2
  30. package/dist/svelte.d.ts +2 -2
  31. package/dist/svelte.js +54 -0
  32. package/dist/svelte.js.map +1 -1
  33. package/dist/svelte.mjs +54 -0
  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 +2 -2
  38. package/dist/vue.d.ts +2 -2
  39. package/dist/vue.js +54 -0
  40. package/dist/vue.js.map +1 -1
  41. package/dist/vue.mjs +54 -0
  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[] | {
@@ -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
3
  export { Account, AccountSession, AuthError, AuthMethods, AuthResult, Passkey, PasskeyKind, SSOConnection } 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';
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
3
  export { Account, AccountSession, AuthError, AuthMethods, AuthResult, Passkey, PasskeyKind, SSOConnection } 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';
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,6 +231,7 @@ 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)}` : ""}`;
236
237
  const ssoUrl = (target, o = {}) => {
@@ -268,10 +269,40 @@ function createAuthClient(options = {}) {
268
269
  }
269
270
  return {
270
271
  signIn: {
272
+ anonymously: (f = {}) => post("/sign-in/anonymous", {}, null, f.captchaToken),
271
273
  email: (f) => post("/sign-in/email", { email: f.email, password: f.password }, firstProblem(checkEmail(f.email), checkPassword(f.password)), f.captchaToken),
272
274
  mfa: (f) => post("/sign-in/mfa", { code: f.code }, checkCode(f.code)),
273
275
  mfaMethods: () => post("/sign-in/mfa/methods", {}, null),
274
276
  mfaSendCode: () => post("/sign-in/mfa/send", {}, null),
277
+ mfaPush: () => post("/sign-in/mfa/push", {}, null),
278
+ async mfaPushWait(o = {}) {
279
+ const status = await new Promise((resolve) => {
280
+ if (typeof EventSource !== "function") return resolve("approved");
281
+ const source = new EventSource(`${base}/sign-in/mfa/push/events`, { withCredentials: true });
282
+ const stop = (st) => {
283
+ source.close();
284
+ resolve(st);
285
+ };
286
+ o.signal?.addEventListener("abort", () => stop("aborted"));
287
+ source.addEventListener("status", (e) => {
288
+ const st = (() => {
289
+ try {
290
+ return String(JSON.parse(e.data).status);
291
+ } catch {
292
+ return "";
293
+ }
294
+ })();
295
+ if (st && st !== "pending") stop(st);
296
+ });
297
+ source.onerror = () => {
298
+ if (source.readyState === EventSource.CLOSED) stop("expired");
299
+ };
300
+ });
301
+ if (status === "aborted") return { ok: false, error: { code: "aborted", message: "Stopped waiting." } };
302
+ if (status === "denied") return { ok: false, error: { code: "push_denied", message: "The sign-in was turned down on the phone." } };
303
+ if (status === "expired") return { ok: false, error: { code: "push_expired", message: "Nobody answered on the phone in time." } };
304
+ return post("/sign-in/mfa/push/finish", {}, null);
305
+ },
275
306
  magicLink: (f) => post("/sign-in/magic-link", { email: f.email, ...f.create ? { create: true } : {}, ...f.returnTo ? { returnTo: f.returnTo } : {} }, checkEmail(f.email), f.captchaToken),
276
307
  magicLinkVerify: (f) => post("/sign-in/magic-link/verify", { token: f.token }, null),
277
308
  emailCode: (f) => post("/sign-in/email-code", { code: f.code }, checkCode(f.code)),
@@ -365,6 +396,24 @@ function createAuthClient(options = {}) {
365
396
  resetPassword: (f) => post("/reset-password", { token: f.token, password: f.password }, checkNewPassword(f.password)),
366
397
  verifyEmail: (f) => post("/verify-email", { token: f.token }, null),
367
398
  signOut: () => post("/sign-out", {}, null),
399
+ organizations: {
400
+ async list(system) {
401
+ const body = await read(`/me/organizations${system ? `?system=${encodeURIComponent(system)}` : ""}`);
402
+ return body && Array.isArray(body.organizations) ? body.organizations : [];
403
+ },
404
+ async members(id) {
405
+ const body = await read(`/me/organizations/members?id=${encodeURIComponent(id)}`);
406
+ return body && Array.isArray(body.members) ? body.members : null;
407
+ },
408
+ async roles(id) {
409
+ const body = await read(`/me/organizations/roles?id=${encodeURIComponent(id)}`);
410
+ return body && Array.isArray(body.roles) ? body.roles : null;
411
+ },
412
+ 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)),
413
+ setRole: (id, userId, role) => post("/me/organizations/members/role", { organizationId: id, userId, role }, null),
414
+ remove: (id, userId) => post("/me/organizations/members/remove", { organizationId: id, userId }, null),
415
+ inviteAgain: (id, userId, f = {}) => post("/me/organizations/members/invite", { organizationId: id, userId, locale: f.locale ?? "" }, null)
416
+ },
368
417
  account: {
369
418
  async get() {
370
419
  const body = await read("/me");
@@ -403,6 +452,11 @@ function createAuthClient(options = {}) {
403
452
  return body && Array.isArray(body.sessions) ? body.sessions : [];
404
453
  },
405
454
  signOutEverywhere: () => post("/me/sessions/end", {}, null),
455
+ upgrade: (f) => post("/me/upgrade", { email: f.email, password: f.password, name: f.name ?? "" }, firstProblem(checkName(f.name), checkEmail(f.email), checkNewPassword(f.password))),
456
+ upgradeUrl,
457
+ upgradeWith(provider, o) {
458
+ window.location.assign(upgradeUrl(provider, o));
459
+ },
406
460
  async agents() {
407
461
  const body = await read("/me/agents");
408
462
  return body && Array.isArray(body.agents) ? body.agents : [];