@mentra/acs-meeting 3.2.0-dev.136 → 3.2.0-dev.137

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/README.md CHANGED
@@ -4,6 +4,14 @@ Phone-native Azure Communication Services client that puts a MentraOS wearer int
4
4
  Microsoft Teams meeting as a guest. The glasses provide the camera and the microphone;
5
5
  the phone does all the WebRTC and ACS work.
6
6
 
7
+ ## Host setup
8
+
9
+ Add `"@mentra/acs-meeting"` to the host's Expo `plugins` list, including when
10
+ this module is installed through `@mentra/engine`, then run Expo prebuild for
11
+ the target platform. The plugin enables Android core library desugaring and
12
+ builds `AzureCommunicationCommon` as the framework required by ACS on iOS.
13
+ These requirements apply even when the host does not use Crust or Mapbox.
14
+
7
15
  The phone is a **relay, not a capture device**. It subscribes to whatever the glasses
8
16
  already published to Cloudflare, decodes it, and re-publishes it into ACS. No frame
9
17
  crosses the JavaScript bridge. Production never generates pixels on the phone.
package/app.plugin.js CHANGED
@@ -1,5 +1,9 @@
1
- const {withPodfile} = require("expo/config-plugins")
2
- const {mergeContents} = require("@expo/config-plugins/build/utils/generateCode")
1
+ const {withAppBuildGradle, withPodfile} = require("expo/config-plugins")
2
+ const {
3
+ createGeneratedHeaderComment,
4
+ mergeContents,
5
+ removeGeneratedContents,
6
+ } = require("@expo/config-plugins/build/utils/generateCode")
3
7
 
4
8
  // Calling is a vendored dynamic framework: its umbrella header and LC_LOAD_DYLIB
5
9
  // both require Common.framework. Expo otherwise builds Common as a static library.
@@ -16,6 +20,31 @@ const commonFramework = ` installer.pod_targets.each do |pod|
16
20
  end`
17
21
 
18
22
  module.exports = function withAcsMeeting(config) {
23
+ config = withAppBuildGradle(config, (config) => {
24
+ if (config.modResults.language !== "groovy") {
25
+ throw new Error("@mentra/acs-meeting requires a Groovy app/build.gradle")
26
+ }
27
+ // A library cannot enable desugaring for its consuming app. Keep this
28
+ // requirement with ACS, including hosts that do not use the Crust plugin.
29
+ const tag = "acs-core-library-desugaring"
30
+ const contents = removeGeneratedContents(config.modResults.contents, tag) ?? config.modResults.contents
31
+ const desugaring = `android {
32
+ compileOptions {
33
+ coreLibraryDesugaringEnabled true
34
+ }
35
+ }
36
+ dependencies {
37
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
38
+ }`
39
+ config.modResults.contents = [
40
+ contents.trimEnd(),
41
+ createGeneratedHeaderComment(desugaring, tag, "//"),
42
+ desugaring,
43
+ `// @generated end ${tag}`,
44
+ "",
45
+ ].join("\n")
46
+ return config
47
+ })
19
48
  return withPodfile(config, (config) => {
20
49
  let contents = config.modResults.contents
21
50
  const hook = /^\s*pre_install do \|installer\|\s*$/m
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mentra/acs-meeting",
3
- "version": "3.2.0-dev.136",
3
+ "version": "3.2.0-dev.137",
4
4
  "description": "MentraOS native ACS Teams meeting module (WHEP decode → ACS raw media)",
5
5
  "main": "build/index.js",
6
6
  "react-native": "src/index.ts",