@oxy.so/services 10.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 (149) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/AndroidManifest.xml +6 -6
  3. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionModule.kt +106 -41
  4. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionProvider.kt +45 -32
  5. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionStore.kt +22 -27
  6. package/android/src/main/java/so/oxy/identity/OxyIdentityModule.kt +89 -43
  7. package/android/src/main/java/so/oxy/security/OxyCallerPolicy.kt +97 -0
  8. package/android/src/main/java/so/oxy/session/OxyBackgroundSessionStore.kt +4 -10
  9. package/android/src/main/java/so/oxy/storage/OxyEncryptedPrefs.kt +17 -18
  10. package/ios/OxyIdentityModule.swift +13 -14
  11. package/lib/commonjs/ui/boot/runProviderColdBoot.js +16 -3
  12. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  13. package/lib/commonjs/ui/components/OxySignInButton.js +25 -7
  14. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  15. package/lib/commonjs/ui/context/OxyContext.js +198 -41
  16. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  17. package/lib/commonjs/ui/context/commitSessionFlow.js +5 -0
  18. package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
  19. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +56 -9
  20. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  21. package/lib/commonjs/ui/context/isolatedOAuthSession.js +52 -0
  22. package/lib/commonjs/ui/context/isolatedOAuthSession.js.map +1 -0
  23. package/lib/commonjs/ui/context/useOxyAccountGraph.js +7 -5
  24. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  25. package/lib/commonjs/ui/hooks/useAuth.js +7 -3
  26. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  27. package/lib/commonjs/ui/oauth/applicationSessionLane.js +32 -0
  28. package/lib/commonjs/ui/oauth/applicationSessionLane.js.map +1 -0
  29. package/lib/commonjs/ui/oauth/completeOAuthCode.js +4 -2
  30. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -1
  31. package/lib/commonjs/ui/oauth/nativeAuthTransport.js +119 -0
  32. package/lib/commonjs/ui/oauth/nativeAuthTransport.js.map +1 -0
  33. package/lib/commonjs/ui/session/createSessionClient.js +14 -2
  34. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  35. package/lib/commonjs/ui/session/deviceCredentialTracker.js +8 -0
  36. package/lib/commonjs/ui/session/deviceCredentialTracker.js.map +1 -1
  37. package/lib/commonjs/ui/session/tokenLossRecovery.js +1 -1
  38. package/lib/module/ui/boot/runProviderColdBoot.js +16 -3
  39. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  40. package/lib/module/ui/components/OxySignInButton.js +25 -7
  41. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  42. package/lib/module/ui/context/OxyContext.js +200 -43
  43. package/lib/module/ui/context/OxyContext.js.map +1 -1
  44. package/lib/module/ui/context/commitSessionFlow.js +5 -0
  45. package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
  46. package/lib/module/ui/context/hooks/useAuthOperations.js +56 -9
  47. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  48. package/lib/module/ui/context/isolatedOAuthSession.js +44 -0
  49. package/lib/module/ui/context/isolatedOAuthSession.js.map +1 -0
  50. package/lib/module/ui/context/useOxyAccountGraph.js +7 -5
  51. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  52. package/lib/module/ui/hooks/useAuth.js +7 -3
  53. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  54. package/lib/module/ui/oauth/applicationSessionLane.js +26 -0
  55. package/lib/module/ui/oauth/applicationSessionLane.js.map +1 -0
  56. package/lib/module/ui/oauth/completeOAuthCode.js +4 -2
  57. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -1
  58. package/lib/module/ui/oauth/nativeAuthTransport.js +115 -0
  59. package/lib/module/ui/oauth/nativeAuthTransport.js.map +1 -0
  60. package/lib/module/ui/session/createSessionClient.js +14 -2
  61. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  62. package/lib/module/ui/session/deviceCredentialTracker.js +8 -0
  63. package/lib/module/ui/session/deviceCredentialTracker.js.map +1 -1
  64. package/lib/module/ui/session/tokenLossRecovery.js +1 -1
  65. package/lib/typescript/commonjs/index.d.ts +1 -0
  66. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +9 -2
  68. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +2 -0
  70. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +3 -1
  72. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +2 -0
  74. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +3 -2
  76. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/ui/context/isolatedOAuthSession.d.ts +19 -0
  78. package/lib/typescript/commonjs/ui/context/isolatedOAuthSession.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +3 -0
  80. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +2 -1
  82. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/ui/oauth/applicationSessionLane.d.ts +6 -0
  85. package/lib/typescript/commonjs/ui/oauth/applicationSessionLane.d.ts.map +1 -0
  86. package/lib/typescript/commonjs/ui/oauth/completeOAuthCode.d.ts +2 -2
  87. package/lib/typescript/commonjs/ui/oauth/nativeAuthTransport.d.ts +28 -0
  88. package/lib/typescript/commonjs/ui/oauth/nativeAuthTransport.d.ts.map +1 -0
  89. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +1 -1
  90. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts.map +1 -1
  92. package/lib/typescript/module/index.d.ts +1 -0
  93. package/lib/typescript/module/index.d.ts.map +1 -1
  94. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +9 -2
  95. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  96. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +2 -0
  97. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  98. package/lib/typescript/module/ui/context/OxyContext.d.ts +3 -1
  99. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  100. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +2 -0
  101. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
  102. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +3 -2
  103. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  104. package/lib/typescript/module/ui/context/isolatedOAuthSession.d.ts +19 -0
  105. package/lib/typescript/module/ui/context/isolatedOAuthSession.d.ts.map +1 -0
  106. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +3 -0
  107. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  108. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +2 -1
  109. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  110. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  111. package/lib/typescript/module/ui/oauth/applicationSessionLane.d.ts +6 -0
  112. package/lib/typescript/module/ui/oauth/applicationSessionLane.d.ts.map +1 -0
  113. package/lib/typescript/module/ui/oauth/completeOAuthCode.d.ts +2 -2
  114. package/lib/typescript/module/ui/oauth/nativeAuthTransport.d.ts +28 -0
  115. package/lib/typescript/module/ui/oauth/nativeAuthTransport.d.ts.map +1 -0
  116. package/lib/typescript/module/ui/session/createSessionClient.d.ts +1 -1
  117. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  118. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts.map +1 -1
  119. package/package.json +30 -30
  120. package/plugins/withOxySharedPermissions.js +89 -0
  121. package/plugins/withSharedDeviceSessionProvider.js +26 -71
  122. package/src/index.ts +2 -0
  123. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +56 -2
  124. package/src/ui/boot/runProviderColdBoot.ts +24 -4
  125. package/src/ui/components/OxySignInButton.tsx +20 -4
  126. package/src/ui/context/OxyContext.tsx +171 -40
  127. package/src/ui/context/__tests__/commitSessionFlow.test.ts +13 -0
  128. package/src/ui/context/__tests__/isolatedOAuthSession.test.ts +35 -0
  129. package/src/ui/context/commitSessionFlow.ts +8 -0
  130. package/src/ui/context/hooks/useAuthOperations.ts +55 -9
  131. package/src/ui/context/isolatedOAuthSession.ts +48 -0
  132. package/src/ui/context/oxyContextTypes.ts +4 -0
  133. package/src/ui/context/useOxyAccountGraph.ts +8 -5
  134. package/src/ui/hooks/useAuth.ts +6 -2
  135. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +1 -1
  136. package/src/ui/oauth/__tests__/nativeAuthTransport.test.ts +57 -0
  137. package/src/ui/oauth/__tests__/oauthBearerCommit.http.test.ts +131 -0
  138. package/src/ui/oauth/applicationSessionLane.ts +26 -0
  139. package/src/ui/oauth/completeOAuthCode.ts +3 -3
  140. package/src/ui/oauth/nativeAuthTransport.ts +67 -0
  141. package/src/ui/session/__tests__/tokenLossRecovery.test.ts +2 -2
  142. package/src/ui/session/createSessionClient.ts +13 -1
  143. package/src/ui/session/deviceCredentialTracker.ts +7 -1
  144. package/src/ui/session/tokenLossRecovery.ts +1 -1
  145. package/android/src/main/java/so/oxy/identity/OxyIdentityProvider.kt +0 -77
  146. package/android/src/main/java/so/oxy/identity/OxyIdentityStore.kt +0 -66
  147. package/plugins/withSharedDeviceSessionReader.js +0 -57
  148. package/plugins/withSharedIdentityProvider.js +0 -83
  149. package/plugins/withSharedIdentityReader.js +0 -46
@@ -0,0 +1,97 @@
1
+ package so.oxy.security
2
+
3
+ import android.content.Context
4
+ import android.content.pm.PackageManager
5
+ import android.os.Binder
6
+ import android.os.Build
7
+ import android.util.Log
8
+ import java.security.MessageDigest
9
+
10
+ /**
11
+ * Which app is calling one of this package's ContentProviders, and whether it
12
+ * is an Oxy app.
13
+ *
14
+ * Oxy Android apps do not share a UID, so every cross-app call crosses a real
15
+ * process and permission boundary. The manifest already demands a
16
+ * `signature`-level permission (`so.oxy.permission.DEVICE_SESSION`); inside
17
+ * `call()` this checks again, because a permission is necessary but not
18
+ * sufficient:
19
+ *
20
+ * 1. **The package is an Oxy app** listed in [OXY_PACKAGES]. The caller is taken
21
+ * from `Binder.getCallingUid()`, never from anything the caller sends.
22
+ * 2. **It is signed with this app's certificate**: `hasSigningCertificate`
23
+ * (SHA-256, API 28+), `checkSignatures` below that.
24
+ *
25
+ * Keep [OXY_PACKAGES] identical to the identity host's list in Commons
26
+ * (`modules/oxy-identity-host`, `OxyCallerPolicy.kt`); a test compares them.
27
+ */
28
+ internal object OxyCallerPolicy {
29
+ private const val TAG = "OxyCallerPolicy"
30
+
31
+ val OXY_PACKAGES: Set<String> = setOf(
32
+ "earth.mention.app",
33
+ "earth.mention.app.dev",
34
+ "onl.alia.app",
35
+ "onl.alia.app.dev",
36
+ "com.allo.app",
37
+ "com.allo.app.dev",
38
+ "com.homiio.android",
39
+ "com.homiio.android.dev",
40
+ "so.oxy.crowdsource",
41
+ "so.oxy.crowdsource.dev",
42
+ "to.peable.app",
43
+ "to.peable.app.dev",
44
+ "so.oxy.atlas",
45
+ "so.oxy.atlas.dev",
46
+ "to.goway.app",
47
+ "to.goway.app.dev",
48
+ "so.oxy.move",
49
+ "so.oxy.move.dev",
50
+ "sh.willo.app",
51
+ "sh.willo.app.dev",
52
+ "now.moovo.app",
53
+ "now.moovo.app.dev",
54
+ "now.moovo.go",
55
+ "now.moovo.go.dev",
56
+ "now.moovo.tracker",
57
+ "now.moovo.tracker.dev",
58
+ "now.moovo.hub",
59
+ "now.moovo.hub.dev",
60
+ "so.oxy.noted",
61
+ "so.oxy.noted.dev",
62
+ "so.oxy.accounts",
63
+ "so.oxy.accounts.dev",
64
+ "so.oxy.commons",
65
+ "so.oxy.commons.dev",
66
+ )
67
+
68
+ /**
69
+ * The calling package when it is allow-listed and signed like this app, or
70
+ * null (logged with the package names and the method only, never a value).
71
+ */
72
+ fun resolveCaller(context: Context, method: String): String? {
73
+ val pm = context.packageManager
74
+ val uid = Binder.getCallingUid()
75
+ val packages = runCatching { pm.getPackagesForUid(uid) }.getOrNull().orEmpty()
76
+ val caller = packages.firstOrNull { it in OXY_PACKAGES && signedLikeSelf(context, it) }
77
+ if (caller == null) {
78
+ Log.w(TAG, "refused $method for ${packages.joinToString().ifEmpty { "uid $uid" }}")
79
+ }
80
+ return caller
81
+ }
82
+
83
+ private fun signedLikeSelf(context: Context, pkg: String): Boolean = runCatching {
84
+ val pm = context.packageManager
85
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
86
+ val info = pm.getPackageInfo(context.packageName, PackageManager.GET_SIGNING_CERTIFICATES)
87
+ val signers = info.signingInfo?.apkContentsSigners.orEmpty()
88
+ signers.isNotEmpty() && signers.any { signer ->
89
+ val digest = MessageDigest.getInstance("SHA-256").digest(signer.toByteArray())
90
+ pm.hasSigningCertificate(pkg, digest, PackageManager.CERT_INPUT_SHA256)
91
+ }
92
+ } else {
93
+ @Suppress("DEPRECATION")
94
+ pm.checkSignatures(pkg, context.packageName) == PackageManager.SIGNATURE_MATCH
95
+ }
96
+ }.getOrDefault(false)
97
+ }
@@ -22,13 +22,7 @@ import so.oxy.storage.RecoveryPolicy
22
22
  * Neither ever rotates the credential — the server does not rotate it either.
23
23
  */
24
24
  internal object OxyBackgroundSessionStore {
25
- /**
26
- * Suffix is the hosting app's package name. Oxy apps share the `so.oxy.shared`
27
- * Android UID (and therefore one data directory), so a single global prefs name
28
- * would let one app that leaves `backgroundSession` off wipe another app's
29
- * live credential on launch. Scoping by package keeps each app's widget/sync
30
- * store independent.
31
- */
25
+ /** Suffix is the hosting app's package name, so the file says whose credential it holds. */
32
26
  private const val PREFS_NAME_PREFIX = "oxy_background_session_"
33
27
 
34
28
  private fun prefsName(context: Context): String = PREFS_NAME_PREFIX + context.packageName
@@ -61,13 +55,13 @@ internal object OxyBackgroundSessionStore {
61
55
 
62
56
  /**
63
57
  * [RecoveryPolicy.RebuildFileOnly] — this store must NEVER escalate to a
64
- * UID-shared master-key reset.
58
+ * master-key reset.
65
59
  *
66
60
  * What it holds is disposable: the app re-provisions the credential on its next
67
61
  * foreground, so "no credential" is a complete recovery that costs the user
68
62
  * nothing (background refreshes render signed out until then). A master-key reset
69
- * would wipe every other Oxy store sharing the alias — including the self-custody
70
- * identity keypair, which is IRREPLACEABLE. Trading someone else's unrecoverable
63
+ * would wipe every other encrypted store of this app sharing the alias — in
64
+ * Commons, including the identity signer store. Trading someone else's unrecoverable
71
65
  * data to save data we can simply ask for again is never the right trade, so the
72
66
  * escalation is not merely discouraged here, it is unreachable.
73
67
  */
@@ -18,11 +18,11 @@ import java.security.GeneralSecurityException
18
18
  *
19
19
  * It used to have a second value, `RegenerateSharedMasterKey`, which deleted the
20
20
  * androidx master key (`_androidx_security_master_key_`) when a rebuild failed.
21
- * That key is ONE Keystore entry for the whole `so.oxy.shared` UID and wraps the
22
- * keyset of every Oxy prefs file in every Oxy app, so deleting it let one app
23
- * make every sibling's encrypted prefs unreadable. It was removed for
24
- * OxyHQ/oxy#1388 and must not come back: no store in any Oxy app deletes a
25
- * UID-shared key.
21
+ * That key is ONE Keystore entry for the whole app and wraps the keyset of every
22
+ * encrypted prefs file in it, so deleting it to heal one file made every other
23
+ * file unreadable (when Oxy apps still shared a UID, every OTHER app's files
24
+ * too). It was removed for OxyHQ/oxy#1388 and must not come back: no store
25
+ * deletes a Keystore entry.
26
26
  */
27
27
  internal enum class RecoveryPolicy {
28
28
  /**
@@ -37,9 +37,9 @@ internal enum class RecoveryPolicy {
37
37
  * The ONE way this package opens a hardware-backed [EncryptedSharedPreferences]
38
38
  * file.
39
39
  *
40
- * Two stores are built on it — the cross-app identity keypair
41
- * (`so.oxy.identity.OxyIdentityStore`) and the background session credential
42
- * (`so.oxy.session.OxyBackgroundSessionStore`) — and both need the same two
40
+ * The stores built on it — the device session credential
41
+ * (`so.oxy.devicesession.OxyDeviceSessionStore`) and the background session
42
+ * credential (`so.oxy.session.OxyBackgroundSessionStore`) — all need the same two
43
43
  * non-obvious properties below. They are implemented once here rather than per
44
44
  * store: a second copy would be a copy of exactly the reasoning that is easiest
45
45
  * to get wrong, and the failure mode of getting it wrong is silent (every read
@@ -67,9 +67,9 @@ internal enum class RecoveryPolicy {
67
67
  * ## Keyset self-heal (CRITICAL)
68
68
  *
69
69
  * The androidx master key that wraps each file's Tink keyset lives under the
70
- * UID-scoped default alias [MasterKey.DEFAULT_MASTER_KEY_ALIAS] — ONE entry for
71
- * the whole `so.oxy.shared` UID. When a NEW package joins that shared UID, that
72
- * master key can be rotated/regenerated, leaving keysets already written on disk
70
+ * default alias [MasterKey.DEFAULT_MASTER_KEY_ALIAS] — ONE entry for the whole
71
+ * app. When that master key is regenerated (a Keystore invalidation, a restore
72
+ * from a device-to-device transfer), keysets already written on disk stay
73
73
  * wrapped under the OLD key. `create()` then fails GCM verification
74
74
  * (`AEADBadTag` -> `GeneralSecurityException`, or an unreadable keyset ->
75
75
  * `IOException`) on EVERY read/write, and `EncryptedSharedPreferences` never
@@ -81,14 +81,13 @@ internal enum class RecoveryPolicy {
81
81
  * keysets. If a fresh keyset still cannot be built, the failure propagates and
82
82
  * the `runCatching {}` at every call site degrades to "absent".
83
83
  *
84
- * The master key itself is NEVER deleted here. It is shared by the whole UID, so
85
- * deleting it would make every other Oxy app's prefs file unreadable (and each
86
- * would then wipe itself on its next open). When the master key is gone — the
87
- * Keystore of the UID was wiped because some Oxy app's storage was cleared —
88
- * androidx creates a new one on the next `MasterKey.Builder.build()` and each
84
+ * The master key itself is NEVER deleted here. It is shared by every file of the
85
+ * app, so deleting it would make every other one unreadable (and each would then
86
+ * wipe itself on its next open). When the master key is gone — the app's
87
+ * Keystore was wiped with its storage — androidx creates a new one on the next `MasterKey.Builder.build()` and each
89
88
  * file heals itself through the file-only rebuild above. What was IN those
90
89
  * files is lost with the Keystore either way; for the self-custody identity,
91
- * the keystore-independent device backup brings it back (docs/identity/device-backup.md).
90
+ * Commons' keystore-independent device backup brings it back (docs/identity/device-backup.md).
92
91
  *
93
92
  * None of this touches the app's device session, which lives in expo-secure-store
94
93
  * under a DISTINCT prefs file ("SecureStore") and DISTINCT keystore aliases
@@ -164,7 +163,7 @@ internal object OxyEncryptedPrefs {
164
163
  Log.w(
165
164
  TAG,
166
165
  "'$prefsName' is still unreadable after a file reset ($recovery). Giving up " +
167
- "without touching the UID-shared master key; its owner re-creates it.",
166
+ "without touching the app-wide master key; its owner re-creates it.",
168
167
  cause
169
168
  )
170
169
  throw cause
@@ -1,33 +1,32 @@
1
1
  import ExpoModulesCore
2
2
 
3
3
  /**
4
- * iOS no-op implementation of the shared Oxy identity bridge.
4
+ * iOS stub of the Commons identity bridge.
5
5
  *
6
- * On Apple platforms the cross-app identity share is handled directly by
7
- * `@oxy.so/core`'s `KeyManager` via the Keychain Access Group
8
- * (`group.so.oxy.shared`) — there is no ContentProvider equivalent to wrap. So
9
- * every function here resolves to `nil` / no-op, which makes the JS
10
- * `loadSharedIdentityBridge()` seam a pass-through on iOS: `KeyManager`'s iOS
11
- * branches keep using `expo-secure-store` with the keychain group untouched.
6
+ * On Apple platforms the Oxy identity is shared through the Keychain Access
7
+ * Group `group.so.oxy.shared`, which `@oxy.so/core`'s `KeyManager` reads
8
+ * directly; there is no Commons provider to call. Every function resolves `nil`,
9
+ * so `loadCommonsIdentityBridge()` answers "Commons could not help" and
10
+ * `KeyManager`'s iOS branches keep using the keychain group.
12
11
  */
13
12
  public class OxyIdentityModule: Module {
14
13
  public func definition() -> ModuleDefinition {
15
14
  Name("OxyIdentity")
16
15
 
17
- AsyncFunction("getShared") { () -> [String: String]? in
16
+ AsyncFunction("describe") { () -> [String: String]? in
18
17
  return nil
19
18
  }
20
19
 
21
- AsyncFunction("putShared") { (_ privateKey: String, _ publicKey: String) in
22
- // No-op on iOS: the keychain-access-group path in KeyManager owns writes.
20
+ AsyncFunction("proveIdentity") { (_ challenge: String) -> [String: String]? in
21
+ return nil
23
22
  }
24
23
 
25
- AsyncFunction("hasShared") { () -> Bool in
26
- return false
24
+ AsyncFunction("deriveScopedSeed") { (_ info: String) -> String? in
25
+ return nil
27
26
  }
28
27
 
29
- AsyncFunction("clearShared") { () in
30
- // No-op on iOS.
28
+ AsyncFunction("signSocialReceive") { (_ index: Int, _ digest: String) -> [String: String]? in
29
+ return nil
31
30
  }
32
31
  }
33
32
  }
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SESSION_HANDOFF_DEADLINE_MS = exports.COLD_BOOT_OVERALL_DEADLINE_MS = void 0;
7
7
  exports.runProviderColdBoot = runProviderColdBoot;
8
+ var _applicationSessionLane = require("../oauth/applicationSessionLane.js");
8
9
  var _core = require("@oxy.so/core");
9
10
  var _session = require("@oxy.so/core/session");
10
11
  var _deviceCredential = require("../utils/deviceCredential.js");
@@ -70,8 +71,8 @@ async function detectOfflineHint() {
70
71
  *
71
72
  * Ordered pipeline:
72
73
  * 1. Complete an OAuth authorization-code return already on the URL (web)
73
- * 2. `runSessionColdBoot` — device-secret mint (+ native shared-key, or the
74
- * primary-identity-key lane in `sessionMode: 'identity'`)
74
+ * 2. `runSessionColdBoot` — device-secret mint (+ the native Commons-proof lane,
75
+ * or the primary-identity-key lane in `sessionMode: 'identity'`)
75
76
  *
76
77
  * Step 1 is ACCOUNT-MODE ONLY: it commits whichever account the IdP resolves,
77
78
  * which for an identity-bound client is somebody else's account by construction.
@@ -100,6 +101,11 @@ async function runProviderColdBoot(opts) {
100
101
  const identityBound = sessionMode === 'identity';
101
102
  setTokenReady(false);
102
103
  try {
104
+ // Classification precedes every local-secret, shared-credential and identity
105
+ // probe. Unavailable registry metadata fails closed, including offline boot.
106
+ const lane = await (opts.resolveSessionLane?.() ?? (0, _applicationSessionLane.resolveApplicationSessionLane)(oxyServices, clientId));
107
+ await opts.onClassified?.(lane);
108
+ if (identityBound && lane !== 'device') return;
103
109
  // The redirect transport's RETURN leg. An app reaches it whenever the browser
104
110
  // BLOCKED the sign-in popup and `startWebOAuthSignIn` fell back to a
105
111
  // full-page redirect (`popup-blocked` / `popup-navigation-failed`), so it is
@@ -111,7 +117,8 @@ async function runProviderColdBoot(opts) {
111
117
  clientId,
112
118
  authRedirectUri,
113
119
  commitSession: input => commitSession(input, {
114
- activate: true
120
+ activate: true,
121
+ oauth: true
115
122
  })
116
123
  });
117
124
  if (oauthCompleted) {
@@ -119,6 +126,11 @@ async function runProviderColdBoot(opts) {
119
126
  markAuthResolved();
120
127
  return;
121
128
  }
129
+ if (lane === 'oauth') {
130
+ setTokenReady(true);
131
+ return;
132
+ }
133
+ await opts.beforeDeviceBoot?.();
122
134
 
123
135
  // Best-effort connectivity probe up front: an EXPLICIT offline verdict skips
124
136
  // the two doomed network steps so routing settles immediately instead of
@@ -194,6 +206,7 @@ async function runProviderColdBoot(opts) {
194
206
  }
195
207
  }
196
208
  });
209
+ await opts.afterDeviceBoot?.();
197
210
  } catch (error) {
198
211
  if (__DEV__) {
199
212
  _core.logger.error('Cold boot error', error instanceof Error ? error : new Error(String(error)), {
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_session","_deviceCredential","_sharedDeviceCredentialStore","_oauthReturn","_isWebBrowser","_netConnectivity","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SESSION_HANDOFF_DEADLINE_MS","exports","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","isWebBrowser","online","globalThis","navigator","onLine","NetInfo","Promise","resolve","then","state","race","fetch","setTimeout","isNetConnectivityExplicitlyOffline","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","oauthCompleted","tryCompleteOAuthReturn","input","activate","offline","runSessionColdBoot","oxy","store","platform","isWeb","isNative","sharedDeviceCredential","createPlatformSharedDeviceCredentialStore","undefined","overallDeadlineMs","isOffline","onStepDeadline","stepId","loggerUtil","warn","component","method","onSession","session","handoff","sessionId","accessToken","userId","deviceState","handoffDeadlineId","finally","clearTimeout","onSignedOut","cred","loadPersistedDeviceCredential","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":["_applicationSessionLane","require","_core","_session","_deviceCredential","_sharedDeviceCredentialStore","_oauthReturn","_isWebBrowser","_netConnectivity","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SESSION_HANDOFF_DEADLINE_MS","exports","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","isWebBrowser","online","globalThis","navigator","onLine","NetInfo","Promise","resolve","then","state","race","fetch","setTimeout","isNetConnectivityExplicitlyOffline","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","lane","resolveSessionLane","resolveApplicationSessionLane","onClassified","oauthCompleted","tryCompleteOAuthReturn","input","activate","oauth","beforeDeviceBoot","offline","runSessionColdBoot","oxy","store","platform","isWeb","isNative","sharedDeviceCredential","createPlatformSharedDeviceCredentialStore","undefined","overallDeadlineMs","isOffline","onStepDeadline","stepId","loggerUtil","warn","component","method","onSession","session","handoff","sessionId","accessToken","userId","deviceState","handoffDeadlineId","finally","clearTimeout","onSignedOut","cred","loadPersistedDeviceCredential","start","socketError","__DEV__","debug","onStepError","id","error","afterDeviceBoot","Error","String"],"sourceRoot":"../../../../src","sources":["ui/boot/runProviderColdBoot.ts"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.OxySignInButton = void 0;
7
+ var _applicationSessionLane = require("../oauth/applicationSessionLane.js");
7
8
  var _react = require("react");
8
9
  var _reactNative = require("react-native");
9
10
  var _core = require("@oxy.so/core");
@@ -69,7 +70,8 @@ const OxySignInButton = ({
69
70
  disabled = false,
70
71
  showWhenAuthenticated = false,
71
72
  oauthRedirectUri,
72
- onOAuthResult
73
+ onOAuthResult,
74
+ nativeOAuthCompletion
73
75
  }) => {
74
76
  const {
75
77
  t
@@ -79,7 +81,8 @@ const OxySignInButton = ({
79
81
  oxyServices,
80
82
  clientId,
81
83
  webAuthMode,
82
- startWebOAuthSignIn
84
+ startWebOAuthSignIn,
85
+ startNativeOAuthSignIn
83
86
  } = (0, _OxyContext.useOxy)();
84
87
  const {
85
88
  isAuthenticated,
@@ -115,7 +118,9 @@ const OxySignInButton = ({
115
118
  if (cached && cached.clientId === clientId && cached.oxyServices === oxyServices) {
116
119
  return cached.promise;
117
120
  }
118
- const promise = oxyServices.apps.getPublic(clientId).catch(error => {
121
+ const promise = oxyServices.apps.getPublic(clientId, {
122
+ cache: false
123
+ }).catch(error => {
119
124
  // Only clear if this is still the live entry (a later resolve may have
120
125
  // replaced it after a clientId/oxyServices change).
121
126
  if (appResolutionRef.current?.promise === promise) {
@@ -196,6 +201,18 @@ const OxySignInButton = ({
196
201
  }
197
202
  return;
198
203
  }
204
+ if (nativeOAuthCompletion === 'sdk') {
205
+ if (onOAuthResult) {
206
+ notifyNotConfigured(app.name);
207
+ return;
208
+ }
209
+ const result = await startNativeOAuthSignIn({
210
+ redirectUri: oauthRedirectUri
211
+ });
212
+ if (result.status === 'failed') notifyFailed();
213
+ if (result.status === 'unsupported') notifyNotConfigured(app.name);
214
+ return;
215
+ }
199
216
 
200
217
  // Native: open the in-app auth session, then hand the handshake to the
201
218
  // RP so it can complete the token exchange from its deep-link callback.
@@ -222,7 +239,7 @@ const OxySignInButton = ({
222
239
  application: app.name
223
240
  });
224
241
  notifyNotConfigured(app.name);
225
- }, [clientId, oauthRedirectUri, onOAuthResult, startOfficialSignIn, startWebOAuthSignIn, shouldPreOpenPopup, notifyNotConfigured, notifyFailed]);
242
+ }, [clientId, oauthRedirectUri, onOAuthResult, nativeOAuthCompletion, startNativeOAuthSignIn, startOfficialSignIn, startWebOAuthSignIn, shouldPreOpenPopup, notifyNotConfigured, notifyFailed]);
226
243
 
227
244
  // Resolve the Application once, then route: third-party → OAuth; first-party
228
245
  // / official → the in-app dialog. An unresolved client must fail closed:
@@ -240,7 +257,7 @@ const OxySignInButton = ({
240
257
  const resolving = resolvePublicApplication();
241
258
  if (!resolving) {
242
259
  (0, _oauthPopup.closeOAuthPopup)(popup);
243
- startOfficialSignIn();
260
+ notifyNotConfigured('this app');
244
261
  return;
245
262
  }
246
263
  let app;
@@ -255,7 +272,7 @@ const OxySignInButton = ({
255
272
  notifyFailed();
256
273
  return;
257
274
  }
258
- if (app.type === 'third_party' && !app.isOfficial) {
275
+ if ((0, _applicationSessionLane.classifyApplicationSessionLane)(app) === 'oauth') {
259
276
  await startThirdPartyOAuth(app, popup);
260
277
  return;
261
278
  }
@@ -273,9 +290,10 @@ const OxySignInButton = ({
273
290
  });
274
291
  notifyFailed();
275
292
  } finally {
293
+ appResolutionRef.current = null;
276
294
  routingRef.current = false;
277
295
  }
278
- }, [resolvePublicApplication, startOfficialSignIn, startThirdPartyOAuth, clientId, notifyFailed]);
296
+ }, [resolvePublicApplication, startOfficialSignIn, startThirdPartyOAuth, clientId, notifyNotConfigured, notifyFailed]);
279
297
 
280
298
  // Defer to a caller-supplied handler, otherwise route by application type.
281
299
  //
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_core","_authStore","_shallow","_socialButton","_toast","_OxyContext","_useI18n","_accountDialogManager","_oauthNavigation","_oauthPopup","_jsxRuntime","ACTION_KEYS","signIn","continue","signUp","OxySignInButton","variant","appearance","action","size","fullWidth","iconOnly","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","t","useI18n","openAccountDialog","oxyServices","clientId","webAuthMode","startWebOAuthSignIn","useOxy","isAuthenticated","isLoading","useAuthStore","useShallow","state","isModalOpen","setIsModalOpen","useState","useEffect","subscribeToAccountDialog","appResolutionRef","useRef","routingRef","shouldPreOpenPopup","Platform","OS","Boolean","resolvePublicApplication","useCallback","cached","current","promise","apps","getPublic","catch","error","notifyNotConfigured","appName","toast","description","app","notifyFailed","startOfficialSignIn","startThirdPartyOAuth","popup","closeOAuthPopup","logger","undefined","component","application","name","result","redirectUri","status","warn","reason","pkce","Promise","all","generatePkcePair","generateOAuthState","authorizeUrl","buildOAuthAuthorizeUrl","codeChallenge","redirectUrl","openAuthorizeUrlNative","codeVerifier","routeSignIn","resolving","type","isOfficial","Error","String","handlePress","openOAuthPopup","isButtonDisabled","resolvedAppearance","actionKey","translated","label","socialButtonLabel","jsx","SocialButton","brand","accessibilityLabel","children","exports","_default","default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_applicationSessionLane","require","_react","_reactNative","_core","_authStore","_shallow","_socialButton","_toast","_OxyContext","_useI18n","_accountDialogManager","_oauthNavigation","_oauthPopup","_jsxRuntime","ACTION_KEYS","signIn","continue","signUp","OxySignInButton","variant","appearance","action","size","fullWidth","iconOnly","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","nativeOAuthCompletion","t","useI18n","openAccountDialog","oxyServices","clientId","webAuthMode","startWebOAuthSignIn","startNativeOAuthSignIn","useOxy","isAuthenticated","isLoading","useAuthStore","useShallow","state","isModalOpen","setIsModalOpen","useState","useEffect","subscribeToAccountDialog","appResolutionRef","useRef","routingRef","shouldPreOpenPopup","Platform","OS","Boolean","resolvePublicApplication","useCallback","cached","current","promise","apps","getPublic","cache","catch","error","notifyNotConfigured","appName","toast","description","app","notifyFailed","startOfficialSignIn","startThirdPartyOAuth","popup","closeOAuthPopup","logger","undefined","component","application","name","result","redirectUri","status","warn","reason","pkce","Promise","all","generatePkcePair","generateOAuthState","authorizeUrl","buildOAuthAuthorizeUrl","codeChallenge","redirectUrl","openAuthorizeUrlNative","codeVerifier","routeSignIn","resolving","classifyApplicationSessionLane","Error","String","handlePress","openOAuthPopup","isButtonDisabled","resolvedAppearance","actionKey","translated","label","socialButtonLabel","jsx","SocialButton","brand","accessibilityLabel","children","exports","_default","default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}