@digia-engage/core 1.1.1 → 2.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +134 -51
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/digia/engage/rn/DigiaModule.kt +52 -8
- package/android/src/main/java/com/digia/engage/rn/DigiaSlotViewManager.kt +6 -2
- package/android/src/main/java/com/digia/engage/rn/DigiaViewManager.kt +1 -0
- package/ios/DigiaEngageModule.m +7 -1
- package/ios/DigiaHostViewManager.swift +20 -20
- package/ios/DigiaModule.swift +8 -4
- package/lib/commonjs/Digia.js +301 -3
- package/lib/commonjs/Digia.js.map +1 -1
- package/lib/commonjs/DigiaGuideController.js +59 -0
- package/lib/commonjs/DigiaGuideController.js.map +1 -0
- package/lib/commonjs/DigiaHealthReporter.js +45 -0
- package/lib/commonjs/DigiaHealthReporter.js.map +1 -0
- package/lib/commonjs/DigiaProvider.js +1079 -0
- package/lib/commonjs/DigiaProvider.js.map +1 -0
- package/lib/commonjs/DigiaSlotView.js +18 -3
- package/lib/commonjs/DigiaSlotView.js.map +1 -1
- package/lib/commonjs/NativeDigiaEngage.js +14 -8
- package/lib/commonjs/NativeDigiaEngage.js.map +1 -1
- package/lib/commonjs/actionHandler.js +316 -0
- package/lib/commonjs/actionHandler.js.map +1 -0
- package/lib/commonjs/defaultInAppBrowser.js +31 -0
- package/lib/commonjs/defaultInAppBrowser.js.map +1 -0
- package/lib/commonjs/digiaAnchorRegistry.js +32 -0
- package/lib/commonjs/digiaAnchorRegistry.js.map +1 -0
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/templateTypes.js +2 -0
- package/lib/commonjs/templateTypes.js.map +1 -0
- package/lib/module/Digia.js +301 -3
- package/lib/module/Digia.js.map +1 -1
- package/lib/module/DigiaGuideController.js +53 -0
- package/lib/module/DigiaGuideController.js.map +1 -0
- package/lib/module/DigiaHealthReporter.js +38 -0
- package/lib/module/DigiaHealthReporter.js.map +1 -0
- package/lib/module/DigiaProvider.js +1072 -0
- package/lib/module/DigiaProvider.js.map +1 -0
- package/lib/module/DigiaSlotView.js +20 -5
- package/lib/module/DigiaSlotView.js.map +1 -1
- package/lib/module/NativeDigiaEngage.js +14 -8
- package/lib/module/NativeDigiaEngage.js.map +1 -1
- package/lib/module/actionHandler.js +311 -0
- package/lib/module/actionHandler.js.map +1 -0
- package/lib/module/defaultInAppBrowser.js +25 -0
- package/lib/module/defaultInAppBrowser.js.map +1 -0
- package/lib/module/digiaAnchorRegistry.js +26 -0
- package/lib/module/digiaAnchorRegistry.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/templateTypes.js +2 -0
- package/lib/module/templateTypes.js.map +1 -0
- package/lib/typescript/Digia.d.ts +29 -2
- package/lib/typescript/Digia.d.ts.map +1 -1
- package/lib/typescript/DigiaGuideController.d.ts +30 -0
- package/lib/typescript/DigiaGuideController.d.ts.map +1 -0
- package/lib/typescript/DigiaHealthReporter.d.ts +24 -0
- package/lib/typescript/DigiaHealthReporter.d.ts.map +1 -0
- package/lib/typescript/DigiaProvider.d.ts +3 -0
- package/lib/typescript/DigiaProvider.d.ts.map +1 -0
- package/lib/typescript/DigiaSlotView.d.ts.map +1 -1
- package/lib/typescript/NativeDigiaEngage.d.ts +10 -6
- package/lib/typescript/NativeDigiaEngage.d.ts.map +1 -1
- package/lib/typescript/actionHandler.d.ts +20 -0
- package/lib/typescript/actionHandler.d.ts.map +1 -0
- package/lib/typescript/defaultInAppBrowser.d.ts +3 -0
- package/lib/typescript/defaultInAppBrowser.d.ts.map +1 -0
- package/lib/typescript/digiaAnchorRegistry.d.ts +15 -0
- package/lib/typescript/digiaAnchorRegistry.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/templateTypes.d.ts +140 -0
- package/lib/typescript/templateTypes.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +140 -3
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +11 -3
- package/src/Digia.ts +340 -3
- package/src/DigiaGuideController.ts +61 -0
- package/src/DigiaHealthReporter.ts +43 -0
- package/src/DigiaProvider.tsx +776 -0
- package/src/DigiaSlotView.tsx +26 -6
- package/src/NativeDigiaEngage.ts +28 -13
- package/src/actionHandler.ts +311 -0
- package/src/defaultInAppBrowser.ts +31 -0
- package/src/digiaAnchorRegistry.ts +27 -0
- package/src/index.ts +1 -0
- package/src/templateTypes.ts +121 -0
- package/src/types.ts +102 -5
package/lib/commonjs/index.js
CHANGED
|
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "DigiaAnchorView", {
|
|
|
15
15
|
return _DigiaAnchorView.DigiaAnchorView;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "DigiaHost", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _DigiaProvider.DigiaHost;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
18
24
|
Object.defineProperty(exports, "DigiaHostView", {
|
|
19
25
|
enumerable: true,
|
|
20
26
|
get: function () {
|
|
@@ -29,6 +35,7 @@ Object.defineProperty(exports, "DigiaSlotView", {
|
|
|
29
35
|
});
|
|
30
36
|
var _Digia = require("./Digia");
|
|
31
37
|
var _DigiaHostView = require("./DigiaHostView");
|
|
38
|
+
var _DigiaProvider = require("./DigiaProvider");
|
|
32
39
|
var _DigiaSlotView = require("./DigiaSlotView");
|
|
33
40
|
var _DigiaAnchorView = require("./DigiaAnchorView");
|
|
34
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Digia","require","_DigiaHostView","_DigiaSlotView","_DigiaAnchorView"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_Digia","require","_DigiaHostView","_DigiaProvider","_DigiaSlotView","_DigiaAnchorView"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["templateTypes.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/Digia.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* import { Digia } from '@digia/engage-react-native';
|
|
8
8
|
*
|
|
9
9
|
* // In your App entry point (e.g. App.tsx):
|
|
10
|
-
* await Digia.initialize({
|
|
10
|
+
* await Digia.initialize({ projectId: 'YOUR_PROJECT_ID' });
|
|
11
11
|
*
|
|
12
12
|
* // Whenever your navigation screen changes:
|
|
13
13
|
* Digia.setCurrentScreen('Home');
|
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
|
|
18
18
|
import { DeviceEventEmitter } from 'react-native';
|
|
19
19
|
import { nativeDigiaModule } from './NativeDigiaEngage';
|
|
20
|
+
import { digiaHealthReporter, HealthEventType } from './DigiaHealthReporter';
|
|
21
|
+
import { digiaGuideController } from './DigiaGuideController';
|
|
22
|
+
import { digiaActionHandler } from './actionHandler';
|
|
23
|
+
const PRODUCTION_API_ROOT = 'https://app.digia.tech';
|
|
24
|
+
const SANDBOX_API_ROOT = 'https://dev.digia.tech';
|
|
25
|
+
const DIGIA_SDK_VERSION = '1.0.0';
|
|
20
26
|
class DigiaClass {
|
|
21
27
|
_plugins = new Map();
|
|
22
28
|
// Tracks whether the native bridge plugin (RNEventBridgePlugin) has been
|
|
@@ -26,6 +32,12 @@ class DigiaClass {
|
|
|
26
32
|
// the full InAppPayload when overlay lifecycle events arrive from native.
|
|
27
33
|
_activePayloads = new Map();
|
|
28
34
|
_engageSubscription = null;
|
|
35
|
+
_projectId = '';
|
|
36
|
+
_apiBaseUrl = '';
|
|
37
|
+
_logLevel = 'error';
|
|
38
|
+
_currentScreen = null;
|
|
39
|
+
_campaignsByKey = new Map();
|
|
40
|
+
_registeredAnchorKeys = new Set();
|
|
29
41
|
|
|
30
42
|
/**
|
|
31
43
|
* Initialise the Digia Engage SDK.
|
|
@@ -36,7 +48,24 @@ class DigiaClass {
|
|
|
36
48
|
async initialize(config) {
|
|
37
49
|
const environment = config.environment ?? 'production';
|
|
38
50
|
const logLevel = config.logLevel ?? 'error';
|
|
39
|
-
|
|
51
|
+
this._projectId = config.projectId;
|
|
52
|
+
this._apiBaseUrl = this._resolveApiBaseUrl(config);
|
|
53
|
+
this._logLevel = logLevel;
|
|
54
|
+
this._fontFamily = config.fontFamily?.trim() || undefined;
|
|
55
|
+
digiaHealthReporter.init(config.projectId, this._apiBaseUrl);
|
|
56
|
+
digiaActionHandler.configure({
|
|
57
|
+
onAction: config.onAction,
|
|
58
|
+
routeViaSystemLinking: config.linking?.routeViaSystemLinking ?? true,
|
|
59
|
+
inAppBrowser: config.linking?.inAppBrowser
|
|
60
|
+
});
|
|
61
|
+
try {
|
|
62
|
+
await nativeDigiaModule.initialize(config.projectId, environment, logLevel, config.baseUrl, config.fontFamily);
|
|
63
|
+
} catch (e) {
|
|
64
|
+
// TODO: TO BE PICKED LATER @aditya-digia — health event reporting being removed
|
|
65
|
+
// digiaHealthReporter.report(HealthEventType.fetch_failed, { error_code: 0, platform: 'react_native' });
|
|
66
|
+
throw e;
|
|
67
|
+
}
|
|
68
|
+
await this._refreshCampaignStore();
|
|
40
69
|
}
|
|
41
70
|
|
|
42
71
|
/**
|
|
@@ -50,7 +79,7 @@ class DigiaClass {
|
|
|
50
79
|
* ```ts
|
|
51
80
|
* import { DigiaMoEngagePlugin } from '@digia/moengage-plugin';
|
|
52
81
|
*
|
|
53
|
-
* await Digia.initialize({
|
|
82
|
+
* await Digia.initialize({ projectId: 'YOUR_PROJECT_ID' });
|
|
54
83
|
* Digia.register(new DigiaMoEngagePlugin({ moEngage: MoEngage }));
|
|
55
84
|
* ```
|
|
56
85
|
*/
|
|
@@ -66,6 +95,7 @@ class DigiaClass {
|
|
|
66
95
|
this._nativeBridgeWired = true;
|
|
67
96
|
}
|
|
68
97
|
plugin.setup(this);
|
|
98
|
+
plugin.reportHealth?.(digiaHealthReporter);
|
|
69
99
|
this._plugins.set(plugin.identifier, plugin);
|
|
70
100
|
}
|
|
71
101
|
|
|
@@ -87,20 +117,94 @@ class DigiaClass {
|
|
|
87
117
|
* All registered plugins will have forwardScreen() called automatically.
|
|
88
118
|
*/
|
|
89
119
|
setCurrentScreen(name) {
|
|
120
|
+
this._currentScreen = name;
|
|
90
121
|
nativeDigiaModule.setCurrentScreen(name);
|
|
91
122
|
this._plugins.forEach(plugin => plugin.forwardScreen(name));
|
|
92
123
|
}
|
|
124
|
+
registerAnchor(anchorKey, _screenName) {
|
|
125
|
+
const cleanAnchorKey = anchorKey.trim();
|
|
126
|
+
if (!cleanAnchorKey) return;
|
|
127
|
+
this._registeredAnchorKeys.add(cleanAnchorKey);
|
|
128
|
+
}
|
|
129
|
+
unregisterAnchor(anchorKey) {
|
|
130
|
+
this._registeredAnchorKeys.delete(anchorKey);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Global font family configured via {@link initialize}, or `undefined` when
|
|
135
|
+
* none was set. Used by the JS-rendered guide overlays (tooltip/spotlight)
|
|
136
|
+
* so their text matches native-rendered campaigns.
|
|
137
|
+
*/
|
|
138
|
+
get fontFamily() {
|
|
139
|
+
return this._fontFamily;
|
|
140
|
+
}
|
|
93
141
|
|
|
94
142
|
// ── DigiaDelegate ────────────────────────────────────────────────────────
|
|
95
143
|
// Mirrors DigiaCEPDelegate on Android.
|
|
96
144
|
// Forwards to the native DigiaCEPDelegate via the bridge.
|
|
97
145
|
|
|
98
146
|
onCampaignTriggered(payload) {
|
|
147
|
+
if (!this._nativeBridgeWired) {
|
|
148
|
+
digiaHealthReporter.report(HealthEventType.plugin_not_registered, {
|
|
149
|
+
campaign_key: payload.id
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const campaignKey = this._extractCampaignKey(payload);
|
|
153
|
+
this._log(`onCampaignTriggered payloadId=${payload.id} extractedKey=${campaignKey} knownKeys=[${[...this._campaignsByKey.keys()].join(', ')}]`);
|
|
154
|
+
if (campaignKey) {
|
|
155
|
+
const campaign = this._campaignsByKey.get(campaignKey);
|
|
156
|
+
if (campaign?.campaign_type === 'inline' || campaign?.campaign_type === 'survey') {
|
|
157
|
+
this._log(`${campaign.campaign_type} campaign triggered campaign_key=${campaignKey}, forwarding to native`);
|
|
158
|
+
this._activePayloads.set(payload.id, payload);
|
|
159
|
+
if (campaign.campaign_type === 'inline') {
|
|
160
|
+
this._emitSlotWidth(campaign);
|
|
161
|
+
}
|
|
162
|
+
nativeDigiaModule.triggerCampaign(payload.id, payload.content, payload.cepContext);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (campaign?.campaign_type === 'guide') {
|
|
166
|
+
const config = this._parseTemplateConfig(campaign);
|
|
167
|
+
if (!config || config.templateType !== 'tooltip' && config.templateType !== 'spotlight' || config.steps.length === 0) {
|
|
168
|
+
digiaHealthReporter.report(HealthEventType.anchor_not_on_screen, {
|
|
169
|
+
campaign_key: campaignKey,
|
|
170
|
+
reason: 'guide_campaign_has_no_steps'
|
|
171
|
+
});
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
this._activePayloads.set(payload.id, payload);
|
|
175
|
+
const digiaId = campaign._id ?? campaign.id ?? campaignKey;
|
|
176
|
+
const mounted = digiaGuideController.start({
|
|
177
|
+
payloadId: payload.id,
|
|
178
|
+
campaignKey,
|
|
179
|
+
campaignId: digiaId,
|
|
180
|
+
config,
|
|
181
|
+
onExperienceEvent: event => this._onGuideLifecycleEvent(event, payload.id, campaignKey, digiaId)
|
|
182
|
+
});
|
|
183
|
+
this._log(`guide trigger campaign_key=${campaignKey} mounted=${mounted}`);
|
|
184
|
+
if (!mounted) {
|
|
185
|
+
digiaHealthReporter.report(HealthEventType.host_not_mounted, {
|
|
186
|
+
campaign_key: campaignKey,
|
|
187
|
+
payload_id: payload.id
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (!campaign) {
|
|
193
|
+
this._log(`campaign_key_mismatch: no campaign found for key="${campaignKey}"`);
|
|
194
|
+
digiaHealthReporter.report(HealthEventType.campaign_key_mismatch, {
|
|
195
|
+
campaign_key: campaignKey,
|
|
196
|
+
payload_id: payload.id,
|
|
197
|
+
available_campaign_keys: [...this._campaignsByKey.keys()]
|
|
198
|
+
});
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
99
202
|
this._activePayloads.set(payload.id, payload);
|
|
100
203
|
nativeDigiaModule.triggerCampaign(payload.id, payload.content, payload.cepContext);
|
|
101
204
|
}
|
|
102
205
|
onCampaignInvalidated(campaignId) {
|
|
103
206
|
this._activePayloads.delete(campaignId);
|
|
207
|
+
digiaGuideController.cancel(campaignId);
|
|
104
208
|
nativeDigiaModule.invalidateCampaign(campaignId);
|
|
105
209
|
}
|
|
106
210
|
|
|
@@ -145,6 +249,200 @@ class DigiaClass {
|
|
|
145
249
|
}
|
|
146
250
|
this._plugins.forEach(plugin => plugin.notifyEvent(event, payload));
|
|
147
251
|
}
|
|
252
|
+
_onGuideLifecycleEvent(event, payloadId, campaignKey, campaignId) {
|
|
253
|
+
const eventName = this._guideEventName(event.type);
|
|
254
|
+
const properties = this._buildGuideProperties(event, campaignId, campaignKey);
|
|
255
|
+
this._plugins.forEach(p => p.track?.(eventName, properties));
|
|
256
|
+
|
|
257
|
+
// Notify plugins of CEP lifecycle termination (template cleanup) on exit events.
|
|
258
|
+
if (event.type === 'dismissed' || event.type === 'completed') {
|
|
259
|
+
const storedPayload = this._activePayloads.get(payloadId);
|
|
260
|
+
if (storedPayload) {
|
|
261
|
+
this._plugins.forEach(p => p.notifyEvent({
|
|
262
|
+
type: 'dismissed'
|
|
263
|
+
}, storedPayload));
|
|
264
|
+
this._activePayloads.delete(payloadId);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
_guideEventName(type) {
|
|
269
|
+
switch (type) {
|
|
270
|
+
case 'viewed':
|
|
271
|
+
return 'Digia Experience Viewed';
|
|
272
|
+
case 'step_viewed':
|
|
273
|
+
return 'Digia Step Viewed';
|
|
274
|
+
case 'clicked':
|
|
275
|
+
return 'Digia Experience Clicked';
|
|
276
|
+
case 'step_clicked':
|
|
277
|
+
return 'Digia Step Clicked';
|
|
278
|
+
case 'dismissed':
|
|
279
|
+
return 'Digia Experience Dismissed';
|
|
280
|
+
case 'step_dismissed':
|
|
281
|
+
return 'Digia Step Dismissed';
|
|
282
|
+
case 'completed':
|
|
283
|
+
return 'Digia Experience Completed';
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
_buildGuideProperties(event, campaignId, campaignKey) {
|
|
287
|
+
const base = {
|
|
288
|
+
campaign_id: campaignId,
|
|
289
|
+
campaign_key: campaignKey,
|
|
290
|
+
campaign_type: 'guide',
|
|
291
|
+
display_style: event.displayStyle,
|
|
292
|
+
step_index: event.stepIndex + 1,
|
|
293
|
+
step_total: event.stepTotal,
|
|
294
|
+
anchor_key: event.anchorKey,
|
|
295
|
+
slot_key: null,
|
|
296
|
+
element_id: null,
|
|
297
|
+
cta_label: null,
|
|
298
|
+
action_type: null,
|
|
299
|
+
action_url: null,
|
|
300
|
+
dismiss_reason: null,
|
|
301
|
+
abandoned_at_step: null,
|
|
302
|
+
digia_sdk_version: DIGIA_SDK_VERSION,
|
|
303
|
+
digia_platform: 'react_native'
|
|
304
|
+
};
|
|
305
|
+
if (event.type === 'clicked' || event.type === 'step_clicked') {
|
|
306
|
+
base.element_id = event.elementId ?? null;
|
|
307
|
+
base.cta_label = event.ctaLabel;
|
|
308
|
+
base.action_type = event.actionType;
|
|
309
|
+
base.action_url = event.actionUrl ?? null;
|
|
310
|
+
} else if (event.type === 'dismissed' || event.type === 'step_dismissed') {
|
|
311
|
+
base.dismiss_reason = event.dismissReason;
|
|
312
|
+
base.abandoned_at_step = event.stepIndex + 1;
|
|
313
|
+
}
|
|
314
|
+
return base;
|
|
315
|
+
}
|
|
316
|
+
_resolveApiBaseUrl(config) {
|
|
317
|
+
const root = (config.baseUrl ?? (config.environment === 'sandbox' ? SANDBOX_API_ROOT : PRODUCTION_API_ROOT)).trim();
|
|
318
|
+
const cleanRoot = root.replace(/\/+$/, '');
|
|
319
|
+
return cleanRoot.endsWith('/api/v1') ? cleanRoot : `${cleanRoot}/api/v1`;
|
|
320
|
+
}
|
|
321
|
+
async _refreshCampaignStore() {
|
|
322
|
+
try {
|
|
323
|
+
this._log(`fetching campaigns from ${this._apiBaseUrl}/engage/sdk/getCampaigns`);
|
|
324
|
+
const campaigns = await this._sdkPost('getCampaigns');
|
|
325
|
+
this._campaignsByKey.clear();
|
|
326
|
+
if (campaigns.length > 0) {
|
|
327
|
+
this._log(`campaign[0] raw keys: ${JSON.stringify(Object.keys(campaigns[0]))}`);
|
|
328
|
+
}
|
|
329
|
+
campaigns.forEach(campaign => {
|
|
330
|
+
const raw = campaign;
|
|
331
|
+
const key = typeof raw.campaign_key === 'string' && raw.campaign_key || typeof raw.campaignKey === 'string' && raw.campaignKey || null;
|
|
332
|
+
const type = typeof raw.campaign_type === 'string' && raw.campaign_type || typeof raw.campaignType === 'string' && raw.campaignType || '';
|
|
333
|
+
if (key) {
|
|
334
|
+
this._campaignsByKey.set(key, {
|
|
335
|
+
...campaign,
|
|
336
|
+
campaign_key: key,
|
|
337
|
+
campaign_type: type
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
this._log(`loaded ${campaigns.length} campaign(s): [${[...this._campaignsByKey.keys()].join(', ')}]`);
|
|
342
|
+
} catch (e) {
|
|
343
|
+
const reason = e instanceof Error ? e.message : String(e);
|
|
344
|
+
this._log(`getCampaigns FAILED: ${reason}`);
|
|
345
|
+
digiaHealthReporter.report(HealthEventType.fetch_failed, {
|
|
346
|
+
error_code: 0,
|
|
347
|
+
platform: 'react_native',
|
|
348
|
+
reason
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
async _sdkPost(path, body = {}) {
|
|
353
|
+
const res = await fetch(`${this._apiBaseUrl}/engage/sdk/${path}`, {
|
|
354
|
+
method: 'POST',
|
|
355
|
+
headers: {
|
|
356
|
+
'Content-Type': 'application/json',
|
|
357
|
+
'x-digia-project-id': this._projectId
|
|
358
|
+
},
|
|
359
|
+
body: JSON.stringify(body)
|
|
360
|
+
});
|
|
361
|
+
if (!res.ok) {
|
|
362
|
+
throw new Error(`${path} failed: HTTP ${res.status}`);
|
|
363
|
+
}
|
|
364
|
+
const json = await res.json();
|
|
365
|
+
return this._extractApiResponse(json);
|
|
366
|
+
}
|
|
367
|
+
_extractApiResponse(json) {
|
|
368
|
+
if (Array.isArray(json)) return json;
|
|
369
|
+
if (json && typeof json === 'object') {
|
|
370
|
+
const obj = json;
|
|
371
|
+
const data = obj.data;
|
|
372
|
+
if (data && typeof data === 'object' && 'response' in data) {
|
|
373
|
+
const value = data.response;
|
|
374
|
+
if (value == null) throw new Error('SDK response.data.response is null');
|
|
375
|
+
return value;
|
|
376
|
+
}
|
|
377
|
+
if ('response' in obj) {
|
|
378
|
+
const value = obj.response;
|
|
379
|
+
if (value == null) throw new Error('SDK response.response is null');
|
|
380
|
+
return value;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
throw new Error('SDK response missing data.response');
|
|
384
|
+
}
|
|
385
|
+
_emitSlotWidth(campaign) {
|
|
386
|
+
const raw = campaign;
|
|
387
|
+
const config = raw.templateConfig;
|
|
388
|
+
if (!config) {
|
|
389
|
+
this._log(`_emitSlotWidth: no templateConfig for campaign ${campaign.campaign_key}`);
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
const slotKey = typeof config.slotKey === 'string' ? config.slotKey : null;
|
|
393
|
+
const width = typeof config.width === 'number' && config.width > 0 ? config.width : null;
|
|
394
|
+
this._log(`_emitSlotWidth slotKey=${slotKey} width=${width} campaign=${campaign.campaign_key}`);
|
|
395
|
+
if (slotKey) {
|
|
396
|
+
DeviceEventEmitter.emit('digiaSlotWidth', {
|
|
397
|
+
slotKey,
|
|
398
|
+
width
|
|
399
|
+
});
|
|
400
|
+
} else {
|
|
401
|
+
this._log(`_emitSlotWidth: no slotKey in templateConfig ${JSON.stringify(config)}`);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
_extractCampaignKey(payload) {
|
|
405
|
+
const fromContent = this._extractString(payload.content, 'digiaKey', 'campaign_key', 'campaignKey');
|
|
406
|
+
if (fromContent) return fromContent;
|
|
407
|
+
const args = payload.content.args;
|
|
408
|
+
if (args && typeof args === 'object' && !Array.isArray(args)) {
|
|
409
|
+
const fromArgs = this._extractString(args, 'digiaKey', 'campaign_key', 'campaignKey');
|
|
410
|
+
if (fromArgs) return fromArgs;
|
|
411
|
+
}
|
|
412
|
+
if (this._campaignsByKey.has(payload.id)) return payload.id;
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
_extractString(data, ...keys) {
|
|
416
|
+
for (const key of keys) {
|
|
417
|
+
const value = data[key];
|
|
418
|
+
if (typeof value === 'string' && value.trim()) return value.trim();
|
|
419
|
+
}
|
|
420
|
+
return null;
|
|
421
|
+
}
|
|
422
|
+
_parseTemplateConfig(campaign) {
|
|
423
|
+
const c = campaign;
|
|
424
|
+
const raw = c.templateConfig;
|
|
425
|
+
if (!raw || typeof raw !== 'object') return null;
|
|
426
|
+
const type = raw.templateType;
|
|
427
|
+
if (type !== 'tooltip' && type !== 'spotlight' && type !== 'carousel') {
|
|
428
|
+
this._log(`unknown templateType="${type}" for campaign_key=${campaign.campaign_key}`);
|
|
429
|
+
return null;
|
|
430
|
+
}
|
|
431
|
+
if (type === 'carousel') {
|
|
432
|
+
return raw;
|
|
433
|
+
}
|
|
434
|
+
const steps = Array.isArray(raw.steps) ? raw.steps : [];
|
|
435
|
+
return {
|
|
436
|
+
...raw,
|
|
437
|
+
templateType: type,
|
|
438
|
+
steps
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
_log(message) {
|
|
442
|
+
if (this._logLevel !== 'verbose') return;
|
|
443
|
+
// eslint-disable-next-line no-console
|
|
444
|
+
console.log(`[Digia] ${message}`);
|
|
445
|
+
}
|
|
148
446
|
}
|
|
149
447
|
export const Digia = new DigiaClass();
|
|
150
448
|
//# sourceMappingURL=Digia.js.map
|
package/lib/module/Digia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DeviceEventEmitter","nativeDigiaModule","DigiaClass","_plugins","Map","_nativeBridgeWired","_activePayloads","_engageSubscription","initialize","config","environment","logLevel","apiKey","register","plugin","has","identifier","get","teardown","registerBridge","_startEngageListener","setup","set","unregister","pluginOrId","id","delete","setCurrentScreen","name","forEach","forwardScreen","onCampaignTriggered","payload","triggerCampaign","content","cepContext","onCampaignInvalidated","campaignId","invalidateCampaign","addListener","data","_forwardExperienceEvent","event","type","elementId","notifyEvent","Digia"],"sourceRoot":"../../src","sources":["Digia.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DeviceEventEmitter","nativeDigiaModule","digiaHealthReporter","HealthEventType","digiaGuideController","digiaActionHandler","PRODUCTION_API_ROOT","SANDBOX_API_ROOT","DIGIA_SDK_VERSION","DigiaClass","_plugins","Map","_nativeBridgeWired","_activePayloads","_engageSubscription","_projectId","_apiBaseUrl","_logLevel","_currentScreen","_campaignsByKey","_registeredAnchorKeys","Set","initialize","config","environment","logLevel","projectId","_resolveApiBaseUrl","_fontFamily","fontFamily","trim","undefined","init","configure","onAction","routeViaSystemLinking","linking","inAppBrowser","baseUrl","e","_refreshCampaignStore","register","plugin","has","identifier","get","teardown","registerBridge","_startEngageListener","setup","reportHealth","set","unregister","pluginOrId","id","delete","setCurrentScreen","name","forEach","forwardScreen","registerAnchor","anchorKey","_screenName","cleanAnchorKey","add","unregisterAnchor","onCampaignTriggered","payload","report","plugin_not_registered","campaign_key","campaignKey","_extractCampaignKey","_log","keys","join","campaign","campaign_type","_emitSlotWidth","triggerCampaign","content","cepContext","_parseTemplateConfig","templateType","steps","length","anchor_not_on_screen","reason","digiaId","_id","mounted","start","payloadId","campaignId","onExperienceEvent","event","_onGuideLifecycleEvent","host_not_mounted","payload_id","campaign_key_mismatch","available_campaign_keys","onCampaignInvalidated","cancel","invalidateCampaign","addListener","data","_forwardExperienceEvent","type","elementId","notifyEvent","eventName","_guideEventName","properties","_buildGuideProperties","p","track","storedPayload","base","campaign_id","display_style","displayStyle","step_index","stepIndex","step_total","stepTotal","anchor_key","slot_key","element_id","cta_label","action_type","action_url","dismiss_reason","abandoned_at_step","digia_sdk_version","digia_platform","ctaLabel","actionType","actionUrl","dismissReason","root","cleanRoot","replace","endsWith","campaigns","_sdkPost","clear","JSON","stringify","Object","raw","key","campaignType","Error","message","String","fetch_failed","error_code","platform","path","body","res","fetch","method","headers","ok","status","json","_extractApiResponse","Array","isArray","obj","value","response","templateConfig","slotKey","width","emit","fromContent","_extractString","args","fromArgs","c","console","log","Digia"],"sourceRoot":"../../src","sources":["Digia.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
class DigiaGuideController {
|
|
2
|
+
_listener = null;
|
|
3
|
+
_queue = [];
|
|
4
|
+
_activeRequest = null;
|
|
5
|
+
subscribe(listener) {
|
|
6
|
+
this._listener = listener;
|
|
7
|
+
if (this._queue.length > 0) {
|
|
8
|
+
const request = this._queue.shift();
|
|
9
|
+
this._activeRequest = request;
|
|
10
|
+
listener({
|
|
11
|
+
type: 'start',
|
|
12
|
+
request
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return () => {
|
|
16
|
+
if (this._listener === listener) this._listener = null;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
start(request) {
|
|
20
|
+
if (!this._listener) {
|
|
21
|
+
this._queue.push(request);
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
this._activeRequest = request;
|
|
25
|
+
this._listener({
|
|
26
|
+
type: 'start',
|
|
27
|
+
request
|
|
28
|
+
});
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
cancel(payloadId) {
|
|
32
|
+
this._queue = this._queue.filter(r => r.payloadId !== payloadId);
|
|
33
|
+
if (this._activeRequest?.payloadId === payloadId) {
|
|
34
|
+
this._listener?.({
|
|
35
|
+
type: 'cancel',
|
|
36
|
+
payloadId
|
|
37
|
+
});
|
|
38
|
+
this._activeRequest = null;
|
|
39
|
+
this._dispatchNext();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
_dispatchNext() {
|
|
43
|
+
if (this._queue.length === 0 || !this._listener) return;
|
|
44
|
+
const request = this._queue.shift();
|
|
45
|
+
this._activeRequest = request;
|
|
46
|
+
this._listener({
|
|
47
|
+
type: 'start',
|
|
48
|
+
request
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export const digiaGuideController = new DigiaGuideController();
|
|
53
|
+
//# sourceMappingURL=DigiaGuideController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DigiaGuideController","_listener","_queue","_activeRequest","subscribe","listener","length","request","shift","type","start","push","cancel","payloadId","filter","r","_dispatchNext","digiaGuideController"],"sourceRoot":"../../src","sources":["DigiaGuideController.ts"],"mappings":"AAkBA,MAAMA,oBAAoB,CAAC;EACfC,SAAS,GAA8B,IAAI;EAC3CC,MAAM,GAAwB,EAAE;EAChCC,cAAc,GAA6B,IAAI;EAEvDC,SAASA,CAACC,QAA4B,EAAc;IAChD,IAAI,CAACJ,SAAS,GAAGI,QAAQ;IACzB,IAAI,IAAI,CAACH,MAAM,CAACI,MAAM,GAAG,CAAC,EAAE;MACxB,MAAMC,OAAO,GAAG,IAAI,CAACL,MAAM,CAACM,KAAK,CAAC,CAAE;MACpC,IAAI,CAACL,cAAc,GAAGI,OAAO;MAC7BF,QAAQ,CAAC;QAAEI,IAAI,EAAE,OAAO;QAAEF;MAAQ,CAAC,CAAC;IACxC;IACA,OAAO,MAAM;MAAE,IAAI,IAAI,CAACN,SAAS,KAAKI,QAAQ,EAAE,IAAI,CAACJ,SAAS,GAAG,IAAI;IAAE,CAAC;EAC5E;EAEAS,KAAKA,CAACH,OAA0B,EAAW;IACvC,IAAI,CAAC,IAAI,CAACN,SAAS,EAAE;MACjB,IAAI,CAACC,MAAM,CAACS,IAAI,CAACJ,OAAO,CAAC;MACzB,OAAO,KAAK;IAChB;IACA,IAAI,CAACJ,cAAc,GAAGI,OAAO;IAC7B,IAAI,CAACN,SAAS,CAAC;MAAEQ,IAAI,EAAE,OAAO;MAAEF;IAAQ,CAAC,CAAC;IAC1C,OAAO,IAAI;EACf;EAEAK,MAAMA,CAACC,SAAiB,EAAQ;IAC5B,IAAI,CAACX,MAAM,GAAG,IAAI,CAACA,MAAM,CAACY,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACF,SAAS,KAAKA,SAAS,CAAC;IAChE,IAAI,IAAI,CAACV,cAAc,EAAEU,SAAS,KAAKA,SAAS,EAAE;MAC9C,IAAI,CAACZ,SAAS,GAAG;QAAEQ,IAAI,EAAE,QAAQ;QAAEI;MAAU,CAAC,CAAC;MAC/C,IAAI,CAACV,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACa,aAAa,CAAC,CAAC;IACxB;EACJ;EAEQA,aAAaA,CAAA,EAAS;IAC1B,IAAI,IAAI,CAACd,MAAM,CAACI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAACL,SAAS,EAAE;IACjD,MAAMM,OAAO,GAAG,IAAI,CAACL,MAAM,CAACM,KAAK,CAAC,CAAE;IACpC,IAAI,CAACL,cAAc,GAAGI,OAAO;IAC7B,IAAI,CAACN,SAAS,CAAC;MAAEQ,IAAI,EAAE,OAAO;MAAEF;IAAQ,CAAC,CAAC;EAC9C;AACJ;AAEA,OAAO,MAAMU,oBAAoB,GAAG,IAAIjB,oBAAoB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export const HealthEventType = {
|
|
2
|
+
campaign_key_mismatch: 'campaign_key_mismatch',
|
|
3
|
+
component_orphaned: 'component_orphaned',
|
|
4
|
+
anchor_not_on_screen: 'anchor_not_on_screen',
|
|
5
|
+
host_not_mounted: 'host_not_mounted',
|
|
6
|
+
plugin_not_registered: 'plugin_not_registered',
|
|
7
|
+
fetch_failed: 'fetch_failed',
|
|
8
|
+
action_handler_threw: 'action_handler_threw',
|
|
9
|
+
action_handler_timeout: 'action_handler_timeout',
|
|
10
|
+
deep_link_no_handler: 'deep_link_no_handler',
|
|
11
|
+
invalid_action_url: 'invalid_action_url',
|
|
12
|
+
inapp_browser_unavailable: 'inapp_browser_unavailable',
|
|
13
|
+
invalid_action_context: 'invalid_action_context',
|
|
14
|
+
cold_start_queue_overflow: 'cold_start_queue_overflow'
|
|
15
|
+
};
|
|
16
|
+
export class DigiaHealthReporter {
|
|
17
|
+
_projectId = '';
|
|
18
|
+
_baseUrl = '';
|
|
19
|
+
init(projectId, baseUrl) {
|
|
20
|
+
this._projectId = projectId;
|
|
21
|
+
this._baseUrl = baseUrl;
|
|
22
|
+
}
|
|
23
|
+
report(eventType, detail) {
|
|
24
|
+
if (!this._projectId) return;
|
|
25
|
+
// TODO: TO BE PICKED LATER @aditya-digia — health event backend endpoint being removed
|
|
26
|
+
// fetch(`${this._baseUrl}/engage/sdk/recordHealthEvent`, {
|
|
27
|
+
// method: 'POST',
|
|
28
|
+
// headers: {
|
|
29
|
+
// 'Content-Type': 'application/json',
|
|
30
|
+
// 'x-digia-project-id': this._projectId,
|
|
31
|
+
// },
|
|
32
|
+
// body: JSON.stringify({ event_type: eventType, detail }),
|
|
33
|
+
// }).catch(() => { /* swallow */ });
|
|
34
|
+
if (__DEV__) console.log('[DigiaHealth]', eventType, detail);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const digiaHealthReporter = new DigiaHealthReporter();
|
|
38
|
+
//# sourceMappingURL=DigiaHealthReporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HealthEventType","campaign_key_mismatch","component_orphaned","anchor_not_on_screen","host_not_mounted","plugin_not_registered","fetch_failed","action_handler_threw","action_handler_timeout","deep_link_no_handler","invalid_action_url","inapp_browser_unavailable","invalid_action_context","cold_start_queue_overflow","DigiaHealthReporter","_projectId","_baseUrl","init","projectId","baseUrl","report","eventType","detail","__DEV__","console","log","digiaHealthReporter"],"sourceRoot":"../../src","sources":["DigiaHealthReporter.ts"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAG;EAC7BC,qBAAqB,EAAE,uBAAuB;EAC9CC,kBAAkB,EAAE,oBAAoB;EACxCC,oBAAoB,EAAE,sBAAsB;EAC5CC,gBAAgB,EAAE,kBAAkB;EACpCC,qBAAqB,EAAE,uBAAuB;EAC9CC,YAAY,EAAE,cAAc;EAC5BC,oBAAoB,EAAE,sBAAsB;EAC5CC,sBAAsB,EAAE,wBAAwB;EAChDC,oBAAoB,EAAE,sBAAsB;EAC5CC,kBAAkB,EAAE,oBAAoB;EACxCC,yBAAyB,EAAE,2BAA2B;EACtDC,sBAAsB,EAAE,wBAAwB;EAChDC,yBAAyB,EAAE;AAC7B,CAAU;AAIV,OAAO,MAAMC,mBAAmB,CAAC;EACrBC,UAAU,GAAG,EAAE;EACfC,QAAQ,GAAG,EAAE;EAErBC,IAAIA,CAACC,SAAiB,EAAEC,OAAe,EAAQ;IAC3C,IAAI,CAACJ,UAAU,GAAGG,SAAS;IAC3B,IAAI,CAACF,QAAQ,GAAGG,OAAO;EAC3B;EAEAC,MAAMA,CAACC,SAA0B,EAAEC,MAA+B,EAAQ;IACtE,IAAI,CAAC,IAAI,CAACP,UAAU,EAAE;IACtB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAIQ,OAAO,EAAEC,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEJ,SAAS,EAAEC,MAAM,CAAC;EAChE;AACJ;AAEA,OAAO,MAAMI,mBAAmB,GAAG,IAAIZ,mBAAmB,CAAC,CAAC","ignoreList":[]}
|