@oxyhq/services 5.20.3 → 5.21.2

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 (33) hide show
  1. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +158 -19
  2. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -1
  3. package/lib/commonjs/ui/context/OxyContext.js +30 -20
  4. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  5. package/lib/commonjs/ui/hooks/useAuth.js +3 -4
  6. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  7. package/lib/commonjs/ui/hooks/useWebSSO.js +72 -0
  8. package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -1
  9. package/lib/module/core/mixins/OxyServices.fedcm.js +158 -19
  10. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -1
  11. package/lib/module/ui/context/OxyContext.js +30 -20
  12. package/lib/module/ui/context/OxyContext.js.map +1 -1
  13. package/lib/module/ui/hooks/useAuth.js +3 -4
  14. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  15. package/lib/module/ui/hooks/useWebSSO.js +72 -0
  16. package/lib/module/ui/hooks/useWebSSO.js.map +1 -1
  17. package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts +1 -0
  18. package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  19. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  20. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +2 -0
  22. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -1
  23. package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts +1 -0
  24. package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  25. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  26. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  27. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +2 -0
  28. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/src/core/mixins/OxyServices.fedcm.ts +160 -20
  31. package/src/ui/context/OxyContext.tsx +32 -9
  32. package/src/ui/hooks/useAuth.ts +3 -4
  33. package/src/ui/hooks/useWebSSO.ts +84 -0
@@ -64,12 +64,19 @@ export function useWebSSO({
64
64
  // Check FedCM support once
65
65
  const fedCMSupported = isWebBrowser() && oxyServices.isFedCMSupported?.();
66
66
  const checkSSO = useCallback(async () => {
67
+ console.log('[useWebSSO] checkSSO called', {
68
+ isWebBrowser: isWebBrowser(),
69
+ isChecking: isCheckingRef.current,
70
+ isIdP: isIdentityProvider(),
71
+ fedCMSupported
72
+ });
67
73
  if (!isWebBrowser() || isCheckingRef.current) {
68
74
  return null;
69
75
  }
70
76
 
71
77
  // Don't use FedCM on the auth domain itself - it would authenticate against itself
72
78
  if (isIdentityProvider()) {
79
+ console.log('[useWebSSO] Skipping - on identity provider domain');
73
80
  onSSOUnavailable?.();
74
81
  return null;
75
82
  }
@@ -77,24 +84,35 @@ export function useWebSSO({
77
84
  // FedCM is the only reliable cross-domain SSO mechanism
78
85
  // Third-party cookies are deprecated and unreliable
79
86
  if (!fedCMSupported) {
87
+ console.log('[useWebSSO] Skipping - FedCM not supported');
80
88
  onSSOUnavailable?.();
81
89
  return null;
82
90
  }
83
91
  isCheckingRef.current = true;
92
+ console.log('[useWebSSO] Starting FedCM silent sign-in...');
84
93
  try {
85
94
  // Use FedCM for cross-domain SSO
86
95
  // This works because browser treats IdP requests as first-party
87
96
  const session = await oxyServices.silentSignInWithFedCM?.();
97
+ console.log('[useWebSSO] FedCM result:', {
98
+ hasSession: !!session,
99
+ hasUser: !!session?.user,
100
+ hasSessionId: !!session?.sessionId
101
+ });
88
102
  if (session) {
103
+ console.log('[useWebSSO] Session found, calling onSessionFound...');
89
104
  await onSessionFound(session);
105
+ console.log('[useWebSSO] onSessionFound completed');
90
106
  return session;
91
107
  }
92
108
 
93
109
  // No session found - user needs to sign in
110
+ console.log('[useWebSSO] No session returned from FedCM');
94
111
  onSSOUnavailable?.();
95
112
  return null;
96
113
  } catch (error) {
97
114
  // FedCM failed - could be network error, user not signed in, etc.
115
+ console.error('[useWebSSO] FedCM error:', error);
98
116
  onSSOUnavailable?.();
99
117
  onError?.(error instanceof Error ? error : new Error(String(error)));
100
118
  return null;
@@ -103,9 +121,61 @@ export function useWebSSO({
103
121
  }
104
122
  }, [oxyServices, onSessionFound, onSSOUnavailable, onError, fedCMSupported]);
105
123
 
124
+ /**
125
+ * Trigger interactive FedCM sign-in
126
+ * This shows the browser's native "Sign in with Oxy" prompt.
127
+ * Use this when silent mediation fails (user hasn't previously consented).
128
+ */
129
+ const signInWithFedCM = useCallback(async () => {
130
+ console.log('[useWebSSO] signInWithFedCM called');
131
+ if (!isWebBrowser() || isCheckingRef.current) {
132
+ return null;
133
+ }
134
+ if (!fedCMSupported) {
135
+ console.log('[useWebSSO] FedCM not supported for interactive sign-in');
136
+ onError?.(new Error('FedCM is not supported in this browser'));
137
+ return null;
138
+ }
139
+ isCheckingRef.current = true;
140
+ console.log('[useWebSSO] Starting interactive FedCM sign-in...');
141
+ try {
142
+ // Use interactive sign-in (shows browser UI)
143
+ const session = await oxyServices.signInWithFedCM?.();
144
+ console.log('[useWebSSO] Interactive FedCM result:', {
145
+ hasSession: !!session,
146
+ hasUser: !!session?.user,
147
+ hasSessionId: !!session?.sessionId
148
+ });
149
+ if (session) {
150
+ console.log('[useWebSSO] Interactive session found, calling onSessionFound...');
151
+ await onSessionFound(session);
152
+ console.log('[useWebSSO] onSessionFound completed');
153
+ return session;
154
+ }
155
+ return null;
156
+ } catch (error) {
157
+ console.error('[useWebSSO] Interactive FedCM error:', error);
158
+ onError?.(error instanceof Error ? error : new Error(String(error)));
159
+ return null;
160
+ } finally {
161
+ isCheckingRef.current = false;
162
+ }
163
+ }, [oxyServices, onSessionFound, onError, fedCMSupported]);
164
+
106
165
  // Auto-check SSO on mount (web only, FedCM only, not on auth domain)
107
166
  useEffect(() => {
167
+ console.log('[useWebSSO] Effect running:', {
168
+ enabled,
169
+ isWeb: isWebBrowser(),
170
+ hasChecked: hasCheckedRef.current,
171
+ isIdP: isIdentityProvider(),
172
+ fedCMSupported,
173
+ hostname: typeof window !== 'undefined' ? window.location.hostname : 'unknown'
174
+ });
108
175
  if (!enabled || !isWebBrowser() || hasCheckedRef.current || isIdentityProvider()) {
176
+ console.log('[useWebSSO] Skipping SSO check:', {
177
+ reason: !enabled ? 'not enabled' : !isWebBrowser() ? 'not web' : hasCheckedRef.current ? 'already checked' : 'is IdP'
178
+ });
109
179
  if (isIdentityProvider()) {
110
180
  onSSOUnavailable?.();
111
181
  }
@@ -116,11 +186,13 @@ export function useWebSSO({
116
186
  checkSSO();
117
187
  } else {
118
188
  // Browser doesn't support FedCM - notify caller
189
+ console.log('[useWebSSO] FedCM not supported');
119
190
  onSSOUnavailable?.();
120
191
  }
121
192
  }, [enabled, checkSSO, fedCMSupported, onSSOUnavailable]);
122
193
  return {
123
194
  checkSSO,
195
+ signInWithFedCM,
124
196
  isChecking: isCheckingRef.current,
125
197
  isFedCMSupported: fedCMSupported
126
198
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useCallback","isWebBrowser","window","document","documentElement","isIdentityProvider","hostname","location","useWebSSO","oxyServices","onSessionFound","onSSOUnavailable","onError","enabled","isCheckingRef","hasCheckedRef","fedCMSupported","isFedCMSupported","checkSSO","current","session","silentSignInWithFedCM","error","Error","String","isChecking"],"sourceRoot":"../../../../src","sources":["ui/hooks/useWebSSO.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useCallback","isWebBrowser","window","document","documentElement","isIdentityProvider","hostname","location","useWebSSO","oxyServices","onSessionFound","onSSOUnavailable","onError","enabled","isCheckingRef","hasCheckedRef","fedCMSupported","isFedCMSupported","checkSSO","console","log","isChecking","current","isIdP","session","silentSignInWithFedCM","hasSession","hasUser","user","hasSessionId","sessionId","error","Error","String","signInWithFedCM","isWeb","hasChecked","reason"],"sourceRoot":"../../../../src","sources":["ui/hooks/useWebSSO.ts"],"mappings":"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","ignoreList":[]}
@@ -190,6 +190,7 @@ export declare function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(
190
190
  };
191
191
  readonly DEFAULT_CONFIG_URL: "https://auth.oxy.so/fedcm.json";
192
192
  readonly FEDCM_TIMEOUT: 60000;
193
+ readonly FEDCM_SILENT_TIMEOUT: 10000;
193
194
  /**
194
195
  * Check if FedCM is supported in the current browser
195
196
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.fedcm.d.ts","sourceRoot":"","sources":["../../../../../src/core/mixins/OxyServices.fedcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEtD,GAAG,EAAE;QAc5B;;WAEG;4BACiB,OAAO;QAI3B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;kCAC4B,gBAAgB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;QA2CpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6BG;iCAC4B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAiCnE;;;;;;;;;WASG;2CAC6C;YAC9C,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;SAChD,GAAG,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAgErC;;;;;;;WAOG;2CAC6C,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAStF;;;;;WAKG;iCAC4B,OAAO,CAAC,IAAI,CAAC;QAmB5C;;;;WAIG;0BACe,WAAW;QAQ7B;;;;WAIG;yBACqB,MAAM;QAQ9B;;;;WAIG;uBACmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAnKR,CAAC;sBAA0B,CAAC;yBAG5C,CAAD;;;;;;iBAkGW,CAAC;qBACL,CAAC;;;;iCAhPiC,gCAAgC;4BACrC,KAAK;IAE5C;;OAEG;wBACwB,OAAO;;MA8SnC;AAGD,OAAO,EAAE,qBAAqB,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"OxyServices.fedcm.d.ts","sourceRoot":"","sources":["../../../../../src/core/mixins/OxyServices.fedcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEtD,GAAG,EAAE;QAe5B;;WAEG;4BACiB,OAAO;QAI3B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;kCAC4B,gBAAgB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;QA0DpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6BG;iCAC4B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAoGnE;;;;;;;;;WASG;2CAC6C;YAC9C,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;SAChD,GAAG,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAgGrC;;;;;;;WAOG;2CAC6C,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAkCtF;;;;;WAKG;iCAC4B,OAAO,CAAC,IAAI,CAAC;QAmB5C;;;;WAIG;0BACe,WAAW;QAQ7B;;;;WAIG;yBACqB,MAAM;QAQ9B;;;;WAIG;uBACmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAtTtB,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBA2EhB,CAAC;qBAAwB,CAAC;;;;iCA9M9B,gCAAgC;4BACrC,KAAK;mCACE,KAAK;IAEnD;;OAEG;wBACwB,OAAO;;MAybnC;AAGD,OAAO,EAAE,qBAAqB,IAAI,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAMvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUtD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAGlC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAG3C,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;OAGG;IACH,kBAAkB,EAAE,CAAC,OAAO,EAAE;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,IAAI,CAAC;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAGpB,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,OAAO,CAC9B,KAAK,CAAC;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CACH,CAAC;IACF,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,GAAG;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,QAAA,MAAM,UAAU,uCAA8C,CAAC;AAE/D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AAgCD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAshBzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAE9C,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAElB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;IAEzB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IAEnB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,EAAE,WAAW;IAC3D,6DAA6D;IAC7D,WAAW,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,IAAI,aAAa,CAgHvC;AAGD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAElB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;IAEzB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IAEnB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,EAAE,WAAW;IAC3D,6DAA6D;IAC7D,WAAW,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,IAAI,aAAa,CA+GvC;AAGD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
@@ -26,6 +26,8 @@ interface UseWebSSOOptions {
26
26
  interface UseWebSSOResult {
27
27
  /** Manually trigger SSO check */
28
28
  checkSSO: () => Promise<SessionLoginResponse | null>;
29
+ /** Trigger interactive FedCM sign-in (shows browser UI) */
30
+ signInWithFedCM: () => Promise<SessionLoginResponse | null>;
29
31
  /** Whether SSO check is in progress */
30
32
  isChecking: boolean;
31
33
  /** Whether FedCM is supported in this browser */
@@ -1 +1 @@
1
- {"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,iBAAS,YAAY,IAAI,OAAO,CAI/B;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAc,GACf,EAAE,gBAAgB,GAAG,eAAe,CA0EpC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,eAAe,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC5D,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,iBAAS,YAAY,IAAI,OAAO,CAI/B;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAc,GACf,EAAE,gBAAgB,GAAG,eAAe,CA4JpC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -190,6 +190,7 @@ export declare function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(
190
190
  };
191
191
  readonly DEFAULT_CONFIG_URL: "https://auth.oxy.so/fedcm.json";
192
192
  readonly FEDCM_TIMEOUT: 60000;
193
+ readonly FEDCM_SILENT_TIMEOUT: 10000;
193
194
  /**
194
195
  * Check if FedCM is supported in the current browser
195
196
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.fedcm.d.ts","sourceRoot":"","sources":["../../../../../src/core/mixins/OxyServices.fedcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEtD,GAAG,EAAE;QAc5B;;WAEG;4BACiB,OAAO;QAI3B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;kCAC4B,gBAAgB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;QA2CpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6BG;iCAC4B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAiCnE;;;;;;;;;WASG;2CAC6C;YAC9C,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;SAChD,GAAG,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAgErC;;;;;;;WAOG;2CAC6C,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAStF;;;;;WAKG;iCAC4B,OAAO,CAAC,IAAI,CAAC;QAmB5C;;;;WAIG;0BACe,WAAW;QAQ7B;;;;WAIG;yBACqB,MAAM;QAQ9B;;;;WAIG;uBACmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAnKR,CAAC;sBAA0B,CAAC;yBAG5C,CAAD;;;;;;iBAkGW,CAAC;qBACL,CAAC;;;;iCAhPiC,gCAAgC;4BACrC,KAAK;IAE5C;;OAEG;wBACwB,OAAO;;MA8SnC;AAGD,OAAO,EAAE,qBAAqB,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"OxyServices.fedcm.d.ts","sourceRoot":"","sources":["../../../../../src/core/mixins/OxyServices.fedcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEtD,GAAG,EAAE;QAe5B;;WAEG;4BACiB,OAAO;QAI3B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;kCAC4B,gBAAgB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;QA0DpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6BG;iCAC4B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAoGnE;;;;;;;;;WASG;2CAC6C;YAC9C,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;SAChD,GAAG,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAgGrC;;;;;;;WAOG;2CAC6C,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAkCtF;;;;;WAKG;iCAC4B,OAAO,CAAC,IAAI,CAAC;QAmB5C;;;;WAIG;0BACe,WAAW;QAQ7B;;;;WAIG;yBACqB,MAAM;QAQ9B;;;;WAIG;uBACmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAtTtB,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBA2EhB,CAAC;qBAAwB,CAAC;;;;iCA9M9B,gCAAgC;4BACrC,KAAK;mCACE,KAAK;IAEnD;;OAEG;wBACwB,OAAO;;MAybnC;AAGD,OAAO,EAAE,qBAAqB,IAAI,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAElB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;IAEzB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IAEnB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,EAAE,WAAW;IAC3D,6DAA6D;IAC7D,WAAW,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,IAAI,aAAa,CAgHvC;AAGD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAElB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;IAEzB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IAEnB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,EAAE,WAAW;IAC3D,6DAA6D;IAC7D,WAAW,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,IAAI,aAAa,CA+GvC;AAGD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
@@ -26,6 +26,8 @@ interface UseWebSSOOptions {
26
26
  interface UseWebSSOResult {
27
27
  /** Manually trigger SSO check */
28
28
  checkSSO: () => Promise<SessionLoginResponse | null>;
29
+ /** Trigger interactive FedCM sign-in (shows browser UI) */
30
+ signInWithFedCM: () => Promise<SessionLoginResponse | null>;
29
31
  /** Whether SSO check is in progress */
30
32
  isChecking: boolean;
31
33
  /** Whether FedCM is supported in this browser */
@@ -1 +1 @@
1
- {"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,iBAAS,YAAY,IAAI,OAAO,CAI/B;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAc,GACf,EAAE,gBAAgB,GAAG,eAAe,CA0EpC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,eAAe,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC5D,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,iBAAS,YAAY,IAAI,OAAO,CAI/B;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAc,GACf,EAAE,gBAAgB,GAAG,eAAe,CA4JpC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.20.3",
3
+ "version": "5.21.2",
4
4
  "description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -46,7 +46,8 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
46
46
  super(...(args as [any]));
47
47
  }
48
48
  public static readonly DEFAULT_CONFIG_URL = 'https://auth.oxy.so/fedcm.json';
49
- public static readonly FEDCM_TIMEOUT = 60000; // 1 minute
49
+ public static readonly FEDCM_TIMEOUT = 60000; // 1 minute for interactive
50
+ public static readonly FEDCM_SILENT_TIMEOUT = 10000; // 10 seconds for silent mediation
50
51
 
51
52
  /**
52
53
  * Check if FedCM is supported in the current browser
@@ -98,6 +99,10 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
98
99
  const nonce = options.nonce || this.generateNonce();
99
100
  const clientId = this.getClientId();
100
101
 
102
+ if (typeof __DEV__ !== 'undefined' && __DEV__) {
103
+ console.log('[FedCM] Interactive sign-in: Requesting credential for', clientId);
104
+ }
105
+
101
106
  // Request credential from browser's native identity flow
102
107
  const credential = await this.requestIdentityCredential({
103
108
  configURL: (this.constructor as any).DEFAULT_CONFIG_URL,
@@ -110,6 +115,10 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
110
115
  throw new OxyAuthenticationError('No credential received from browser');
111
116
  }
112
117
 
118
+ if (typeof __DEV__ !== 'undefined' && __DEV__) {
119
+ console.log('[FedCM] Interactive sign-in: Got credential, exchanging for session');
120
+ }
121
+
113
122
  // Exchange FedCM ID token for Oxy session
114
123
  const session = await this.exchangeIdTokenForSession(credential.token);
115
124
 
@@ -118,8 +127,15 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
118
127
  this.httpService.setTokens((session as any).accessToken);
119
128
  }
120
129
 
130
+ if (typeof __DEV__ !== 'undefined' && __DEV__) {
131
+ console.log('[FedCM] Interactive sign-in: Success!', { userId: (session as any)?.user?.id });
132
+ }
133
+
121
134
  return session;
122
135
  } catch (error) {
136
+ if (typeof __DEV__ !== 'undefined' && __DEV__) {
137
+ console.log('[FedCM] Interactive sign-in failed:', error);
138
+ }
123
139
  if ((error as any).name === 'AbortError') {
124
140
  throw new OxyAuthenticationError('Sign-in was cancelled by user');
125
141
  }
@@ -162,35 +178,102 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
162
178
  */
163
179
  async silentSignInWithFedCM(): Promise<SessionLoginResponse | null> {
164
180
  if (!this.isFedCMSupported()) {
181
+ console.log('[FedCM] Silent SSO: FedCM not supported in this browser');
165
182
  return null;
166
183
  }
167
184
 
185
+ const clientId = this.getClientId();
186
+ console.log('[FedCM] Silent SSO: Starting for', clientId);
187
+
188
+ // First try silent mediation (no UI) - works if user previously consented
189
+ let credential: { token: string } | null = null;
190
+
168
191
  try {
169
192
  const nonce = this.generateNonce();
170
- const clientId = this.getClientId();
193
+ console.log('[FedCM] Silent SSO: Attempting silent mediation...');
171
194
 
172
- // Request credential with silent mediation (no UI)
173
- const credential = await this.requestIdentityCredential({
195
+ credential = await this.requestIdentityCredential({
174
196
  configURL: (this.constructor as any).DEFAULT_CONFIG_URL,
175
197
  clientId,
176
198
  nonce,
177
199
  mediation: 'silent',
178
200
  });
179
201
 
180
- if (!credential || !credential.token) {
202
+ console.log('[FedCM] Silent SSO: Silent mediation result:', { hasCredential: !!credential, hasToken: !!credential?.token });
203
+ } catch (silentError) {
204
+ // Silent mediation failed - this is expected if user hasn't consented before or is in quiet period
205
+ const errorName = silentError instanceof Error ? silentError.name : 'Unknown';
206
+ const errorMessage = silentError instanceof Error ? silentError.message : String(silentError);
207
+ console.log('[FedCM] Silent SSO: Silent mediation error (will try optional):', { name: errorName, message: errorMessage });
208
+ }
209
+
210
+ // If silent failed, try optional mediation which shows browser UI if needed
211
+ if (!credential || !credential.token) {
212
+ try {
213
+ const nonce = this.generateNonce();
214
+ console.log('[FedCM] Silent SSO: Trying optional mediation (may show browser UI)...');
215
+
216
+ credential = await this.requestIdentityCredential({
217
+ configURL: (this.constructor as any).DEFAULT_CONFIG_URL,
218
+ clientId,
219
+ nonce,
220
+ mediation: 'optional',
221
+ });
222
+
223
+ console.log('[FedCM] Silent SSO: Optional mediation result:', { hasCredential: !!credential, hasToken: !!credential?.token });
224
+ } catch (optionalError) {
225
+ const errorName = optionalError instanceof Error ? optionalError.name : 'Unknown';
226
+ const errorMessage = optionalError instanceof Error ? optionalError.message : String(optionalError);
227
+ console.log('[FedCM] Silent SSO: Optional mediation also failed:', { name: errorName, message: errorMessage });
181
228
  return null;
182
229
  }
230
+ }
183
231
 
184
- const session = await this.exchangeIdTokenForSession(credential.token);
185
- if (session && (session as any).accessToken) {
186
- this.httpService.setTokens((session as any).accessToken);
187
- }
232
+ if (!credential || !credential.token) {
233
+ console.log('[FedCM] Silent SSO: No credential returned (user may have dismissed prompt or is not logged in at IdP)');
234
+ return null;
235
+ }
188
236
 
189
- return session;
190
- } catch (error) {
191
- // Silent failures are expected and should not throw
237
+ console.log('[FedCM] Silent SSO: Got credential, exchanging for session...');
238
+
239
+ let session: SessionLoginResponse;
240
+ try {
241
+ session = await this.exchangeIdTokenForSession(credential.token);
242
+ } catch (exchangeError) {
243
+ console.error('[FedCM] Silent SSO: Token exchange failed:', exchangeError);
244
+ return null;
245
+ }
246
+
247
+ // Validate session response has required fields
248
+ if (!session) {
249
+ console.error('[FedCM] Silent SSO: Exchange returned null session');
250
+ return null;
251
+ }
252
+
253
+ if (!session.sessionId) {
254
+ console.error('[FedCM] Silent SSO: Exchange returned session without sessionId:', session);
255
+ return null;
256
+ }
257
+
258
+ if (!session.user) {
259
+ console.error('[FedCM] Silent SSO: Exchange returned session without user:', session);
192
260
  return null;
193
261
  }
262
+
263
+ // Set the access token
264
+ if ((session as any).accessToken) {
265
+ this.httpService.setTokens((session as any).accessToken);
266
+ console.log('[FedCM] Silent SSO: Access token set');
267
+ } else {
268
+ console.warn('[FedCM] Silent SSO: No accessToken in session response');
269
+ }
270
+
271
+ console.log('[FedCM] Silent SSO: Success!', {
272
+ sessionId: session.sessionId?.substring(0, 8) + '...',
273
+ userId: session.user?.id
274
+ });
275
+
276
+ return session;
194
277
  }
195
278
 
196
279
  /**
@@ -213,8 +296,15 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
213
296
  const requestedMediation = options.mediation || 'optional';
214
297
  const isInteractive = requestedMediation !== 'silent';
215
298
 
299
+ console.log('[FedCM] requestIdentityCredential called:', {
300
+ mediation: requestedMediation,
301
+ clientId: options.clientId,
302
+ inProgress: fedCMRequestInProgress,
303
+ });
304
+
216
305
  // If a request is already in progress...
217
306
  if (fedCMRequestInProgress && fedCMRequestPromise) {
307
+ console.log('[FedCM] Request already in progress, waiting...');
218
308
  // If current request is silent and new request is interactive,
219
309
  // wait for silent to finish, then make the interactive request
220
310
  if (currentMediationMode === 'silent' && isInteractive) {
@@ -237,10 +327,18 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
237
327
  fedCMRequestInProgress = true;
238
328
  currentMediationMode = requestedMediation;
239
329
  const controller = new AbortController();
240
- const timeout = setTimeout(() => controller.abort(), (this.constructor as any).FEDCM_TIMEOUT);
330
+ // Use shorter timeout for silent mediation since it should be quick
331
+ const timeoutMs = requestedMediation === 'silent'
332
+ ? (this.constructor as any).FEDCM_SILENT_TIMEOUT
333
+ : (this.constructor as any).FEDCM_TIMEOUT;
334
+ const timeout = setTimeout(() => {
335
+ console.log('[FedCM] Request timed out after', timeoutMs, 'ms (mediation:', requestedMediation + ')');
336
+ controller.abort();
337
+ }, timeoutMs);
241
338
 
242
339
  fedCMRequestPromise = (async () => {
243
340
  try {
341
+ console.log('[FedCM] Calling navigator.credentials.get with mediation:', requestedMediation);
244
342
  // Type assertion needed as FedCM types may not be in all TypeScript versions
245
343
  const credential = (await (navigator.credentials as any).get({
246
344
  identity: {
@@ -248,7 +346,11 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
248
346
  {
249
347
  configURL: options.configURL,
250
348
  clientId: options.clientId,
251
- nonce: options.nonce,
349
+ // Send nonce at both levels for backward compatibility
350
+ nonce: options.nonce, // For older browsers
351
+ params: {
352
+ nonce: options.nonce, // For Chrome 145+
353
+ },
252
354
  ...(options.context && { loginHint: options.context }),
253
355
  },
254
356
  ],
@@ -257,11 +359,24 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
257
359
  signal: controller.signal,
258
360
  })) as any;
259
361
 
362
+ console.log('[FedCM] navigator.credentials.get returned:', {
363
+ hasCredential: !!credential,
364
+ type: credential?.type,
365
+ hasToken: !!credential?.token,
366
+ });
367
+
260
368
  if (!credential || credential.type !== 'identity') {
369
+ console.log('[FedCM] No valid identity credential returned');
261
370
  return null;
262
371
  }
263
372
 
373
+ console.log('[FedCM] Got valid identity credential with token');
264
374
  return { token: credential.token };
375
+ } catch (error) {
376
+ const errorName = error instanceof Error ? error.name : 'Unknown';
377
+ const errorMessage = error instanceof Error ? error.message : String(error);
378
+ console.log('[FedCM] navigator.credentials.get error:', { name: errorName, message: errorMessage });
379
+ throw error;
265
380
  } finally {
266
381
  clearTimeout(timeout);
267
382
  fedCMRequestInProgress = false;
@@ -282,12 +397,37 @@ export function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T)
282
397
  * @private
283
398
  */
284
399
  public async exchangeIdTokenForSession(idToken: string): Promise<SessionLoginResponse> {
285
- return this.makeRequest<SessionLoginResponse>(
286
- 'POST',
287
- '/api/fedcm/exchange',
288
- { id_token: idToken },
289
- { cache: false }
290
- );
400
+ console.log('[FedCM] exchangeIdTokenForSession: Starting exchange...');
401
+ console.log('[FedCM] exchangeIdTokenForSession: Token length:', idToken?.length);
402
+ console.log('[FedCM] exchangeIdTokenForSession: Token preview:', idToken?.substring(0, 50) + '...');
403
+
404
+ try {
405
+ const response = await this.makeRequest<SessionLoginResponse>(
406
+ 'POST',
407
+ '/api/fedcm/exchange',
408
+ { id_token: idToken },
409
+ { cache: false }
410
+ );
411
+
412
+ console.log('[FedCM] exchangeIdTokenForSession: Response received:', {
413
+ hasResponse: !!response,
414
+ hasSessionId: !!(response as any)?.sessionId,
415
+ hasUser: !!(response as any)?.user,
416
+ hasAccessToken: !!(response as any)?.accessToken,
417
+ userId: (response as any)?.user?.id,
418
+ username: (response as any)?.user?.username,
419
+ responseKeys: response ? Object.keys(response) : [],
420
+ });
421
+
422
+ return response;
423
+ } catch (error) {
424
+ console.error('[FedCM] exchangeIdTokenForSession: Error:', {
425
+ name: error instanceof Error ? error.name : 'Unknown',
426
+ message: error instanceof Error ? error.message : String(error),
427
+ stack: error instanceof Error ? error.stack : undefined,
428
+ });
429
+ throw error;
430
+ }
291
431
  }
292
432
 
293
433
  /**
@@ -428,16 +428,20 @@ export const OxyProvider: React.FC<OxyContextProviderProps> = ({
428
428
  // Web SSO: Automatically check for cross-domain session on web platforms
429
429
  // Also used for popup auth - updates all state and persists session
430
430
  const handleWebSSOSession = useCallback(async (session: any) => {
431
+ console.log('[OxyContext] handleWebSSOSession called:', {
432
+ hasSession: !!session,
433
+ hasUser: !!session?.user,
434
+ hasSessionId: !!session?.sessionId,
435
+ sessionIdPrefix: session?.sessionId?.substring(0, 8),
436
+ userId: session?.user?.id,
437
+ });
438
+
431
439
  if (!session?.user || !session?.sessionId) {
432
- if (__DEV__) {
433
- loggerUtil.warn('handleWebSSOSession called with invalid session', { component: 'OxyContext' }, { session });
434
- }
440
+ console.warn('[OxyContext] handleWebSSOSession: Invalid session - missing user or sessionId');
435
441
  return;
436
442
  }
437
443
 
438
- if (__DEV__) {
439
- loggerUtil.debug('handleWebSSOSession: Updating auth state', { component: 'OxyContext' }, { sessionId: session.sessionId, userId: session.user?.id });
440
- }
444
+ console.log('[OxyContext] handleWebSSOSession: Processing valid session...');
441
445
 
442
446
  // Update sessions state
443
447
  const clientSession = {
@@ -463,15 +467,34 @@ export const OxyProvider: React.FC<OxyContextProviderProps> = ({
463
467
  sessionIds.push(session.sessionId);
464
468
  await storage.setItem(storageKeys.sessionIds, JSON.stringify(sessionIds));
465
469
  }
466
- if (__DEV__) {
467
- loggerUtil.debug('handleWebSSOSession: Session persisted to storage', { component: 'OxyContext' });
468
- }
470
+ console.log('[OxyContext] handleWebSSOSession: Session persisted to storage', {
471
+ sessionId: session.sessionId?.substring(0, 8),
472
+ totalSessions: sessionIds.length,
473
+ });
474
+ } else {
475
+ console.warn('[OxyContext] handleWebSSOSession: No storage available, session not persisted!');
469
476
  }
477
+
478
+ console.log('[OxyContext] handleWebSSOSession: Complete! User should now be authenticated.');
470
479
  }, [updateSessions, setActiveSessionId, loginSuccess, onAuthStateChange, storage, storageKeys]);
471
480
 
472
481
  // Enable web SSO only after local storage check completes and no user found
473
482
  const shouldTryWebSSO = isWebBrowser() && tokenReady && !user && initializedRef.current;
474
483
 
484
+ // Debug logging for SSO conditions
485
+ useEffect(() => {
486
+ if (isWebBrowser()) {
487
+ console.log('[OxyContext] Web SSO conditions:', {
488
+ isWebBrowser: true,
489
+ tokenReady,
490
+ hasUser: !!user,
491
+ initialized: initializedRef.current,
492
+ shouldTryWebSSO,
493
+ hostname: typeof window !== 'undefined' ? window.location.hostname : 'unknown',
494
+ });
495
+ }
496
+ }, [tokenReady, user, shouldTryWebSSO]);
497
+
475
498
  useWebSSO({
476
499
  oxyServices,
477
500
  onSessionFound: handleWebSSOSession,