@elliemae/pui-app-sdk 5.22.0-beta.1 → 5.22.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.
Files changed (158) hide show
  1. package/dist/cjs/analytics/index.js +1 -2
  2. package/dist/cjs/api/users/index.js +6 -4
  3. package/dist/cjs/data/auth/actions.js +10 -2
  4. package/dist/cjs/index.js +0 -3
  5. package/dist/cjs/utils/auth/index.js +8 -5
  6. package/dist/cjs/utils/decorators/functionDecorators.js +6 -1
  7. package/dist/cjs/utils/micro-frontend/guest.js +14 -101
  8. package/dist/cjs/{view/tests/scriptingObjects/constant.js → utils/micro-frontend/host-app.js} +10 -5
  9. package/dist/cjs/utils/micro-frontend/host.js +3 -36
  10. package/dist/cjs/utils/micro-frontend/scripting-objects/analytics.js +12 -2
  11. package/dist/cjs/{view/tests/utils.js → utils/micro-frontend/ssfguest-adapter.js} +29 -34
  12. package/dist/cjs/utils/testing/index.js +1 -15
  13. package/dist/cjs/view/login/index.js +4 -3
  14. package/dist/cjs/view/micro-iframe-app/iframe/index.js +1 -1
  15. package/dist/cjs/view/micro-iframe-app/iframe.html +1 -5
  16. package/dist/cjs/view/micro-iframe-app/use-frame-loaded.js +1 -3
  17. package/dist/cjs/view/require-auth.js +12 -2
  18. package/dist/esm/analytics/index.js +1 -2
  19. package/dist/esm/api/users/index.js +6 -4
  20. package/dist/esm/data/auth/actions.js +10 -2
  21. package/dist/esm/index.js +1 -7
  22. package/dist/esm/utils/auth/index.js +8 -5
  23. package/dist/esm/utils/decorators/functionDecorators.js +6 -1
  24. package/dist/esm/utils/micro-frontend/guest.js +14 -101
  25. package/dist/esm/utils/micro-frontend/host-app.js +9 -0
  26. package/dist/esm/utils/micro-frontend/host.js +3 -36
  27. package/dist/esm/utils/micro-frontend/scripting-objects/analytics.js +2 -2
  28. package/dist/esm/utils/micro-frontend/ssfguest-adapter.js +28 -0
  29. package/dist/esm/utils/testing/index.js +1 -5
  30. package/dist/esm/view/login/index.js +4 -3
  31. package/dist/esm/view/micro-iframe-app/iframe/index.js +1 -1
  32. package/dist/esm/view/micro-iframe-app/iframe.html +1 -5
  33. package/dist/esm/view/micro-iframe-app/use-frame-loaded.js +1 -3
  34. package/dist/esm/view/require-auth.js +12 -2
  35. package/dist/types/lib/api/users/index.d.ts +2 -1
  36. package/dist/types/lib/data/auth/actions.d.ts +2 -1
  37. package/dist/types/lib/index.d.ts +1 -2
  38. package/dist/types/lib/utils/auth/index.d.ts +4 -2
  39. package/dist/types/lib/utils/micro-frontend/guest.d.ts +11 -46
  40. package/dist/types/lib/utils/micro-frontend/host-app.d.ts +11 -0
  41. package/dist/types/lib/utils/micro-frontend/host.d.ts +10 -27
  42. package/dist/types/lib/utils/micro-frontend/scripting-objects/analytics.d.ts +2 -2
  43. package/dist/types/lib/utils/micro-frontend/ssfguest-adapter.d.ts +7 -0
  44. package/dist/types/lib/utils/micro-frontend/types.d.ts +1 -2
  45. package/dist/types/lib/utils/testing/index.d.ts +1 -57
  46. package/dist/types/lib/utils/window.d.ts +6 -13
  47. package/dist/types/lib/view/login/index.d.ts +2 -1
  48. package/dist/types/lib/view/micro-app/index.d.ts +0 -5
  49. package/dist/types/lib/view/micro-iframe-app/index.d.ts +0 -5
  50. package/dist/types/lib/view/require-auth.d.ts +2 -1
  51. package/dist/types/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +43 -43
  53. package/dist/cjs/utils/micro-frontend/app-bridge.js +0 -40
  54. package/dist/cjs/utils/micro-frontend/tests/app.config.json +0 -200
  55. package/dist/cjs/utils/micro-frontend/tests/utils.js +0 -116
  56. package/dist/cjs/view/guest-microapp.js +0 -126
  57. package/dist/cjs/view/tests/__snapshots__/guest-microapp.test.tsx.snap +0 -21
  58. package/dist/cjs/view/tests/__snapshots__/micro-iframe-app.test.tsx.snap +0 -208
  59. package/dist/cjs/view/tests/app.config.json +0 -200
  60. package/dist/cjs/view/tests/constants.js +0 -44
  61. package/dist/cjs/view/tests/flights/23.1/app.checksum1.css +0 -3
  62. package/dist/cjs/view/tests/flights/23.1/app.checksum1.js +0 -52
  63. package/dist/cjs/view/tests/flights/23.1/manifest.json +0 -4
  64. package/dist/cjs/view/tests/flights/latest/app.checksum.css +0 -3
  65. package/dist/cjs/view/tests/flights/latest/app.checksum.js +0 -52
  66. package/dist/cjs/view/tests/flights/latest/manifest.json +0 -4
  67. package/dist/cjs/view/tests/hotels/23.1/app.checksum.css +0 -3
  68. package/dist/cjs/view/tests/hotels/23.1/app.checksum.js +0 -52
  69. package/dist/cjs/view/tests/hotels/23.1/manifest.json +0 -4
  70. package/dist/cjs/view/tests/hotels/latest/app.checksum.css +0 -3
  71. package/dist/cjs/view/tests/hotels/latest/app.checksum.js +0 -52
  72. package/dist/cjs/view/tests/hotels/latest/manifest.json +0 -4
  73. package/dist/cjs/view/tests/loan/latest/index.js +0 -116
  74. package/dist/cjs/view/tests/loan/latest/manifest.json +0 -3
  75. package/dist/cjs/view/tests/scriptingObjects/appraisalServiceModule.js +0 -81
  76. package/dist/cjs/view/tests/scriptingObjects/global.js +0 -40
  77. package/dist/cjs/view/tests/scriptingObjects/loan.js +0 -200
  78. package/dist/cjs/view/tests/server.js +0 -29
  79. package/dist/cjs/view/tests/serverHandlers.js +0 -210
  80. package/dist/cjs/view/tests/task/latest/index.dev.js +0 -67
  81. package/dist/cjs/view/tests/task/latest/index.js +0 -67
  82. package/dist/cjs/view/tests/task/latest/manifest.json +0 -4
  83. package/dist/cjs/view/tests/travelhub/23.1/app.checksum.css +0 -3
  84. package/dist/cjs/view/tests/travelhub/23.1/app.checksum.js +0 -25
  85. package/dist/cjs/view/tests/travelhub/23.1/landing.checksum1.css +0 -3
  86. package/dist/cjs/view/tests/travelhub/23.1/landing.checksum1.js +0 -6
  87. package/dist/cjs/view/tests/travelhub/23.1/manifest.json +0 -6
  88. package/dist/cjs/view/tests/travelhub/latest/app.checksum.css +0 -3
  89. package/dist/cjs/view/tests/travelhub/latest/app.checksum.js +0 -30
  90. package/dist/cjs/view/tests/travelhub/latest/landing.checksum.css +0 -3
  91. package/dist/cjs/view/tests/travelhub/latest/landing.checksum.js +0 -8
  92. package/dist/cjs/view/tests/travelhub/latest/manifest.json +0 -6
  93. package/dist/esm/utils/micro-frontend/app-bridge.js +0 -20
  94. package/dist/esm/utils/micro-frontend/tests/app.config.json +0 -200
  95. package/dist/esm/utils/micro-frontend/tests/utils.js +0 -96
  96. package/dist/esm/view/guest-microapp.js +0 -96
  97. package/dist/esm/view/tests/__snapshots__/guest-microapp.test.tsx.snap +0 -21
  98. package/dist/esm/view/tests/__snapshots__/micro-iframe-app.test.tsx.snap +0 -208
  99. package/dist/esm/view/tests/app.config.json +0 -200
  100. package/dist/esm/view/tests/constants.js +0 -24
  101. package/dist/esm/view/tests/flights/23.1/app.checksum1.css +0 -3
  102. package/dist/esm/view/tests/flights/23.1/app.checksum1.js +0 -51
  103. package/dist/esm/view/tests/flights/23.1/manifest.json +0 -4
  104. package/dist/esm/view/tests/flights/latest/app.checksum.css +0 -3
  105. package/dist/esm/view/tests/flights/latest/app.checksum.js +0 -51
  106. package/dist/esm/view/tests/flights/latest/manifest.json +0 -4
  107. package/dist/esm/view/tests/hotels/23.1/app.checksum.css +0 -3
  108. package/dist/esm/view/tests/hotels/23.1/app.checksum.js +0 -51
  109. package/dist/esm/view/tests/hotels/23.1/manifest.json +0 -4
  110. package/dist/esm/view/tests/hotels/latest/app.checksum.css +0 -3
  111. package/dist/esm/view/tests/hotels/latest/app.checksum.js +0 -51
  112. package/dist/esm/view/tests/hotels/latest/manifest.json +0 -4
  113. package/dist/esm/view/tests/loan/latest/index.js +0 -115
  114. package/dist/esm/view/tests/loan/latest/manifest.json +0 -3
  115. package/dist/esm/view/tests/scriptingObjects/appraisalServiceModule.js +0 -63
  116. package/dist/esm/view/tests/scriptingObjects/constant.js +0 -4
  117. package/dist/esm/view/tests/scriptingObjects/global.js +0 -22
  118. package/dist/esm/view/tests/scriptingObjects/loan.js +0 -180
  119. package/dist/esm/view/tests/server.js +0 -9
  120. package/dist/esm/view/tests/serverHandlers.js +0 -180
  121. package/dist/esm/view/tests/task/latest/index.dev.js +0 -66
  122. package/dist/esm/view/tests/task/latest/index.js +0 -66
  123. package/dist/esm/view/tests/task/latest/manifest.json +0 -4
  124. package/dist/esm/view/tests/travelhub/23.1/app.checksum.css +0 -3
  125. package/dist/esm/view/tests/travelhub/23.1/app.checksum.js +0 -24
  126. package/dist/esm/view/tests/travelhub/23.1/landing.checksum1.css +0 -3
  127. package/dist/esm/view/tests/travelhub/23.1/landing.checksum1.js +0 -5
  128. package/dist/esm/view/tests/travelhub/23.1/manifest.json +0 -6
  129. package/dist/esm/view/tests/travelhub/latest/app.checksum.css +0 -3
  130. package/dist/esm/view/tests/travelhub/latest/app.checksum.js +0 -29
  131. package/dist/esm/view/tests/travelhub/latest/landing.checksum.css +0 -3
  132. package/dist/esm/view/tests/travelhub/latest/landing.checksum.js +0 -7
  133. package/dist/esm/view/tests/travelhub/latest/manifest.json +0 -6
  134. package/dist/esm/view/tests/utils.js +0 -33
  135. package/dist/types/lib/utils/micro-frontend/app-bridge.d.ts +0 -4
  136. package/dist/types/lib/utils/micro-frontend/tests/utils.d.ts +0 -39
  137. package/dist/types/lib/view/guest-microapp.d.ts +0 -13
  138. package/dist/types/lib/view/tests/constants.d.ts +0 -11
  139. package/dist/types/lib/view/tests/flights/23.1/app.checksum1.d.ts +0 -7
  140. package/dist/types/lib/view/tests/flights/latest/app.checksum.d.ts +0 -7
  141. package/dist/types/lib/view/tests/hotels/23.1/app.checksum.d.ts +0 -7
  142. package/dist/types/lib/view/tests/hotels/latest/app.checksum.d.ts +0 -7
  143. package/dist/types/lib/view/tests/loan/latest/index.d.ts +0 -11
  144. package/dist/types/lib/view/tests/micro-iframe-app.test.d.ts +0 -1
  145. package/dist/types/lib/view/tests/scriptingObjects/appraisalServiceModule.d.ts +0 -36
  146. package/dist/types/lib/view/tests/scriptingObjects/constant.d.ts +0 -1
  147. package/dist/types/lib/view/tests/scriptingObjects/global.d.ts +0 -9
  148. package/dist/types/lib/view/tests/scriptingObjects/loan.d.ts +0 -31
  149. package/dist/types/lib/view/tests/server.d.ts +0 -1
  150. package/dist/types/lib/view/tests/serverHandlers.d.ts +0 -5
  151. package/dist/types/lib/view/tests/task/latest/index.d.ts +0 -10
  152. package/dist/types/lib/view/tests/task/latest/index.dev.d.ts +0 -10
  153. package/dist/types/lib/view/tests/travelhub/23.1/app.checksum.d.ts +0 -7
  154. package/dist/types/lib/view/tests/travelhub/23.1/landing.checksum1.d.ts +0 -2
  155. package/dist/types/lib/view/tests/travelhub/latest/app.checksum.d.ts +0 -0
  156. package/dist/types/lib/view/tests/travelhub/latest/landing.checksum.d.ts +0 -0
  157. package/dist/types/lib/view/tests/utils.d.ts +0 -7
  158. /package/dist/types/lib/{view/tests/guest-microapp.test.d.ts → utils/micro-frontend/tests/guest-ssf-host.test.d.ts} +0 -0
@@ -1,96 +0,0 @@
1
- import { MessageType } from "@elliemae/microfe-common";
2
- const applicationScriptingObject = {
3
- object: {
4
- events: [],
5
- functions: [
6
- "closeModal",
7
- "extend",
8
- "getApplicationContext",
9
- "getCapabilities",
10
- "getCompanySettings",
11
- "getDescriptor",
12
- "getPersonaAccess",
13
- "getPoliciesDetails",
14
- "getUserAccessRights",
15
- "hideSpinner",
16
- "keepSessionAlive",
17
- "log",
18
- "navigate",
19
- "open",
20
- "openModal",
21
- "performAction",
22
- "print",
23
- "showError",
24
- "showSpinner",
25
- "supportsAction",
26
- "supportsNavigateTo"
27
- ],
28
- objectId: "application",
29
- objectType: "Object"
30
- },
31
- type: "object"
32
- };
33
- const authScriptingObject = {
34
- object: {
35
- events: [],
36
- functions: ["getAccessToken", "createAuthCode", "getUser"],
37
- objectId: "auth",
38
- objectType: "Object"
39
- },
40
- type: "object"
41
- };
42
- const hostObjects = {
43
- application: applicationScriptingObject,
44
- auth: authScriptingObject
45
- };
46
- const getOrigin = (url) => {
47
- if (!url || url === "about:blank") return "*";
48
- try {
49
- const { origin } = new URL(url);
50
- return origin === "null" || !origin ? url : origin;
51
- } catch (e) {
52
- const { origin } = new URL(url, document.baseURI);
53
- return origin;
54
- }
55
- };
56
- const postMessage = ({
57
- srcWindow,
58
- targetWindow,
59
- message
60
- }) => {
61
- targetWindow.dispatchEvent(
62
- new MessageEvent("message", {
63
- source: srcWindow,
64
- origin: getOrigin(srcWindow.location.href),
65
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
66
- data: {
67
- source: "elli:remoting",
68
- ...message
69
- }
70
- })
71
- );
72
- };
73
- const setupHost = (hostWindow) => {
74
- const onMessage = ({ data }) => {
75
- if (data?.type !== MessageType.ObjectGet) return;
76
- const scriptingObject = hostObjects[data?.body?.objectId ?? ""] ?? null;
77
- if (scriptingObject)
78
- postMessage({
79
- srcWindow: hostWindow,
80
- targetWindow: window,
81
- message: {
82
- body: scriptingObject,
83
- type: "elli:remoting:response",
84
- requestId: data.requestId
85
- }
86
- });
87
- };
88
- hostWindow?.addEventListener?.("message", onMessage);
89
- return () => hostWindow?.removeEventListener?.("message", onMessage);
90
- };
91
- export {
92
- applicationScriptingObject,
93
- authScriptingObject,
94
- postMessage,
95
- setupHost
96
- };
@@ -1,96 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { memo, useLayoutEffect, useRef } from "react";
3
- import styled from "styled-components";
4
- import { useDispatch } from "react-redux";
5
- import { getAppBridge } from "../utils/micro-frontend/app-bridge.js";
6
- import { waitMessage } from "../data/wait-message/actions.js";
7
- import { getLogger } from "../utils/micro-frontend/index.js";
8
- const Div = styled.div`
9
- display: flex;
10
- width: 100%;
11
- height: 100%;
12
- flex-direction: column;
13
- overflow: hidden;
14
- `;
15
- const useAppRenderer = (props) => {
16
- const {
17
- id,
18
- frameOptions,
19
- history,
20
- onLoadComplete,
21
- onUnloadComplete,
22
- containerId
23
- } = props;
24
- const dispatch = useDispatch();
25
- useLayoutEffect(() => {
26
- let isMounted = true;
27
- let appBridge = null;
28
- let unloadInProgress = Promise.resolve();
29
- let instanceId = null;
30
- (async () => {
31
- await unloadInProgress;
32
- dispatch(waitMessage.open());
33
- try {
34
- appBridge = await getAppBridge();
35
- if (!appBridge)
36
- throw new Error(`Failed to load ${id}, AppBridge not initialized`);
37
- if (isMounted) {
38
- instanceId = await appBridge.openApp({
39
- id,
40
- frameOptions: { containerId, ...frameOptions },
41
- history
42
- });
43
- setTimeout(() => {
44
- try {
45
- onLoadComplete?.(instanceId);
46
- } catch (ex) {
47
- }
48
- }, 0);
49
- }
50
- } catch (ex) {
51
- getLogger().error({
52
- message: `Failed to load ${id}`,
53
- exception: ex
54
- });
55
- isMounted = false;
56
- if (appBridge && instanceId)
57
- unloadInProgress = appBridge.closeApp(instanceId);
58
- throw ex;
59
- } finally {
60
- dispatch(waitMessage.close());
61
- }
62
- })();
63
- return () => {
64
- isMounted = false;
65
- if (appBridge) {
66
- unloadInProgress = appBridge.closeApp(instanceId);
67
- unloadInProgress.then(() => {
68
- instanceId = null;
69
- setTimeout(() => {
70
- try {
71
- onUnloadComplete?.();
72
- } catch (ex) {
73
- }
74
- }, 0);
75
- }).catch(() => {
76
- });
77
- }
78
- };
79
- }, [
80
- containerId,
81
- dispatch,
82
- frameOptions,
83
- history,
84
- id,
85
- onLoadComplete,
86
- onUnloadComplete
87
- ]);
88
- };
89
- const GuestMicroApp = memo((props) => {
90
- const containerId = useRef(crypto.randomUUID());
91
- useAppRenderer({ ...props, containerId: containerId.current });
92
- return /* @__PURE__ */ jsx(Div, { id: containerId.current });
93
- });
94
- export {
95
- GuestMicroApp
96
- };
@@ -1,21 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`MicroAppV2 should open loanapp and call init and mount methods 1`] = `
4
- Document {
5
- "location": Location {
6
- "assign": [Function],
7
- "hash": "",
8
- "host": "localhost:3111",
9
- "hostname": "localhost",
10
- "href": "http://localhost:3111/frame.html",
11
- "origin": "http://localhost:3111",
12
- "pathname": "/frame.html",
13
- "port": "3111",
14
- "protocol": "http:",
15
- "reload": [Function],
16
- "replace": [Function],
17
- "search": "",
18
- "toString": [Function],
19
- },
20
- }
21
- `;
@@ -1,208 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`MicroIFrameApp should close previous instance of app before loading new instance 2`] = `
4
- <body
5
- class="full-width full-height"
6
- >
7
-
8
-
9
- <!-- Display a message if JS has been disabled on the browser. -->
10
-
11
-
12
- <noscript>
13
- If you're seeing this message, that means
14
- &lt;strong&gt;JavaScript has been disabled on your browser&lt;/strong&gt;, please
15
- &lt;strong&gt;enable JS&lt;/strong&gt; to make this app work.
16
- </noscript>
17
-
18
-
19
- <div
20
- class="full-width full-height"
21
- data-testid="pui-app-container-loanapp"
22
- id="pui-app-container-loanapp"
23
- >
24
- <main>
25
- <h1>
26
- Loan App
27
- </h1>
28
- <p>
29
- Go to
30
- <a
31
- href="#"
32
- >
33
- Pipeline
34
- </a>
35
- </p>
36
- </main>
37
- </div>
38
-
39
-
40
-
41
-
42
- <script
43
- id="emui-script-Loan-1"
44
- src="http://localhost:3111/loan/latest/index.js"
45
- />
46
- </body>
47
- `;
48
-
49
- exports[`MicroIFrameApp should open loanapp and call init and mount methods 1`] = `
50
- <head>
51
-
52
-
53
- <!-- The first thing in any HTML file should be the charset -->
54
-
55
-
56
- <meta
57
- charset="utf-8"
58
- />
59
-
60
-
61
- <!-- Make the page mobile compatible -->
62
-
63
-
64
- <meta
65
- content="width=device-width, initial-scale=1"
66
- name="viewport"
67
- />
68
-
69
-
70
- <!-- Allow installing the app to the homescreen -->
71
-
72
-
73
- <meta
74
- content="yes"
75
- name="mobile-web-app-capable"
76
- />
77
-
78
-
79
- <link
80
- href="/favicon.ico"
81
- rel="icon"
82
- />
83
-
84
-
85
- <title>
86
- Application
87
- </title>
88
-
89
-
90
- <!-- Google Tag Manager -->
91
-
92
-
93
- <!-- &lt;script nonce="__CSP_NONCE__"&gt;
94
- (function (w, d, s, l, i) {
95
- w[l] = w[l] || [];
96
- w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
97
- var f = d.getElementsByTagName(s)[0],
98
- j = d.createElement(s),
99
- dl = l != 'dataLayer' ? '&l=' + l : '';
100
- j.async = true;
101
- j.src =
102
- 'https://www.googletagmanager.com/gtm.js?id=' +
103
- i +
104
- dl;
105
- f.parentNode.insertBefore(j, f);
106
- })(window, document, 'script', 'dataLayer', window.emui.gtm.id);
107
- &lt;/script&gt; -->
108
-
109
-
110
- <!-- &lt;script nonce="__CSP_NONCE__"&gt;
111
- window.emuiUserMonitoring = window.parent.emuiUserMonitoring || {
112
- setCustomVirtualPageName: function () {},
113
- startVirtualPageMonitoringWithAutoEnd: function () {},
114
- };
115
- &lt;/script&gt; -->
116
-
117
-
118
- <script
119
- src="https://www.google-analytics.com/analytics.js"
120
- />
121
- <script>
122
-
123
- (function (i, s, o, g, r, a, m) {
124
- i['GoogleAnalyticsObject'] = r;
125
- (i[r] =
126
- i[r] ||
127
- function () {
128
- (i[r].q = i[r].q || []).push(arguments);
129
- }),
130
- (i[r].l = 1 * new Date());
131
- (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
132
- a.async = 1;
133
- a.src = g;
134
- m.parentNode.insertBefore(a, m);
135
- })(
136
- window,
137
- document,
138
- 'script',
139
- 'https://www.google-analytics.com/analytics.js',
140
- 'ga',
141
- );
142
-
143
- </script>
144
-
145
-
146
- <style>
147
-
148
- .full-width {
149
- width: 100%;
150
- }
151
- .full-height {
152
- height: 100%;
153
- }
154
-
155
- </style>
156
-
157
-
158
- <base
159
- href="http://localhost:3111/loan/latest"
160
- />
161
- </head>
162
- `;
163
-
164
- exports[`MicroIFrameApp should open loanapp and call init and mount methods 2`] = `
165
- <body
166
- class="full-width full-height"
167
- >
168
-
169
-
170
- <!-- Display a message if JS has been disabled on the browser. -->
171
-
172
-
173
- <noscript>
174
- If you're seeing this message, that means
175
- &lt;strong&gt;JavaScript has been disabled on your browser&lt;/strong&gt;, please
176
- &lt;strong&gt;enable JS&lt;/strong&gt; to make this app work.
177
- </noscript>
178
-
179
-
180
- <div
181
- class="full-width full-height"
182
- data-testid="pui-app-container-loanapp"
183
- id="pui-app-container-loanapp"
184
- >
185
- <main>
186
- <h1>
187
- Loan App
188
- </h1>
189
- <p>
190
- Go to
191
- <a
192
- href="#"
193
- >
194
- Pipeline
195
- </a>
196
- </p>
197
- </main>
198
- </div>
199
-
200
-
201
-
202
-
203
- <script
204
- id="emui-script-Loan-1"
205
- src="http://localhost:3111/loan/latest/index.js"
206
- />
207
- </body>
208
- `;
@@ -1,200 +0,0 @@
1
- {
2
- "appId": "microfe",
3
- "activeEnv": "localhost",
4
- "googleTagManager": true,
5
- "sessionTimeoutWarnInterval": "7200000",
6
- "sessionTimeoutInterval": "9000000",
7
- "microFrontendApps": {
8
- "loanapp": {
9
- "name": "Loan",
10
- "hostUrl": "./loan",
11
- "development": {
12
- "files": ["index.js"]
13
- },
14
- "production": {
15
- "files": ["index.js"]
16
- }
17
- },
18
- "taskapp": {
19
- "name": "Task",
20
- "hostUrl": "./task",
21
- "mode": "development",
22
- "development": {
23
- "files": ["index.dev.js"]
24
- },
25
- "production": {
26
- "files": ["index.js"]
27
- }
28
- },
29
- "travelhub": {
30
- "name": "TravelHub",
31
- "hostUrl": "./travelhub",
32
- "development": {
33
- "files": ["app.js", "landing.js", "app.css", "landing.css"]
34
- },
35
- "production": {
36
- "files": ["app.js", "landing.js", "app.css", "landing.css"]
37
- }
38
- },
39
- "flights": {
40
- "name": "Flights",
41
- "hostUrl": "./flights",
42
- "development": {
43
- "files": ["app.js", "app.css"]
44
- },
45
- "production": {
46
- "files": ["app.js", "app.css"]
47
- }
48
- },
49
- "hotels": {
50
- "name": "Hotels",
51
- "hostUrl": "./hotels",
52
- "development": {
53
- "files": ["app.js", "app.css"]
54
- },
55
- "production": {
56
- "files": ["app.js", "app.css"]
57
- }
58
- }
59
- },
60
- "serviceEndpoints": {
61
- "api": "",
62
- "idp": "https://int.idp.ellielabs.com",
63
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
64
- },
65
- "env": {
66
- "localhost": {
67
- "serviceEndpoints": {
68
- "api": "",
69
- "idp": "https://int.idp.ellielabs.com",
70
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
71
- }
72
- },
73
- "dev": {
74
- "serviceEndpoints": {
75
- "api": "https://dev.api.puiservice.rd.elliemae.io",
76
- "idp": "https://int.idp.ellielabs.com",
77
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
78
- }
79
- },
80
- "dev2": {
81
- "serviceEndpoints": {
82
- "api": "https://int.api.ellielabs.com",
83
- "idp": "https://int.idp.ellielabs.com",
84
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
85
- }
86
- },
87
- "qa": {
88
- "serviceEndpoints": {
89
- "api": "https://dev.api.puiservice.rd.elliemae.io",
90
- "idp": "https://int.idp.ellielabs.com",
91
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
92
- }
93
- },
94
- "qa2": {
95
- "serviceEndpoints": {
96
- "api": "https://int.api.ellielabs.com",
97
- "idp": "https://int.idp.ellielabs.com",
98
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
99
- }
100
- },
101
- "qa3": {
102
- "serviceEndpoints": {
103
- "api": "https://int.api.ellielabs.com",
104
- "idp": "https://int.idp.ellielabs.com",
105
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
106
- }
107
- },
108
- "int": {
109
- "serviceEndpoints": {
110
- "api": "https://int.api.ellielabs.com",
111
- "idp": "https://int.idp.ellielabs.com",
112
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
113
- }
114
- },
115
- "peg-osb1": {
116
- "serviceEndpoints": {
117
- "api": "https://encompass-peg-api.elliemae.com",
118
- "idp": "https://peg.idp.ellielabs.com/authorize",
119
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
120
- }
121
- },
122
- "peg-osb2": {
123
- "serviceEndpoints": {
124
- "api": "https://encompass-peg2-api.elliemae.com",
125
- "idp": "https://peg.idp.ellielabs.com/authorize",
126
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
127
- }
128
- },
129
- "peg": {
130
- "serviceEndpoints": {
131
- "api": "https://peg2-west.api.ellielabs.com",
132
- "idp": "https://peg.idp.ellielabs.com/authorize",
133
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
134
- }
135
- },
136
- "peg-oapi-west": {
137
- "serviceEndpoints": {
138
- "api": "https://peg2-west.api.ellielabs.com",
139
- "idp": "https://peg.idp.ellielabs.com/authorize",
140
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
141
- }
142
- },
143
- "peg-oapi-east": {
144
- "serviceEndpoints": {
145
- "api": "https://peg2-east.api.ellielabs.com",
146
- "idp": "https://peg.idp.ellielabs.com/authorize",
147
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
148
- }
149
- },
150
- "peg2-oapi-east": {
151
- "serviceEndpoints": {
152
- "api": "https://peg2-east.api.ellielabs.com",
153
- "idp": "https://peg.idp.ellielabs.com/authorize",
154
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
155
- }
156
- },
157
- "peg3": {
158
- "serviceEndpoints": {
159
- "api": "https://pel1.api.ellielabs.com",
160
- "idp": "https://peg3.idp.ellielabs.com/authorize",
161
- "logger": "https://int.api.ellielabs.com/diagnostics/v2/logging"
162
- }
163
- },
164
- "stage": {
165
- "serviceEndpoints": {
166
- "api": "https://stg.api.elliemae.com",
167
- "idp": "https://stg.idp.elliemae.com/authorize",
168
- "logger": "https://api.ellielabs.com/diagnostics/v2/logging"
169
- }
170
- },
171
- "beta": {
172
- "serviceEndpoints": {
173
- "api": "https://concept.api.elliemae.com",
174
- "idp": "https://concept.idp.elliemae.com/authorize",
175
- "logger": "https://api.ellielabs.com/diagnostics/v2/logging"
176
- }
177
- },
178
- "demo": {
179
- "serviceEndpoints": {
180
- "api": "https://concept.api.elliemae.com",
181
- "idp": "https://concept.idp.elliemae.com/authorize",
182
- "logger": "https://api.ellielabs.com/diagnostics/v2/logging"
183
- }
184
- },
185
- "epc": {
186
- "serviceEndpoints": {
187
- "api": "https://concept.api.elliemae.com",
188
- "idp": "https://concept.idp.elliemae.com/authorize",
189
- "logger": "https://api.ellielabs.com/diagnostics/v2/logging"
190
- }
191
- },
192
- "prod": {
193
- "serviceEndpoints": {
194
- "api": "https://api.elliemae.com",
195
- "idp": "https://idp.elliemae.com/authorize",
196
- "logger": "https://api.ellielabs.com/diagnostics/v2/logging"
197
- }
198
- }
199
- }
200
- }
@@ -1,24 +0,0 @@
1
- const LATEST_VERSION = "latest";
2
- const RELEASE_VERSION = "23.1.0";
3
- const LOAN_APP_ID = "loanapp";
4
- const TASK_APP_ID = "taskapp";
5
- const FLIGHTS_APP_ID = "flights";
6
- const HOTELS_APP_ID = "hotels";
7
- const APP_CONFIG_JSON_URL = "/latest/app.config.json";
8
- const LOAN_SAVED_EVENT = "loanSaved";
9
- const PRE_COMMIT_EVENT = "preCommit";
10
- const FRAME_CONTAINER_ID_PREFIX = "pui-iframe-container-";
11
- const FRAME_APP_CONTAINER_ID_PREFIX = "pui-app-container-";
12
- export {
13
- APP_CONFIG_JSON_URL,
14
- FLIGHTS_APP_ID,
15
- FRAME_APP_CONTAINER_ID_PREFIX,
16
- FRAME_CONTAINER_ID_PREFIX,
17
- HOTELS_APP_ID,
18
- LATEST_VERSION,
19
- LOAN_APP_ID,
20
- LOAN_SAVED_EVENT,
21
- PRE_COMMIT_EVENT,
22
- RELEASE_VERSION,
23
- TASK_APP_ID
24
- };
@@ -1,3 +0,0 @@
1
- h1 {
2
- color: green;
3
- }
@@ -1,51 +0,0 @@
1
- const appId = "flights";
2
- const appName = "Flights App";
3
- const getWindow = () => {
4
- try {
5
- window.parent.document;
6
- return window.parent;
7
- } catch (err) {
8
- return window;
9
- }
10
- };
11
- let host = null;
12
- let parentHistory = null;
13
- let logger = null;
14
- const browserWindow = getWindow();
15
- browserWindow.__TEST__ = browserWindow.__TEST__ ?? {
16
- logs: []
17
- };
18
- window.emui = window.emui || { uuid: crypto.randomUUID() };
19
- window.emui.app = {
20
- uuid: window.emui.uuid,
21
- init: async (options) => {
22
- browserWindow.__TEST__.logs.push(`${appId} initializing`);
23
- host = options.host;
24
- parentHistory = options.history;
25
- logger = options.logger;
26
- return Promise.resolve();
27
- },
28
- mount: async () => {
29
- browserWindow.__TEST__.logs.push(`${appId} mounting`);
30
- const mainElement = document.createElement("main");
31
- const pageHeaderEle = document.createElement("h1");
32
- pageHeaderEle.textContent = appName;
33
- pageHeaderEle.id = "header";
34
- mainElement.appendChild(pageHeaderEle);
35
- const versionEle = document.createElement("p");
36
- versionEle.textContent = "Version: 23.1";
37
- versionEle.id = "version";
38
- mainElement.appendChild(versionEle);
39
- document.body.appendChild(mainElement);
40
- browserWindow.__TEST__.logs.push(`${appId} mounted`);
41
- return Promise.resolve();
42
- },
43
- unmount: () => {
44
- browserWindow.__TEST__.logs.push(`${appId} unmounting`);
45
- const mainEle = document.getElementsByTagName("main")[0];
46
- if (mainEle) mainEle.remove();
47
- browserWindow.__TEST__.logs.push(`${appId} unmounted`);
48
- return Promise.resolve();
49
- }
50
- };
51
- browserWindow.emui?.registerApp?.({ appId, app: window.emui.app });