@oxyhq/services 21.0.0 → 22.0.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 (121) hide show
  1. package/lib/commonjs/index.js +13 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/boot/runProviderColdBoot.js +12 -2
  4. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  5. package/lib/commonjs/ui/components/OxyAccountDialog.js +46 -19
  6. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +1 -1
  7. package/lib/commonjs/ui/components/OxyProvider.js +2 -0
  8. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  9. package/lib/commonjs/ui/context/OxyContext.js +80 -59
  10. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  11. package/lib/commonjs/ui/context/passkeyFlow.js +118 -0
  12. package/lib/commonjs/ui/context/passkeyFlow.js.map +1 -0
  13. package/lib/commonjs/ui/hooks/queries/queryKeys.js +18 -2
  14. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  15. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js +49 -0
  16. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js.map +1 -0
  17. package/lib/commonjs/ui/utils/crossOriginRestore.js +26 -0
  18. package/lib/commonjs/ui/utils/crossOriginRestore.js.map +1 -1
  19. package/lib/commonjs/webauthn/passkeyClient.js +39 -0
  20. package/lib/commonjs/webauthn/passkeyClient.js.map +1 -0
  21. package/lib/commonjs/webauthn/passkeyClient.native.js +34 -0
  22. package/lib/commonjs/webauthn/passkeyClient.native.js.map +1 -0
  23. package/lib/commonjs/webauthn/passkeyClient.web.js +57 -0
  24. package/lib/commonjs/webauthn/passkeyClient.web.js.map +1 -0
  25. package/lib/module/index.js +2 -1
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/module/ui/boot/runProviderColdBoot.js +13 -3
  28. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  29. package/lib/module/ui/components/OxyAccountDialog.js +46 -19
  30. package/lib/module/ui/components/OxyAccountDialog.js.map +1 -1
  31. package/lib/module/ui/components/OxyProvider.js +2 -0
  32. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  33. package/lib/module/ui/context/OxyContext.js +80 -59
  34. package/lib/module/ui/context/OxyContext.js.map +1 -1
  35. package/lib/module/ui/context/passkeyFlow.js +111 -0
  36. package/lib/module/ui/context/passkeyFlow.js.map +1 -0
  37. package/lib/module/ui/hooks/queries/queryKeys.js +15 -0
  38. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  39. package/lib/module/ui/hooks/queries/useAuthMethods.js +45 -0
  40. package/lib/module/ui/hooks/queries/useAuthMethods.js.map +1 -0
  41. package/lib/module/ui/utils/crossOriginRestore.js +26 -1
  42. package/lib/module/ui/utils/crossOriginRestore.js.map +1 -1
  43. package/lib/module/webauthn/passkeyClient.js +33 -0
  44. package/lib/module/webauthn/passkeyClient.js.map +1 -0
  45. package/lib/module/webauthn/passkeyClient.native.js +28 -0
  46. package/lib/module/webauthn/passkeyClient.native.js.map +1 -0
  47. package/lib/module/webauthn/passkeyClient.web.js +52 -0
  48. package/lib/module/webauthn/passkeyClient.web.js.map +1 -0
  49. package/lib/typescript/commonjs/index.d.ts +3 -2
  50. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  51. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +6 -0
  52. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  53. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +1 -1
  56. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +41 -20
  58. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts +96 -0
  60. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts.map +1 -0
  61. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  62. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +9 -0
  64. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts +212 -0
  66. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/ui/types/navigation.d.ts +8 -0
  68. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts +19 -0
  70. package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts +20 -0
  72. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts +15 -0
  74. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts +36 -0
  76. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts.map +1 -0
  77. package/lib/typescript/module/index.d.ts +3 -2
  78. package/lib/typescript/module/index.d.ts.map +1 -1
  79. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +6 -0
  80. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  81. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +1 -1
  82. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  83. package/lib/typescript/module/ui/context/OxyContext.d.ts +1 -1
  84. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  85. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +41 -20
  86. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  87. package/lib/typescript/module/ui/context/passkeyFlow.d.ts +96 -0
  88. package/lib/typescript/module/ui/context/passkeyFlow.d.ts.map +1 -0
  89. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  90. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  91. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +9 -0
  92. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  93. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts +212 -0
  94. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts.map +1 -0
  95. package/lib/typescript/module/ui/types/navigation.d.ts +8 -0
  96. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  97. package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts +19 -0
  98. package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts.map +1 -1
  99. package/lib/typescript/module/webauthn/passkeyClient.d.ts +20 -0
  100. package/lib/typescript/module/webauthn/passkeyClient.d.ts.map +1 -0
  101. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts +15 -0
  102. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts.map +1 -0
  103. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts +36 -0
  104. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts.map +1 -0
  105. package/package.json +6 -5
  106. package/src/index.ts +3 -1
  107. package/src/ui/boot/runProviderColdBoot.ts +24 -1
  108. package/src/ui/components/OxyAccountDialog.tsx +57 -14
  109. package/src/ui/components/OxyProvider.tsx +2 -0
  110. package/src/ui/context/OxyContext.tsx +85 -63
  111. package/src/ui/context/__tests__/passkeyFlow.test.ts +244 -0
  112. package/src/ui/context/oxyContextTypes.ts +41 -19
  113. package/src/ui/context/passkeyFlow.ts +154 -0
  114. package/src/ui/hooks/queries/queryKeys.ts +14 -0
  115. package/src/ui/hooks/queries/useAuthMethods.ts +45 -0
  116. package/src/ui/types/navigation.ts +8 -0
  117. package/src/ui/utils/__tests__/crossOriginRestore.test.ts +143 -0
  118. package/src/ui/utils/crossOriginRestore.ts +34 -0
  119. package/src/webauthn/passkeyClient.native.ts +26 -0
  120. package/src/webauthn/passkeyClient.ts +31 -0
  121. package/src/webauthn/passkeyClient.web.ts +56 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ import { useMemo } from 'react';
4
+ import { useQuery } from '@tanstack/react-query';
5
+ import { queryKeys } from "./queryKeys.js";
6
+ import { useOxy } from "../../context/OxyContext.js";
7
+
8
+ /** Stable empty list so the derived selectors keep a stable reference while loading. */
9
+ const EMPTY_METHODS = Object.freeze([]);
10
+
11
+ /**
12
+ * The current account's linked authentication methods (`GET /auth/methods`),
13
+ * plus convenience projections. Backs the security / account surfaces that let a
14
+ * user see and manage their passwords, identity key, social logins, and passkeys.
15
+ *
16
+ * `passkeys` is the `type === 'webauthn'` subset — one entry per registered
17
+ * credential. Invalidate via `queryKeys.authMethods.all` after linking a passkey
18
+ * (`useOxy().addPasskey()` does this) or removing one.
19
+ */
20
+ export const useAuthMethods = options => {
21
+ const {
22
+ oxyServices,
23
+ activeSessionId
24
+ } = useOxy();
25
+ const query = useQuery({
26
+ queryKey: queryKeys.authMethods.list(),
27
+ queryFn: () => oxyServices.listAuthMethods(),
28
+ enabled: options?.enabled !== false && !!activeSessionId,
29
+ staleTime: 5 * 60 * 1000,
30
+ // 5 minutes
31
+ gcTime: 10 * 60 * 1000 // 10 minutes
32
+ });
33
+ const methods = query.data?.methods ?? EMPTY_METHODS;
34
+ const passkeys = useMemo(() => methods.filter(method => method.type === 'webauthn'), [methods]);
35
+ return {
36
+ ...query,
37
+ /** Every linked auth method. Empty while loading. */
38
+ methods,
39
+ /** The registered passkeys (a `type === 'webauthn'` subset of `methods`). */
40
+ passkeys,
41
+ /** The account's DID, or `null` while loading. */
42
+ did: query.data?.did ?? null
43
+ };
44
+ };
45
+ //# sourceMappingURL=useAuthMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useQuery","queryKeys","useOxy","EMPTY_METHODS","Object","freeze","useAuthMethods","options","oxyServices","activeSessionId","query","queryKey","authMethods","list","queryFn","listAuthMethods","enabled","staleTime","gcTime","methods","data","passkeys","filter","method","type","did"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useAuthMethods.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,MAAM,QAAQ,6BAA0B;;AAEjD;AACA,MAAMC,aAAyC,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,CAAC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAIC,OAA+B,IAAK;EACjE,MAAM;IAAEC,WAAW;IAAEC;EAAgB,CAAC,GAAGP,MAAM,CAAC,CAAC;EAEjD,MAAMQ,KAAK,GAAGV,QAAQ,CAAsB;IAC1CW,QAAQ,EAAEV,SAAS,CAACW,WAAW,CAACC,IAAI,CAAC,CAAC;IACtCC,OAAO,EAAEA,CAAA,KAAMN,WAAW,CAACO,eAAe,CAAC,CAAC;IAC5CC,OAAO,EAAET,OAAO,EAAES,OAAO,KAAK,KAAK,IAAI,CAAC,CAACP,eAAe;IACxDQ,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAAE;IAC1BC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAE;EAC1B,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGT,KAAK,CAACU,IAAI,EAAED,OAAO,IAAIhB,aAAa;EACpD,MAAMkB,QAAQ,GAAGtB,OAAO,CACtB,MAAMoB,OAAO,CAACG,MAAM,CAAEC,MAAM,IAAKA,MAAM,CAACC,IAAI,KAAK,UAAU,CAAC,EAC5D,CAACL,OAAO,CACV,CAAC;EAED,OAAO;IACL,GAAGT,KAAK;IACR;IACAS,OAAO;IACP;IACAE,QAAQ;IACR;IACAI,GAAG,EAAEf,KAAK,CAACU,IAAI,EAAEK,GAAG,IAAI;EAC1B,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { buildOAuthAuthorizeUrl, generateOAuthState, generatePkcePair, OXY_CROSS_ORIGIN_RESTORE_ATTEMPTED_KEY, OXY_SILENT_OAUTH_ATTEMPTED_KEY, persistOAuthHandshake, normalizeOAuthRedirectUri, logger } from '@oxyhq/core';
3
+ import { buildOAuthAuthorizeUrl, generateOAuthState, generatePkcePair, isIdpHubOrigin, isLoopbackOrigin, isOfficialWebOrigin, OXY_CROSS_ORIGIN_RESTORE_ATTEMPTED_KEY, OXY_SILENT_OAUTH_ATTEMPTED_KEY, persistOAuthHandshake, normalizeOAuthRedirectUri, logger } from '@oxyhq/core';
4
4
  import { isWebBrowser } from "./isWebBrowser.js";
5
5
  import { redirectToAuthorize } from "../components/oauthNavigation.js";
6
6
  function sessionStore() {
@@ -30,6 +30,24 @@ export function clearCrossOriginRestoreGuards() {
30
30
  store.removeItem(key);
31
31
  }
32
32
  }
33
+
34
+ /**
35
+ * Whether cold boot should attempt silent cross-origin OAuth restore for the
36
+ * given web origin.
37
+ *
38
+ * Mirrors the hub-sync WRITE gate (`syncHubAfterSignIn`): only OFFICIAL Oxy web
39
+ * origins participate in cross-app SSO — a random third-party / preview origin
40
+ * must never have its tab bounced to the IdP. Additionally, loopback / local-dev
41
+ * origins are EXCLUDED here even though {@link isOfficialWebOrigin} treats them
42
+ * as official: a developer's local app must never be redirected to a hosted IdP
43
+ * on cold boot (it signs in through the in-app dialog instead). The central IdP
44
+ * hub's own origin is excluded to avoid a wasteful self-hop.
45
+ */
46
+ export function isSilentRestoreEligibleOrigin(origin) {
47
+ if (isLoopbackOrigin(origin)) return false;
48
+ if (isIdpHubOrigin()) return false;
49
+ return isOfficialWebOrigin(origin);
50
+ }
33
51
  /**
34
52
  * Top-level redirect to auth.oxy.so/authorize with `prompt=none` for silent
35
53
  * cross-origin session restore on all web apps (official + third-party).
@@ -38,6 +56,12 @@ export async function maybeStartSilentOAuthRestore(opts) {
38
56
  if (!isWebBrowser()) return false;
39
57
  const location = globalThis.location;
40
58
  if (!location) return false;
59
+
60
+ // Defense-in-depth: never bounce a loopback / non-official / IdP-hub origin to
61
+ // a hosted authorize endpoint (the caller gates on this too).
62
+ if (!isSilentRestoreEligibleOrigin(location.origin)) {
63
+ return false;
64
+ }
41
65
  if (isCrossOriginRestoreBlocked()) {
42
66
  return false;
43
67
  }
@@ -56,6 +80,7 @@ export async function maybeStartSilentOAuthRestore(opts) {
56
80
  }
57
81
  const redirectUri = normalizeOAuthRedirectUri(opts.redirectUri ?? location.origin);
58
82
  const authorizeUrl = buildOAuthAuthorizeUrl({
83
+ authorizeBaseUrl: opts.authorizeBaseUrl,
59
84
  clientId: opts.clientId,
60
85
  redirectUri,
61
86
  state,
@@ -1 +1 @@
1
- {"version":3,"names":["buildOAuthAuthorizeUrl","generateOAuthState","generatePkcePair","OXY_CROSS_ORIGIN_RESTORE_ATTEMPTED_KEY","OXY_SILENT_OAUTH_ATTEMPTED_KEY","persistOAuthHandshake","normalizeOAuthRedirectUri","logger","isWebBrowser","redirectToAuthorize","sessionStore","globalThis","sessionStorage","isCrossOriginRestoreBlocked","store","Boolean","getItem","markCrossOriginRestoreAttempted","setItem","clearCrossOriginRestoreGuards","key","removeItem","maybeStartSilentOAuthRestore","opts","location","params","URLSearchParams","search","has","codeVerifier","codeChallenge","state","redirectUri","origin","authorizeUrl","clientId","scope","prompt","error","warn","component","consumeSilentOAuthError","history","get","replaceState","url","URL","href","searchParams","delete","pathname","hash"],"sourceRoot":"../../../../src","sources":["ui/utils/crossOriginRestore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["buildOAuthAuthorizeUrl","generateOAuthState","generatePkcePair","isIdpHubOrigin","isLoopbackOrigin","isOfficialWebOrigin","OXY_CROSS_ORIGIN_RESTORE_ATTEMPTED_KEY","OXY_SILENT_OAUTH_ATTEMPTED_KEY","persistOAuthHandshake","normalizeOAuthRedirectUri","logger","isWebBrowser","redirectToAuthorize","sessionStore","globalThis","sessionStorage","isCrossOriginRestoreBlocked","store","Boolean","getItem","markCrossOriginRestoreAttempted","setItem","clearCrossOriginRestoreGuards","key","removeItem","isSilentRestoreEligibleOrigin","origin","maybeStartSilentOAuthRestore","opts","location","params","URLSearchParams","search","has","codeVerifier","codeChallenge","state","redirectUri","authorizeUrl","authorizeBaseUrl","clientId","scope","prompt","error","warn","component","consumeSilentOAuthError","history","get","replaceState","url","URL","href","searchParams","delete","pathname","hash"],"sourceRoot":"../../../../src","sources":["ui/utils/crossOriginRestore.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Passkey / WebAuthn ceremony client — clean default (non-web) implementation.
5
+ *
6
+ * This is the base module TypeScript resolves for TYPES and any bundler that
7
+ * does not pick a platform variant. It intentionally imports NOTHING browser-
8
+ * specific (no `@simplewebauthn/browser`) so it stays safe for Metro, native
9
+ * builds, and SSR. The real ceremony lives in `passkeyClient.web.ts`; native
10
+ * passkeys are Commons' job, so there is no WebAuthn ceremony here.
11
+ *
12
+ * `isPasskeySupported()` returns `false` (no relying-party origin / no browser
13
+ * WebAuthn API), and the ceremony helpers throw a clear error so a caller that
14
+ * skipped the support gate fails loudly instead of silently.
15
+ */
16
+
17
+ const WEBAUTHN_WEB_ONLY_MESSAGE = 'WebAuthn is web-only; native uses Commons. Passkeys are not available on this platform.';
18
+
19
+ /** Always `false` off the web — there is no relying-party origin or WebAuthn API. */
20
+ export function isPasskeySupported() {
21
+ return false;
22
+ }
23
+
24
+ /** Not available off the web — throws. Guard with {@link isPasskeySupported} first. */
25
+ export async function runRegistrationCeremony(_optionsJSON) {
26
+ throw new Error(WEBAUTHN_WEB_ONLY_MESSAGE);
27
+ }
28
+
29
+ /** Not available off the web — throws. Guard with {@link isPasskeySupported} first. */
30
+ export async function runAuthenticationCeremony(_optionsJSON) {
31
+ throw new Error(WEBAUTHN_WEB_ONLY_MESSAGE);
32
+ }
33
+ //# sourceMappingURL=passkeyClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WEBAUTHN_WEB_ONLY_MESSAGE","isPasskeySupported","runRegistrationCeremony","_optionsJSON","Error","runAuthenticationCeremony"],"sourceRoot":"../../../src","sources":["webauthn/passkeyClient.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,yBAAyB,GAC7B,yFAAyF;;AAE3F;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAY;EAC5C,OAAO,KAAK;AACd;;AAEA;AACA,OAAO,eAAeC,uBAAuBA,CAACC,YAAqB,EAAoB;EACrF,MAAM,IAAIC,KAAK,CAACJ,yBAAyB,CAAC;AAC5C;;AAEA;AACA,OAAO,eAAeK,yBAAyBA,CAACF,YAAqB,EAAoB;EACvF,MAAM,IAAIC,KAAK,CAACJ,yBAAyB,CAAC;AAC5C","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Passkey / WebAuthn ceremony client — NATIVE implementation.
5
+ *
6
+ * React Native has no browser WebAuthn API, and Oxy's native passkey story is
7
+ * Commons (shared-keychain / QR handoff), NOT `navigator.credentials`. So this
8
+ * variant imports NOTHING browser-specific and mirrors the clean default:
9
+ * unsupported, and the ceremony helpers throw if a caller skipped the gate.
10
+ */
11
+
12
+ const WEBAUTHN_WEB_ONLY_MESSAGE = 'WebAuthn is web-only; native uses Commons. Passkeys are not available on this platform.';
13
+
14
+ /** Always `false` on native — there is no browser WebAuthn API. */
15
+ export function isPasskeySupported() {
16
+ return false;
17
+ }
18
+
19
+ /** Not available on native — throws. Guard with {@link isPasskeySupported} first. */
20
+ export async function runRegistrationCeremony(_optionsJSON) {
21
+ throw new Error(WEBAUTHN_WEB_ONLY_MESSAGE);
22
+ }
23
+
24
+ /** Not available on native — throws. Guard with {@link isPasskeySupported} first. */
25
+ export async function runAuthenticationCeremony(_optionsJSON) {
26
+ throw new Error(WEBAUTHN_WEB_ONLY_MESSAGE);
27
+ }
28
+ //# sourceMappingURL=passkeyClient.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WEBAUTHN_WEB_ONLY_MESSAGE","isPasskeySupported","runRegistrationCeremony","_optionsJSON","Error","runAuthenticationCeremony"],"sourceRoot":"../../../src","sources":["webauthn/passkeyClient.native.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,yBAAyB,GAC7B,yFAAyF;;AAE3F;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAY;EAC5C,OAAO,KAAK;AACd;;AAEA;AACA,OAAO,eAAeC,uBAAuBA,CAACC,YAAqB,EAAoB;EACrF,MAAM,IAAIC,KAAK,CAACJ,yBAAyB,CAAC;AAC5C;;AAEA;AACA,OAAO,eAAeK,yBAAyBA,CAACF,YAAqB,EAAoB;EACvF,MAAM,IAAIC,KAAK,CAACJ,yBAAyB,CAAC;AAC5C","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Passkey / WebAuthn ceremony client — WEB implementation.
5
+ *
6
+ * The browser half of the passkey flow: it drives `navigator.credentials`
7
+ * through `@simplewebauthn/browser`, turning the OPAQUE options the server
8
+ * emitted (`OxyServices.webauthn{Register,Login}Options`) into the opaque
9
+ * response the matching `verify` endpoint consumes. Oxy never owns those wire
10
+ * shapes — `@simplewebauthn/browser` does — so options flow in as `unknown` and
11
+ * the single cast at this boundary hands them to the library's own types.
12
+ *
13
+ * This file is selected ONLY on web (react-native-web / Vite RNW): the sibling
14
+ * `passkeyClient.native.ts` + the clean default `passkeyClient.ts` deliberately
15
+ * do NOT import `@simplewebauthn/browser` (a browser-only dependency), per the
16
+ * platform-split rule. Native passkeys are Commons' job — there is no WebAuthn
17
+ * ceremony off the web.
18
+ */
19
+
20
+ import { startRegistration, startAuthentication } from '@simplewebauthn/browser';
21
+
22
+ /**
23
+ * True iff this browser can run a WebAuthn ceremony (exposes the
24
+ * `PublicKeyCredential` global). Gate all passkey UI/entrypoints on this so an
25
+ * unsupported browser fails loudly rather than throwing mid-ceremony.
26
+ */
27
+ export function isPasskeySupported() {
28
+ return typeof window !== 'undefined' && typeof window.PublicKeyCredential !== 'undefined';
29
+ }
30
+
31
+ /**
32
+ * Run the WebAuthn REGISTRATION ceremony (`navigator.credentials.create`) from
33
+ * the server's opaque creation options, returning the opaque attestation
34
+ * response for `OxyServices.webauthnRegisterVerify`.
35
+ */
36
+ export async function runRegistrationCeremony(optionsJSON) {
37
+ return startRegistration({
38
+ optionsJSON: optionsJSON
39
+ });
40
+ }
41
+
42
+ /**
43
+ * Run the WebAuthn AUTHENTICATION ceremony (`navigator.credentials.get`) from
44
+ * the server's opaque request options, returning the opaque assertion response
45
+ * for `OxyServices.webauthnLoginVerify`.
46
+ */
47
+ export async function runAuthenticationCeremony(optionsJSON) {
48
+ return startAuthentication({
49
+ optionsJSON: optionsJSON
50
+ });
51
+ }
52
+ //# sourceMappingURL=passkeyClient.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["startRegistration","startAuthentication","isPasskeySupported","window","PublicKeyCredential","runRegistrationCeremony","optionsJSON","runAuthenticationCeremony"],"sourceRoot":"../../../src","sources":["webauthn/passkeyClient.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,iBAAiB,EACjBC,mBAAmB,QAKd,yBAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAY;EAC5C,OAAO,OAAOC,MAAM,KAAK,WAAW,IAAI,OAAOA,MAAM,CAACC,mBAAmB,KAAK,WAAW;AAC3F;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,uBAAuBA,CAC3CC,WAAoB,EACe;EACnC,OAAON,iBAAiB,CAAC;IAAEM,WAAW,EAAEA;EAAsD,CAAC,CAAC;AAClG;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,yBAAyBA,CAC7CD,WAAoB,EACiB;EACrC,OAAOL,mBAAmB,CAAC;IAAEK,WAAW,EAAEA;EAAqD,CAAC,CAAC;AACnG","ignoreList":[]}
@@ -22,7 +22,7 @@
22
22
  */
23
23
  export { default as OxyProvider } from './ui/components/OxyProvider';
24
24
  export { useOxy } from './ui/context/OxyContext';
25
- export type { OxyContextState, PasswordSignInResult } from './ui/context/OxyContext';
25
+ export type { OxyContextState } from './ui/context/OxyContext';
26
26
  export { useAuth } from './ui/hooks/useAuth';
27
27
  export type { AuthState, AuthActions, UseAuthReturn } from './ui/hooks/useAuth';
28
28
  export { FontLoader, setupFonts } from './ui/components/FontLoader';
@@ -37,6 +37,7 @@ export type { UseStorageOptions, UseStorageResult } from './ui/hooks/useStorage'
37
37
  export { useUserProfile, useUserProfiles, useCurrentUser, useUserById, useUserByUsername, useUsersBySessions, usePrivacySettings, useConnectedApps, } from './ui/hooks/queries/useAccountQueries';
38
38
  export { useSessions, useSession, useDeviceSessions, useUserDevices, useSecurityInfo, useAccountStorageUsage, } from './ui/hooks/queries/useServicesQueries';
39
39
  export { useSecurityActivity, useRecentSecurityActivity, useInfiniteSecurityActivity, } from './ui/hooks/queries/useSecurityQueries';
40
+ export { useAuthMethods } from './ui/hooks/queries/useAuthMethods';
40
41
  export { useUserSubscription, useUserPayments, useUserWallet, useUserWalletTransactions, } from './ui/hooks/queries/usePaymentQueries';
41
42
  export type { Subscription, SubscriptionPlan, SubscriptionStatus, SubscriptionFeatures, Payment, Wallet, WalletTransaction, WalletTransactionType, WalletTransactionStatus, WalletPagination, WalletTransactionsResponse, } from './ui/hooks/queries/paymentTypes';
42
43
  export { useUpdateProfile, useUploadAvatar, useUpdateAccountSettings, useUpdatePrivacySettings, useUpdateNotificationPreferences, useUpdateUserPreferences, useRevokeConnectedApp, useUploadFile, } from './ui/hooks/mutations/useAccountMutations';
@@ -44,7 +45,7 @@ export { useSwitchSession, useLogoutSession, useLogoutAll, useUpdateDeviceName,
44
45
  export { createProfileMutation, createGenericMutation, } from './ui/hooks/mutations/mutationFactory';
45
46
  export type { ProfileMutationConfig, GenericMutationConfig, } from './ui/hooks/mutations/mutationFactory';
46
47
  export { mutationKeys } from './ui/hooks/mutations/mutationKeys';
47
- export { queryKeys, invalidateAccountQueries, invalidateUserQueries, invalidateSessionQueries, invalidateDeviceQueries, invalidatePrivacyQueries, invalidateSecurityQueries, invalidateStorageQueries, invalidatePaymentsQueries, invalidateConnectedAppsQueries, } from './ui/hooks/queries/queryKeys';
48
+ export { queryKeys, invalidateAccountQueries, invalidateUserQueries, invalidateSessionQueries, invalidateDeviceQueries, invalidatePrivacyQueries, invalidateSecurityQueries, invalidateStorageQueries, invalidatePaymentsQueries, invalidateConnectedAppsQueries, invalidateAuthMethodsQueries, } from './ui/hooks/queries/queryKeys';
48
49
  export { useMutationStatus } from './ui/hooks/useMutationStatus';
49
50
  export type { MutationStatus } from './ui/hooks/useMutationStatus';
50
51
  export { useOnlineStatus } from './ui/hooks/useOnlineStatus';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKhF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKpE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACH,aAAa,EACb,SAAS,IAAI,cAAc,EAC3B,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKjF,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACH,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,yBAAyB,GAC5B,MAAM,sCAAsC,CAAC;AAG9C,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,GAC7B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAClB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACH,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACR,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQjE,OAAO,EACH,SAAS,EACT,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,GACjC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKrD,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAK/E,OAAO,EACL,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAKzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAGpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGlF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAKtF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACvF,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,12 @@ export interface RunProviderColdBootOptions {
8
8
  authStore: AuthStateStore;
9
9
  clientId?: string;
10
10
  authRedirectUri?: string;
11
+ /**
12
+ * Authorize endpoint override for silent cross-origin restore. Defaults to
13
+ * the production Oxy IdP when unset; a local/staging deployment sets it so the
14
+ * silent-restore redirect targets its own IdP, never production.
15
+ */
16
+ authorizeBaseUrl?: string;
11
17
  sessionClient: SessionClient;
12
18
  syncDeviceCredentialToHost: () => Promise<void>;
13
19
  commitSession: (input: CommitInput, options: {
@@ -1 +1 @@
1
- {"version":3,"file":"runProviderColdBoot.d.ts","sourceRoot":"","sources":["../../../../../src/ui/boot/runProviderColdBoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,iFAAiF;AACjF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa,EAAE,CACb,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAC9C,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GzF"}
1
+ {"version":3,"file":"runProviderColdBoot.d.ts","sourceRoot":"","sources":["../../../../../src/ui/boot/runProviderColdBoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,iFAAiF;AACjF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa,EAAE,CACb,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAC9C,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA8HzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyAccountDialog.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/OxyAccountDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8D/B;;;GAGG;AACH,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EA2H7B,CAAC;AA8eF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"OxyAccountDialog.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/OxyAccountDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgE/B;;;GAGG;AACH,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAwJ7B,CAAC;AA0fF,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyProvider.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/OxyProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AAIjH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAqE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAyOrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"OxyProvider.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/OxyProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AAIjH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAqE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA2OrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type React from 'react';
2
2
  import type { OxyContextState, OxyContextProviderProps } from './oxyContextTypes';
3
- export type { OxyContextState, PasswordSignInResult, OxyContextProviderProps } from './oxyContextTypes';
3
+ export type { OxyContextState, OxyContextProviderProps } from './oxyContextTypes';
4
4
  export declare const OxyProvider: React.FC<OxyContextProviderProps>;
5
5
  export declare const OxyContextProvider: React.FC<OxyContextProviderProps>;
6
6
  export declare const useOxy: () => OxyContextState;
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2D/B,OAAO,KAAK,EACV,eAAe,EAEf,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AAK3B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAIxG,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAi4BzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAiE9C,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC"}
1
+ {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0D/B,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AAY3B,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAIlF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAg5BzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAmE9C,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { OxyServices, User, SessionLoginResponse, AccountNode, CreateAccountInput, ClientSession, AccountDialogController, AccountDialogView, ApiError, SessionClient } from '@oxyhq/core';
3
- import type { SecurityAlert } from '@oxyhq/contracts';
4
3
  import type { UseFollowHook } from '../hooks/useFollow.types';
5
4
  import type { useLanguageManagement } from '../hooks/useLanguageManagement';
6
5
  import type { RouteName } from '../navigation/routes';
@@ -37,18 +36,43 @@ export interface OxyContextState {
37
36
  hasIdentity: () => Promise<boolean>;
38
37
  getPublicKey: () => Promise<string | null>;
39
38
  signIn: (publicKey: string, deviceName?: string) => Promise<User>;
40
- signInWithPassword: (identifier: string, password: string, opts?: {
39
+ /**
40
+ * Sign in with a passkey (WebAuthn). With no `username` this is the
41
+ * usernameless / discoverable-credential flow: the browser prompts for any
42
+ * resident Oxy passkey. Pass `username` for the username-first flow — the
43
+ * server scopes `allowCredentials` to that user's passkeys so a
44
+ * NON-discoverable hardware key (e.g. a U2F/security key) can be used.
45
+ * WEB-ONLY — throws on native or an unsupported browser (native passkeys are
46
+ * Commons' job). On `useOxy()`, NOT re-exposed on `useAuth()`.
47
+ */
48
+ signInWithPasskey: (opts?: {
49
+ username?: string;
41
50
  deviceName?: string;
42
51
  deviceFingerprint?: string;
43
- }) => Promise<PasswordSignInResult>;
44
- completeTwoFactorSignIn: (params: {
45
- loginToken: string;
46
- token?: string;
47
- backupCode?: string;
52
+ }) => Promise<void>;
53
+ /**
54
+ * Create a brand-new account whose first authentication method is a passkey.
55
+ * WEB-ONLY — throws on native or an unsupported browser.
56
+ */
57
+ registerWithPasskey: (params: {
58
+ username: string;
59
+ deviceName?: string;
60
+ }) => Promise<void>;
61
+ /**
62
+ * Add a passkey to the already-signed-in account (bearer present). Does NOT
63
+ * commit a new session; refreshes the linked auth-methods list on success.
64
+ * WEB-ONLY — throws on native or an unsupported browser.
65
+ */
66
+ addPasskey: (params?: {
48
67
  deviceName?: string;
49
- }) => Promise<{
50
- securityAlert?: SecurityAlert;
51
- }>;
68
+ }) => Promise<void>;
69
+ /**
70
+ * Remove a passkey from the current account by its credential id
71
+ * (`AuthMethodEntry.credentialId`). Refreshes the linked auth-methods list on
72
+ * success. Works on any platform (it is a plain unlink, not a WebAuthn
73
+ * ceremony) but is only reachable from surfaces that list passkeys.
74
+ */
75
+ removePasskey: (credentialId: string) => Promise<void>;
52
76
  revokeSuspiciousSignIn: () => Promise<void>;
53
77
  handleWebSession: (session: SessionLoginResponse) => Promise<void>;
54
78
  logout: (targetSessionId?: string) => Promise<void>;
@@ -88,22 +112,19 @@ export interface OxyContextState {
88
112
  refreshAccounts: () => Promise<void>;
89
113
  createAccount: (data: CreateAccountInput) => Promise<AccountNode>;
90
114
  }
91
- /**
92
- * Result of {@link OxyContextState.signInWithPassword}.
93
- */
94
- export type PasswordSignInResult = {
95
- status: 'ok';
96
- securityAlert?: SecurityAlert;
97
- } | {
98
- status: '2fa_required';
99
- loginToken: string;
100
- };
101
115
  export interface OxyContextProviderProps {
102
116
  children: ReactNode;
103
117
  oxyServices?: OxyServices;
104
118
  baseURL?: string;
105
119
  authWebUrl?: string;
106
120
  authRedirectUri?: string;
121
+ /**
122
+ * Authorize endpoint override for silent cross-origin session restore
123
+ * (web cross-app SSO). Defaults to the production Oxy IdP when unset; a
124
+ * local/staging deployment points it at its own IdP so cold boot never
125
+ * bounces the tab to production `auth.oxy.so`.
126
+ */
127
+ authorizeBaseUrl?: string;
107
128
  storageKeyPrefix?: string;
108
129
  clientId?: string;
109
130
  /** Sync device credentials to auth.oxy.so after interactive sign-in. @default true */
@@ -1 +1 @@
1
- {"version":3,"file":"oxyContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oxyContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Pure passkey (WebAuthn) sign-in / registration orchestration.
3
+ *
4
+ * Extracted from `OxyContext` so the fixed `options → ceremony → verify → commit`
5
+ * ordering is unit-testable with injected deps — the exact pattern
6
+ * `commitSessionFlow.ts` (`commitDeviceSetAndResolve`) uses. The context methods
7
+ * (`signInWithPasskey` / `registerWithPasskey` / `addPasskey`) are thin wrappers
8
+ * that supply the real deps: the core `webauthn*` methods, the platform ceremony
9
+ * client (`webauthn/passkeyClient`), and the internal `commitSession` funnel.
10
+ *
11
+ * All three GATE on `isSupported()` first (the platform client returns `false`
12
+ * off the web) so an unsupported surface fails loudly before touching a ceremony.
13
+ */
14
+ import type { LoginResult } from '@oxyhq/contracts';
15
+ import type { CommitInput } from './oxyContextTypes';
16
+ /**
17
+ * The result of `OxyServices.webauthnRegisterVerify` — either the LINK branch
18
+ * (`{ success, message }`, bearer present, no session) or the SIGNUP branch (a
19
+ * full {@link LoginResult}, which carries a `sessionId` on its session arm).
20
+ */
21
+ export type PasskeyRegisterVerifyResult = {
22
+ success: true;
23
+ message: string;
24
+ } | LoginResult;
25
+ /** Thrown when a passkey flow is attempted on a surface that cannot run WebAuthn. */
26
+ export declare const PASSKEY_UNSUPPORTED_MESSAGE = "Passkeys are not available in this environment. Use another sign-in method.";
27
+ /** Injected dependencies for {@link runPasskeyLogin}. */
28
+ export interface RunPasskeyLoginDeps {
29
+ isSupported: () => boolean;
30
+ getLoginOptions: (username?: string) => Promise<unknown>;
31
+ runCeremony: (optionsJSON: unknown) => Promise<unknown>;
32
+ loginVerify: (response: unknown, envelope: {
33
+ deviceName?: string;
34
+ deviceFingerprint?: string;
35
+ deviceId?: string;
36
+ }) => Promise<LoginResult>;
37
+ commit: (input: CommitInput) => Promise<void>;
38
+ /**
39
+ * When present, scopes login options to that user's registered passkeys
40
+ * (username-first) — the path a NON-discoverable hardware key (e.g. a U2F
41
+ * security key) needs, since it can't be found by a usernameless ceremony.
42
+ * Omit for the discoverable / resident-credential path.
43
+ */
44
+ username?: string;
45
+ deviceId?: string;
46
+ deviceName?: string;
47
+ deviceFingerprint?: string;
48
+ }
49
+ /**
50
+ * Passkey SIGN-IN. With no `username` this is the usernameless
51
+ * (discoverable-credential) flow; with a `username` it is username-first —
52
+ * the server scopes `allowCredentials` to that user's passkeys so a
53
+ * non-discoverable hardware key (U2F/security key) can be selected. Either way:
54
+ * request login options, run the authentication ceremony, verify, then commit
55
+ * the session. A passkey assertion is itself the strong factor — sign-in always
56
+ * resolves to a completed session.
57
+ */
58
+ export declare function runPasskeyLogin(deps: RunPasskeyLoginDeps): Promise<void>;
59
+ /** Injected dependencies for {@link runPasskeyRegister}. */
60
+ export interface RunPasskeyRegisterDeps {
61
+ isSupported: () => boolean;
62
+ getRegisterOptions: (username: string) => Promise<unknown>;
63
+ runCeremony: (optionsJSON: unknown) => Promise<unknown>;
64
+ registerVerify: (response: unknown, envelope: {
65
+ username: string;
66
+ deviceName?: string;
67
+ }) => Promise<PasskeyRegisterVerifyResult>;
68
+ commit: (input: CommitInput) => Promise<void>;
69
+ username: string;
70
+ deviceName?: string;
71
+ }
72
+ /**
73
+ * Passkey SIGNUP: create a brand-new account whose first auth method is a
74
+ * passkey. The verify signup branch mints a session (a {@link LoginSessionResult}
75
+ * carrying `sessionId`), which is committed exactly like a password signup.
76
+ */
77
+ export declare function runPasskeyRegister(deps: RunPasskeyRegisterDeps): Promise<void>;
78
+ /** Injected dependencies for {@link runPasskeyAdd}. */
79
+ export interface RunPasskeyAddDeps {
80
+ isSupported: () => boolean;
81
+ getRegisterOptions: () => Promise<unknown>;
82
+ runCeremony: (optionsJSON: unknown) => Promise<unknown>;
83
+ registerVerify: (response: unknown, envelope: {
84
+ deviceName?: string;
85
+ }) => Promise<PasskeyRegisterVerifyResult>;
86
+ onLinked: () => void;
87
+ deviceName?: string;
88
+ }
89
+ /**
90
+ * ADD a passkey to the already-signed-in account (bearer present). The verify
91
+ * link branch returns `{ success, message }` with NO session — so this never
92
+ * commits a session; it just fires `onLinked` (which invalidates the
93
+ * auth-methods query). A session arm here would be a server contract violation.
94
+ */
95
+ export declare function runPasskeyAdd(deps: RunPasskeyAddDeps): Promise<void>;
96
+ //# sourceMappingURL=passkeyFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkeyFlow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/passkeyFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC;AAE3F,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,gFACuC,CAAC;AAehF,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,eAAe,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,WAAW,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,WAAW,EAAE,CACX,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAC7E,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9E;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,WAAW,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,cAAc,EAAE,CACd,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAChD,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpF;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,kBAAkB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,WAAW,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,cAAc,EAAE,CACd,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAC9B,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAW1E"}
@@ -32,14 +32,14 @@ export declare const useUpdateProfile: () => import("@tanstack/react-query").Use
32
32
  id: import("zod").ZodOptional<import("zod").ZodString>;
33
33
  }, "strip", import("zod").ZodTypeAny, {
34
34
  url: string;
35
- id?: string | undefined;
36
35
  description?: string | undefined;
36
+ id?: string | undefined;
37
37
  title?: string | undefined;
38
38
  image?: string | undefined;
39
39
  }, {
40
40
  url: string;
41
- id?: string | undefined;
42
41
  description?: string | undefined;
42
+ id?: string | undefined;
43
43
  title?: string | undefined;
44
44
  image?: string | undefined;
45
45
  }>, "many">>;
@@ -1 +1 @@
1
- {"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"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"}