@oxy.so/services 11.0.0 → 11.2.0-oxy-one.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.
- package/lib/commonjs/index.js +13 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/boot/runProviderColdBoot.js +14 -1
- package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +25 -7
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +198 -41
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/commitSessionFlow.js +5 -0
- package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +56 -9
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/isolatedOAuthSession.js +52 -0
- package/lib/commonjs/ui/context/isolatedOAuthSession.js.map +1 -0
- package/lib/commonjs/ui/context/useOxyAccountGraph.js +7 -5
- package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/usePersonalPlans.js +43 -0
- package/lib/commonjs/ui/hooks/queries/usePersonalPlans.js.map +1 -0
- package/lib/commonjs/ui/hooks/useAuth.js +7 -3
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/oauth/applicationSessionLane.js +32 -0
- package/lib/commonjs/ui/oauth/applicationSessionLane.js.map +1 -0
- package/lib/commonjs/ui/oauth/completeOAuthCode.js +4 -2
- package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -1
- package/lib/commonjs/ui/oauth/nativeAuthTransport.js +119 -0
- package/lib/commonjs/ui/oauth/nativeAuthTransport.js.map +1 -0
- package/lib/commonjs/ui/session/createSessionClient.js +14 -2
- package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
- package/lib/commonjs/ui/session/deviceCredentialTracker.js +8 -0
- package/lib/commonjs/ui/session/deviceCredentialTracker.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/boot/runProviderColdBoot.js +14 -1
- package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +25 -7
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +200 -43
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/commitSessionFlow.js +5 -0
- package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +56 -9
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/isolatedOAuthSession.js +44 -0
- package/lib/module/ui/context/isolatedOAuthSession.js.map +1 -0
- package/lib/module/ui/context/useOxyAccountGraph.js +7 -5
- package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
- package/lib/module/ui/hooks/queries/usePersonalPlans.js +39 -0
- package/lib/module/ui/hooks/queries/usePersonalPlans.js.map +1 -0
- package/lib/module/ui/hooks/useAuth.js +7 -3
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/oauth/applicationSessionLane.js +26 -0
- package/lib/module/ui/oauth/applicationSessionLane.js.map +1 -0
- package/lib/module/ui/oauth/completeOAuthCode.js +4 -2
- package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -1
- package/lib/module/ui/oauth/nativeAuthTransport.js +115 -0
- package/lib/module/ui/oauth/nativeAuthTransport.js.map +1 -0
- package/lib/module/ui/session/createSessionClient.js +14 -2
- package/lib/module/ui/session/createSessionClient.js.map +1 -1
- package/lib/module/ui/session/deviceCredentialTracker.js +8 -0
- package/lib/module/ui/session/deviceCredentialTracker.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +7 -0
- package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +2 -0
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +3 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +2 -0
- package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +3 -2
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/isolatedOAuthSession.d.ts +19 -0
- package/lib/typescript/commonjs/ui/context/isolatedOAuthSession.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +3 -0
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +2 -1
- package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +6 -0
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts +64 -0
- package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/oauth/applicationSessionLane.d.ts +6 -0
- package/lib/typescript/commonjs/ui/oauth/applicationSessionLane.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/oauth/completeOAuthCode.d.ts +2 -2
- package/lib/typescript/commonjs/ui/oauth/nativeAuthTransport.d.ts +28 -0
- package/lib/typescript/commonjs/ui/oauth/nativeAuthTransport.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +1 -1
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +7 -0
- package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts +2 -0
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +3 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +2 -0
- package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +3 -2
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/isolatedOAuthSession.d.ts +19 -0
- package/lib/typescript/module/ui/context/isolatedOAuthSession.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +3 -0
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +2 -1
- package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +6 -0
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts +64 -0
- package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/oauth/applicationSessionLane.d.ts +6 -0
- package/lib/typescript/module/ui/oauth/applicationSessionLane.d.ts.map +1 -0
- package/lib/typescript/module/ui/oauth/completeOAuthCode.d.ts +2 -2
- package/lib/typescript/module/ui/oauth/nativeAuthTransport.d.ts +28 -0
- package/lib/typescript/module/ui/oauth/nativeAuthTransport.d.ts.map +1 -0
- package/lib/typescript/module/ui/session/createSessionClient.d.ts +1 -1
- package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts.map +1 -1
- package/package.json +30 -30
- package/src/index.ts +4 -0
- package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +56 -2
- package/src/ui/boot/runProviderColdBoot.ts +22 -2
- package/src/ui/components/OxySignInButton.tsx +20 -4
- package/src/ui/context/OxyContext.tsx +171 -40
- package/src/ui/context/__tests__/commitSessionFlow.test.ts +13 -0
- package/src/ui/context/__tests__/isolatedOAuthSession.test.ts +35 -0
- package/src/ui/context/commitSessionFlow.ts +8 -0
- package/src/ui/context/hooks/useAuthOperations.ts +55 -9
- package/src/ui/context/isolatedOAuthSession.ts +48 -0
- package/src/ui/context/oxyContextTypes.ts +4 -0
- package/src/ui/context/useOxyAccountGraph.ts +8 -5
- package/src/ui/hooks/queries/usePersonalPlans.ts +23 -0
- package/src/ui/hooks/useAuth.ts +6 -2
- package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +1 -1
- package/src/ui/oauth/__tests__/nativeAuthTransport.test.ts +57 -0
- package/src/ui/oauth/__tests__/oauthBearerCommit.http.test.ts +131 -0
- package/src/ui/oauth/applicationSessionLane.ts +26 -0
- package/src/ui/oauth/completeOAuthCode.ts +3 -3
- package/src/ui/oauth/nativeAuthTransport.ts +67 -0
- package/src/ui/session/createSessionClient.ts +13 -1
- package/src/ui/session/deviceCredentialTracker.ts +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_oxyContextHelpers","_index","useOxyAccountGraph","isAuthenticated","tokenReady","initialized","identityBound","oxyServices","sessionClient","syncFromClient","commitSession","accountDialogControllerRef","clearSessionStateRef","accounts","setAccounts","useState","refreshAccounts","useCallback","session","accessToken","list","err","isUnauthorizedStatus","current","__DEV__","loggerUtil","debug","component","useEffect","refresh","switchToAccount","accountId","IdentityBoundSessionError","deviceState","getState","some","account","switchAccount","result","actAs","user","sessionId","
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_oxyContextHelpers","_index","useOxyAccountGraph","isAuthenticated","tokenReady","initialized","identityBound","isolatedOAuth","oxyServices","sessionClient","syncFromClient","commitSession","accountDialogControllerRef","clearSessionStateRef","accounts","setAccounts","useState","refreshAccounts","useCallback","session","accessToken","list","err","isUnauthorizedStatus","current","__DEV__","loggerUtil","debug","component","useEffect","refresh","switchToAccount","accountId","Error","IdentityBoundSessionError","deviceState","getState","some","account","switchAccount","result","actAs","user","sessionId","deviceSecret","deviceId","expiresAt","userId","id","activate","createAccount","data","create"],"sourceRoot":"../../../../src","sources":["ui/context/useOxyAccountGraph.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.usePersonalPlanSubscriptions = usePersonalPlanSubscriptions;
|
|
7
|
+
exports.usePersonalPlans = usePersonalPlans;
|
|
8
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
9
|
+
var _core = require("@oxy.so/core");
|
|
10
|
+
var _OxyContext = require("../../context/OxyContext.js");
|
|
11
|
+
/** Public discovery; deliberately outside persisted customer payment queries. */
|
|
12
|
+
function usePersonalPlans() {
|
|
13
|
+
const {
|
|
14
|
+
oxyServices
|
|
15
|
+
} = (0, _OxyContext.useOxy)();
|
|
16
|
+
return (0, _reactQuery.useQuery)({
|
|
17
|
+
queryKey: ['personal-plan-catalogue'],
|
|
18
|
+
queryFn: () => oxyServices.billing.personalPlans(),
|
|
19
|
+
staleTime: 0
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Account and session partitioning plus a server-side expected-subject fence. */
|
|
24
|
+
function usePersonalPlanSubscriptions() {
|
|
25
|
+
const {
|
|
26
|
+
oxyServices,
|
|
27
|
+
user,
|
|
28
|
+
isAuthenticated,
|
|
29
|
+
activeSessionId
|
|
30
|
+
} = (0, _OxyContext.useOxy)();
|
|
31
|
+
const accountId = user?.id;
|
|
32
|
+
return (0, _reactQuery.useQuery)({
|
|
33
|
+
queryKey: ['personal-plan-sources', accountId, activeSessionId],
|
|
34
|
+
queryFn: () => {
|
|
35
|
+
if (!accountId) throw new Error('Authentication required');
|
|
36
|
+
return (0, _core.authenticatedApiCall)(oxyServices, activeSessionId, () => oxyServices.billing.productSubscriptions(accountId));
|
|
37
|
+
},
|
|
38
|
+
enabled: isAuthenticated && !!accountId,
|
|
39
|
+
staleTime: 0,
|
|
40
|
+
gcTime: 0
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=usePersonalPlans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_core","_OxyContext","usePersonalPlans","oxyServices","useOxy","useQuery","queryKey","queryFn","billing","personalPlans","staleTime","usePersonalPlanSubscriptions","user","isAuthenticated","activeSessionId","accountId","id","Error","authenticatedApiCall","productSubscriptions","enabled","gcTime"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/usePersonalPlans.ts"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA;AACO,SAASG,gBAAgBA,CAAA,EAAG;EACjC,MAAM;IAAEC;EAAY,CAAC,GAAG,IAAAC,kBAAM,EAAC,CAAC;EAChC,OAAO,IAAAC,oBAAQ,EAAC;IAAEC,QAAQ,EAAE,CAAC,yBAAyB,CAAC;IACrDC,OAAO,EAAEA,CAAA,KAAMJ,WAAW,CAACK,OAAO,CAACC,aAAa,CAAC,CAAC;IAAEC,SAAS,EAAE;EAAE,CAAC,CAAC;AACvE;;AAEA;AACO,SAASC,4BAA4BA,CAAA,EAAG;EAC7C,MAAM;IAAER,WAAW;IAAES,IAAI;IAAEC,eAAe;IAAEC;EAAgB,CAAC,GAAG,IAAAV,kBAAM,EAAC,CAAC;EACxE,MAAMW,SAAS,GAAGH,IAAI,EAAEI,EAAE;EAC1B,OAAO,IAAAX,oBAAQ,EAAC;IAAEC,QAAQ,EAAE,CAAC,uBAAuB,EAAES,SAAS,EAAED,eAAe,CAAC;IAC/EP,OAAO,EAAEA,CAAA,KAAM;MACb,IAAI,CAACQ,SAAS,EAAE,MAAM,IAAIE,KAAK,CAAC,yBAAyB,CAAC;MAC1D,OAAO,IAAAC,0BAAoB,EAACf,WAAW,EAAEW,eAAe,EACtD,MAAMX,WAAW,CAACK,OAAO,CAACW,oBAAoB,CAACJ,SAAS,CAAC,CAAC;IAC9D,CAAC;IACDK,OAAO,EAAEP,eAAe,IAAI,CAAC,CAACE,SAAS;IAAEL,SAAS,EAAE,CAAC;IAAEW,MAAM,EAAE;EAAE,CAAC,CAAC;AACvE","ignoreList":[]}
|
|
@@ -83,9 +83,12 @@ function useAuth() {
|
|
|
83
83
|
getPublicKey,
|
|
84
84
|
showBottomSheet,
|
|
85
85
|
openAvatarPicker,
|
|
86
|
-
openAccountDialog
|
|
86
|
+
openAccountDialog,
|
|
87
|
+
ensureDeviceSessionLane
|
|
87
88
|
} = (0, _OxyContext.useOxyAuthActions)();
|
|
88
89
|
const signIn = (0, _react.useCallback)(async publicKey => {
|
|
90
|
+
const classification = ensureDeviceSessionLane();
|
|
91
|
+
if (classification) await classification;
|
|
89
92
|
// Native: sign in directly with the cryptographic identity when a public key
|
|
90
93
|
// is provided, or an existing keychain identity is found.
|
|
91
94
|
if (publicKey) {
|
|
@@ -116,9 +119,10 @@ function useAuth() {
|
|
|
116
119
|
return {
|
|
117
120
|
status: 'dialog-opened'
|
|
118
121
|
};
|
|
119
|
-
}, [oxySignIn, hasIdentity, getPublicKey, openAccountDialog]);
|
|
122
|
+
}, [oxySignIn, hasIdentity, getPublicKey, openAccountDialog, ensureDeviceSessionLane]);
|
|
120
123
|
const signOut = (0, _react.useCallback)(async () => {
|
|
121
|
-
await logout();
|
|
124
|
+
const result = await logout();
|
|
125
|
+
if (result.status === 'failed') throw result.error;
|
|
122
126
|
}, [logout]);
|
|
123
127
|
const signOutAll = (0, _react.useCallback)(async () => {
|
|
124
128
|
await logoutAll();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_OxyContext","_isWebBrowser","_index","selectAuthState","snapshot","user","account","isAuthenticated","isLoading","isReady","tokenReady","hasAccessToken","canUsePrivateApi","authResolved","isPrivateApiPending","isAuthResolved","error","message","authStatesEqual","left","right","useAuth","runtime","useOxyRuntime","useRuntimeSelector","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","switchToAccount","hasIdentity","getPublicKey","showBottomSheet","openAvatarPicker","openAccountDialog","useOxyAuthActions","useCallback","publicKey","status","isWebBrowser","hasExisting","existingKey","signOut","signOutAll","refresh"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":";;;;;;AA4BA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAhCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8FA,MAAMI,eAAe,GAAIC,QAA4B,KAAiB;EACpEC,IAAI,EAAED,QAAQ,CAACE,OAAO;EACtBC,eAAe,EAAEH,QAAQ,CAACE,OAAO,KAAK,IAAI;EAC1CE,SAAS,EAAEJ,QAAQ,CAACI,SAAS;EAC7BC,OAAO,EAAEL,QAAQ,CAACM,UAAU;EAC5BC,cAAc,EAAEP,QAAQ,CAACO,cAAc;EACvCC,gBAAgB,EAAER,QAAQ,CAACS,YAAY,IAClCT,QAAQ,CAACE,OAAO,KAAK,IAAI,IACzBF,QAAQ,CAACM,UAAU,IACnBN,QAAQ,CAACO,cAAc;EAC5BG,mBAAmB,EAAE,CAACV,QAAQ,CAACS,YAAY,IACrCT,QAAQ,CAACE,OAAO,KAAK,IAAI,KAAK,CAACF,QAAQ,CAACM,UAAU,IAAI,CAACN,QAAQ,CAACO,cAAc,CAAE;EACtFI,cAAc,EAAEX,QAAQ,CAACS,YAAY;EACrCG,KAAK,EAAEZ,QAAQ,CAACY,KAAK,EAAEC,OAAO,IAAI;AACpC,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAGA,CAACC,IAAe,EAAEC,KAAgB,KACxDD,IAAI,CAACd,IAAI,KAAKe,KAAK,CAACf,IAAI,IACrBc,IAAI,CAACZ,eAAe,KAAKa,KAAK,CAACb,eAAe,IAC9CY,IAAI,CAACX,SAAS,KAAKY,KAAK,CAACZ,SAAS,IAClCW,IAAI,CAACV,OAAO,KAAKW,KAAK,CAACX,OAAO,IAC9BU,IAAI,CAACR,cAAc,KAAKS,KAAK,CAACT,cAAc,IAC5CQ,IAAI,CAACP,gBAAgB,KAAKQ,KAAK,CAACR,gBAAgB,IAChDO,IAAI,CAACL,mBAAmB,KAAKM,KAAK,CAACN,mBAAmB,IACtDK,IAAI,CAACJ,cAAc,KAAKK,KAAK,CAACL,cAAc,IAC5CI,IAAI,CAACH,KAAK,KAAKI,KAAK,CAACJ,KAAK;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,OAAOA,CAAA,EAAkB;EACvC,MAAMC,OAAO,GAAG,IAAAC,oBAAa,EAAC,CAAC;EAC/B,MAAM;IACJlB,IAAI;IACJE,eAAe;IACfC,SAAS;IACTC,OAAO;IACPE,cAAc;IACdC,gBAAgB;IAChBE,mBAAmB;IACnBC,cAAc;IACdC;EACF,CAAC,GAAG,IAAAQ,yBAAkB,EAACF,OAAO,EAAEnB,eAAe,EAAEe,eAAe,CAAC;EACjE,MAAM;IACJO,MAAM,EAAEC,SAAS;IACjBC,MAAM;IACNC,SAAS;IACTC,eAAe;IACfC,WAAW;IACXC,eAAe;IACfC,WAAW;IACXC,YAAY;IACZC,eAAe;IACfC,gBAAgB;IAChBC;EACF,CAAC,GAAG,IAAAC,6BAAiB,EAAC,CAAC;EAEvB,
|
|
1
|
+
{"version":3,"names":["_react","require","_OxyContext","_isWebBrowser","_index","selectAuthState","snapshot","user","account","isAuthenticated","isLoading","isReady","tokenReady","hasAccessToken","canUsePrivateApi","authResolved","isPrivateApiPending","isAuthResolved","error","message","authStatesEqual","left","right","useAuth","runtime","useOxyRuntime","useRuntimeSelector","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","switchToAccount","hasIdentity","getPublicKey","showBottomSheet","openAvatarPicker","openAccountDialog","ensureDeviceSessionLane","useOxyAuthActions","useCallback","publicKey","classification","status","isWebBrowser","hasExisting","existingKey","signOut","result","signOutAll","refresh"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.APPLICATION_CLASSIFICATION_DEADLINE_MS = void 0;
|
|
7
|
+
exports.classifyApplicationSessionLane = classifyApplicationSessionLane;
|
|
8
|
+
exports.resolveApplicationSessionLane = resolveApplicationSessionLane;
|
|
9
|
+
var _contracts = require("@oxy.so/contracts");
|
|
10
|
+
function classifyApplicationSessionLane(metadata) {
|
|
11
|
+
const application = _contracts.publicApplicationSchema.parse(metadata);
|
|
12
|
+
return application.type === 'third_party' && !application.isOfficial && !application.isInternal ? 'oauth' : 'device';
|
|
13
|
+
}
|
|
14
|
+
const APPLICATION_CLASSIFICATION_DEADLINE_MS = exports.APPLICATION_CLASSIFICATION_DEADLINE_MS = 5000;
|
|
15
|
+
|
|
16
|
+
/** The active registry projection is authoritative; names and origins confer no trust. */
|
|
17
|
+
async function resolveApplicationSessionLane(oxyServices, clientId) {
|
|
18
|
+
if (!clientId) throw new Error('A registered clientId is required');
|
|
19
|
+
// The public endpoint rejects inactive applications and unusable credentials.
|
|
20
|
+
let timer;
|
|
21
|
+
try {
|
|
22
|
+
const metadata = await Promise.race([oxyServices.apps.getPublic(clientId, {
|
|
23
|
+
cache: false
|
|
24
|
+
}), new Promise((_, reject) => {
|
|
25
|
+
timer = setTimeout(() => reject(new Error('Application classification timed out')), APPLICATION_CLASSIFICATION_DEADLINE_MS);
|
|
26
|
+
})]);
|
|
27
|
+
return classifyApplicationSessionLane(metadata);
|
|
28
|
+
} finally {
|
|
29
|
+
if (timer !== undefined) clearTimeout(timer);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=applicationSessionLane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_contracts","require","classifyApplicationSessionLane","metadata","application","publicApplicationSchema","parse","type","isOfficial","isInternal","APPLICATION_CLASSIFICATION_DEADLINE_MS","exports","resolveApplicationSessionLane","oxyServices","clientId","Error","timer","Promise","race","apps","getPublic","cache","_","reject","setTimeout","undefined","clearTimeout"],"sourceRoot":"../../../../src","sources":["ui/oauth/applicationSessionLane.ts"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGO,SAASC,8BAA8BA,CAACC,QAAiB,EAAsB;EACpF,MAAMC,WAAW,GAAGC,kCAAuB,CAACC,KAAK,CAACH,QAAQ,CAAC;EAC3D,OAAOC,WAAW,CAACG,IAAI,KAAK,aAAa,IAAI,CAACH,WAAW,CAACI,UAAU,IAAI,CAACJ,WAAW,CAACK,UAAU,GAAG,OAAO,GAAG,QAAQ;AACtH;AAEO,MAAMC,sCAAsC,GAAAC,OAAA,CAAAD,sCAAA,GAAG,IAAI;;AAE1D;AACO,eAAeE,6BAA6BA,CACjDC,WAAwB,EACxBC,QAAmC,EACN;EAC7B,IAAI,CAACA,QAAQ,EAAE,MAAM,IAAIC,KAAK,CAAC,mCAAmC,CAAC;EACnE;EACA,IAAIC,KAAgD;EACpD,IAAI;IACF,MAAMb,QAAQ,GAAG,MAAMc,OAAO,CAACC,IAAI,CAAC,CAClCL,WAAW,CAACM,IAAI,CAACC,SAAS,CAACN,QAAQ,EAAE;MAAEO,KAAK,EAAE;IAAM,CAAC,CAAC,EACtD,IAAIJ,OAAO,CAAQ,CAACK,CAAC,EAAEC,MAAM,KAAK;MAAEP,KAAK,GAAGQ,UAAU,CAAC,MAAMD,MAAM,CAAC,IAAIR,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAEL,sCAAsC,CAAC;IAAE,CAAC,CAAC,CACpK,CAAC;IACF,OAAOR,8BAA8B,CAACC,QAAQ,CAAC;EACjD,CAAC,SAAS;IAAE,IAAIa,KAAK,KAAKS,SAAS,EAAEC,YAAY,CAACV,KAAK,CAAC;EAAE;AAC5D","ignoreList":[]}
|
|
@@ -16,10 +16,10 @@ var _core = require("@oxy.so/core");
|
|
|
16
16
|
*
|
|
17
17
|
* Ordering is deliberate and load-bearing:
|
|
18
18
|
* 1. validate `state` BEFORE anything is sent to the token endpoint,
|
|
19
|
-
* 2. exchange the code for
|
|
19
|
+
* 2. exchange the code for session material without changing the bearer,
|
|
20
20
|
* 3. run `cleanup` (drop the persisted handshake / strip `?code=` from the
|
|
21
21
|
* URL) BEFORE the commit, so a stale code can never re-enter the exchange,
|
|
22
|
-
* 4. commit the session.
|
|
22
|
+
* 4. validate and commit the session through the provider's funnel.
|
|
23
23
|
*
|
|
24
24
|
* `cleanup` runs exactly once on EVERY exit path, including a state mismatch
|
|
25
25
|
* and a failed exchange.
|
|
@@ -50,6 +50,8 @@ async function completeOAuthCode(input) {
|
|
|
50
50
|
clientId: input.clientId,
|
|
51
51
|
redirectUri: input.redirectUri,
|
|
52
52
|
codeVerifier: input.handshake.codeVerifier
|
|
53
|
+
}, {
|
|
54
|
+
plantTokens: false
|
|
53
55
|
});
|
|
54
56
|
runCleanup();
|
|
55
57
|
await input.commitSession({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","completeOAuthCode","input","cleaned","runCleanup","cleanup","handshake","returnedState","state","logger","warn","component","ok","reason","result","oxyServices","auth","oauth","exchangeCode","code","clientId","redirectUri","codeVerifier","commitSession","sessionId","accessToken","deviceId","deviceSecret","userId","user","id","expiresAt","error"],"sourceRoot":"../../../../src","sources":["ui/oauth/completeOAuthCode.ts"],"mappings":";;;;;;AAqBA,IAAAA,KAAA,GAAAC,OAAA;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;;AA2BO,eAAeC,iBAAiBA,CACrCC,KAA6B,EACG;EAChC,IAAIC,OAAO,GAAG,KAAK;EACnB,MAAMC,UAAU,GAAGA,CAAA,KAAY;IAC7B,IAAID,OAAO,EAAE;IACbA,OAAO,GAAG,IAAI;IACdD,KAAK,CAACG,OAAO,GAAG,CAAC;EACnB,CAAC;EAED,IAAI,CAACH,KAAK,CAACI,SAAS,IAAI,CAACJ,KAAK,CAACK,aAAa,IAAIL,KAAK,CAACI,SAAS,CAACE,KAAK,KAAKN,KAAK,CAACK,aAAa,EAAE;IAC7FE,YAAM,CAACC,IAAI,CAAC,wDAAwD,EAAE;MACpEC,SAAS,EAAE;IACb,CAAC,CAAC;IACFP,UAAU,CAAC,CAAC;IACZ,OAAO;MAAEQ,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAiB,CAAC;EAChD;EAEA,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMZ,KAAK,CAACa,WAAW,CAACC,IAAI,CAACC,KAAK,CAACC,YAAY,CAAC;MAC7DC,IAAI,EAAEjB,KAAK,CAACiB,IAAI;MAChBC,QAAQ,EAAElB,KAAK,CAACkB,QAAQ;MACxBC,WAAW,EAAEnB,KAAK,CAACmB,WAAW;MAC9BC,YAAY,EAAEpB,KAAK,CAACI,SAAS,CAACgB;IAChC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["_core","require","completeOAuthCode","input","cleaned","runCleanup","cleanup","handshake","returnedState","state","logger","warn","component","ok","reason","result","oxyServices","auth","oauth","exchangeCode","code","clientId","redirectUri","codeVerifier","plantTokens","commitSession","sessionId","accessToken","deviceId","deviceSecret","userId","user","id","expiresAt","error"],"sourceRoot":"../../../../src","sources":["ui/oauth/completeOAuthCode.ts"],"mappings":";;;;;;AAqBA,IAAAA,KAAA,GAAAC,OAAA;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;;AA2BO,eAAeC,iBAAiBA,CACrCC,KAA6B,EACG;EAChC,IAAIC,OAAO,GAAG,KAAK;EACnB,MAAMC,UAAU,GAAGA,CAAA,KAAY;IAC7B,IAAID,OAAO,EAAE;IACbA,OAAO,GAAG,IAAI;IACdD,KAAK,CAACG,OAAO,GAAG,CAAC;EACnB,CAAC;EAED,IAAI,CAACH,KAAK,CAACI,SAAS,IAAI,CAACJ,KAAK,CAACK,aAAa,IAAIL,KAAK,CAACI,SAAS,CAACE,KAAK,KAAKN,KAAK,CAACK,aAAa,EAAE;IAC7FE,YAAM,CAACC,IAAI,CAAC,wDAAwD,EAAE;MACpEC,SAAS,EAAE;IACb,CAAC,CAAC;IACFP,UAAU,CAAC,CAAC;IACZ,OAAO;MAAEQ,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAiB,CAAC;EAChD;EAEA,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMZ,KAAK,CAACa,WAAW,CAACC,IAAI,CAACC,KAAK,CAACC,YAAY,CAAC;MAC7DC,IAAI,EAAEjB,KAAK,CAACiB,IAAI;MAChBC,QAAQ,EAAElB,KAAK,CAACkB,QAAQ;MACxBC,WAAW,EAAEnB,KAAK,CAACmB,WAAW;MAC9BC,YAAY,EAAEpB,KAAK,CAACI,SAAS,CAACgB;IAChC,CAAC,EAAE;MAAEC,WAAW,EAAE;IAAM,CAAC,CAAC;IAC1BnB,UAAU,CAAC,CAAC;IACZ,MAAMF,KAAK,CAACsB,aAAa,CAAC;MACxBC,SAAS,EAAEX,MAAM,CAACW,SAAS;MAC3BC,WAAW,EAAEZ,MAAM,CAACY,WAAW;MAC/BC,QAAQ,EAAEb,MAAM,CAACa,QAAQ;MACzBC,YAAY,EAAEd,MAAM,CAACc,YAAY;MACjCC,MAAM,EAAEf,MAAM,CAACgB,IAAI,CAACC,EAAE;MACtBC,SAAS,EAAElB,MAAM,CAACkB,SAAS;MAC3BF,IAAI,EAAEhB,MAAM,CAACgB;IACf,CAAC,CAAC;IACF,OAAO;MAAElB,EAAE,EAAE;IAAK,CAAC;EACrB,CAAC,CAAC,OAAOqB,KAAK,EAAE;IACdxB,YAAM,CAACC,IAAI,CAAC,4BAA4B,EAAE;MAAEC,SAAS,EAAE;IAAoB,CAAC,EAAEsB,KAAK,CAAC;IACpF7B,UAAU,CAAC,CAAC;IACZ,OAAO;MAAEQ,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAkB,CAAC;EACjD;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.startNativeOAuthSignIn = startNativeOAuthSignIn;
|
|
7
|
+
var _oauthNavigation = require("../components/oauthNavigation.js");
|
|
8
|
+
var _applicationSessionLane = require("./applicationSessionLane.js");
|
|
9
|
+
var _completeOAuthCode = require("./completeOAuthCode.js");
|
|
10
|
+
var _oauthHandshake = require("./oauthHandshake.js");
|
|
11
|
+
const attempts = new WeakSet();
|
|
12
|
+
function isExactRedirectUri(value) {
|
|
13
|
+
if (!value || value !== value.trim() || /\s/.test(value)) return false;
|
|
14
|
+
try {
|
|
15
|
+
const uri = new URL(value);
|
|
16
|
+
return !uri.username && !uri.password && !uri.hash && !['code', 'state', 'error', 'error_description'].some(key => uri.searchParams.has(key));
|
|
17
|
+
} catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** SDK owns the in-memory handshake, observed native callback and session commit. */
|
|
23
|
+
async function startNativeOAuthSignIn(context, options) {
|
|
24
|
+
if (context.platform !== 'native') return {
|
|
25
|
+
status: 'unsupported',
|
|
26
|
+
reason: 'unsupported-platform'
|
|
27
|
+
};
|
|
28
|
+
if (!context.clientId) return {
|
|
29
|
+
status: 'unsupported',
|
|
30
|
+
reason: 'missing-client-id'
|
|
31
|
+
};
|
|
32
|
+
if (context.identityBound) return {
|
|
33
|
+
status: 'unsupported',
|
|
34
|
+
reason: 'identity-bound'
|
|
35
|
+
};
|
|
36
|
+
if (!isExactRedirectUri(options.redirectUri)) return {
|
|
37
|
+
status: 'failed',
|
|
38
|
+
reason: 'invalid-redirect-uri'
|
|
39
|
+
};
|
|
40
|
+
if (attempts.has(context.oxyServices)) return {
|
|
41
|
+
status: 'failed',
|
|
42
|
+
reason: 'already-in-progress'
|
|
43
|
+
};
|
|
44
|
+
attempts.add(context.oxyServices);
|
|
45
|
+
try {
|
|
46
|
+
let lane;
|
|
47
|
+
try {
|
|
48
|
+
lane = await (0, _applicationSessionLane.resolveApplicationSessionLane)(context.oxyServices, context.clientId);
|
|
49
|
+
} catch {
|
|
50
|
+
return {
|
|
51
|
+
status: 'failed',
|
|
52
|
+
reason: 'client-resolution-failed'
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (lane !== 'oauth') return {
|
|
56
|
+
status: 'unsupported',
|
|
57
|
+
reason: 'not-third-party'
|
|
58
|
+
};
|
|
59
|
+
const prepared = await (0, _oauthHandshake.prepareAuthorizeRequest)({
|
|
60
|
+
clientId: context.clientId,
|
|
61
|
+
redirectUri: options.redirectUri,
|
|
62
|
+
authorizeBaseUrl: context.authorizeBaseUrl
|
|
63
|
+
});
|
|
64
|
+
const {
|
|
65
|
+
redirectUrl
|
|
66
|
+
} = await (0, _oauthNavigation.openAuthorizeUrlNative)(prepared.authorizeUrl, options.redirectUri, {
|
|
67
|
+
allowExternalFallback: false
|
|
68
|
+
});
|
|
69
|
+
if (!redirectUrl) return {
|
|
70
|
+
status: 'cancelled'
|
|
71
|
+
};
|
|
72
|
+
const prefix = `${options.redirectUri}${options.redirectUri.includes('?') ? '&' : '?'}`;
|
|
73
|
+
if (!redirectUrl.startsWith(prefix) || redirectUrl.includes('#')) return {
|
|
74
|
+
status: 'failed',
|
|
75
|
+
reason: 'native-callback-invalid'
|
|
76
|
+
};
|
|
77
|
+
const parameters = new URLSearchParams(redirectUrl.slice(prefix.length));
|
|
78
|
+
if ([...new URL(options.redirectUri).searchParams.keys()].some(key => parameters.has(key))) return {
|
|
79
|
+
status: 'failed',
|
|
80
|
+
reason: 'native-callback-invalid'
|
|
81
|
+
};
|
|
82
|
+
if (['code', 'state', 'error', 'error_description'].some(key => parameters.getAll(key).length > 1)) return {
|
|
83
|
+
status: 'failed',
|
|
84
|
+
reason: 'native-callback-invalid'
|
|
85
|
+
};
|
|
86
|
+
if (parameters.get('state') !== prepared.handshake.state) return {
|
|
87
|
+
status: 'failed',
|
|
88
|
+
reason: 'state-mismatch'
|
|
89
|
+
};
|
|
90
|
+
const code = parameters.get('code');
|
|
91
|
+
if (parameters.has('error') || !code) return {
|
|
92
|
+
status: 'failed',
|
|
93
|
+
reason: 'native-callback-invalid'
|
|
94
|
+
};
|
|
95
|
+
const completion = await (0, _completeOAuthCode.completeOAuthCode)({
|
|
96
|
+
oxyServices: context.oxyServices,
|
|
97
|
+
clientId: context.clientId,
|
|
98
|
+
code,
|
|
99
|
+
returnedState: parameters.get('state'),
|
|
100
|
+
handshake: prepared.handshake,
|
|
101
|
+
redirectUri: options.redirectUri,
|
|
102
|
+
commitSession: context.commitSession
|
|
103
|
+
});
|
|
104
|
+
return completion.ok ? {
|
|
105
|
+
status: 'signed-in'
|
|
106
|
+
} : {
|
|
107
|
+
status: 'failed',
|
|
108
|
+
reason: completion.reason
|
|
109
|
+
};
|
|
110
|
+
} catch {
|
|
111
|
+
return {
|
|
112
|
+
status: 'failed',
|
|
113
|
+
reason: 'exchange-failed'
|
|
114
|
+
};
|
|
115
|
+
} finally {
|
|
116
|
+
attempts.delete(context.oxyServices);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=nativeAuthTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_oauthNavigation","require","_applicationSessionLane","_completeOAuthCode","_oauthHandshake","attempts","WeakSet","isExactRedirectUri","value","trim","test","uri","URL","username","password","hash","some","key","searchParams","has","startNativeOAuthSignIn","context","options","platform","status","reason","clientId","identityBound","redirectUri","oxyServices","add","lane","resolveApplicationSessionLane","prepared","prepareAuthorizeRequest","authorizeBaseUrl","redirectUrl","openAuthorizeUrlNative","authorizeUrl","allowExternalFallback","prefix","includes","startsWith","parameters","URLSearchParams","slice","length","keys","getAll","get","handshake","state","code","completion","completeOAuthCode","returnedState","commitSession","ok","delete"],"sourceRoot":"../../../../src","sources":["ui/oauth/nativeAuthTransport.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,12 +40,24 @@ var _tokenTransport = require("./tokenTransport.js");
|
|
|
40
40
|
* account, the client tracks device state truthfully but never re-binds its
|
|
41
41
|
* bearer to the device's mutable active account.
|
|
42
42
|
*/
|
|
43
|
-
function createSessionClient(oxyServices, onUnauthenticated, getPinnedAccountId) {
|
|
44
|
-
const
|
|
43
|
+
function createSessionClient(oxyServices, onUnauthenticated, getPinnedAccountId, isDeviceSessionAllowed = () => true, onFullExplicitSignOut) {
|
|
44
|
+
const baseHost = (0, _session.createSessionClientHost)(oxyServices);
|
|
45
|
+
const host = {
|
|
46
|
+
...baseHost,
|
|
47
|
+
getAccessToken: () => isDeviceSessionAllowed() ? baseHost.getAccessToken() : null,
|
|
48
|
+
setTokens: token => {
|
|
49
|
+
if (isDeviceSessionAllowed()) baseHost.setTokens(token);
|
|
50
|
+
},
|
|
51
|
+
makeRequest: async (method, url, data, requestOptions) => {
|
|
52
|
+
if (!isDeviceSessionAllowed()) throw new Error('An isolated OAuth session cannot access the shared device');
|
|
53
|
+
return baseHost.makeRequest(method, url, data, requestOptions);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
45
56
|
const transport = (0, _tokenTransport.createTokenTransport)(oxyServices, getPinnedAccountId);
|
|
46
57
|
const client = new _session.SessionClient(host, {
|
|
47
58
|
transport,
|
|
48
59
|
onUnauthenticated,
|
|
60
|
+
onFullExplicitSignOut,
|
|
49
61
|
getPinnedAccountId
|
|
50
62
|
});
|
|
51
63
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_session","require","_tokenTransport","createSessionClient","oxyServices","onUnauthenticated","getPinnedAccountId","
|
|
1
|
+
{"version":3,"names":["_session","require","_tokenTransport","createSessionClient","oxyServices","onUnauthenticated","getPinnedAccountId","isDeviceSessionAllowed","onFullExplicitSignOut","baseHost","createSessionClientHost","host","getAccessToken","setTokens","token","makeRequest","method","url","data","requestOptions","Error","transport","createTokenTransport","client","SessionClient"],"sourceRoot":"../../../../src","sources":["ui/session/createSessionClient.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,mBAAmBA,CACjCC,WAAwB,EACxBC,iBAAwD,EACxDC,kBAAwC,EACxCC,sBAAqC,GAAGA,CAAA,KAAM,IAAI,EAClDC,qBAA2C,EAI3C;EACA,MAAMC,QAAQ,GAAG,IAAAC,gCAAuB,EAACN,WAAW,CAAC;EACrD,MAAMO,IAAI,GAAG;IACX,GAAGF,QAAQ;IACXG,cAAc,EAAEA,CAAA,KAAML,sBAAsB,CAAC,CAAC,GAAGE,QAAQ,CAACG,cAAc,CAAC,CAAC,GAAG,IAAI;IACjFC,SAAS,EAAGC,KAAa,IAAK;MAAE,IAAIP,sBAAsB,CAAC,CAAC,EAAEE,QAAQ,CAACI,SAAS,CAACC,KAAK,CAAC;IAAE,CAAC;IAC1FC,WAAW,EAAE,MAAAA,CAAUC,MAAsB,EAAEC,GAAW,EAAEC,IAAc,EAAEC,cAAoC,KAAiB;MAC/H,IAAI,CAACZ,sBAAsB,CAAC,CAAC,EAAE,MAAM,IAAIa,KAAK,CAAC,2DAA2D,CAAC;MAC3G,OAAOX,QAAQ,CAACM,WAAW,CAAIC,MAAM,EAAEC,GAAG,EAAEC,IAAI,EAAEC,cAAc,CAAC;IACnE;EACF,CAAC;EACD,MAAME,SAAS,GAAG,IAAAC,oCAAoB,EAAClB,WAAW,EAAEE,kBAAkB,CAAC;EACvE,MAAMiB,MAAM,GAAG,IAAIC,sBAAa,CAACb,IAAI,EAAE;IACrCU,SAAS;IACThB,iBAAiB;IACjBG,qBAAqB;IACrBF;EACF,CAAC,CAAC;EACF,OAAO;IAAEiB,MAAM;IAAEZ;EAAK,CAAC;AACzB","ignoreList":[]}
|
|
@@ -23,6 +23,7 @@ function credentialOf(state) {
|
|
|
23
23
|
function trackDeviceCredential(store) {
|
|
24
24
|
let held;
|
|
25
25
|
return {
|
|
26
|
+
...store,
|
|
26
27
|
load: async () => {
|
|
27
28
|
const state = await store.load();
|
|
28
29
|
held = credentialOf(state);
|
|
@@ -32,6 +33,13 @@ function trackDeviceCredential(store) {
|
|
|
32
33
|
held = credentialOf(state);
|
|
33
34
|
return store.save(state);
|
|
34
35
|
},
|
|
36
|
+
...(store.saveIfCurrent ? {
|
|
37
|
+
saveIfCurrent: async (state, guard) => {
|
|
38
|
+
const committed = await store.saveIfCurrent?.(state, guard);
|
|
39
|
+
if (committed) held = credentialOf(state);
|
|
40
|
+
return committed === true;
|
|
41
|
+
}
|
|
42
|
+
} : {}),
|
|
35
43
|
clear: async () => {
|
|
36
44
|
held = null;
|
|
37
45
|
await store.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["credentialOf","state","deviceId","deviceSecret","trackDeviceCredential","store","held","load","save","clear","heldDeviceCredential"],"sourceRoot":"../../../../src","sources":["ui/session/deviceCredentialTracker.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA,SAASA,YAAYA,CAACC,KAA0D,EAA+B;EAC7G,OAAOA,KAAK,EAAEC,QAAQ,IAAID,KAAK,CAACE,YAAY,GACxC;IAAED,QAAQ,EAAED,KAAK,CAACC,QAAQ;IAAEC,YAAY,EAAEF,KAAK,CAACE;EAAa,CAAC,GAC9D,IAAI;AACV;AAEO,SAASC,qBAAqBA,CAACC,KAAqB,EAAoC;EAC7F,IAAIC,IAA6C;EACjD,OAAO;
|
|
1
|
+
{"version":3,"names":["credentialOf","state","deviceId","deviceSecret","trackDeviceCredential","store","held","load","save","saveIfCurrent","guard","committed","clear","heldDeviceCredential"],"sourceRoot":"../../../../src","sources":["ui/session/deviceCredentialTracker.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA,SAASA,YAAYA,CAACC,KAA0D,EAA+B;EAC7G,OAAOA,KAAK,EAAEC,QAAQ,IAAID,KAAK,CAACE,YAAY,GACxC;IAAED,QAAQ,EAAED,KAAK,CAACC,QAAQ;IAAEC,YAAY,EAAEF,KAAK,CAACE;EAAa,CAAC,GAC9D,IAAI;AACV;AAEO,SAASC,qBAAqBA,CAACC,KAAqB,EAAoC;EAC7F,IAAIC,IAA6C;EACjD,OAAO;IACL,GAAGD,KAAK;IACRE,IAAI,EAAE,MAAAA,CAAA,KAAY;MAChB,MAAMN,KAAK,GAAG,MAAMI,KAAK,CAACE,IAAI,CAAC,CAAC;MAChCD,IAAI,GAAGN,YAAY,CAACC,KAAK,CAAC;MAC1B,OAAOA,KAAK;IACd,CAAC;IACDO,IAAI,EAAE,MAAOP,KAAK,IAAK;MACrBK,IAAI,GAAGN,YAAY,CAACC,KAAK,CAAC;MAC1B,OAAOI,KAAK,CAACG,IAAI,CAACP,KAAK,CAAC;IAC1B,CAAC;IACD,IAAII,KAAK,CAACI,aAAa,GAAG;MAACA,aAAa,EAAE,MAAAA,CAAOR,KAAyB,EAAES,KAA0B,KAAK;QACzG,MAAMC,SAAS,GAAG,MAAMN,KAAK,CAACI,aAAa,GAAGR,KAAK,EAAES,KAAK,CAAC;QAC3D,IAAIC,SAAS,EAAEL,IAAI,GAAGN,YAAY,CAACC,KAAK,CAAC;QACzC,OAAOU,SAAS,KAAK,IAAI;MAC3B;IAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACRC,KAAK,EAAE,MAAAA,CAAA,KAAY;MACjBN,IAAI,GAAG,IAAI;MACX,MAAMD,KAAK,CAACO,KAAK,CAAC,CAAC;IACrB,CAAC;IACDC,oBAAoB,EAAEA,CAAA,KAAMP;EAC9B,CAAC;AACH","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -237,4 +237,5 @@ export { SurfaceHeaderAction } from "./ui/components/SurfaceHeaderAction.js";
|
|
|
237
237
|
// ---------------------------------------------------------------------------
|
|
238
238
|
// Imperative account dialog entry points (outside React).
|
|
239
239
|
export { openAccountDialog, closeAccountDialog, subscribeToAccountDialog } from "./ui/navigation/accountDialogManager.js";
|
|
240
|
+
export { usePersonalPlans, usePersonalPlanSubscriptions } from "./ui/hooks/queries/usePersonalPlans.js";
|
|
240
241
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useOptionalOxy","OxyProviderMissingError","useOxyRuntime","useOxySnapshot","useActiveAccount","useDeviceDirectory","OxyRuntimeMissingError","useAuth","createDeferredProductAnalytics","IdentityBoundSessionError","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useSignInMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","PeableButton","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxySignInPanel","OxySignUpPanel","OxyAccountPicker","OxyDeleteAccountPanel","OxyLinkCommonsPanel","OxyPasswordPanel","OxyAuthenticatorPanel","OxyAuthScreen","OxyAuthScreenHeader","OxyAuthLoading","OxyAuthTerms","OxySignInRequestSurface","useDeviceSwitcher","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useOptionalOxy","OxyProviderMissingError","useOxyRuntime","useOxySnapshot","useActiveAccount","useDeviceDirectory","OxyRuntimeMissingError","useAuth","createDeferredProductAnalytics","IdentityBoundSessionError","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useSignInMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","PeableButton","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxySignInPanel","OxySignUpPanel","OxyAccountPicker","OxyDeleteAccountPanel","OxyLinkCommonsPanel","OxyPasswordPanel","OxyAuthenticatorPanel","OxyAuthScreen","OxyAuthScreenHeader","OxyAuthLoading","OxyAuthTerms","OxySignInRequestSurface","useDeviceSwitcher","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog","usePersonalPlans","usePersonalPlanSubscriptions"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { resolveApplicationSessionLane } from "../oauth/applicationSessionLane.js";
|
|
3
4
|
import { logger as loggerUtil } from '@oxy.so/core';
|
|
4
5
|
import { runSessionColdBoot } from '@oxy.so/core/session';
|
|
5
6
|
import { loadPersistedDeviceCredential } from "../utils/deviceCredential.js";
|
|
@@ -94,6 +95,11 @@ export async function runProviderColdBoot(opts) {
|
|
|
94
95
|
const identityBound = sessionMode === 'identity';
|
|
95
96
|
setTokenReady(false);
|
|
96
97
|
try {
|
|
98
|
+
// Classification precedes every local-secret, shared-credential and identity
|
|
99
|
+
// probe. Unavailable registry metadata fails closed, including offline boot.
|
|
100
|
+
const lane = await (opts.resolveSessionLane?.() ?? resolveApplicationSessionLane(oxyServices, clientId));
|
|
101
|
+
await opts.onClassified?.(lane);
|
|
102
|
+
if (identityBound && lane !== 'device') return;
|
|
97
103
|
// The redirect transport's RETURN leg. An app reaches it whenever the browser
|
|
98
104
|
// BLOCKED the sign-in popup and `startWebOAuthSignIn` fell back to a
|
|
99
105
|
// full-page redirect (`popup-blocked` / `popup-navigation-failed`), so it is
|
|
@@ -105,7 +111,8 @@ export async function runProviderColdBoot(opts) {
|
|
|
105
111
|
clientId,
|
|
106
112
|
authRedirectUri,
|
|
107
113
|
commitSession: input => commitSession(input, {
|
|
108
|
-
activate: true
|
|
114
|
+
activate: true,
|
|
115
|
+
oauth: true
|
|
109
116
|
})
|
|
110
117
|
});
|
|
111
118
|
if (oauthCompleted) {
|
|
@@ -113,6 +120,11 @@ export async function runProviderColdBoot(opts) {
|
|
|
113
120
|
markAuthResolved();
|
|
114
121
|
return;
|
|
115
122
|
}
|
|
123
|
+
if (lane === 'oauth') {
|
|
124
|
+
setTokenReady(true);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
await opts.beforeDeviceBoot?.();
|
|
116
128
|
|
|
117
129
|
// Best-effort connectivity probe up front: an EXPLICIT offline verdict skips
|
|
118
130
|
// the two doomed network steps so routing settles immediately instead of
|
|
@@ -188,6 +200,7 @@ export async function runProviderColdBoot(opts) {
|
|
|
188
200
|
}
|
|
189
201
|
}
|
|
190
202
|
});
|
|
203
|
+
await opts.afterDeviceBoot?.();
|
|
191
204
|
} catch (error) {
|
|
192
205
|
if (__DEV__) {
|
|
193
206
|
loggerUtil.error('Cold boot error', error instanceof Error ? error : new Error(String(error)), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","loggerUtil","runSessionColdBoot","loadPersistedDeviceCredential","createPlatformSharedDeviceCredentialStore","tryCompleteOAuthReturn","isWebBrowser","isNetConnectivityExplicitlyOffline","SESSION_HANDOFF_DEADLINE_MS","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","online","globalThis","navigator","onLine","NetInfo","state","Promise","race","default","fetch","resolve","setTimeout","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","oauthCompleted","input","activate","offline","oxy","store","platform","isWeb","isNative","sharedDeviceCredential","undefined","overallDeadlineMs","isOffline","onStepDeadline","stepId","warn","component","method","onSession","session","handoff","sessionId","accessToken","userId","deviceState","handoffDeadlineId","finally","clearTimeout","onSignedOut","cred","start","socketError","__DEV__","debug","onStepError","id","error","Error","String"],"sourceRoot":"../../../../src","sources":["ui/boot/runProviderColdBoot.ts"],"mappings":";;AAAA,SAASA,MAAM,IAAIC,UAAU,QAA0B,cAAc;AACrE,SAASC,kBAAkB,QAAqE,sBAAsB;AAEtH,SAASC,6BAA6B,QAAQ,8BAA2B;AACzE,SAASC,yCAAyC,QAAQ,2CAAwC;AAClG,SAASC,sBAAsB,QAAQ,yBAAsB;AAC7D,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,kCAAkC,QAAQ,6BAA0B;AAG7E;AACA,OAAO,MAAMC,2BAA2B,GAAG,IAAI;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,6BAA6B,GAAG,MAAM;;AAEnD;AACA;AACA;AACA;AACA;AACA,MAAMC,wBAAwB,GAAG,GAAG;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeC,iBAAiBA,CAAA,EAAqB;EACnD,IAAI;IACF,IAAIL,YAAY,CAAC,CAAC,EAAE;MAClB,MAAMM,MAAM,GAAIC,UAAU,CAA0CC,SAAS,EAAEC,MAAM;MACrF;MACA,OAAOH,MAAM,KAAK,KAAK;IACzB;IACA,MAAMI,OAAO,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC;IAC/D,MAAMC,KAAK,GAAG,MAAMC,OAAO,CAACC,IAAI,CAAC,CAC/BH,OAAO,CAACI,OAAO,CAACC,KAAK,CAAC,CAAC,EACvB,IAAIH,OAAO,CAAQI,OAAO,IAAK;MAC7BC,UAAU,CAAC,MAAMD,OAAO,CAAC,IAAI,CAAC,EAAEZ,wBAAwB,CAAC;IAC3D,CAAC,CAAC,CACH,CAAC;IACF;IACA;IACA,OAAOH,kCAAkC,CAACU,KAAK,CAAC;EAClD,CAAC,CAAC,MAAM;IACN;IACA,OAAO,KAAK;EACd;AACF;
|
|
1
|
+
{"version":3,"names":["resolveApplicationSessionLane","logger","loggerUtil","runSessionColdBoot","loadPersistedDeviceCredential","createPlatformSharedDeviceCredentialStore","tryCompleteOAuthReturn","isWebBrowser","isNetConnectivityExplicitlyOffline","SESSION_HANDOFF_DEADLINE_MS","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","online","globalThis","navigator","onLine","NetInfo","state","Promise","race","default","fetch","resolve","setTimeout","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","lane","resolveSessionLane","onClassified","oauthCompleted","input","activate","oauth","beforeDeviceBoot","offline","oxy","store","platform","isWeb","isNative","sharedDeviceCredential","undefined","overallDeadlineMs","isOffline","onStepDeadline","stepId","warn","component","method","onSession","session","handoff","sessionId","accessToken","userId","deviceState","handoffDeadlineId","finally","clearTimeout","onSignedOut","cred","start","socketError","__DEV__","debug","onStepError","id","error","afterDeviceBoot","Error","String"],"sourceRoot":"../../../../src","sources":["ui/boot/runProviderColdBoot.ts"],"mappings":";;AAAA,SAASA,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,MAAM,IAAIC,UAAU,QAA0B,cAAc;AACrE,SAASC,kBAAkB,QAAqE,sBAAsB;AAEtH,SAASC,6BAA6B,QAAQ,8BAA2B;AACzE,SAASC,yCAAyC,QAAQ,2CAAwC;AAClG,SAASC,sBAAsB,QAAQ,yBAAsB;AAC7D,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,kCAAkC,QAAQ,6BAA0B;AAG7E;AACA,OAAO,MAAMC,2BAA2B,GAAG,IAAI;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,6BAA6B,GAAG,MAAM;;AAEnD;AACA;AACA;AACA;AACA;AACA,MAAMC,wBAAwB,GAAG,GAAG;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeC,iBAAiBA,CAAA,EAAqB;EACnD,IAAI;IACF,IAAIL,YAAY,CAAC,CAAC,EAAE;MAClB,MAAMM,MAAM,GAAIC,UAAU,CAA0CC,SAAS,EAAEC,MAAM;MACrF;MACA,OAAOH,MAAM,KAAK,KAAK;IACzB;IACA,MAAMI,OAAO,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC;IAC/D,MAAMC,KAAK,GAAG,MAAMC,OAAO,CAACC,IAAI,CAAC,CAC/BH,OAAO,CAACI,OAAO,CAACC,KAAK,CAAC,CAAC,EACvB,IAAIH,OAAO,CAAQI,OAAO,IAAK;MAC7BC,UAAU,CAAC,MAAMD,OAAO,CAAC,IAAI,CAAC,EAAEZ,wBAAwB,CAAC;IAC3D,CAAC,CAAC,CACH,CAAC;IACF;IACA;IACA,OAAOH,kCAAkC,CAACU,KAAK,CAAC;EAClD,CAAC,CAAC,MAAM;IACN;IACA,OAAO,KAAK;EACd;AACF;AA8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeO,mBAAmBA,CAACC,IAAgC,EAAiB;EACzF,MAAM;IACJC,WAAW;IACXC,SAAS;IACTC,QAAQ;IACRC,eAAe;IACfC,WAAW,GAAG,SAAS;IACvBC,QAAQ;IACRC,aAAa;IACbC,0BAA0B;IAC1BC,aAAa;IACbC,gBAAgB;IAChBC;EACF,CAAC,GAAGX,IAAI;EAER,MAAMY,aAAa,GAAGP,WAAW,KAAK,UAAU;EAEhDM,aAAa,CAAC,KAAK,CAAC;EAEpB,IAAI;IACF;IACA;IACA,MAAME,IAAI,GAAG,OAAOb,IAAI,CAACc,kBAAkB,GAAG,CAAC,IAAIxC,6BAA6B,CAAC2B,WAAW,EAAEE,QAAQ,CAAC,CAAC;IACxG,MAAMH,IAAI,CAACe,YAAY,GAAGF,IAAI,CAAC;IAC/B,IAAID,aAAa,IAAIC,IAAI,KAAK,QAAQ,EAAE;IACxC;IACA;IACA;IACA;IACA;IACA;IACA,MAAMG,cAAc,GAAGJ,aAAa,GAChC,KAAK,GACL,MAAMhC,sBAAsB,CAAC;MAC3BqB,WAAW;MACXE,QAAQ;MACRC,eAAe;MACfK,aAAa,EAAGQ,KAAK,IAAKR,aAAa,CAACQ,KAAK,EAAE;QAAEC,QAAQ,EAAE,IAAI;QAAEC,KAAK,EAAE;MAAK,CAAC;IAChF,CAAC,CAAC;IACN,IAAIH,cAAc,EAAE;MAClBL,aAAa,CAAC,IAAI,CAAC;MACnBD,gBAAgB,CAAC,CAAC;MAClB;IACF;IAEA,IAAIG,IAAI,KAAK,OAAO,EAAE;MACpBF,aAAa,CAAC,IAAI,CAAC;MACnB;IACF;IAEA,MAAMX,IAAI,CAACoB,gBAAgB,GAAG,CAAC;;IAE/B;IACA;IACA;IACA;IACA,MAAMC,OAAO,GAAG,MAAMnC,iBAAiB,CAAC,CAAC;IAEzC,MAAMT,kBAAkB,CAAC;MACvB6C,GAAG,EAAErB,WAAW;MAChBsB,KAAK,EAAErB,SAAS;MAChBsB,QAAQ,EAAE;QAAEC,KAAK,EAAE5C,YAAY,CAAC,CAAC;QAAE6C,QAAQ,EAAE,CAAC7C,YAAY,CAAC;MAAE,CAAC;MAC9DwB,WAAW;MACXC,QAAQ;MACR;MACA;MACA;MACA;MACA;MACAqB,sBAAsB,EAAEhD,yCAAyC,CAAC,CAAC,IAAIiD,SAAS;MAChFC,iBAAiB,EAAE7C,6BAA6B;MAChD8C,SAAS,EAAEA,CAAA,KAAMT,OAAO;MACxBU,cAAc,EAAGC,MAAM,IAAK;QAC1BxD,UAAU,CAACyD,IAAI,CACb,mBAAmBD,MAAM,kBAAkBhD,6BAA6B,8DAA8D,EACtI;UAAEkD,SAAS,EAAE,qBAAqB;UAAEC,MAAM,EAAE;QAAiB,CAC/D,CAAC;MACH,CAAC;MACDC,SAAS,EAAE,MAAOC,OAAO,IAAK;QAC5B;QACA;QACA,MAAM7B,0BAA0B,CAAC,CAAC;QAClC,MAAM8B,OAAO,GAAG7B,aAAa,CAC3B;UACE8B,SAAS,EAAEF,OAAO,CAACE,SAAS;UAC5BC,WAAW,EAAEH,OAAO,CAACG,WAAW;UAChCC,MAAM,EAAEJ,OAAO,CAACI,MAAM;UACtBC,WAAW,EAAEL,OAAO,CAAC7C;QACvB,CAAC,EACD;UAAE0B,QAAQ,EAAE;QAAM,CACpB,CAAC;QACD,IAAIyB,iBAA4D;QAChE,MAAMlD,OAAO,CAACC,IAAI,CAAC,CACjB4C,OAAO,EACP,IAAI7C,OAAO,CAAQI,OAAO,IAAK;UAC7B8C,iBAAiB,GAAG7C,UAAU,CAACD,OAAO,EAAEd,2BAA2B,CAAC;QACtE,CAAC,CAAC,CACH,CAAC,CAAC6D,OAAO,CAAC,MAAM;UACf,IAAID,iBAAiB,KAAKf,SAAS,EAAE;YACnCiB,YAAY,CAACF,iBAAiB,CAAC;UACjC;QACF,CAAC,CAAC;QACFjC,gBAAgB,CAAC,CAAC;MACpB,CAAC;MACDoC,WAAW,EAAE,MAAAA,CAAA,KAAY;QACvB,MAAMtC,0BAA0B,CAAC,CAAC;QAClC,MAAMuC,IAAI,GAAG,MAAMrE,6BAA6B,CAACwB,SAAS,CAAC;QAC3D,IAAI6C,IAAI,EAAE;UACR,IAAI;YACF,MAAMxC,aAAa,CAACyC,KAAK,CAAC,CAAC;UAC7B,CAAC,CAAC,OAAOC,WAAW,EAAE;YACpB,IAAIC,OAAO,EAAE;cACX1E,UAAU,CAAC2E,KAAK,CACd,wCAAwC,EACxC;gBAAEjB,SAAS,EAAE;cAAsB,CAAC,EACpCe,WACF,CAAC;YACH;UACF;QACF;QACAvC,gBAAgB,CAAC,CAAC;MACpB,CAAC;MACD0C,WAAW,EAAEA,CAACC,EAAE,EAAEC,KAAK,KAAK;QAC1B,IAAIJ,OAAO,EAAE;UACX1E,UAAU,CAAC2E,KAAK,CACd,mBAAmBE,EAAE,wCAAwC,EAC7D;YAAEnB,SAAS,EAAE;UAAsB,CAAC,EACpCoB,KACF,CAAC;QACH;MACF;IACF,CAAC,CAAC;IACF,MAAMtD,IAAI,CAACuD,eAAe,GAAG,CAAC;EAChC,CAAC,CAAC,OAAOD,KAAK,EAAE;IACd,IAAIJ,OAAO,EAAE;MACX1E,UAAU,CAAC8E,KAAK,CACd,iBAAiB,EACjBA,KAAK,YAAYE,KAAK,GAAGF,KAAK,GAAG,IAAIE,KAAK,CAACC,MAAM,CAACH,KAAK,CAAC,CAAC,EACzD;QAAEpB,SAAS,EAAE;MAAsB,CACrC,CAAC;IACH;EACF,CAAC,SAAS;IACRxB,gBAAgB,CAAC,CAAC;EACpB;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { classifyApplicationSessionLane } from "../oauth/applicationSessionLane.js";
|
|
3
4
|
import { useCallback, useState, useEffect, useRef } from 'react';
|
|
4
5
|
import { Platform } from 'react-native';
|
|
5
6
|
import { logger, generatePkcePair, generateOAuthState, buildOAuthAuthorizeUrl } from '@oxy.so/core';
|
|
@@ -65,7 +66,8 @@ export const OxySignInButton = ({
|
|
|
65
66
|
disabled = false,
|
|
66
67
|
showWhenAuthenticated = false,
|
|
67
68
|
oauthRedirectUri,
|
|
68
|
-
onOAuthResult
|
|
69
|
+
onOAuthResult,
|
|
70
|
+
nativeOAuthCompletion
|
|
69
71
|
}) => {
|
|
70
72
|
const {
|
|
71
73
|
t
|
|
@@ -75,7 +77,8 @@ export const OxySignInButton = ({
|
|
|
75
77
|
oxyServices,
|
|
76
78
|
clientId,
|
|
77
79
|
webAuthMode,
|
|
78
|
-
startWebOAuthSignIn
|
|
80
|
+
startWebOAuthSignIn,
|
|
81
|
+
startNativeOAuthSignIn
|
|
79
82
|
} = useOxy();
|
|
80
83
|
const {
|
|
81
84
|
isAuthenticated,
|
|
@@ -111,7 +114,9 @@ export const OxySignInButton = ({
|
|
|
111
114
|
if (cached && cached.clientId === clientId && cached.oxyServices === oxyServices) {
|
|
112
115
|
return cached.promise;
|
|
113
116
|
}
|
|
114
|
-
const promise = oxyServices.apps.getPublic(clientId
|
|
117
|
+
const promise = oxyServices.apps.getPublic(clientId, {
|
|
118
|
+
cache: false
|
|
119
|
+
}).catch(error => {
|
|
115
120
|
// Only clear if this is still the live entry (a later resolve may have
|
|
116
121
|
// replaced it after a clientId/oxyServices change).
|
|
117
122
|
if (appResolutionRef.current?.promise === promise) {
|
|
@@ -192,6 +197,18 @@ export const OxySignInButton = ({
|
|
|
192
197
|
}
|
|
193
198
|
return;
|
|
194
199
|
}
|
|
200
|
+
if (nativeOAuthCompletion === 'sdk') {
|
|
201
|
+
if (onOAuthResult) {
|
|
202
|
+
notifyNotConfigured(app.name);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const result = await startNativeOAuthSignIn({
|
|
206
|
+
redirectUri: oauthRedirectUri
|
|
207
|
+
});
|
|
208
|
+
if (result.status === 'failed') notifyFailed();
|
|
209
|
+
if (result.status === 'unsupported') notifyNotConfigured(app.name);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
195
212
|
|
|
196
213
|
// Native: open the in-app auth session, then hand the handshake to the
|
|
197
214
|
// RP so it can complete the token exchange from its deep-link callback.
|
|
@@ -218,7 +235,7 @@ export const OxySignInButton = ({
|
|
|
218
235
|
application: app.name
|
|
219
236
|
});
|
|
220
237
|
notifyNotConfigured(app.name);
|
|
221
|
-
}, [clientId, oauthRedirectUri, onOAuthResult, startOfficialSignIn, startWebOAuthSignIn, shouldPreOpenPopup, notifyNotConfigured, notifyFailed]);
|
|
238
|
+
}, [clientId, oauthRedirectUri, onOAuthResult, nativeOAuthCompletion, startNativeOAuthSignIn, startOfficialSignIn, startWebOAuthSignIn, shouldPreOpenPopup, notifyNotConfigured, notifyFailed]);
|
|
222
239
|
|
|
223
240
|
// Resolve the Application once, then route: third-party → OAuth; first-party
|
|
224
241
|
// / official → the in-app dialog. An unresolved client must fail closed:
|
|
@@ -236,7 +253,7 @@ export const OxySignInButton = ({
|
|
|
236
253
|
const resolving = resolvePublicApplication();
|
|
237
254
|
if (!resolving) {
|
|
238
255
|
closeOAuthPopup(popup);
|
|
239
|
-
|
|
256
|
+
notifyNotConfigured('this app');
|
|
240
257
|
return;
|
|
241
258
|
}
|
|
242
259
|
let app;
|
|
@@ -251,7 +268,7 @@ export const OxySignInButton = ({
|
|
|
251
268
|
notifyFailed();
|
|
252
269
|
return;
|
|
253
270
|
}
|
|
254
|
-
if (app
|
|
271
|
+
if (classifyApplicationSessionLane(app) === 'oauth') {
|
|
255
272
|
await startThirdPartyOAuth(app, popup);
|
|
256
273
|
return;
|
|
257
274
|
}
|
|
@@ -269,9 +286,10 @@ export const OxySignInButton = ({
|
|
|
269
286
|
});
|
|
270
287
|
notifyFailed();
|
|
271
288
|
} finally {
|
|
289
|
+
appResolutionRef.current = null;
|
|
272
290
|
routingRef.current = false;
|
|
273
291
|
}
|
|
274
|
-
}, [resolvePublicApplication, startOfficialSignIn, startThirdPartyOAuth, clientId, notifyFailed]);
|
|
292
|
+
}, [resolvePublicApplication, startOfficialSignIn, startThirdPartyOAuth, clientId, notifyNotConfigured, notifyFailed]);
|
|
275
293
|
|
|
276
294
|
// Defer to a caller-supplied handler, otherwise route by application type.
|
|
277
295
|
//
|