@mentra/glasses-media 3.3.0-dev.887 → 3.3.0-dev.890

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.
@@ -0,0 +1,23 @@
1
+ import Foundation
2
+
3
+ /// Explicit bridge facts; never forward native userInfo or arbitrary NSError descriptions.
4
+ public struct HotspotJoinFailure {
5
+ public let code: String
6
+ public let message: String
7
+
8
+ public init(_ error: Error) {
9
+ if error is CancellationError || (error as? LocalMediaError)?.message == "Hotspot join cancelled" {
10
+ code = "ERR_HOTSPOT_CANCELLED"
11
+ message = "Hotspot join cancelled"
12
+ } else if let local = error as? LocalMediaError {
13
+ code = "ERR_HOTSPOT_JOIN"
14
+ // These messages are authored by the owned hotspot implementation, not NSError.
15
+ message = String(local.message.filter { !$0.unicodeScalars.contains(where: CharacterSet.controlCharacters.contains) }.prefix(512))
16
+ } else {
17
+ code = "ERR_HOTSPOT_NATIVE"
18
+ let native = error as NSError
19
+ let domain = native.domain.range(of: "^[A-Za-z0-9_.-]{1,128}$", options: .regularExpression) == nil ? "unavailable" : native.domain
20
+ message = "Hotspot join failed (\(domain), \(native.code))"
21
+ }
22
+ }
23
+ }
@@ -23,7 +23,9 @@ public final class GlassesMediaRelayModule: Module {
23
23
  self.localHotspot.join(ssid: ssid, passphrase: password, gateway: gateway, purpose: accessPurpose) { result in
24
24
  switch result {
25
25
  case let .success(address): promise.resolve(address)
26
- case let .failure(error): promise.reject(error)
26
+ case let .failure(error):
27
+ let failure = HotspotJoinFailure(error)
28
+ promise.reject(Exception(name: "HotspotJoinFailure", description: failure.message, code: failure.code))
27
29
  }
28
30
  }
29
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mentra/glasses-media",
3
- "version": "3.3.0-dev.887",
3
+ "version": "3.3.0-dev.890",
4
4
  "description": "Shared native glasses media receivers and local network transport",
5
5
  "license": "MIT",
6
6
  "author": "Mentra Community",