@sentiance-react-native/event-timeline 6.11.0-alpha.2 → 6.11.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/android/src/main/java/com/sentiance/react/bridge/eventtimeline/SentianceEventTimelineModule.java +32 -15
- package/android/src/main/java/com/sentiance/react/bridge/eventtimeline/SentianceFeedbackModule.java +6 -1
- package/android/src/main/java/com/sentiance/react/bridge/eventtimeline/converters/OnDeviceTypesConverter.java +3 -2
- package/lib/errors.d.ts +8 -0
- package/lib/errors.js +19 -0
- package/lib/feedback/feedback-native-module.d.ts +7 -0
- package/lib/feedback/feedback-native-module.js +22 -0
- package/lib/feedback/index.d.ts +6 -0
- package/lib/feedback/index.js +19 -0
- package/lib/feedback/types.d.ts +11 -0
- package/lib/feedback/types.js +16 -0
- package/lib/index.d.ts +6 -174
- package/lib/index.js +29 -68
- package/lib/timeline/event-timeline-native-module.d.ts +10 -0
- package/lib/timeline/event-timeline-native-module.js +25 -0
- package/lib/timeline/index.d.ts +8 -0
- package/lib/timeline/index.js +40 -0
- package/lib/timeline/timeline-event-emitter.d.ts +10 -0
- package/lib/timeline/timeline-event-emitter.js +27 -0
- package/lib/timeline/types.d.ts +265 -0
- package/lib/timeline/types.js +11 -0
- package/lib/types.d.ts +2 -0
- package/lib/types.js +18 -0
- package/package.json +2 -2
- package/tsconfig.tsbuildinfo +1 -0
- package/lib/errors/errors.d.ts +0 -3
- package/lib/errors/errors.js +0 -13
- package/lib/feedback.js +0 -40
|
@@ -4,6 +4,7 @@ import static com.sentiance.react.bridge.eventtimeline.ErrorCodes.E_TRANSPORT_TA
|
|
|
4
4
|
import static com.sentiance.react.bridge.eventtimeline.EventTimelineEmitter.TIMELINE_UPDATE_EVENT;
|
|
5
5
|
|
|
6
6
|
import androidx.annotation.NonNull;
|
|
7
|
+
import androidx.annotation.Nullable;
|
|
7
8
|
|
|
8
9
|
import com.facebook.react.bridge.Promise;
|
|
9
10
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
@@ -22,7 +23,8 @@ import java.util.Date;
|
|
|
22
23
|
import java.util.List;
|
|
23
24
|
|
|
24
25
|
public class SentianceEventTimelineModule extends AbstractSentianceModule {
|
|
25
|
-
|
|
26
|
+
static final String NATIVE_MODULE_NAME = "SentianceEventTimeline";
|
|
27
|
+
static final String JS_PAYLOAD_KEY_INCLUDE_PROVISIONAL_EVENTS = "includeProvisionalEvents";
|
|
26
28
|
|
|
27
29
|
private final EventTimelineApi mEventTimelineApi;
|
|
28
30
|
private final EventTimelineEmitter mEmitter;
|
|
@@ -42,9 +44,9 @@ public class SentianceEventTimelineModule extends AbstractSentianceModule {
|
|
|
42
44
|
|
|
43
45
|
@Override
|
|
44
46
|
protected void addSupportedEventSubscriptions(SentianceSubscriptionsManager subscriptionsManager) {
|
|
45
|
-
|
|
47
|
+
mSubscriptionsManager.addSupportedSubscription(
|
|
46
48
|
TIMELINE_UPDATE_EVENT,
|
|
47
|
-
mEventTimelineApi::
|
|
49
|
+
mEventTimelineApi::setProvisionalAwareTimelineUpdateListener,
|
|
48
50
|
listener -> mEventTimelineApi.setTimelineUpdateListener(null),
|
|
49
51
|
SentianceSubscriptionsManager.SubscriptionType.SINGLE
|
|
50
52
|
);
|
|
@@ -52,27 +54,27 @@ public class SentianceEventTimelineModule extends AbstractSentianceModule {
|
|
|
52
54
|
|
|
53
55
|
@Override
|
|
54
56
|
@ReactMethod
|
|
55
|
-
protected void
|
|
57
|
+
protected void addNativeListener(String eventName, int subscriptionId, @Nullable ReadableMap payload, Promise promise) {
|
|
56
58
|
if (rejectIfNotInitialized(promise)) {
|
|
57
59
|
return;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
switch (eventName) {
|
|
63
|
+
case TIMELINE_UPDATE_EVENT:
|
|
64
|
+
mSubscriptionsManager.addSubscription(eventName, subscriptionId, (EventTimelineUpdateListener) mEmitter::sendTimelineUpdateEvent);
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
61
67
|
promise.resolve(null);
|
|
62
68
|
}
|
|
63
69
|
|
|
64
70
|
@Override
|
|
65
71
|
@ReactMethod
|
|
66
|
-
protected void
|
|
72
|
+
protected void removeNativeListener(String eventName, int subscriptionId, Promise promise) {
|
|
67
73
|
if (rejectIfNotInitialized(promise)) {
|
|
68
74
|
return;
|
|
69
75
|
}
|
|
70
76
|
|
|
71
|
-
|
|
72
|
-
case TIMELINE_UPDATE_EVENT:
|
|
73
|
-
mSubscriptionsManager.addSubscription(eventName, subscriptionId, (EventTimelineUpdateListener) mEmitter::sendTimelineUpdateEvent);
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
77
|
+
mSubscriptionsManager.removeSubscription(subscriptionId, eventName);
|
|
76
78
|
promise.resolve(null);
|
|
77
79
|
}
|
|
78
80
|
|
|
@@ -95,25 +97,40 @@ public class SentianceEventTimelineModule extends AbstractSentianceModule {
|
|
|
95
97
|
}
|
|
96
98
|
|
|
97
99
|
@ReactMethod
|
|
98
|
-
public void getTimelineUpdates(final Double afterEpochTimeMs,
|
|
100
|
+
public void getTimelineUpdates(final Double afterEpochTimeMs,
|
|
101
|
+
final boolean includeProvisionalEvents,
|
|
102
|
+
final Promise promise) {
|
|
99
103
|
if (rejectIfNotInitialized(promise)) {
|
|
100
104
|
return;
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
Date afterDate = new Date(afterEpochTimeMs.longValue());
|
|
104
|
-
List<Event> events
|
|
108
|
+
List<Event> events;
|
|
109
|
+
if (includeProvisionalEvents) {
|
|
110
|
+
events = mEventTimelineApi.getTimelineUpdatesIncludingProvisionalEvents(afterDate);
|
|
111
|
+
} else {
|
|
112
|
+
events = mEventTimelineApi.getTimelineUpdates(afterDate);
|
|
113
|
+
}
|
|
105
114
|
promise.resolve(onDeviceTypesConverter.convertEvents(events));
|
|
106
115
|
}
|
|
107
116
|
|
|
108
117
|
@ReactMethod
|
|
109
|
-
public void getTimelineEvents(final Double fromEpochTimeMs,
|
|
118
|
+
public void getTimelineEvents(final Double fromEpochTimeMs,
|
|
119
|
+
final Double toEpochTimeMs,
|
|
120
|
+
final boolean includeProvisionalEvents,
|
|
121
|
+
final Promise promise) {
|
|
110
122
|
if (rejectIfNotInitialized(promise)) {
|
|
111
123
|
return;
|
|
112
124
|
}
|
|
113
125
|
|
|
114
126
|
Date fromDate = new Date(fromEpochTimeMs.longValue());
|
|
115
127
|
Date toDate = new Date(toEpochTimeMs.longValue());
|
|
116
|
-
List<Event> events
|
|
128
|
+
List<Event> events;
|
|
129
|
+
if (includeProvisionalEvents) {
|
|
130
|
+
events = mEventTimelineApi.getTimelineEventsIncludingProvisionalOnes(fromDate, toDate);
|
|
131
|
+
} else {
|
|
132
|
+
events = mEventTimelineApi.getTimelineEvents(fromDate, toDate);
|
|
133
|
+
}
|
|
117
134
|
promise.resolve(onDeviceTypesConverter.convertEvents(events));
|
|
118
135
|
}
|
|
119
136
|
|
package/android/src/main/java/com/sentiance/react/bridge/eventtimeline/SentianceFeedbackModule.java
CHANGED
|
@@ -4,9 +4,12 @@ import static com.sentiance.react.bridge.eventtimeline.ErrorCodes.E_INVALID_FEED
|
|
|
4
4
|
import static com.sentiance.react.bridge.eventtimeline.ErrorCodes.E_OCCUPANT_ROLE_FEEDBACK_SUBMISSION;
|
|
5
5
|
|
|
6
6
|
import androidx.annotation.NonNull;
|
|
7
|
+
import androidx.annotation.Nullable;
|
|
8
|
+
|
|
7
9
|
import com.facebook.react.bridge.Promise;
|
|
8
10
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
9
11
|
import com.facebook.react.bridge.ReactMethod;
|
|
12
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
10
13
|
import com.sentiance.react.bridge.core.common.SentianceSubscriptionsManager;
|
|
11
14
|
import com.sentiance.react.bridge.core.common.base.AbstractSentianceModule;
|
|
12
15
|
import com.sentiance.react.bridge.eventtimeline.converters.OnDeviceTypesConverter;
|
|
@@ -32,12 +35,14 @@ public class SentianceFeedbackModule extends AbstractSentianceModule {
|
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
@Override
|
|
38
|
+
@ReactMethod
|
|
35
39
|
protected void removeNativeListener(String eventName, int subscriptionId, Promise promise) {
|
|
36
40
|
// Implementation can be added here if needed
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
@Override
|
|
40
|
-
|
|
44
|
+
@ReactMethod
|
|
45
|
+
protected void addNativeListener(String eventName, int subscriptionId, @Nullable ReadableMap payload, Promise promise) {
|
|
41
46
|
// Implementation can be added here if needed
|
|
42
47
|
}
|
|
43
48
|
|
|
@@ -46,7 +46,7 @@ public class OnDeviceTypesConverter {
|
|
|
46
46
|
public static final String JS_KEY_TRANSPORT_TAGS = "transportTags";
|
|
47
47
|
public static final String JS_KEY_IS_SYNTHETIC = "isSynthetic";
|
|
48
48
|
public static final String JS_KEY_OCCUPANT_ROLE = "occupantRole";
|
|
49
|
-
|
|
49
|
+
public static final String JS_KEY_IS_PROVISIONAL = "isProvisional";
|
|
50
50
|
|
|
51
51
|
private final TransportTagsConverter transportTagsConverter;
|
|
52
52
|
|
|
@@ -92,8 +92,9 @@ public class OnDeviceTypesConverter {
|
|
|
92
92
|
map.putDouble(JS_KEY_LAST_UPDATE_TIME_EPOCH, event.getLastUpdateTime().getEpochTime());
|
|
93
93
|
|
|
94
94
|
map.putString(JS_KEY_TYPE, event.getEventType().toString());
|
|
95
|
+
map.putBoolean(JS_KEY_IS_PROVISIONAL, event.isProvisional());
|
|
95
96
|
|
|
96
|
-
|
|
97
|
+
if (event instanceof StationaryEvent) {
|
|
97
98
|
addStationaryEventInfo(map, (StationaryEvent) event);
|
|
98
99
|
} else if (event instanceof TransportEvent) {
|
|
99
100
|
addTransportEventInfo(map, (TransportEvent) event);
|
package/lib/errors.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const E_TRANSPORT_TAG_ERROR = "E_TRANSPORT_TAG_ERROR";
|
|
2
|
+
export declare class TransportTaggingError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare function isErrorWithCodeAndMsg(e: unknown): e is {
|
|
6
|
+
code: string;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
package/lib/errors.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isErrorWithCodeAndMsg = exports.TransportTaggingError = exports.E_TRANSPORT_TAG_ERROR = void 0;
|
|
4
|
+
exports.E_TRANSPORT_TAG_ERROR = "E_TRANSPORT_TAG_ERROR";
|
|
5
|
+
class TransportTaggingError extends Error {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = this.constructor.name;
|
|
9
|
+
Object.setPrototypeOf(this, TransportTaggingError.prototype);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.TransportTaggingError = TransportTaggingError;
|
|
13
|
+
function isErrorWithCodeAndMsg(e) {
|
|
14
|
+
return (typeof e === "object" &&
|
|
15
|
+
e !== null &&
|
|
16
|
+
typeof e.code === "string" &&
|
|
17
|
+
typeof e.message === "string");
|
|
18
|
+
}
|
|
19
|
+
exports.isErrorWithCodeAndMsg = isErrorWithCodeAndMsg;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type NativeModule } from "@sentiance-react-native/core/lib/generated/native-module";
|
|
2
|
+
import { type OccupantRoleFeedback, type OccupantRoleFeedbackResult } from "./types";
|
|
3
|
+
export declare const NATIVE_MODULE_NAME = "SentianceFeedback";
|
|
4
|
+
export interface FeedbackModule extends NativeModule {
|
|
5
|
+
submitOccupantRoleFeedback(transportId: string, occupantRoleFeedback: OccupantRoleFeedback): Promise<OccupantRoleFeedbackResult>;
|
|
6
|
+
}
|
|
7
|
+
export default function (): FeedbackModule;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NATIVE_MODULE_NAME = void 0;
|
|
7
|
+
const native_module_1 = require("@sentiance-react-native/core/lib/generated/native-module");
|
|
8
|
+
const require_native_module_1 = __importDefault(require("@sentiance-react-native/core/lib/generated/require-native-module"));
|
|
9
|
+
exports.NATIVE_MODULE_NAME = "SentianceFeedback";
|
|
10
|
+
function default_1() {
|
|
11
|
+
const module = (0, require_native_module_1.default)({
|
|
12
|
+
androidName: exports.NATIVE_MODULE_NAME,
|
|
13
|
+
isModuleVerified: function (unverifiedModule) {
|
|
14
|
+
return (typeof unverifiedModule.submitOccupantRoleFeedback === "function") && (0, native_module_1.isValidNativeModule)(unverifiedModule);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
if (!module) {
|
|
18
|
+
throw new Error("Could not locate the feedback native module.");
|
|
19
|
+
}
|
|
20
|
+
return module;
|
|
21
|
+
}
|
|
22
|
+
exports.default = default_1;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type OccupantRoleFeedback, type OccupantRoleFeedbackResult } from "./types";
|
|
2
|
+
export declare const submitOccupantRoleFeedback: (transportId: string, occupantRoleFeedback: OccupantRoleFeedback) => Promise<OccupantRoleFeedbackResult>;
|
|
3
|
+
declare const _default: {
|
|
4
|
+
submitOccupantRoleFeedback: (transportId: string, occupantRoleFeedback: "DRIVER" | "PASSENGER") => Promise<OccupantRoleFeedbackResult>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.submitOccupantRoleFeedback = void 0;
|
|
7
|
+
const feedback_native_module_1 = __importDefault(require("./feedback-native-module"));
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
const nativeModule = (0, feedback_native_module_1.default)();
|
|
10
|
+
const submitOccupantRoleFeedback = (transportId, occupantRoleFeedback) => {
|
|
11
|
+
if (!(0, types_1.isValidOccupantRoleFeedback)(occupantRoleFeedback)) {
|
|
12
|
+
throw new Error("Invalid feedback type: " + occupantRoleFeedback);
|
|
13
|
+
}
|
|
14
|
+
return nativeModule.submitOccupantRoleFeedback(transportId, occupantRoleFeedback);
|
|
15
|
+
};
|
|
16
|
+
exports.submitOccupantRoleFeedback = submitOccupantRoleFeedback;
|
|
17
|
+
exports.default = {
|
|
18
|
+
submitOccupantRoleFeedback: exports.submitOccupantRoleFeedback
|
|
19
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type OccupantRoleFeedbackResult = "ACCEPTED" | "TRANSPORT_IS_PROVISIONAL" | "TRANSPORT_TYPE_NOT_SUPPORTED" | "TRANSPORT_NOT_FOUND" | "TRANSPORT_NOT_YET_COMPLETE" | "FEEDBACK_ALREADY_PROVIDED" | "UNEXPECTED_ERROR";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
declare const OCCUPANT_ROLE_FEEDBACK_VALUES: ("DRIVER" | "PASSENGER")[];
|
|
6
|
+
export type OccupantRoleFeedback = (typeof OCCUPANT_ROLE_FEEDBACK_VALUES)[number];
|
|
7
|
+
export declare function isValidOccupantRoleFeedback(value: unknown): value is OccupantRoleFeedback;
|
|
8
|
+
export interface SentianceFeedback {
|
|
9
|
+
submitOccupantRoleFeedback(transportId: string, occupantRoleFeedback: OccupantRoleFeedback): Promise<OccupantRoleFeedbackResult>;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidOccupantRoleFeedback = void 0;
|
|
4
|
+
const types_1 = require("../timeline/types");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
const OCCUPANT_ROLE_FEEDBACK_VALUES = types_1.OCCUPANT_ROLE_VALUES.filter((role) => role !== "UNAVAILABLE");
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
const validOccupantRoleFeedbackValues = new Set(OCCUPANT_ROLE_FEEDBACK_VALUES);
|
|
13
|
+
function isValidOccupantRoleFeedback(value) {
|
|
14
|
+
return validOccupantRoleFeedbackValues.has(value);
|
|
15
|
+
}
|
|
16
|
+
exports.isValidOccupantRoleFeedback = isValidOccupantRoleFeedback;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,174 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
startTimeEpoch: number; // in milliseconds
|
|
8
|
-
lastUpdateTime: string;
|
|
9
|
-
lastUpdateTimeEpoch: number; // in milliseconds
|
|
10
|
-
endTime: string | null;
|
|
11
|
-
endTimeEpoch: number | null; // in milliseconds
|
|
12
|
-
durationInSeconds: number | null;
|
|
13
|
-
type: EventType;
|
|
14
|
-
// stationary event fields
|
|
15
|
-
location: GeoLocation | null;
|
|
16
|
-
venue: Venue | null;
|
|
17
|
-
// transport event fields
|
|
18
|
-
transportMode: TransportMode | null;
|
|
19
|
-
waypoints: Waypoint[];
|
|
20
|
-
distance?: number; // in meters
|
|
21
|
-
transportTags: TransportTags;
|
|
22
|
-
occupantRole: OccupantRole;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface GeoLocation {
|
|
26
|
-
latitude: number;
|
|
27
|
-
longitude: number;
|
|
28
|
-
accuracy: number;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface Venue {
|
|
32
|
-
location: GeoLocation | null;
|
|
33
|
-
significance: VenueSignificance;
|
|
34
|
-
type: VenueType;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export type VenueType =
|
|
38
|
-
| "UNKNOWN"
|
|
39
|
-
| "DRINK_DAY"
|
|
40
|
-
| "DRINK_EVENING"
|
|
41
|
-
| "EDUCATION_INDEPENDENT"
|
|
42
|
-
| "EDUCATION_PARENTS"
|
|
43
|
-
| "HEALTH"
|
|
44
|
-
| "INDUSTRIAL"
|
|
45
|
-
| "LEISURE_BEACH"
|
|
46
|
-
| "LEISURE_DAY"
|
|
47
|
-
| "LEISURE_EVENING"
|
|
48
|
-
| "LEISURE_MUSEUM"
|
|
49
|
-
| "LEISURE_NATURE"
|
|
50
|
-
| "LEISURE_PARK"
|
|
51
|
-
| "OFFICE"
|
|
52
|
-
| "RELIGION"
|
|
53
|
-
| "RESIDENTIAL"
|
|
54
|
-
| "RESTO_MID"
|
|
55
|
-
| "RESTO_SHORT"
|
|
56
|
-
| "SHOP_LONG"
|
|
57
|
-
| "SHOP_SHORT"
|
|
58
|
-
| "SPORT"
|
|
59
|
-
| "SPORT_ATTEND"
|
|
60
|
-
| "TRAVEL_BUS"
|
|
61
|
-
| "TRAVEL_CONFERENCE"
|
|
62
|
-
| "TRAVEL_FILL"
|
|
63
|
-
| "TRAVEL_HOTEL"
|
|
64
|
-
| "TRAVEL_LONG"
|
|
65
|
-
| "TRAVEL_SHORT"
|
|
66
|
-
|
|
67
|
-
export type VenueSignificance =
|
|
68
|
-
| "UNKNOWN"
|
|
69
|
-
| "HOME"
|
|
70
|
-
| "WORK"
|
|
71
|
-
| "POINT_OF_INTEREST";
|
|
72
|
-
|
|
73
|
-
export type EventType =
|
|
74
|
-
| "UNKNOWN"
|
|
75
|
-
| "STATIONARY"
|
|
76
|
-
| "OFF_THE_GRID"
|
|
77
|
-
| "IN_TRANSPORT";
|
|
78
|
-
|
|
79
|
-
export type TransportMode =
|
|
80
|
-
| "UNKNOWN"
|
|
81
|
-
| "BICYCLE"
|
|
82
|
-
| "WALKING"
|
|
83
|
-
| "RUNNING"
|
|
84
|
-
| "TRAM"
|
|
85
|
-
| "TRAIN"
|
|
86
|
-
| "CAR"
|
|
87
|
-
| "BUS"
|
|
88
|
-
| "MOTORCYCLE";
|
|
89
|
-
|
|
90
|
-
export type OccupantRole =
|
|
91
|
-
| "DRIVER"
|
|
92
|
-
| "PASSENGER"
|
|
93
|
-
| "UNAVAILABLE";
|
|
94
|
-
|
|
95
|
-
export type OccupantRoleFeedback = Exclude<OccupantRole, "UNAVAILABLE">;
|
|
96
|
-
|
|
97
|
-
export type OccupantRoleFeedbackResult =
|
|
98
|
-
| "ACCEPTED"
|
|
99
|
-
| "TRANSPORT_TYPE_NOT_SUPPORTED"
|
|
100
|
-
| "TRANSPORT_NOT_FOUND"
|
|
101
|
-
| "TRANSPORT_NOT_YET_COMPLETE"
|
|
102
|
-
| "FEEDBACK_ALREADY_PROVIDED"
|
|
103
|
-
| "UNEXPECTED_ERROR";
|
|
104
|
-
|
|
105
|
-
export interface Waypoint {
|
|
106
|
-
latitude: number;
|
|
107
|
-
longitude: number;
|
|
108
|
-
accuracy: number; // in meters
|
|
109
|
-
timestamp: number; // UTC epoch time in milliseconds
|
|
110
|
-
speedInMps?: number; // in meters per second
|
|
111
|
-
speedLimitInMps?: number; // in meters per second
|
|
112
|
-
hasUnlimitedSpeedLimit: boolean;
|
|
113
|
-
isSpeedLimitInfoSet: boolean;
|
|
114
|
-
isSynthetic: boolean;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export type TransportTags = { [key: string]: string };
|
|
118
|
-
|
|
119
|
-
export interface SentianceFeedback {
|
|
120
|
-
submitOccupantRoleFeedback(transportId: string, occupantRoleFeedback: OccupantRoleFeedback): Promise<OccupantRoleFeedbackResult>;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export interface SentianceEventTimeline {
|
|
124
|
-
getTimelineUpdates(afterEpochTimeMs: number): Promise<Event[]>;
|
|
125
|
-
getTimelineEvents(fromEpochTimeMs: number, toEpochTimeMs: number): Promise<Event[]>;
|
|
126
|
-
getTimelineEvent(eventId: string): Promise<Event | null>;
|
|
127
|
-
addTimelineUpdateListener(onTimelineUpdated: (event: Event) => void): Promise<EmitterSubscription>;
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Sets the tags that will be assigned to a detected transport.
|
|
131
|
-
*
|
|
132
|
-
* @remarks
|
|
133
|
-
* The provided tags will be assigned to a transport at the moment the transport ends. When you
|
|
134
|
-
* receive an {@link Event} representing the ended transport, it will include these tags.
|
|
135
|
-
*
|
|
136
|
-
* The supplied tags are persisted and applied to future transports, even after the app is restarted.
|
|
137
|
-
* By calling this method again, you will replace the tags that will be assigned to future transports.
|
|
138
|
-
*
|
|
139
|
-
* You can include up to 6 tags (key-value pairs), and each tag component (key or value) must
|
|
140
|
-
* be at most 256 characters.
|
|
141
|
-
*
|
|
142
|
-
* @example Setting custom transport tags
|
|
143
|
-
* try {
|
|
144
|
-
* await SentianceEventTimeline.setTransportTags({
|
|
145
|
-
* key1: "value1",
|
|
146
|
-
* key2: "value2"
|
|
147
|
-
* });
|
|
148
|
-
* console.log('Transport tags have been set.');
|
|
149
|
-
* } catch (error) {
|
|
150
|
-
* if (error instanceof TransportTagsError) {
|
|
151
|
-
* console.error(`Failed to set transport tags: ${error.message}`);
|
|
152
|
-
* } else {
|
|
153
|
-
* console.error(`Error: ${error.message}`);
|
|
154
|
-
* }
|
|
155
|
-
* }
|
|
156
|
-
*
|
|
157
|
-
* @param tags The transport tags to set
|
|
158
|
-
*
|
|
159
|
-
* @throws TransportTaggingError if the supplied tags count is more than 6, or if one of the tag components exceeds
|
|
160
|
-
* the 256 characters limit.
|
|
161
|
-
*/
|
|
162
|
-
setTransportTags(tags: TransportTags): Promise<void>;
|
|
163
|
-
|
|
164
|
-
sentianceFeedback: SentianceFeedback;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* @deprecated Use SentianceEventTimeline instead.
|
|
169
|
-
*/
|
|
170
|
-
export type EventTimelineApi = SentianceEventTimeline;
|
|
171
|
-
|
|
172
|
-
const sentianceEventTimeline: SentianceEventTimeline;
|
|
173
|
-
export default sentianceEventTimeline;
|
|
174
|
-
}
|
|
1
|
+
import { SentianceEventTimeline } from "./timeline/types";
|
|
2
|
+
export * from "./types";
|
|
3
|
+
export * from "./timeline";
|
|
4
|
+
export * from "./feedback";
|
|
5
|
+
declare const module: SentianceEventTimeline;
|
|
6
|
+
export default module;
|
package/lib/index.js
CHANGED
|
@@ -1,72 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const sentianceFeedback = require("./feedback");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const TIMELINE_UPDATE_EVENT = "SENTIANCE_TIMELINE_UPDATE_EVENT";
|
|
11
|
-
|
|
12
|
-
let didLocateNativeModule = true;
|
|
13
|
-
let eventTimelineModule = {};
|
|
14
|
-
if (Platform.OS === "android") {
|
|
15
|
-
if (!SentianceEventTimeline) {
|
|
16
|
-
didLocateNativeModule = false;
|
|
17
|
-
const nativeModuleName = varToString({ SentianceEventTimeline });
|
|
18
|
-
console.error(`Could not locate the native ${nativeModuleName} module.
|
|
19
|
-
Make sure that your native code is properly linked, and that the module name you specified is correct.`);
|
|
20
|
-
} else {
|
|
21
|
-
eventTimelineModule = SentianceEventTimeline;
|
|
22
|
-
}
|
|
23
|
-
} else {
|
|
24
|
-
if (!SentianceCore) {
|
|
25
|
-
didLocateNativeModule = false;
|
|
26
|
-
const nativeModuleName = varToString({ SentianceCore });
|
|
27
|
-
console.error(`Could not locate the native ${nativeModuleName} module.
|
|
28
|
-
Make sure that your native code is properly linked, and that the module name you specified is correct.`);
|
|
29
|
-
} else {
|
|
30
|
-
eventTimelineModule = SentianceCore;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (didLocateNativeModule) {
|
|
35
|
-
const emitter = new SentianceEventEmitter(eventTimelineModule);
|
|
36
|
-
|
|
37
|
-
eventTimelineModule._addTimelineUpdateListener = async (onTimelineUpdated) => {
|
|
38
|
-
return createEventListener(TIMELINE_UPDATE_EVENT, emitter, onTimelineUpdated);
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const getTimelineUpdates = (afterEpochTimeMs) => eventTimelineModule.getTimelineUpdates(afterEpochTimeMs);
|
|
43
|
-
|
|
44
|
-
const getTimelineEvents = (fromEpochTimeMs, toEpochTimeMs) => eventTimelineModule.getTimelineEvents(fromEpochTimeMs, toEpochTimeMs);
|
|
45
|
-
|
|
46
|
-
const getTimelineEvent = (eventId) => eventTimelineModule.getTimelineEvent(eventId);
|
|
47
|
-
|
|
48
|
-
const addTimelineUpdateListener = eventTimelineModule._addTimelineUpdateListener;
|
|
49
|
-
|
|
50
|
-
const setTransportTags = async (tags) => {
|
|
51
|
-
try {
|
|
52
|
-
return await eventTimelineModule.setTransportTags(tags);
|
|
53
|
-
} catch (e) {
|
|
54
|
-
if (e.code === E_TRANSPORT_TAG_ERROR) {
|
|
55
|
-
throw new TransportTaggingError(e.message);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
56
7
|
}
|
|
57
|
-
|
|
58
|
-
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
59
15
|
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
getTimelineUpdates,
|
|
63
|
-
getTimelineEvents,
|
|
64
|
-
getTimelineEvent,
|
|
65
|
-
addTimelineUpdateListener,
|
|
66
|
-
setTransportTags,
|
|
67
|
-
sentianceFeedback
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
68
18
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
const feedback_1 = __importDefault(require("./feedback"));
|
|
21
|
+
const timeline_1 = require("./timeline");
|
|
22
|
+
__exportStar(require("./types"), exports);
|
|
23
|
+
__exportStar(require("./timeline"), exports);
|
|
24
|
+
__exportStar(require("./feedback"), exports);
|
|
25
|
+
const module = {
|
|
26
|
+
getTimelineUpdates: timeline_1.getTimelineUpdates,
|
|
27
|
+
getTimelineEvents: timeline_1.getTimelineEvents,
|
|
28
|
+
getTimelineEvent: timeline_1.getTimelineEvent,
|
|
29
|
+
setTransportTags: timeline_1.setTransportTags,
|
|
30
|
+
addTimelineUpdateListener: timeline_1.addTimelineUpdateListener,
|
|
31
|
+
sentianceFeedback: feedback_1.default
|
|
72
32
|
};
|
|
33
|
+
exports.default = module;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type NativeModule } from "@sentiance-react-native/core/lib/generated/native-module";
|
|
2
|
+
import type { Event, TransportTags } from "./types";
|
|
3
|
+
export declare const NATIVE_MODULE_NAME = "SentianceEventTimeline";
|
|
4
|
+
export interface EventTimelineModule extends NativeModule {
|
|
5
|
+
getTimelineUpdates(afterEpochTimeMs: number, includeProvisionalEvents: boolean): Promise<Event[]>;
|
|
6
|
+
getTimelineEvents(fromEpochTimeMs: number, toEpochTimeMs: number, includeProvisionalEvents: boolean): Promise<Event[]>;
|
|
7
|
+
getTimelineEvent(eventId: string): Promise<Event | null>;
|
|
8
|
+
setTransportTags(tags: TransportTags): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export default function (): EventTimelineModule;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NATIVE_MODULE_NAME = void 0;
|
|
7
|
+
const native_module_1 = require("@sentiance-react-native/core/lib/generated/native-module");
|
|
8
|
+
const require_native_module_1 = __importDefault(require("@sentiance-react-native/core/lib/generated/require-native-module"));
|
|
9
|
+
exports.NATIVE_MODULE_NAME = "SentianceEventTimeline";
|
|
10
|
+
function default_1() {
|
|
11
|
+
const module = (0, require_native_module_1.default)({
|
|
12
|
+
androidName: exports.NATIVE_MODULE_NAME,
|
|
13
|
+
isModuleVerified: function (unverifiedModule) {
|
|
14
|
+
return (typeof unverifiedModule.getTimelineUpdates === "function" &&
|
|
15
|
+
typeof unverifiedModule.getTimelineEvents === "function" &&
|
|
16
|
+
typeof unverifiedModule.getTimelineEvent === "function" &&
|
|
17
|
+
typeof unverifiedModule.setTransportTags === "function") && (0, native_module_1.isValidNativeModule)(unverifiedModule);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
if (!module) {
|
|
21
|
+
throw new Error("Could not locate the event timeline native module.");
|
|
22
|
+
}
|
|
23
|
+
return module;
|
|
24
|
+
}
|
|
25
|
+
exports.default = default_1;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Event, TransportTags } from "./types";
|
|
2
|
+
import { type TimelineUpdateListener } from "./timeline-event-emitter";
|
|
3
|
+
import { type EmitterSubscription } from "react-native";
|
|
4
|
+
export declare const getTimelineUpdates: (afterEpochTimeMs: number, includeProvisionalEvents?: boolean) => Promise<Event[]>;
|
|
5
|
+
export declare const getTimelineEvents: (fromEpochTimeMs: number, toEpochTimeMs: number, includeProvisionalEvents?: boolean) => Promise<Event[]>;
|
|
6
|
+
export declare const getTimelineEvent: (eventId: string) => Promise<Event | null>;
|
|
7
|
+
export declare const setTransportTags: (tags: TransportTags) => Promise<void>;
|
|
8
|
+
export declare const addTimelineUpdateListener: (listener: TimelineUpdateListener, includeProvisionalEvents?: boolean) => Promise<EmitterSubscription>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.addTimelineUpdateListener = exports.setTransportTags = exports.getTimelineEvent = exports.getTimelineEvents = exports.getTimelineUpdates = void 0;
|
|
16
|
+
const event_timeline_native_module_1 = __importDefault(require("./event-timeline-native-module"));
|
|
17
|
+
const timeline_event_emitter_1 = __importDefault(require("./timeline-event-emitter"));
|
|
18
|
+
const errors_1 = require("../errors");
|
|
19
|
+
const nativeModule = (0, event_timeline_native_module_1.default)();
|
|
20
|
+
const emitter = new timeline_event_emitter_1.default(nativeModule);
|
|
21
|
+
const getTimelineUpdates = (afterEpochTimeMs, includeProvisionalEvents = false) => nativeModule.getTimelineUpdates(afterEpochTimeMs, includeProvisionalEvents);
|
|
22
|
+
exports.getTimelineUpdates = getTimelineUpdates;
|
|
23
|
+
const getTimelineEvents = (fromEpochTimeMs, toEpochTimeMs, includeProvisionalEvents = false) => nativeModule.getTimelineEvents(fromEpochTimeMs, toEpochTimeMs, includeProvisionalEvents);
|
|
24
|
+
exports.getTimelineEvents = getTimelineEvents;
|
|
25
|
+
const getTimelineEvent = (eventId) => nativeModule.getTimelineEvent(eventId);
|
|
26
|
+
exports.getTimelineEvent = getTimelineEvent;
|
|
27
|
+
const setTransportTags = (tags) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
try {
|
|
29
|
+
return yield nativeModule.setTransportTags(tags);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
if ((0, errors_1.isErrorWithCodeAndMsg)(e) && e.code == errors_1.E_TRANSPORT_TAG_ERROR) {
|
|
33
|
+
throw new errors_1.TransportTaggingError(e.message);
|
|
34
|
+
}
|
|
35
|
+
throw e;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
exports.setTransportTags = setTransportTags;
|
|
39
|
+
const addTimelineUpdateListener = (listener, includeProvisionalEvents = false) => emitter.addEventTimelineListener(listener, includeProvisionalEvents);
|
|
40
|
+
exports.addTimelineUpdateListener = addTimelineUpdateListener;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type EventTimelineModule } from "./event-timeline-native-module";
|
|
2
|
+
import SentianceEventEmitter from "@sentiance-react-native/core/lib/generated/sentiance-event-emitter";
|
|
3
|
+
import { type EmitterSubscription } from "react-native";
|
|
4
|
+
import { type Event } from "./types";
|
|
5
|
+
export type TimelineUpdateListener = (event: Event) => void;
|
|
6
|
+
export declare const TIMELINE_UPDATE_EVENT = "SENTIANCE_TIMELINE_UPDATE_EVENT";
|
|
7
|
+
export default class EventTimelineEventEmitter extends SentianceEventEmitter {
|
|
8
|
+
constructor(nativeModule: EventTimelineModule);
|
|
9
|
+
addEventTimelineListener(listener: TimelineUpdateListener, includeProvisionalEvents: boolean): Promise<EmitterSubscription>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TIMELINE_UPDATE_EVENT = void 0;
|
|
7
|
+
const sentiance_event_emitter_1 = __importDefault(require("@sentiance-react-native/core/lib/generated/sentiance-event-emitter"));
|
|
8
|
+
exports.TIMELINE_UPDATE_EVENT = "SENTIANCE_TIMELINE_UPDATE_EVENT";
|
|
9
|
+
class EventTimelineEventEmitter extends sentiance_event_emitter_1.default {
|
|
10
|
+
constructor(nativeModule) {
|
|
11
|
+
super(nativeModule);
|
|
12
|
+
}
|
|
13
|
+
addEventTimelineListener(listener, includeProvisionalEvents) {
|
|
14
|
+
// This instructs our native code to always register a listener that gets notified with all
|
|
15
|
+
// sorts of events (provisional or not), so that we could then filter out the received events
|
|
16
|
+
// and re-dispatch them to the appropriate JS callbacks.
|
|
17
|
+
const context = {
|
|
18
|
+
includeProvisionalEvents: true
|
|
19
|
+
};
|
|
20
|
+
return this.addListener(exports.TIMELINE_UPDATE_EVENT, (event) => {
|
|
21
|
+
if (includeProvisionalEvents || !event.isProvisional) {
|
|
22
|
+
listener(event);
|
|
23
|
+
}
|
|
24
|
+
}, context);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = EventTimelineEventEmitter;
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { type EmitterSubscription } from "react-native";
|
|
2
|
+
import { type SentianceFeedback } from "../feedback/types";
|
|
3
|
+
/**
|
|
4
|
+
* Represents an occurrence of an event that was detected for a user.
|
|
5
|
+
*/
|
|
6
|
+
export interface Event {
|
|
7
|
+
/**
|
|
8
|
+
* The unique identifier of the event.
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/**
|
|
12
|
+
* An ISO 8601 representation of the start time of the event.
|
|
13
|
+
*/
|
|
14
|
+
startTime: string;
|
|
15
|
+
/**
|
|
16
|
+
* The start epoch time of the event, in milliseconds.
|
|
17
|
+
*/
|
|
18
|
+
startTimeEpoch: number;
|
|
19
|
+
/**
|
|
20
|
+
* An ISO 8601 representation of the last update time of the event.
|
|
21
|
+
*/
|
|
22
|
+
lastUpdateTime: string;
|
|
23
|
+
/**
|
|
24
|
+
* The last update epoch time of the event, in milliseconds.
|
|
25
|
+
*/
|
|
26
|
+
lastUpdateTimeEpoch: number;
|
|
27
|
+
/**
|
|
28
|
+
* An ISO 8601 representation of the end time of the event if the event has ended, otherwise it is `null`.
|
|
29
|
+
*/
|
|
30
|
+
endTime: string | null;
|
|
31
|
+
/**
|
|
32
|
+
* The end epoch time of the event in milliseconds if the event has ended, otherwise it is `null`.
|
|
33
|
+
*/
|
|
34
|
+
endTimeEpoch: number | null;
|
|
35
|
+
/**
|
|
36
|
+
* the duration of the event in seconds if it has ended, otherwise returns it is `null`.
|
|
37
|
+
*/
|
|
38
|
+
durationInSeconds: number | null;
|
|
39
|
+
/**
|
|
40
|
+
* The event type. Based on this type, you can determine whether the event is a transport or a stationary etc...
|
|
41
|
+
*/
|
|
42
|
+
type: EventType;
|
|
43
|
+
/**
|
|
44
|
+
* Indicates whether the event is provisional.
|
|
45
|
+
*
|
|
46
|
+
* <p>A provisional event is identified based on real-time detections, but may change in the near future
|
|
47
|
+
* as more data is collected and processed, to filter out unwanted artifacts.
|
|
48
|
+
* For example, a provisional car transport may get identified, followed by a provisional bus transport.
|
|
49
|
+
* After the full trip is complete, these provisional events may get merged into a single final car event.</p>
|
|
50
|
+
*
|
|
51
|
+
* <p>Final events are generated independently of the provisional events, and have unique event IDs. They are
|
|
52
|
+
* not linked to the provisional events they may resemble, replace, or overlap with.</p>
|
|
53
|
+
*
|
|
54
|
+
* <p>Currently, provisional events apply only to 'transport' types, as the SDK tries to determine the mode of
|
|
55
|
+
* transport in (near) real time. When the full trip is complete (e.g. the user becomes stationary),
|
|
56
|
+
* the collected data is reprocessed to produce a more accurate and cleaned up list of transport events.</p>
|
|
57
|
+
*/
|
|
58
|
+
isProvisional: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* The location where the user is stationary at.
|
|
61
|
+
*/
|
|
62
|
+
location: GeoLocation | null;
|
|
63
|
+
/**
|
|
64
|
+
* The venue of this stationary.
|
|
65
|
+
*/
|
|
66
|
+
venue: Venue | null;
|
|
67
|
+
/**
|
|
68
|
+
* The mode of transportation if the event is a transport, `null` otherwise.
|
|
69
|
+
*/
|
|
70
|
+
transportMode: TransportMode | null;
|
|
71
|
+
/**
|
|
72
|
+
* The waypoints collected during the transport if the event is a transport, empty otherwise.
|
|
73
|
+
*/
|
|
74
|
+
waypoints: Waypoint[];
|
|
75
|
+
/**
|
|
76
|
+
* The distance travelled during the transport in meters. If the distance cannot be computed then it is `null`.
|
|
77
|
+
*/
|
|
78
|
+
distance?: number;
|
|
79
|
+
/**
|
|
80
|
+
* The set of tags that you have previously set (if any) for this transport, if the event is a transport - empty otherwise.
|
|
81
|
+
* @see {SentianceEventTimeline.setTransportTags}
|
|
82
|
+
*/
|
|
83
|
+
transportTags: TransportTags;
|
|
84
|
+
/**
|
|
85
|
+
* The detected user occupant role.
|
|
86
|
+
*/
|
|
87
|
+
occupantRole: OccupantRole;
|
|
88
|
+
}
|
|
89
|
+
export interface GeoLocation {
|
|
90
|
+
latitude: number;
|
|
91
|
+
longitude: number;
|
|
92
|
+
accuracy: number;
|
|
93
|
+
}
|
|
94
|
+
export interface Venue {
|
|
95
|
+
location: GeoLocation | null;
|
|
96
|
+
significance: VenueSignificance;
|
|
97
|
+
type: VenueType;
|
|
98
|
+
}
|
|
99
|
+
export type VenueType = "UNKNOWN" | "DRINK_DAY" | "DRINK_EVENING" | "EDUCATION_INDEPENDENT" | "EDUCATION_PARENTS" | "HEALTH" | "INDUSTRIAL" | "LEISURE_BEACH" | "LEISURE_DAY" | "LEISURE_EVENING" | "LEISURE_MUSEUM" | "LEISURE_NATURE" | "LEISURE_PARK" | "OFFICE" | "RELIGION" | "RESIDENTIAL" | "RESTO_MID" | "RESTO_SHORT" | "SHOP_LONG" | "SHOP_SHORT" | "SPORT" | "SPORT_ATTEND" | "TRAVEL_BUS" | "TRAVEL_CONFERENCE" | "TRAVEL_FILL" | "TRAVEL_HOTEL" | "TRAVEL_LONG" | "TRAVEL_SHORT";
|
|
100
|
+
export type VenueSignificance = "UNKNOWN" | "HOME" | "WORK" | "POINT_OF_INTEREST";
|
|
101
|
+
export type EventType = "UNKNOWN" | "STATIONARY" | "OFF_THE_GRID" | "IN_TRANSPORT";
|
|
102
|
+
export type TransportMode = "UNKNOWN" | "BICYCLE" | "WALKING" | "RUNNING" | "TRAM" | "TRAIN" | "CAR" | "BUS" | "MOTORCYCLE";
|
|
103
|
+
/**
|
|
104
|
+
* @internal
|
|
105
|
+
*/
|
|
106
|
+
export declare const OCCUPANT_ROLE_VALUES: readonly ["DRIVER", "PASSENGER", "UNAVAILABLE"];
|
|
107
|
+
export type OccupantRole = (typeof OCCUPANT_ROLE_VALUES)[number];
|
|
108
|
+
export interface Waypoint {
|
|
109
|
+
latitude: number;
|
|
110
|
+
longitude: number;
|
|
111
|
+
accuracy: number;
|
|
112
|
+
timestamp: number;
|
|
113
|
+
speedInMps?: number;
|
|
114
|
+
speedLimitInMps?: number;
|
|
115
|
+
hasUnlimitedSpeedLimit: boolean;
|
|
116
|
+
isSpeedLimitInfoSet: boolean;
|
|
117
|
+
isSynthetic: boolean;
|
|
118
|
+
}
|
|
119
|
+
export type TransportTags = {
|
|
120
|
+
[key: string]: string;
|
|
121
|
+
};
|
|
122
|
+
export interface SentianceEventTimeline {
|
|
123
|
+
/**
|
|
124
|
+
* Returns all updated events in the event timeline after the specified date, sorted by the last update time.
|
|
125
|
+
*
|
|
126
|
+
* @remarks
|
|
127
|
+
* This method returns all events that started after `afterEpochTimeMs`, but it may also return events
|
|
128
|
+
* that started before `afterEpochTimeMs`, if they were updated afterward. The returned result is not
|
|
129
|
+
* necessarily the complete list of events that were captured by the SDK from the result's first event until the
|
|
130
|
+
* last, because events that were not updated will be excluded. To get a complete and ordered list of
|
|
131
|
+
* events for a given date range, use {@link getTimelineEvents} instead.
|
|
132
|
+
*
|
|
133
|
+
* You can use this method along with {@link addTimelineUpdateListener} to stay
|
|
134
|
+
* up to date with the latest events in the timeline. For example, to make sure you don't miss out on timeline
|
|
135
|
+
* updates, you can first set an update listener, then follow up by using this method to query for potential
|
|
136
|
+
* updates since the last update you received.
|
|
137
|
+
*
|
|
138
|
+
* @param afterEpochTimeMs - The timestamp (in milliseconds) to retrieve updates from. The specified timestamp is **exclusive**.
|
|
139
|
+
* @param includeProvisionalEvents - Optional parameter. Set to `true` if you want to include provisional events. Default is `false`.
|
|
140
|
+
*
|
|
141
|
+
* @returns A Promise that resolves with an array of Event objects that occurred in the specified time range.
|
|
142
|
+
* If no events are found, an empty array is returned.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* import timeline from "@sentiance-react-native/event-timeline";
|
|
147
|
+
*
|
|
148
|
+
* // Get timeline updates including provisional events from one hour ago
|
|
149
|
+
* const oneHourAgo = Date.now() - (60 * 60 * 1000);
|
|
150
|
+
* const events = await timeline.getTimelineUpdates(oneHourAgo, true);
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
getTimelineUpdates(afterEpochTimeMs: number, includeProvisionalEvents?: boolean): Promise<Event[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Returns timeline events, such as transport and stationary events, that were captured during the specified
|
|
156
|
+
* time range. The events are ordered from oldest to newest.
|
|
157
|
+
*
|
|
158
|
+
* @remarks
|
|
159
|
+
* Events that were captured outside the specified date range are not returned, even if they were updated
|
|
160
|
+
* during this date range. To get all updates, regardless of when an event was captured, use the
|
|
161
|
+
* {@link getTimelineUpdates} function instead.
|
|
162
|
+
*
|
|
163
|
+
* @param fromEpochTimeMs - The start timestamp (in milliseconds, inclusive) of the time range.
|
|
164
|
+
* @param toEpochTimeMs - The end timestamp (in milliseconds, inclusive) of the time range.
|
|
165
|
+
* @param includeProvisionalEvents - Optional parameter. Set to `true` if you want to include provisional events. Default is `false`.
|
|
166
|
+
*
|
|
167
|
+
* @returns A Promise that resolves with an array of Event objects that occurred in the specified time range.
|
|
168
|
+
* If no events are found, an empty array is returned.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* import eventTimeline from "@sentiance-react-native/event-timeline";
|
|
173
|
+
*
|
|
174
|
+
* // Get all timeline events including provisional ones
|
|
175
|
+
* const events = await eventTimeline.getTimelineEvents(0, Date.now(), true);
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
getTimelineEvents(fromEpochTimeMs: number, toEpochTimeMs: number, includeProvisionalEvents?: boolean): Promise<Event[]>;
|
|
179
|
+
/**
|
|
180
|
+
* Returns the timeline event with the specified ID.
|
|
181
|
+
*
|
|
182
|
+
* @param eventId - The ID of the event to query.
|
|
183
|
+
*
|
|
184
|
+
* @returns A Promise that resolves with a matching {@link Event} object, or `null` if no such event exists.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* import eventTimeline from "@sentiance-react-native/event-timeline";
|
|
189
|
+
* const event: Event | null = await eventTimeline.getTimelineEvent("some_event_id");
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
getTimelineEvent(eventId: string): Promise<Event | null>;
|
|
193
|
+
/**
|
|
194
|
+
* Sets a listener that is invoked when the event timeline is updated. The listener receives the updated
|
|
195
|
+
* events. An update can be triggered by the start of a new event, and the update or end of an existing one.
|
|
196
|
+
* Every invocation of the listener will deliver an event that has a {@link Event.lastUpdateTimeEpoch | last update time}
|
|
197
|
+
* that is equal to or greater than the previously delivered event's {@link Event.lastUpdateTimeEpoch | last update time}.
|
|
198
|
+
*
|
|
199
|
+
* @remarks
|
|
200
|
+
* You can use this function along with {@link getTimelineUpdates} to stay up to date with the latest
|
|
201
|
+
* events in the timeline. For example, to make sure you don't miss out on timeline updates, you can first set an
|
|
202
|
+
* update listener using this method, then follow up by calling {@link getTimelineUpdates} to query for
|
|
203
|
+
* potential updates since the last update you received.
|
|
204
|
+
*
|
|
205
|
+
* @param onTimelineUpdated - The callback to receive event timeline updates.
|
|
206
|
+
* @param includeProvisionalEvents - Optional parameter. Set to `true` if you want to include provisional events. Default is `false`.
|
|
207
|
+
*
|
|
208
|
+
* @returns A Promise that resolves with a subscription object that you can use to remove the set listener.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* import timeline from "@sentiance-react-native/event-timeline";
|
|
213
|
+
*
|
|
214
|
+
* // Set a timeline updater listener for non-provisional updates
|
|
215
|
+
* const subscription = await timeline.addTimelineUpdateListener(
|
|
216
|
+
* (event) => console.log(event)
|
|
217
|
+
* );
|
|
218
|
+
*
|
|
219
|
+
* // Remove the listener
|
|
220
|
+
* await subscription.remove();
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
addTimelineUpdateListener(onTimelineUpdated: (event: Event) => void, includeProvisionalEvents?: boolean): Promise<EmitterSubscription>;
|
|
224
|
+
/**
|
|
225
|
+
* Sets the tags that will be assigned to a detected transport.
|
|
226
|
+
*
|
|
227
|
+
* @remarks
|
|
228
|
+
* The provided tags will be assigned to a transport at the moment the transport ends. When you
|
|
229
|
+
* receive an {@link Event} representing the ended transport, it will include these tags.
|
|
230
|
+
*
|
|
231
|
+
* The supplied tags are persisted and applied to future transports, even after the app is restarted.
|
|
232
|
+
* By calling this method again, you will replace the tags that will be assigned to future transports.
|
|
233
|
+
*
|
|
234
|
+
* You can include up to 6 tags (key-value pairs), and each tag component (key or value) must
|
|
235
|
+
* be at most 256 characters.
|
|
236
|
+
*
|
|
237
|
+
* @example Setting custom transport tags
|
|
238
|
+
* ```typescript
|
|
239
|
+
* try {
|
|
240
|
+
* await SentianceEventTimeline.setTransportTags({
|
|
241
|
+
* key1: "value1",
|
|
242
|
+
* key2: "value2"
|
|
243
|
+
* });
|
|
244
|
+
* console.log('Transport tags have been set.');
|
|
245
|
+
* } catch (error) {
|
|
246
|
+
* if (error instanceof TransportTagsError) {
|
|
247
|
+
* console.error(`Failed to set transport tags: ${error.message}`);
|
|
248
|
+
* } else {
|
|
249
|
+
* console.error(`Error: ${error.message}`);
|
|
250
|
+
* }
|
|
251
|
+
* }
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* @param tags The transport tags to set
|
|
255
|
+
*
|
|
256
|
+
* @throws TransportTaggingError if the supplied tags count is more than 6, or if one of the tag components exceeds
|
|
257
|
+
* the 256 characters limit.
|
|
258
|
+
*/
|
|
259
|
+
setTransportTags(tags: TransportTags): Promise<void>;
|
|
260
|
+
sentianceFeedback: SentianceFeedback;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* @deprecated Use SentianceEventTimeline instead.
|
|
264
|
+
*/
|
|
265
|
+
export type EventTimelineApi = SentianceEventTimeline;
|
package/lib/types.d.ts
ADDED
package/lib/types.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./feedback/types"), exports);
|
|
18
|
+
__exportStar(require("./timeline/types"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentiance-react-native/event-timeline",
|
|
3
|
-
"version": "6.11.0
|
|
3
|
+
"version": "6.11.0",
|
|
4
4
|
"description": "The Sentiance Event Timeline library",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"sentiance"
|
|
15
15
|
],
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@sentiance-react-native/core": "6.11.0
|
|
17
|
+
"@sentiance-react-native/core": "6.11.0"
|
|
18
18
|
},
|
|
19
19
|
"author": "",
|
|
20
20
|
"license": "",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es6.d.ts","../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","./src/errors.ts","../../node_modules/@types/react-native/modules/BatchedBridge.d.ts","../../node_modules/@types/react-native/modules/Codegen.d.ts","../../node_modules/@types/react-native/modules/Devtools.d.ts","../../node_modules/@types/react-native/modules/globals.d.ts","../../node_modules/@types/react-native/modules/LaunchScreen.d.ts","../../node_modules/@types/react/ts5.0/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/ts5.0/index.d.ts","../../node_modules/@types/react-native/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.d.ts","../../node_modules/@types/react-native/node_modules/@react-native/virtualized-lists/index.d.ts","../../node_modules/@types/react-native/private/Utilities.d.ts","../../node_modules/@types/react-native/public/Insets.d.ts","../../node_modules/@types/react-native/public/ReactNativeTypes.d.ts","../../node_modules/@types/react-native/Libraries/ReactNative/RendererProxy.d.ts","../../node_modules/@types/react-native/Libraries/Types/CoreEventTypes.d.ts","../../node_modules/@types/react-native/public/ReactNativeRenderer.d.ts","../../node_modules/@types/react-native/Libraries/Components/Touchable/Touchable.d.ts","../../node_modules/@types/react-native/Libraries/Components/View/ViewAccessibility.d.ts","../../node_modules/@types/react-native/Libraries/Components/View/ViewPropTypes.d.ts","../../node_modules/@types/react-native/Libraries/Components/RefreshControl/RefreshControl.d.ts","../../node_modules/@types/react-native/Libraries/Components/ScrollView/ScrollView.d.ts","../../node_modules/@types/react-native/Libraries/Components/View/View.d.ts","../../node_modules/@types/react-native/Libraries/Image/ImageResizeMode.d.ts","../../node_modules/@types/react-native/Libraries/Image/ImageSource.d.ts","../../node_modules/@types/react-native/Libraries/Image/Image.d.ts","../../node_modules/@types/react-native/Libraries/Lists/FlatList.d.ts","../../node_modules/@types/react-native/Libraries/Lists/SectionList.d.ts","../../node_modules/@types/react-native/Libraries/Text/Text.d.ts","../../node_modules/@types/react-native/Libraries/Animated/Animated.d.ts","../../node_modules/@types/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts","../../node_modules/@types/react-native/Libraries/StyleSheet/StyleSheet.d.ts","../../node_modules/@types/react-native/Libraries/StyleSheet/processColor.d.ts","../../node_modules/@types/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts","../../node_modules/@types/react-native/Libraries/Alert/Alert.d.ts","../../node_modules/@types/react-native/Libraries/Animated/Easing.d.ts","../../node_modules/@types/react-native/Libraries/Animated/useAnimatedValue.d.ts","../../node_modules/@types/react-native/Libraries/vendor/emitter/EventEmitter.d.ts","../../node_modules/@types/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts","../../node_modules/@types/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts","../../node_modules/@types/react-native/Libraries/AppState/AppState.d.ts","../../node_modules/@types/react-native/Libraries/BatchedBridge/NativeModules.d.ts","../../node_modules/@types/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts","../../node_modules/@types/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts","../../node_modules/@types/react-native/private/TimerMixin.d.ts","../../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts","../../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableOpacity.d.ts","../../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts","../../node_modules/@types/react-native/Libraries/Components/Button.d.ts","../../node_modules/@types/react-native/Libraries/Components/Clipboard/Clipboard.d.ts","../../node_modules/@types/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts","../../node_modules/@types/react-native/Libraries/EventEmitter/NativeEventEmitter.d.ts","../../node_modules/@types/react-native/Libraries/Components/Keyboard/Keyboard.d.ts","../../node_modules/@types/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts","../../node_modules/@types/react-native/Libraries/Components/Pressable/Pressable.d.ts","../../node_modules/@types/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts","../../node_modules/@types/react-native/Libraries/Components/SafeAreaView/SafeAreaView.d.ts","../../node_modules/@types/react-native/Libraries/Components/StatusBar/StatusBar.d.ts","../../node_modules/@types/react-native/Libraries/Components/Switch/Switch.d.ts","../../node_modules/@types/react-native/Libraries/Components/TextInput/InputAccessoryView.d.ts","../../node_modules/@types/react-native/Libraries/Components/TextInput/TextInput.d.ts","../../node_modules/@types/react-native/Libraries/Components/ToastAndroid/ToastAndroid.d.ts","../../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableHighlight.d.ts","../../node_modules/@types/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts","../../node_modules/@types/react-native/Libraries/Interaction/InteractionManager.d.ts","../../node_modules/@types/react-native/Libraries/Interaction/PanResponder.d.ts","../../node_modules/@types/react-native/Libraries/LayoutAnimation/LayoutAnimation.d.ts","../../node_modules/@types/react-native/Libraries/Linking/Linking.d.ts","../../node_modules/@types/react-native/Libraries/LogBox/LogBox.d.ts","../../node_modules/@types/react-native/Libraries/Modal/Modal.d.ts","../../node_modules/@types/react-native/Libraries/Performance/Systrace.d.ts","../../node_modules/@types/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts","../../node_modules/@types/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts","../../node_modules/@types/react-native/Libraries/Utilities/IPerformanceLogger.d.ts","../../node_modules/@types/react-native/Libraries/ReactNative/AppRegistry.d.ts","../../node_modules/@types/react-native/Libraries/ReactNative/I18nManager.d.ts","../../node_modules/@types/react-native/Libraries/ReactNative/requireNativeComponent.d.ts","../../node_modules/@types/react-native/Libraries/ReactNative/RootTag.d.ts","../../node_modules/@types/react-native/Libraries/ReactNative/UIManager.d.ts","../../node_modules/@types/react-native/Libraries/Settings/Settings.d.ts","../../node_modules/@types/react-native/Libraries/Share/Share.d.ts","../../node_modules/@types/react-native/Libraries/StyleSheet/PlatformColorValueTypes.d.ts","../../node_modules/@types/react-native/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts","../../node_modules/@types/react-native/Libraries/TurboModule/RCTExport.d.ts","../../node_modules/@types/react-native/Libraries/TurboModule/TurboModuleRegistry.d.ts","../../node_modules/@types/react-native/Libraries/Utilities/Appearance.d.ts","../../node_modules/@types/react-native/Libraries/Utilities/BackHandler.d.ts","../../node_modules/@types/react-native/Libraries/Utilities/DevSettings.d.ts","../../node_modules/@types/react-native/Libraries/Utilities/Dimensions.d.ts","../../node_modules/@types/react-native/Libraries/Utilities/PixelRatio.d.ts","../../node_modules/@types/react-native/Libraries/Utilities/Platform.d.ts","../../node_modules/@types/react-native/Libraries/vendor/core/ErrorUtils.d.ts","../../node_modules/@types/react-native/Libraries/Vibration/Vibration.d.ts","../../node_modules/@types/react-native/Libraries/YellowBox/YellowBoxDeprecated.d.ts","../../node_modules/@types/react-native/public/DeprecatedPropertiesAlias.d.ts","../../node_modules/@types/react-native/index.d.ts","./src/feedback/types.ts","./src/timeline/types.ts","../core/lib/generated/native-module.d.ts","../core/lib/generated/require-native-module.d.ts","./src/feedback/feedback-native-module.ts","./src/feedback/index.ts","./src/timeline/event-timeline-native-module.ts","../core/lib/generated/sentiance-event-emitter.d.ts","./src/timeline/timeline-event-emitter.ts","./src/timeline/index.ts","./src/types.ts","./src/index.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/ms/index.d.ts","../../node_modules/@types/debug/index.d.ts","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/ts5.6/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/linkify-it/build/index.cjs.d.ts","../../node_modules/@types/linkify-it/index.d.ts","../../node_modules/@types/mdurl/build/index.cjs.d.ts","../../node_modules/@types/mdurl/index.d.ts","../../node_modules/@types/markdown-it/lib/common/utils.d.ts","../../node_modules/@types/markdown-it/lib/token.d.ts","../../node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts","../../node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts","../../node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts","../../node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts","../../node_modules/@types/markdown-it/lib/helpers/index.d.ts","../../node_modules/@types/markdown-it/lib/ruler.d.ts","../../node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts","../../node_modules/@types/markdown-it/lib/parser_block.d.ts","../../node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts","../../node_modules/@types/markdown-it/lib/parser_core.d.ts","../../node_modules/@types/markdown-it/lib/parser_inline.d.ts","../../node_modules/@types/markdown-it/lib/renderer.d.ts","../../node_modules/@types/markdown-it/lib/index.d.ts","../../node_modules/@types/markdown-it/index.d.ts","../../node_modules/@types/unist/index.d.ts","../../node_modules/@types/mdast/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"1946438a479854bbb1217f3468953f3279482a069b941e75b8eaa299b2493820","signature":"ff8c0ff8ffe9e582e4f02d9ae3c0ad4fae2a27502cabdea392f9b5f0de4b3606"},{"version":"c60f4f6cb8949ec208168c0baf7be477a3c664f058659ff6139070dc512c2d87","affectsGlobalScope":true},"e416b94d8a6c869ef30cc3d02404ae9fdd2dfac7fea69ee92008eba42af0d9e2","86731885eee74239467f62abe70a2fc791f2e5afd74dda95fef878fd293c5627",{"version":"e589be628ce7f4c426c5e1f2714def97a801af5d30e744578421fc180a6ee0b4","affectsGlobalScope":true},"d08cd8b8a3615844c40641ad0eda689be45467c06c4c20d2fc9d0fcf3c96ae3f",{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","42111e264e15a58bdfbfb06a472cb4861875062ff893983ee77b719927e46a20","46bc25e3501d321a70d0878e82a1d47b16ab77bdf017c8fecc76343f50806a0d","42bacb33cddecbcfe3e043ee1117ba848801749e44f947626765b3e0aec74b1c","34e161d6a8dc3ce4afcb63611f5feab4da158d419802cea10c1af43630385a17","7e9c2527af5b6feefefca328de85caf3cc39306754ea68be192ba6d90239d050","f8cadf711d9670cb9deb4ad714faf520a98a6d42c38b88f75fdd55f01d3567f6","b7f6e556fb46eccf736a7ab9a19495d6b0a56abd3a2f74e992edc2b0322bf177","5bb66fd6ca6e3d19d2aa19242e1065703f24b9fb83b1153bd9d4425fb60639e8","8e214d0471532c7a1650209948397e90696d41b72985794d31f96eeda0295c23","449d3856698d518d93760ed96c0c3bdb3fb5813bf427477c090fa01febd7adad","e2411d8114f390edcfe8626676953f094e6dbde8563b6feb95f6449787d24924","f9cd4e7b1f4806cba50a786e326536628745beb147d564dbaf3794dad39c1ebf","47ae2b10e24222e90475ece227f99ef785b5c4fa23800705fa929279a2f6247e","d151fe965fafee1cc2da99071925784402137d646e8296a2019003a0ffd54d4c","7353e1468d826c5f0bb52c5e5b01b273a99b698fd587519b4415b2e85c68231e","a18f805e2e60e08e82072b4216af4843f70764be38c81d89bbbbe3cecc1e8283","d340aed4ea2ad4968e3ea53b97ae3419ac009b45d10612550a13a60b02f9fd7a","91986f599aa6c84df8821fcd6af5127009e8cdb3a94c318269620af0b9a6787f","1704c3d1b6b2ba01df7da6e8fec759d989f7d35a059ebd874100d275bb9d8f9f","be12f69f266043d3abdf578f7953821d09d3f7d978fb65fe233e641b1743b219","879cbcc40f2221c23bf88bcccc431d1074d335835d66b0576f4b6778765647b3","5d3c6c58f8e26a262ce0aa5fe6ae5ebdaf759d2badff67981835c09fe4996692","3c85c8e17e1cbdda03dd23e7a48b1b7b8ce3703c99a6c136055cfbeac825ba51","3eb8adc003309a012f8dc4048590cf445d2035ad080877ccea33b94a41c020fc","51acaa16c2d97faa0f2aa71d548fcaa470563a34004220721c48c82bd359c802","aa8af960007a6e8e66cef9bb5687184a174bf1471a02ca563e81e874db92adca","4febf5eece243b290804c2479efdc7489a9c7da5168dd25b81c2d048061147dc","ac731853919f198a8248f018170281be31bb3d47d19add2bbdb2a99d9a3c6ce0","c874a28b997527532a389450f235b73b6a78111812aeb0d1988756ec35924aa9","56896eb0ef40f6f87ac2900943294a03aa0992613f26acd9ab434cd7eaed48f8","968a93119624ba53dfef612fd91d9c14a45cd58eabdbaf702d0dff88a335a39d","e2ae49c364a6486435d912b1523881df15e523879b70d1794a3ec66dbd441d24","dcbf123191b66f1d6444da48765af1c38a25f4f38f38ace6c470c10481237808","2aeee6c0d858c0d6ccb8983f1c737080914ef97098e7c0f62c5ad1c131a5c181","86fdf0be5d1ba2b40d8663732f4b50ece796271487e43aeb02d753537b5fb9e3","92ae3fae8c628602733f84ad38ea28e5ca1b88435c4888926049babfceb05eaa","9c9eb1fb15538761eb77582392025f73d467088d83f08918dc22cd2e4b08f5d8","d7ff2406f3ee2db99c81d60caa1f45ae0d25f9682b91b075f3fc385ea37f5ccf","194d4cfbb09b9243ef4e629b3903ffb120eb9decbb0e370522b9d0963427b9b2","5b3453a2fd9d42475d8e96afa8a2615335702ca47e97f2c1281d085363c23135","6e2924741947efb1bd2a035026362bda08ddfd0de5186a0143cd952e51fbdbfe","32cd0f92f95f8ffeb1b3164f9b5e55bfcf81f785b9a2efb069fffe9103ce45b3","928a713110d4c7747311abe3faec06e1533c84fff413042a1c16eeae33ff9b1f","5c6b58b5e6861925ede774d6008945a71b7a5e05ebce154ea227993deecae1b9","16c316d1d0f836906da5cdc0cdc5035fe70f5035e6ba388db7fc92434b46f6c2","d111f863605d08968d75e87b192d81497f32dc9243230d35e8fc91ef4bf5dd6e","77812250e493c216c7a3136af947b82422d28425fa787793c999c1e900c7eb7c","6b39e28ec07e1bb54dd61e56cc3378f01c00f8c5a6c8ecb3436b9d643e205fcc","45bae1787c8ab6751b4ad6917e962ea713d8a92800bdaf77c52b402664767a47","f3af1bf305be5c7e917445cc1b44e01f3e405738ffae0795dfba501d8cca78ff","dc23e5ed9434661953d1ebd5e45367c6869fb4099cf95a5876feb4933c30cf0a","6ae1bbe9f4f35aad46a0009e7316c687f305d7a06065a1c0b37a8c95907c654a","a642996bc1867da34cb5b964e1c67ecdd3ad4b67270099afddfc51f0dffa6d1e","b8bdcd9f6e141e7a83be2db791b1f7fdec2a82ebc777a4ea0eee16afe835104f","f1f6c56a5d7f222c9811af75daa4509240d452e3655a504238dff5c00a60b0ed","7cb2dc123938d5eab79b9438e52a3af30b53e9d9b6960500a29b5a05088da29d","6749bbaf081b3b746fe28822b9931ba4aa848c709d85b919c7c676f22b89f4b7","6434b1b1e6334a910870b588e86dba714e0387c7b7db3c72f181411e0c528d8d","73d0ac4dcc35f6cc9d4b2246f3c1207682308d091b825de7ebba0b34989a0f21","c0a9bfebf2f46729fa5d6e35b7da397503dc6f795f8e563f6c28da714a94364a","c5aa1bba9f9d33125be559fbd8126ee469578c3195c49e3f57cb7d0e6f335d97","cf4988e1b4d8e59be5b38b7cbc2a1fb2443488e31da5d2fb323a920a9b063120","3110cf24ef097769886e9ac467c64a64a27fb807efe73bcaf22438f16861ad0e","50a2508d3e8146af4409942cdc84de092d529f6852847730fbf4c411da1ce06f","90670dfd6c6ad8219cb1bf9cbf471aa72c68facd0fa819155ddfc997cac8cf01","63ea1464aa98814c5b75bf323f6b0ad68ea57d03d2fd3ba6d12d2b4a1f848fbe","b76d3075a567b6a3304bf0259b59a0d614ff6edc05a0992a137abe0a10734f0c","7c5ec23ed294cdceca69c9b9095f80add12194758790000d86cdc0f658188763","44f969cf15c54dbe25413bddab692f10e703f8513ee258e2c2a6aa6d706e30a4","22e970f02dfc320ada893b2d55cb0b13bc3ffbcc6b9114f146df63572bd24221","49eca32fc2c9d904ae7ab72dd729d098b6d60c50d615012a269949524f6d138e","734daa2c20c7c750bd1c1c957cf7b888e818b35d90bc22d1c2658b5a7d73c5a5","a67c6cf76fe060eceaa67930702a6be9bf2f4bb6704d886e5dd672b941ddcf75","6b17aa711c783dbaed09b7a81c14ff88a8a4965e48470a4d5865fb78a9eda740","5b6c400ab30de6d9cee8902d7b57487beecb0a4a2c723a83124e352c4c4ffa62","3fe33d2a424334cf185fb25808d2d058566b5d287fcd725193c327644dbe44de","3745facc6bd1c046cdb2b44232d5a5a1614ba4d2f5719a6f2ec23c2fe69325f5","9384bb3f571c8b3d2deb35f65c51a7fa4f78a5cfd5aa5870bff9d9563699f1b7","35242b153278780741db7a6782ffb4924a0c4d727b1fd398e88da0e8ce24c278","cf6e35062b71c8c66ccf778e04615b33bcb2227109865d8dfb8c9dce4435786b","971eeb13d51b8381bef11e17892b0a56863598d01504b2f055f1387865a4cdea","da7f8e26f473c0f59823b6ca54d6b66c545963273e46fcc7e80a87c2440d6963","a6141414bc469fdca2a19e8040e3d09d41f9dada8196e83b3ca8dbd8c8b3f176","fe494d4c9807d72e94acdad7550411fa6b8b4c5d9f1dff514770147ce4ec47b0","27b83e83398ae288481db6d543dea1a971d0940cd0e3f85fc931a8d337c8706c","f1fe1773529c71e0998d93aef2d5fca1a7af4a7ba2628920e7e03313497e6709","097a706b8b014ea5f2cdd4e6317d1df03fbfbd4841b543e672211627436d0377",{"version":"1c0b0a09c2944a208ae256e3419a69414813eb84d0c41d558f95fed76284b6b3","affectsGlobalScope":true},{"version":"970994fb91316cd07438aeca9ae0687a30ab5028912b459a00b393065b51ccdc","signature":"4c874e7f93804e760a06c4010849b76fc216a17964742c25ae612021c1bc1522"},{"version":"479b26b009c337170354f71399d66eb00fa3dda1f90dccda4d2eeb945bc3d2ae","signature":"dc11fa4166fd49c8918e8c73a0859a56e5697a9a2f00d09085f82938c21f0e90"},"6bf5bb4e4058f73eb92fc119e018382746f20901b75197986f6e24f6b9ecbf6d","da7fce67bb73e95ddd3ee098927ae87461214c7887e52e4106f4bdc1ebda8b3d",{"version":"2599676570decdfa9942930db44fce47143cf09a503268cce7e471d5c89dfd8a","signature":"1ea87cbb2296ce77dcdaf9540aceb7c3bc82a84ebab628b6f71bb2398b87aa04"},{"version":"26d9b74b045639e5579b36bb970610daff5a1693196048d7d527c41d12d6ea5a","signature":"5d213b7b42c05d319ecad1c411e137498fadaf564d9b7cf3b1745ee9485039cb"},{"version":"9c3ef4a2d60097abd82d04696cd0d3d30957d5e1290975fe0609a3d7793f43b6","signature":"aaa3385545e25745c80ca4bc070c6bce9f13d800efc198891bf5948ac31178e8"},"6162281998e272461436ab12e212746d646a13f841782c1cd40f668ffa3f9cb4",{"version":"34a8f1446b3dc3472ac7b54e7e2d7bf100be959f600cc2c51b15af7bfddfd7e1","signature":"b4dc03511e73ff950fa35b7ce4d8876c66c34110f26d6b56bfe2d13ef41e77f8"},{"version":"aeb5a06060f94dd22fcddb95285741504a420c752f260ef6b97dd003bd210636","signature":"9ce297f2f61a185a0c2bbac15bd06861c94586023ba9d786f22435a838a38f8b"},"77fc3e0df0726830ef59ac9098ded1e8ced63b1b4200a991f74083b506e92cea",{"version":"30b1c7ae2fdced426a6ba63878b1f4b776d2ac5032377f9f04243ec2ce6c0956","signature":"66d58504ee7cf0473794aa77168cd2295c15a605671af3e4c8a7edab02639cbf"},"8d27e5f73b75340198b2df36f39326f693743e64006bd7b88a925a5f285df628","2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","1c2cd862994b1fbed3cde0d1e8de47835ff112d197a3debfddf7b2ee3b2c52bc","670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1",{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true},"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a",{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true},{"version":"2d1319e6b5d0efd8c5eae07eb864a00102151e8b9afddd2d45db52e9aae002c4","affectsGlobalScope":true},"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107",{"version":"d2bc987ae352271d0d615a420dcf98cc886aa16b87fb2b569358c1fe0ca0773d","affectsGlobalScope":true},"4f0539c58717cbc8b73acb29f9e992ab5ff20adba5f9b57130691c7f9b186a4d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0",{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true},"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7",{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true},"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true},"1ff5a53a58e756d2661b73ba60ffe274231a4432d21f7a2d0d9e4f6aa99f4283","1e289f30a48126935a5d408a91129a13a59c9b0f8c007a816f9f16ef821e144e","2ea254f944dfe131df1264d1fb96e4b1f7d110195b21f1f5dbb68fdd394e5518","5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6",{"version":"b11cb909327c874a4e81bfb390bf0d231e5bf9439052689ab80ba8afa50da17b","affectsGlobalScope":true},"23459c1915878a7c1e86e8bdb9c187cddd3aea105b8b1dfce512f093c969bc7e","b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0",{"version":"1dc73f8854e5c4506131c4d95b3a6c24d0c80336d3758e95110f4c7b5cb16397","affectsGlobalScope":true},{"version":"5f6f1d54779d0b9ed152b0516b0958cd34889764c1190434bbf18e7a8bb884cd","affectsGlobalScope":true},"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","f7b1df115dbd1b8522cba4f404a9f4fdcd5169e2137129187ffeee9d287e4fd1","b52d379b4939681f3781d1cfd5b2c3cbb35e7e76f2425172e165782f8a08228c","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633",{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true},"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada",{"version":"993985beef40c7d113f6dd8f0ba26eed63028b691fbfeb6a5b63f26408dd2c6d","affectsGlobalScope":true},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true},"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4",{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true},{"version":"cb094bb347d7df3380299eb69836c2c8758626ecf45917577707c03cf816b6f4","affectsGlobalScope":true},"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","b02784111b3fc9c38590cd4339ff8718f9329a6f4d3fd66e9744a1dcd1d7e191","ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a",{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true},"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","171fd8807643c46a9d17e843959abdf10480d57d60d38d061fb44a4c8d4a8cc4","afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","0f9e381eecc5860f693c31fe463b3ca20a64ca9b8db0cf6208cd4a053f064809","95902d5561c6aac5dfc40568a12b0aca324037749dcd32a81f23423bfde69bab","5dfb2aca4136abdc5a2740f14be8134a6e6b66fd53470bb2e954e40f8abfaf3e","577463167dd69bd81f76697dfc3f7b22b77a6152f60a602a9218e52e3183ad67","b8396e9024d554b611cbe31a024b176ba7116063d19354b5a02dccd8f0118989","4b28e1c5bf88d891e07a1403358b81a51b3ba2eae1ffada51cca7476b5ac6407","7150ad575d28bf98fae321a1c0f10ad17b127927811f488ded6ff1d88d4244e5","8b155c4757d197969553de3762c8d23d5866710301de41e1b66b97c9ed867003","93733466609dd8bf72eace502a24ca7574bd073d934216e628f1b615c8d3cb3c","45e9228761aabcadb79c82fb3008523db334491525bdb8e74e0f26eaf7a4f7f4","aeacac2778c9821512b6b889da79ac31606a863610c8f28da1e483579627bf90","569fdb354062fc098a6a3ba93a029edf22d6fe480cf72b231b3c07832b2e7c97","bf9876e62fb7f4237deafab8c7444770ef6e82b4cad2d5dc768664ff340feeb2","6cf60e76d37faf0fbc2f80a873eab0fd545f6b1bf300e7f0823f956ddb3083e9","6adaa6103086f931e3eee20f0987e86e8879e9d13aa6bd6075ccfc58b9c5681c","ee0af0f2b8d3b4d0baf669f2ff6fcef4a8816a473c894cc7c905029f7505fed0","6d09838b65c3c780513878793fc394ae29b8595d9e4729246d14ce69abc71140","202f8582ee3cd89e06c4a17d8aabb925ff8550370559c771d1cc3ec3934071c2","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7"],"options":{"composite":true,"declaration":true,"declarationDir":"./lib","esModuleInterop":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"noUnusedParameters":true,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"strict":true,"target":2},"fileIdsList":[[154,167,209],[167,209],[154,155,156,157,158,167,209],[154,156,167,209],[160,167,209],[167,209,222,259],[167,209,261],[167,209,262],[167,209,265],[167,209,283],[167,209,268],[167,209,272,273,274],[167,209,271],[167,209,273],[167,209,266,269,270,275,278,280,281,282],[167,209,270,276,277,283],[167,209,276,279],[167,209,270,271,276,283],[167,209,270,283],[167,209,285],[167,209,267],[167,206,209],[167,208,209],[167,209,214,244],[167,209,210,215,221,222,229,241,252],[167,209,210,211,221,229],[162,163,164,167,209],[167,209,212,253],[167,209,213,214,222,230],[167,209,214,241,249],[167,209,215,217,221,229],[167,208,209,216],[167,209,217,218],[167,209,221],[167,209,219,221],[167,208,209,221],[167,209,221,222,223,241,252],[167,209,221,222,223,236,241,244],[167,204,209,257],[167,204,209,217,221,224,229,241,252],[167,209,221,222,224,225,229,241,249,252],[167,209,224,226,241,249,252],[167,209,221,227],[167,209,228,252],[167,209,217,221,229,241],[167,209,230],[167,209,231],[167,208,209,232],[167,206,207,208,209,210,211,212,213,214,215,216,217,218,219,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258],[167,209,234],[167,209,235],[167,209,221,236,237],[167,209,236,238,253,255],[167,209,221,241,242,243,244],[167,209,241,243],[167,209,241,242],[167,209,244],[167,209,245],[167,206,209,241],[167,209,221,247,248],[167,209,247,248],[167,209,214,229,241,249],[167,209,250],[209],[165,166,167,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258],[167,209,229,251],[167,209,224,235,252],[167,209,214,253],[167,209,241,254],[167,209,228,255],[167,209,256],[167,209,214,221,223,232,241,252,255,257],[167,209,241,258],[77,78,167,209],[54,61,67,68,71,72,73,74,77,167,209],[75,167,209],[85,167,209],[54,59,83,167,209],[54,57,59,61,65,76,77,167,209],[54,77,92,93,167,209],[54,57,59,61,65,77,167,209],[83,97,167,209],[54,57,65,76,77,90,167,209],[54,58,61,64,65,68,76,77,167,209],[54,57,59,65,77,167,209],[54,57,59,65,167,209],[54,57,58,61,63,65,66,76,77,167,209],[54,77,167,209],[54,76,77,167,209],[54,57,59,61,64,65,76,77,83,90,167,209],[54,58,61,167,209],[54,57,59,63,76,77,90,91,167,209],[54,57,63,77,91,92,167,209],[54,57,59,63,65,90,91,167,209],[54,57,58,61,63,64,76,77,90,167,209],[61,167,209],[54,58,61,62,63,64,76,77,167,209],[83,167,209],[84,167,209],[54,57,58,59,61,64,69,70,76,77,167,209],[61,62,167,209],[54,56,67,68,76,77,167,209],[54,56,60,67,76,77,167,209],[54,61,65,167,209],[54,119,167,209],[54,167,209],[54,59,167,209],[59,167,209],[77,167,209],[76,167,209],[69,75,77,167,209],[54,57,59,61,64,76,77,167,209],[129,167,209],[54,59,60,167,209],[97,167,209],[47,48,49,50,51,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,167,209],[141,167,209],[49,167,209],[54,141,167,209],[55,167,209],[52,53,167,209],[167,209,287,326],[167,209,287,311,326],[167,209,326],[167,209,287],[167,209,287,312,326],[167,209,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325],[167,209,312,326],[167,209,328],[167,176,180,209,252],[167,176,209,241,252],[167,171,209],[167,173,176,209,249,252],[167,209,229,249],[167,209,259],[167,171,209,259],[167,173,176,209,229,252],[167,168,169,172,175,209,221,241,252],[167,176,183,209],[167,168,174,209],[167,176,197,198,209],[167,172,176,209,244,252,259],[167,197,209,259],[167,170,171,209,259],[167,176,209],[167,170,171,172,173,174,175,176,177,178,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,209],[167,176,191,209],[167,176,183,184,209],[167,174,176,184,185,209],[167,175,209],[167,168,171,176,209],[167,176,180,184,185,209],[167,180,209],[167,174,176,179,209,252],[167,168,173,176,183,209],[167,209,241],[167,171,176,197,209,257,259],[144,167,209],[141,144,167,209],[142,144,145,167,209],[142,146,167,209],[143,167,209],[143,147,151,152,167,209],[143,144,145,167,209],[46,141,143,148,150,167,209],[141,143,148,149,167,209],[141,142,167,209],[142,143,167,209],[142,144],[142],[143,147,151,152],[143,144],[141,143,150],[141,143,148,149],[141,142]],"referencedMap":[[156,1],[154,2],[159,3],[155,1],[157,4],[158,1],[161,5],[260,6],[261,2],[262,7],[263,8],[264,2],[265,2],[266,9],[284,10],[269,11],[275,12],[273,2],[272,13],[274,14],[283,15],[278,16],[280,17],[281,18],[282,19],[276,2],[277,19],[279,19],[271,19],[270,2],[286,20],[267,2],[268,21],[160,2],[206,22],[207,22],[208,23],[209,24],[210,25],[211,26],[162,2],[165,27],[163,2],[164,2],[212,28],[213,29],[214,30],[215,31],[216,32],[217,33],[218,33],[220,34],[219,35],[221,36],[222,37],[223,38],[205,39],[224,40],[225,41],[226,42],[227,43],[228,44],[229,45],[230,46],[231,47],[232,48],[233,49],[234,50],[235,51],[236,52],[237,52],[238,53],[239,2],[240,2],[241,54],[243,55],[242,56],[244,57],[245,58],[246,59],[247,60],[248,61],[249,62],[250,63],[167,64],[166,2],[259,65],[251,66],[252,67],[253,68],[254,69],[255,70],[256,71],[257,72],[258,73],[79,74],[80,2],[75,75],[81,2],[82,76],[86,77],[87,2],[88,78],[89,79],[94,80],[95,2],[96,81],[98,82],[99,83],[100,84],[101,85],[66,85],[102,86],[67,87],[103,88],[104,79],[105,89],[106,90],[107,2],[63,91],[108,92],[93,93],[92,94],[91,95],[68,86],[64,96],[65,97],[109,2],[97,98],[84,98],[85,99],[71,100],[69,2],[70,2],[110,98],[111,101],[112,2],[113,82],[72,102],[73,103],[114,2],[115,104],[116,2],[117,2],[118,2],[120,105],[121,2],[60,106],[123,106],[124,107],[122,108],[125,2],[126,109],[127,109],[128,109],[77,110],[76,111],[78,109],[74,112],[129,2],[130,113],[61,114],[131,77],[132,77],[133,115],[134,98],[119,2],[135,2],[136,2],[138,2],[139,106],[137,2],[83,2],[141,116],[47,2],[48,117],[49,118],[51,2],[50,2],[55,119],[56,120],[90,2],[57,2],[140,117],[58,2],[62,96],[59,106],[52,2],[54,121],[311,122],[312,123],[287,124],[290,124],[309,122],[310,122],[300,122],[299,125],[297,122],[292,122],[305,122],[303,122],[307,122],[291,122],[304,122],[308,122],[293,122],[294,122],[306,122],[288,122],[295,122],[296,122],[298,122],[302,122],[313,126],[301,122],[289,122],[326,127],[325,2],[320,126],[322,128],[321,126],[314,126],[315,126],[317,126],[319,126],[323,128],[324,128],[316,128],[318,128],[327,2],[285,2],[328,2],[329,129],[53,2],[9,2],[10,2],[14,2],[13,2],[3,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[4,2],[5,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[37,2],[34,2],[35,2],[36,2],[38,2],[8,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[2,2],[1,2],[12,2],[11,2],[183,130],[193,131],[182,130],[203,132],[174,133],[173,134],[202,135],[196,136],[201,137],[176,138],[190,139],[175,140],[199,141],[171,142],[170,135],[200,143],[172,144],[177,145],[178,2],[181,145],[168,2],[204,146],[194,147],[185,148],[186,149],[188,150],[184,151],[187,152],[197,135],[179,153],[180,154],[189,155],[169,156],[192,147],[191,145],[195,2],[198,157],[144,2],[145,158],[149,159],[46,2],[146,160],[147,161],[142,162],[153,163],[148,164],[151,165],[150,166],[143,167],[152,168]],"exportedModulesMap":[[156,1],[154,2],[159,3],[155,1],[157,4],[158,1],[161,5],[260,6],[261,2],[262,7],[263,8],[264,2],[265,2],[266,9],[284,10],[269,11],[275,12],[273,2],[272,13],[274,14],[283,15],[278,16],[280,17],[281,18],[282,19],[276,2],[277,19],[279,19],[271,19],[270,2],[286,20],[267,2],[268,21],[160,2],[206,22],[207,22],[208,23],[209,24],[210,25],[211,26],[162,2],[165,27],[163,2],[164,2],[212,28],[213,29],[214,30],[215,31],[216,32],[217,33],[218,33],[220,34],[219,35],[221,36],[222,37],[223,38],[205,39],[224,40],[225,41],[226,42],[227,43],[228,44],[229,45],[230,46],[231,47],[232,48],[233,49],[234,50],[235,51],[236,52],[237,52],[238,53],[239,2],[240,2],[241,54],[243,55],[242,56],[244,57],[245,58],[246,59],[247,60],[248,61],[249,62],[250,63],[167,64],[166,2],[259,65],[251,66],[252,67],[253,68],[254,69],[255,70],[256,71],[257,72],[258,73],[79,74],[80,2],[75,75],[81,2],[82,76],[86,77],[87,2],[88,78],[89,79],[94,80],[95,2],[96,81],[98,82],[99,83],[100,84],[101,85],[66,85],[102,86],[67,87],[103,88],[104,79],[105,89],[106,90],[107,2],[63,91],[108,92],[93,93],[92,94],[91,95],[68,86],[64,96],[65,97],[109,2],[97,98],[84,98],[85,99],[71,100],[69,2],[70,2],[110,98],[111,101],[112,2],[113,82],[72,102],[73,103],[114,2],[115,104],[116,2],[117,2],[118,2],[120,105],[121,2],[60,106],[123,106],[124,107],[122,108],[125,2],[126,109],[127,109],[128,109],[77,110],[76,111],[78,109],[74,112],[129,2],[130,113],[61,114],[131,77],[132,77],[133,115],[134,98],[119,2],[135,2],[136,2],[138,2],[139,106],[137,2],[83,2],[141,116],[47,2],[48,117],[49,118],[51,2],[50,2],[55,119],[56,120],[90,2],[57,2],[140,117],[58,2],[62,96],[59,106],[52,2],[54,121],[311,122],[312,123],[287,124],[290,124],[309,122],[310,122],[300,122],[299,125],[297,122],[292,122],[305,122],[303,122],[307,122],[291,122],[304,122],[308,122],[293,122],[294,122],[306,122],[288,122],[295,122],[296,122],[298,122],[302,122],[313,126],[301,122],[289,122],[326,127],[325,2],[320,126],[322,128],[321,126],[314,126],[315,126],[317,126],[319,126],[323,128],[324,128],[316,128],[318,128],[327,2],[285,2],[328,2],[329,129],[53,2],[9,2],[10,2],[14,2],[13,2],[3,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[4,2],[5,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[37,2],[34,2],[35,2],[36,2],[38,2],[8,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[2,2],[1,2],[12,2],[11,2],[183,130],[193,131],[182,130],[203,132],[174,133],[173,134],[202,135],[196,136],[201,137],[176,138],[190,139],[175,140],[199,141],[171,142],[170,135],[200,143],[172,144],[177,145],[178,2],[181,145],[168,2],[204,146],[194,147],[185,148],[186,149],[188,150],[184,151],[187,152],[197,135],[179,153],[180,154],[189,155],[169,156],[192,147],[191,145],[195,2],[198,157],[144,2],[145,158],[149,159],[146,169],[147,170],[153,171],[148,172],[151,173],[150,174],[143,175],[152,168]],"semanticDiagnosticsPerFile":[156,154,159,155,157,158,161,260,261,262,263,264,265,266,284,269,275,273,272,274,283,278,280,281,282,276,277,279,271,270,286,267,268,160,206,207,208,209,210,211,162,165,163,164,212,213,214,215,216,217,218,220,219,221,222,223,205,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,243,242,244,245,246,247,248,249,250,167,166,259,251,252,253,254,255,256,257,258,79,80,75,81,82,86,87,88,89,94,95,96,98,99,100,101,66,102,67,103,104,105,106,107,63,108,93,92,91,68,64,65,109,97,84,85,71,69,70,110,111,112,113,72,73,114,115,116,117,118,120,121,60,123,124,122,125,126,127,128,77,76,78,74,129,130,61,131,132,133,134,119,135,136,138,139,137,83,141,47,48,49,51,50,55,56,90,57,140,58,62,59,52,54,311,312,287,290,309,310,300,299,297,292,305,303,307,291,304,308,293,294,306,288,295,296,298,302,313,301,289,326,325,320,322,321,314,315,317,319,323,324,316,318,327,285,328,329,53,9,10,14,13,3,15,16,17,18,19,20,21,22,4,5,26,23,24,25,27,28,29,6,30,31,32,33,7,37,34,35,36,38,8,39,44,45,40,41,42,43,2,1,12,11,183,193,182,203,174,173,202,196,201,176,190,175,199,171,170,200,172,177,178,181,168,204,194,185,186,188,184,187,197,179,180,189,169,192,191,195,198,144,145,149,46,146,147,142,153,148,151,150,143,152],"latestChangedDtsFile":"./lib/index.d.ts"},"version":"4.9.5"}
|
package/lib/errors/errors.d.ts
DELETED
package/lib/errors/errors.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const E_TRANSPORT_TAG_ERROR = "E_TRANSPORT_TAG_ERROR";
|
|
2
|
-
|
|
3
|
-
class TransportTaggingError extends Error {
|
|
4
|
-
constructor(message) {
|
|
5
|
-
super(message);
|
|
6
|
-
this.name = "TransportTaggingError";
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
module.exports = {
|
|
11
|
-
TransportTaggingError,
|
|
12
|
-
E_TRANSPORT_TAG_ERROR
|
|
13
|
-
}
|
package/lib/feedback.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
const { NativeModules, Platform } = require("react-native");
|
|
2
|
-
const { varToString } = require("@sentiance-react-native/core/lib/utils");
|
|
3
|
-
|
|
4
|
-
const {SentianceFeedback, SentianceCore} = NativeModules;
|
|
5
|
-
|
|
6
|
-
const VALID_OCCUPANT_ROLE_TYPES = ["DRIVER", "PASSENGER"];
|
|
7
|
-
|
|
8
|
-
let feedbackModule = {};
|
|
9
|
-
if (Platform.OS === "android") {
|
|
10
|
-
if (!SentianceFeedback) {
|
|
11
|
-
const nativeModuleName = varToString({ SentianceFeedback });
|
|
12
|
-
console.error(`Could not locate the native ${nativeModuleName} module.
|
|
13
|
-
Make sure that your native code is properly linked, and that the module name you specified is correct.`);
|
|
14
|
-
} else {
|
|
15
|
-
feedbackModule = SentianceFeedback;
|
|
16
|
-
}
|
|
17
|
-
} else {
|
|
18
|
-
if (!SentianceCore) {
|
|
19
|
-
const nativeModuleName = varToString({ SentianceCore });
|
|
20
|
-
console.error(`Could not locate the native ${nativeModuleName} module.
|
|
21
|
-
Make sure that your native code is properly linked, and that the module name you specified is correct.`);
|
|
22
|
-
} else {
|
|
23
|
-
feedbackModule = SentianceCore;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const submitOccupantRoleFeedback = (transportId: string, occupantRoleFeedback: string) => {
|
|
28
|
-
if (!_isOccupantRoleFeedbackTypeValid(occupantRoleFeedback)) {
|
|
29
|
-
return Promise.reject(new Error("submitOccupantRoleFeedback was called with invalid feedback type: " + occupantRoleFeedback));
|
|
30
|
-
}
|
|
31
|
-
return feedbackModule.submitOccupantRoleFeedback(transportId, occupantRoleFeedback);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const _isOccupantRoleFeedbackTypeValid = (type: string): boolean => {
|
|
35
|
-
return VALID_OCCUPANT_ROLE_TYPES.includes(type);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
module.exports = {
|
|
39
|
-
submitOccupantRoleFeedback
|
|
40
|
-
};
|