@npaw/forge-react-native 9.7.5 → 10.0.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 -1
- package/android/src/main/java/com/npaw/forge/reactnative/ForgeDtoMapper.java +3 -0
- package/android/src/main/java/com/npaw/forge/reactnative/NPAWForgeModule.java +10 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/Info.plist +4 -4
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64/Headers/forge_kernelFFI.h +11 -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 +11 -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 +11 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64/libForgeKernelFFI.a +0 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/Headers/forge_kernelFFI.h +11 -0
- package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/libForgeKernelFFI.a +0 -0
- package/ios/ForgeApple/Sources/ForgeKernelUniFFI/forge_kernel.swift +201 -12
- package/ios/ForgeApple/Sources/ForgeKernelUniFFI/forge_kernelFFI.h +11 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeApple.swift +48 -8
- package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeRuntime.swift +22 -2
- package/ios/ForgeApple/Sources/NPAWForgeCore/NPAWForge.swift +34 -2
- package/ios/ForgeApple/Sources/NPAWForgeCore/NativeUniFFIRuntime.swift +42 -7
- package/ios/ForgeApple/Sources/NPAWForgeCore/ObjectiveCWrappers.swift +14 -0
- package/ios/ForgeApple/Sources/NPAWForgeCore/VideoAdapter.swift +5 -5
- package/ios/ForgeApple/Sources/NPAWForgeCore/WireValue.swift +207 -0
- package/ios/ForgeModuleImpl.swift +33 -0
- package/ios/NPAWForgeTurboModule.mm +10 -0
- package/package.json +1 -1
- package/src/NPAWForge.ts +22 -0
- package/src/specs/NativeNPAWForge.ts +3 -0
- package/src/types.ts +8 -0
|
@@ -135,6 +135,16 @@ RCT_EXPORT_METHOD(trackSessionError : (NSString *)instanceId errorCode : (NSStri
|
|
|
135
135
|
[ForgeModuleImpl.shared trackSessionError:instanceId errorCode:errorCode errorMessage:errorMessage metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
RCT_EXPORT_METHOD(updateSession : (NSString *)instanceId metadata : (NSDictionary *)metadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
|
|
139
|
+
{
|
|
140
|
+
[ForgeModuleImpl.shared updateSession:instanceId metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
RCT_EXPORT_METHOD(updateSessionMetrics : (NSString *)instanceId metrics : (NSDictionary *)metrics resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
|
|
144
|
+
{
|
|
145
|
+
[ForgeModuleImpl.shared updateSessionMetrics:instanceId metrics:metrics resolve:resolve reject:ForgeMakeReject(reject)];
|
|
146
|
+
}
|
|
147
|
+
|
|
138
148
|
RCT_EXPORT_METHOD(loginSuccess : (NSString *)instanceId userId : (NSString *)userId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
|
|
139
149
|
{
|
|
140
150
|
[ForgeModuleImpl.shared loginSuccess:instanceId userId:userId options:options resolve:resolve reject:ForgeMakeReject(reject)];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@npaw/forge-react-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0",
|
|
4
4
|
"description": "NPAW Forge analytics for React Native: New Architecture TurboModule facade over the native Forge Android/Apple SDKs.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Victor Soto <victor.soto@nicepeopleatwork.com>",
|
package/src/NPAWForge.ts
CHANGED
|
@@ -77,6 +77,28 @@ export class NPAWForge {
|
|
|
77
77
|
return asOutcome(NativeNPAWForge.trackSessionError(this.instanceId, errorCode, errorMessage, metadata));
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/**
|
|
81
|
+
* Hot-updates session-level dimensions without a session boundary:
|
|
82
|
+
* `param1`..`param20` extraparams, `screenName`, or any dimension the NQS
|
|
83
|
+
* parameter registry marks updatable — new backend dimensions work without
|
|
84
|
+
* an SDK release. Identity keys are rejected (use the typed identity API);
|
|
85
|
+
* blank values are dropped because NQS never erases a session value.
|
|
86
|
+
* Requires the account's remote config to enable session updates.
|
|
87
|
+
*/
|
|
88
|
+
updateSession(metadata: ForgeParams): Promise<ForgeOutcome> {
|
|
89
|
+
return asOutcome(NativeNPAWForge.updateSession(this.instanceId, metadata));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Reports numeric session metrics (account-registered custom metrics).
|
|
94
|
+
* Values aggregate server-side per the account's registered operation and
|
|
95
|
+
* settle on the session close row; re-sending an unchanged value is a
|
|
96
|
+
* no-op. Same remote-config gating as `updateSession`.
|
|
97
|
+
*/
|
|
98
|
+
updateSessionMetrics(metrics: Record<string, number>): Promise<ForgeOutcome> {
|
|
99
|
+
return asOutcome(NativeNPAWForge.updateSessionMetrics(this.instanceId, metrics));
|
|
100
|
+
}
|
|
101
|
+
|
|
80
102
|
// ---- identity ----
|
|
81
103
|
|
|
82
104
|
loginSuccess(userId: string, options: ForgeParams = {}): Promise<ForgeOutcome> {
|
|
@@ -35,6 +35,9 @@ export interface Spec extends TurboModule {
|
|
|
35
35
|
metadata: UnsafeObject
|
|
36
36
|
): Promise<UnsafeObject>;
|
|
37
37
|
|
|
38
|
+
updateSession(instanceId: string, metadata: UnsafeObject): Promise<UnsafeObject>;
|
|
39
|
+
updateSessionMetrics(instanceId: string, metrics: UnsafeObject): Promise<UnsafeObject>;
|
|
40
|
+
|
|
38
41
|
// ---- identity ----
|
|
39
42
|
loginSuccess(instanceId: string, userId: string, options: UnsafeObject): Promise<UnsafeObject>;
|
|
40
43
|
loginFailed(instanceId: string, options: UnsafeObject): Promise<UnsafeObject>;
|
package/src/types.ts
CHANGED
|
@@ -83,6 +83,14 @@ export type ForgeConfig = {
|
|
|
83
83
|
processEventsBeforeSessionStart?: boolean;
|
|
84
84
|
preSessionEventQueueLimitEvents?: number;
|
|
85
85
|
preSessionEventQueueMaxAgeMs?: number;
|
|
86
|
+
/**
|
|
87
|
+
* Logout guard window in milliseconds (session-update mode only): after
|
|
88
|
+
* `logout()` closes the session, the kernel holds the replacement session
|
|
89
|
+
* back for this long so a follow-up `loginSuccess` attaches its own
|
|
90
|
+
* session directly; events raised inside the window are buffered with
|
|
91
|
+
* their original timestamps. `0` disables the guard. Default 30 000.
|
|
92
|
+
*/
|
|
93
|
+
logoutSessionGuardMs?: number;
|
|
86
94
|
allowLocalHttpForTesting?: boolean;
|
|
87
95
|
deviceUuid?: string;
|
|
88
96
|
autoDeviceIdentityEnabled?: boolean;
|