@reclaimprotocol/inapp-rn-sdk 0.7.3 → 0.8.3
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/InappRnSdk.podspec +1 -1
- package/README.md +7 -6
- package/android/build.gradle +1 -1
- package/android/generated/java/com/reclaimprotocol/inapp_rn_sdk/NativeInappRnSdkSpec.java +4 -0
- package/android/generated/jni/RNInappRnSdkSpec-generated.cpp +6 -0
- package/android/generated/jni/react/renderer/components/RNInappRnSdkSpec/RNInappRnSdkSpecJSI-generated.cpp +7 -0
- package/android/generated/jni/react/renderer/components/RNInappRnSdkSpec/RNInappRnSdkSpecJSI.h +95 -22
- package/android/src/main/java/com/reclaimprotocol/inapp_rn_sdk/InappRnSdkModule.kt +44 -9
- package/android/src/main/java/com/reclaimprotocol/inapp_rn_sdk/JsonExtension.kt +18 -0
- package/ios/InappRnSdk.mm +266 -138
- package/ios/generated/RNInappRnSdkSpec/RNInappRnSdkSpec-generated.mm +13 -0
- package/ios/generated/RNInappRnSdkSpec/RNInappRnSdkSpec.h +45 -10
- package/ios/generated/RNInappRnSdkSpecJSI-generated.cpp +7 -0
- package/ios/generated/RNInappRnSdkSpecJSI.h +95 -22
- package/ios/inapp_rn_sdk/Api.swift +322 -154
- package/lib/commonjs/index.js +36 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/NativeInappRnSdk.js.map +1 -1
- package/lib/module/index.js +36 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/NativeInappRnSdk.js.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +18 -2
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/specs/NativeInappRnSdk.d.ts +22 -2
- package/lib/typescript/commonjs/src/specs/NativeInappRnSdk.d.ts.map +1 -1
- package/lib/typescript/commonjs/user-workspace/src/App.d.ts +2 -0
- package/lib/typescript/commonjs/user-workspace/src/App.d.ts.map +1 -0
- package/lib/typescript/commonjs/user-workspace/src/App.overrides.d.ts +2 -0
- package/lib/typescript/commonjs/user-workspace/src/App.overrides.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +18 -2
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/specs/NativeInappRnSdk.d.ts +22 -2
- package/lib/typescript/module/src/specs/NativeInappRnSdk.d.ts.map +1 -1
- package/lib/typescript/module/user-workspace/src/App.d.ts +2 -0
- package/lib/typescript/module/user-workspace/src/App.d.ts.map +1 -0
- package/lib/typescript/module/user-workspace/src/App.overrides.d.ts +2 -0
- package/lib/typescript/module/user-workspace/src/App.overrides.d.ts.map +1 -0
- package/package.json +8 -7
- package/src/index.ts +59 -3
- package/src/specs/NativeInappRnSdk.ts +24 -2
|
@@ -23,6 +23,12 @@ static jsi::Value __hostFunction_NativeInappRnSdkCxxSpecJSI_startVerificationFro
|
|
|
23
23
|
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
|
+
static jsi::Value __hostFunction_NativeInappRnSdkCxxSpecJSI_startVerificationFromJson(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
27
|
+
return static_cast<NativeInappRnSdkCxxSpecJSI *>(&turboModule)->startVerificationFromJson(
|
|
28
|
+
rt,
|
|
29
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
|
30
|
+
);
|
|
31
|
+
}
|
|
26
32
|
static jsi::Value __hostFunction_NativeInappRnSdkCxxSpecJSI_setOverrides(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
27
33
|
return static_cast<NativeInappRnSdkCxxSpecJSI *>(&turboModule)->setOverrides(
|
|
28
34
|
rt,
|
|
@@ -66,6 +72,7 @@ NativeInappRnSdkCxxSpecJSI::NativeInappRnSdkCxxSpecJSI(std::shared_ptr<CallInvok
|
|
|
66
72
|
: TurboModule("InappRnSdk", jsInvoker) {
|
|
67
73
|
methodMap_["startVerification"] = MethodMetadata {1, __hostFunction_NativeInappRnSdkCxxSpecJSI_startVerification};
|
|
68
74
|
methodMap_["startVerificationFromUrl"] = MethodMetadata {1, __hostFunction_NativeInappRnSdkCxxSpecJSI_startVerificationFromUrl};
|
|
75
|
+
methodMap_["startVerificationFromJson"] = MethodMetadata {1, __hostFunction_NativeInappRnSdkCxxSpecJSI_startVerificationFromJson};
|
|
69
76
|
methodMap_["setOverrides"] = MethodMetadata {1, __hostFunction_NativeInappRnSdkCxxSpecJSI_setOverrides};
|
|
70
77
|
methodMap_["clearAllOverrides"] = MethodMetadata {0, __hostFunction_NativeInappRnSdkCxxSpecJSI_clearAllOverrides};
|
|
71
78
|
methodMap_["setVerificationOptions"] = MethodMetadata {1, __hostFunction_NativeInappRnSdkCxxSpecJSI_setVerificationOptions};
|
|
@@ -18,7 +18,7 @@ namespace facebook::react {
|
|
|
18
18
|
|
|
19
19
|
#pragma mark - NativeInappRnSdkFeatureOptions
|
|
20
20
|
|
|
21
|
-
template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
|
|
21
|
+
template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
|
|
22
22
|
struct NativeInappRnSdkFeatureOptions {
|
|
23
23
|
P0 cookiePersist;
|
|
24
24
|
P1 singleReclaimRequest;
|
|
@@ -26,8 +26,10 @@ struct NativeInappRnSdkFeatureOptions {
|
|
|
26
26
|
P3 sessionTimeoutForManualVerificationTrigger;
|
|
27
27
|
P4 attestorBrowserRpcUrl;
|
|
28
28
|
P5 isAIFlowEnabled;
|
|
29
|
+
P6 manualReviewMessage;
|
|
30
|
+
P7 loginPromptMessage;
|
|
29
31
|
bool operator==(const NativeInappRnSdkFeatureOptions &other) const {
|
|
30
|
-
return cookiePersist == other.cookiePersist && singleReclaimRequest == other.singleReclaimRequest && idleTimeThresholdForManualVerificationTrigger == other.idleTimeThresholdForManualVerificationTrigger && sessionTimeoutForManualVerificationTrigger == other.sessionTimeoutForManualVerificationTrigger && attestorBrowserRpcUrl == other.attestorBrowserRpcUrl && isAIFlowEnabled == other.isAIFlowEnabled;
|
|
32
|
+
return cookiePersist == other.cookiePersist && singleReclaimRequest == other.singleReclaimRequest && idleTimeThresholdForManualVerificationTrigger == other.idleTimeThresholdForManualVerificationTrigger && sessionTimeoutForManualVerificationTrigger == other.sessionTimeoutForManualVerificationTrigger && attestorBrowserRpcUrl == other.attestorBrowserRpcUrl && isAIFlowEnabled == other.isAIFlowEnabled && manualReviewMessage == other.manualReviewMessage && loginPromptMessage == other.loginPromptMessage;
|
|
31
33
|
}
|
|
32
34
|
};
|
|
33
35
|
|
|
@@ -45,7 +47,9 @@ struct NativeInappRnSdkFeatureOptionsBridging {
|
|
|
45
47
|
bridging::fromJs<decltype(types.idleTimeThresholdForManualVerificationTrigger)>(rt, value.getProperty(rt, "idleTimeThresholdForManualVerificationTrigger"), jsInvoker),
|
|
46
48
|
bridging::fromJs<decltype(types.sessionTimeoutForManualVerificationTrigger)>(rt, value.getProperty(rt, "sessionTimeoutForManualVerificationTrigger"), jsInvoker),
|
|
47
49
|
bridging::fromJs<decltype(types.attestorBrowserRpcUrl)>(rt, value.getProperty(rt, "attestorBrowserRpcUrl"), jsInvoker),
|
|
48
|
-
bridging::fromJs<decltype(types.isAIFlowEnabled)>(rt, value.getProperty(rt, "isAIFlowEnabled"), jsInvoker)
|
|
50
|
+
bridging::fromJs<decltype(types.isAIFlowEnabled)>(rt, value.getProperty(rt, "isAIFlowEnabled"), jsInvoker),
|
|
51
|
+
bridging::fromJs<decltype(types.manualReviewMessage)>(rt, value.getProperty(rt, "manualReviewMessage"), jsInvoker),
|
|
52
|
+
bridging::fromJs<decltype(types.loginPromptMessage)>(rt, value.getProperty(rt, "loginPromptMessage"), jsInvoker)};
|
|
49
53
|
return result;
|
|
50
54
|
}
|
|
51
55
|
|
|
@@ -73,6 +77,14 @@ struct NativeInappRnSdkFeatureOptionsBridging {
|
|
|
73
77
|
static std::optional<bool> isAIFlowEnabledToJs(jsi::Runtime &rt, decltype(types.isAIFlowEnabled) value) {
|
|
74
78
|
return bridging::toJs(rt, value);
|
|
75
79
|
}
|
|
80
|
+
|
|
81
|
+
static std::optional<jsi::String> manualReviewMessageToJs(jsi::Runtime &rt, decltype(types.manualReviewMessage) value) {
|
|
82
|
+
return bridging::toJs(rt, value);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static std::optional<jsi::String> loginPromptMessageToJs(jsi::Runtime &rt, decltype(types.loginPromptMessage) value) {
|
|
86
|
+
return bridging::toJs(rt, value);
|
|
87
|
+
}
|
|
76
88
|
#endif
|
|
77
89
|
|
|
78
90
|
static jsi::Object toJs(
|
|
@@ -98,6 +110,12 @@ struct NativeInappRnSdkFeatureOptionsBridging {
|
|
|
98
110
|
if (value.isAIFlowEnabled) {
|
|
99
111
|
result.setProperty(rt, "isAIFlowEnabled", bridging::toJs(rt, value.isAIFlowEnabled.value(), jsInvoker));
|
|
100
112
|
}
|
|
113
|
+
if (value.manualReviewMessage) {
|
|
114
|
+
result.setProperty(rt, "manualReviewMessage", bridging::toJs(rt, value.manualReviewMessage.value(), jsInvoker));
|
|
115
|
+
}
|
|
116
|
+
if (value.loginPromptMessage) {
|
|
117
|
+
result.setProperty(rt, "loginPromptMessage", bridging::toJs(rt, value.loginPromptMessage.value(), jsInvoker));
|
|
118
|
+
}
|
|
101
119
|
return result;
|
|
102
120
|
}
|
|
103
121
|
};
|
|
@@ -386,6 +404,54 @@ struct NativeInappRnSdkProviderInformationRequestBridging {
|
|
|
386
404
|
|
|
387
405
|
|
|
388
406
|
|
|
407
|
+
#pragma mark - NativeInappRnSdkProviderVersion
|
|
408
|
+
|
|
409
|
+
template <typename P0, typename P1>
|
|
410
|
+
struct NativeInappRnSdkProviderVersion {
|
|
411
|
+
P0 resolvedVersion;
|
|
412
|
+
P1 versionExpression;
|
|
413
|
+
bool operator==(const NativeInappRnSdkProviderVersion &other) const {
|
|
414
|
+
return resolvedVersion == other.resolvedVersion && versionExpression == other.versionExpression;
|
|
415
|
+
}
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
template <typename T>
|
|
419
|
+
struct NativeInappRnSdkProviderVersionBridging {
|
|
420
|
+
static T types;
|
|
421
|
+
|
|
422
|
+
static T fromJs(
|
|
423
|
+
jsi::Runtime &rt,
|
|
424
|
+
const jsi::Object &value,
|
|
425
|
+
const std::shared_ptr<CallInvoker> &jsInvoker) {
|
|
426
|
+
T result{
|
|
427
|
+
bridging::fromJs<decltype(types.resolvedVersion)>(rt, value.getProperty(rt, "resolvedVersion"), jsInvoker),
|
|
428
|
+
bridging::fromJs<decltype(types.versionExpression)>(rt, value.getProperty(rt, "versionExpression"), jsInvoker)};
|
|
429
|
+
return result;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
#ifdef DEBUG
|
|
433
|
+
static jsi::String resolvedVersionToJs(jsi::Runtime &rt, decltype(types.resolvedVersion) value) {
|
|
434
|
+
return bridging::toJs(rt, value);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
static jsi::String versionExpressionToJs(jsi::Runtime &rt, decltype(types.versionExpression) value) {
|
|
438
|
+
return bridging::toJs(rt, value);
|
|
439
|
+
}
|
|
440
|
+
#endif
|
|
441
|
+
|
|
442
|
+
static jsi::Object toJs(
|
|
443
|
+
jsi::Runtime &rt,
|
|
444
|
+
const T &value,
|
|
445
|
+
const std::shared_ptr<CallInvoker> &jsInvoker) {
|
|
446
|
+
auto result = facebook::jsi::Object(rt);
|
|
447
|
+
result.setProperty(rt, "resolvedVersion", bridging::toJs(rt, value.resolvedVersion, jsInvoker));
|
|
448
|
+
result.setProperty(rt, "versionExpression", bridging::toJs(rt, value.versionExpression, jsInvoker));
|
|
449
|
+
return result;
|
|
450
|
+
}
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
389
455
|
#pragma mark - NativeInappRnSdkReclaimAppInfo
|
|
390
456
|
|
|
391
457
|
template <typename P0, typename P1, typename P2>
|
|
@@ -548,7 +614,7 @@ struct NativeInappRnSdkReclaimSessionIdentityUpdateBridging {
|
|
|
548
614
|
|
|
549
615
|
#pragma mark - NativeInappRnSdkRequest
|
|
550
616
|
|
|
551
|
-
template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6
|
|
617
|
+
template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
|
|
552
618
|
struct NativeInappRnSdkRequest {
|
|
553
619
|
P0 appId;
|
|
554
620
|
P1 secret;
|
|
@@ -556,10 +622,9 @@ struct NativeInappRnSdkRequest {
|
|
|
556
622
|
P3 session;
|
|
557
623
|
P4 contextString;
|
|
558
624
|
P5 parameters;
|
|
559
|
-
P6
|
|
560
|
-
P7 webhookUrl;
|
|
625
|
+
P6 providerVersion;
|
|
561
626
|
bool operator==(const NativeInappRnSdkRequest &other) const {
|
|
562
|
-
return appId == other.appId && secret == other.secret && providerId == other.providerId && session == other.session && contextString == other.contextString && parameters == other.parameters &&
|
|
627
|
+
return appId == other.appId && secret == other.secret && providerId == other.providerId && session == other.session && contextString == other.contextString && parameters == other.parameters && providerVersion == other.providerVersion;
|
|
563
628
|
}
|
|
564
629
|
};
|
|
565
630
|
|
|
@@ -578,8 +643,7 @@ struct NativeInappRnSdkRequestBridging {
|
|
|
578
643
|
bridging::fromJs<decltype(types.session)>(rt, value.getProperty(rt, "session"), jsInvoker),
|
|
579
644
|
bridging::fromJs<decltype(types.contextString)>(rt, value.getProperty(rt, "contextString"), jsInvoker),
|
|
580
645
|
bridging::fromJs<decltype(types.parameters)>(rt, value.getProperty(rt, "parameters"), jsInvoker),
|
|
581
|
-
bridging::fromJs<decltype(types.
|
|
582
|
-
bridging::fromJs<decltype(types.webhookUrl)>(rt, value.getProperty(rt, "webhookUrl"), jsInvoker)};
|
|
646
|
+
bridging::fromJs<decltype(types.providerVersion)>(rt, value.getProperty(rt, "providerVersion"), jsInvoker)};
|
|
583
647
|
return result;
|
|
584
648
|
}
|
|
585
649
|
|
|
@@ -608,11 +672,7 @@ struct NativeInappRnSdkRequestBridging {
|
|
|
608
672
|
return bridging::toJs(rt, value);
|
|
609
673
|
}
|
|
610
674
|
|
|
611
|
-
static
|
|
612
|
-
return bridging::toJs(rt, value);
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
static std::optional<jsi::String> webhookUrlToJs(jsi::Runtime &rt, decltype(types.webhookUrl) value) {
|
|
675
|
+
static std::optional<jsi::Object> providerVersionToJs(jsi::Runtime &rt, decltype(types.providerVersion) value) {
|
|
616
676
|
return bridging::toJs(rt, value);
|
|
617
677
|
}
|
|
618
678
|
#endif
|
|
@@ -634,11 +694,8 @@ struct NativeInappRnSdkRequestBridging {
|
|
|
634
694
|
if (value.parameters) {
|
|
635
695
|
result.setProperty(rt, "parameters", bridging::toJs(rt, value.parameters.value(), jsInvoker));
|
|
636
696
|
}
|
|
637
|
-
if (value.
|
|
638
|
-
result.setProperty(rt, "
|
|
639
|
-
}
|
|
640
|
-
if (value.webhookUrl) {
|
|
641
|
-
result.setProperty(rt, "webhookUrl", bridging::toJs(rt, value.webhookUrl.value(), jsInvoker));
|
|
697
|
+
if (value.providerVersion) {
|
|
698
|
+
result.setProperty(rt, "providerVersion", bridging::toJs(rt, value.providerVersion.value(), jsInvoker));
|
|
642
699
|
}
|
|
643
700
|
return result;
|
|
644
701
|
}
|
|
@@ -703,15 +760,16 @@ struct NativeInappRnSdkResponseBridging {
|
|
|
703
760
|
|
|
704
761
|
#pragma mark - NativeInappRnSdkSessionCreateRequestEvent
|
|
705
762
|
|
|
706
|
-
template <typename P0, typename P1, typename P2, typename P3, typename P4>
|
|
763
|
+
template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
|
|
707
764
|
struct NativeInappRnSdkSessionCreateRequestEvent {
|
|
708
765
|
P0 appId;
|
|
709
766
|
P1 providerId;
|
|
710
767
|
P2 timestamp;
|
|
711
768
|
P3 signature;
|
|
712
|
-
P4
|
|
769
|
+
P4 providerVersion;
|
|
770
|
+
P5 replyId;
|
|
713
771
|
bool operator==(const NativeInappRnSdkSessionCreateRequestEvent &other) const {
|
|
714
|
-
return appId == other.appId && providerId == other.providerId && timestamp == other.timestamp && signature == other.signature && replyId == other.replyId;
|
|
772
|
+
return appId == other.appId && providerId == other.providerId && timestamp == other.timestamp && signature == other.signature && providerVersion == other.providerVersion && replyId == other.replyId;
|
|
715
773
|
}
|
|
716
774
|
};
|
|
717
775
|
|
|
@@ -728,6 +786,7 @@ struct NativeInappRnSdkSessionCreateRequestEventBridging {
|
|
|
728
786
|
bridging::fromJs<decltype(types.providerId)>(rt, value.getProperty(rt, "providerId"), jsInvoker),
|
|
729
787
|
bridging::fromJs<decltype(types.timestamp)>(rt, value.getProperty(rt, "timestamp"), jsInvoker),
|
|
730
788
|
bridging::fromJs<decltype(types.signature)>(rt, value.getProperty(rt, "signature"), jsInvoker),
|
|
789
|
+
bridging::fromJs<decltype(types.providerVersion)>(rt, value.getProperty(rt, "providerVersion"), jsInvoker),
|
|
731
790
|
bridging::fromJs<decltype(types.replyId)>(rt, value.getProperty(rt, "replyId"), jsInvoker)};
|
|
732
791
|
return result;
|
|
733
792
|
}
|
|
@@ -749,6 +808,10 @@ struct NativeInappRnSdkSessionCreateRequestEventBridging {
|
|
|
749
808
|
return bridging::toJs(rt, value);
|
|
750
809
|
}
|
|
751
810
|
|
|
811
|
+
static jsi::String providerVersionToJs(jsi::Runtime &rt, decltype(types.providerVersion) value) {
|
|
812
|
+
return bridging::toJs(rt, value);
|
|
813
|
+
}
|
|
814
|
+
|
|
752
815
|
static jsi::String replyIdToJs(jsi::Runtime &rt, decltype(types.replyId) value) {
|
|
753
816
|
return bridging::toJs(rt, value);
|
|
754
817
|
}
|
|
@@ -763,6 +826,7 @@ struct NativeInappRnSdkSessionCreateRequestEventBridging {
|
|
|
763
826
|
result.setProperty(rt, "providerId", bridging::toJs(rt, value.providerId, jsInvoker));
|
|
764
827
|
result.setProperty(rt, "timestamp", bridging::toJs(rt, value.timestamp, jsInvoker));
|
|
765
828
|
result.setProperty(rt, "signature", bridging::toJs(rt, value.signature, jsInvoker));
|
|
829
|
+
result.setProperty(rt, "providerVersion", bridging::toJs(rt, value.providerVersion, jsInvoker));
|
|
766
830
|
result.setProperty(rt, "replyId", bridging::toJs(rt, value.replyId, jsInvoker));
|
|
767
831
|
return result;
|
|
768
832
|
}
|
|
@@ -1102,6 +1166,7 @@ protected:
|
|
|
1102
1166
|
public:
|
|
1103
1167
|
virtual jsi::Value startVerification(jsi::Runtime &rt, jsi::Object request) = 0;
|
|
1104
1168
|
virtual jsi::Value startVerificationFromUrl(jsi::Runtime &rt, jsi::String requestUrl) = 0;
|
|
1169
|
+
virtual jsi::Value startVerificationFromJson(jsi::Runtime &rt, jsi::String templateJsonString) = 0;
|
|
1105
1170
|
virtual jsi::Value setOverrides(jsi::Runtime &rt, jsi::Object overrides) = 0;
|
|
1106
1171
|
virtual jsi::Value clearAllOverrides(jsi::Runtime &rt) = 0;
|
|
1107
1172
|
virtual jsi::Value setVerificationOptions(jsi::Runtime &rt, jsi::Object args) = 0;
|
|
@@ -1208,6 +1273,14 @@ private:
|
|
|
1208
1273
|
return bridging::callFromJs<jsi::Value>(
|
|
1209
1274
|
rt, &T::startVerificationFromUrl, jsInvoker_, instance_, std::move(requestUrl));
|
|
1210
1275
|
}
|
|
1276
|
+
jsi::Value startVerificationFromJson(jsi::Runtime &rt, jsi::String templateJsonString) override {
|
|
1277
|
+
static_assert(
|
|
1278
|
+
bridging::getParameterCount(&T::startVerificationFromJson) == 2,
|
|
1279
|
+
"Expected startVerificationFromJson(...) to have 2 parameters");
|
|
1280
|
+
|
|
1281
|
+
return bridging::callFromJs<jsi::Value>(
|
|
1282
|
+
rt, &T::startVerificationFromJson, jsInvoker_, instance_, std::move(templateJsonString));
|
|
1283
|
+
}
|
|
1211
1284
|
jsi::Value setOverrides(jsi::Runtime &rt, jsi::Object overrides) override {
|
|
1212
1285
|
static_assert(
|
|
1213
1286
|
bridging::getParameterCount(&T::setOverrides) == 2,
|