@oxy.so/services 13.6.0 → 13.8.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/android/build.gradle +1 -0
- package/android/src/main/java/so/oxy/assets/OxyAssetFilesModule.kt +49 -0
- package/android/src/main/java/so/oxy/assets/StreamSha256.kt +23 -0
- package/android/src/test/java/so/oxy/assets/StreamSha256Test.kt +45 -0
- package/expo-module.config.json +3 -2
- package/ios/OxyAssetFilesModule.swift +72 -0
- package/lib/commonjs/ui/components/AccountLanguageBoundary.js +35 -0
- package/lib/commonjs/ui/components/AccountLanguageBoundary.js.map +1 -0
- package/lib/commonjs/ui/components/LanguageBridge.js +37 -34
- package/lib/commonjs/ui/components/LanguageBridge.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +19 -26
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +8 -2
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +23 -2
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/useEntryLink.js +97 -0
- package/lib/commonjs/ui/hooks/useEntryLink.js.map +1 -0
- package/lib/commonjs/ui/hooks/useLanguageManagement.js +45 -14
- package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/commonjs/ui/utils/entryLink.js +54 -0
- package/lib/commonjs/ui/utils/entryLink.js.map +1 -0
- package/lib/commonjs/ui/utils/nativeAssetFiles.js +11 -0
- package/lib/commonjs/ui/utils/nativeAssetFiles.js.map +1 -0
- package/lib/commonjs/ui/utils/nativeAssetFiles.macos.js +11 -0
- package/lib/commonjs/ui/utils/nativeAssetFiles.macos.js.map +1 -0
- package/lib/commonjs/ui/utils/nativeAssetFiles.native.js +202 -0
- package/lib/commonjs/ui/utils/nativeAssetFiles.native.js.map +1 -0
- package/lib/module/ui/components/AccountLanguageBoundary.js +32 -0
- package/lib/module/ui/components/AccountLanguageBoundary.js.map +1 -0
- package/lib/module/ui/components/LanguageBridge.js +38 -35
- package/lib/module/ui/components/LanguageBridge.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +18 -27
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/signIn/OxySignUpPanel.js +8 -2
- package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +24 -3
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/useEntryLink.js +94 -0
- package/lib/module/ui/hooks/useEntryLink.js.map +1 -0
- package/lib/module/ui/hooks/useLanguageManagement.js +45 -14
- package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/module/ui/utils/entryLink.js +49 -0
- package/lib/module/ui/utils/entryLink.js.map +1 -0
- package/lib/module/ui/utils/nativeAssetFiles.js +7 -0
- package/lib/module/ui/utils/nativeAssetFiles.js.map +1 -0
- package/lib/module/ui/utils/nativeAssetFiles.macos.js +7 -0
- package/lib/module/ui/utils/nativeAssetFiles.macos.js.map +1 -0
- package/lib/module/ui/utils/nativeAssetFiles.native.js +197 -0
- package/lib/module/ui/utils/nativeAssetFiles.native.js.map +1 -0
- package/lib/typescript/commonjs/ui/components/AccountLanguageBoundary.d.ts +8 -0
- package/lib/typescript/commonjs/ui/components/AccountLanguageBoundary.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/LanguageBridge.d.ts +7 -17
- package/lib/typescript/commonjs/ui/components/LanguageBridge.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +5 -0
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useEntryLink.d.ts +15 -0
- package/lib/typescript/commonjs/ui/hooks/useEntryLink.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useLanguageManagement.d.ts +5 -1
- package/lib/typescript/commonjs/ui/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +4 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/entryLink.d.ts +8 -0
- package/lib/typescript/commonjs/ui/utils/entryLink.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/nativeAssetFiles.d.ts +4 -0
- package/lib/typescript/commonjs/ui/utils/nativeAssetFiles.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/nativeAssetFiles.macos.d.ts +4 -0
- package/lib/typescript/commonjs/ui/utils/nativeAssetFiles.macos.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/nativeAssetFiles.native.d.ts +4 -0
- package/lib/typescript/commonjs/ui/utils/nativeAssetFiles.native.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/AccountLanguageBoundary.d.ts +8 -0
- package/lib/typescript/module/ui/components/AccountLanguageBoundary.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/LanguageBridge.d.ts +7 -17
- package/lib/typescript/module/ui/components/LanguageBridge.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +5 -0
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useEntryLink.d.ts +15 -0
- package/lib/typescript/module/ui/hooks/useEntryLink.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts +5 -1
- package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +4 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/entryLink.d.ts +8 -0
- package/lib/typescript/module/ui/utils/entryLink.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/nativeAssetFiles.d.ts +4 -0
- package/lib/typescript/module/ui/utils/nativeAssetFiles.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/nativeAssetFiles.macos.d.ts +4 -0
- package/lib/typescript/module/ui/utils/nativeAssetFiles.macos.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/nativeAssetFiles.native.d.ts +4 -0
- package/lib/typescript/module/ui/utils/nativeAssetFiles.native.d.ts.map +1 -0
- package/package.json +6 -5
- package/src/ui/components/AccountLanguageBoundary.tsx +35 -0
- package/src/ui/components/LanguageBridge.tsx +43 -39
- package/src/ui/components/OxyProvider.tsx +18 -24
- package/src/ui/components/__tests__/AccountLanguageBoundary.test.tsx +87 -0
- package/src/ui/components/__tests__/LanguageBridge.test.tsx +80 -60
- package/src/ui/components/signIn/OxySignUpPanel.tsx +9 -1
- package/src/ui/context/OxyContext.tsx +34 -2
- package/src/ui/context/oxyContextTypes.ts +5 -0
- package/src/ui/hooks/useEntryLink.ts +103 -0
- package/src/ui/hooks/useLanguageManagement.ts +53 -18
- package/src/ui/types/navigation.ts +4 -0
- package/src/ui/utils/__tests__/entryLink.test.ts +30 -0
- package/src/ui/utils/__tests__/nativeAssetFiles.test.ts +270 -0
- package/src/ui/utils/entryLink.ts +61 -0
- package/src/ui/utils/nativeAssetFiles.macos.ts +6 -0
- package/src/ui/utils/nativeAssetFiles.native.ts +212 -0
- package/src/ui/utils/nativeAssetFiles.ts +6 -0
package/android/build.gradle
CHANGED
|
@@ -15,6 +15,7 @@ android {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
dependencies {
|
|
18
|
+
testImplementation "junit:junit:4.13.2"
|
|
18
19
|
// Hardware-backed EncryptedSharedPreferences (MasterKey AES256_GCM) for the
|
|
19
20
|
// device-session and background-session credentials.
|
|
20
21
|
implementation "androidx.security:security-crypto:1.1.0-alpha06"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
package so.oxy.assets
|
|
2
|
+
|
|
3
|
+
import android.net.Uri
|
|
4
|
+
import android.os.SystemClock
|
|
5
|
+
import expo.modules.kotlin.exception.Exceptions
|
|
6
|
+
import expo.modules.kotlin.modules.Module
|
|
7
|
+
import expo.modules.kotlin.modules.ModuleDefinition
|
|
8
|
+
import java.util.concurrent.ConcurrentHashMap
|
|
9
|
+
import java.util.concurrent.atomic.AtomicBoolean
|
|
10
|
+
|
|
11
|
+
class OxyAssetFilesModule : Module() {
|
|
12
|
+
private val jobs = ConcurrentHashMap<String, AtomicBoolean>()
|
|
13
|
+
|
|
14
|
+
override fun definition() = ModuleDefinition {
|
|
15
|
+
Name("OxyAssetFiles")
|
|
16
|
+
Events("hashProgress")
|
|
17
|
+
// Register synchronously so cancellation cannot race an enqueued worker.
|
|
18
|
+
Function("createHash") { id: String ->
|
|
19
|
+
check(jobs.putIfAbsent(id, AtomicBoolean(false)) == null) { "Duplicate hash operation" }
|
|
20
|
+
}
|
|
21
|
+
Function("cancelHash") { id: String -> jobs[id]?.set(true) }
|
|
22
|
+
AsyncFunction("hashAsync") { id: String, uriString: String, expectedSize: Double ->
|
|
23
|
+
val cancelled = jobs[id] ?: error("Unknown hash operation")
|
|
24
|
+
try {
|
|
25
|
+
val uri = Uri.parse(uriString)
|
|
26
|
+
require(uri.scheme == "file" || uri.scheme == "content") { "Expected a local file" }
|
|
27
|
+
val context = appContext.reactContext ?: throw Exceptions.ReactContextLost()
|
|
28
|
+
var lastProgress = 0L
|
|
29
|
+
val result = context.contentResolver.openInputStream(uri)?.use { input ->
|
|
30
|
+
streamSha256(input, { cancelled.get() }) { loaded ->
|
|
31
|
+
val now = SystemClock.elapsedRealtime()
|
|
32
|
+
if (now - lastProgress >= 100 || loaded.toDouble() == expectedSize) {
|
|
33
|
+
lastProgress = now
|
|
34
|
+
sendEvent("hashProgress", mapOf("id" to id, "loaded" to loaded.toDouble()))
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
} ?: error("Cannot open upload file")
|
|
38
|
+
check(result.second.toDouble() == expectedSize) { "File changed while hashing" }
|
|
39
|
+
result.first
|
|
40
|
+
} finally {
|
|
41
|
+
jobs.remove(id)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
OnDestroy {
|
|
45
|
+
jobs.values.forEach { it.set(true) }
|
|
46
|
+
jobs.clear()
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
package so.oxy.assets
|
|
2
|
+
|
|
3
|
+
import java.io.InputStream
|
|
4
|
+
import java.io.InterruptedIOException
|
|
5
|
+
import java.security.MessageDigest
|
|
6
|
+
|
|
7
|
+
/** Reads on the native worker, without crossing the JS bridge or buffering the file. */
|
|
8
|
+
internal fun streamSha256(input: InputStream, cancelled: () -> Boolean, progress: (Long) -> Unit): Pair<String, Long> {
|
|
9
|
+
val digest = MessageDigest.getInstance("SHA-256")
|
|
10
|
+
val buffer = ByteArray(1024 * 1024)
|
|
11
|
+
var loaded = 0L
|
|
12
|
+
while (true) {
|
|
13
|
+
if (cancelled()) throw InterruptedIOException("Upload hash cancelled")
|
|
14
|
+
val count = input.read(buffer)
|
|
15
|
+
if (count < 0) break
|
|
16
|
+
if (count == 0) continue
|
|
17
|
+
digest.update(buffer, 0, count)
|
|
18
|
+
loaded += count
|
|
19
|
+
progress(loaded)
|
|
20
|
+
}
|
|
21
|
+
if (cancelled()) throw InterruptedIOException("Upload hash cancelled")
|
|
22
|
+
return digest.digest().joinToString("") { "%02x".format(it) } to loaded
|
|
23
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
package so.oxy.assets
|
|
2
|
+
|
|
3
|
+
import java.io.ByteArrayInputStream
|
|
4
|
+
import java.io.InputStream
|
|
5
|
+
import java.io.InterruptedIOException
|
|
6
|
+
import java.security.MessageDigest
|
|
7
|
+
import org.junit.Assert.*
|
|
8
|
+
import org.junit.Test
|
|
9
|
+
|
|
10
|
+
class StreamSha256Test {
|
|
11
|
+
@Test fun knownDigestAndProgress() {
|
|
12
|
+
val progress = mutableListOf<Long>()
|
|
13
|
+
val (digest, size) = streamSha256(ByteArrayInputStream("abc".toByteArray()), { false }, { progress.add(it) })
|
|
14
|
+
assertEquals("ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", digest)
|
|
15
|
+
assertEquals(3L, size)
|
|
16
|
+
assertEquals(listOf(3L), progress)
|
|
17
|
+
}
|
|
18
|
+
@Test fun largerThanHeapStreamUsesBoundedReads() {
|
|
19
|
+
val size = 370L * 1024 * 1024
|
|
20
|
+
var remaining = size
|
|
21
|
+
val expected = MessageDigest.getInstance("SHA-256")
|
|
22
|
+
val input = object : InputStream() {
|
|
23
|
+
override fun read(): Int = error("Must use bounded blocks")
|
|
24
|
+
override fun read(bytes: ByteArray, offset: Int, count: Int): Int {
|
|
25
|
+
assertTrue(count <= 1024 * 1024)
|
|
26
|
+
if (remaining == 0L) return -1
|
|
27
|
+
val length = minOf(count.toLong(), remaining).toInt()
|
|
28
|
+
bytes.fill(7, offset, offset + length)
|
|
29
|
+
expected.update(bytes, offset, length)
|
|
30
|
+
remaining -= length
|
|
31
|
+
return length
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
val result = streamSha256(input, { false }, {})
|
|
35
|
+
assertEquals(size, result.second)
|
|
36
|
+
assertEquals(expected.digest().joinToString("") { "%02x".format(it) }, result.first)
|
|
37
|
+
}
|
|
38
|
+
@Test fun cancellationStopsBeforeReadingAnotherBlock() {
|
|
39
|
+
var cancelled = false
|
|
40
|
+
try {
|
|
41
|
+
streamSha256(ByteArrayInputStream(ByteArray(2 * 1024 * 1024)), { cancelled }, { cancelled = true })
|
|
42
|
+
fail("Expected cancellation")
|
|
43
|
+
} catch (_: InterruptedIOException) { }
|
|
44
|
+
}
|
|
45
|
+
}
|
package/expo-module.config.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"platforms": ["apple", "android"],
|
|
3
3
|
"apple": {
|
|
4
|
-
"modules": ["OxyIdentityModule"]
|
|
4
|
+
"modules": ["OxyIdentityModule", "OxyAssetFilesModule"]
|
|
5
5
|
},
|
|
6
6
|
"android": {
|
|
7
7
|
"modules": [
|
|
8
8
|
"so.oxy.identity.OxyIdentityModule",
|
|
9
9
|
"so.oxy.devicesession.OxyDeviceSessionModule",
|
|
10
|
-
"so.oxy.session.OxyBackgroundSessionModule"
|
|
10
|
+
"so.oxy.session.OxyBackgroundSessionModule",
|
|
11
|
+
"so.oxy.assets.OxyAssetFilesModule"
|
|
11
12
|
]
|
|
12
13
|
}
|
|
13
14
|
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import CryptoKit
|
|
2
|
+
import ExpoModulesCore
|
|
3
|
+
import Foundation
|
|
4
|
+
|
|
5
|
+
public class OxyAssetFilesModule: Module {
|
|
6
|
+
private let lock = NSLock()
|
|
7
|
+
private var jobs: [String: Bool] = [:]
|
|
8
|
+
|
|
9
|
+
private func cancelled(_ id: String) -> Bool {
|
|
10
|
+
lock.lock()
|
|
11
|
+
defer { lock.unlock() }
|
|
12
|
+
return jobs[id] != false
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public func definition() -> ModuleDefinition {
|
|
16
|
+
Name("OxyAssetFiles")
|
|
17
|
+
Events("hashProgress")
|
|
18
|
+
Function("createHash") { (id: String) in
|
|
19
|
+
self.lock.lock()
|
|
20
|
+
defer { self.lock.unlock() }
|
|
21
|
+
self.jobs[id] = false
|
|
22
|
+
}
|
|
23
|
+
Function("cancelHash") { (id: String) in
|
|
24
|
+
self.lock.lock()
|
|
25
|
+
defer { self.lock.unlock() }
|
|
26
|
+
if self.jobs[id] != nil { self.jobs[id] = true }
|
|
27
|
+
}
|
|
28
|
+
AsyncFunction("hashAsync") { (id: String, uri: String, expectedSize: Double) -> String in
|
|
29
|
+
defer {
|
|
30
|
+
self.lock.lock()
|
|
31
|
+
self.jobs.removeValue(forKey: id)
|
|
32
|
+
self.lock.unlock()
|
|
33
|
+
}
|
|
34
|
+
guard let url = URL(string: uri), url.isFileURL else {
|
|
35
|
+
throw NSError(domain: "OxyAssetFiles", code: 1, userInfo: [NSLocalizedDescriptionKey: "Expected a local file"])
|
|
36
|
+
}
|
|
37
|
+
let input = try FileHandle(forReadingFrom: url)
|
|
38
|
+
defer { try? input.close() }
|
|
39
|
+
var digest = SHA256()
|
|
40
|
+
var loaded = 0
|
|
41
|
+
var lastProgress = ProcessInfo.processInfo.systemUptime
|
|
42
|
+
while true {
|
|
43
|
+
if self.cancelled(id) {
|
|
44
|
+
throw NSError(domain: "OxyAssetFiles", code: 2, userInfo: [NSLocalizedDescriptionKey: "Upload hash cancelled"])
|
|
45
|
+
}
|
|
46
|
+
// Drain Foundation's temporary buffers on every iteration, not at the
|
|
47
|
+
// end of a multi-gigabyte worker invocation.
|
|
48
|
+
let count = try autoreleasepool { () throws -> Int in
|
|
49
|
+
let data = try input.read(upToCount: 1024 * 1024) ?? Data()
|
|
50
|
+
digest.update(data: data)
|
|
51
|
+
return data.count
|
|
52
|
+
}
|
|
53
|
+
if count == 0 { break }
|
|
54
|
+
loaded += count
|
|
55
|
+
let now = ProcessInfo.processInfo.systemUptime
|
|
56
|
+
if now - lastProgress >= 0.1 || Double(loaded) == expectedSize {
|
|
57
|
+
lastProgress = now
|
|
58
|
+
self.sendEvent("hashProgress", ["id": id, "loaded": loaded])
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
guard !self.cancelled(id), Double(loaded) == expectedSize else {
|
|
62
|
+
throw NSError(domain: "OxyAssetFiles", code: 3, userInfo: [NSLocalizedDescriptionKey: "Upload cancelled or file changed"])
|
|
63
|
+
}
|
|
64
|
+
return digest.finalize().map { String(format: "%02x", $0) }.joined()
|
|
65
|
+
}.runOnQueue(DispatchQueue.global(qos: .userInitiated))
|
|
66
|
+
OnDestroy {
|
|
67
|
+
self.lock.lock()
|
|
68
|
+
self.jobs.removeAll()
|
|
69
|
+
self.lock.unlock()
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AccountLanguageBoundary = AccountLanguageBoundary;
|
|
7
|
+
var _core = require("@oxy.so/core");
|
|
8
|
+
var _oxyRuntimeContext = require("../context/oxyRuntimeContext.js");
|
|
9
|
+
var _useAccountQueries = require("../hooks/queries/useAccountQueries.js");
|
|
10
|
+
var _LanguageBridge = require("./LanguageBridge.js");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
/** Owner preferences are not part of the public device/account summary. */
|
|
13
|
+
function AccountLanguageBoundary({
|
|
14
|
+
language,
|
|
15
|
+
children
|
|
16
|
+
}) {
|
|
17
|
+
const {
|
|
18
|
+
canUsePrivateApi,
|
|
19
|
+
user,
|
|
20
|
+
currentLanguage
|
|
21
|
+
} = (0, _oxyRuntimeContext.useOxy)();
|
|
22
|
+
const profile = (0, _useAccountQueries.useCurrentUser)({
|
|
23
|
+
enabled: canUsePrivateApi
|
|
24
|
+
});
|
|
25
|
+
// The query mirrors its result into the account runtime in an effect. Wait for
|
|
26
|
+
// that projection as well as the request, so the bridge never publishes the
|
|
27
|
+
// compact session's fallback locale in the frame before its real preference.
|
|
28
|
+
const accountReady = !user || !canUsePrivateApi || profile.fetchStatus === 'paused' || user.languages !== undefined || profile.isError || profile.dataUpdatedAt > 0 && profile.data?.id === user.id && currentLanguage === ((0, _core.getPrimaryLanguage)(profile.data) ?? _core.FALLBACK_LOCALE);
|
|
29
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LanguageBridge.LanguageBridge, {
|
|
30
|
+
config: language,
|
|
31
|
+
accountReady: accountReady,
|
|
32
|
+
children: children
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=AccountLanguageBoundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_oxyRuntimeContext","_useAccountQueries","_LanguageBridge","_jsxRuntime","AccountLanguageBoundary","language","children","canUsePrivateApi","user","currentLanguage","useOxy","profile","useCurrentUser","enabled","accountReady","fetchStatus","languages","undefined","isError","dataUpdatedAt","data","id","getPrimaryLanguage","FALLBACK_LOCALE","jsx","LanguageBridge","config"],"sourceRoot":"../../../../src","sources":["ui/components/AccountLanguageBoundary.tsx"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAAkD,IAAAI,WAAA,GAAAJ,OAAA;AAElD;AACO,SAASK,uBAAuBA,CAAC;EACtCC,QAAQ;EACRC;AAIF,CAAC,EAAE;EACD,MAAM;IAAEC,gBAAgB;IAAEC,IAAI;IAAEC;EAAgB,CAAC,GAAG,IAAAC,yBAAM,EAAC,CAAC;EAC5D,MAAMC,OAAO,GAAG,IAAAC,iCAAc,EAAC;IAAEC,OAAO,EAAEN;EAAiB,CAAC,CAAC;EAC7D;EACA;EACA;EACA,MAAMO,YAAY,GAChB,CAACN,IAAI,IACL,CAACD,gBAAgB,IACjBI,OAAO,CAACI,WAAW,KAAK,QAAQ,IAChCP,IAAI,CAACQ,SAAS,KAAKC,SAAS,IAC5BN,OAAO,CAACO,OAAO,IACdP,OAAO,CAACQ,aAAa,GAAG,CAAC,IACxBR,OAAO,CAACS,IAAI,EAAEC,EAAE,KAAKb,IAAI,CAACa,EAAE,IAC5BZ,eAAe,MAAM,IAAAa,wBAAkB,EAACX,OAAO,CAACS,IAAI,CAAC,IAAIG,qBAAe,CAAE;EAC9E,oBACE,IAAApB,WAAA,CAAAqB,GAAA,EAACtB,eAAA,CAAAuB,cAAc;IAACC,MAAM,EAAErB,QAAS;IAACS,YAAY,EAAEA,YAAa;IAAAR,QAAA,EAC1DA;EAAQ,CACK,CAAC;AAErB","ignoreList":[]}
|
|
@@ -7,45 +7,48 @@ exports.LanguageBridge = LanguageBridge;
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _core = require("@oxy.so/core");
|
|
9
9
|
var _oxyRuntimeContext = require("../context/oxyRuntimeContext.js");
|
|
10
|
-
/**
|
|
11
|
-
* `OxyProvider`'s language config prop, realized. Oxy decides which
|
|
12
|
-
* language an account (or, signed out, the device/guest locale) should see;
|
|
13
|
-
* this is the ONE place that decision reaches the host app's own i18n library
|
|
14
|
-
* — so an app never re-derives or imperatively tracks a language of its own,
|
|
15
|
-
* and never mounts anything extra to get it. It owns only its translation
|
|
16
|
-
* catalogs.
|
|
17
|
-
*
|
|
18
|
-
* `currentLanguage` may name a locale the host app never shipped a catalog
|
|
19
|
-
* for — {@link coerceToSupportedLocale} narrows it to the closest one the app
|
|
20
|
-
* actually has (exact match, then same base language, then `fallbackLocale`).
|
|
21
|
-
*
|
|
22
|
-
* Renders nothing. Mounted by `OxyProvider` INSIDE `OxyRuntimeProvider` only
|
|
23
|
-
* when this config is supplied, so an app with no i18n of its own pays
|
|
24
|
-
* nothing.
|
|
25
|
-
*/
|
|
10
|
+
/** The SDK resolves the entry/account locale before exposing translated app content. */
|
|
26
11
|
function LanguageBridge({
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
onError
|
|
12
|
+
config,
|
|
13
|
+
accountReady = true,
|
|
14
|
+
children
|
|
31
15
|
}) {
|
|
32
16
|
const {
|
|
33
|
-
currentLanguage
|
|
17
|
+
currentLanguage,
|
|
18
|
+
isLanguageReady,
|
|
19
|
+
isAuthResolved
|
|
34
20
|
} = (0, _oxyRuntimeContext.useOxy)();
|
|
35
|
-
const resolvedLocale =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const onChangeRef = (0, _react.useRef)(onChange);
|
|
41
|
-
onChangeRef.current = onChange;
|
|
42
|
-
const onErrorRef = (0, _react.useRef)(onError);
|
|
43
|
-
onErrorRef.current = onError;
|
|
21
|
+
const resolvedLocale = config ? (0, _core.coerceToSupportedLocale)(currentLanguage, config.supportedLocales, config.fallbackLocale) : currentLanguage;
|
|
22
|
+
const configRef = (0, _react.useRef)(config);
|
|
23
|
+
configRef.current = config;
|
|
24
|
+
const pendingChange = (0, _react.useRef)(Promise.resolve());
|
|
25
|
+
const [prepared, setPrepared] = (0, _react.useState)(false);
|
|
44
26
|
(0, _react.useEffect)(() => {
|
|
45
|
-
|
|
46
|
-
|
|
27
|
+
if (!isLanguageReady || !isAuthResolved || !accountReady) return;
|
|
28
|
+
let active = true;
|
|
29
|
+
// A slow earlier catalog must finish before a later locale is committed.
|
|
30
|
+
// Children stay mounted after boot: changing language never destroys route state.
|
|
31
|
+
pendingChange.current = pendingChange.current.then(async () => {
|
|
32
|
+
if (!active) return;
|
|
33
|
+
const current = configRef.current;
|
|
34
|
+
try {
|
|
35
|
+
await current?.onChange(resolvedLocale);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
current?.onError?.(error, resolvedLocale);
|
|
38
|
+
if (current && resolvedLocale !== current.fallbackLocale) {
|
|
39
|
+
try {
|
|
40
|
+
await current.onChange(current.fallbackLocale);
|
|
41
|
+
} catch (fallbackError) {
|
|
42
|
+
current.onError?.(fallbackError, current.fallbackLocale);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (active) setPrepared(true);
|
|
47
47
|
});
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
return () => {
|
|
49
|
+
active = false;
|
|
50
|
+
};
|
|
51
|
+
}, [accountReady, isAuthResolved, isLanguageReady, resolvedLocale]);
|
|
52
|
+
return !config || prepared ? children : null;
|
|
50
53
|
}
|
|
51
54
|
//# sourceMappingURL=LanguageBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_oxyRuntimeContext","LanguageBridge","
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_oxyRuntimeContext","LanguageBridge","config","accountReady","children","currentLanguage","isLanguageReady","isAuthResolved","useOxy","resolvedLocale","coerceToSupportedLocale","supportedLocales","fallbackLocale","configRef","useRef","current","pendingChange","Promise","resolve","prepared","setPrepared","useState","useEffect","active","then","onChange","error","onError","fallbackError"],"sourceRoot":"../../../../src","sources":["ui/components/LanguageBridge.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAGA;AACO,SAASG,cAAcA,CAAC;EAC7BC,MAAM;EACNC,YAAY,GAAG,IAAI;EACnBC;AAKF,CAAC,EAAE;EACD,MAAM;IAAEC,eAAe;IAAEC,eAAe;IAAEC;EAAe,CAAC,GAAG,IAAAC,yBAAM,EAAC,CAAC;EACrE,MAAMC,cAAc,GAAGP,MAAM,GACzB,IAAAQ,6BAAuB,EAACL,eAAe,EAAEH,MAAM,CAACS,gBAAgB,EAAET,MAAM,CAACU,cAAc,CAAC,GACxFP,eAAe;EACnB,MAAMQ,SAAS,GAAG,IAAAC,aAAM,EAACZ,MAAM,CAAC;EAChCW,SAAS,CAACE,OAAO,GAAGb,MAAM;EAC1B,MAAMc,aAAa,GAAG,IAAAF,aAAM,EAACG,OAAO,CAACC,OAAO,CAAC,CAAC,CAAC;EAC/C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAE/C,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAAChB,eAAe,IAAI,CAACC,cAAc,IAAI,CAACJ,YAAY,EAAE;IAC1D,IAAIoB,MAAM,GAAG,IAAI;IACjB;IACA;IACAP,aAAa,CAACD,OAAO,GAAGC,aAAa,CAACD,OAAO,CAACS,IAAI,CAAC,YAAY;MAC7D,IAAI,CAACD,MAAM,EAAE;MACb,MAAMR,OAAO,GAAGF,SAAS,CAACE,OAAO;MACjC,IAAI;QACF,MAAMA,OAAO,EAAEU,QAAQ,CAAChB,cAAc,CAAC;MACzC,CAAC,CAAC,OAAOiB,KAAK,EAAE;QACdX,OAAO,EAAEY,OAAO,GAAGD,KAAK,EAAEjB,cAAc,CAAC;QACzC,IAAIM,OAAO,IAAIN,cAAc,KAAKM,OAAO,CAACH,cAAc,EAAE;UACxD,IAAI;YACF,MAAMG,OAAO,CAACU,QAAQ,CAACV,OAAO,CAACH,cAAc,CAAC;UAChD,CAAC,CAAC,OAAOgB,aAAa,EAAE;YACtBb,OAAO,CAACY,OAAO,GAAGC,aAAa,EAAEb,OAAO,CAACH,cAAc,CAAC;UAC1D;QACF;MACF;MACA,IAAIW,MAAM,EAAEH,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC,CAAC;IACF,OAAO,MAAM;MACXG,MAAM,GAAG,KAAK;IAChB,CAAC;EACH,CAAC,EAAE,CAACpB,YAAY,EAAEI,cAAc,EAAED,eAAe,EAAEG,cAAc,CAAC,CAAC;EAEnE,OAAO,CAACP,MAAM,IAAIiB,QAAQ,GAAGf,QAAQ,GAAG,IAAI;AAC9C","ignoreList":[]}
|
|
@@ -21,22 +21,11 @@ var _netConnectivity = require("../utils/netConnectivity.js");
|
|
|
21
21
|
var _KeyboardBoundary = require("./KeyboardBoundary");
|
|
22
22
|
var _SafeAreaRoot = require("./SafeAreaRoot.js");
|
|
23
23
|
var _productAnalytics = require("../analytics/productAnalytics.js");
|
|
24
|
-
var
|
|
24
|
+
var _AccountLanguageBoundary = require("./AccountLanguageBoundary.js");
|
|
25
25
|
var _BloomLocaleBridge = require("./BloomLocaleBridge.js");
|
|
26
|
-
var _oxyRuntimeContext = require("../context/oxyRuntimeContext.js");
|
|
27
|
-
var _useAccountQueries = require("../hooks/queries/useAccountQueries.js");
|
|
28
26
|
var _useSupervision = require("../hooks/queries/useSupervision.js");
|
|
29
27
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
30
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
31
|
-
function AccountProfileObserver() {
|
|
32
|
-
const {
|
|
33
|
-
canUsePrivateApi
|
|
34
|
-
} = (0, _oxyRuntimeContext.useOxy)();
|
|
35
|
-
(0, _useAccountQueries.useCurrentUser)({
|
|
36
|
-
enabled: canUsePrivateApi
|
|
37
|
-
});
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
28
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
40
29
|
const bootStyles = _reactNative.StyleSheet.create({
|
|
41
30
|
providerRoot: {
|
|
42
31
|
flex: 1
|
|
@@ -117,7 +106,8 @@ const OxyProvider = ({
|
|
|
117
106
|
accountQueries,
|
|
118
107
|
requireAuth = 'off',
|
|
119
108
|
backgroundSession = false,
|
|
120
|
-
language
|
|
109
|
+
language,
|
|
110
|
+
campaignAttribution = false
|
|
121
111
|
}) => {
|
|
122
112
|
const support = (0, _react.useMemo)(() => ({
|
|
123
113
|
onAskAlia,
|
|
@@ -268,23 +258,26 @@ const OxyProvider = ({
|
|
|
268
258
|
sessionMode: sessionMode,
|
|
269
259
|
webAuthMode: webAuthMode,
|
|
270
260
|
backgroundSession: backgroundSession,
|
|
261
|
+
legacyLanguageKeys: language?.legacyStorageKeys,
|
|
262
|
+
captureCampaignAttribution: campaignAttribution,
|
|
271
263
|
platformStorage: platformStorage,
|
|
272
264
|
accountQueries: accountQueries,
|
|
273
265
|
onAuthStateChange: onAuthStateChange,
|
|
274
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
266
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_useSupervision.SupervisionStateObserver, {}), productAnalytics ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_productAnalytics.ProductAnalyticsObserver, {
|
|
275
267
|
analytics: productAnalytics
|
|
276
|
-
}) : null,
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
268
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_AccountLanguageBoundary.AccountLanguageBoundary, {
|
|
269
|
+
language: language,
|
|
270
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_BloomLocaleBridge.BloomLocaleBridge, {
|
|
271
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_oxySupportContext.OxySupportContext.Provider, {
|
|
272
|
+
value: support,
|
|
273
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_surfaces.SurfaceProvider, {
|
|
274
|
+
children: requireAuth === 'off' ? children : /*#__PURE__*/(0, _jsxRuntime.jsx)(_RequireOxyAuth.RequireOxyAuth, {
|
|
275
|
+
prompt: requireAuth,
|
|
276
|
+
children: children
|
|
277
|
+
})
|
|
285
278
|
})
|
|
286
|
-
})
|
|
287
|
-
})
|
|
279
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_toast.ToastOutlet, {})]
|
|
280
|
+
})
|
|
288
281
|
})]
|
|
289
282
|
})
|
|
290
283
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_oxySupportContext","require","_routes","_react","_reactNative","_reactNativeGestureHandler","_OxyContext","_reactQuery","_surfaces","_toast","_core","_RequireOxyAuth","_queryClient","_storageHelpers","_netConnectivity","_KeyboardBoundary","_SafeAreaRoot","_productAnalytics","
|
|
1
|
+
{"version":3,"names":["_oxySupportContext","require","_routes","_react","_reactNative","_reactNativeGestureHandler","_OxyContext","_reactQuery","_surfaces","_toast","_core","_RequireOxyAuth","_queryClient","_storageHelpers","_netConnectivity","_KeyboardBoundary","_SafeAreaRoot","_productAnalytics","_AccountLanguageBoundary","_BloomLocaleBridge","_useSupervision","_jsxRuntime","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","bootStyles","StyleSheet","create","providerRoot","flex","isWeb","Platform","OS","OxyProvider","oxyServices","children","onAuthStateChange","onAskAlia","documentationUrl","aliaAvatar","oxyOneArtwork","productAnalytics","storageKeyPrefix","clientId","baseURL","authWebUrl","authRedirectUri","authorizeBaseUrl","sessionMode","webAuthMode","queryClient","providedQueryClient","accountQueries","requireAuth","backgroundSession","language","campaignAttribution","support","useMemo","useEffect","loadScreens","catch","undefined","queryClientRef","useRef","persistenceUnsubRef","ownsQueryClientRef","accountQueriesRef","platformStorage","setPlatformStorage","useState","current","client","createQueryClient","mounted","bootstrap","storage","createPlatformStorage","error","__DEV__","loggerUtil","warn","component","createMemoryStorage","persistence","attachQueryPersistence","unsubscribe","restored","handleVisibilityChange","focusManager","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","AppState","state","remove","cleanup","setupNetworkMonitoring","onlineManager","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","Promise","resolve","then","fetch","isNetConnectivityOnline","coreContent","jsx","QueryClientProvider","jsxs","OxyRuntimeProvider","legacyLanguageKeys","legacyStorageKeys","captureCampaignAttribution","SupervisionStateObserver","ProductAnalyticsObserver","analytics","AccountLanguageBoundary","BloomLocaleBridge","OxySupportContext","Provider","value","SurfaceProvider","RequireOxyAuth","prompt","ToastOutlet","GestureHandlerRootView","style","SafeAreaRoot","KeyboardBoundary","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -47,7 +47,9 @@ const OxySignUpPanel = ({
|
|
|
47
47
|
const {
|
|
48
48
|
oxyServices,
|
|
49
49
|
handleWebSession,
|
|
50
|
-
accountDialogController
|
|
50
|
+
accountDialogController,
|
|
51
|
+
currentLanguage,
|
|
52
|
+
campaignAttribution
|
|
51
53
|
} = (0, _oxyRuntimeContext.useOxy)();
|
|
52
54
|
const snapshot = (0, _accountDialogSnapshot.useAccountDialogSnapshot)(accountDialogController);
|
|
53
55
|
const flowOwner = host === 'dialog' ? accountDialogController : null;
|
|
@@ -123,7 +125,11 @@ const OxySignUpPanel = ({
|
|
|
123
125
|
const session = await oxyServices.auth.signUp({
|
|
124
126
|
username: username.trim(),
|
|
125
127
|
email,
|
|
126
|
-
emailTicket: ticket
|
|
128
|
+
emailTicket: ticket,
|
|
129
|
+
languages: [currentLanguage],
|
|
130
|
+
...(campaignAttribution ? {
|
|
131
|
+
campaignAttribution
|
|
132
|
+
} : {})
|
|
127
133
|
});
|
|
128
134
|
await handleWebSession(session);
|
|
129
135
|
(0, _signInFlowStore.writeSignInFlow)(flowOwner, SIGN_UP_FLOW_KEY, undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_toast","_client","_oxyRuntimeContext","_accountDialogSnapshot","_useI18n","_commonsStoreLinks","_isWebBrowser","_primitives","_OxyAuthScreen","_signInFlowStore","_accountFlowParts","_jsxRuntime","COMMONS_CREATE_IDENTITY_URL","SIGN_UP_FLOW_KEY","OxySignUpPanel","onSignedIn","onSignIn","host","t","useI18n","oxyServices","handleWebSession","accountDialogController","useOxy","snapshot","useAccountDialogSnapshot","flowOwner","saved","useState","readSignInFlow","step","setStep","name","username","setUsername","email","setEmail","pending","setPending","error","setError","useEffect","writeSignInFlow","run","work","catch","reason","isTicketExpired","UsernameTakenError","describeSignInError","finally","submitUsername","handle","trim","available","auth","checkUsername","sendCode","address","verificationId","startVerification","purpose","submitEmail","checkContract","emailAddressCheck","createAccount","ticket","session","signUp","emailTicket","undefined","errorCode","SIGN_IN_ERROR_CODES","usernameTaken","createInCommons","url","isWebBrowser","commonsAvailability","getCommonsAcquisitionUrl","Platform","OS","Promise","resolve","then","Linking","openURL","toast","progressSteps","progress","current","jsx","AccountFlowProgress","steps","testID","EmailCodeStep","description","onConfirmed","onResend","back","label","onPress","jsxs","OxyAuthScreen","children","OxyAuthScreenHeader","title","AccountFlowField","value","onChange","onSubmit","disabled","placeholder","autoComplete","keyboardType","AccountFlowNote","AccountFlowAction","SubtleLink","OxyAuthTerms","exports","Error"],"sourceRoot":"../../../../../src","sources":["ui/components/signIn/OxySignUpPanel.tsx"],"mappings":";;;;;;AAcA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,sBAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AACA,IAAAW,gBAAA,GAAAX,OAAA;AACA,IAAAY,iBAAA,GAAAZ,OAAA;AAS4B,IAAAa,WAAA,GAAAb,OAAA;AApC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,gDACA,MAAMc,2BAA2B,GAAG,8BAA8B;;AAgBlE;;AAMA,MAAMC,gBAAgB,GAAG,QAAQ;AAE1B,MAAMC,cAA6C,GAAGA,CAAC;EAC5DC,UAAU;EACVC,QAAQ;EACRC,IAAI,GAAG;AACT,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;EACvB,MAAM;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_toast","_client","_oxyRuntimeContext","_accountDialogSnapshot","_useI18n","_commonsStoreLinks","_isWebBrowser","_primitives","_OxyAuthScreen","_signInFlowStore","_accountFlowParts","_jsxRuntime","COMMONS_CREATE_IDENTITY_URL","SIGN_UP_FLOW_KEY","OxySignUpPanel","onSignedIn","onSignIn","host","t","useI18n","oxyServices","handleWebSession","accountDialogController","currentLanguage","campaignAttribution","useOxy","snapshot","useAccountDialogSnapshot","flowOwner","saved","useState","readSignInFlow","step","setStep","name","username","setUsername","email","setEmail","pending","setPending","error","setError","useEffect","writeSignInFlow","run","work","catch","reason","isTicketExpired","UsernameTakenError","describeSignInError","finally","submitUsername","handle","trim","available","auth","checkUsername","sendCode","address","verificationId","startVerification","purpose","submitEmail","checkContract","emailAddressCheck","createAccount","ticket","session","signUp","emailTicket","languages","undefined","errorCode","SIGN_IN_ERROR_CODES","usernameTaken","createInCommons","url","isWebBrowser","commonsAvailability","getCommonsAcquisitionUrl","Platform","OS","Promise","resolve","then","Linking","openURL","toast","progressSteps","progress","current","jsx","AccountFlowProgress","steps","testID","EmailCodeStep","description","onConfirmed","onResend","back","label","onPress","jsxs","OxyAuthScreen","children","OxyAuthScreenHeader","title","AccountFlowField","value","onChange","onSubmit","disabled","placeholder","autoComplete","keyboardType","AccountFlowNote","AccountFlowAction","SubtleLink","OxyAuthTerms","exports","Error"],"sourceRoot":"../../../../../src","sources":["ui/components/signIn/OxySignUpPanel.tsx"],"mappings":"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","ignoreList":[]}
|