fleek-track-analytics 1.17.52 → 1.17.54
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/RUDDERSTACK_REACT_NATIVE_DEBUGGING.md +275 -0
- package/lib/event-map/event-data-types/product-detail-page-viewed.d.ts +14 -0
- package/lib/event-map/event-map.d.ts +5 -1
- package/lib/event-map/event-map.js +2 -0
- package/lib/event-map/event-map.js.map +1 -1
- package/lib/react-native/analytics-tool/react-native-rudderstack.js +2 -3
- package/lib/react-native/analytics-tool/react-native-rudderstack.js.map +1 -1
- package/package.json +1 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -371
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -371
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -1982
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# RudderStack React Native Event Volume Debugging Guide
|
|
2
|
+
|
|
3
|
+
## Problem Statement
|
|
4
|
+
|
|
5
|
+
React Native events are appearing in RudderStack's live debugger but have very low volume in the GCS bucket compared to Node.js and Web events:
|
|
6
|
+
- **Node.js**: ~400 events per GCS file
|
|
7
|
+
- **React Native**: Only 1 event per GCS file
|
|
8
|
+
- **Web**: High volume (working well)
|
|
9
|
+
|
|
10
|
+
## Root Cause Analysis
|
|
11
|
+
|
|
12
|
+
### 1. Missing `flush()` Calls (FIXED)
|
|
13
|
+
|
|
14
|
+
**Issue**: The `screenWrapper` and `identifyWrapper` methods had comments indicating flush calls but were missing the actual `await rudderClient.flush()` statements.
|
|
15
|
+
|
|
16
|
+
**Impact**: Events from `screen()` and `identify()` calls were not being immediately sent to the data plane, potentially getting lost or delayed.
|
|
17
|
+
|
|
18
|
+
**Fix Applied**: Added `await rudderClient.flush()` after both `screen()` and `identify()` calls.
|
|
19
|
+
|
|
20
|
+
### 2. RudderStack Warehouse Batching Behavior
|
|
21
|
+
|
|
22
|
+
**Key Finding**: RudderStack's warehouse destinations (BigQuery via GCS) batch events before writing to GCS. The batching happens at multiple levels:
|
|
23
|
+
|
|
24
|
+
1. **SDK Level** (`flushQueueSize: 5`): Events are batched in the SDK before sending to data plane
|
|
25
|
+
2. **Data Plane Level**: Events are received and processed
|
|
26
|
+
3. **Warehouse Destination Level**: Events are batched again before writing to GCS
|
|
27
|
+
|
|
28
|
+
**Potential Issue**: Immediate `flush()` calls after each event might be causing:
|
|
29
|
+
- Events to be sent one at a time to the data plane
|
|
30
|
+
- Warehouse destination to create separate files for each event (or very small batches)
|
|
31
|
+
- Inefficient batching at the warehouse level
|
|
32
|
+
|
|
33
|
+
### 3. Comparison with Node.js Implementation
|
|
34
|
+
|
|
35
|
+
**Node.js Configuration**:
|
|
36
|
+
```typescript
|
|
37
|
+
flushAt: 10, // Batch 10 events
|
|
38
|
+
flushInterval: 5000 // Or wait 5 seconds
|
|
39
|
+
client.flush() // Called after each event (immediate send)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**React Native Configuration**:
|
|
43
|
+
```typescript
|
|
44
|
+
flushQueueSize: 5, // Batch 5 events
|
|
45
|
+
sleepTimeOut: 10, // Retry timeout (not flush interval)
|
|
46
|
+
await flush() // Called after each event (immediate send)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Key Difference**: Node.js uses `flushAt` and `flushInterval`, while React Native uses `flushQueueSize` and `sleepTimeOut`. The React Native SDK's `sleepTimeOut` is for retry delays, not batching intervals.
|
|
50
|
+
|
|
51
|
+
## RudderStack Architecture Understanding
|
|
52
|
+
|
|
53
|
+
### Data Flow
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
React Native App
|
|
57
|
+
↓ (track/screen/identify)
|
|
58
|
+
RudderStack React Native SDK
|
|
59
|
+
↓ (batched by flushQueueSize: 5)
|
|
60
|
+
↓ (flush() sends batch)
|
|
61
|
+
RudderStack Data Plane (Go)
|
|
62
|
+
↓ (processes events)
|
|
63
|
+
Warehouse Destination (BigQuery/GCS)
|
|
64
|
+
↓ (batches events - minBatchSize?)
|
|
65
|
+
↓ (writes to GCS bucket)
|
|
66
|
+
GCS Bucket
|
|
67
|
+
↓ (syncs to BigQuery)
|
|
68
|
+
BigQuery Dataset
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Warehouse Destination Batching
|
|
72
|
+
|
|
73
|
+
Warehouse destinations typically have:
|
|
74
|
+
- **minBatchSize**: Minimum number of events before writing to GCS
|
|
75
|
+
- **maxBatchSize**: Maximum number of events per file
|
|
76
|
+
- **batchTimeout**: Maximum time to wait before writing even if minBatchSize not reached
|
|
77
|
+
|
|
78
|
+
If events arrive one at a time (due to immediate flush), the warehouse destination might:
|
|
79
|
+
1. Wait for `minBatchSize` events before writing
|
|
80
|
+
2. Create a new file for each small batch
|
|
81
|
+
3. Have a timeout that forces writes even with 1 event
|
|
82
|
+
|
|
83
|
+
## Potential Solutions
|
|
84
|
+
|
|
85
|
+
### Solution 1: Remove Immediate Flush (Recommended for Testing)
|
|
86
|
+
|
|
87
|
+
**Strategy**: Let the SDK's natural batching work (`flushQueueSize: 5`)
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// Remove immediate flush() calls
|
|
91
|
+
await rudderClient.track(eventName, eventData);
|
|
92
|
+
// Let SDK batch naturally - will flush when queue reaches 5 events
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Pros**:
|
|
96
|
+
- Events will be batched in groups of 5
|
|
97
|
+
- More efficient for warehouse destinations
|
|
98
|
+
- Reduces network calls
|
|
99
|
+
|
|
100
|
+
**Cons**:
|
|
101
|
+
- Events might be delayed up to the flush interval (if configured)
|
|
102
|
+
- Events might be lost if app closes before flush
|
|
103
|
+
|
|
104
|
+
### Solution 2: Increase flushQueueSize
|
|
105
|
+
|
|
106
|
+
**Strategy**: Increase batch size to match Node.js behavior
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
flushQueueSize: 20, // Match Node.js flushAt: 10, but React Native might need more
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Pros**:
|
|
113
|
+
- Larger batches = fewer files in GCS
|
|
114
|
+
- More efficient warehouse processing
|
|
115
|
+
|
|
116
|
+
**Cons**:
|
|
117
|
+
- Larger memory footprint
|
|
118
|
+
- Longer delay before events are sent
|
|
119
|
+
|
|
120
|
+
### Solution 3: Hybrid Approach - Conditional Flush
|
|
121
|
+
|
|
122
|
+
**Strategy**: Only flush on critical events or app lifecycle events
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
// For most events, let natural batching work
|
|
126
|
+
await rudderClient.track(eventName, eventData);
|
|
127
|
+
|
|
128
|
+
// Only flush immediately for critical events
|
|
129
|
+
if (isCriticalEvent(eventName)) {
|
|
130
|
+
await rudderClient.flush();
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Solution 4: Check Warehouse Destination Configuration
|
|
135
|
+
|
|
136
|
+
**Action Items**:
|
|
137
|
+
1. Check BigQuery destination configuration in RudderStack control plane
|
|
138
|
+
2. Look for `minBatchSize`, `maxBatchSize`, or `batchTimeout` settings
|
|
139
|
+
3. Verify if there's a minimum batch size requirement
|
|
140
|
+
4. Check if the new source (`fleek-customer-app-new`) has different batching settings
|
|
141
|
+
|
|
142
|
+
## Debugging Steps
|
|
143
|
+
|
|
144
|
+
### 1. Verify Event Flow
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
// Add detailed logging
|
|
148
|
+
console.log('RUDDERSTACK CHECK: [TRACK] Before track call');
|
|
149
|
+
await rudderClient.track(eventName, eventData);
|
|
150
|
+
console.log('RUDDERSTACK CHECK: [TRACK] After track call, before flush');
|
|
151
|
+
await rudderClient.flush();
|
|
152
|
+
console.log('RUDDERSTACK CHECK: [TRACK] After flush');
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 2. Monitor Data Plane Logs
|
|
156
|
+
|
|
157
|
+
Check RudderStack data plane logs for:
|
|
158
|
+
- Event reception rate
|
|
159
|
+
- Batch sizes received
|
|
160
|
+
- Warehouse destination processing times
|
|
161
|
+
- Any errors or warnings
|
|
162
|
+
|
|
163
|
+
### 3. Compare Event Payloads
|
|
164
|
+
|
|
165
|
+
Compare a React Native event payload with a Node.js event payload:
|
|
166
|
+
- Check for missing required fields
|
|
167
|
+
- Verify event structure matches expected format
|
|
168
|
+
- Check for any filtering or transformation rules
|
|
169
|
+
|
|
170
|
+
### 4. Check Warehouse Destination Status
|
|
171
|
+
|
|
172
|
+
In RudderStack control plane:
|
|
173
|
+
- Check destination status (enabled/disabled)
|
|
174
|
+
- Review destination logs
|
|
175
|
+
- Check for any transformation rules that might filter events
|
|
176
|
+
- Verify GCS bucket permissions
|
|
177
|
+
|
|
178
|
+
### 5. Test Without Immediate Flush
|
|
179
|
+
|
|
180
|
+
Temporarily remove `flush()` calls and test:
|
|
181
|
+
- Do events still appear in live debugger? (They should, but delayed)
|
|
182
|
+
- Do events batch better in GCS? (They should)
|
|
183
|
+
- What's the delay before events appear?
|
|
184
|
+
|
|
185
|
+
## Implementation Status
|
|
186
|
+
|
|
187
|
+
### ✅ Completed Changes (Combination of Option A + B)
|
|
188
|
+
|
|
189
|
+
1. **Increased Batch Size**: Changed `flushQueueSize` from `5` to `20`
|
|
190
|
+
- Matches Node.js behavior more closely
|
|
191
|
+
- Improves warehouse destination batching efficiency
|
|
192
|
+
|
|
193
|
+
2. **Removed Immediate Flush**: Removed `await rudderClient.flush()` calls from:
|
|
194
|
+
- `trackWrapper` method
|
|
195
|
+
- `screenWrapper` method
|
|
196
|
+
- `identifyWrapper` method
|
|
197
|
+
|
|
198
|
+
3. **Natural Batching**: SDK now batches events naturally
|
|
199
|
+
- Events accumulate in queue until reaching 20 events
|
|
200
|
+
- SDK automatically flushes when queue reaches `flushQueueSize`
|
|
201
|
+
- This creates larger batches for warehouse destinations
|
|
202
|
+
|
|
203
|
+
### Expected Behavior
|
|
204
|
+
|
|
205
|
+
- **Before**: Events sent one at a time → 1 event per GCS file
|
|
206
|
+
- **After**: Events batched in groups of 20 → ~400+ events per GCS file (similar to Node.js)
|
|
207
|
+
|
|
208
|
+
### Trade-offs
|
|
209
|
+
|
|
210
|
+
- **Pros**:
|
|
211
|
+
- Better warehouse batching efficiency
|
|
212
|
+
- Fewer GCS files
|
|
213
|
+
- More efficient data plane processing
|
|
214
|
+
- Matches Node.js behavior
|
|
215
|
+
|
|
216
|
+
- **Cons**:
|
|
217
|
+
- Events may be delayed up to when 20 events accumulate
|
|
218
|
+
- Events might be lost if app closes before flush (though SDK handles this)
|
|
219
|
+
- Slight delay before events appear in live debugger
|
|
220
|
+
|
|
221
|
+
## Recommended Next Steps
|
|
222
|
+
|
|
223
|
+
1. **Test**: Verify events still appear in live debugger (may have slight delay)
|
|
224
|
+
2. **Monitor**: Check GCS bucket for improved batching (should see ~400+ events per file)
|
|
225
|
+
3. **Compare**: Compare event volume with Node.js events
|
|
226
|
+
4. **Verify**: Check warehouse destination logs for batch processing
|
|
227
|
+
5. **Configure**: If needed, adjust warehouse destination batching settings
|
|
228
|
+
|
|
229
|
+
## Configuration Recommendations
|
|
230
|
+
|
|
231
|
+
### Current Configuration
|
|
232
|
+
```typescript
|
|
233
|
+
flushQueueSize: 5, // Batch 5 events before sending
|
|
234
|
+
sleepTimeOut: 10, // Retry timeout (seconds)
|
|
235
|
+
await flush() // Immediate flush after each event
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Recommended Configuration (Option A - Immediate Flush)
|
|
239
|
+
```typescript
|
|
240
|
+
flushQueueSize: 5, // Keep small for responsiveness
|
|
241
|
+
sleepTimeOut: 10, // Keep default
|
|
242
|
+
await flush() // Keep immediate flush for reliability
|
|
243
|
+
// Note: This might cause small batches in warehouse
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Recommended Configuration (Option B - Natural Batching)
|
|
247
|
+
```typescript
|
|
248
|
+
flushQueueSize: 20, // Increase batch size
|
|
249
|
+
sleepTimeOut: 10, // Keep default
|
|
250
|
+
// Remove immediate flush() - let SDK batch naturally
|
|
251
|
+
// Add flush() only on app lifecycle events (background/foreground)
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Recommended Configuration (Option C - Hybrid)
|
|
255
|
+
```typescript
|
|
256
|
+
flushQueueSize: 10, // Moderate batch size
|
|
257
|
+
sleepTimeOut: 10, // Keep default
|
|
258
|
+
// Flush immediately only for critical events
|
|
259
|
+
// Let natural batching work for regular events
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## References
|
|
263
|
+
|
|
264
|
+
- [RudderStack Architecture](https://www.rudderstack.com/docs/resources/rudderstack-architecture/)
|
|
265
|
+
- [RudderStack React Native SDK](https://www.rudderstack.com/docs/sources/event-streams/sdks/rudderstack-react-native-sdk/)
|
|
266
|
+
- [RudderStack Warehouse Destinations](https://www.rudderstack.com/docs/destinations/warehouse-destinations/)
|
|
267
|
+
- [RudderStack BigQuery Integration](https://www.rudderstack.com/integration/bigquery/)
|
|
268
|
+
|
|
269
|
+
## Notes
|
|
270
|
+
|
|
271
|
+
- The `sleepTimeOut` parameter in React Native SDK is for retry delays, not flush intervals
|
|
272
|
+
- React Native SDK doesn't have a `flushInterval` like Node.js SDK
|
|
273
|
+
- Warehouse destinations batch events independently of SDK batching
|
|
274
|
+
- The live debugger shows events immediately, but warehouse writes are batched
|
|
275
|
+
|
|
@@ -27,3 +27,17 @@ export interface IProductGradeBottomSheetClicked {
|
|
|
27
27
|
grade?: any;
|
|
28
28
|
product_id?: string;
|
|
29
29
|
}
|
|
30
|
+
export interface IResaleValueSummaryViewed {
|
|
31
|
+
product_id?: string;
|
|
32
|
+
resale_lower_bound?: number;
|
|
33
|
+
resale_upper_bound?: number;
|
|
34
|
+
productPriceVarientList: any;
|
|
35
|
+
isResponded?: boolean;
|
|
36
|
+
respondedValue?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface IResaleValueSummaryResponded {
|
|
39
|
+
product_id?: string;
|
|
40
|
+
resale_lower_bound?: number;
|
|
41
|
+
resale_upper_bound?: number;
|
|
42
|
+
respondedValue?: boolean;
|
|
43
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IAddToCart, IPay0NowClicked } from './event-data-types/cart/add-to-cart';
|
|
2
2
|
import { IHomeScreenViewed } from './event-data-types/home-screen-viewed';
|
|
3
3
|
import { IMessageClicked } from './event-data-types/message-clicked';
|
|
4
|
-
import { IProductDetailPageViewed, IProductGradeBottomSheetClicked, IProductPageASKaQuestion } from './event-data-types/product-detail-page-viewed';
|
|
4
|
+
import { IProductDetailPageViewed, IProductGradeBottomSheetClicked, IProductPageASKaQuestion, IResaleValueSummaryResponded, IResaleValueSummaryViewed } from './event-data-types/product-detail-page-viewed';
|
|
5
5
|
import { IProductTileClicked } from './event-data-types/product-tile-clicked';
|
|
6
6
|
import { ISaleFilterClick } from './event-data-types/sale-filter-click';
|
|
7
7
|
import { IInformationInquired } from './event-data-types/information-inquired';
|
|
@@ -469,6 +469,8 @@ export declare enum EVENT_NAMES {
|
|
|
469
469
|
DEMAND_HUB_LISTING_CREATION = "listing_created_successfully_from_demand_hub",
|
|
470
470
|
DEMAND_HUB_BOTTOMSHET_OPEN = "Demand_hub_listing_creation_bottomsheet_opened",
|
|
471
471
|
PRODUCT_GRADE_BOTTOMSHEET_CLICKED = "product_grade_bottomsheet_clicked",
|
|
472
|
+
RESALE_VALUE_SUMMARY_VIEWED = "resale_value_summary_viewed",
|
|
473
|
+
RESALE_VALUE_SUMMARY_RESPONDED = "resale_value_summary_responded",
|
|
472
474
|
CUSTOM_TEST_EVENT = "custom_test_event",
|
|
473
475
|
SEARCH_PAGE_PIECES_TAB_VIEWED = "search_page_pieces_tab_viewed",
|
|
474
476
|
VENDOR_PAGE_PIECES_TAB_VIEWED = "vendor_page_pieces_tab_viewed"
|
|
@@ -785,6 +787,8 @@ export interface EVENT_MAP {
|
|
|
785
787
|
[EVENT_NAMES.CUSTOMER_APP_VENDOR_LISTING_SEARCH_RESULTS]: ICustomerAppVendorListingSearchResults;
|
|
786
788
|
[EVENT_NAMES.MAO_PRODUCT_PAGE]: IMaoProductPage;
|
|
787
789
|
[EVENT_NAMES.PRODUCT_PAGE_ASK_A_QUESTION]: IProductPageASKaQuestion;
|
|
790
|
+
[EVENT_NAMES.RESALE_VALUE_SUMMARY_VIEWED]: IResaleValueSummaryViewed;
|
|
791
|
+
[EVENT_NAMES.RESALE_VALUE_SUMMARY_RESPONDED]: IResaleValueSummaryResponded;
|
|
788
792
|
[EVENT_NAMES.MY_REVIEWS_CLICKED]: IEmptyEventData;
|
|
789
793
|
[EVENT_NAMES.REVIEWS_SHORTCUT_CLICKED]: IEmptyEventData;
|
|
790
794
|
[EVENT_NAMES.OVERVIEW_TAB_CLICKED]: IEmptyEventData;
|
|
@@ -342,6 +342,8 @@ var EVENT_NAMES;
|
|
|
342
342
|
EVENT_NAMES["DEMAND_HUB_LISTING_CREATION"] = "listing_created_successfully_from_demand_hub";
|
|
343
343
|
EVENT_NAMES["DEMAND_HUB_BOTTOMSHET_OPEN"] = "Demand_hub_listing_creation_bottomsheet_opened";
|
|
344
344
|
EVENT_NAMES["PRODUCT_GRADE_BOTTOMSHEET_CLICKED"] = "product_grade_bottomsheet_clicked";
|
|
345
|
+
EVENT_NAMES["RESALE_VALUE_SUMMARY_VIEWED"] = "resale_value_summary_viewed";
|
|
346
|
+
EVENT_NAMES["RESALE_VALUE_SUMMARY_RESPONDED"] = "resale_value_summary_responded";
|
|
345
347
|
EVENT_NAMES["CUSTOM_TEST_EVENT"] = "custom_test_event";
|
|
346
348
|
EVENT_NAMES["SEARCH_PAGE_PIECES_TAB_VIEWED"] = "search_page_pieces_tab_viewed";
|
|
347
349
|
EVENT_NAMES["VENDOR_PAGE_PIECES_TAB_VIEWED"] = "vendor_page_pieces_tab_viewed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-map.js","sourceRoot":"","sources":["../../src/event-map/event-map.ts"],"names":[],"mappings":";;;AAmRA,IAAY,
|
|
1
|
+
{"version":3,"file":"event-map.js","sourceRoot":"","sources":["../../src/event-map/event-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ const reactNativeRudderstack = async ({ writeKey, dataPlaneUrl, app, dimensionsM
|
|
|
16
16
|
dataPlaneUrl: normalizedDataPlaneUrl,
|
|
17
17
|
trackAppLifecycleEvents: true,
|
|
18
18
|
recordScreenViews: false,
|
|
19
|
-
flushQueueSize:
|
|
20
|
-
|
|
19
|
+
flushQueueSize: 10,
|
|
20
|
+
enableBackgroundMode: true,
|
|
21
21
|
});
|
|
22
22
|
await rudder_sdk_react_native_1.default.optOut(false);
|
|
23
23
|
isInitialized = true;
|
|
@@ -29,7 +29,6 @@ const reactNativeRudderstack = async ({ writeKey, dataPlaneUrl, app, dimensionsM
|
|
|
29
29
|
const eventData = Object.assign(Object.assign({}, data), { anlaytics_lib_version: package_json_1.version, fleek_platform: app, time_stamp: Date.now(), ads_params: dimensionsManager.adsDimensionValues, url_params: dimensionsManager.urlDimensionValues, internetStats: dimensionsManager.internetDimensions });
|
|
30
30
|
console.log('RUDDERSTACK CHECK: [TRACK] eventName:', eventName, 'eventData:', JSON.stringify(eventData));
|
|
31
31
|
await rudder_sdk_react_native_1.default.track(eventName, eventData);
|
|
32
|
-
await rudder_sdk_react_native_1.default.flush();
|
|
33
32
|
return Promise.resolve();
|
|
34
33
|
};
|
|
35
34
|
const screenWrapper = async (name, options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-native-rudderstack.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/react-native-rudderstack.ts"],"names":[],"mappings":";;;;;;AAAA,mGAAgE;AAEhE,wDAAgD;AAchD,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,IAAI,eAAe,GAAkB,IAAI,CAAC;AAC1C,IAAI,mBAAmB,GAAkB,IAAI,CAAC;AAEvC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,QAAQ,EACR,YAAY,EACZ,GAAG,EACH,iBAAiB,GACW,EAAgC,EAAE;IAE9D,MAAM,sBAAsB,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAGrG,IAAI,CAAC,aAAa,IAAI,eAAe,KAAK,QAAQ,IAAI,mBAAmB,KAAK,sBAAsB,EAAE,CAAC;QACrG,MAAM,iCAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;YACjC,YAAY,EAAE,sBAAsB;YACpC,uBAAuB,EAAE,IAAI;YAC7B,iBAAiB,EAAE,KAAK;YACxB,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"react-native-rudderstack.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/react-native-rudderstack.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/coverage/base.css
DELETED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
body, html {
|
|
2
|
-
margin:0; padding: 0;
|
|
3
|
-
height: 100%;
|
|
4
|
-
}
|
|
5
|
-
body {
|
|
6
|
-
font-family: Helvetica Neue, Helvetica, Arial;
|
|
7
|
-
font-size: 14px;
|
|
8
|
-
color:#333;
|
|
9
|
-
}
|
|
10
|
-
.small { font-size: 12px; }
|
|
11
|
-
*, *:after, *:before {
|
|
12
|
-
-webkit-box-sizing:border-box;
|
|
13
|
-
-moz-box-sizing:border-box;
|
|
14
|
-
box-sizing:border-box;
|
|
15
|
-
}
|
|
16
|
-
h1 { font-size: 20px; margin: 0;}
|
|
17
|
-
h2 { font-size: 14px; }
|
|
18
|
-
pre {
|
|
19
|
-
font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
|
20
|
-
margin: 0;
|
|
21
|
-
padding: 0;
|
|
22
|
-
-moz-tab-size: 2;
|
|
23
|
-
-o-tab-size: 2;
|
|
24
|
-
tab-size: 2;
|
|
25
|
-
}
|
|
26
|
-
a { color:#0074D9; text-decoration:none; }
|
|
27
|
-
a:hover { text-decoration:underline; }
|
|
28
|
-
.strong { font-weight: bold; }
|
|
29
|
-
.space-top1 { padding: 10px 0 0 0; }
|
|
30
|
-
.pad2y { padding: 20px 0; }
|
|
31
|
-
.pad1y { padding: 10px 0; }
|
|
32
|
-
.pad2x { padding: 0 20px; }
|
|
33
|
-
.pad2 { padding: 20px; }
|
|
34
|
-
.pad1 { padding: 10px; }
|
|
35
|
-
.space-left2 { padding-left:55px; }
|
|
36
|
-
.space-right2 { padding-right:20px; }
|
|
37
|
-
.center { text-align:center; }
|
|
38
|
-
.clearfix { display:block; }
|
|
39
|
-
.clearfix:after {
|
|
40
|
-
content:'';
|
|
41
|
-
display:block;
|
|
42
|
-
height:0;
|
|
43
|
-
clear:both;
|
|
44
|
-
visibility:hidden;
|
|
45
|
-
}
|
|
46
|
-
.fl { float: left; }
|
|
47
|
-
@media only screen and (max-width:640px) {
|
|
48
|
-
.col3 { width:100%; max-width:100%; }
|
|
49
|
-
.hide-mobile { display:none!important; }
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.quiet {
|
|
53
|
-
color: #7f7f7f;
|
|
54
|
-
color: rgba(0,0,0,0.5);
|
|
55
|
-
}
|
|
56
|
-
.quiet a { opacity: 0.7; }
|
|
57
|
-
|
|
58
|
-
.fraction {
|
|
59
|
-
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
|
|
60
|
-
font-size: 10px;
|
|
61
|
-
color: #555;
|
|
62
|
-
background: #E8E8E8;
|
|
63
|
-
padding: 4px 5px;
|
|
64
|
-
border-radius: 3px;
|
|
65
|
-
vertical-align: middle;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
div.path a:link, div.path a:visited { color: #333; }
|
|
69
|
-
table.coverage {
|
|
70
|
-
border-collapse: collapse;
|
|
71
|
-
margin: 10px 0 0 0;
|
|
72
|
-
padding: 0;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
table.coverage td {
|
|
76
|
-
margin: 0;
|
|
77
|
-
padding: 0;
|
|
78
|
-
vertical-align: top;
|
|
79
|
-
}
|
|
80
|
-
table.coverage td.line-count {
|
|
81
|
-
text-align: right;
|
|
82
|
-
padding: 0 5px 0 20px;
|
|
83
|
-
}
|
|
84
|
-
table.coverage td.line-coverage {
|
|
85
|
-
text-align: right;
|
|
86
|
-
padding-right: 10px;
|
|
87
|
-
min-width:20px;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
table.coverage td span.cline-any {
|
|
91
|
-
display: inline-block;
|
|
92
|
-
padding: 0 5px;
|
|
93
|
-
width: 100%;
|
|
94
|
-
}
|
|
95
|
-
.missing-if-branch {
|
|
96
|
-
display: inline-block;
|
|
97
|
-
margin-right: 5px;
|
|
98
|
-
border-radius: 3px;
|
|
99
|
-
position: relative;
|
|
100
|
-
padding: 0 4px;
|
|
101
|
-
background: #333;
|
|
102
|
-
color: yellow;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.skip-if-branch {
|
|
106
|
-
display: none;
|
|
107
|
-
margin-right: 10px;
|
|
108
|
-
position: relative;
|
|
109
|
-
padding: 0 4px;
|
|
110
|
-
background: #ccc;
|
|
111
|
-
color: white;
|
|
112
|
-
}
|
|
113
|
-
.missing-if-branch .typ, .skip-if-branch .typ {
|
|
114
|
-
color: inherit !important;
|
|
115
|
-
}
|
|
116
|
-
.coverage-summary {
|
|
117
|
-
border-collapse: collapse;
|
|
118
|
-
width: 100%;
|
|
119
|
-
}
|
|
120
|
-
.coverage-summary tr { border-bottom: 1px solid #bbb; }
|
|
121
|
-
.keyline-all { border: 1px solid #ddd; }
|
|
122
|
-
.coverage-summary td, .coverage-summary th { padding: 10px; }
|
|
123
|
-
.coverage-summary tbody { border: 1px solid #bbb; }
|
|
124
|
-
.coverage-summary td { border-right: 1px solid #bbb; }
|
|
125
|
-
.coverage-summary td:last-child { border-right: none; }
|
|
126
|
-
.coverage-summary th {
|
|
127
|
-
text-align: left;
|
|
128
|
-
font-weight: normal;
|
|
129
|
-
white-space: nowrap;
|
|
130
|
-
}
|
|
131
|
-
.coverage-summary th.file { border-right: none !important; }
|
|
132
|
-
.coverage-summary th.pct { }
|
|
133
|
-
.coverage-summary th.pic,
|
|
134
|
-
.coverage-summary th.abs,
|
|
135
|
-
.coverage-summary td.pct,
|
|
136
|
-
.coverage-summary td.abs { text-align: right; }
|
|
137
|
-
.coverage-summary td.file { white-space: nowrap; }
|
|
138
|
-
.coverage-summary td.pic { min-width: 120px !important; }
|
|
139
|
-
.coverage-summary tfoot td { }
|
|
140
|
-
|
|
141
|
-
.coverage-summary .sorter {
|
|
142
|
-
height: 10px;
|
|
143
|
-
width: 7px;
|
|
144
|
-
display: inline-block;
|
|
145
|
-
margin-left: 0.5em;
|
|
146
|
-
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
|
|
147
|
-
}
|
|
148
|
-
.coverage-summary .sorted .sorter {
|
|
149
|
-
background-position: 0 -20px;
|
|
150
|
-
}
|
|
151
|
-
.coverage-summary .sorted-desc .sorter {
|
|
152
|
-
background-position: 0 -10px;
|
|
153
|
-
}
|
|
154
|
-
.status-line { height: 10px; }
|
|
155
|
-
/* yellow */
|
|
156
|
-
.cbranch-no { background: yellow !important; color: #111; }
|
|
157
|
-
/* dark red */
|
|
158
|
-
.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
|
|
159
|
-
.low .chart { border:1px solid #C21F39 }
|
|
160
|
-
.highlighted,
|
|
161
|
-
.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
|
|
162
|
-
background: #C21F39 !important;
|
|
163
|
-
}
|
|
164
|
-
/* medium red */
|
|
165
|
-
.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
|
|
166
|
-
/* light red */
|
|
167
|
-
.low, .cline-no { background:#FCE1E5 }
|
|
168
|
-
/* light green */
|
|
169
|
-
.high, .cline-yes { background:rgb(230,245,208) }
|
|
170
|
-
/* medium green */
|
|
171
|
-
.cstat-yes { background:rgb(161,215,106) }
|
|
172
|
-
/* dark green */
|
|
173
|
-
.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
|
|
174
|
-
.high .chart { border:1px solid rgb(77,146,33) }
|
|
175
|
-
/* dark yellow (gold) */
|
|
176
|
-
.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
|
|
177
|
-
.medium .chart { border:1px solid #f9cd0b; }
|
|
178
|
-
/* light yellow */
|
|
179
|
-
.medium { background: #fff4c2; }
|
|
180
|
-
|
|
181
|
-
.cstat-skip { background: #ddd; color: #111; }
|
|
182
|
-
.fstat-skip { background: #ddd; color: #111 !important; }
|
|
183
|
-
.cbranch-skip { background: #ddd !important; color: #111; }
|
|
184
|
-
|
|
185
|
-
span.cline-neutral { background: #eaeaea; }
|
|
186
|
-
|
|
187
|
-
.coverage-summary td.empty {
|
|
188
|
-
opacity: .5;
|
|
189
|
-
padding-top: 4px;
|
|
190
|
-
padding-bottom: 4px;
|
|
191
|
-
line-height: 1;
|
|
192
|
-
color: #888;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
.cover-fill, .cover-empty {
|
|
196
|
-
display:inline-block;
|
|
197
|
-
height: 12px;
|
|
198
|
-
}
|
|
199
|
-
.chart {
|
|
200
|
-
line-height: 0;
|
|
201
|
-
}
|
|
202
|
-
.cover-empty {
|
|
203
|
-
background: white;
|
|
204
|
-
}
|
|
205
|
-
.cover-full {
|
|
206
|
-
border-right: none !important;
|
|
207
|
-
}
|
|
208
|
-
pre.prettyprint {
|
|
209
|
-
border: none !important;
|
|
210
|
-
padding: 0 !important;
|
|
211
|
-
margin: 0 !important;
|
|
212
|
-
}
|
|
213
|
-
.com { color: #999 !important; }
|
|
214
|
-
.ignore-none { color: #999; font-weight: normal; }
|
|
215
|
-
|
|
216
|
-
.wrapper {
|
|
217
|
-
min-height: 100%;
|
|
218
|
-
height: auto !important;
|
|
219
|
-
height: 100%;
|
|
220
|
-
margin: 0 auto -48px;
|
|
221
|
-
}
|
|
222
|
-
.footer, .push {
|
|
223
|
-
height: 48px;
|
|
224
|
-
}
|