airbridge-react-native-sdk-restricted 2.8.8 → 2.8.9
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/changelog.md +5 -0
- package/ios/AirbridgeRN/ARNConfigReader.m +18 -15
- package/ios/AirbridgeRN/AirbridgeRN.m +3 -0
- package/package.json +1 -1
- package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +19 -0
- package/qa/ios/Podfile.lock +2 -2
- package/qa/package-lock.json +1 -1
- package/source/module/Attribution.ts +60 -0
- package/src/WebInterface.js +1 -1
package/changelog.md
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
#import "ARNConfigReader.h"
|
|
10
10
|
|
|
11
|
-
#import "AirbridgeAttribution.h"
|
|
12
11
|
#import "ARNGet.h"
|
|
13
12
|
|
|
14
13
|
#import <AirBridge/AirBridge.h>
|
|
@@ -58,20 +57,24 @@
|
|
|
58
57
|
}
|
|
59
58
|
|
|
60
59
|
NSString* logLevel = [ARNGet type:NSString.class dictionary:dictionary key:@"logLevel"] ?: @"";
|
|
61
|
-
[
|
|
62
|
-
[
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
60
|
+
if ([logLevel isEqualToString:@"debug"]) {
|
|
61
|
+
[AirBridge setLogLevel:AB_LOG_DEBUG];
|
|
62
|
+
}
|
|
63
|
+
else if ([logLevel isEqualToString:@"info"]) {
|
|
64
|
+
[AirBridge setLogLevel:AB_LOG_INFO];
|
|
65
|
+
}
|
|
66
|
+
else if ([logLevel isEqualToString:@"warning"]) {
|
|
67
|
+
[AirBridge setLogLevel:AB_LOG_WARNING];
|
|
68
|
+
}
|
|
69
|
+
else if ([logLevel isEqualToString:@"error"]) {
|
|
70
|
+
[AirBridge setLogLevel:AB_LOG_CRITICAL];
|
|
71
|
+
}
|
|
72
|
+
else if ([logLevel isEqualToString:@"fault"]) {
|
|
73
|
+
[AirBridge setLogLevel:AB_LOG_CRASH];
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
[AirBridge setLogLevel:AB_LOG_WARNING];
|
|
77
|
+
}
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
@end
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
#import "AirbridgeRN.h"
|
|
10
10
|
|
|
11
|
+
#import "AirbridgeAttribution.h"
|
|
11
12
|
#import "AirbridgeDeeplink.h"
|
|
12
13
|
|
|
13
14
|
// Airbridge
|
|
@@ -50,6 +51,8 @@ static AirbridgeRN* instance;
|
|
|
50
51
|
withLaunchOptions:(nullable NSDictionary*)launchOptions
|
|
51
52
|
{
|
|
52
53
|
[ARNConfigReader apply:airbridgeJSON];
|
|
54
|
+
[AirBridge.state setSDKDevelopmentPlatform:@"react_native"];
|
|
55
|
+
[AirbridgeAttribution setInitialAttributionCallback];
|
|
53
56
|
|
|
54
57
|
[AirBridge getInstance:appToken appName:appName withLaunchOptions:launchOptions];
|
|
55
58
|
[AirbridgeDeeplink setInitialDeeplinkCallback];
|
package/package.json
CHANGED
|
@@ -216,6 +216,7 @@
|
|
|
216
216
|
00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
|
|
217
217
|
E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
|
|
218
218
|
E69B344EB307D0B30A1489D0 /* [CP-User] [RNFB] Core Configuration */,
|
|
219
|
+
F3CA2F01D012BA2728957B14 /* [Airbridge] Copy airbridge.json */,
|
|
219
220
|
);
|
|
220
221
|
buildRules = (
|
|
221
222
|
);
|
|
@@ -408,6 +409,24 @@
|
|
|
408
409
|
shellPath = /bin/sh;
|
|
409
410
|
shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n\n##########################################################################\n##########################################################################\n#\n# NOTE THAT IF YOU CHANGE THIS FILE YOU MUST RUN pod install AFTERWARDS\n#\n# This file is installed as an Xcode build script in the project file\n# by cocoapods, and you will not see your changes until you pod install\n#\n##########################################################################\n##########################################################################\n\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_analytics_storage\n _ANALYTICS_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_analytics_storage\")\n if [[ $_ANALYTICS_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_storage\n _ANALYTICS_AD_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_storage\")\n if [[ $_ANALYTICS_AD_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_user_data\n _ANALYTICS_AD_USER_DATA=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_user_data\")\n if [[ $_ANALYTICS_AD_USER_DATA ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_USER_DATA\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.analytics_registration_with_ad_network_enabled\n _ANALYTICS_REGISTRATION_WITH_AD_NETWORK=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_registration_with_ad_network_enabled\")\n if [[ $_ANALYTICS_REGISTRATION_WITH_AD_NETWORK ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_REGISTRATION_WITH_AD_NETWORK\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n";
|
|
410
411
|
};
|
|
412
|
+
F3CA2F01D012BA2728957B14 /* [Airbridge] Copy airbridge.json */ = {
|
|
413
|
+
isa = PBXShellScriptBuildPhase;
|
|
414
|
+
buildActionMask = 2147483647;
|
|
415
|
+
files = (
|
|
416
|
+
);
|
|
417
|
+
inputFileListPaths = (
|
|
418
|
+
);
|
|
419
|
+
inputPaths = (
|
|
420
|
+
);
|
|
421
|
+
name = "[Airbridge] Copy airbridge.json";
|
|
422
|
+
outputFileListPaths = (
|
|
423
|
+
);
|
|
424
|
+
outputPaths = (
|
|
425
|
+
);
|
|
426
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
427
|
+
shellPath = /bin/sh;
|
|
428
|
+
shellScript = "if [ -r ${SRCROOT}/../airbridge.json ]; then\n cp ${SRCROOT}/../airbridge.json ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/airbridge.json\nfi\n";
|
|
429
|
+
};
|
|
411
430
|
F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
|
|
412
431
|
isa = PBXShellScriptBuildPhase;
|
|
413
432
|
buildActionMask = 2147483647;
|
package/qa/ios/Podfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PODS:
|
|
2
2
|
- AirBridge (1.37.3)
|
|
3
3
|
- airbridge-ios-sdk-qa-library (1.37.0)
|
|
4
|
-
- airbridge-react-native-sdk (2.8.
|
|
4
|
+
- airbridge-react-native-sdk (2.8.9):
|
|
5
5
|
- AirBridge (= 1.37.3)
|
|
6
6
|
- React
|
|
7
7
|
- boost (1.83.0)
|
|
@@ -1553,7 +1553,7 @@ EXTERNAL SOURCES:
|
|
|
1553
1553
|
SPEC CHECKSUMS:
|
|
1554
1554
|
AirBridge: ba285f4e0bee8d2b1967b212689830f30e51b2da
|
|
1555
1555
|
airbridge-ios-sdk-qa-library: bb492ce8a91c879f6448b3109fc58ef14521d638
|
|
1556
|
-
airbridge-react-native-sdk:
|
|
1556
|
+
airbridge-react-native-sdk: 5daf473962e21fdcb30ff59282c3713fbdcbf5e4
|
|
1557
1557
|
boost: d3f49c53809116a5d38da093a8aa78bf551aed09
|
|
1558
1558
|
DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
|
|
1559
1559
|
FBLazyVector: 4bc164e5b5e6cfc288d2b5ff28643ea15fa1a589
|
package/qa/package-lock.json
CHANGED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { NativeModules, NativeEventEmitter } from 'react-native'
|
|
2
|
+
|
|
3
|
+
import { createInteractor } from '../architecture/Interactor'
|
|
4
|
+
import { check } from '../utility/check'
|
|
5
|
+
import { log } from '../utility/log'
|
|
6
|
+
|
|
7
|
+
export const createDependency = () => {}
|
|
8
|
+
|
|
9
|
+
type AttributionInteractor = {
|
|
10
|
+
listen(): void
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
createDependency.AttributionModule = () => ({
|
|
14
|
+
emitter: new NativeEventEmitter(NativeModules.AttributionInteractor),
|
|
15
|
+
interactor: createInteractor<AttributionInteractor>(NativeModules.AttributionInteractor),
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
export type AttributionModule = ReturnType<typeof createAttributionModule>
|
|
19
|
+
|
|
20
|
+
export const createAttributionModule= () => {
|
|
21
|
+
// create dependency
|
|
22
|
+
const { emitter, interactor } = createDependency.AttributionModule()
|
|
23
|
+
|
|
24
|
+
let cache: Record<string, any> | undefined
|
|
25
|
+
let listener: (result: Record<string, any>) => void = (result) => {
|
|
26
|
+
cache = result
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// initialize
|
|
30
|
+
emitter.addListener('airbridge.attribution', (result) => {
|
|
31
|
+
listener(result)
|
|
32
|
+
})
|
|
33
|
+
interactor.listen()
|
|
34
|
+
|
|
35
|
+
// define method
|
|
36
|
+
/**
|
|
37
|
+
* Sets a listener for receiving attribution of install event.
|
|
38
|
+
* @param onReceived Map of attribution is delivered.
|
|
39
|
+
*/
|
|
40
|
+
const setOnAttributionReceived = (
|
|
41
|
+
onReceived: (attribution: Record<string, any>) => void,
|
|
42
|
+
) => {
|
|
43
|
+
if (!check.function(onReceived)) {
|
|
44
|
+
log.unmatchedType('onReceived', 'function')
|
|
45
|
+
return
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (cache !== undefined) {
|
|
49
|
+
onReceived(cache)
|
|
50
|
+
cache = undefined
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
listener = onReceived
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// create object
|
|
57
|
+
return {
|
|
58
|
+
setOnAttributionReceived,
|
|
59
|
+
}
|
|
60
|
+
}
|