@oxy.so/services 11.0.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/lib/commonjs/ui/boot/runProviderColdBoot.js +14 -1
  2. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  3. package/lib/commonjs/ui/components/OxySignInButton.js +25 -7
  4. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  5. package/lib/commonjs/ui/context/OxyContext.js +198 -41
  6. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  7. package/lib/commonjs/ui/context/commitSessionFlow.js +5 -0
  8. package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
  9. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +56 -9
  10. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  11. package/lib/commonjs/ui/context/isolatedOAuthSession.js +52 -0
  12. package/lib/commonjs/ui/context/isolatedOAuthSession.js.map +1 -0
  13. package/lib/commonjs/ui/context/useOxyAccountGraph.js +7 -5
  14. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  15. package/lib/commonjs/ui/hooks/useAuth.js +7 -3
  16. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  17. package/lib/commonjs/ui/oauth/applicationSessionLane.js +32 -0
  18. package/lib/commonjs/ui/oauth/applicationSessionLane.js.map +1 -0
  19. package/lib/commonjs/ui/oauth/completeOAuthCode.js +4 -2
  20. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -1
  21. package/lib/commonjs/ui/oauth/nativeAuthTransport.js +119 -0
  22. package/lib/commonjs/ui/oauth/nativeAuthTransport.js.map +1 -0
  23. package/lib/commonjs/ui/session/createSessionClient.js +14 -2
  24. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  25. package/lib/commonjs/ui/session/deviceCredentialTracker.js +8 -0
  26. package/lib/commonjs/ui/session/deviceCredentialTracker.js.map +1 -1
  27. package/lib/module/ui/boot/runProviderColdBoot.js +14 -1
  28. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  29. package/lib/module/ui/components/OxySignInButton.js +25 -7
  30. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  31. package/lib/module/ui/context/OxyContext.js +200 -43
  32. package/lib/module/ui/context/OxyContext.js.map +1 -1
  33. package/lib/module/ui/context/commitSessionFlow.js +5 -0
  34. package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
  35. package/lib/module/ui/context/hooks/useAuthOperations.js +56 -9
  36. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  37. package/lib/module/ui/context/isolatedOAuthSession.js +44 -0
  38. package/lib/module/ui/context/isolatedOAuthSession.js.map +1 -0
  39. package/lib/module/ui/context/useOxyAccountGraph.js +7 -5
  40. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  41. package/lib/module/ui/hooks/useAuth.js +7 -3
  42. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  43. package/lib/module/ui/oauth/applicationSessionLane.js +26 -0
  44. package/lib/module/ui/oauth/applicationSessionLane.js.map +1 -0
  45. package/lib/module/ui/oauth/completeOAuthCode.js +4 -2
  46. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -1
  47. package/lib/module/ui/oauth/nativeAuthTransport.js +115 -0
  48. package/lib/module/ui/oauth/nativeAuthTransport.js.map +1 -0
  49. package/lib/module/ui/session/createSessionClient.js +14 -2
  50. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  51. package/lib/module/ui/session/deviceCredentialTracker.js +8 -0
  52. package/lib/module/ui/session/deviceCredentialTracker.js.map +1 -1
  53. package/lib/typescript/commonjs/index.d.ts +1 -0
  54. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +7 -0
  56. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +2 -0
  58. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +3 -1
  60. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +2 -0
  62. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +3 -2
  64. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/ui/context/isolatedOAuthSession.d.ts +19 -0
  66. package/lib/typescript/commonjs/ui/context/isolatedOAuthSession.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +3 -0
  68. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +2 -1
  70. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/ui/oauth/applicationSessionLane.d.ts +6 -0
  73. package/lib/typescript/commonjs/ui/oauth/applicationSessionLane.d.ts.map +1 -0
  74. package/lib/typescript/commonjs/ui/oauth/completeOAuthCode.d.ts +2 -2
  75. package/lib/typescript/commonjs/ui/oauth/nativeAuthTransport.d.ts +28 -0
  76. package/lib/typescript/commonjs/ui/oauth/nativeAuthTransport.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +1 -1
  78. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts.map +1 -1
  80. package/lib/typescript/module/index.d.ts +1 -0
  81. package/lib/typescript/module/index.d.ts.map +1 -1
  82. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +7 -0
  83. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  84. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +2 -0
  85. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  86. package/lib/typescript/module/ui/context/OxyContext.d.ts +3 -1
  87. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  88. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +2 -0
  89. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
  90. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +3 -2
  91. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  92. package/lib/typescript/module/ui/context/isolatedOAuthSession.d.ts +19 -0
  93. package/lib/typescript/module/ui/context/isolatedOAuthSession.d.ts.map +1 -0
  94. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +3 -0
  95. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  96. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +2 -1
  97. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  98. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  99. package/lib/typescript/module/ui/oauth/applicationSessionLane.d.ts +6 -0
  100. package/lib/typescript/module/ui/oauth/applicationSessionLane.d.ts.map +1 -0
  101. package/lib/typescript/module/ui/oauth/completeOAuthCode.d.ts +2 -2
  102. package/lib/typescript/module/ui/oauth/nativeAuthTransport.d.ts +28 -0
  103. package/lib/typescript/module/ui/oauth/nativeAuthTransport.d.ts.map +1 -0
  104. package/lib/typescript/module/ui/session/createSessionClient.d.ts +1 -1
  105. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  106. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts.map +1 -1
  107. package/package.json +30 -30
  108. package/src/index.ts +2 -0
  109. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +56 -2
  110. package/src/ui/boot/runProviderColdBoot.ts +22 -2
  111. package/src/ui/components/OxySignInButton.tsx +20 -4
  112. package/src/ui/context/OxyContext.tsx +171 -40
  113. package/src/ui/context/__tests__/commitSessionFlow.test.ts +13 -0
  114. package/src/ui/context/__tests__/isolatedOAuthSession.test.ts +35 -0
  115. package/src/ui/context/commitSessionFlow.ts +8 -0
  116. package/src/ui/context/hooks/useAuthOperations.ts +55 -9
  117. package/src/ui/context/isolatedOAuthSession.ts +48 -0
  118. package/src/ui/context/oxyContextTypes.ts +4 -0
  119. package/src/ui/context/useOxyAccountGraph.ts +8 -5
  120. package/src/ui/hooks/useAuth.ts +6 -2
  121. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +1 -1
  122. package/src/ui/oauth/__tests__/nativeAuthTransport.test.ts +57 -0
  123. package/src/ui/oauth/__tests__/oauthBearerCommit.http.test.ts +131 -0
  124. package/src/ui/oauth/applicationSessionLane.ts +26 -0
  125. package/src/ui/oauth/completeOAuthCode.ts +3 -3
  126. package/src/ui/oauth/nativeAuthTransport.ts +67 -0
  127. package/src/ui/session/createSessionClient.ts +13 -1
  128. 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","Error","deviceSecret","deviceId","expiresAt","userId","id","activate","createAccount","data","create"],"sourceRoot":"../../../../src","sources":["ui/context/useOxyAccountGraph.ts"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -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":"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","ignoreList":[]}
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 a session,
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;IACFlB,UAAU,CAAC,CAAC;IACZ,MAAMF,KAAK,CAACqB,aAAa,CAAC;MACxBC,SAAS,EAAEV,MAAM,CAACU,SAAS;MAC3BC,WAAW,EAAEX,MAAM,CAACW,WAAW;MAC/BC,QAAQ,EAAEZ,MAAM,CAACY,QAAQ;MACzBC,YAAY,EAAEb,MAAM,CAACa,YAAY;MACjCC,MAAM,EAAEd,MAAM,CAACe,IAAI,CAACC,EAAE;MACtBC,SAAS,EAAEjB,MAAM,CAACiB,SAAS;MAC3BF,IAAI,EAAEf,MAAM,CAACe;IACf,CAAC,CAAC;IACF,OAAO;MAAEjB,EAAE,EAAE;IAAK,CAAC;EACrB,CAAC,CAAC,OAAOoB,KAAK,EAAE;IACdvB,YAAM,CAACC,IAAI,CAAC,4BAA4B,EAAE;MAAEC,SAAS,EAAE;IAAoB,CAAC,EAAEqB,KAAK,CAAC;IACpF5B,UAAU,CAAC,CAAC;IACZ,OAAO;MAAEQ,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAkB,CAAC;EACjD;AACF","ignoreList":[]}
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 host = (0, _session.createSessionClientHost)(oxyServices);
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","host","createSessionClientHost","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,EAIxC;EACA,MAAMC,IAAI,GAAG,IAAAC,gCAAuB,EAACJ,WAAW,CAAC;EACjD,MAAMK,SAAS,GAAG,IAAAC,oCAAoB,EAACN,WAAW,EAAEE,kBAAkB,CAAC;EACvE,MAAMK,MAAM,GAAG,IAAIC,sBAAa,CAACL,IAAI,EAAE;IACrCE,SAAS;IACTJ,iBAAiB;IACjBC;EACF,CAAC,CAAC;EACF,OAAO;IAAEK,MAAM;IAAEJ;EAAK,CAAC;AACzB","ignoreList":[]}
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;IACLC,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;IACDQ,KAAK,EAAE,MAAAA,CAAA,KAAY;MACjBH,IAAI,GAAG,IAAI;MACX,MAAMD,KAAK,CAACI,KAAK,CAAC,CAAC;IACrB,CAAC;IACDC,oBAAoB,EAAEA,CAAA,KAAMJ;EAC9B,CAAC;AACH","ignoreList":[]}
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":[]}
@@ -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":"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","ignoreList":[]}
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":"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","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).catch(error => {
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
- startOfficialSignIn();
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.type === 'third_party' && !app.isOfficial) {
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
  //
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useState","useEffect","useRef","Platform","logger","generatePkcePair","generateOAuthState","buildOAuthAuthorizeUrl","useAuthStore","useShallow","SocialButton","socialButtonLabel","toast","useOxy","useI18n","subscribeToAccountDialog","openAuthorizeUrlNative","closeOAuthPopup","openOAuthPopup","jsx","_jsx","ACTION_KEYS","signIn","continue","signUp","OxySignInButton","variant","appearance","action","size","fullWidth","iconOnly","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","t","openAccountDialog","oxyServices","clientId","webAuthMode","startWebOAuthSignIn","isAuthenticated","isLoading","state","isModalOpen","setIsModalOpen","appResolutionRef","routingRef","shouldPreOpenPopup","OS","Boolean","resolvePublicApplication","cached","current","promise","apps","getPublic","catch","error","notifyNotConfigured","appName","description","app","notifyFailed","startOfficialSignIn","startThirdPartyOAuth","popup","undefined","component","application","name","result","redirectUri","status","warn","reason","pkce","Promise","all","authorizeUrl","codeChallenge","redirectUrl","codeVerifier","routeSignIn","resolving","type","isOfficial","Error","String","handlePress","isButtonDisabled","resolvedAppearance","actionKey","translated","label","brand","accessibilityLabel","children"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["classifyApplicationSessionLane","useCallback","useState","useEffect","useRef","Platform","logger","generatePkcePair","generateOAuthState","buildOAuthAuthorizeUrl","useAuthStore","useShallow","SocialButton","socialButtonLabel","toast","useOxy","useI18n","subscribeToAccountDialog","openAuthorizeUrlNative","closeOAuthPopup","openOAuthPopup","jsx","_jsx","ACTION_KEYS","signIn","continue","signUp","OxySignInButton","variant","appearance","action","size","fullWidth","iconOnly","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","nativeOAuthCompletion","t","openAccountDialog","oxyServices","clientId","webAuthMode","startWebOAuthSignIn","startNativeOAuthSignIn","isAuthenticated","isLoading","state","isModalOpen","setIsModalOpen","appResolutionRef","routingRef","shouldPreOpenPopup","OS","Boolean","resolvePublicApplication","cached","current","promise","apps","getPublic","cache","catch","error","notifyNotConfigured","appName","description","app","notifyFailed","startOfficialSignIn","startThirdPartyOAuth","popup","undefined","component","application","name","result","redirectUri","status","warn","reason","pkce","Promise","all","authorizeUrl","codeChallenge","redirectUrl","codeVerifier","routeSignIn","resolving","Error","String","handlePress","isButtonDisabled","resolvedAppearance","actionKey","translated","label","brand","accessibilityLabel","children"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":";;AAAA,SAASA,8BAA8B,QAAQ,oCAAiC;AAEhF,SAASC,WAAW,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAAyDC,QAAQ,QAAQ,cAAc;AACvF,SACIC,MAAM,EACNC,gBAAgB,EAChBC,kBAAkB,EAClBC,sBAAsB,QAEnB,cAAc;AACrB,SAASC,YAAY,QAAQ,wBAAqB;AAClD,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SACIC,YAAY,EACZC,iBAAiB,QAId,6BAA6B;AACpC,SAASC,KAAK,QAAQ,qBAAqB;AAC3C,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,wBAAwB,QAAQ,uCAAoC;AAC7E,SAASC,sBAAsB,QAAQ,sBAAmB;AAC1D,SAASC,eAAe,EAAEC,cAAc,QAAQ,wBAAqB;;AAGrE;AACA;AACA;AACA;AACA;AACA;;AAUA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AA0GA,MAAMC,WAAkD,GAAG;EACvDC,MAAM,EAAE,+BAA+B;EACvCC,QAAQ,EAAE,iCAAiC;EAC3CC,MAAM,EAAE;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAA+C,GAAGA,CAAC;EAC5DC,OAAO,GAAG,SAAS;EACnBC,UAAU;EACVC,MAAM,GAAG,QAAQ;EACjBC,IAAI,GAAG,IAAI;EACXC,SAAS,GAAG,KAAK;EACjBC,QAAQ,GAAG,KAAK;EAChBC,OAAO;EACPC,KAAK;EACLC,SAAS;EACTC,IAAI;EACJC,QAAQ,GAAG,KAAK;EAChBC,qBAAqB,GAAG,KAAK;EAC7BC,gBAAgB;EAChBC,aAAa;EACbC;AACJ,CAAC,KAAK;EACF,MAAM;IAAEC;EAAE,CAAC,GAAG3B,OAAO,CAAC,CAAC;EACvB,MAAM;IAAE4B,iBAAiB;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC,mBAAmB;IAAEC;EAAuB,CAAC,GAAGlC,MAAM,CAAC,CAAC;EACvH,MAAM;IAAEmC,eAAe;IAAEC;EAAU,CAAC,GAAGzC,YAAY,CAC/CC,UAAU,CAAEyC,KAAK,KAAM;IAAEF,eAAe,EAAEE,KAAK,CAACF,eAAe;IAAEC,SAAS,EAAEC,KAAK,CAACD;EAAU,CAAC,CAAC,CAClG,CAAC;EACD;EACA;EACA;EACA,MAAM,CAACE,WAAW,EAAEC,cAAc,CAAC,GAAGpD,QAAQ,CAAC,KAAK,CAAC;EAErDC,SAAS,CAAC,MAAMc,wBAAwB,CAACqC,cAAc,CAAC,EAAE,EAAE,CAAC;;EAE7D;EACA;EACA;EACA;EACA;EACA,MAAMC,gBAAgB,GAAGnD,MAAM,CAIrB,IAAI,CAAC;EACf;EACA;EACA;EACA,MAAMoD,UAAU,GAAGpD,MAAM,CAAC,KAAK,CAAC;EAChC;EACA;EACA;EACA;EACA,MAAMqD,kBAAkB,GACpBpD,QAAQ,CAACqD,EAAE,KAAK,KAAK,IAAIX,WAAW,KAAK,OAAO,IAAIY,OAAO,CAACnB,gBAAgB,CAAC;EAEjF,MAAMoB,wBAAwB,GAAG3D,WAAW,CAAC,MAAyC;IAClF,IAAI,CAAC6C,QAAQ,EAAE,OAAO,IAAI;IAC1B,MAAMe,MAAM,GAAGN,gBAAgB,CAACO,OAAO;IACvC,IAAID,MAAM,IAAIA,MAAM,CAACf,QAAQ,KAAKA,QAAQ,IAAIe,MAAM,CAAChB,WAAW,KAAKA,WAAW,EAAE;MAC9E,OAAOgB,MAAM,CAACE,OAAO;IACzB;IACA,MAAMA,OAAO,GAAGlB,WAAW,CAACmB,IAAI,CAACC,SAAS,CAACnB,QAAQ,EAAE;MAAEoB,KAAK,EAAE;IAAM,CAAC,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;MACpF;MACA;MACA,IAAIb,gBAAgB,CAACO,OAAO,EAAEC,OAAO,KAAKA,OAAO,EAAE;QAC/CR,gBAAgB,CAACO,OAAO,GAAG,IAAI;MACnC;MACA,MAAMM,KAAK;IACf,CAAC,CAAC;IACFb,gBAAgB,CAACO,OAAO,GAAG;MAAEhB,QAAQ;MAAED,WAAW;MAAEkB;IAAQ,CAAC;IAC7D,OAAOA,OAAO;EAClB,CAAC,EAAE,CAACjB,QAAQ,EAAED,WAAW,CAAC,CAAC;;EAE3B;EACA;EACA;EACA;EACA,MAAMwB,mBAAmB,GAAGpE,WAAW,CAClCqE,OAAe,IAAK;IACjBxD,KAAK,CAACsD,KAAK,CAACzB,CAAC,CAAC,6BAA6B,CAAC,EAAE;MAC1C4B,WAAW,EAAE5B,CAAC,CAAC,wCAAwC,EAAE;QAAE6B,GAAG,EAAEF;MAAQ,CAAC;IAC7E,CAAC,CAAC;EACN,CAAC,EACD,CAAC3B,CAAC,CACN,CAAC;EACD,MAAM8B,YAAY,GAAGxE,WAAW,CAAC,MAAM;IACnCa,KAAK,CAACsD,KAAK,CAACzB,CAAC,CAAC,sBAAsB,CAAC,EAAE;MACnC4B,WAAW,EAAE5B,CAAC,CAAC,iCAAiC;IACpD,CAAC,CAAC;EACN,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;;EAEP;EACA,MAAM+B,mBAAmB,GAAGzE,WAAW,CAAC,MAAM;IAC1C2C,iBAAiB,CAAC,QAAQ,CAAC;EAC/B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;;EAEvB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM+B,oBAAoB,GAAG1E,WAAW,CACpC,OAAOuE,GAAsB,EAAEI,KAA8B,KAAoB;IAC7E,IAAI,CAAC9B,QAAQ,EAAE;MACX3B,eAAe,CAACyD,KAAK,CAAC;MACtBF,mBAAmB,CAAC,CAAC;MACrB;IACJ;IACA,IAAI,CAAClC,gBAAgB,EAAE;MACnBrB,eAAe,CAACyD,KAAK,CAAC;MACtBtE,MAAM,CAAC8D,KAAK,CACR,0HAA0H,EAC1HS,SAAS,EACT;QAAEC,SAAS,EAAE,iBAAiB;QAAEhC,QAAQ;QAAEiC,WAAW,EAAEP,GAAG,CAACQ;MAAK,CACpE,CAAC;MACDX,mBAAmB,CAACG,GAAG,CAACQ,IAAI,CAAC;MAC7B;IACJ;IAEA,IAAI3E,QAAQ,CAACqD,EAAE,KAAK,KAAK,EAAE;MACvB,MAAMuB,MAAM,GAAG,MAAMjC,mBAAmB,CAAC;QACrCkC,WAAW,EAAE1C,gBAAgB;QAC7B;QACA;QACA;QACA;QACA,IAAIiB,kBAAkB,GAAG;UAAEmB;QAAM,CAAC,GAAG,CAAC,CAAC;MAC3C,CAAC,CAAC;MACF,IAAIK,MAAM,CAACE,MAAM,KAAK,QAAQ,EAAE;QAC5B7E,MAAM,CAAC8E,IAAI,CACP,wCAAwCH,MAAM,CAACI,MAAM,GAAG,EACxD;UAAEP,SAAS,EAAE,iBAAiB;UAAEC,WAAW,EAAEP,GAAG,CAACQ;QAAK,CAAC,EACvDC,MAAM,CAACV,WACX,CAAC;QACDE,YAAY,CAAC,CAAC;MAClB;MACA;IACJ;IAEA,IAAI/B,qBAAqB,KAAK,KAAK,EAAE;MACjC,IAAID,aAAa,EAAE;QAAE4B,mBAAmB,CAACG,GAAG,CAACQ,IAAI,CAAC;QAAE;MAAQ;MAC5D,MAAMC,MAAM,GAAG,MAAMhC,sBAAsB,CAAC;QAAEiC,WAAW,EAAE1C;MAAiB,CAAC,CAAC;MAC9E,IAAIyC,MAAM,CAACE,MAAM,KAAK,QAAQ,EAAEV,YAAY,CAAC,CAAC;MAC9C,IAAIQ,MAAM,CAACE,MAAM,KAAK,aAAa,EAAEd,mBAAmB,CAACG,GAAG,CAACQ,IAAI,CAAC;MAClE;IACJ;;IAEA;IACA;IACA,MAAM,CAACM,IAAI,EAAElC,KAAK,CAAC,GAAG,MAAMmC,OAAO,CAACC,GAAG,CAAC,CAACjF,gBAAgB,CAAC,CAAC,EAAEC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnF,MAAMiF,YAAY,GAAGhF,sBAAsB,CAAC;MACxCqC,QAAQ;MACRoC,WAAW,EAAE1C,gBAAgB;MAC7BY,KAAK;MACLsC,aAAa,EAAEJ,IAAI,CAACI;IACxB,CAAC,CAAC;IACF,MAAM;MAAEC;IAAY,CAAC,GAAG,MAAMzE,sBAAsB,CAACuE,YAAY,EAAEjD,gBAAgB,CAAC;IACpF,IAAIC,aAAa,EAAE;MACfA,aAAa,CAAC;QAAEkD,WAAW;QAAEvC,KAAK;QAAEwC,YAAY,EAAEN,IAAI,CAACM;MAAa,CAAC,CAAC;MACtE;IACJ;IACAtF,MAAM,CAAC8E,IAAI,CACP,yLAAyL,EACzL;MAAEN,SAAS,EAAE,iBAAiB;MAAEC,WAAW,EAAEP,GAAG,CAACQ;IAAK,CAC1D,CAAC;IACDX,mBAAmB,CAACG,GAAG,CAACQ,IAAI,CAAC;EACjC,CAAC,EACD,CACIlC,QAAQ,EACRN,gBAAgB,EAChBC,aAAa,EACbC,qBAAqB,EACrBO,sBAAsB,EACtByB,mBAAmB,EACnB1B,mBAAmB,EACnBS,kBAAkB,EAClBY,mBAAmB,EACnBI,YAAY,CAEpB,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA,MAAMoB,WAAW,GAAG5F,WAAW,CAC3B,MAAO2E,KAA8B,IAAoB;IACrD,IAAIpB,UAAU,CAACM,OAAO,EAAE;MACpB3C,eAAe,CAACyD,KAAK,CAAC;MACtB;IACJ;IACApB,UAAU,CAACM,OAAO,GAAG,IAAI;IACzB,IAAI;MACA,MAAMgC,SAAS,GAAGlC,wBAAwB,CAAC,CAAC;MAC5C,IAAI,CAACkC,SAAS,EAAE;QACZ3E,eAAe,CAACyD,KAAK,CAAC;QACtBP,mBAAmB,CAAC,UAAU,CAAC;QAC/B;MACJ;MACA,IAAIG,GAAsB;MAC1B,IAAI;QACAA,GAAG,GAAG,MAAMsB,SAAS;MACzB,CAAC,CAAC,OAAO1B,KAAK,EAAE;QACZjD,eAAe,CAACyD,KAAK,CAAC;QACtBtE,MAAM,CAAC8E,IAAI,CACP,qEAAqE,EACrE;UAAEN,SAAS,EAAE,iBAAiB;UAAEhC;QAAS,CAAC,EAC1CsB,KACJ,CAAC;QACDK,YAAY,CAAC,CAAC;QACd;MACJ;MACA,IAAIzE,8BAA8B,CAACwE,GAAG,CAAC,KAAK,OAAO,EAAE;QACjD,MAAMG,oBAAoB,CAACH,GAAG,EAAEI,KAAK,CAAC;QACtC;MACJ;MACAzD,eAAe,CAACyD,KAAK,CAAC;MACtBF,mBAAmB,CAAC,CAAC;IACzB,CAAC,CAAC,OAAON,KAAK,EAAE;MACZ;MACA;MACA;MACA;MACAjD,eAAe,CAACyD,KAAK,CAAC;MACtBtE,MAAM,CAAC8D,KAAK,CACR,yDAAyD,EACzDA,KAAK,YAAY2B,KAAK,GAAG3B,KAAK,GAAG,IAAI2B,KAAK,CAACC,MAAM,CAAC5B,KAAK,CAAC,CAAC,EACzD;QAAEU,SAAS,EAAE,iBAAiB;QAAEhC;MAAS,CAC7C,CAAC;MACD2B,YAAY,CAAC,CAAC;IAClB,CAAC,SAAS;MACNlB,gBAAgB,CAACO,OAAO,GAAG,IAAI;MAC/BN,UAAU,CAACM,OAAO,GAAG,KAAK;IAC9B;EACJ,CAAC,EACD,CACIF,wBAAwB,EACxBc,mBAAmB,EACnBC,oBAAoB,EACpB7B,QAAQ,EACRuB,mBAAmB,EACnBI,YAAY,CAEpB,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA,MAAMwB,WAAW,GAAGhG,WAAW,CAAC,MAAM;IAClC,IAAIiC,OAAO,EAAE;MACTA,OAAO,CAAC,CAAC;MACT;IACJ;IACA,KAAK2D,WAAW,CAACpC,kBAAkB,GAAGrC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC;EAClE,CAAC,EAAE,CAACc,OAAO,EAAE2D,WAAW,EAAEpC,kBAAkB,CAAC,CAAC;;EAE9C;EACA,IAAIP,eAAe,IAAI,CAACX,qBAAqB,EAAE,OAAO,IAAI;EAE1D,MAAM2D,gBAAgB,GAAG5D,QAAQ,IAAIa,SAAS,IAAIE,WAAW;;EAE7D;EACA;EACA,MAAM8C,kBAA0C,GAC5CtE,UAAU,KAAKD,OAAO,KAAK,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;;EAElE;EACA;EACA,MAAMwE,SAAS,GAAG7E,WAAW,CAACO,MAAM,CAAC;EACrC,MAAMuE,UAAU,GAAG1D,CAAC,CAACyD,SAAS,CAAC;EAC/B,MAAME,KAAK,GAAGjE,IAAI,KAAKgE,UAAU,KAAKD,SAAS,GAAGvF,iBAAiB,CAAC,KAAK,EAAEiB,MAAM,CAAC,GAAGuE,UAAU,CAAC;EAEhG,oBACI/E,IAAA,CAACV,YAAY;IACT2F,KAAK,EAAC,KAAK;IACXzE,MAAM,EAAEA,MAAO;IACfD,UAAU,EAAEsE,kBAAmB;IAC/BpE,IAAI,EAAEA,IAAK;IACXC,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IACnBC,OAAO,EAAE+D,WAAY;IACrB3D,QAAQ,EAAE4D,gBAAiB;IAC3B/D,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrBoE,kBAAkB,EAAEvE,QAAQ,GAAGqE,KAAK,GAAGzB,SAAU;IAAA4B,QAAA,EAEhDtD,SAAS,IAAIE,WAAW,GAAGV,CAAC,CAAC,yBAAyB,CAAC,GAAG2D;EAAK,CACtD,CAAC;AAEvB,CAAC;AAED,eAAe3E,eAAe","ignoreList":[]}