@elliemae/pui-app-sdk 5.28.0 → 5.30.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/dist/cjs/communication/http-client/index.js +3 -1
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/utils/app-config/index.js +0 -2
- package/dist/cjs/utils/auth/index.js +25 -4
- package/dist/cjs/utils/micro-frontend/guest.js +7 -2
- package/dist/cjs/utils/micro-frontend/host.js +7 -4
- package/dist/cjs/utils/micro-frontend/scripting-objects/analytics.js +11 -3
- package/dist/cjs/utils/micro-frontend/scripting-objects/logrocket.js +29 -0
- package/dist/cjs/view/fields/masked-input-text/index.js +2 -2
- package/dist/cjs/view/micro-iframe-app/iframe.html +2 -2
- package/dist/cjs/view/tests/__snapshots__/micro-iframe-app.test.tsx.snap +6 -2
- package/dist/cjs/view/wait-message/index.js +17 -1
- package/dist/esm/communication/http-client/index.js +3 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/utils/app-config/index.js +0 -2
- package/dist/esm/utils/auth/index.js +28 -4
- package/dist/esm/utils/micro-frontend/guest.js +7 -2
- package/dist/esm/utils/micro-frontend/host.js +7 -4
- package/dist/esm/utils/micro-frontend/scripting-objects/analytics.js +11 -3
- package/dist/esm/utils/micro-frontend/scripting-objects/logrocket.js +9 -0
- package/dist/esm/view/fields/masked-input-text/index.js +2 -2
- package/dist/esm/view/micro-iframe-app/iframe.html +2 -2
- package/dist/esm/view/tests/__snapshots__/micro-iframe-app.test.tsx.snap +6 -2
- package/dist/esm/view/wait-message/index.js +17 -1
- package/dist/types/lib/api/auth/index.d.ts +2 -0
- package/dist/types/lib/index.d.ts +0 -1
- package/dist/types/lib/utils/micro-frontend/guest.d.ts +2 -0
- package/dist/types/lib/utils/micro-frontend/host.d.ts +2 -0
- package/dist/types/lib/utils/micro-frontend/scripting-objects/analytics.d.ts +2 -1
- package/dist/types/lib/utils/micro-frontend/scripting-objects/logrocket.d.ts +3 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +43 -41
- package/dist/cjs/analytics/appdynamics.js +0 -48
- package/dist/esm/analytics/appdynamics.js +0 -18
- package/dist/types/lib/analytics/appdynamics.d.ts +0 -10
|
@@ -39,14 +39,16 @@ var import_helper = require("../../utils/auth/helper.js");
|
|
|
39
39
|
var import_retry = __toESM(require("./retry.js"));
|
|
40
40
|
var import_request_interceptor = require("./request-interceptor.js");
|
|
41
41
|
var import_response_interceptor = require("./response-interceptor.js");
|
|
42
|
+
var import_logrocket = require("../../utils/micro-frontend/scripting-objects/logrocket.js");
|
|
42
43
|
const REQUEST_TIMEOUT = 2 * 60 * 1e3;
|
|
43
44
|
const getHTTPClient = ({
|
|
44
45
|
baseURL = (0, import_config.getAppConfigValue)("serviceEndpoints.api", ""),
|
|
45
46
|
headers = {}
|
|
46
47
|
} = {}) => {
|
|
48
|
+
const logRocketSessionUrl = (0, import_logrocket.getLogRocket)()?.sessionURL || "";
|
|
47
49
|
const client = import_axios.default.create({
|
|
48
50
|
baseURL,
|
|
49
|
-
headers
|
|
51
|
+
headers: logRocketSessionUrl ? { ...headers, "X-LogRocket-URL": logRocketSessionUrl } : headers
|
|
50
52
|
});
|
|
51
53
|
if (client?.defaults?.timeout) client.defaults.timeout = REQUEST_TIMEOUT;
|
|
52
54
|
(0, import_retry.default)(client);
|
package/dist/cjs/index.js
CHANGED
|
@@ -130,7 +130,6 @@ __export(index_exports, {
|
|
|
130
130
|
sendMessageToHost: () => import_message_to_host_app.sendMessageToHost,
|
|
131
131
|
setAppConfig: () => import_config.setAppConfig,
|
|
132
132
|
setAppConfigValue: () => import_config.setAppConfigValue,
|
|
133
|
-
setAppDynamicsUserData: () => import_appdynamics.setAppDynamicsUserData,
|
|
134
133
|
setHostAppData: () => import_store2.setHostAppData,
|
|
135
134
|
setLoginParams: () => import_loginParams.setLoginParams,
|
|
136
135
|
startSideEffect: () => import_listenerMiddleware.startSideEffect,
|
|
@@ -240,7 +239,6 @@ var import_micro_iframe_app = require("./view/micro-iframe-app/index.js");
|
|
|
240
239
|
var import_utils = require("./view/micro-app/utils.js");
|
|
241
240
|
var import_store3 = require("./data/store.js");
|
|
242
241
|
var import_guest_with_service = require("./utils/guest-with-service.js");
|
|
243
|
-
var import_appdynamics = require("./analytics/appdynamics.js");
|
|
244
242
|
var import_analytics = require("./analytics/index.js");
|
|
245
243
|
var import_web_analytics = require("./utils/micro-frontend/scripting-objects/web-analytics.js");
|
|
246
244
|
var import_analytics2 = require("./utils/micro-frontend/scripting-objects/analytics.js");
|
|
@@ -34,7 +34,6 @@ __export(app_config_exports, {
|
|
|
34
34
|
module.exports = __toCommonJS(app_config_exports);
|
|
35
35
|
var import_lodash = __toESM(require("lodash"));
|
|
36
36
|
var import_config = require("./config.js");
|
|
37
|
-
var import_appdynamics = require("../../analytics/appdynamics.js");
|
|
38
37
|
var import_web_analytics = require("../micro-frontend/scripting-objects/web-analytics.js");
|
|
39
38
|
var import_window = require("../window.js");
|
|
40
39
|
var import_config2 = require("./config.js");
|
|
@@ -46,7 +45,6 @@ const parseAppConfig = (data) => {
|
|
|
46
45
|
sessionStorage.setItem("envName", activeEnv);
|
|
47
46
|
window.emui = window.emui || {};
|
|
48
47
|
window.emui.appId = (0, import_config.getAppConfigValue)("appId") ?? window.emui.appId ?? "";
|
|
49
|
-
(0, import_appdynamics.setAppDynamicsUserData)({ envName: activeEnv });
|
|
50
48
|
(0, import_web_analytics.updateBAEventParameters)({ envName: activeEnv });
|
|
51
49
|
};
|
|
52
50
|
const getUnVersionedPath = (path) => path.replace(/(\d+\.\d+)(?!.*\d+\.\d+)/, "latest");
|
|
@@ -30,8 +30,10 @@ var import_history = require("../history.js");
|
|
|
30
30
|
var import_auth = require("../../api/auth/index.js");
|
|
31
31
|
var import_users = require("../../api/users/index.js");
|
|
32
32
|
var import_user_session_event = require("../../analytics/user-session-event.js");
|
|
33
|
-
var
|
|
33
|
+
var import_web_analytics = require("../micro-frontend/scripting-objects/web-analytics.js");
|
|
34
|
+
var import_logrocket = require("../micro-frontend/scripting-objects/logrocket.js");
|
|
34
35
|
var import_helper = require("./helper.js");
|
|
36
|
+
var import_helpers = require("../helpers.js");
|
|
35
37
|
var import_config = require("../app-config/config.js");
|
|
36
38
|
var import_log_records = require("../log-records.js");
|
|
37
39
|
var import_loginParams = require("./loginParams.js");
|
|
@@ -85,7 +87,15 @@ const endSession = async ({
|
|
|
85
87
|
token
|
|
86
88
|
});
|
|
87
89
|
(0, import_user_session_event.logoutEvent)();
|
|
88
|
-
(0,
|
|
90
|
+
const logRocket = (0, import_logrocket.getLogRocket)();
|
|
91
|
+
if (logRocket) {
|
|
92
|
+
const eventData = {
|
|
93
|
+
...(0, import_web_analytics.getBAEventParameters)(),
|
|
94
|
+
...(0, import_helpers.getProductAppDetails)()
|
|
95
|
+
};
|
|
96
|
+
logRocket.track("logout", eventData);
|
|
97
|
+
}
|
|
98
|
+
(0, import_web_analytics.updateBAEventParameters)({ instanceId: "", userId: "" });
|
|
89
99
|
const idpHost = (0, import_config.getAppConfigValue)(IDP_ENDPOINT_CONFIG_KEY, "");
|
|
90
100
|
const logoutUrl = new URL("/authorize", idpHost);
|
|
91
101
|
const params = {
|
|
@@ -131,7 +141,8 @@ const authorize = async ({
|
|
|
131
141
|
const {
|
|
132
142
|
encompass_instance_id: instanceId,
|
|
133
143
|
user_name: userName,
|
|
134
|
-
bearer_token: bearerToken
|
|
144
|
+
bearer_token: bearerToken,
|
|
145
|
+
user_key: userKey
|
|
135
146
|
} = introspectResponse;
|
|
136
147
|
const cred = {
|
|
137
148
|
bearerToken,
|
|
@@ -143,7 +154,17 @@ const authorize = async ({
|
|
|
143
154
|
sessionStorage.setItem("instanceId", instanceId);
|
|
144
155
|
sessionStorage.setItem("userId", userName);
|
|
145
156
|
(0, import_user_session_event.loginEvent)({ instanceId, userId: userName });
|
|
146
|
-
(0,
|
|
157
|
+
(0, import_web_analytics.updateBAEventParameters)({ instanceId, userId: userName });
|
|
158
|
+
const logRocket = (0, import_logrocket.getLogRocket)();
|
|
159
|
+
if (logRocket) {
|
|
160
|
+
const eventData = {
|
|
161
|
+
name: userName,
|
|
162
|
+
...(0, import_web_analytics.getBAEventParameters)(),
|
|
163
|
+
...(0, import_helpers.getProductAppDetails)()
|
|
164
|
+
};
|
|
165
|
+
logRocket.identify(userKey, eventData);
|
|
166
|
+
logRocket.track("login", eventData);
|
|
167
|
+
}
|
|
147
168
|
const data = await (0, import_users.getUser)({ userName, isConsumerUser });
|
|
148
169
|
sessionStorage.setItem("userSettings", JSON.stringify(data));
|
|
149
170
|
const pathName = new URL(redirectUri).pathname;
|
|
@@ -43,7 +43,7 @@ var import_console_logger = require("../console-logger.js");
|
|
|
43
43
|
var import_logger = require("../logger.js");
|
|
44
44
|
var import_web_storage = require("../web-storage.js");
|
|
45
45
|
var import_web_analytics = require("./scripting-objects/web-analytics.js");
|
|
46
|
-
var
|
|
46
|
+
var import_logrocket = require("./scripting-objects/logrocket.js");
|
|
47
47
|
var import_app_bridge = require("./app-bridge.js");
|
|
48
48
|
var import_helpers = require("../helpers.js");
|
|
49
49
|
const isCrossDomain = () => {
|
|
@@ -66,6 +66,10 @@ class CMicroAppGuest {
|
|
|
66
66
|
#uuid;
|
|
67
67
|
static instance;
|
|
68
68
|
logger;
|
|
69
|
+
/**
|
|
70
|
+
* LogRocket instance
|
|
71
|
+
*/
|
|
72
|
+
#logRocket;
|
|
69
73
|
appId;
|
|
70
74
|
props;
|
|
71
75
|
containerId;
|
|
@@ -98,6 +102,8 @@ class CMicroAppGuest {
|
|
|
98
102
|
};
|
|
99
103
|
this.logger = params?.logger || import_console_logger.consoleLogger;
|
|
100
104
|
(0, import_logger.setLogger)(this.logger);
|
|
105
|
+
this.#logRocket = params?.logRocket;
|
|
106
|
+
(0, import_logrocket.setLogRocket)(this.#logRocket);
|
|
101
107
|
this.onInit = params?.onInit;
|
|
102
108
|
this.onMount = params?.onMount;
|
|
103
109
|
this.onUnmount = params?.onUnmount;
|
|
@@ -271,7 +277,6 @@ class CMicroAppGuest {
|
|
|
271
277
|
const instanceId = this.getSessionStorageItem("instanceId") || "";
|
|
272
278
|
const userId = this.getSessionStorageItem("userId") || "";
|
|
273
279
|
(0, import_web_analytics.updateBAEventParameters)({ appId: this.appId, instanceId, userId });
|
|
274
|
-
(0, import_appdynamics.setAppDynamicsUserData)({ appId: this.appId, instanceId, userId });
|
|
275
280
|
const useParentHistory = (0, import_config.getAppConfigValue)("useParentHistory", true);
|
|
276
281
|
if (useParentHistory && history) {
|
|
277
282
|
this.props.history = history;
|
|
@@ -35,7 +35,7 @@ var import_console_logger = require("../console-logger.js");
|
|
|
35
35
|
var import_logger = require("../logger.js");
|
|
36
36
|
var import_constants = require("../constants.js");
|
|
37
37
|
var import_window = require("../window.js");
|
|
38
|
-
var
|
|
38
|
+
var import_logrocket = require("./scripting-objects/logrocket.js");
|
|
39
39
|
var import_analytics = require("./scripting-objects/analytics.js");
|
|
40
40
|
var import_web_analytics = require("./scripting-objects/web-analytics.js");
|
|
41
41
|
var import_session = require("../session.js");
|
|
@@ -43,6 +43,10 @@ var import_app_bridge = require("./app-bridge.js");
|
|
|
43
43
|
class CMicroAppHost {
|
|
44
44
|
static instance;
|
|
45
45
|
logger;
|
|
46
|
+
/**
|
|
47
|
+
* LogRocket instance
|
|
48
|
+
*/
|
|
49
|
+
#logRocket;
|
|
46
50
|
appId;
|
|
47
51
|
props;
|
|
48
52
|
activeGuests;
|
|
@@ -58,6 +62,8 @@ class CMicroAppHost {
|
|
|
58
62
|
this.onInit = params?.onInit;
|
|
59
63
|
this.logger = params?.logger || import_console_logger.consoleLogger;
|
|
60
64
|
(0, import_logger.setLogger)(this.logger);
|
|
65
|
+
this.#logRocket = params?.logRocket;
|
|
66
|
+
(0, import_logrocket.setLogRocket)(this.#logRocket);
|
|
61
67
|
this.onRenewSessionTimer = params?.onRenewSessionTimer;
|
|
62
68
|
this.props = {
|
|
63
69
|
systemVersion: params?.version ?? "latest",
|
|
@@ -101,9 +107,6 @@ class CMicroAppHost {
|
|
|
101
107
|
}).catch(() => {
|
|
102
108
|
});
|
|
103
109
|
(0, import_web_analytics.updateBAEventParameters)({ appId: this.appId });
|
|
104
|
-
(0, import_appdynamics.setAppDynamicsUserData)({
|
|
105
|
-
appId: this.appId
|
|
106
|
-
});
|
|
107
110
|
}
|
|
108
111
|
static getInstance(params) {
|
|
109
112
|
if (!this.instance) {
|
|
@@ -25,6 +25,7 @@ var import_ssf_host = require("@elliemae/ssf-host");
|
|
|
25
25
|
var import_web_analytics = require("./web-analytics.js");
|
|
26
26
|
var import_helpers = require("../../helpers.js");
|
|
27
27
|
var import_headSampler = require("../../headSampler.js");
|
|
28
|
+
var import_logrocket = require("./logrocket.js");
|
|
28
29
|
class Analytics extends import_ssf_host.ScriptingObject {
|
|
29
30
|
/**
|
|
30
31
|
* logger instance
|
|
@@ -108,16 +109,23 @@ class Analytics extends import_ssf_host.ScriptingObject {
|
|
|
108
109
|
/**
|
|
109
110
|
* send business analytics event
|
|
110
111
|
* @param event business analytics event
|
|
112
|
+
* @param eve
|
|
111
113
|
* @returns promise
|
|
112
114
|
*/
|
|
113
|
-
sendBAEvent = (
|
|
115
|
+
sendBAEvent = (eve) => {
|
|
116
|
+
const { event, ...rest } = eve ?? {};
|
|
117
|
+
if (!event) return Promise.resolve();
|
|
114
118
|
const eventEx = {
|
|
115
119
|
...(0, import_web_analytics.getBAEventParameters)(),
|
|
116
120
|
...(0, import_helpers.getProductAppDetails)(),
|
|
117
|
-
...
|
|
121
|
+
...rest
|
|
118
122
|
};
|
|
119
123
|
window.gtmDataLayer = window.gtmDataLayer || [];
|
|
120
|
-
window.gtmDataLayer.push(eventEx);
|
|
124
|
+
window.gtmDataLayer.push({ ...eventEx, event });
|
|
125
|
+
const logRocket = (0, import_logrocket.getLogRocket)();
|
|
126
|
+
if (logRocket) {
|
|
127
|
+
logRocket.track(event, eventEx);
|
|
128
|
+
}
|
|
121
129
|
return Promise.resolve();
|
|
122
130
|
};
|
|
123
131
|
/**
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var logrocket_exports = {};
|
|
20
|
+
__export(logrocket_exports, {
|
|
21
|
+
getLogRocket: () => getLogRocket,
|
|
22
|
+
setLogRocket: () => setLogRocket
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(logrocket_exports);
|
|
25
|
+
let gLogRocket = null;
|
|
26
|
+
const getLogRocket = () => gLogRocket;
|
|
27
|
+
const setLogRocket = (logrocket) => {
|
|
28
|
+
gLogRocket = logrocket || null;
|
|
29
|
+
};
|
|
@@ -48,11 +48,11 @@ const MaskedInputText = ({
|
|
|
48
48
|
const opts = import_react.default.useMemo(
|
|
49
49
|
() => ({
|
|
50
50
|
...maskOpts,
|
|
51
|
-
onChange: (_, maskedValue) => setValue(name, maskedValue, {
|
|
51
|
+
onChange: ((_, maskedValue) => setValue(name, maskedValue, {
|
|
52
52
|
shouldValidate: true,
|
|
53
53
|
shouldDirty: true,
|
|
54
54
|
shouldTouch: true
|
|
55
|
-
}),
|
|
55
|
+
})),
|
|
56
56
|
valueSetter: setVal
|
|
57
57
|
}),
|
|
58
58
|
[maskOpts, name, setValue]
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
startVirtualPageMonitoringWithAutoEnd: function () {},
|
|
32
32
|
};
|
|
33
33
|
</script> -->
|
|
34
|
-
<script>
|
|
34
|
+
<script nonce="__CSP_NONCE__">
|
|
35
35
|
(function (i, s, o, g, r, a, m) {
|
|
36
36
|
i['GoogleAnalyticsObject'] = r;
|
|
37
37
|
(i[r] =
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
'ga',
|
|
53
53
|
);
|
|
54
54
|
</script>
|
|
55
|
-
<style>
|
|
55
|
+
<style nonce="__CSP_NONCE__">
|
|
56
56
|
.full-width {
|
|
57
57
|
width: 100%;
|
|
58
58
|
}
|
|
@@ -118,7 +118,9 @@ exports[`MicroIFrameApp should open loanapp and call init and mount methods 1`]
|
|
|
118
118
|
<script
|
|
119
119
|
src="https://www.google-analytics.com/analytics.js"
|
|
120
120
|
/>
|
|
121
|
-
<script
|
|
121
|
+
<script
|
|
122
|
+
nonce="__CSP_NONCE__"
|
|
123
|
+
>
|
|
122
124
|
|
|
123
125
|
(function (i, s, o, g, r, a, m) {
|
|
124
126
|
i['GoogleAnalyticsObject'] = r;
|
|
@@ -143,7 +145,9 @@ exports[`MicroIFrameApp should open loanapp and call init and mount methods 1`]
|
|
|
143
145
|
</script>
|
|
144
146
|
|
|
145
147
|
|
|
146
|
-
<style
|
|
148
|
+
<style
|
|
149
|
+
nonce="__CSP_NONCE__"
|
|
150
|
+
>
|
|
147
151
|
|
|
148
152
|
.full-width {
|
|
149
153
|
width: 100%;
|
|
@@ -39,6 +39,9 @@ var import_ds_circular_progress_indicator = require("@elliemae/ds-circular-progr
|
|
|
39
39
|
var import_react2 = require("../../data/react.js");
|
|
40
40
|
var import_use_html_wait_message = require("./use-html-wait-message.js");
|
|
41
41
|
var import_user_wait_event = require("../../analytics/user-wait-event.js");
|
|
42
|
+
var import_logrocket = require("../../utils/micro-frontend/scripting-objects/logrocket.js");
|
|
43
|
+
var import_web_analytics = require("../../utils/micro-frontend/scripting-objects/web-analytics.js");
|
|
44
|
+
var import_helpers = require("../../utils/helpers.js");
|
|
42
45
|
const StyledCircularIndicator = (0, import_styled_components.default)(import_ds_circular_progress_indicator.DSCircularIndeterminateIndicator)`
|
|
43
46
|
position: absolute;
|
|
44
47
|
left: 50%;
|
|
@@ -61,12 +64,19 @@ const WaitMessage = (0, import_react.memo)(
|
|
|
61
64
|
const delay = (0, import_react2.useAppSelector)((state) => state.waitMessage?.delay);
|
|
62
65
|
ref.current = isOpen ?? false;
|
|
63
66
|
const message = (0, import_react2.useAppSelector)((state) => state.waitMessage?.message);
|
|
67
|
+
const logRocket = (0, import_logrocket.getLogRocket)();
|
|
64
68
|
(0, import_react.useEffect)(() => {
|
|
65
69
|
setTimeout(
|
|
66
70
|
() => {
|
|
67
71
|
if (isOpen && ref.current) {
|
|
68
72
|
setShow(true);
|
|
69
73
|
(0, import_user_wait_event.waitStartEvent)();
|
|
74
|
+
if (logRocket) {
|
|
75
|
+
logRocket.track("wait-spinner-start", {
|
|
76
|
+
...(0, import_web_analytics.getBAEventParameters)(),
|
|
77
|
+
...(0, import_helpers.getProductAppDetails)()
|
|
78
|
+
});
|
|
79
|
+
}
|
|
70
80
|
}
|
|
71
81
|
},
|
|
72
82
|
delay ? 1e3 : 0
|
|
@@ -74,8 +84,14 @@ const WaitMessage = (0, import_react.memo)(
|
|
|
74
84
|
if (!isOpen) {
|
|
75
85
|
setShow(false);
|
|
76
86
|
(0, import_user_wait_event.waitEndEvent)();
|
|
87
|
+
if (logRocket) {
|
|
88
|
+
logRocket.track("wait-spinner-end", {
|
|
89
|
+
...(0, import_web_analytics.getBAEventParameters)(),
|
|
90
|
+
...(0, import_helpers.getProductAppDetails)()
|
|
91
|
+
});
|
|
92
|
+
}
|
|
77
93
|
}
|
|
78
|
-
}, [delay, isOpen]);
|
|
94
|
+
}, [delay, isOpen, logRocket]);
|
|
79
95
|
(0, import_use_html_wait_message.useHTMLWaitMessage)(isOpen !== null);
|
|
80
96
|
return show ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
81
97
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_backdrop.DSBackdrop, { zIndex: theme.zIndex.loader }),
|
|
@@ -4,14 +4,16 @@ import { getAuthorizationHeader } from "../../utils/auth/helper.js";
|
|
|
4
4
|
import setupRetry from "./retry.js";
|
|
5
5
|
import { requestInterceptor } from "./request-interceptor.js";
|
|
6
6
|
import { handleSuccess, handleFailure } from "./response-interceptor.js";
|
|
7
|
+
import { getLogRocket } from "../../utils/micro-frontend/scripting-objects/logrocket.js";
|
|
7
8
|
const REQUEST_TIMEOUT = 2 * 60 * 1e3;
|
|
8
9
|
const getHTTPClient = ({
|
|
9
10
|
baseURL = getAppConfigValue("serviceEndpoints.api", ""),
|
|
10
11
|
headers = {}
|
|
11
12
|
} = {}) => {
|
|
13
|
+
const logRocketSessionUrl = getLogRocket()?.sessionURL || "";
|
|
12
14
|
const client = axios.create({
|
|
13
15
|
baseURL,
|
|
14
|
-
headers
|
|
16
|
+
headers: logRocketSessionUrl ? { ...headers, "X-LogRocket-URL": logRocketSessionUrl } : headers
|
|
15
17
|
});
|
|
16
18
|
if (client?.defaults?.timeout) client.defaults.timeout = REQUEST_TIMEOUT;
|
|
17
19
|
setupRetry(client);
|
package/dist/esm/index.js
CHANGED
|
@@ -140,7 +140,6 @@ import { MicroIFrameApp } from "./view/micro-iframe-app/index.js";
|
|
|
140
140
|
import { getNavigationLinks } from "./view/micro-app/utils.js";
|
|
141
141
|
import { getStore } from "./data/store.js";
|
|
142
142
|
import { RegisterService } from "./utils/guest-with-service.js";
|
|
143
|
-
import { setAppDynamicsUserData } from "./analytics/appdynamics.js";
|
|
144
143
|
import { sendBAEvent } from "./analytics/index.js";
|
|
145
144
|
import { updateBAEventParameters } from "./utils/micro-frontend/scripting-objects/web-analytics.js";
|
|
146
145
|
import { Analytics } from "./utils/micro-frontend/scripting-objects/analytics.js";
|
|
@@ -247,7 +246,6 @@ export {
|
|
|
247
246
|
sendMessageToHost,
|
|
248
247
|
setAppConfig,
|
|
249
248
|
setAppConfigValue,
|
|
250
|
-
setAppDynamicsUserData,
|
|
251
249
|
setHostAppData,
|
|
252
250
|
setLoginParams,
|
|
253
251
|
startSideEffect,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _ from "lodash";
|
|
2
2
|
import { getAppConfigValue, setAppConfig } from "./config.js";
|
|
3
|
-
import { setAppDynamicsUserData } from "../../analytics/appdynamics.js";
|
|
4
3
|
import { updateBAEventParameters } from "../micro-frontend/scripting-objects/web-analytics.js";
|
|
5
4
|
import { getAssetPath } from "../window.js";
|
|
6
5
|
import { getAppConfigValue as getAppConfigValue2 } from "./config.js";
|
|
@@ -12,7 +11,6 @@ const parseAppConfig = (data) => {
|
|
|
12
11
|
sessionStorage.setItem("envName", activeEnv);
|
|
13
12
|
window.emui = window.emui || {};
|
|
14
13
|
window.emui.appId = getAppConfigValue("appId") ?? window.emui.appId ?? "";
|
|
15
|
-
setAppDynamicsUserData({ envName: activeEnv });
|
|
16
14
|
updateBAEventParameters({ envName: activeEnv });
|
|
17
15
|
};
|
|
18
16
|
const getUnVersionedPath = (path) => path.replace(/(\d+\.\d+)(?!.*\d+\.\d+)/, "latest");
|
|
@@ -6,8 +6,13 @@ import {
|
|
|
6
6
|
} from "../../api/auth/index.js";
|
|
7
7
|
import { getUser } from "../../api/users/index.js";
|
|
8
8
|
import { loginEvent, logoutEvent } from "../../analytics/user-session-event.js";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
getBAEventParameters,
|
|
11
|
+
updateBAEventParameters
|
|
12
|
+
} from "../micro-frontend/scripting-objects/web-analytics.js";
|
|
13
|
+
import { getLogRocket } from "../micro-frontend/scripting-objects/logrocket.js";
|
|
10
14
|
import { getAuthorizationHeader, setAuthorizationHeader } from "./helper.js";
|
|
15
|
+
import { getProductAppDetails } from "../helpers.js";
|
|
11
16
|
import { getAppConfigValue } from "../app-config/config.js";
|
|
12
17
|
import { logRecords } from "../log-records.js";
|
|
13
18
|
import { setLoginParams } from "./loginParams.js";
|
|
@@ -61,7 +66,15 @@ const endSession = async ({
|
|
|
61
66
|
token
|
|
62
67
|
});
|
|
63
68
|
logoutEvent();
|
|
64
|
-
|
|
69
|
+
const logRocket = getLogRocket();
|
|
70
|
+
if (logRocket) {
|
|
71
|
+
const eventData = {
|
|
72
|
+
...getBAEventParameters(),
|
|
73
|
+
...getProductAppDetails()
|
|
74
|
+
};
|
|
75
|
+
logRocket.track("logout", eventData);
|
|
76
|
+
}
|
|
77
|
+
updateBAEventParameters({ instanceId: "", userId: "" });
|
|
65
78
|
const idpHost = getAppConfigValue(IDP_ENDPOINT_CONFIG_KEY, "");
|
|
66
79
|
const logoutUrl = new URL("/authorize", idpHost);
|
|
67
80
|
const params = {
|
|
@@ -107,7 +120,8 @@ const authorize = async ({
|
|
|
107
120
|
const {
|
|
108
121
|
encompass_instance_id: instanceId,
|
|
109
122
|
user_name: userName,
|
|
110
|
-
bearer_token: bearerToken
|
|
123
|
+
bearer_token: bearerToken,
|
|
124
|
+
user_key: userKey
|
|
111
125
|
} = introspectResponse;
|
|
112
126
|
const cred = {
|
|
113
127
|
bearerToken,
|
|
@@ -119,7 +133,17 @@ const authorize = async ({
|
|
|
119
133
|
sessionStorage.setItem("instanceId", instanceId);
|
|
120
134
|
sessionStorage.setItem("userId", userName);
|
|
121
135
|
loginEvent({ instanceId, userId: userName });
|
|
122
|
-
|
|
136
|
+
updateBAEventParameters({ instanceId, userId: userName });
|
|
137
|
+
const logRocket = getLogRocket();
|
|
138
|
+
if (logRocket) {
|
|
139
|
+
const eventData = {
|
|
140
|
+
name: userName,
|
|
141
|
+
...getBAEventParameters(),
|
|
142
|
+
...getProductAppDetails()
|
|
143
|
+
};
|
|
144
|
+
logRocket.identify(userKey, eventData);
|
|
145
|
+
logRocket.track("login", eventData);
|
|
146
|
+
}
|
|
123
147
|
const data = await getUser({ userName, isConsumerUser });
|
|
124
148
|
sessionStorage.setItem("userSettings", JSON.stringify(data));
|
|
125
149
|
const pathName = new URL(redirectUri).pathname;
|
|
@@ -10,7 +10,7 @@ import { consoleLogger } from "../console-logger.js";
|
|
|
10
10
|
import { setLogger } from "../logger.js";
|
|
11
11
|
import { removeStorageEvents } from "../web-storage.js";
|
|
12
12
|
import { updateBAEventParameters } from "./scripting-objects/web-analytics.js";
|
|
13
|
-
import {
|
|
13
|
+
import { setLogRocket } from "./scripting-objects/logrocket.js";
|
|
14
14
|
import { getAppBridge } from "./app-bridge.js";
|
|
15
15
|
import { abortPromise } from "../helpers.js";
|
|
16
16
|
const isCrossDomain = () => {
|
|
@@ -33,6 +33,10 @@ class CMicroAppGuest {
|
|
|
33
33
|
#uuid;
|
|
34
34
|
static instance;
|
|
35
35
|
logger;
|
|
36
|
+
/**
|
|
37
|
+
* LogRocket instance
|
|
38
|
+
*/
|
|
39
|
+
#logRocket;
|
|
36
40
|
appId;
|
|
37
41
|
props;
|
|
38
42
|
containerId;
|
|
@@ -65,6 +69,8 @@ class CMicroAppGuest {
|
|
|
65
69
|
};
|
|
66
70
|
this.logger = params?.logger || consoleLogger;
|
|
67
71
|
setLogger(this.logger);
|
|
72
|
+
this.#logRocket = params?.logRocket;
|
|
73
|
+
setLogRocket(this.#logRocket);
|
|
68
74
|
this.onInit = params?.onInit;
|
|
69
75
|
this.onMount = params?.onMount;
|
|
70
76
|
this.onUnmount = params?.onUnmount;
|
|
@@ -238,7 +244,6 @@ class CMicroAppGuest {
|
|
|
238
244
|
const instanceId = this.getSessionStorageItem("instanceId") || "";
|
|
239
245
|
const userId = this.getSessionStorageItem("userId") || "";
|
|
240
246
|
updateBAEventParameters({ appId: this.appId, instanceId, userId });
|
|
241
|
-
setAppDynamicsUserData({ appId: this.appId, instanceId, userId });
|
|
242
247
|
const useParentHistory = getAppConfigValue("useParentHistory", true);
|
|
243
248
|
if (useParentHistory && history) {
|
|
244
249
|
this.props.history = history;
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
getCurrentBreakpoint,
|
|
21
21
|
getViewportSize as getWindowViewportSize
|
|
22
22
|
} from "../window.js";
|
|
23
|
-
import {
|
|
23
|
+
import { setLogRocket } from "./scripting-objects/logrocket.js";
|
|
24
24
|
import { Analytics } from "./scripting-objects/analytics.js";
|
|
25
25
|
import { updateBAEventParameters } from "./scripting-objects/web-analytics.js";
|
|
26
26
|
import { renewSession } from "../session.js";
|
|
@@ -28,6 +28,10 @@ import { getAppBridge } from "./app-bridge.js";
|
|
|
28
28
|
class CMicroAppHost {
|
|
29
29
|
static instance;
|
|
30
30
|
logger;
|
|
31
|
+
/**
|
|
32
|
+
* LogRocket instance
|
|
33
|
+
*/
|
|
34
|
+
#logRocket;
|
|
31
35
|
appId;
|
|
32
36
|
props;
|
|
33
37
|
activeGuests;
|
|
@@ -43,6 +47,8 @@ class CMicroAppHost {
|
|
|
43
47
|
this.onInit = params?.onInit;
|
|
44
48
|
this.logger = params?.logger || consoleLogger;
|
|
45
49
|
setLogger(this.logger);
|
|
50
|
+
this.#logRocket = params?.logRocket;
|
|
51
|
+
setLogRocket(this.#logRocket);
|
|
46
52
|
this.onRenewSessionTimer = params?.onRenewSessionTimer;
|
|
47
53
|
this.props = {
|
|
48
54
|
systemVersion: params?.version ?? "latest",
|
|
@@ -86,9 +92,6 @@ class CMicroAppHost {
|
|
|
86
92
|
}).catch(() => {
|
|
87
93
|
});
|
|
88
94
|
updateBAEventParameters({ appId: this.appId });
|
|
89
|
-
setAppDynamicsUserData({
|
|
90
|
-
appId: this.appId
|
|
91
|
-
});
|
|
92
95
|
}
|
|
93
96
|
static getInstance(params) {
|
|
94
97
|
if (!this.instance) {
|
|
@@ -2,6 +2,7 @@ import { ScriptingObject } from "@elliemae/ssf-host";
|
|
|
2
2
|
import { getBAEventParameters } from "./web-analytics.js";
|
|
3
3
|
import { getProductAppDetails } from "../../helpers.js";
|
|
4
4
|
import { HeadSampler } from "../../headSampler.js";
|
|
5
|
+
import { getLogRocket } from "./logrocket.js";
|
|
5
6
|
class Analytics extends ScriptingObject {
|
|
6
7
|
/**
|
|
7
8
|
* logger instance
|
|
@@ -85,16 +86,23 @@ class Analytics extends ScriptingObject {
|
|
|
85
86
|
/**
|
|
86
87
|
* send business analytics event
|
|
87
88
|
* @param event business analytics event
|
|
89
|
+
* @param eve
|
|
88
90
|
* @returns promise
|
|
89
91
|
*/
|
|
90
|
-
sendBAEvent = (
|
|
92
|
+
sendBAEvent = (eve) => {
|
|
93
|
+
const { event, ...rest } = eve ?? {};
|
|
94
|
+
if (!event) return Promise.resolve();
|
|
91
95
|
const eventEx = {
|
|
92
96
|
...getBAEventParameters(),
|
|
93
97
|
...getProductAppDetails(),
|
|
94
|
-
...
|
|
98
|
+
...rest
|
|
95
99
|
};
|
|
96
100
|
window.gtmDataLayer = window.gtmDataLayer || [];
|
|
97
|
-
window.gtmDataLayer.push(eventEx);
|
|
101
|
+
window.gtmDataLayer.push({ ...eventEx, event });
|
|
102
|
+
const logRocket = getLogRocket();
|
|
103
|
+
if (logRocket) {
|
|
104
|
+
logRocket.track(event, eventEx);
|
|
105
|
+
}
|
|
98
106
|
return Promise.resolve();
|
|
99
107
|
};
|
|
100
108
|
/**
|
|
@@ -18,11 +18,11 @@ const MaskedInputText = ({
|
|
|
18
18
|
const opts = React.useMemo(
|
|
19
19
|
() => ({
|
|
20
20
|
...maskOpts,
|
|
21
|
-
onChange: (_, maskedValue) => setValue(name, maskedValue, {
|
|
21
|
+
onChange: ((_, maskedValue) => setValue(name, maskedValue, {
|
|
22
22
|
shouldValidate: true,
|
|
23
23
|
shouldDirty: true,
|
|
24
24
|
shouldTouch: true
|
|
25
|
-
}),
|
|
25
|
+
})),
|
|
26
26
|
valueSetter: setVal
|
|
27
27
|
}),
|
|
28
28
|
[maskOpts, name, setValue]
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
startVirtualPageMonitoringWithAutoEnd: function () {},
|
|
32
32
|
};
|
|
33
33
|
</script> -->
|
|
34
|
-
<script>
|
|
34
|
+
<script nonce="__CSP_NONCE__">
|
|
35
35
|
(function (i, s, o, g, r, a, m) {
|
|
36
36
|
i['GoogleAnalyticsObject'] = r;
|
|
37
37
|
(i[r] =
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
'ga',
|
|
53
53
|
);
|
|
54
54
|
</script>
|
|
55
|
-
<style>
|
|
55
|
+
<style nonce="__CSP_NONCE__">
|
|
56
56
|
.full-width {
|
|
57
57
|
width: 100%;
|
|
58
58
|
}
|
|
@@ -118,7 +118,9 @@ exports[`MicroIFrameApp should open loanapp and call init and mount methods 1`]
|
|
|
118
118
|
<script
|
|
119
119
|
src="https://www.google-analytics.com/analytics.js"
|
|
120
120
|
/>
|
|
121
|
-
<script
|
|
121
|
+
<script
|
|
122
|
+
nonce="__CSP_NONCE__"
|
|
123
|
+
>
|
|
122
124
|
|
|
123
125
|
(function (i, s, o, g, r, a, m) {
|
|
124
126
|
i['GoogleAnalyticsObject'] = r;
|
|
@@ -143,7 +145,9 @@ exports[`MicroIFrameApp should open loanapp and call init and mount methods 1`]
|
|
|
143
145
|
</script>
|
|
144
146
|
|
|
145
147
|
|
|
146
|
-
<style
|
|
148
|
+
<style
|
|
149
|
+
nonce="__CSP_NONCE__"
|
|
150
|
+
>
|
|
147
151
|
|
|
148
152
|
.full-width {
|
|
149
153
|
width: 100%;
|