@therealitycrafters/react-native-evskit 0.0.0-stage → 0.1.1

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 (120) hide show
  1. package/README.md +151 -2
  2. package/android/build.gradle +46 -0
  3. package/android/src/main/java/expo/modules/evskit/EvsKitModule.kt +380 -0
  4. package/app.plugin.js +7 -0
  5. package/build/EvsKit.types.d.ts +76 -0
  6. package/build/EvsKit.types.d.ts.map +1 -0
  7. package/build/EvsKit.types.js +10 -0
  8. package/build/EvsKit.types.js.map +1 -0
  9. package/build/EvsKitModule.d.ts +43 -0
  10. package/build/EvsKitModule.d.ts.map +1 -0
  11. package/build/EvsKitModule.js +3 -0
  12. package/build/EvsKitModule.js.map +1 -0
  13. package/build/index.d.ts +118 -0
  14. package/build/index.d.ts.map +1 -0
  15. package/build/index.js +146 -0
  16. package/build/index.js.map +1 -0
  17. package/expo-module.config.json +9 -0
  18. package/ios/EvsKit.xcframework/Info.plist +44 -0
  19. package/ios/EvsKit.xcframework/_CodeSignature/CodeDirectory +0 -0
  20. package/ios/EvsKit.xcframework/_CodeSignature/CodeRequirements +0 -0
  21. package/ios/EvsKit.xcframework/_CodeSignature/CodeResources +945 -0
  22. package/ios/EvsKit.xcframework/_CodeSignature/CodeSignature +0 -0
  23. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Assets.car +0 -0
  24. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/BitTableViewCell.nib +0 -0
  25. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/EvsGlassesNameTableViewCell.nib +0 -0
  26. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/EvsKit +0 -0
  27. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/EvsSliderTableViewCell.nib +0 -0
  28. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/EvsSwitchTableViewCell.nib +0 -0
  29. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Headers/EvsKit-Swift.h +390 -0
  30. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Headers/EvsKit.h +19 -0
  31. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Info.plist +0 -0
  32. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios.abi.json +13039 -0
  33. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios.private.swiftinterface +239 -0
  34. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  35. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios.swiftinterface +239 -0
  36. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/Modules/module.modulemap +11 -0
  37. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemInfoViewCell.nib +0 -0
  38. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/09f-ri-9sL-view-zGn-Zv-q7U.nib +0 -0
  39. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/8yY-DT-9Da-view-iUR-D7-FGu.nib +0 -0
  40. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/BbY-tb-eSR-view-4D3-sx-xbY.nib +0 -0
  41. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/GlassesOtaModalViewControllerIId.nib +0 -0
  42. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/GlassesSettingsModalViewControllerIId.nib +0 -0
  43. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/Info.plist +0 -0
  44. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/UIViewController-8yY-DT-9Da.nib +0 -0
  45. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/debugViewController.nib +0 -0
  46. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/glassesConfigureViewController.nib +0 -0
  47. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/jne-LB-b9D-view-ci7-nK-5Un.nib +0 -0
  48. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/kuB-So-Ae6-view-aJi-AM-lyl.nib +0 -0
  49. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/l9h-6a-xMo-view-vJS-2W-16K.nib +0 -0
  50. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/SystemUI.storyboardc/settingsViewController.nib +0 -0
  51. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/common_glasses_resources/battery_notification.png +0 -0
  52. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/common_glasses_resources/goodbye.png +0 -0
  53. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/common_glasses_resources/personal_adjust_default_final_result.png +0 -0
  54. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/evs_logo_green.png +0 -0
  55. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/ota/max32650.121.enc.bin +0 -0
  56. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/ota/ota_info.json +17 -0
  57. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/ota/stm32wb.color.121.enc.bin +0 -0
  58. package/ios/EvsKit.xcframework/ios-arm64/EvsKit.framework/ota_background_big.png +0 -0
  59. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Assets.car +0 -0
  60. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/BitTableViewCell.nib +0 -0
  61. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/EvsGlassesNameTableViewCell.nib +0 -0
  62. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/EvsKit +0 -0
  63. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/EvsSliderTableViewCell.nib +0 -0
  64. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/EvsSwitchTableViewCell.nib +0 -0
  65. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Headers/EvsKit-Swift.h +776 -0
  66. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Headers/EvsKit.h +19 -0
  67. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Info.plist +0 -0
  68. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios-simulator.abi.json +13039 -0
  69. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +239 -0
  70. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  71. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +239 -0
  72. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/x86_64-apple-ios-simulator.abi.json +13039 -0
  73. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +239 -0
  74. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  75. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/EvsKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +239 -0
  76. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/Modules/module.modulemap +11 -0
  77. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemInfoViewCell.nib +0 -0
  78. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/09f-ri-9sL-view-zGn-Zv-q7U.nib +0 -0
  79. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/8yY-DT-9Da-view-iUR-D7-FGu.nib +0 -0
  80. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/BbY-tb-eSR-view-4D3-sx-xbY.nib +0 -0
  81. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/GlassesOtaModalViewControllerIId.nib +0 -0
  82. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/GlassesSettingsModalViewControllerIId.nib +0 -0
  83. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/Info.plist +0 -0
  84. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/UIViewController-8yY-DT-9Da.nib +0 -0
  85. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/debugViewController.nib +0 -0
  86. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/glassesConfigureViewController.nib +0 -0
  87. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/jne-LB-b9D-view-ci7-nK-5Un.nib +0 -0
  88. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/kuB-So-Ae6-view-aJi-AM-lyl.nib +0 -0
  89. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/l9h-6a-xMo-view-vJS-2W-16K.nib +0 -0
  90. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/SystemUI.storyboardc/settingsViewController.nib +0 -0
  91. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/_CodeSignature/CodeResources +542 -0
  92. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/common_glasses_resources/battery_notification.png +0 -0
  93. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/common_glasses_resources/goodbye.png +0 -0
  94. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/common_glasses_resources/personal_adjust_default_final_result.png +0 -0
  95. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/evs_logo_green.png +0 -0
  96. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/ota/max32650.121.enc.bin +0 -0
  97. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/ota/ota_info.json +17 -0
  98. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/ota/stm32wb.color.121.enc.bin +0 -0
  99. package/ios/EvsKit.xcframework/ios-arm64_x86_64-simulator/EvsKit.framework/ota_background_big.png +0 -0
  100. package/ios/EvsKitModule.swift +321 -0
  101. package/ios/NativeEvsKit.xcframework/Info.plist +44 -0
  102. package/ios/NativeEvsKit.xcframework/_CodeSignature/CodeDirectory +0 -0
  103. package/ios/NativeEvsKit.xcframework/_CodeSignature/CodeRequirements +0 -0
  104. package/ios/NativeEvsKit.xcframework/_CodeSignature/CodeResources +186 -0
  105. package/ios/NativeEvsKit.xcframework/_CodeSignature/CodeSignature +0 -0
  106. package/ios/NativeEvsKit.xcframework/ios-arm64/NativeEvsKit.framework/Headers/NativeEvsKit.h +3634 -0
  107. package/ios/NativeEvsKit.xcframework/ios-arm64/NativeEvsKit.framework/Info.plist +35 -0
  108. package/ios/NativeEvsKit.xcframework/ios-arm64/NativeEvsKit.framework/Modules/module.modulemap +8 -0
  109. package/ios/NativeEvsKit.xcframework/ios-arm64/NativeEvsKit.framework/NativeEvsKit +0 -0
  110. package/ios/NativeEvsKit.xcframework/ios-arm64_x86_64-simulator/NativeEvsKit.framework/Headers/NativeEvsKit.h +3634 -0
  111. package/ios/NativeEvsKit.xcframework/ios-arm64_x86_64-simulator/NativeEvsKit.framework/Info.plist +31 -0
  112. package/ios/NativeEvsKit.xcframework/ios-arm64_x86_64-simulator/NativeEvsKit.framework/Modules/module.modulemap +8 -0
  113. package/ios/NativeEvsKit.xcframework/ios-arm64_x86_64-simulator/NativeEvsKit.framework/NativeEvsKit +0 -0
  114. package/ios/RNEvsKit.podspec +27 -0
  115. package/package.json +52 -4
  116. package/plugin/withEverysightBundleResources.js +110 -0
  117. package/plugin/withEverysightSPM.js +276 -0
  118. package/src/EvsKit.types.ts +122 -0
  119. package/src/EvsKitModule.ts +65 -0
  120. package/src/index.ts +172 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvsKit.types.js","sourceRoot":"","sources":["../src/EvsKit.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG","sourcesContent":["/**\n * Type definitions mirroring Everysight's Maverick SDK interfaces\n * (IEvsCommunicationService, IEvsGlassesStateService, IEvsDisplayService,\n * IEvsSensorsService, IEvsAuthService).\n *\n * Signatures confirmed against the everysight-maverick/samples repo (v2.6.1)\n * and the MCP API reference.\n */\n\n// ---------------------------------------------------------------------------\n// Communication (IEvsCommunicationService)\n// ---------------------------------------------------------------------------\n\nexport interface EvsDeviceInfo {\n /** Bluetooth device address/id, e.g. from a BLE scan (EV0080 style name). */\n deviceId: string;\n /** Bluetooth device name. */\n name: string;\n}\n\nexport type EvsConnectionState =\n \"disconnected\" | \"connecting\" | \"connected\" | \"authenticating\" | \"error\";\n\n// ---------------------------------------------------------------------------\n// Glasses (IEvsGlassesStateService)\n// ---------------------------------------------------------------------------\n\nexport interface EvsGlassesInfo {\n /** Battery percentage 0-100 from IEvsGlassesStateService.batteryPercentage(). */\n batteryLevel: number;\n /** Battery level category (Unknown/Critical/Low/Medium/High) from batteryLevel(). */\n batteryStatus: string;\n /** Estimated remaining operation time in minutes. */\n estimatedRemainingTime: number;\n /** Firmware version number (Int from fwVersion()). */\n firmwareVersion: number;\n}\n\nexport type TouchDirection = \"backward\" | \"forward\" | \"tap\" | \"longTap\";\n\nexport type ProximityEvent = \"onFace\" | \"offFace\";\n\n// ---------------------------------------------------------------------------\n// Display (IEvsDisplayService)\n// ---------------------------------------------------------------------------\n\nexport interface EvsAutoBrightnessOptions {\n enabled: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Sensors (IEvsSensorsService)\n// ---------------------------------------------------------------------------\n\nexport type CalibrationStatus = \"calibrated\" | \"inProgress\" | \"required\";\n\n/** Currently only rate0 and rate1 are operational per the SDK docs; the rest are experimental. */\nexport type SensorRate = \"rate0\" | \"rate1\" | \"rate2\" | \"rate3\";\n\nexport interface EvsYprData {\n yaw: number;\n pitch: number;\n roll: number;\n}\n\nexport interface EvsQuaternionData {\n w: number;\n x: number;\n y: number;\n z: number;\n}\n\nexport interface EvsVector3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface EvsSensorSample<T> {\n timestampMs: number;\n data: T;\n}\n\nexport interface EvsYprSample extends EvsSensorSample<EvsYprData> {\n calibrationStatus: CalibrationStatus;\n}\n\nexport interface EvsQuaternionSample extends EvsSensorSample<EvsQuaternionData> {\n calibrationStatus: CalibrationStatus;\n}\n\n// ---------------------------------------------------------------------------\n// Stock UI (Evs.instance().showUI(...))\n// ---------------------------------------------------------------------------\n\nexport type EvsStockUIScreen = \"configure\" | \"adjust\" | \"calibrate\";\n\n// ---------------------------------------------------------------------------\n// Auth (IEvsAuthService) / lifecycle events (IEvsAppEvents)\n// ---------------------------------------------------------------------------\n\nexport interface EvsBeginAuthEvent {\n serial: string;\n fwVersion: number;\n}\n\n// ---------------------------------------------------------------------------\n// Native event map — every event the native module can emit to JS via\n// EventEmitter. Keep this in sync with EvsKitModule.kt / EvsKitModule.swift.\n// ---------------------------------------------------------------------------\n\nexport type EvsKitEvents = {\n onConnectionStateChanged: (state: EvsConnectionState) => void;\n onBeginAuth: (event: EvsBeginAuthEvent) => void;\n onGlassesInfoChanged: (info: EvsGlassesInfo) => void;\n onTouch: (direction: TouchDirection) => void;\n onProximity: (event: ProximityEvent) => void;\n onAmbient: (lux: number) => void;\n onYpr: (sample: EvsYprSample) => void;\n onQuaternion: (sample: EvsQuaternionSample) => void;\n onError: (message: string) => void;\n};\n"]}
@@ -0,0 +1,43 @@
1
+ import { NativeModule } from "expo-modules-core";
2
+ import type { EvsAutoBrightnessOptions, EvsDeviceInfo, EvsGlassesInfo, EvsKitEvents, EvsStockUIScreen } from "./EvsKit.types";
3
+ /**
4
+ * Raw native surface. This intentionally mirrors the SDK's service methods
5
+ * 1:1 (comm/glasses/display/sensors/auth) rather than inventing a different
6
+ * shape, so the JS API stays easy to cross-reference against the Maverick
7
+ * docs. Prefer using the higher-level classes exported from `src/index.ts`
8
+ * over calling this module directly.
9
+ */
10
+ declare class EvsKitNativeModule extends NativeModule<EvsKitEvents> {
11
+ /** Evs.init(context).start() on Android / Evs.instance().start() on iOS. */
12
+ start(): Promise<void>;
13
+ isStarted(): Promise<boolean>;
14
+ /** Evs.instance().showUI(name) — "configure" | "adjust" | "calibrate". */
15
+ showUI(screen: EvsStockUIScreen): Promise<void>;
16
+ setDeviceInfo(info: EvsDeviceInfo): Promise<void>;
17
+ connect(): Promise<void>;
18
+ connectSecured(): Promise<void>;
19
+ disconnect(): Promise<void>;
20
+ hasConfiguredDevice(): Promise<boolean>;
21
+ getGlassesInfo(): Promise<EvsGlassesInfo>;
22
+ turnGlassesOff(): Promise<void>;
23
+ turnDisplayOn(): Promise<void>;
24
+ /** Continuous brightness, 1-255. */
25
+ setBrightness(value: number): Promise<void>;
26
+ /** Discrete, display-optimized brightness controller. */
27
+ setBrightnessLevel(level: number): Promise<void>;
28
+ setAutoBrightness(options: EvsAutoBrightnessOptions): Promise<void>;
29
+ setRenderingCenterX(dx: number): Promise<void>;
30
+ setRenderingCenterY(dy: number): Promise<void>;
31
+ enableTouch(enabled: boolean): Promise<void>;
32
+ enableAmbient(enabled: boolean): Promise<void>;
33
+ enableGyro(enabled: boolean): Promise<void>;
34
+ enableMagnetometer(enabled: boolean): Promise<void>;
35
+ enableAccelerometer(enabled: boolean): Promise<void>;
36
+ enableSensorsFusion(enabled: boolean): Promise<void>;
37
+ setApiKeyName(fileNameWithoutExt: string): Promise<void>;
38
+ /** base64-encoded key bytes. */
39
+ setApiKey(base64Key: string): Promise<void>;
40
+ }
41
+ declare const _default: EvsKitNativeModule;
42
+ export default _default;
43
+ //# sourceMappingURL=EvsKitModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvsKitModule.d.ts","sourceRoot":"","sources":["../src/EvsKitModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,OAAO,OAAO,kBAAmB,SAAQ,YAAY,CAAC,YAAY,CAAC;IAEjE,4EAA4E;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAG7B,0EAA0E;IAC1E,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAG/C,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAGvC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IACzC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAG/B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAC9B,oCAAoC;IACpC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,yDAAyD;IACzD,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAChD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnE,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9C,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG9C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5C,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACnD,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAGpD,aAAa,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACxD,gCAAgC;IAChC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAC5C;;AAED,wBAAmE"}
@@ -0,0 +1,3 @@
1
+ import { requireNativeModule } from "expo-modules-core";
2
+ export default requireNativeModule("RNEvsKit");
3
+ //# sourceMappingURL=EvsKitModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvsKitModule.js","sourceRoot":"","sources":["../src/EvsKitModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAgEtE,eAAe,mBAAmB,CAAqB,UAAU,CAAC,CAAC","sourcesContent":["import { NativeModule, requireNativeModule } from \"expo-modules-core\";\n\nimport type {\n EvsAutoBrightnessOptions,\n EvsDeviceInfo,\n EvsGlassesInfo,\n EvsKitEvents,\n EvsStockUIScreen,\n} from \"./EvsKit.types\";\n\n/**\n * Raw native surface. This intentionally mirrors the SDK's service methods\n * 1:1 (comm/glasses/display/sensors/auth) rather than inventing a different\n * shape, so the JS API stays easy to cross-reference against the Maverick\n * docs. Prefer using the higher-level classes exported from `src/index.ts`\n * over calling this module directly.\n */\ndeclare class EvsKitNativeModule extends NativeModule<EvsKitEvents> {\n // --- Lifecycle -----------------------------------------------------------\n /** Evs.init(context).start() on Android / Evs.instance().start() on iOS. */\n start(): Promise<void>;\n isStarted(): Promise<boolean>;\n\n // --- Stock UI --------------------------------------------------------------\n /** Evs.instance().showUI(name) — \"configure\" | \"adjust\" | \"calibrate\". */\n showUI(screen: EvsStockUIScreen): Promise<void>;\n\n // --- Communication (IEvsCommunicationService) -----------------------------\n setDeviceInfo(info: EvsDeviceInfo): Promise<void>;\n connect(): Promise<void>;\n connectSecured(): Promise<void>;\n disconnect(): Promise<void>;\n hasConfiguredDevice(): Promise<boolean>;\n\n // --- Glasses (IEvsGlassesStateService) -------------------------------------\n getGlassesInfo(): Promise<EvsGlassesInfo>;\n turnGlassesOff(): Promise<void>;\n\n // --- Display (IEvsDisplayService) ------------------------------------------\n turnDisplayOn(): Promise<void>;\n /** Continuous brightness, 1-255. */\n setBrightness(value: number): Promise<void>;\n /** Discrete, display-optimized brightness controller. */\n setBrightnessLevel(level: number): Promise<void>;\n setAutoBrightness(options: EvsAutoBrightnessOptions): Promise<void>;\n\n // --- Screens (rendering offset) ---------------------------------------------\n setRenderingCenterX(dx: number): Promise<void>;\n setRenderingCenterY(dy: number): Promise<void>;\n\n // --- Sensors (IEvsSensorsService) -------------------------------------------\n enableTouch(enabled: boolean): Promise<void>;\n enableAmbient(enabled: boolean): Promise<void>;\n enableGyro(enabled: boolean): Promise<void>;\n enableMagnetometer(enabled: boolean): Promise<void>;\n enableAccelerometer(enabled: boolean): Promise<void>;\n enableSensorsFusion(enabled: boolean): Promise<void>;\n\n // --- Auth (IEvsAuthService) --------------------------------------------------\n setApiKeyName(fileNameWithoutExt: string): Promise<void>;\n /** base64-encoded key bytes. */\n setApiKey(base64Key: string): Promise<void>;\n}\n\nexport default requireNativeModule<EvsKitNativeModule>(\"RNEvsKit\");\n"]}
@@ -0,0 +1,118 @@
1
+ import type { EventSubscription } from "expo-modules-core";
2
+ import type { EvsAutoBrightnessOptions, EvsDeviceInfo, EvsGlassesInfo, EvsKitEvents, EvsStockUIScreen } from "./EvsKit.types";
3
+ export * from "./EvsKit.types";
4
+ /**
5
+ * Communication service — mirrors IEvsCommunicationService
6
+ * (`Evs.instance().comm()`).
7
+ *
8
+ * Scanning for glasses is NOT handled here: the SDK docs specify scanning
9
+ * is done with the platform's standard BLE APIs (CBCentralManager /
10
+ * BluetoothLeScanner) against `BTConstants.serviceUUID`, filtering for the
11
+ * "EV####" name pattern. Pair that with a BLE library (e.g. react-native-ble-plx)
12
+ * or just use `EvsUI.show('configure')` for the SDK's built-in scan/pair flow.
13
+ */
14
+ export declare const EvsComm: {
15
+ setDeviceInfo(info: EvsDeviceInfo): Promise<void>;
16
+ connect(): Promise<void>;
17
+ /** Use instead of connect() when the app requires BLE pairing. */
18
+ connectSecured(): Promise<void>;
19
+ disconnect(): Promise<void>;
20
+ hasConfiguredDevice(): Promise<boolean>;
21
+ };
22
+ /** Mirrors IEvsGlassesStateService (`Evs.instance().glasses()`). */
23
+ export declare const EvsGlasses: {
24
+ getInfo(): Promise<EvsGlassesInfo>;
25
+ turnOff(): Promise<void>;
26
+ };
27
+ /** Mirrors IEvsDisplayService (`Evs.instance().display()`) plus screen offset controls. */
28
+ export declare const EvsDisplay: {
29
+ turnOn(): Promise<void>;
30
+ /** Continuous scale, 1-255. Prefer setBrightnessLevel() where possible. */
31
+ setBrightness(value: number): Promise<void>;
32
+ /** Discrete brightness level via the SDK's display-optimized controller. */
33
+ setBrightnessLevel(level: number): Promise<void>;
34
+ setAutoBrightness(options: EvsAutoBrightnessOptions): Promise<void>;
35
+ /** Adjust the virtual rendering area's center offset within the 640x400 display. */
36
+ setRenderingCenter(dx: number, dy: number): Promise<[void, void]>;
37
+ };
38
+ /**
39
+ * Mirrors IEvsSensorsService (`Evs.instance().sensors()`).
40
+ * Remember to disable sensors and unsubscribe events when no longer needed —
41
+ * the SDK docs call this out explicitly for battery/bandwidth reasons.
42
+ */
43
+ export declare const EvsSensors: {
44
+ enableTouch(enabled: boolean): Promise<void>;
45
+ enableAmbient(enabled: boolean): Promise<void>;
46
+ enableGyro(enabled: boolean): Promise<void>;
47
+ enableMagnetometer(enabled: boolean): Promise<void>;
48
+ enableAccelerometer(enabled: boolean): Promise<void>;
49
+ /** Enables Gyro + Magnetometer + Accelerometer and starts the fusion algorithm. */
50
+ enableFusion(enabled: boolean): Promise<void>;
51
+ };
52
+ /** Mirrors IEvsAuthService (`Evs.instance().auth()`). Usually unnecessary — see API Keys docs. */
53
+ export declare const EvsAuth: {
54
+ setApiKeyName(fileNameWithoutExt: string): Promise<void>;
55
+ setApiKey(base64Key: string): Promise<void>;
56
+ };
57
+ /** Mirrors `Evs.instance().showUI(...)` — the SDK's built-in portrait UI screens. */
58
+ export declare const EvsUI: {
59
+ show(screen: EvsStockUIScreen): Promise<void>;
60
+ };
61
+ /** Top-level lifecycle, matching `Evs.init(context).start()` / `Evs.instance().start()`. */
62
+ export declare const EvsKit: {
63
+ start(): Promise<void>;
64
+ isStarted(): Promise<boolean>;
65
+ comm: {
66
+ setDeviceInfo(info: EvsDeviceInfo): Promise<void>;
67
+ connect(): Promise<void>;
68
+ /** Use instead of connect() when the app requires BLE pairing. */
69
+ connectSecured(): Promise<void>;
70
+ disconnect(): Promise<void>;
71
+ hasConfiguredDevice(): Promise<boolean>;
72
+ };
73
+ glasses: {
74
+ getInfo(): Promise<EvsGlassesInfo>;
75
+ turnOff(): Promise<void>;
76
+ };
77
+ display: {
78
+ turnOn(): Promise<void>;
79
+ /** Continuous scale, 1-255. Prefer setBrightnessLevel() where possible. */
80
+ setBrightness(value: number): Promise<void>;
81
+ /** Discrete brightness level via the SDK's display-optimized controller. */
82
+ setBrightnessLevel(level: number): Promise<void>;
83
+ setAutoBrightness(options: EvsAutoBrightnessOptions): Promise<void>;
84
+ /** Adjust the virtual rendering area's center offset within the 640x400 display. */
85
+ setRenderingCenter(dx: number, dy: number): Promise<[void, void]>;
86
+ };
87
+ sensors: {
88
+ enableTouch(enabled: boolean): Promise<void>;
89
+ enableAmbient(enabled: boolean): Promise<void>;
90
+ enableGyro(enabled: boolean): Promise<void>;
91
+ enableMagnetometer(enabled: boolean): Promise<void>;
92
+ enableAccelerometer(enabled: boolean): Promise<void>;
93
+ /** Enables Gyro + Magnetometer + Accelerometer and starts the fusion algorithm. */
94
+ enableFusion(enabled: boolean): Promise<void>;
95
+ };
96
+ auth: {
97
+ setApiKeyName(fileNameWithoutExt: string): Promise<void>;
98
+ setApiKey(base64Key: string): Promise<void>;
99
+ };
100
+ ui: {
101
+ show(screen: EvsStockUIScreen): Promise<void>;
102
+ };
103
+ };
104
+ export default EvsKit;
105
+ /** Subscribe to a single EvsKit event; call the returned function to unsubscribe. */
106
+ export declare function addEvsKitListener<K extends keyof EvsKitEvents>(eventName: K, listener: EvsKitEvents[K]): EventSubscription;
107
+ /**
108
+ * React hook that subscribes to an EvsKit event for the lifetime of the
109
+ * component. Pass a stable callback (e.g. via useCallback) to avoid
110
+ * resubscribing every render.
111
+ *
112
+ * @example
113
+ * useEvsKitEvent('onTouch', (direction) => {
114
+ * if (direction === 'tap') showPopup();
115
+ * });
116
+ */
117
+ export declare function useEvsKitEvent<K extends keyof EvsKitEvents>(eventName: K, listener: EvsKitEvents[K]): void;
118
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAE/B;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO;wBACE,aAAa;;IAMjC,kEAAkE;;;;CAUnE,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,UAAU;eACV,OAAO,CAAC,cAAc,CAAC;;CAMnC,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,UAAU;;IAIrB,2EAA2E;yBACtD,MAAM;IAG3B,4EAA4E;8BAClD,MAAM;+BAGL,wBAAwB;IAGnD,oFAAoF;2BAC7D,MAAM,MAAM,MAAM;CAM1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU;yBACA,OAAO;2BAGL,OAAO;wBAGV,OAAO;gCAGC,OAAO;iCAGN,OAAO;IAGpC,mFAAmF;0BAC7D,OAAO;CAG9B,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,OAAO;sCACgB,MAAM;yBAGnB,MAAM;CAG5B,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,KAAK;iBACH,gBAAgB;CAG9B,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,MAAM;;;;4BAlGG,aAAa;;QAMjC,kEAAkE;;;;;;mBAcvD,OAAO,CAAC,cAAc,CAAC;;;;;QAalC,2EAA2E;6BACtD,MAAM;QAG3B,4EAA4E;kCAClD,MAAM;mCAGL,wBAAwB;QAGnD,oFAAoF;+BAC7D,MAAM,MAAM,MAAM;;;6BAcpB,OAAO;+BAGL,OAAO;4BAGV,OAAO;oCAGC,OAAO;qCAGN,OAAO;QAGpC,mFAAmF;8BAC7D,OAAO;;;0CAOK,MAAM;6BAGnB,MAAM;;;qBAOd,gBAAgB;;CAmB9B,CAAC;AAEF,eAAe,MAAM,CAAC;AAMtB,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,YAAY,EAC5D,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,iBAAiB,CAEnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACzD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,QAO1B"}
package/build/index.js ADDED
@@ -0,0 +1,146 @@
1
+ import { useEffect } from "react";
2
+ import EvsKitNative from "./EvsKitModule";
3
+ export * from "./EvsKit.types";
4
+ /**
5
+ * Communication service — mirrors IEvsCommunicationService
6
+ * (`Evs.instance().comm()`).
7
+ *
8
+ * Scanning for glasses is NOT handled here: the SDK docs specify scanning
9
+ * is done with the platform's standard BLE APIs (CBCentralManager /
10
+ * BluetoothLeScanner) against `BTConstants.serviceUUID`, filtering for the
11
+ * "EV####" name pattern. Pair that with a BLE library (e.g. react-native-ble-plx)
12
+ * or just use `EvsUI.show('configure')` for the SDK's built-in scan/pair flow.
13
+ */
14
+ export const EvsComm = {
15
+ setDeviceInfo(info) {
16
+ return EvsKitNative.setDeviceInfo(info);
17
+ },
18
+ connect() {
19
+ return EvsKitNative.connect();
20
+ },
21
+ /** Use instead of connect() when the app requires BLE pairing. */
22
+ connectSecured() {
23
+ return EvsKitNative.connectSecured();
24
+ },
25
+ disconnect() {
26
+ return EvsKitNative.disconnect();
27
+ },
28
+ hasConfiguredDevice() {
29
+ return EvsKitNative.hasConfiguredDevice();
30
+ },
31
+ };
32
+ /** Mirrors IEvsGlassesStateService (`Evs.instance().glasses()`). */
33
+ export const EvsGlasses = {
34
+ getInfo() {
35
+ return EvsKitNative.getGlassesInfo();
36
+ },
37
+ turnOff() {
38
+ return EvsKitNative.turnGlassesOff();
39
+ },
40
+ };
41
+ /** Mirrors IEvsDisplayService (`Evs.instance().display()`) plus screen offset controls. */
42
+ export const EvsDisplay = {
43
+ turnOn() {
44
+ return EvsKitNative.turnDisplayOn();
45
+ },
46
+ /** Continuous scale, 1-255. Prefer setBrightnessLevel() where possible. */
47
+ setBrightness(value) {
48
+ return EvsKitNative.setBrightness(value);
49
+ },
50
+ /** Discrete brightness level via the SDK's display-optimized controller. */
51
+ setBrightnessLevel(level) {
52
+ return EvsKitNative.setBrightnessLevel(level);
53
+ },
54
+ setAutoBrightness(options) {
55
+ return EvsKitNative.setAutoBrightness(options);
56
+ },
57
+ /** Adjust the virtual rendering area's center offset within the 640x400 display. */
58
+ setRenderingCenter(dx, dy) {
59
+ return Promise.all([
60
+ EvsKitNative.setRenderingCenterX(dx),
61
+ EvsKitNative.setRenderingCenterY(dy),
62
+ ]);
63
+ },
64
+ };
65
+ /**
66
+ * Mirrors IEvsSensorsService (`Evs.instance().sensors()`).
67
+ * Remember to disable sensors and unsubscribe events when no longer needed —
68
+ * the SDK docs call this out explicitly for battery/bandwidth reasons.
69
+ */
70
+ export const EvsSensors = {
71
+ enableTouch(enabled) {
72
+ return EvsKitNative.enableTouch(enabled);
73
+ },
74
+ enableAmbient(enabled) {
75
+ return EvsKitNative.enableAmbient(enabled);
76
+ },
77
+ enableGyro(enabled) {
78
+ return EvsKitNative.enableGyro(enabled);
79
+ },
80
+ enableMagnetometer(enabled) {
81
+ return EvsKitNative.enableMagnetometer(enabled);
82
+ },
83
+ enableAccelerometer(enabled) {
84
+ return EvsKitNative.enableAccelerometer(enabled);
85
+ },
86
+ /** Enables Gyro + Magnetometer + Accelerometer and starts the fusion algorithm. */
87
+ enableFusion(enabled) {
88
+ return EvsKitNative.enableSensorsFusion(enabled);
89
+ },
90
+ };
91
+ /** Mirrors IEvsAuthService (`Evs.instance().auth()`). Usually unnecessary — see API Keys docs. */
92
+ export const EvsAuth = {
93
+ setApiKeyName(fileNameWithoutExt) {
94
+ return EvsKitNative.setApiKeyName(fileNameWithoutExt);
95
+ },
96
+ setApiKey(base64Key) {
97
+ return EvsKitNative.setApiKey(base64Key);
98
+ },
99
+ };
100
+ /** Mirrors `Evs.instance().showUI(...)` — the SDK's built-in portrait UI screens. */
101
+ export const EvsUI = {
102
+ show(screen) {
103
+ return EvsKitNative.showUI(screen);
104
+ },
105
+ };
106
+ /** Top-level lifecycle, matching `Evs.init(context).start()` / `Evs.instance().start()`. */
107
+ export const EvsKit = {
108
+ start() {
109
+ return EvsKitNative.start();
110
+ },
111
+ isStarted() {
112
+ return EvsKitNative.isStarted();
113
+ },
114
+ comm: EvsComm,
115
+ glasses: EvsGlasses,
116
+ display: EvsDisplay,
117
+ sensors: EvsSensors,
118
+ auth: EvsAuth,
119
+ ui: EvsUI,
120
+ };
121
+ export default EvsKit;
122
+ // ---------------------------------------------------------------------------
123
+ // Event subscription helpers
124
+ // ---------------------------------------------------------------------------
125
+ /** Subscribe to a single EvsKit event; call the returned function to unsubscribe. */
126
+ export function addEvsKitListener(eventName, listener) {
127
+ return EvsKitNative.addListener(eventName, listener);
128
+ }
129
+ /**
130
+ * React hook that subscribes to an EvsKit event for the lifetime of the
131
+ * component. Pass a stable callback (e.g. via useCallback) to avoid
132
+ * resubscribing every render.
133
+ *
134
+ * @example
135
+ * useEvsKitEvent('onTouch', (direction) => {
136
+ * if (direction === 'tap') showPopup();
137
+ * });
138
+ */
139
+ export function useEvsKitEvent(eventName, listener) {
140
+ useEffect(() => {
141
+ const subscription = addEvsKitListener(eventName, listener);
142
+ return () => subscription.remove();
143
+ // eslint-disable-next-line react-hooks/exhaustive-deps
144
+ }, [eventName, listener]);
145
+ }
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EventSubscription } from \"expo-modules-core\";\nimport { useEffect } from \"react\";\n\nimport type {\n EvsAutoBrightnessOptions,\n EvsDeviceInfo,\n EvsGlassesInfo,\n EvsKitEvents,\n EvsStockUIScreen,\n} from \"./EvsKit.types\";\nimport EvsKitNative from \"./EvsKitModule\";\n\nexport * from \"./EvsKit.types\";\n\n/**\n * Communication service — mirrors IEvsCommunicationService\n * (`Evs.instance().comm()`).\n *\n * Scanning for glasses is NOT handled here: the SDK docs specify scanning\n * is done with the platform's standard BLE APIs (CBCentralManager /\n * BluetoothLeScanner) against `BTConstants.serviceUUID`, filtering for the\n * \"EV####\" name pattern. Pair that with a BLE library (e.g. react-native-ble-plx)\n * or just use `EvsUI.show('configure')` for the SDK's built-in scan/pair flow.\n */\nexport const EvsComm = {\n setDeviceInfo(info: EvsDeviceInfo) {\n return EvsKitNative.setDeviceInfo(info);\n },\n connect() {\n return EvsKitNative.connect();\n },\n /** Use instead of connect() when the app requires BLE pairing. */\n connectSecured() {\n return EvsKitNative.connectSecured();\n },\n disconnect() {\n return EvsKitNative.disconnect();\n },\n hasConfiguredDevice() {\n return EvsKitNative.hasConfiguredDevice();\n },\n};\n\n/** Mirrors IEvsGlassesStateService (`Evs.instance().glasses()`). */\nexport const EvsGlasses = {\n getInfo(): Promise<EvsGlassesInfo> {\n return EvsKitNative.getGlassesInfo();\n },\n turnOff() {\n return EvsKitNative.turnGlassesOff();\n },\n};\n\n/** Mirrors IEvsDisplayService (`Evs.instance().display()`) plus screen offset controls. */\nexport const EvsDisplay = {\n turnOn() {\n return EvsKitNative.turnDisplayOn();\n },\n /** Continuous scale, 1-255. Prefer setBrightnessLevel() where possible. */\n setBrightness(value: number) {\n return EvsKitNative.setBrightness(value);\n },\n /** Discrete brightness level via the SDK's display-optimized controller. */\n setBrightnessLevel(level: number) {\n return EvsKitNative.setBrightnessLevel(level);\n },\n setAutoBrightness(options: EvsAutoBrightnessOptions) {\n return EvsKitNative.setAutoBrightness(options);\n },\n /** Adjust the virtual rendering area's center offset within the 640x400 display. */\n setRenderingCenter(dx: number, dy: number) {\n return Promise.all([\n EvsKitNative.setRenderingCenterX(dx),\n EvsKitNative.setRenderingCenterY(dy),\n ]);\n },\n};\n\n/**\n * Mirrors IEvsSensorsService (`Evs.instance().sensors()`).\n * Remember to disable sensors and unsubscribe events when no longer needed —\n * the SDK docs call this out explicitly for battery/bandwidth reasons.\n */\nexport const EvsSensors = {\n enableTouch(enabled: boolean) {\n return EvsKitNative.enableTouch(enabled);\n },\n enableAmbient(enabled: boolean) {\n return EvsKitNative.enableAmbient(enabled);\n },\n enableGyro(enabled: boolean) {\n return EvsKitNative.enableGyro(enabled);\n },\n enableMagnetometer(enabled: boolean) {\n return EvsKitNative.enableMagnetometer(enabled);\n },\n enableAccelerometer(enabled: boolean) {\n return EvsKitNative.enableAccelerometer(enabled);\n },\n /** Enables Gyro + Magnetometer + Accelerometer and starts the fusion algorithm. */\n enableFusion(enabled: boolean) {\n return EvsKitNative.enableSensorsFusion(enabled);\n },\n};\n\n/** Mirrors IEvsAuthService (`Evs.instance().auth()`). Usually unnecessary — see API Keys docs. */\nexport const EvsAuth = {\n setApiKeyName(fileNameWithoutExt: string) {\n return EvsKitNative.setApiKeyName(fileNameWithoutExt);\n },\n setApiKey(base64Key: string) {\n return EvsKitNative.setApiKey(base64Key);\n },\n};\n\n/** Mirrors `Evs.instance().showUI(...)` — the SDK's built-in portrait UI screens. */\nexport const EvsUI = {\n show(screen: EvsStockUIScreen) {\n return EvsKitNative.showUI(screen);\n },\n};\n\n/** Top-level lifecycle, matching `Evs.init(context).start()` / `Evs.instance().start()`. */\nexport const EvsKit = {\n start() {\n return EvsKitNative.start();\n },\n isStarted() {\n return EvsKitNative.isStarted();\n },\n comm: EvsComm,\n glasses: EvsGlasses,\n display: EvsDisplay,\n sensors: EvsSensors,\n auth: EvsAuth,\n ui: EvsUI,\n};\n\nexport default EvsKit;\n\n// ---------------------------------------------------------------------------\n// Event subscription helpers\n// ---------------------------------------------------------------------------\n\n/** Subscribe to a single EvsKit event; call the returned function to unsubscribe. */\nexport function addEvsKitListener<K extends keyof EvsKitEvents>(\n eventName: K,\n listener: EvsKitEvents[K],\n): EventSubscription {\n return EvsKitNative.addListener(eventName, listener as any);\n}\n\n/**\n * React hook that subscribes to an EvsKit event for the lifetime of the\n * component. Pass a stable callback (e.g. via useCallback) to avoid\n * resubscribing every render.\n *\n * @example\n * useEvsKitEvent('onTouch', (direction) => {\n * if (direction === 'tap') showPopup();\n * });\n */\nexport function useEvsKitEvent<K extends keyof EvsKitEvents>(\n eventName: K,\n listener: EvsKitEvents[K],\n) {\n useEffect(() => {\n const subscription = addEvsKitListener(eventName, listener);\n return () => subscription.remove();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [eventName, listener]);\n}\n"]}
@@ -0,0 +1,9 @@
1
+ {
2
+ "platforms": ["apple", "android"],
3
+ "apple": {
4
+ "modules": ["EvsKitModule"]
5
+ },
6
+ "android": {
7
+ "modules": ["expo.modules.evskit.EvsKitModule"]
8
+ }
9
+ }
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>AvailableLibraries</key>
6
+ <array>
7
+ <dict>
8
+ <key>BinaryPath</key>
9
+ <string>EvsKit.framework/EvsKit</string>
10
+ <key>LibraryIdentifier</key>
11
+ <string>ios-arm64</string>
12
+ <key>LibraryPath</key>
13
+ <string>EvsKit.framework</string>
14
+ <key>SupportedArchitectures</key>
15
+ <array>
16
+ <string>arm64</string>
17
+ </array>
18
+ <key>SupportedPlatform</key>
19
+ <string>ios</string>
20
+ </dict>
21
+ <dict>
22
+ <key>BinaryPath</key>
23
+ <string>EvsKit.framework/EvsKit</string>
24
+ <key>LibraryIdentifier</key>
25
+ <string>ios-arm64_x86_64-simulator</string>
26
+ <key>LibraryPath</key>
27
+ <string>EvsKit.framework</string>
28
+ <key>SupportedArchitectures</key>
29
+ <array>
30
+ <string>arm64</string>
31
+ <string>x86_64</string>
32
+ </array>
33
+ <key>SupportedPlatform</key>
34
+ <string>ios</string>
35
+ <key>SupportedPlatformVariant</key>
36
+ <string>simulator</string>
37
+ </dict>
38
+ </array>
39
+ <key>CFBundlePackageType</key>
40
+ <string>XFWK</string>
41
+ <key>XCFrameworkFormatVersion</key>
42
+ <string>1.0</string>
43
+ </dict>
44
+ </plist>