@npaw/forge-react-native 9.7.0 → 9.7.2
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/NPAWForgeReactNative.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/npaw/forge/reactnative/ForgeDtoMapper.java +10 -0
- package/android/src/main/java/com/npaw/forge/reactnative/ForgeInstanceRegistry.java +59 -1
- package/android/src/main/java/com/npaw/forge/reactnative/NPAWForgeModule.java +33 -0
- package/android/src/test/java/com/npaw/forge/reactnative/ForgeInstanceRegistryTest.java +65 -0
- package/app.plugin.js +17 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/Info.plist +9 -9
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64/Headers/forge_kernelFFI.h +71 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64/libForgeKernelFFI.a +0 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64_x86_64-simulator/Headers/forge_kernelFFI.h +71 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64_x86_64-simulator/libForgeKernelFFI.a +0 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64/Headers/forge_kernelFFI.h +71 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64/libForgeKernelFFI.a +0 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/Headers/forge_kernelFFI.h +71 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/libForgeKernelFFI.a +0 -0
- package/ios/ForgeApple/Sources/ForgeKernelUniFFI/forge_kernel.swift +198 -1
- package/ios/ForgeApple/Sources/ForgeKernelUniFFI/forge_kernelFFI.h +71 -0
- package/ios/ForgeApple/Sources/NPAWForgeAVPlayerAdapter/AVPlayerAdapter.swift +12 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/ConnectionType.swift +125 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeApple.swift +67 -1
- package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeCapturePlan.swift +4 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeLogging.swift +80 -3
- package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeRuntime.swift +44 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/LocationObserver.swift +183 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/NPAWForge.swift +123 -2
- package/ios/ForgeApple/Sources/NPAWForgeCore/NativeUniFFIRuntime.swift +59 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/PlayerAdapter.swift +17 -1
- package/ios/ForgeApple/Sources/NPAWForgeCore/VideoAdapter.swift +13 -4
- package/ios/ForgeInstanceRegistry.swift +69 -0
- package/ios/ForgeModuleImpl.swift +53 -6
- package/ios/NPAWForgeTurboModule.mm +6 -1
- package/package.json +3 -1
- package/plugin/index.js +82 -0
- package/plugin/mutations.js +140 -0
- package/src/NPAWForge.ts +12 -1
- package/src/events.ts +21 -1
- package/src/index.ts +11 -1
- package/src/sections.ts +292 -0
- package/src/types.ts +23 -2
|
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
|
|
|
21
21
|
s.homepage = "https://npaw.com"
|
|
22
22
|
s.license = { :type => "Commercial", :text => "Copyright (C) NPAW - All Rights Reserved" }
|
|
23
23
|
s.authors = { "Victor Soto" => "victor.soto@nicepeopleatwork.com" }
|
|
24
|
-
s.platforms = { :ios => "13.0" }
|
|
24
|
+
s.platforms = { :ios => "13.0", :tvos => "13.0" }
|
|
25
25
|
s.source = { :path => "." }
|
|
26
26
|
|
|
27
27
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
package/android/build.gradle
CHANGED
|
@@ -28,7 +28,7 @@ def safeExtGet(prop, fallback) {
|
|
|
28
28
|
// FORGE_CORE_VERSION (see scripts/react-native/hydrate-natives.sh).
|
|
29
29
|
def forgeCoreVersion = project.hasProperty('NpawForge_forgeCoreVersion')
|
|
30
30
|
? project.property('NpawForge_forgeCoreVersion')
|
|
31
|
-
: (System.getenv('FORGE_CORE_VERSION') ?: '9.7.
|
|
31
|
+
: (System.getenv('FORGE_CORE_VERSION') ?: '9.7.2')
|
|
32
32
|
|
|
33
33
|
android {
|
|
34
34
|
namespace 'com.npaw.forge.reactnative'
|
|
@@ -22,6 +22,7 @@ import com.facebook.react.bridge.WritableMap;
|
|
|
22
22
|
import com.npaw.forge.android.NPAWForge;
|
|
23
23
|
import com.npaw.forge.android.core.ForgeOutcome;
|
|
24
24
|
import com.npaw.forge.android.core.ForgeRecordedEvent;
|
|
25
|
+
import com.npaw.forge.android.core.ForgeRenderedLog;
|
|
25
26
|
import com.npaw.forge.android.network.NetworkRequestOutcome;
|
|
26
27
|
import com.npaw.forge.android.network.NetworkRequestRecord;
|
|
27
28
|
import com.npaw.forge.android.network.NetworkRequestSource;
|
|
@@ -220,6 +221,15 @@ public final class ForgeDtoMapper {
|
|
|
220
221
|
return result;
|
|
221
222
|
}
|
|
222
223
|
|
|
224
|
+
public static WritableMap renderedLogToMap(String instanceId, ForgeRenderedLog log) {
|
|
225
|
+
WritableMap result = Arguments.createMap();
|
|
226
|
+
result.putString("instanceId", instanceId);
|
|
227
|
+
result.putString("level", log.getLevel().getWireName());
|
|
228
|
+
result.putString("tag", log.getTag());
|
|
229
|
+
result.putString("message", log.getMessage());
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
|
|
223
233
|
public static WritableMap snapshotToMap(String instanceId, List<ForgeRecordedEvent> events) {
|
|
224
234
|
WritableArray items = Arguments.createArray();
|
|
225
235
|
for (ForgeRecordedEvent event : events) {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
*
|
|
11
11
|
* @author: Victor Soto <victor.soto@nicepeopleatwork.com>
|
|
12
|
-
* @description:
|
|
12
|
+
* @description: Public lookup from a React Native instance id to the live NPAWForge facade, so application code can attach a native adapter to a player the shipped packages do not cover. Written in Java so the module compiles under any host-app Kotlin version despite the Kotlin-2.3-built Forge AAR.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
package com.npaw.forge.reactnative;
|
|
@@ -23,36 +23,94 @@ import java.util.Map;
|
|
|
23
23
|
import java.util.concurrent.ConcurrentHashMap;
|
|
24
24
|
import androidx.annotation.Nullable;
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Resolves the native Forge facade behind a React Native instance id.
|
|
28
|
+
*
|
|
29
|
+
* <p><b>{@link #resolve} and {@link #resolveVideoAdapter} are public API</b> and
|
|
30
|
+
* carry the usual stability commitment: they will not be renamed or removed
|
|
31
|
+
* without a major version and a release note. The remaining methods are
|
|
32
|
+
* lifecycle plumbing owned by the module — they are {@code public} only because
|
|
33
|
+
* the video package lives in a different Java package, and application code
|
|
34
|
+
* must not call them.
|
|
35
|
+
*
|
|
36
|
+
* <p>This exists because the React Native packages bind two players — Media3
|
|
37
|
+
* here and AVPlayer on Apple, both through {@code react-native-video} — while
|
|
38
|
+
* Forge ships native adapters for many more. Rather than wait for a first-party
|
|
39
|
+
* package per player, application code can host its own native view, resolve
|
|
40
|
+
* the facade from the instance id it already has in JS, and attach any Forge
|
|
41
|
+
* adapter to it.
|
|
42
|
+
*
|
|
43
|
+
* <p>The React Native design deliberately keeps native player instances off the
|
|
44
|
+
* bridge, and this does not weaken that: only the opaque instance id crosses
|
|
45
|
+
* it. Resolution and attachment happen entirely in native code.
|
|
46
|
+
*
|
|
47
|
+
* <pre>{@code
|
|
48
|
+
* NPAWForge forge = ForgeInstanceRegistry.resolve(instanceId);
|
|
49
|
+
* if (forge == null) return;
|
|
50
|
+
* VideoAdapter video = forge.getVideoAdapter(null);
|
|
51
|
+
* if (video != null) video.setPlayerAdapter(new MyPlayerAdapter(player));
|
|
52
|
+
* }</pre>
|
|
53
|
+
*
|
|
54
|
+
* <p>Detach symmetrically when the view goes away — the registry holds the
|
|
55
|
+
* facade, not your player, and it will not release the adapter for you.
|
|
56
|
+
*
|
|
57
|
+
* <p>Writing a native view puts the Forge native API on the application's
|
|
58
|
+
* compile classpath. The Forge AARs carry Kotlin 2.3 metadata, so applications
|
|
59
|
+
* compiling Kotlin below 2.2 need {@code -Xskip-metadata-version-check}.
|
|
60
|
+
*
|
|
61
|
+
* <p>The Apple counterpart is {@code ForgeInstanceRegistry} in
|
|
62
|
+
* {@code @npaw/forge-react-native} and carries the same two members with the
|
|
63
|
+
* same meaning.
|
|
64
|
+
*/
|
|
26
65
|
public final class ForgeInstanceRegistry {
|
|
27
66
|
|
|
28
67
|
private static final ConcurrentHashMap<String, NPAWForge> INSTANCES = new ConcurrentHashMap<>();
|
|
29
68
|
|
|
30
69
|
private ForgeInstanceRegistry() {}
|
|
31
70
|
|
|
71
|
+
/** Module-internal lifecycle. Not public API; do not call from application code. */
|
|
32
72
|
public static void register(String instanceId, NPAWForge forge) {
|
|
33
73
|
INSTANCES.put(instanceId, forge);
|
|
34
74
|
}
|
|
35
75
|
|
|
76
|
+
/** Module-internal lifecycle. Not public API; do not call from application code. */
|
|
36
77
|
@Nullable
|
|
37
78
|
public static NPAWForge remove(String instanceId) {
|
|
38
79
|
return INSTANCES.remove(instanceId);
|
|
39
80
|
}
|
|
40
81
|
|
|
82
|
+
/**
|
|
83
|
+
* The live facade for {@code instanceId}, or {@code null} if no such instance
|
|
84
|
+
* exists or it has already been destroyed.
|
|
85
|
+
*
|
|
86
|
+
* <p>Public API.
|
|
87
|
+
*/
|
|
41
88
|
@Nullable
|
|
42
89
|
public static NPAWForge resolve(String instanceId) {
|
|
43
90
|
return INSTANCES.get(instanceId);
|
|
44
91
|
}
|
|
45
92
|
|
|
93
|
+
/**
|
|
94
|
+
* The video adapter registered under {@code identifier} on the instance's
|
|
95
|
+
* facade, or {@code null} if either the instance or the adapter is absent.
|
|
96
|
+
*
|
|
97
|
+
* <p>Pass {@code null} for {@code identifier} to get the default adapter,
|
|
98
|
+
* matching {@code NPAWForge.getVideoAdapter(String)}.
|
|
99
|
+
*
|
|
100
|
+
* <p>Public API.
|
|
101
|
+
*/
|
|
46
102
|
@Nullable
|
|
47
103
|
public static VideoAdapter resolveVideoAdapter(String instanceId, @Nullable String identifier) {
|
|
48
104
|
NPAWForge forge = INSTANCES.get(instanceId);
|
|
49
105
|
return forge == null ? null : forge.getVideoAdapter(identifier);
|
|
50
106
|
}
|
|
51
107
|
|
|
108
|
+
/** Module-internal lifecycle. Not public API; do not call from application code. */
|
|
52
109
|
public static Map<String, NPAWForge> snapshot() {
|
|
53
110
|
return new HashMap<>(INSTANCES);
|
|
54
111
|
}
|
|
55
112
|
|
|
113
|
+
/** Module-internal lifecycle. Not public API; do not call from application code. */
|
|
56
114
|
public static List<NPAWForge> clear() {
|
|
57
115
|
List<NPAWForge> live = new ArrayList<>(INSTANCES.values());
|
|
58
116
|
INSTANCES.clear();
|
|
@@ -25,6 +25,7 @@ import com.npaw.forge.android.NPAWForge;
|
|
|
25
25
|
import com.npaw.forge.android.core.ForgeEventSubscription;
|
|
26
26
|
import com.npaw.forge.android.core.ForgeOutcome;
|
|
27
27
|
import com.npaw.forge.android.core.ForgeRecordedEvent;
|
|
28
|
+
import com.npaw.forge.android.core.ForgeRenderedLog;
|
|
28
29
|
import com.npaw.forge.android.video.ManualAdReporter;
|
|
29
30
|
import com.npaw.forge.android.video.VideoAdapter;
|
|
30
31
|
import com.npaw.forge.android.video.VideoOptions;
|
|
@@ -36,6 +37,12 @@ public class NPAWForgeModule extends NativeNPAWForgeSpec {
|
|
|
36
37
|
|
|
37
38
|
public static final String NAME = "NPAWForgeRN";
|
|
38
39
|
public static final String FORGE_EVENT_CHANNEL = "NPAWForgeEvent";
|
|
40
|
+
public static final String FORGE_LOG_CHANNEL = "NPAWForgeLog";
|
|
41
|
+
/**
|
|
42
|
+
* Declared to the native facade so React Native traffic is distinguishable in
|
|
43
|
+
* {@code pluginInfo}; the reported platform stays {@code android}.
|
|
44
|
+
*/
|
|
45
|
+
private static final String FRAMEWORK_MARKER = "react-native";
|
|
39
46
|
private static final String E_UNKNOWN_INSTANCE = "E_FORGE_UNKNOWN_INSTANCE";
|
|
40
47
|
private static final String E_UNKNOWN_REPORTER = "E_FORGE_UNKNOWN_REPORTER";
|
|
41
48
|
private static final String E_BAD_ARGUMENT = "E_FORGE_BAD_ARGUMENT";
|
|
@@ -54,6 +61,8 @@ public class NPAWForgeModule extends NativeNPAWForgeSpec {
|
|
|
54
61
|
|
|
55
62
|
private final ConcurrentHashMap<String, ForgeEventSubscription> eventSubscriptions =
|
|
56
63
|
new ConcurrentHashMap<>();
|
|
64
|
+
private final ConcurrentHashMap<String, ForgeEventSubscription> logSubscriptions =
|
|
65
|
+
new ConcurrentHashMap<>();
|
|
57
66
|
private final ConcurrentHashMap<Integer, ManualAdReporter> adReporters = new ConcurrentHashMap<>();
|
|
58
67
|
private final AtomicInteger nextInstanceId = new AtomicInteger(1);
|
|
59
68
|
private final AtomicInteger nextReporterId = new AtomicInteger(1);
|
|
@@ -82,6 +91,8 @@ public class NPAWForgeModule extends NativeNPAWForgeSpec {
|
|
|
82
91
|
appContext instanceof Application
|
|
83
92
|
? new NPAWForge.Builder((Application) appContext, accountCode)
|
|
84
93
|
: new NPAWForge.Builder(accountCode);
|
|
94
|
+
// The binding knows what it is; this is not a host-settable config key.
|
|
95
|
+
builder.setFramework(FRAMEWORK_MARKER);
|
|
85
96
|
ForgeDtoMapper.applyConfig(builder, config);
|
|
86
97
|
NPAWForge forge = builder.build();
|
|
87
98
|
String instanceId = "forge-" + nextInstanceId.getAndIncrement();
|
|
@@ -106,6 +117,10 @@ public class NPAWForgeModule extends NativeNPAWForgeSpec {
|
|
|
106
117
|
if (subscription != null) {
|
|
107
118
|
subscription.cancel();
|
|
108
119
|
}
|
|
120
|
+
ForgeEventSubscription logSubscription = logSubscriptions.remove(instanceId);
|
|
121
|
+
if (logSubscription != null) {
|
|
122
|
+
logSubscription.cancel();
|
|
123
|
+
}
|
|
109
124
|
promise.resolve(ForgeDtoMapper.outcomeToMap(forge.destroy()));
|
|
110
125
|
}
|
|
111
126
|
|
|
@@ -664,11 +679,19 @@ public class NPAWForgeModule extends NativeNPAWForgeSpec {
|
|
|
664
679
|
subscription.cancel();
|
|
665
680
|
}
|
|
666
681
|
eventSubscriptions.clear();
|
|
682
|
+
for (ForgeEventSubscription subscription : logSubscriptions.values()) {
|
|
683
|
+
subscription.cancel();
|
|
684
|
+
}
|
|
685
|
+
logSubscriptions.clear();
|
|
667
686
|
}
|
|
668
687
|
|
|
669
688
|
private void subscribeInstanceEvents(final String instanceId, NPAWForge forge) {
|
|
670
689
|
eventSubscriptions.computeIfAbsent(
|
|
671
690
|
instanceId, key -> forge.subscribeEvents((event, outcome) -> emitForgeEvent(instanceId, event)));
|
|
691
|
+
// The kernel's decision log rides its own channel: it is not an event, and
|
|
692
|
+
// hosts subscribe to it separately.
|
|
693
|
+
logSubscriptions.computeIfAbsent(
|
|
694
|
+
instanceId, key -> forge.addLogListener(log -> emitForgeLog(instanceId, log)));
|
|
672
695
|
}
|
|
673
696
|
|
|
674
697
|
private void emitForgeEvent(String instanceId, ForgeRecordedEvent event) {
|
|
@@ -681,6 +704,16 @@ public class NPAWForgeModule extends NativeNPAWForgeSpec {
|
|
|
681
704
|
.emit(FORGE_EVENT_CHANNEL, ForgeDtoMapper.recordedEventToMap(instanceId, event));
|
|
682
705
|
}
|
|
683
706
|
|
|
707
|
+
private void emitForgeLog(String instanceId, ForgeRenderedLog log) {
|
|
708
|
+
ReactApplicationContext context = getReactApplicationContext();
|
|
709
|
+
if (!context.hasActiveReactInstance()) {
|
|
710
|
+
return;
|
|
711
|
+
}
|
|
712
|
+
context
|
|
713
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
714
|
+
.emit(FORGE_LOG_CHANNEL, ForgeDtoMapper.renderedLogToMap(instanceId, log));
|
|
715
|
+
}
|
|
716
|
+
|
|
684
717
|
@Nullable
|
|
685
718
|
private NPAWForge resolveOrReject(String instanceId, Promise promise) {
|
|
686
719
|
NPAWForge forge = ForgeInstanceRegistry.resolve(instanceId);
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) NPAW - All Rights Reserved
|
|
3
|
+
*
|
|
4
|
+
* This source code is protected under international copyright law. All rights
|
|
5
|
+
* reserved and protected by the copyright holders.
|
|
6
|
+
* This file is confidential and only available to authorized individuals with the
|
|
7
|
+
* permission of the copyright holders. If you encounter this file and do not have
|
|
8
|
+
* permission, please contact the copyright holders and delete this file.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @author: Victor Soto <victor.soto@nicepeopleatwork.com>
|
|
12
|
+
* @description: JVM unit tests pinning the ForgeInstanceRegistry lookup contract integrators build against - a stale or unknown instance id must yield null rather than throwing.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
package com.npaw.forge.reactnative;
|
|
16
|
+
|
|
17
|
+
import static org.junit.Assert.assertNull;
|
|
18
|
+
import static org.junit.Assert.assertTrue;
|
|
19
|
+
|
|
20
|
+
import org.junit.Test;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* These pin the null behaviour of the two members declared public API in the
|
|
24
|
+
* surface contract.
|
|
25
|
+
*
|
|
26
|
+
* <p>That is the part integrators actually depend on. They hold an instance id
|
|
27
|
+
* that came over the bridge from JS, and by the time their native view resolves
|
|
28
|
+
* it the instance may already have been destroyed. The documented answer is
|
|
29
|
+
* {@code null}; a throw there would crash the host app from inside a view
|
|
30
|
+
* lifecycle callback, which is the worst place to surface it.
|
|
31
|
+
*
|
|
32
|
+
* <p>Deliberately absent: a register/resolve round-trip. Storing a facade means
|
|
33
|
+
* constructing one, and {@code NPAWForge.Builder.build()} loads the native
|
|
34
|
+
* runtime, which is not available to a JVM unit test - {@link
|
|
35
|
+
* ForgeDtoMapperTest} exercises the Builder for the same reason but stops short
|
|
36
|
+
* of {@code build()}. Round-trip coverage belongs in an instrumented test on a
|
|
37
|
+
* device, where a real facade exists.
|
|
38
|
+
*/
|
|
39
|
+
public class ForgeInstanceRegistryTest {
|
|
40
|
+
|
|
41
|
+
@Test
|
|
42
|
+
public void resolveReturnsNullForAnIdThatWasNeverRegistered() {
|
|
43
|
+
assertNull(ForgeInstanceRegistry.resolve("forge-does-not-exist"));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@Test
|
|
47
|
+
public void resolveVideoAdapterReturnsNullForAnUnknownInstanceInsteadOfThrowing() {
|
|
48
|
+
// The registry must not dereference a missing facade. This is the call an
|
|
49
|
+
// integrator makes first, so it is the one most likely to meet a stale id.
|
|
50
|
+
assertNull(ForgeInstanceRegistry.resolveVideoAdapter("forge-does-not-exist", null));
|
|
51
|
+
assertNull(ForgeInstanceRegistry.resolveVideoAdapter("forge-does-not-exist", "named"));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@Test
|
|
55
|
+
public void removeReturnsNullForAnUnknownInstance() {
|
|
56
|
+
assertNull(ForgeInstanceRegistry.remove("forge-never-registered"));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@Test
|
|
60
|
+
public void snapshotOfAnEmptyRegistryIsEmptyAndDetached() {
|
|
61
|
+
// snapshot() is module-internal, but it is the only way to assert the
|
|
62
|
+
// registry starts clean without constructing a facade.
|
|
63
|
+
assertTrue(ForgeInstanceRegistry.snapshot().isEmpty());
|
|
64
|
+
}
|
|
65
|
+
}
|
package/app.plugin.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) NPAW - All Rights Reserved
|
|
3
|
+
*
|
|
4
|
+
* This source code is protected under international copyright law. All rights
|
|
5
|
+
* reserved and protected by the copyright holders.
|
|
6
|
+
* This file is confidential and only available to authorized individuals with the
|
|
7
|
+
* permission of the copyright holders. If you encounter this file and do not have
|
|
8
|
+
* permission, please contact the copyright holders and delete this file.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @author: Victor Soto <victor.soto@nicepeopleatwork.com>
|
|
12
|
+
* @description: Expo config plugin entry point; Expo resolves this exact filename at the package root.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
'use strict';
|
|
16
|
+
|
|
17
|
+
module.exports = require('./plugin');
|
|
@@ -10,16 +10,15 @@
|
|
|
10
10
|
<key>HeadersPath</key>
|
|
11
11
|
<string>Headers</string>
|
|
12
12
|
<key>LibraryIdentifier</key>
|
|
13
|
-
<string>
|
|
13
|
+
<string>tvos-arm64-simulator</string>
|
|
14
14
|
<key>LibraryPath</key>
|
|
15
15
|
<string>libForgeKernelFFI.a</string>
|
|
16
16
|
<key>SupportedArchitectures</key>
|
|
17
17
|
<array>
|
|
18
18
|
<string>arm64</string>
|
|
19
|
-
<string>x86_64</string>
|
|
20
19
|
</array>
|
|
21
20
|
<key>SupportedPlatform</key>
|
|
22
|
-
<string>
|
|
21
|
+
<string>tvos</string>
|
|
23
22
|
<key>SupportedPlatformVariant</key>
|
|
24
23
|
<string>simulator</string>
|
|
25
24
|
</dict>
|
|
@@ -29,7 +28,7 @@
|
|
|
29
28
|
<key>HeadersPath</key>
|
|
30
29
|
<string>Headers</string>
|
|
31
30
|
<key>LibraryIdentifier</key>
|
|
32
|
-
<string>
|
|
31
|
+
<string>ios-arm64</string>
|
|
33
32
|
<key>LibraryPath</key>
|
|
34
33
|
<string>libForgeKernelFFI.a</string>
|
|
35
34
|
<key>SupportedArchitectures</key>
|
|
@@ -37,7 +36,7 @@
|
|
|
37
36
|
<string>arm64</string>
|
|
38
37
|
</array>
|
|
39
38
|
<key>SupportedPlatform</key>
|
|
40
|
-
<string>
|
|
39
|
+
<string>ios</string>
|
|
41
40
|
</dict>
|
|
42
41
|
<dict>
|
|
43
42
|
<key>BinaryPath</key>
|
|
@@ -45,15 +44,16 @@
|
|
|
45
44
|
<key>HeadersPath</key>
|
|
46
45
|
<string>Headers</string>
|
|
47
46
|
<key>LibraryIdentifier</key>
|
|
48
|
-
<string>
|
|
47
|
+
<string>ios-arm64_x86_64-simulator</string>
|
|
49
48
|
<key>LibraryPath</key>
|
|
50
49
|
<string>libForgeKernelFFI.a</string>
|
|
51
50
|
<key>SupportedArchitectures</key>
|
|
52
51
|
<array>
|
|
53
52
|
<string>arm64</string>
|
|
53
|
+
<string>x86_64</string>
|
|
54
54
|
</array>
|
|
55
55
|
<key>SupportedPlatform</key>
|
|
56
|
-
<string>
|
|
56
|
+
<string>ios</string>
|
|
57
57
|
<key>SupportedPlatformVariant</key>
|
|
58
58
|
<string>simulator</string>
|
|
59
59
|
</dict>
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
<key>HeadersPath</key>
|
|
64
64
|
<string>Headers</string>
|
|
65
65
|
<key>LibraryIdentifier</key>
|
|
66
|
-
<string>
|
|
66
|
+
<string>tvos-arm64</string>
|
|
67
67
|
<key>LibraryPath</key>
|
|
68
68
|
<string>libForgeKernelFFI.a</string>
|
|
69
69
|
<key>SupportedArchitectures</key>
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<string>arm64</string>
|
|
72
72
|
</array>
|
|
73
73
|
<key>SupportedPlatform</key>
|
|
74
|
-
<string>
|
|
74
|
+
<string>tvos</string>
|
|
75
75
|
</dict>
|
|
76
76
|
</array>
|
|
77
77
|
<key>CFBundlePackageType</key>
|
|
@@ -256,6 +256,13 @@ typedef void (*UniffiCallbackInterfaceAppleContentMetadataProviderMethod0)(uint6
|
|
|
256
256
|
RustCallStatus *_Nonnull uniffiCallStatus
|
|
257
257
|
);
|
|
258
258
|
|
|
259
|
+
#endif
|
|
260
|
+
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_APPLE_LOG_LISTENER_METHOD0
|
|
261
|
+
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_APPLE_LOG_LISTENER_METHOD0
|
|
262
|
+
typedef void (*UniffiCallbackInterfaceAppleLogListenerMethod0)(uint64_t, RustBuffer, void* _Nonnull,
|
|
263
|
+
RustCallStatus *_Nonnull uniffiCallStatus
|
|
264
|
+
);
|
|
265
|
+
|
|
259
266
|
#endif
|
|
260
267
|
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_APPLE_SESSION_PRE_SEND_HOOK_METHOD0
|
|
261
268
|
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_APPLE_SESSION_PRE_SEND_HOOK_METHOD0
|
|
@@ -288,6 +295,15 @@ typedef struct UniffiVTableCallbackInterfaceAppleContentMetadataProvider {
|
|
|
288
295
|
UniffiCallbackInterfaceAppleContentMetadataProviderMethod0 _Nonnull metadataSnapshot;
|
|
289
296
|
} UniffiVTableCallbackInterfaceAppleContentMetadataProvider;
|
|
290
297
|
|
|
298
|
+
#endif
|
|
299
|
+
#ifndef UNIFFI_FFIDEF_V_TABLE_CALLBACK_INTERFACE_APPLE_LOG_LISTENER
|
|
300
|
+
#define UNIFFI_FFIDEF_V_TABLE_CALLBACK_INTERFACE_APPLE_LOG_LISTENER
|
|
301
|
+
typedef struct UniffiVTableCallbackInterfaceAppleLogListener {
|
|
302
|
+
UniffiCallbackInterfaceFree _Nonnull uniffiFree;
|
|
303
|
+
UniffiCallbackInterfaceClone _Nonnull uniffiClone;
|
|
304
|
+
UniffiCallbackInterfaceAppleLogListenerMethod0 _Nonnull onLog;
|
|
305
|
+
} UniffiVTableCallbackInterfaceAppleLogListener;
|
|
306
|
+
|
|
291
307
|
#endif
|
|
292
308
|
#ifndef UNIFFI_FFIDEF_V_TABLE_CALLBACK_INTERFACE_APPLE_SESSION_PRE_SEND_HOOK
|
|
293
309
|
#define UNIFFI_FFIDEF_V_TABLE_CALLBACK_INTERFACE_APPLE_SESSION_PRE_SEND_HOOK
|
|
@@ -337,6 +353,11 @@ RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_clear_capture
|
|
|
337
353
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_clear_content_metadata_provider(uint64_t ptr, uint64_t view_id, RustCallStatus *_Nonnull out_status
|
|
338
354
|
);
|
|
339
355
|
#endif
|
|
356
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_CLEAR_LOG_LISTENER
|
|
357
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_CLEAR_LOG_LISTENER
|
|
358
|
+
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_clear_log_listener(uint64_t ptr, RustCallStatus *_Nonnull out_status
|
|
359
|
+
);
|
|
360
|
+
#endif
|
|
340
361
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_CLEAR_SESSION_PRE_SEND_HOOK
|
|
341
362
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_CLEAR_SESSION_PRE_SEND_HOOK
|
|
342
363
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_clear_session_pre_send_hook(uint64_t ptr, RustCallStatus *_Nonnull out_status
|
|
@@ -372,6 +393,11 @@ RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_record_applic
|
|
|
372
393
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_record_identity_event(uint64_t ptr, RustBuffer kind, uint64_t timemark_ms, RustBuffer fields, RustCallStatus *_Nonnull out_status
|
|
373
394
|
);
|
|
374
395
|
#endif
|
|
396
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_RECORD_LOCATION_FIX
|
|
397
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_RECORD_LOCATION_FIX
|
|
398
|
+
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_record_location_fix(uint64_t ptr, double latitude, double longitude, double accuracy_m, uint64_t timestamp_ms, RustCallStatus *_Nonnull out_status
|
|
399
|
+
);
|
|
400
|
+
#endif
|
|
375
401
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_RECORD_NETWORK_EVENT
|
|
376
402
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_RECORD_NETWORK_EVENT
|
|
377
403
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_record_network_event(uint64_t ptr, RustBuffer observation, RustCallStatus *_Nonnull out_status
|
|
@@ -387,6 +413,11 @@ RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_record_player
|
|
|
387
413
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_record_session_event(uint64_t ptr, RustBuffer event_name, uint64_t timemark_ms, RustBuffer params, RustCallStatus *_Nonnull out_status
|
|
388
414
|
);
|
|
389
415
|
#endif
|
|
416
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_AUTO_CONNECTION_TYPE
|
|
417
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_AUTO_CONNECTION_TYPE
|
|
418
|
+
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_set_auto_connection_type(uint64_t ptr, RustBuffer connection_type, RustCallStatus *_Nonnull out_status
|
|
419
|
+
);
|
|
420
|
+
#endif
|
|
390
421
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_CAPTURE_PLAN_LISTENER
|
|
391
422
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_CAPTURE_PLAN_LISTENER
|
|
392
423
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_set_capture_plan_listener(uint64_t ptr, uint64_t listener, RustCallStatus *_Nonnull out_status
|
|
@@ -402,6 +433,11 @@ RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_set_content_m
|
|
|
402
433
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_set_log_level(uint64_t ptr, RustBuffer log_level, RustCallStatus *_Nonnull out_status
|
|
403
434
|
);
|
|
404
435
|
#endif
|
|
436
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_LOG_LISTENER
|
|
437
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_LOG_LISTENER
|
|
438
|
+
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_set_log_listener(uint64_t ptr, uint64_t listener, RustCallStatus *_Nonnull out_status
|
|
439
|
+
);
|
|
440
|
+
#endif
|
|
405
441
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_SESSION_PRE_SEND_HOOK
|
|
406
442
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_METHOD_FORGERUNTIMEBRIDGE_SET_SESSION_PRE_SEND_HOOK
|
|
407
443
|
RustBuffer uniffi_forge_kernel_uniffi_fn_method_forgeruntimebridge_set_session_pre_send_hook(uint64_t ptr, uint64_t hook, RustCallStatus *_Nonnull out_status
|
|
@@ -432,6 +468,11 @@ void uniffi_forge_kernel_uniffi_fn_init_callback_vtable_applecaptureplanlistener
|
|
|
432
468
|
void uniffi_forge_kernel_uniffi_fn_init_callback_vtable_applecontentmetadataprovider(const UniffiVTableCallbackInterfaceAppleContentMetadataProvider* _Nonnull vtable
|
|
433
469
|
);
|
|
434
470
|
#endif
|
|
471
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_INIT_CALLBACK_VTABLE_APPLELOGLISTENER
|
|
472
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_INIT_CALLBACK_VTABLE_APPLELOGLISTENER
|
|
473
|
+
void uniffi_forge_kernel_uniffi_fn_init_callback_vtable_appleloglistener(const UniffiVTableCallbackInterfaceAppleLogListener* _Nonnull vtable
|
|
474
|
+
);
|
|
475
|
+
#endif
|
|
435
476
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_INIT_CALLBACK_VTABLE_APPLESESSIONPRESENDHOOK
|
|
436
477
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_FN_INIT_CALLBACK_VTABLE_APPLESESSIONPRESENDHOOK
|
|
437
478
|
void uniffi_forge_kernel_uniffi_fn_init_callback_vtable_applesessionpresendhook(const UniffiVTableCallbackInterfaceAppleSessionPreSendHook* _Nonnull vtable
|
|
@@ -730,6 +771,12 @@ uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_clear_cap
|
|
|
730
771
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_CLEAR_CONTENT_METADATA_PROVIDER
|
|
731
772
|
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_clear_content_metadata_provider(void
|
|
732
773
|
|
|
774
|
+
);
|
|
775
|
+
#endif
|
|
776
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_CLEAR_LOG_LISTENER
|
|
777
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_CLEAR_LOG_LISTENER
|
|
778
|
+
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_clear_log_listener(void
|
|
779
|
+
|
|
733
780
|
);
|
|
734
781
|
#endif
|
|
735
782
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_CLEAR_SESSION_PRE_SEND_HOOK
|
|
@@ -772,6 +819,12 @@ uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_record_ap
|
|
|
772
819
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_RECORD_IDENTITY_EVENT
|
|
773
820
|
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_record_identity_event(void
|
|
774
821
|
|
|
822
|
+
);
|
|
823
|
+
#endif
|
|
824
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_RECORD_LOCATION_FIX
|
|
825
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_RECORD_LOCATION_FIX
|
|
826
|
+
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_record_location_fix(void
|
|
827
|
+
|
|
775
828
|
);
|
|
776
829
|
#endif
|
|
777
830
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_RECORD_NETWORK_EVENT
|
|
@@ -790,6 +843,12 @@ uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_record_pl
|
|
|
790
843
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_RECORD_SESSION_EVENT
|
|
791
844
|
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_record_session_event(void
|
|
792
845
|
|
|
846
|
+
);
|
|
847
|
+
#endif
|
|
848
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_SET_AUTO_CONNECTION_TYPE
|
|
849
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_SET_AUTO_CONNECTION_TYPE
|
|
850
|
+
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_set_auto_connection_type(void
|
|
851
|
+
|
|
793
852
|
);
|
|
794
853
|
#endif
|
|
795
854
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_SET_CAPTURE_PLAN_LISTENER
|
|
@@ -808,6 +867,12 @@ uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_set_conte
|
|
|
808
867
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_SET_LOG_LEVEL
|
|
809
868
|
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_set_log_level(void
|
|
810
869
|
|
|
870
|
+
);
|
|
871
|
+
#endif
|
|
872
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_SET_LOG_LISTENER
|
|
873
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_SET_LOG_LISTENER
|
|
874
|
+
uint16_t uniffi_forge_kernel_uniffi_checksum_method_forgeruntimebridge_set_log_listener(void
|
|
875
|
+
|
|
811
876
|
);
|
|
812
877
|
#endif
|
|
813
878
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_FORGERUNTIMEBRIDGE_SET_SESSION_PRE_SEND_HOOK
|
|
@@ -850,6 +915,12 @@ uint16_t uniffi_forge_kernel_uniffi_checksum_method_applecaptureplanlistener_on_
|
|
|
850
915
|
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_APPLECONTENTMETADATAPROVIDER_METADATA_SNAPSHOT
|
|
851
916
|
uint16_t uniffi_forge_kernel_uniffi_checksum_method_applecontentmetadataprovider_metadata_snapshot(void
|
|
852
917
|
|
|
918
|
+
);
|
|
919
|
+
#endif
|
|
920
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_APPLELOGLISTENER_ON_LOG
|
|
921
|
+
#define UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_APPLELOGLISTENER_ON_LOG
|
|
922
|
+
uint16_t uniffi_forge_kernel_uniffi_checksum_method_appleloglistener_on_log(void
|
|
923
|
+
|
|
853
924
|
);
|
|
854
925
|
#endif
|
|
855
926
|
#ifndef UNIFFI_FFIDEF_UNIFFI_FORGE_KERNEL_UNIFFI_CHECKSUM_METHOD_APPLESESSIONPRESENDHOOK_WILL_SEND
|
|
Binary file
|