@survicate/react-native-survicate 7.0.0 → 7.2.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/README.md CHANGED
@@ -83,33 +83,70 @@ allprojects {
83
83
 
84
84
  ## Usage
85
85
  ```javascript
86
- import Survicate, {UserTrait} from '@survicate/react-native-survicate';
87
-
88
- Survicate.initializeSdk();
86
+ import Survicate, {
87
+ UserTrait,
88
+ ThemeMode,
89
+ ResponseAttribute,
90
+ SurvicateFontSystem,
91
+ SurvicateEventListener,
92
+ SurveyDisplayedEvent,
93
+ QuestionAnsweredEvent,
94
+ SurveyClosedEvent,
95
+ SurveyCompletedEvent,
96
+ } from '@survicate/react-native-survicate';
97
+
98
+ // Initialization
89
99
  Survicate.setWorkspaceKey('WORKSPACE_KEY');
100
+ Survicate.initializeSdk();
101
+
102
+ // Events
90
103
  Survicate.invokeEvent("eventName");
91
- const properties = {
92
- "property1": "value1",
93
- "property2": "value2"
94
- };
95
- Survicate.invokeEvent("eventName", properties);
104
+ Survicate.invokeEvent("eventName", { property1: "value1", property2: "value2" });
105
+
106
+ // Screens
96
107
  Survicate.enterScreen("screenName");
97
108
  Survicate.leaveScreen("screenName");
98
- const userIdTrait = new UserTrait('user_id', 'id');
99
- Survicate.setUserTrait(userIdTrait);
100
- const textTrait = new UserTrait('name', 'John');
101
- const numberTrait = new UserTrait('age', 25);
102
- const booleanTrait = new UserTrait('isPremium', true);
103
- const dateTrait = new UserTrait('lastLogin', new Date());
104
- const timeIntervalTrait = new UserTrait('timeOfPurchase', new Date());
109
+
110
+ // User traits
111
+ Survicate.setUserTrait(new UserTrait('user_id', 'id'));
112
+ Survicate.setUserTrait(new UserTrait('name', 'John'));
113
+ Survicate.setUserTrait(new UserTrait('age', 25));
114
+ Survicate.setUserTrait(new UserTrait('isPremium', true));
115
+ Survicate.setUserTrait(new UserTrait('lastLogin', new Date()));
116
+
117
+ // Locale
105
118
  Survicate.setLocale('en-US');
119
+
120
+ // Theme
121
+ Survicate.setThemeMode(ThemeMode.auto); // ThemeMode.auto | ThemeMode.light | ThemeMode.dark
122
+
123
+ // Custom Fonts
124
+ Survicate.setFonts({
125
+ regular: 'fonts/MyFont-Regular.ttf',
126
+ regularItalic: 'fonts/MyFont-RegularItalic.ttf',
127
+ bold: 'fonts/MyFont-Bold.ttf',
128
+ boldItalic: 'fonts/MyFont-BoldItalic.ttf',
129
+ });
130
+
131
+ // Response attributes
132
+ Survicate.setResponseAttribute(new ResponseAttribute('plan', 'premium'));
133
+ Survicate.setResponseAttributes([
134
+ new ResponseAttribute('plan', 'premium'),
135
+ new ResponseAttribute('seats', 10),
136
+ new ResponseAttribute('isEnterprise', true),
137
+ new ResponseAttribute('renewalDate', new Date()),
138
+ ]);
139
+
140
+ // Event listeners
106
141
  const listener: SurvicateEventListener = {
107
- onSurveyDisplayed(event: SurveyDisplayedEvent) {},
108
- onQuestionAnswered(event: QuestionAnsweredEvent) {},
109
- onSurveyClosed(event: SurveyClosedEvent) {},
110
- onSurveyCompleted(event: SurveyCompletedEvent) {},
111
- }
112
- const subscription = Survicate.addSurvicateEventListener(listener);
142
+ onSurveyDisplayed(event: SurveyDisplayedEvent) {},
143
+ onQuestionAnswered(event: QuestionAnsweredEvent) {},
144
+ onSurveyClosed(event: SurveyClosedEvent) {},
145
+ onSurveyCompleted(event: SurveyCompletedEvent) {},
146
+ };
147
+ const removeListener = Survicate.addSurvicateEventListener(listener);
148
+
149
+ // Reset
113
150
  Survicate.reset();
114
151
  ```
115
152
 
@@ -32,7 +32,6 @@ buildscript {
32
32
  repositories {
33
33
  google()
34
34
  gradlePluginPortal()
35
- jcenter()
36
35
  }
37
36
  dependencies {
38
37
  classpath 'com.android.tools.build:gradle:7.0.4'
@@ -114,13 +113,12 @@ repositories {
114
113
  }
115
114
  mavenCentral()
116
115
  google()
117
- jcenter()
118
116
  }
119
117
 
120
118
  dependencies {
121
119
  //noinspection GradleDynamicVersion
122
120
  implementation 'com.facebook.react:react-native:+' // From node_modules
123
- implementation ('com.survicate:survicate-sdk:7.0.0')
121
+ implementation ('com.survicate:survicate-sdk:7.2.0')
124
122
  }
125
123
 
126
124
  if (isNewArchitectureEnabled()) {
@@ -2,12 +2,19 @@ package com.survicate.react;
2
2
 
3
3
  import com.facebook.react.bridge.ReactApplicationContext;
4
4
  import com.facebook.react.bridge.ReactMethod;
5
+ import com.facebook.react.bridge.ReadableArray;
5
6
  import com.facebook.react.bridge.ReadableMap;
7
+ import com.survicate.surveys.ResponseAttribute;
6
8
  import com.survicate.surveys.Survicate;
9
+ import com.survicate.surveys.ThemeMode;
10
+ import com.survicate.surveys.FontSource;
11
+ import com.survicate.surveys.SurvicateFontSystem;
7
12
  import com.survicate.surveys.traits.UserTrait;
8
13
 
9
14
  import com.survicate.react.SurvicateModule;
10
15
 
16
+ import java.util.ArrayList;
17
+ import java.util.List;
11
18
  import java.util.Map;
12
19
  import java.util.HashMap;
13
20
 
@@ -135,4 +142,52 @@ public class SurvicateModuleImpl extends SurvicateModule {
135
142
  }
136
143
  Survicate.setLocale(locale);
137
144
  }
145
+
146
+ @ReactMethod
147
+ public void setResponseAttributes(ReadableArray attributes) {
148
+ if (!isInitialized) {
149
+ return;
150
+ }
151
+ List<ResponseAttribute> list = new ArrayList<>();
152
+ for (int i = 0; i < attributes.size(); i++) {
153
+ ReadableMap map = attributes.getMap(i);
154
+ String name = map.getString("name");
155
+ String value = map.getString("value");
156
+ String provider = map.hasKey("provider") && !map.isNull("provider")
157
+ ? map.getString("provider") : null;
158
+ list.add(new ResponseAttribute(name, value, provider));
159
+ }
160
+ Survicate.setResponseAttributes(list);
161
+ }
162
+
163
+ @ReactMethod
164
+ public void setFonts(ReadableMap fontSystem) {
165
+ SurvicateFontSystem fonts = new SurvicateFontSystem(
166
+ new FontSource.AssetPath(fontSystem.getString("regular")),
167
+ new FontSource.AssetPath(fontSystem.getString("regularItalic")),
168
+ new FontSource.AssetPath(fontSystem.getString("bold")),
169
+ new FontSource.AssetPath(fontSystem.getString("boldItalic"))
170
+ );
171
+ Survicate.setFonts(fonts);
172
+ }
173
+
174
+ @ReactMethod
175
+ public void setThemeMode(String themeMode) {
176
+ if (!isInitialized) {
177
+ return;
178
+ }
179
+ ThemeMode mode;
180
+ switch (themeMode) {
181
+ case "light":
182
+ mode = ThemeMode.LIGHT;
183
+ break;
184
+ case "dark":
185
+ mode = ThemeMode.DARK;
186
+ break;
187
+ default:
188
+ mode = ThemeMode.AUTO;
189
+ break;
190
+ }
191
+ Survicate.setThemeMode(mode);
192
+ }
138
193
  }
@@ -4,6 +4,7 @@ import androidx.annotation.NonNull;
4
4
 
5
5
  import com.facebook.react.bridge.ReactApplicationContext;
6
6
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
7
+ import com.facebook.react.bridge.ReadableArray;
7
8
  import com.facebook.react.bridge.ReadableMap;
8
9
 
9
10
  public abstract class SurvicateModule extends ReactContextBaseJavaModule {
@@ -21,4 +22,7 @@ public abstract class SurvicateModule extends ReactContextBaseJavaModule {
21
22
  public abstract void reset();
22
23
  public abstract void setWorkspaceKey(String workspaceKey);
23
24
  public abstract void setLocale(String locale);
25
+ public abstract void setThemeMode(String themeMode);
26
+ public abstract void setFonts(ReadableMap fontSystem);
27
+ public abstract void setResponseAttributes(ReadableArray attributes);
24
28
  }
@@ -1,5 +1,30 @@
1
1
  #import "SurvicateBindings.h"
2
2
  #import <Survicate/Survicate-Swift.h>
3
+ #import <CoreText/CoreText.h>
4
+
5
+ static NSString* postScriptNameForPath(NSString *relativePath)
6
+ {
7
+ // Build absolute path to the font file inside the app bundle
8
+ NSString *fullPath = [[NSBundle mainBundle].bundlePath
9
+ stringByAppendingPathComponent:[relativePath lastPathComponent]];
10
+
11
+ NSURL *fontURL = [NSURL fileURLWithPath:fullPath];
12
+
13
+ // Read font descriptors from the file to extract metadata
14
+ CFArrayRef descriptors = CTFontManagerCreateFontDescriptorsFromURL((__bridge CFURLRef)fontURL);
15
+ if (!descriptors || CFArrayGetCount(descriptors) == 0) {
16
+ if (descriptors) CFRelease(descriptors);
17
+ return @"";
18
+ }
19
+
20
+ // Extract the PostScript name from the first font face in the file
21
+ CTFontDescriptorRef descriptor = (CTFontDescriptorRef)CFArrayGetValueAtIndex(descriptors, 0);
22
+ NSString *postScriptName = (__bridge_transfer NSString *)
23
+ CTFontDescriptorCopyAttribute(descriptor, kCTFontNameAttribute);
24
+ CFRelease(descriptors);
25
+
26
+ return postScriptName ?: @"";
27
+ }
3
28
 
4
29
  @implementation SurvicateBindings
5
30
  {
@@ -59,6 +84,40 @@ RCT_EXPORT_METHOD(setLocale:(NSString *)locale)
59
84
  [[SurvicateSdk shared] setLocale:locale];
60
85
  }
61
86
 
87
+ RCT_EXPORT_METHOD(setResponseAttributes:(NSArray *)attributes)
88
+ {
89
+ NSMutableArray<ResponseAttribute *> *list = [NSMutableArray array];
90
+ for (NSDictionary *dict in attributes) {
91
+ NSString *name = dict[@"name"];
92
+ NSString *value = dict[@"value"];
93
+ NSString *provider = dict[@"provider"] == [NSNull null] ? nil : dict[@"provider"];
94
+ ResponseAttribute *attr = [[ResponseAttribute alloc] initWithName:name value:value provider:provider];
95
+ [list addObject:attr];
96
+ }
97
+ [[SurvicateSdk shared] setResponseAttributes:list];
98
+ }
99
+
100
+ RCT_EXPORT_METHOD(setThemeMode:(NSString *)themeMode)
101
+ {
102
+ ThemeMode mode = ThemeModeAuto;
103
+ if ([themeMode isEqualToString:@"light"]) {
104
+ mode = ThemeModeLight;
105
+ } else if ([themeMode isEqualToString:@"dark"]) {
106
+ mode = ThemeModeDark;
107
+ }
108
+ [[SurvicateSdk shared] setThemeMode:mode];
109
+ }
110
+
111
+ RCT_EXPORT_METHOD(setFonts:(NSDictionary *)fontSystem)
112
+ {
113
+ SurvicateFontSystem *fonts = [[SurvicateFontSystem alloc]
114
+ initWithRegular:postScriptNameForPath(fontSystem[@"regular"])
115
+ regularItalic:postScriptNameForPath(fontSystem[@"regularItalic"])
116
+ bold:postScriptNameForPath(fontSystem[@"bold"])
117
+ boldItalic:postScriptNameForPath(fontSystem[@"boldItalic"])];
118
+ [[SurvicateSdk shared] setFonts:fonts];
119
+ }
120
+
62
121
  - (NSArray<NSString*> *)supportedEvents {
63
122
  return @[@"onQuestionAnswered", @"onSurveyClosed", @"onSurveyCompleted", @"onSurveyDisplayed"];
64
123
  }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _default = exports.default = _reactNative.TurboModuleRegistry.get("SurvicateBindings");
9
+ //# sourceMappingURL=NativeSurvicateModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeSurvicateModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAmBpCC,gCAAmB,CAACC,GAAG,CAAO,mBAAmB,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.UserTrait = exports.SurvicateIntegrations = void 0;
6
+ exports.default = exports.UserTrait = exports.ThemeMode = exports.SurvicateIntegrations = exports.ResponseAttribute = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  const {
9
9
  SurvicateBindings
@@ -127,6 +127,60 @@ class Survicate {
127
127
  static setLocale(languageTag) {
128
128
  survicate.setLocale(languageTag);
129
129
  }
130
+
131
+ /**
132
+ * Sets the theme mode for survey appearance.
133
+ *
134
+ * @param themeMode The theme mode to apply: ThemeMode.light, ThemeMode.dark, or ThemeMode.auto (default).
135
+ */
136
+ static setThemeMode(themeMode) {
137
+ survicate.setThemeMode(themeMode);
138
+ }
139
+
140
+ /**
141
+ * Sets custom fonts for use in surveys.
142
+ *
143
+ * @param fontSystem A font configuration to apply.
144
+ */
145
+ static setFonts(fontSystem) {
146
+ survicate.setFonts(fontSystem);
147
+ }
148
+
149
+ /**
150
+ * Shorthand version of {@link setResponseAttributes}.
151
+ */
152
+ static setResponseAttribute(attribute) {
153
+ survicate.setResponseAttributes([{
154
+ name: attribute.name,
155
+ value: attribute.value,
156
+ provider: attribute.provider ?? null
157
+ }]);
158
+ }
159
+
160
+ /**
161
+ * Sets response attributes that will be attached to survey responses.
162
+ *
163
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
164
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
165
+ * to the system along with the user's answers to survey questions.
166
+ *
167
+ * To change a {@link ResponseAttribute} send the same key with a different value.
168
+ */
169
+ static setResponseAttributes(attributes) {
170
+ const mapped = attributes.map(a => ({
171
+ name: a.name,
172
+ value: a.value,
173
+ provider: a.provider ?? null
174
+ }));
175
+ survicate.setResponseAttributes(mapped);
176
+ }
177
+ }
178
+ function formatDateToTimeZoneIso(date) {
179
+ const offset = date.getTimezoneOffset();
180
+ const offsetHours = Math.floor(Math.abs(offset) / 60);
181
+ const offsetMinutes = Math.abs(offset) % 60;
182
+ date = new Date(date.getTime() - offset * 60 * 1000);
183
+ return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
130
184
  }
131
185
  class UserTrait {
132
186
  constructor(key, value) {
@@ -135,19 +189,48 @@ class UserTrait {
135
189
  }
136
190
  this.key = key;
137
191
  if (value instanceof Date) {
138
- this.value = this.formatDateToTimeZoneIso(value);
192
+ this.value = formatDateToTimeZoneIso(value);
139
193
  } else {
140
194
  this.value = value.toString();
141
195
  }
142
196
  }
143
- formatDateToTimeZoneIso(date) {
144
- const offset = date.getTimezoneOffset();
145
- const offsetHours = Math.floor(Math.abs(offset) / 60);
146
- const offsetMinutes = Math.abs(offset) % 60;
147
- date = new Date(date.getTime() - offset * 60 * 1000);
148
- return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
149
- }
150
197
  }
151
198
  exports.UserTrait = UserTrait;
199
+ let ThemeMode = exports.ThemeMode = /*#__PURE__*/function (ThemeMode) {
200
+ ThemeMode["light"] = "light";
201
+ ThemeMode["dark"] = "dark";
202
+ ThemeMode["auto"] = "auto";
203
+ return ThemeMode;
204
+ }({});
205
+ /**
206
+ * Represents a complete set of fonts used by the SDK.
207
+ *
208
+ * @property regular Standard font for normal body text.
209
+ * @property regularItalic Standard font with italic slant.
210
+ * @property bold Bold style font for emphasized content.
211
+ * @property boldItalic Bold style font with italic slant.
212
+ */
213
+ /**
214
+ * Represents a response attribute attached to a survey response.
215
+ *
216
+ * @property name The attribute identifier.
217
+ * @property value The attribute value.
218
+ * @property provider Optional source or provider of the attribute.
219
+ */
220
+ class ResponseAttribute {
221
+ constructor(name, value, provider) {
222
+ if (name === null || value === null) {
223
+ throw new Error("Name and value cannot be null");
224
+ }
225
+ this.name = name;
226
+ if (value instanceof Date) {
227
+ this.value = formatDateToTimeZoneIso(value);
228
+ } else {
229
+ this.value = value.toString();
230
+ }
231
+ this.provider = provider;
232
+ }
233
+ }
234
+ exports.ResponseAttribute = ResponseAttribute;
152
235
  var _default = exports.default = Survicate;
153
236
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","SurvicateBindings","NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","survicate","default","SurvicateIntegrations","exports","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","NativeEventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","constructor","Error","Date","formatDateToTimeZoneIso","toString","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","getTime","toISOString","slice","padStart","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","SurvicateBindings","NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","survicate","default","SurvicateIntegrations","exports","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","NativeEventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","setThemeMode","themeMode","setFonts","fontSystem","setResponseAttribute","attribute","setResponseAttributes","name","provider","attributes","mapped","map","a","formatDateToTimeZoneIso","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","Date","getTime","toISOString","slice","toString","padStart","constructor","Error","ThemeMode","ResponseAttribute","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAM;EAAEC;AAAkB,CAAC,GAAGC,0BAAa;;AAE3C;AACA,MAAMC,oBAA6B,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAEvE,MAAMC,SAAc,GAAGH,oBAAoB,GACvCH,OAAO,CAAC,yBAAyB,CAAC,CAACO,OAAO,GAC1CN,iBAAiB;AAEd,MAAMO,qBAAqB,CAAC;AAAEC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA;AAErC,MAAME,SAAS,CAAC;EACd,OAAOC,YAAY,GAAG,IAAIH,qBAAqB,CAAC,CAAC;EAEjD,OAAOI,eAAeA,CAACC,YAAoB,EAAQ;IACjDP,SAAS,CAACM,eAAe,CAACC,YAAY,CAAC;EACzC;EAEA,OAAOC,aAAaA,CAAA,EAAS;IAC3BR,SAAS,CAACQ,aAAa,CAAC,CAAC;EAC3B;EAEA,OAAOC,WAAWA,CAChBC,SAAiB,EACjBC,eAAwC,EAClC;IACNX,SAAS,CAACS,WAAW,CAACC,SAAS,EAAEC,eAAe,IAAI,CAAC,CAAC,CAAC;EACzD;EAEA,OAAOC,WAAWA,CAACC,UAAkB,EAAQ;IAC3Cb,SAAS,CAACY,WAAW,CAACC,UAAU,CAAC;EACnC;EAEA,OAAOC,WAAWA,CAACD,UAAkB,EAAQ;IAC3Cb,SAAS,CAACc,WAAW,CAACD,UAAU,CAAC;EACnC;;EAEA;AACF;AACA;EACE,OAAOE,SAASA,CAACC,MAAc,EAAQ;IACrChB,SAAS,CAACe,SAAS,CAACC,MAAM,CAAC;EAC7B;;EAEA;AACF;AACA;;EAGE,OAAOC,YAAYA,CACjBC,oBAAwC,EACxCC,UAAmB,EACb;IACN,IAAI,OAAOD,oBAAoB,KAAK,QAAQ,IAAIC,UAAU,KAAKC,SAAS,EAAE;MACxEpB,SAAS,CAACiB,YAAY,CAACC,oBAAoB,EAAEC,UAAU,CAAC;IAC1D,CAAC,MAAM,IAAID,oBAAoB,YAAYG,SAAS,EAAE;MACpDrB,SAAS,CAACiB,YAAY,CACpBC,oBAAoB,CAACI,GAAG,EACxBJ,oBAAoB,CAACK,KACvB,CAAC;IACH;EACF;EAEA,OAAOC,KAAKA,CAAA,EAAS;IACnBxB,SAAS,CAACwB,KAAK,CAAC,CAAC;EACnB;EAEA,OAAOC,yBAAyBA,CAC9BC,QAAgC,EACpB;IACZ,MAAMC,YAAY,GAAG,IAAIC,+BAAkB,CAAC5B,SAAS,CAAC;IAEtD,MAAM6B,yBAAyB,GAAIC,WAAgB,IAAK;MACtD,IAAIC,KAA2B,GAAG;QAAEC,QAAQ,EAAEF,WAAW,CAACE;MAAS,CAAC;MACpE,IAAIN,QAAQ,CAACO,iBAAiB,KAAKb,SAAS,EAAE;QAC5CM,QAAQ,CAACO,iBAAiB,CAAEF,KAAK,CAAC;MACpC;IACF,CAAC;IACD,MAAMG,yBAAyB,GAAGP,YAAY,CAACQ,WAAW,CACxD,mBAAmB,EAClBJ,KAAK,IAAKF,yBAAyB,CAACE,KAAK,CAC5C,CAAC;IAED,MAAMK,0BAA0B,GAAIN,WAAgB,IAAK;MACvD,IAAIO,MAAuB,GAAG;QAC5BC,IAAI,EAAER,WAAW,CAACS,UAAU;QAC5BC,EAAE,EAAEV,WAAW,CAACW,QAAQ;QACxBC,GAAG,EAAEZ,WAAW,CAACa,SAAS;QAC1BpB,KAAK,EAAEO,WAAW,CAACc;MACrB,CAAC;MACD,IAAIb,KAA4B,GAAG;QACjCC,QAAQ,EAAEF,WAAW,CAACE,QAAQ;QAC9Ba,UAAU,EAAEf,WAAW,CAACe,UAAU;QAClCC,WAAW,EAAEhB,WAAW,CAACgB,WAAW;QACpCC,YAAY,EAAEjB,WAAW,CAACiB,YAAY;QACtCC,UAAU,EAAElB,WAAW,CAACkB,UAAU;QAClCC,QAAQ,EAAEnB,WAAW,CAACmB,QAAQ;QAC9BZ,MAAM,EAAEA,MAAM;QACda,cAAc,EAAEpB,WAAW,CAACoB;MAC9B,CAAC;MACD,IAAIxB,QAAQ,CAACyB,kBAAkB,KAAK/B,SAAS,EAAE;QAC7CM,QAAQ,CAACyB,kBAAkB,CAAEpB,KAAK,CAAC;MACrC;IACF,CAAC;IACD,MAAMqB,0BAA0B,GAAGzB,YAAY,CAACQ,WAAW,CACzD,oBAAoB,EACpBC,0BACF,CAAC;IAED,MAAMiB,yBAAyB,GAAIvB,WAAgB,IAAK;MACtD,IAAIC,KAA2B,GAAG;QAAEC,QAAQ,EAAEF,WAAW,CAACE;MAAS,CAAC;MACpE,IAAIN,QAAQ,CAAC4B,iBAAiB,KAAKlC,SAAS,EAAE;QAC5CM,QAAQ,CAAC4B,iBAAiB,CAAEvB,KAAK,CAAC;MACpC;IACF,CAAC;IAED,MAAMwB,yBAAyB,GAAG5B,YAAY,CAACQ,WAAW,CACxD,mBAAmB,EACnBkB,yBACF,CAAC;IAED,MAAMG,sBAAsB,GAAI1B,WAAgB,IAAK;MACnD,IAAIC,KAAwB,GAAG;QAAEC,QAAQ,EAAEF,WAAW,CAACE;MAAS,CAAC;MACjE,IAAIN,QAAQ,CAAC+B,cAAc,KAAKrC,SAAS,EAAE;QACzCM,QAAQ,CAAC+B,cAAc,CAAE1B,KAAK,CAAC;MACjC;IACF,CAAC;IAED,MAAM2B,sBAAsB,GAAG/B,YAAY,CAACQ,WAAW,CACrD,gBAAgB,EAChBqB,sBACF,CAAC;IAED,OAAO,MAAM;MACXtB,yBAAyB,CAACyB,MAAM,CAAC,CAAC;MAClCP,0BAA0B,CAACO,MAAM,CAAC,CAAC;MACnCJ,yBAAyB,CAACI,MAAM,CAAC,CAAC;MAClCD,sBAAsB,CAACC,MAAM,CAAC,CAAC;IACjC,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,SAASA,CAACC,WAAmB,EAAQ;IAC1C7D,SAAS,CAAC4D,SAAS,CAACC,WAAW,CAAC;EAClC;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,YAAYA,CAACC,SAAoB,EAAQ;IAC9C/D,SAAS,CAAC8D,YAAY,CAACC,SAAS,CAAC;EACnC;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,QAAQA,CAACC,UAA+B,EAAQ;IACrDjE,SAAS,CAACgE,QAAQ,CAACC,UAAU,CAAC;EAChC;;EAEA;AACF;AACA;EACE,OAAOC,oBAAoBA,CAACC,SAA4B,EAAQ;IAC9DnE,SAAS,CAACoE,qBAAqB,CAAC,CAAC;MAC/BC,IAAI,EAAEF,SAAS,CAACE,IAAI;MACpB9C,KAAK,EAAE4C,SAAS,CAAC5C,KAAK;MACtB+C,QAAQ,EAAEH,SAAS,CAACG,QAAQ,IAAI;IAClC,CAAC,CAAC,CAAC;EACL;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOF,qBAAqBA,CAACG,UAA+B,EAAQ;IAClE,MAAMC,MAAM,GAAGD,UAAU,CAACE,GAAG,CAAEC,CAAC,KAAM;MACpCL,IAAI,EAAEK,CAAC,CAACL,IAAI;MACZ9C,KAAK,EAAEmD,CAAC,CAACnD,KAAK;MACd+C,QAAQ,EAAEI,CAAC,CAACJ,QAAQ,IAAI;IAC1B,CAAC,CAAC,CAAC;IACHtE,SAAS,CAACoE,qBAAqB,CAACI,MAAM,CAAC;EACzC;AACF;AAEA,SAASG,uBAAuBA,CAACC,IAAU,EAAU;EACnD,MAAMC,MAAM,GAAGD,IAAI,CAACE,iBAAiB,CAAC,CAAC;EACvC,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAACL,MAAM,CAAC,GAAG,EAAE,CAAC;EACrD,MAAMM,aAAa,GAAGH,IAAI,CAACE,GAAG,CAACL,MAAM,CAAC,GAAG,EAAE;EAC3CD,IAAI,GAAG,IAAIQ,IAAI,CAACR,IAAI,CAACS,OAAO,CAAC,CAAC,GAAGR,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;EACpD,OACED,IAAI,CAACU,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAC9BV,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GACxBE,WAAW,CAACS,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GACvC,GAAG,GACHN,aAAa,CAACK,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAE7C;AAEO,MAAMpE,SAAS,CAAC;EAIrBqE,WAAWA,CAACpE,GAAW,EAAEC,KAAuC,EAAE;IAChE,IAAID,GAAG,KAAK,IAAI,IAAIC,KAAK,KAAK,IAAI,EAAE;MAClC,MAAM,IAAIoE,KAAK,CAAC,8BAA8B,CAAC;IACjD;IAEA,IAAI,CAACrE,GAAG,GAAGA,GAAG;IAEd,IAAIC,KAAK,YAAY6D,IAAI,EAAE;MACzB,IAAI,CAAC7D,KAAK,GAAGoD,uBAAuB,CAACpD,KAAK,CAAC;IAC7C,CAAC,MAAM;MACL,IAAI,CAACA,KAAK,GAAGA,KAAK,CAACiE,QAAQ,CAAC,CAAC;IAC/B;EACF;AACF;AAACrF,OAAA,CAAAkB,SAAA,GAAAA,SAAA;AAAA,IAuCWuE,SAAS,GAAAzF,OAAA,CAAAyF,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAMrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,CAAC;EAK7BH,WAAWA,CACTrB,IAAY,EACZ9C,KAAuC,EACvC+C,QAAiB,EACjB;IACA,IAAID,IAAI,KAAK,IAAI,IAAI9C,KAAK,KAAK,IAAI,EAAE;MACnC,MAAM,IAAIoE,KAAK,CAAC,+BAA+B,CAAC;IAClD;IAEA,IAAI,CAACtB,IAAI,GAAGA,IAAI;IAEhB,IAAI9C,KAAK,YAAY6D,IAAI,EAAE;MACzB,IAAI,CAAC7D,KAAK,GAAGoD,uBAAuB,CAACpD,KAAK,CAAC;IAC7C,CAAC,MAAM;MACL,IAAI,CAACA,KAAK,GAAGA,KAAK,CAACiE,QAAQ,CAAC,CAAC;IAC/B;IAEA,IAAI,CAAClB,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAACnE,OAAA,CAAA0F,iBAAA,GAAAA,iBAAA;AAAA,IAAAC,QAAA,GAAA3F,OAAA,CAAAF,OAAA,GAEcG,SAAS","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from "react-native";
4
+ export default TurboModuleRegistry.get("SurvicateBindings");
5
+ //# sourceMappingURL=NativeSurvicateModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeSurvicateModule.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAmBlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,mBAAmB,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
-
1
+ "use strict";
2
2
  //# sourceMappingURL=types.js.map
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+
1
3
  import { createRunOncePlugin } from "@expo/config-plugins";
2
4
  import { withSurvicateAndroidManifest, withSurvicateAndroidMavenRepository } from "./withSurvicateAndroid";
3
5
  import { withSurvicateIosInfoPlist } from "./withSurvicateiOS";
@@ -1 +1 @@
1
- {"version":3,"names":["createRunOncePlugin","withSurvicateAndroidManifest","withSurvicateAndroidMavenRepository","withSurvicateIosInfoPlist","withSurvicateReactNative","config","props","newConfig","configPlugin","pkg","name","version"],"sourceRoot":"../../../src","sources":["expo/withSurvicate.ts"],"mappings":"AAAA,SAAuBA,mBAAmB,QAAQ,sBAAsB;AAExE,SAASC,4BAA4B,EAAEC,mCAAmC,QAAQ,wBAAwB;AAC1G,SAASC,yBAAyB,QAAQ,oBAAoB;AAE9D,MAAMC,wBAA4D,GAAGA,CACnEC,MAAM,EACNC,KAAK,KACF;EACH,IAAIC,SAAS,GAAGF,MAAM;EACtBE,SAAS,GAAGN,4BAA4B,CAACM,SAAS,EAAED,KAAK,CAAC;EAC1DC,SAAS,GAAGL,mCAAmC,CAACK,SAAS,CAAC;EAC1DA,SAAS,GAAGJ,yBAAyB,CAACI,SAAS,EAAED,KAAK,CAAC;EACvD,OAAOC,SAAS;AAClB,CAAC;AAED,MAAMC,YAAY,GAAIC,GAAsC,IAC1DT,mBAAmB,CAACI,wBAAwB,EAAEK,GAAG,CAACC,IAAI,EAAED,GAAG,CAACE,OAAO,CAAC;AAEtE,eAAeH,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["createRunOncePlugin","withSurvicateAndroidManifest","withSurvicateAndroidMavenRepository","withSurvicateIosInfoPlist","withSurvicateReactNative","config","props","newConfig","configPlugin","pkg","name","version"],"sourceRoot":"../../../src","sources":["expo/withSurvicate.ts"],"mappings":";;AAAA,SAAuBA,mBAAmB,QAAQ,sBAAsB;AAExE,SAASC,4BAA4B,EAAEC,mCAAmC,QAAQ,wBAAwB;AAC1G,SAASC,yBAAyB,QAAQ,oBAAoB;AAE9D,MAAMC,wBAA4D,GAAGA,CACnEC,MAAM,EACNC,KAAK,KACF;EACH,IAAIC,SAAS,GAAGF,MAAM;EACtBE,SAAS,GAAGN,4BAA4B,CAACM,SAAS,EAAED,KAAK,CAAC;EAC1DC,SAAS,GAAGL,mCAAmC,CAACK,SAAS,CAAC;EAC1DA,SAAS,GAAGJ,yBAAyB,CAACI,SAAS,EAAED,KAAK,CAAC;EACvD,OAAOC,SAAS;AAClB,CAAC;AAED,MAAMC,YAAY,GAAIC,GAAsC,IAC1DT,mBAAmB,CAACI,wBAAwB,EAAEK,GAAG,CAACC,IAAI,EAAED,GAAG,CAACE,OAAO,CAAC;AAEtE,eAAeH,YAAY","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+
1
3
  import { AndroidConfig, withAndroidManifest, withProjectBuildGradle } from "expo/config-plugins";
2
4
  import { createGeneratedHeaderComment, removeGeneratedContents } from "@expo/config-plugins/build/utils/generateCode";
3
5
 
@@ -1 +1 @@
1
- {"version":3,"names":["AndroidConfig","withAndroidManifest","withProjectBuildGradle","createGeneratedHeaderComment","removeGeneratedContents","addMetaDataItemToMainApplication","getMainApplicationOrThrow","Manifest","withSurvicateAndroidManifest","config","props","modResults","setCustomConfigAsync","workspaceKey","androidManifest","mainApplication","withSurvicateAndroidMavenRepository","language","console","warn","contents","appendContents","src","newSrc","tag","comment","header","includes","sanitizedTarget","contentsToAdd","join","didMerge","didClear"],"sourceRoot":"../../../src","sources":["expo/withSurvicateAndroid.ts"],"mappings":"AAAA,SACEA,aAAa,EAEbC,mBAAmB,EACnBC,sBAAsB,QACjB,qBAAqB;AAG5B,SAEEC,4BAA4B,EAC5BC,uBAAuB,QAClB,+CAA+C;;AAEtD;AACA,MAAM;EAAEC,gCAAgC;EAAEC;AAA0B,CAAC,GACnEN,aAAa,CAACO,QAAQ;AAExB,OAAO,MAAMC,4BAEZ,GAAGA,CAACC,MAAkB,EAAEC,KAA2B,KAAK;EACvD,OAAOT,mBAAmB,CAACQ,MAAM,EAAE,MAAOA,MAAM,IAAK;IACnD;IACAA,MAAM,CAACE,UAAU,GAAG,MAAMC,oBAAoB,CAC5CH,MAAM,CAACE,UAAU,EACjBD,KAAK,CAACG,YACR,CAAC;IACD,OAAOJ,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAED,eAAeG,oBAAoBA,CACjCE,eAAuD,EACvDD,YAAoB,EAC6B;EACjD;EACA,MAAME,eAAe,GAAGT,yBAAyB,CAACQ,eAAe,CAAC;EAElET,gCAAgC,CAC9BU,eAAe;EACf;EACA,oCAAoC;EACpC;EACAF,YACF,CAAC;EAED,OAAOC,eAAe;AACxB;AAEA,OAAO,MAAME,mCAAiD,GAAIP,MAAM,IAAK;EAC3E,OAAOP,sBAAsB,CAACO,MAAM,EAAE,MAAOA,MAAM,IAAK;IACtD,IAAIA,MAAM,CAACE,UAAU,CAACM,QAAQ,KAAK,QAAQ,EAAE;MAC3CC,OAAO,CAACC,IAAI,CACV,oEACF,CAAC;MACD,OAAOV,MAAM;IACf;IAEAA,MAAM,CAACE,UAAU,CAACS,QAAQ,GAAG,MAAMC,cAAc,CAAC;MAChDC,GAAG,EAAEb,MAAM,CAACE,UAAU,CAACS,QAAQ;MAC/BG,MAAM,EAAE,6EAA6E;MACrFC,GAAG,EAAE,mCAAmC;MACxCC,OAAO,EAAE;IACX,CAAC,CAAC,CAACL,QAAQ;IACX,OAAOX,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;;AAED;AACA,SAASY,cAAcA,CAAC;EACtBC,GAAG;EACHC,MAAM;EACNC,GAAG;EACHC;AAMF,CAAC,EAAgB;EACf,MAAMC,MAAM,GAAGvB,4BAA4B,CAACoB,MAAM,EAAEC,GAAG,EAAEC,OAAO,CAAC;EACjE,IAAI,CAACH,GAAG,CAACK,QAAQ,CAACD,MAAM,CAAC,EAAE;IACzB;IACA,MAAME,eAAe,GAAGxB,uBAAuB,CAACkB,GAAG,EAAEE,GAAG,CAAC;IACzD,MAAMK,aAAa,GAAG;IACpB;IACAH,MAAM;IACN;IACAH,MAAM;IACN;IACA,GAAGE,OAAO,mBAAmBD,GAAG,EAAE,CACnC,CAACM,IAAI,CAAC,IAAI,CAAC;IACZ,OAAO;MACLV,QAAQ,EAAEQ,eAAe,IAAIN,GAAG,GAAGO,aAAa;MAChDE,QAAQ,EAAE,IAAI;MACdC,QAAQ,EAAE,CAAC,CAACJ;IACd,CAAC;EACH;EACA,OAAO;IAAER,QAAQ,EAAEE,GAAG;IAAEU,QAAQ,EAAE,KAAK;IAAED,QAAQ,EAAE;EAAM,CAAC;AAC5D","ignoreList":[]}
1
+ {"version":3,"names":["AndroidConfig","withAndroidManifest","withProjectBuildGradle","createGeneratedHeaderComment","removeGeneratedContents","addMetaDataItemToMainApplication","getMainApplicationOrThrow","Manifest","withSurvicateAndroidManifest","config","props","modResults","setCustomConfigAsync","workspaceKey","androidManifest","mainApplication","withSurvicateAndroidMavenRepository","language","console","warn","contents","appendContents","src","newSrc","tag","comment","header","includes","sanitizedTarget","contentsToAdd","join","didMerge","didClear"],"sourceRoot":"../../../src","sources":["expo/withSurvicateAndroid.ts"],"mappings":";;AAAA,SACEA,aAAa,EAEbC,mBAAmB,EACnBC,sBAAsB,QACjB,qBAAqB;AAG5B,SAEEC,4BAA4B,EAC5BC,uBAAuB,QAClB,+CAA+C;;AAEtD;AACA,MAAM;EAAEC,gCAAgC;EAAEC;AAA0B,CAAC,GACnEN,aAAa,CAACO,QAAQ;AAExB,OAAO,MAAMC,4BAEZ,GAAGA,CAACC,MAAkB,EAAEC,KAA2B,KAAK;EACvD,OAAOT,mBAAmB,CAACQ,MAAM,EAAE,MAAOA,MAAM,IAAK;IACnD;IACAA,MAAM,CAACE,UAAU,GAAG,MAAMC,oBAAoB,CAC5CH,MAAM,CAACE,UAAU,EACjBD,KAAK,CAACG,YACR,CAAC;IACD,OAAOJ,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAED,eAAeG,oBAAoBA,CACjCE,eAAuD,EACvDD,YAAoB,EAC6B;EACjD;EACA,MAAME,eAAe,GAAGT,yBAAyB,CAACQ,eAAe,CAAC;EAElET,gCAAgC,CAC9BU,eAAe;EACf;EACA,oCAAoC;EACpC;EACAF,YACF,CAAC;EAED,OAAOC,eAAe;AACxB;AAEA,OAAO,MAAME,mCAAiD,GAAIP,MAAM,IAAK;EAC3E,OAAOP,sBAAsB,CAACO,MAAM,EAAE,MAAOA,MAAM,IAAK;IACtD,IAAIA,MAAM,CAACE,UAAU,CAACM,QAAQ,KAAK,QAAQ,EAAE;MAC3CC,OAAO,CAACC,IAAI,CACV,oEACF,CAAC;MACD,OAAOV,MAAM;IACf;IAEAA,MAAM,CAACE,UAAU,CAACS,QAAQ,GAAG,MAAMC,cAAc,CAAC;MAChDC,GAAG,EAAEb,MAAM,CAACE,UAAU,CAACS,QAAQ;MAC/BG,MAAM,EAAE,6EAA6E;MACrFC,GAAG,EAAE,mCAAmC;MACxCC,OAAO,EAAE;IACX,CAAC,CAAC,CAACL,QAAQ;IACX,OAAOX,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;;AAED;AACA,SAASY,cAAcA,CAAC;EACtBC,GAAG;EACHC,MAAM;EACNC,GAAG;EACHC;AAMF,CAAC,EAAgB;EACf,MAAMC,MAAM,GAAGvB,4BAA4B,CAACoB,MAAM,EAAEC,GAAG,EAAEC,OAAO,CAAC;EACjE,IAAI,CAACH,GAAG,CAACK,QAAQ,CAACD,MAAM,CAAC,EAAE;IACzB;IACA,MAAME,eAAe,GAAGxB,uBAAuB,CAACkB,GAAG,EAAEE,GAAG,CAAC;IACzD,MAAMK,aAAa,GAAG;IACpB;IACAH,MAAM;IACN;IACAH,MAAM;IACN;IACA,GAAGE,OAAO,mBAAmBD,GAAG,EAAE,CACnC,CAACM,IAAI,CAAC,IAAI,CAAC;IACZ,OAAO;MACLV,QAAQ,EAAEQ,eAAe,IAAIN,GAAG,GAAGO,aAAa;MAChDE,QAAQ,EAAE,IAAI;MACdC,QAAQ,EAAE,CAAC,CAACJ;IACd,CAAC;EACH;EACA,OAAO;IAAER,QAAQ,EAAEE,GAAG;IAAEU,QAAQ,EAAE,KAAK;IAAED,QAAQ,EAAE;EAAM,CAAC;AAC5D","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+
1
3
  import { withInfoPlist } from 'expo/config-plugins';
2
4
  export const withSurvicateIosInfoPlist = (config, props) => {
3
5
  return withInfoPlist(config, config => {
@@ -1 +1 @@
1
- {"version":3,"names":["withInfoPlist","withSurvicateIosInfoPlist","config","props","modResults","Survicate","WorkspaceKey","workspaceKey"],"sourceRoot":"../../../src","sources":["expo/withSurvicateiOS.ts"],"mappings":"AAAA,SAAuBA,aAAa,QAAQ,qBAAqB;AAGjE,OAAO,MAAMC,yBAA6D,GAAGA,CAACC,MAAM,EAAEC,KAA2B,KAAK;EAClH,OAAOH,aAAa,CAACE,MAAM,EAAGA,MAAM,IAAK;IACrCA,MAAM,CAACE,UAAU,CAACC,SAAS,GAAG;MAC5BC,YAAY,EAAEH,KAAK,CAACI;IACtB,CAAC;IACD,OAAOL,MAAM;EACjB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["withInfoPlist","withSurvicateIosInfoPlist","config","props","modResults","Survicate","WorkspaceKey","workspaceKey"],"sourceRoot":"../../../src","sources":["expo/withSurvicateiOS.ts"],"mappings":";;AAAA,SAAuBA,aAAa,QAAQ,qBAAqB;AAGjE,OAAO,MAAMC,yBAA6D,GAAGA,CAACC,MAAM,EAAEC,KAA2B,KAAK;EAClH,OAAOH,aAAa,CAACE,MAAM,EAAGA,MAAM,IAAK;IACrCA,MAAM,CAACE,UAAU,CAACC,SAAS,GAAG;MAC5BC,YAAY,EAAEH,KAAK,CAACI;IACtB,CAAC;IACD,OAAOL,MAAM;EACjB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+
1
3
  import { NativeModules, NativeEventEmitter } from "react-native";
2
4
  const {
3
5
  SurvicateBindings
@@ -120,6 +122,60 @@ class Survicate {
120
122
  static setLocale(languageTag) {
121
123
  survicate.setLocale(languageTag);
122
124
  }
125
+
126
+ /**
127
+ * Sets the theme mode for survey appearance.
128
+ *
129
+ * @param themeMode The theme mode to apply: ThemeMode.light, ThemeMode.dark, or ThemeMode.auto (default).
130
+ */
131
+ static setThemeMode(themeMode) {
132
+ survicate.setThemeMode(themeMode);
133
+ }
134
+
135
+ /**
136
+ * Sets custom fonts for use in surveys.
137
+ *
138
+ * @param fontSystem A font configuration to apply.
139
+ */
140
+ static setFonts(fontSystem) {
141
+ survicate.setFonts(fontSystem);
142
+ }
143
+
144
+ /**
145
+ * Shorthand version of {@link setResponseAttributes}.
146
+ */
147
+ static setResponseAttribute(attribute) {
148
+ survicate.setResponseAttributes([{
149
+ name: attribute.name,
150
+ value: attribute.value,
151
+ provider: attribute.provider ?? null
152
+ }]);
153
+ }
154
+
155
+ /**
156
+ * Sets response attributes that will be attached to survey responses.
157
+ *
158
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
159
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
160
+ * to the system along with the user's answers to survey questions.
161
+ *
162
+ * To change a {@link ResponseAttribute} send the same key with a different value.
163
+ */
164
+ static setResponseAttributes(attributes) {
165
+ const mapped = attributes.map(a => ({
166
+ name: a.name,
167
+ value: a.value,
168
+ provider: a.provider ?? null
169
+ }));
170
+ survicate.setResponseAttributes(mapped);
171
+ }
172
+ }
173
+ function formatDateToTimeZoneIso(date) {
174
+ const offset = date.getTimezoneOffset();
175
+ const offsetHours = Math.floor(Math.abs(offset) / 60);
176
+ const offsetMinutes = Math.abs(offset) % 60;
177
+ date = new Date(date.getTime() - offset * 60 * 1000);
178
+ return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
123
179
  }
124
180
  export class UserTrait {
125
181
  constructor(key, value) {
@@ -128,17 +184,47 @@ export class UserTrait {
128
184
  }
129
185
  this.key = key;
130
186
  if (value instanceof Date) {
131
- this.value = this.formatDateToTimeZoneIso(value);
187
+ this.value = formatDateToTimeZoneIso(value);
132
188
  } else {
133
189
  this.value = value.toString();
134
190
  }
135
191
  }
136
- formatDateToTimeZoneIso(date) {
137
- const offset = date.getTimezoneOffset();
138
- const offsetHours = Math.floor(Math.abs(offset) / 60);
139
- const offsetMinutes = Math.abs(offset) % 60;
140
- date = new Date(date.getTime() - offset * 60 * 1000);
141
- return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
192
+ }
193
+ export let ThemeMode = /*#__PURE__*/function (ThemeMode) {
194
+ ThemeMode["light"] = "light";
195
+ ThemeMode["dark"] = "dark";
196
+ ThemeMode["auto"] = "auto";
197
+ return ThemeMode;
198
+ }({});
199
+
200
+ /**
201
+ * Represents a complete set of fonts used by the SDK.
202
+ *
203
+ * @property regular Standard font for normal body text.
204
+ * @property regularItalic Standard font with italic slant.
205
+ * @property bold Bold style font for emphasized content.
206
+ * @property boldItalic Bold style font with italic slant.
207
+ */
208
+
209
+ /**
210
+ * Represents a response attribute attached to a survey response.
211
+ *
212
+ * @property name The attribute identifier.
213
+ * @property value The attribute value.
214
+ * @property provider Optional source or provider of the attribute.
215
+ */
216
+ export class ResponseAttribute {
217
+ constructor(name, value, provider) {
218
+ if (name === null || value === null) {
219
+ throw new Error("Name and value cannot be null");
220
+ }
221
+ this.name = name;
222
+ if (value instanceof Date) {
223
+ this.value = formatDateToTimeZoneIso(value);
224
+ } else {
225
+ this.value = value.toString();
226
+ }
227
+ this.provider = provider;
142
228
  }
143
229
  }
144
230
  export default Survicate;
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","SurvicateBindings","isTurboModuleEnabled","global","__turboModuleProxy","survicate","require","default","SurvicateIntegrations","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","constructor","Error","Date","formatDateToTimeZoneIso","toString","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","getTime","toISOString","slice","padStart"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","SurvicateBindings","isTurboModuleEnabled","global","__turboModuleProxy","survicate","require","default","SurvicateIntegrations","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","setThemeMode","themeMode","setFonts","fontSystem","setResponseAttribute","attribute","setResponseAttributes","name","provider","attributes","mapped","map","a","formatDateToTimeZoneIso","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","Date","getTime","toISOString","slice","toString","padStart","constructor","Error","ThemeMode","ResponseAttribute"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -31,12 +31,37 @@ declare class Survicate {
31
31
  * - Language with script (e.g., "zh-Hans")
32
32
  */
33
33
  static setLocale(languageTag: string): void;
34
+ /**
35
+ * Sets the theme mode for survey appearance.
36
+ *
37
+ * @param themeMode The theme mode to apply: ThemeMode.light, ThemeMode.dark, or ThemeMode.auto (default).
38
+ */
39
+ static setThemeMode(themeMode: ThemeMode): void;
40
+ /**
41
+ * Sets custom fonts for use in surveys.
42
+ *
43
+ * @param fontSystem A font configuration to apply.
44
+ */
45
+ static setFonts(fontSystem: SurvicateFontSystem): void;
46
+ /**
47
+ * Shorthand version of {@link setResponseAttributes}.
48
+ */
49
+ static setResponseAttribute(attribute: ResponseAttribute): void;
50
+ /**
51
+ * Sets response attributes that will be attached to survey responses.
52
+ *
53
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
54
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
55
+ * to the system along with the user's answers to survey questions.
56
+ *
57
+ * To change a {@link ResponseAttribute} send the same key with a different value.
58
+ */
59
+ static setResponseAttributes(attributes: ResponseAttribute[]): void;
34
60
  }
35
61
  export declare class UserTrait {
36
62
  key: string;
37
63
  value: string;
38
64
  constructor(key: string, value: string | number | boolean | Date);
39
- private formatDateToTimeZoneIso;
40
65
  }
41
66
  export type SurveyDisplayedEvent = {
42
67
  surveyId: string;
@@ -69,5 +94,37 @@ export interface SurvicateEventListener {
69
94
  onSurveyCompleted?: (event: SurveyCompletedEvent) => void;
70
95
  onSurveyClosed?: (event: SurveyClosedEvent) => void;
71
96
  }
97
+ export declare enum ThemeMode {
98
+ light = "light",
99
+ dark = "dark",
100
+ auto = "auto"
101
+ }
102
+ /**
103
+ * Represents a complete set of fonts used by the SDK.
104
+ *
105
+ * @property regular Standard font for normal body text.
106
+ * @property regularItalic Standard font with italic slant.
107
+ * @property bold Bold style font for emphasized content.
108
+ * @property boldItalic Bold style font with italic slant.
109
+ */
110
+ export type SurvicateFontSystem = {
111
+ regular: string;
112
+ regularItalic: string;
113
+ bold: string;
114
+ boldItalic: string;
115
+ };
116
+ /**
117
+ * Represents a response attribute attached to a survey response.
118
+ *
119
+ * @property name The attribute identifier.
120
+ * @property value The attribute value.
121
+ * @property provider Optional source or provider of the attribute.
122
+ */
123
+ export declare class ResponseAttribute {
124
+ name: string;
125
+ value: string;
126
+ provider?: string;
127
+ constructor(name: string, value: string | number | boolean | Date, provider?: string);
128
+ }
72
129
  export default Survicate;
73
130
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAWA,qBAAa,qBAAqB;CAAG;AAErC,cAAM,SAAS;IACb,MAAM,CAAC,YAAY,wBAA+B;IAElD,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIlD,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B,MAAM,CAAC,WAAW,CAChB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,IAAI;IAIP,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAChE,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAe/C,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB,MAAM,CAAC,yBAAyB,CAC9B,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,IAAI;IAwEb;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAG5C;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;CAahC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACrD;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@survicate/react-native-survicate",
3
3
  "title": "React Native Survicate Bindings",
4
- "version": "7.0.0",
4
+ "version": "7.2.0",
5
5
  "description": "React Native bindings for Survicate Mobile SDK",
6
6
  "main": "lib/commonjs/index.js",
7
7
  "module": "lib/module/index.js",
@@ -66,11 +66,10 @@
66
66
  "expo": "^54.0.31",
67
67
  "react": "^19.2.3",
68
68
  "react-native": "^0.83.1",
69
- "react-native-builder-bob": "^0.23.1",
69
+ "react-native-builder-bob": "^0.40.17",
70
70
  "typescript": "^5.9.3"
71
71
  },
72
72
  "react-native-builder-bob": {
73
- "exclude": "**/NativeSurvicateModule.ts",
74
73
  "source": "src",
75
74
  "output": "lib",
76
75
  "targets": [
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
21
21
  s.requires_arc = true
22
22
 
23
23
  s.dependency "React"
24
- s.dependency "Survicate", "7.0.0"
24
+ s.dependency "Survicate", "7.2.0"
25
25
  # ...
26
26
  # s.dependency "..."
27
27
 
@@ -13,6 +13,9 @@ export interface Spec extends TurboModule {
13
13
  addListener(eventName: string): void;
14
14
  removeListeners(count: number): void;
15
15
  setLocale(locale: string): void;
16
+ setThemeMode(themeMode: string): void;
17
+ setFonts(fontSystem: Object): void;
18
+ setResponseAttributes(attributes: ReadonlyArray<{ name: string; value: string; provider: string | null }>): void;
16
19
  }
17
20
 
18
21
  export default TurboModuleRegistry.get<Spec>("SurvicateBindings");
package/src/index.ts CHANGED
@@ -156,6 +156,67 @@ class Survicate {
156
156
  static setLocale(languageTag: string): void {
157
157
  survicate.setLocale(languageTag);
158
158
  }
159
+
160
+ /**
161
+ * Sets the theme mode for survey appearance.
162
+ *
163
+ * @param themeMode The theme mode to apply: ThemeMode.light, ThemeMode.dark, or ThemeMode.auto (default).
164
+ */
165
+ static setThemeMode(themeMode: ThemeMode): void {
166
+ survicate.setThemeMode(themeMode);
167
+ }
168
+
169
+ /**
170
+ * Sets custom fonts for use in surveys.
171
+ *
172
+ * @param fontSystem A font configuration to apply.
173
+ */
174
+ static setFonts(fontSystem: SurvicateFontSystem): void {
175
+ survicate.setFonts(fontSystem);
176
+ }
177
+
178
+ /**
179
+ * Shorthand version of {@link setResponseAttributes}.
180
+ */
181
+ static setResponseAttribute(attribute: ResponseAttribute): void {
182
+ survicate.setResponseAttributes([{
183
+ name: attribute.name,
184
+ value: attribute.value,
185
+ provider: attribute.provider ?? null,
186
+ }]);
187
+ }
188
+
189
+ /**
190
+ * Sets response attributes that will be attached to survey responses.
191
+ *
192
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
193
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
194
+ * to the system along with the user's answers to survey questions.
195
+ *
196
+ * To change a {@link ResponseAttribute} send the same key with a different value.
197
+ */
198
+ static setResponseAttributes(attributes: ResponseAttribute[]): void {
199
+ const mapped = attributes.map((a) => ({
200
+ name: a.name,
201
+ value: a.value,
202
+ provider: a.provider ?? null,
203
+ }));
204
+ survicate.setResponseAttributes(mapped);
205
+ }
206
+ }
207
+
208
+ function formatDateToTimeZoneIso(date: Date): string {
209
+ const offset = date.getTimezoneOffset();
210
+ const offsetHours = Math.floor(Math.abs(offset) / 60);
211
+ const offsetMinutes = Math.abs(offset) % 60;
212
+ date = new Date(date.getTime() - offset * 60 * 1000);
213
+ return (
214
+ date.toISOString().slice(0, -5) +
215
+ (offset > 0 ? "-" : "+") +
216
+ offsetHours.toString().padStart(2, "0") +
217
+ ":" +
218
+ offsetMinutes.toString().padStart(2, "0")
219
+ );
159
220
  }
160
221
 
161
222
  export class UserTrait {
@@ -170,25 +231,11 @@ export class UserTrait {
170
231
  this.key = key;
171
232
 
172
233
  if (value instanceof Date) {
173
- this.value = this.formatDateToTimeZoneIso(value);
234
+ this.value = formatDateToTimeZoneIso(value);
174
235
  } else {
175
236
  this.value = value.toString();
176
237
  }
177
238
  }
178
-
179
- private formatDateToTimeZoneIso(date: Date): string {
180
- const offset = date.getTimezoneOffset();
181
- const offsetHours = Math.floor(Math.abs(offset) / 60);
182
- const offsetMinutes = Math.abs(offset) % 60;
183
- date = new Date(date.getTime() - offset * 60 * 1000);
184
- return (
185
- date.toISOString().slice(0, -5) +
186
- (offset > 0 ? "-" : "+") +
187
- offsetHours.toString().padStart(2, "0") +
188
- ":" +
189
- offsetMinutes.toString().padStart(2, "0")
190
- );
191
- }
192
239
  }
193
240
 
194
241
  export type SurveyDisplayedEvent = {
@@ -228,4 +275,58 @@ export interface SurvicateEventListener {
228
275
  onSurveyClosed?: (event: SurveyClosedEvent) => void;
229
276
  }
230
277
 
278
+ export enum ThemeMode {
279
+ light = "light",
280
+ dark = "dark",
281
+ auto = "auto",
282
+ }
283
+
284
+ /**
285
+ * Represents a complete set of fonts used by the SDK.
286
+ *
287
+ * @property regular Standard font for normal body text.
288
+ * @property regularItalic Standard font with italic slant.
289
+ * @property bold Bold style font for emphasized content.
290
+ * @property boldItalic Bold style font with italic slant.
291
+ */
292
+ export type SurvicateFontSystem = {
293
+ regular: string;
294
+ regularItalic: string;
295
+ bold: string;
296
+ boldItalic: string;
297
+ };
298
+
299
+ /**
300
+ * Represents a response attribute attached to a survey response.
301
+ *
302
+ * @property name The attribute identifier.
303
+ * @property value The attribute value.
304
+ * @property provider Optional source or provider of the attribute.
305
+ */
306
+ export class ResponseAttribute {
307
+ name: string;
308
+ value: string;
309
+ provider?: string;
310
+
311
+ constructor(
312
+ name: string,
313
+ value: string | number | boolean | Date,
314
+ provider?: string
315
+ ) {
316
+ if (name === null || value === null) {
317
+ throw new Error("Name and value cannot be null");
318
+ }
319
+
320
+ this.name = name;
321
+
322
+ if (value instanceof Date) {
323
+ this.value = formatDateToTimeZoneIso(value);
324
+ } else {
325
+ this.value = value.toString();
326
+ }
327
+
328
+ this.provider = provider;
329
+ }
330
+ }
331
+
231
332
  export default Survicate;