@survicate/react-native-survicate 3.1.2 → 4.0.1
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 +8 -3
- package/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
- package/android/.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.5.1/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.5.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.5.1/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +1 -1
- package/lib/commonjs/index.js +69 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/index.js +62 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/index.d.ts +21 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/package.json +37 -3
- package/react-native-survicate.podspec +1 -1
- package/src/index.ts +78 -0
- package/.gitattributes +0 -1
- package/src/index.js +0 -10
- package/tsconfig.json +0 -3
package/README.md
CHANGED
|
@@ -47,14 +47,19 @@ allprojects {
|
|
|
47
47
|
|
|
48
48
|
## Usage
|
|
49
49
|
```javascript
|
|
50
|
-
import Survicate from '@survicate/react-native-survicate';
|
|
50
|
+
import Survicate, {UserTrait} from '@survicate/react-native-survicate';
|
|
51
51
|
|
|
52
52
|
Survicate.initialize();
|
|
53
53
|
Survicate.invokeEvent("eventName");
|
|
54
54
|
Survicate.enterScreen("screenName");
|
|
55
55
|
Survicate.leaveScreen("screenName");
|
|
56
|
-
|
|
57
|
-
Survicate.setUserTrait(
|
|
56
|
+
const userIdTrait = new UserTrait('user_id', 'id');
|
|
57
|
+
Survicate.setUserTrait(userIdTrait);
|
|
58
|
+
const textTrait = new UserTrait('name', 'John');
|
|
59
|
+
const numberTrait = new UserTrait('age', 25);
|
|
60
|
+
const booleanTrait = new UserTrait('isPremium', true);
|
|
61
|
+
const dateTrait = new UserTrait('lastLogin', new Date());
|
|
62
|
+
const timeIntervalTrait = new UserTrait('timeOfPurchase', new Date());
|
|
58
63
|
Survicate.reset();
|
|
59
64
|
```
|
|
60
65
|
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
package/android/build.gradle
CHANGED
|
@@ -99,7 +99,7 @@ repositories {
|
|
|
99
99
|
dependencies {
|
|
100
100
|
//noinspection GradleDynamicVersion
|
|
101
101
|
implementation 'com.facebook.react:react-native:+' // From node_modules
|
|
102
|
-
implementation ('com.survicate:survicate-sdk:
|
|
102
|
+
implementation ('com.survicate:survicate-sdk:4.0.2') {
|
|
103
103
|
exclude group: 'io.coil-kt', module: 'coil-base'
|
|
104
104
|
exclude group: 'io.coil-kt', module: 'coil-gif'
|
|
105
105
|
exclude group: 'io.coil-kt', module: 'coil-svg'
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.UserTrait = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
const {
|
|
9
|
+
SurvicateBindings
|
|
10
|
+
} = _reactNative.NativeModules;
|
|
11
|
+
|
|
12
|
+
// @ts-expect-error
|
|
13
|
+
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
14
|
+
const survicate = isTurboModuleEnabled ? require("./NativeSurvicateModule").default : SurvicateBindings;
|
|
15
|
+
class Survicate {
|
|
16
|
+
static initializeSdk() {
|
|
17
|
+
survicate.initializeSdk();
|
|
18
|
+
}
|
|
19
|
+
static invokeEvent(eventName) {
|
|
20
|
+
survicate.invokeEvent(eventName);
|
|
21
|
+
}
|
|
22
|
+
static enterScreen(screenName) {
|
|
23
|
+
survicate.enterScreen(screenName);
|
|
24
|
+
}
|
|
25
|
+
static leaveScreen(screenName) {
|
|
26
|
+
survicate.leaveScreen(screenName);
|
|
27
|
+
}
|
|
28
|
+
static setUserId(userId) {
|
|
29
|
+
survicate.setUserId(userId);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated Use setUserTrait(userTrait: UserTrait) method instead.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
static setUserTrait(traitNameOrUserTrait, traitValue) {
|
|
37
|
+
if (typeof traitNameOrUserTrait === 'string' && traitValue !== undefined) {
|
|
38
|
+
survicate.setUserTrait(traitNameOrUserTrait, traitValue);
|
|
39
|
+
} else if (traitNameOrUserTrait instanceof UserTrait) {
|
|
40
|
+
survicate.setUserTrait(traitNameOrUserTrait.key, traitNameOrUserTrait.value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
static reset() {
|
|
44
|
+
survicate.reset();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
class UserTrait {
|
|
48
|
+
constructor(key, value) {
|
|
49
|
+
if (key === null || value === null) {
|
|
50
|
+
throw new Error('Key and value cannot be null');
|
|
51
|
+
}
|
|
52
|
+
this.key = key;
|
|
53
|
+
if (value instanceof Date) {
|
|
54
|
+
this.value = this.formatDateToTimeZoneIso(value);
|
|
55
|
+
} else {
|
|
56
|
+
this.value = value.toString();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
formatDateToTimeZoneIso(date) {
|
|
60
|
+
const offset = date.getTimezoneOffset();
|
|
61
|
+
const offsetHours = Math.floor(Math.abs(offset) / 60);
|
|
62
|
+
const offsetMinutes = Math.abs(offset) % 60;
|
|
63
|
+
date = new Date(date.getTime() - offset * 60 * 1000);
|
|
64
|
+
return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, '0') + ":" + offsetMinutes.toString().padStart(2, '0');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.UserTrait = UserTrait;
|
|
68
|
+
var _default = exports.default = Survicate;
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","SurvicateBindings","NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","survicate","default","Survicate","initializeSdk","invokeEvent","eventName","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","constructor","Error","Date","formatDateToTimeZoneIso","toString","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","getTime","toISOString","slice","padStart","exports","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { NativeModules } from "react-native";
|
|
2
|
+
const {
|
|
3
|
+
SurvicateBindings
|
|
4
|
+
} = NativeModules;
|
|
5
|
+
|
|
6
|
+
// @ts-expect-error
|
|
7
|
+
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
8
|
+
const survicate = isTurboModuleEnabled ? require("./NativeSurvicateModule").default : SurvicateBindings;
|
|
9
|
+
class Survicate {
|
|
10
|
+
static initializeSdk() {
|
|
11
|
+
survicate.initializeSdk();
|
|
12
|
+
}
|
|
13
|
+
static invokeEvent(eventName) {
|
|
14
|
+
survicate.invokeEvent(eventName);
|
|
15
|
+
}
|
|
16
|
+
static enterScreen(screenName) {
|
|
17
|
+
survicate.enterScreen(screenName);
|
|
18
|
+
}
|
|
19
|
+
static leaveScreen(screenName) {
|
|
20
|
+
survicate.leaveScreen(screenName);
|
|
21
|
+
}
|
|
22
|
+
static setUserId(userId) {
|
|
23
|
+
survicate.setUserId(userId);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated Use setUserTrait(userTrait: UserTrait) method instead.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
static setUserTrait(traitNameOrUserTrait, traitValue) {
|
|
31
|
+
if (typeof traitNameOrUserTrait === 'string' && traitValue !== undefined) {
|
|
32
|
+
survicate.setUserTrait(traitNameOrUserTrait, traitValue);
|
|
33
|
+
} else if (traitNameOrUserTrait instanceof UserTrait) {
|
|
34
|
+
survicate.setUserTrait(traitNameOrUserTrait.key, traitNameOrUserTrait.value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
static reset() {
|
|
38
|
+
survicate.reset();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class UserTrait {
|
|
42
|
+
constructor(key, value) {
|
|
43
|
+
if (key === null || value === null) {
|
|
44
|
+
throw new Error('Key and value cannot be null');
|
|
45
|
+
}
|
|
46
|
+
this.key = key;
|
|
47
|
+
if (value instanceof Date) {
|
|
48
|
+
this.value = this.formatDateToTimeZoneIso(value);
|
|
49
|
+
} else {
|
|
50
|
+
this.value = value.toString();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
formatDateToTimeZoneIso(date) {
|
|
54
|
+
const offset = date.getTimezoneOffset();
|
|
55
|
+
const offsetHours = Math.floor(Math.abs(offset) / 60);
|
|
56
|
+
const offsetMinutes = Math.abs(offset) % 60;
|
|
57
|
+
date = new Date(date.getTime() - offset * 60 * 1000);
|
|
58
|
+
return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, '0') + ":" + offsetMinutes.toString().padStart(2, '0');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export default Survicate;
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","SurvicateBindings","isTurboModuleEnabled","global","__turboModuleProxy","survicate","require","default","Survicate","initializeSdk","invokeEvent","eventName","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","constructor","Error","Date","formatDateToTimeZoneIso","toString","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","getTime","toISOString","slice","padStart"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAE5C,MAAM;EAAEC;AAAkB,CAAC,GAAGD,aAAa;;AAE3C;AACA,MAAME,oBAA6B,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAEvE,MAAMC,SAAc,GAAGH,oBAAoB,GACvCI,OAAO,CAAC,yBAAyB,CAAC,CAACC,OAAO,GAC1CN,iBAAiB;AAErB,MAAMO,SAAS,CAAC;EACd,OAAOC,aAAaA,CAAA,EAAS;IAC3BJ,SAAS,CAACI,aAAa,CAAC,CAAC;EAC3B;EAEA,OAAOC,WAAWA,CAACC,SAAiB,EAAQ;IAC1CN,SAAS,CAACK,WAAW,CAACC,SAAS,CAAC;EAClC;EAEA,OAAOC,WAAWA,CAACC,UAAkB,EAAQ;IAC3CR,SAAS,CAACO,WAAW,CAACC,UAAU,CAAC;EACnC;EAEA,OAAOC,WAAWA,CAACD,UAAkB,EAAQ;IAC3CR,SAAS,CAACS,WAAW,CAACD,UAAU,CAAC;EACnC;EAEA,OAAOE,SAASA,CAACC,MAAc,EAAQ;IACrCX,SAAS,CAACU,SAAS,CAACC,MAAM,CAAC;EAC7B;;EAEA;AACF;AACA;;EAGE,OAAOC,YAAYA,CAACC,oBAAwC,EAAEC,UAAmB,EAAQ;IACvF,IAAI,OAAOD,oBAAoB,KAAK,QAAQ,IAAIC,UAAU,KAAKC,SAAS,EAAE;MACxEf,SAAS,CAACY,YAAY,CAACC,oBAAoB,EAAEC,UAAU,CAAC;IAC1D,CAAC,MAAM,IAAID,oBAAoB,YAAYG,SAAS,EAAE;MACpDhB,SAAS,CAACY,YAAY,CAACC,oBAAoB,CAACI,GAAG,EAAEJ,oBAAoB,CAACK,KAAK,CAAC;IAC9E;EACF;EAEA,OAAOC,KAAKA,CAAA,EAAS;IACnBnB,SAAS,CAACmB,KAAK,CAAC,CAAC;EACnB;AACF;AAEA,OAAO,MAAMH,SAAS,CAAC;EAIrBI,WAAWA,CAACH,GAAW,EAAEC,KAAuC,EAAE;IAChE,IAAID,GAAG,KAAK,IAAI,IAAIC,KAAK,KAAK,IAAI,EAAE;MAClC,MAAM,IAAIG,KAAK,CAAC,8BAA8B,CAAC;IACjD;IAEA,IAAI,CAACJ,GAAG,GAAGA,GAAG;IAEd,IAAIC,KAAK,YAAYI,IAAI,EAAE;MACzB,IAAI,CAACJ,KAAK,GAAG,IAAI,CAACK,uBAAuB,CAACL,KAAK,CAAC;IAClD,CAAC,MAAM;MACL,IAAI,CAACA,KAAK,GAAGA,KAAK,CAACM,QAAQ,CAAC,CAAC;IAC/B;EACF;EAEQD,uBAAuBA,CAACE,IAAU,EAAU;IAClD,MAAMC,MAAM,GAAGD,IAAI,CAACE,iBAAiB,CAAC,CAAC;IACvC,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAACL,MAAM,CAAC,GAAG,EAAE,CAAC;IACrD,MAAMM,aAAa,GAAGH,IAAI,CAACE,GAAG,CAACL,MAAM,CAAC,GAAG,EAAE;IAC3CD,IAAI,GAAG,IAAIH,IAAI,CAACG,IAAI,CAACQ,OAAO,CAAC,CAAC,GAAIP,MAAM,GAAG,EAAE,GAAG,IAAK,CAAC;IACtD,OAAOD,IAAI,CAACS,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAIT,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAGE,WAAW,CAACJ,QAAQ,CAAC,CAAC,CAACY,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAGJ,aAAa,CAACR,QAAQ,CAAC,CAAC,CAACY,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC/J;AACF;AAEA,eAAejC,SAAS"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare class Survicate {
|
|
2
|
+
static initializeSdk(): void;
|
|
3
|
+
static invokeEvent(eventName: string): void;
|
|
4
|
+
static enterScreen(screenName: string): void;
|
|
5
|
+
static leaveScreen(screenName: string): void;
|
|
6
|
+
static setUserId(userId: string): void;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use setUserTrait(userTrait: UserTrait) method instead.
|
|
9
|
+
*/
|
|
10
|
+
static setUserTrait(traitName: string, traitValue: string): void;
|
|
11
|
+
static setUserTrait(userTrait: UserTrait): void;
|
|
12
|
+
static reset(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare class UserTrait {
|
|
15
|
+
key: string;
|
|
16
|
+
value: string;
|
|
17
|
+
constructor(key: string, value: string | number | boolean | Date);
|
|
18
|
+
private formatDateToTimeZoneIso;
|
|
19
|
+
}
|
|
20
|
+
export default Survicate;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAWA,cAAM,SAAS;IACb,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3C,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;MAEE;IACF,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAChE,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAS/C,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB;AAED,qBAAa,SAAS;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;gBAEF,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAchE,OAAO,CAAC,uBAAuB;CAOhC;AAED,eAAe,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@survicate/react-native-survicate",
|
|
3
3
|
"title": "React Native Survicate Bindings",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "4.0.1",
|
|
5
5
|
"description": "React Native bindings for Survicate Mobile SDK",
|
|
6
|
-
"main": "
|
|
6
|
+
"main": "lib/commonjs/index.js",
|
|
7
|
+
"module": "lib/module/index.js",
|
|
8
|
+
"react-native": "src/index.ts",
|
|
9
|
+
"types": "lib/typescript/index.d.ts",
|
|
10
|
+
"source": "src/index.ts",
|
|
11
|
+
"files": [
|
|
12
|
+
"src",
|
|
13
|
+
"lib",
|
|
14
|
+
"android",
|
|
15
|
+
"ios",
|
|
16
|
+
"react-native-survicate.podspec",
|
|
17
|
+
"!android/build",
|
|
18
|
+
"!ios/build",
|
|
19
|
+
"!**/__tests__",
|
|
20
|
+
"!**/__fixtures__",
|
|
21
|
+
"!**/__mocks__"
|
|
22
|
+
],
|
|
7
23
|
"scripts": {
|
|
8
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
24
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
25
|
+
"build": "bob build",
|
|
26
|
+
"prepare": "bob build"
|
|
9
27
|
},
|
|
10
28
|
"repository": {
|
|
11
29
|
"type": "git",
|
|
@@ -33,8 +51,24 @@
|
|
|
33
51
|
"@types/react-test-renderer": "^18.0.1",
|
|
34
52
|
"react": "18.2.0",
|
|
35
53
|
"react-native": "0.72.6",
|
|
54
|
+
"react-native-builder-bob": "^0.23.1",
|
|
36
55
|
"typescript": "5.2.2"
|
|
37
56
|
},
|
|
57
|
+
"react-native-builder-bob": {
|
|
58
|
+
"exclude": "**/NativeSurvicateModule.ts",
|
|
59
|
+
"source": "src",
|
|
60
|
+
"output": "lib",
|
|
61
|
+
"targets": [
|
|
62
|
+
"commonjs",
|
|
63
|
+
"module",
|
|
64
|
+
[
|
|
65
|
+
"typescript",
|
|
66
|
+
{
|
|
67
|
+
"project": "tsconfig.build.json"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
]
|
|
71
|
+
},
|
|
38
72
|
"codegenConfig": {
|
|
39
73
|
"name": "RNSurvicateSpec",
|
|
40
74
|
"type": "modules",
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { NativeModules } from "react-native";
|
|
2
|
+
|
|
3
|
+
const { SurvicateBindings } = NativeModules;
|
|
4
|
+
|
|
5
|
+
// @ts-expect-error
|
|
6
|
+
const isTurboModuleEnabled: boolean = global.__turboModuleProxy != null;
|
|
7
|
+
|
|
8
|
+
const survicate: any = isTurboModuleEnabled
|
|
9
|
+
? require("./NativeSurvicateModule").default
|
|
10
|
+
: SurvicateBindings;
|
|
11
|
+
|
|
12
|
+
class Survicate {
|
|
13
|
+
static initializeSdk(): void {
|
|
14
|
+
survicate.initializeSdk();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static invokeEvent(eventName: string): void {
|
|
18
|
+
survicate.invokeEvent(eventName);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static enterScreen(screenName: string): void {
|
|
22
|
+
survicate.enterScreen(screenName);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static leaveScreen(screenName: string): void {
|
|
26
|
+
survicate.leaveScreen(screenName);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static setUserId(userId: string): void {
|
|
30
|
+
survicate.setUserId(userId);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated Use setUserTrait(userTrait: UserTrait) method instead.
|
|
35
|
+
*/
|
|
36
|
+
static setUserTrait(traitName: string, traitValue: string): void;
|
|
37
|
+
static setUserTrait(userTrait: UserTrait): void;
|
|
38
|
+
static setUserTrait(traitNameOrUserTrait: string | UserTrait, traitValue?: string): void {
|
|
39
|
+
if (typeof traitNameOrUserTrait === 'string' && traitValue !== undefined) {
|
|
40
|
+
survicate.setUserTrait(traitNameOrUserTrait, traitValue);
|
|
41
|
+
} else if (traitNameOrUserTrait instanceof UserTrait) {
|
|
42
|
+
survicate.setUserTrait(traitNameOrUserTrait.key, traitNameOrUserTrait.value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static reset(): void {
|
|
47
|
+
survicate.reset();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export class UserTrait {
|
|
52
|
+
key: string;
|
|
53
|
+
value: string;
|
|
54
|
+
|
|
55
|
+
constructor(key: string, value: string | number | boolean | Date) {
|
|
56
|
+
if (key === null || value === null) {
|
|
57
|
+
throw new Error('Key and value cannot be null');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
this.key = key;
|
|
61
|
+
|
|
62
|
+
if (value instanceof Date) {
|
|
63
|
+
this.value = this.formatDateToTimeZoneIso(value);
|
|
64
|
+
} else {
|
|
65
|
+
this.value = value.toString();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private formatDateToTimeZoneIso(date: Date): string {
|
|
70
|
+
const offset = date.getTimezoneOffset();
|
|
71
|
+
const offsetHours = Math.floor(Math.abs(offset) / 60);
|
|
72
|
+
const offsetMinutes = Math.abs(offset) % 60;
|
|
73
|
+
date = new Date(date.getTime() - (offset * 60 * 1000));
|
|
74
|
+
return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, '0') + ":" + offsetMinutes.toString().padStart(2, '0');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default Survicate;
|
package/.gitattributes
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*.pbxproj -text
|
package/src/index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { NativeModules } from 'react-native';
|
|
2
|
-
|
|
3
|
-
const { SurvicateBindings } = NativeModules;
|
|
4
|
-
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
5
|
-
|
|
6
|
-
const survicate = isTurboModuleEnabled ?
|
|
7
|
-
require("./NativeSurvicateModule").default :
|
|
8
|
-
SurvicateBindings;
|
|
9
|
-
|
|
10
|
-
export default survicate;
|
package/tsconfig.json
DELETED