@elliemae/pui-app-sdk 6.0.0-next.2 → 6.0.0-next.4

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.
@@ -30,6 +30,7 @@ var micro_frontend_exports = {};
30
30
  __export(micro_frontend_exports, {
31
31
  getLogger: () => getLogger,
32
32
  getMicroFrontEndAppConfig: () => getMicroFrontEndAppConfig,
33
+ getPreloadableAppConfig: () => getPreloadableAppConfig,
33
34
  isGuest: () => isGuest,
34
35
  isHost: () => isHost,
35
36
  isStandAloneGuest: () => isStandAloneGuest
@@ -89,3 +90,15 @@ const getMicroFrontEndAppConfig = (appInfo) => {
89
90
  microFEConfig.manifestPath = getVersionedPath(microFEConfig.manifestPath);
90
91
  return microFEConfig;
91
92
  };
93
+ const getPreloadableAppConfig = () => {
94
+ const microFEs = (0, import_config.getAppConfigValue)("microFrontendApps");
95
+ if (!microFEs)
96
+ return [];
97
+ return Object.keys(microFEs).reduce((acc, microFEId) => {
98
+ const { preload = false } = microFEs[microFEId];
99
+ if (preload) {
100
+ acc.push(getMicroFrontEndAppConfig({ id: microFEId }));
101
+ }
102
+ return acc;
103
+ }, []);
104
+ };
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var url_exports = {};
20
20
  __export(url_exports, {
21
21
  getRedirectUrl: () => getRedirectUrl,
22
+ isAbsoluteUrl: () => isAbsoluteUrl,
22
23
  removeDoubleSlash: () => removeDoubleSlash
23
24
  });
24
25
  module.exports = __toCommonJS(url_exports);
@@ -27,4 +28,5 @@ const getRedirectUrl = () => {
27
28
  url.search = "";
28
29
  return url.href;
29
30
  };
31
+ const isAbsoluteUrl = (url) => new URL(document.baseURI).origin !== new URL(url, document.baseURI).origin;
30
32
  const removeDoubleSlash = (url) => url.replace(/([^:]\/)\/+/g, "$1");
@@ -31,8 +31,10 @@ var import_micro_frontend = require("../../utils/micro-frontend/index.js");
31
31
  var import_error_boundary = require("../error-boundary/index.js");
32
32
  var import_stand_alone_app = require("./stand-alone-app.js");
33
33
  var import_hosted_app = require("./hosted-app.js");
34
+ var import_use_preload_resources = require("./use-preload-resources.js");
34
35
  const AppToRender = (props) => {
35
36
  const isParent = (0, import_micro_frontend.isStandAloneGuest)() || (0, import_micro_frontend.isHost)();
37
+ (0, import_use_preload_resources.usePreloadResources)();
36
38
  return isParent ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stand_alone_app.StandAloneApp, { ...props }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_hosted_app.HostedApp, { ...props });
37
39
  };
38
40
  const AppRoot = ({
@@ -0,0 +1,34 @@
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 use_preload_resources_exports = {};
20
+ __export(use_preload_resources_exports, {
21
+ usePreloadResources: () => usePreloadResources
22
+ });
23
+ module.exports = __toCommonJS(use_preload_resources_exports);
24
+ var import_react = require("react");
25
+ var import_micro_frontend = require("../../utils/micro-frontend/index.js");
26
+ var import_app_factory = require("../micro-app/app-factory/index.js");
27
+ const usePreloadResources = () => {
28
+ (0, import_react.useEffect)(() => {
29
+ const preloadableFEs = (0, import_micro_frontend.getPreloadableAppConfig)();
30
+ preloadableFEs.map(
31
+ (preloadableFE) => (0, import_app_factory.preloadMicroFEResources)(preloadableFE)
32
+ );
33
+ });
34
+ };
@@ -20,6 +20,7 @@ var app_factory_exports = {};
20
20
  __export(app_factory_exports, {
21
21
  loadApp: () => loadApp,
22
22
  mountApp: () => mountApp,
23
+ preloadMicroFEResources: () => preloadMicroFEResources,
23
24
  unloadApp: () => unloadApp,
24
25
  unmountApp: () => unmountApp
25
26
  });
@@ -133,6 +134,16 @@ const removeAssetsFromDOM = (id, documentEle = document) => {
133
134
  delete activeApps[id];
134
135
  }
135
136
  };
137
+ const preloadMicroFEResources = async (appConfig) => {
138
+ const manifest = await (0, import_manifest.getAppManifest)(appConfig);
139
+ const assets = (0, import_manifest.getFullFileNameofAssetsFromManifest)(manifest, appConfig.files);
140
+ assets.forEach((fileName) => {
141
+ if (isCss(fileName))
142
+ (0, import_style.preloadStyle)({ hostUrl: appConfig.hostUrl, fileName });
143
+ else
144
+ (0, import_script.preloadScript)({ hostUrl: appConfig.hostUrl, fileName });
145
+ });
146
+ };
136
147
  const loadApp = async (appConfig) => {
137
148
  (0, import_micro_frontend.getLogger)().info(import_log_records.logRecords.APP_LOADING(appConfig.id));
138
149
  let assets = appConfig.files;
@@ -20,6 +20,7 @@ var script_exports = {};
20
20
  __export(script_exports, {
21
21
  APP_SCRIPT_ID_PREFIX: () => APP_SCRIPT_ID_PREFIX,
22
22
  addScriptToDOM: () => addScriptToDOM,
23
+ preloadScript: () => preloadScript,
23
24
  removeDynamicImportedScripts: () => removeDynamicImportedScripts,
24
25
  removePrefetchLinks: () => removePrefetchLinks,
25
26
  removeScriptFromDOM: () => removeScriptFromDOM
@@ -27,8 +28,6 @@ __export(script_exports, {
27
28
  module.exports = __toCommonJS(script_exports);
28
29
  var import_url = require("../../../utils/url.js");
29
30
  const APP_SCRIPT_ID_PREFIX = "emui-script-";
30
- const HEAD_SCRIPTS = /(?:emuiDiagnostics|global|global-prod|emuiUserMonitoring)(?:..*)?.js/;
31
- const isHeadScript = (scriptSrc) => HEAD_SCRIPTS.test(scriptSrc);
32
31
  const addScriptToDOM = ({ name, hostUrl, documentEle }, fileName, index) => {
33
32
  if (!hostUrl)
34
33
  throw new Error("Unable to add scripts to DOM. hostUrl is required.");
@@ -37,15 +36,12 @@ const addScriptToDOM = ({ name, hostUrl, documentEle }, fileName, index) => {
37
36
  if (!ele)
38
37
  reject(new Error("Unable to insert Application scripts."));
39
38
  ele.id = `${APP_SCRIPT_ID_PREFIX}${name}-${index}`;
40
- const url = new URL(fileName, hostUrl);
39
+ const url = (0, import_url.isAbsoluteUrl)(fileName) ? new URL(fileName) : new URL(fileName, hostUrl);
41
40
  ele.src = (0, import_url.removeDoubleSlash)(url.href);
42
41
  ele.onload = resolve.bind(null, ele.id);
43
42
  ele.onerror = reject.bind(null, ele.id);
44
- ele.async = false;
45
- if (isHeadScript(ele.src))
46
- documentEle.head.appendChild(ele);
47
- else
48
- documentEle.body.appendChild(ele);
43
+ ele.defer = true;
44
+ documentEle.head.appendChild(ele);
49
45
  });
50
46
  };
51
47
  const removeScriptFromDOM = (elementId = "", documentEle = document) => new Promise((resolve) => {
@@ -75,3 +71,16 @@ const removePrefetchLinks = (hostUrl, documentEle) => {
75
71
  ele.remove();
76
72
  }
77
73
  };
74
+ const preloadScript = ({
75
+ hostUrl,
76
+ fileName
77
+ }) => {
78
+ if (hostUrl && fileName) {
79
+ const url = new URL(fileName, hostUrl);
80
+ const link = document.createElement("link");
81
+ link.rel = "preload";
82
+ link.as = "script";
83
+ link.href = (0, import_url.removeDoubleSlash)(url.href);
84
+ document.head.appendChild(link);
85
+ }
86
+ };
@@ -20,6 +20,7 @@ var style_exports = {};
20
20
  __export(style_exports, {
21
21
  APP_STYLE_ID_PREFIX: () => APP_STYLE_ID_PREFIX,
22
22
  addStylesToDOM: () => addStylesToDOM,
23
+ preloadStyle: () => preloadStyle,
23
24
  removeDynamicImportedStyles: () => removeDynamicImportedStyles,
24
25
  removeStyleFromDOM: () => removeStyleFromDOM
25
26
  });
@@ -35,7 +36,7 @@ const addStylesToDOM = ({ name, hostUrl, documentEle }, fileName, index) => {
35
36
  reject(new Error("Unable to insert Application styles."));
36
37
  ele.id = `${APP_STYLE_ID_PREFIX}${name}-${index}`;
37
38
  ele.rel = "stylesheet";
38
- const url = new URL(fileName, hostUrl);
39
+ const url = (0, import_url.isAbsoluteUrl)(fileName) ? new URL(fileName) : new URL(fileName, hostUrl);
39
40
  ele.href = (0, import_url.removeDoubleSlash)(url.href);
40
41
  ele.onload = resolve.bind(null, ele.id);
41
42
  documentEle.head.appendChild(ele);
@@ -58,3 +59,16 @@ const removeDynamicImportedStyles = (hostUrl, documentEle) => {
58
59
  ele.remove();
59
60
  }
60
61
  };
62
+ const preloadStyle = ({
63
+ hostUrl,
64
+ fileName
65
+ }) => {
66
+ if (hostUrl && fileName) {
67
+ const url = new URL(fileName, hostUrl);
68
+ const link = document.createElement("link");
69
+ link.rel = "preload";
70
+ link.as = "style";
71
+ link.href = (0, import_url.removeDoubleSlash)(url.href);
72
+ document.head.appendChild(link);
73
+ }
74
+ };
@@ -52,9 +52,22 @@ const getMicroFrontEndAppConfig = (appInfo) => {
52
52
  microFEConfig.manifestPath = getVersionedPath(microFEConfig.manifestPath);
53
53
  return microFEConfig;
54
54
  };
55
+ const getPreloadableAppConfig = () => {
56
+ const microFEs = getAppConfigValue("microFrontendApps");
57
+ if (!microFEs)
58
+ return [];
59
+ return Object.keys(microFEs).reduce((acc, microFEId) => {
60
+ const { preload = false } = microFEs[microFEId];
61
+ if (preload) {
62
+ acc.push(getMicroFrontEndAppConfig({ id: microFEId }));
63
+ }
64
+ return acc;
65
+ }, []);
66
+ };
55
67
  export {
56
68
  getLogger,
57
69
  getMicroFrontEndAppConfig,
70
+ getPreloadableAppConfig,
58
71
  isGuest,
59
72
  isHost,
60
73
  isStandAloneGuest
@@ -3,8 +3,10 @@ const getRedirectUrl = () => {
3
3
  url.search = "";
4
4
  return url.href;
5
5
  };
6
+ const isAbsoluteUrl = (url) => new URL(document.baseURI).origin !== new URL(url, document.baseURI).origin;
6
7
  const removeDoubleSlash = (url) => url.replace(/([^:]\/)\/+/g, "$1");
7
8
  export {
8
9
  getRedirectUrl,
10
+ isAbsoluteUrl,
9
11
  removeDoubleSlash
10
12
  };
@@ -8,8 +8,10 @@ import { isStandAloneGuest, isHost } from "../../utils/micro-frontend/index.js";
8
8
  import { ErrorBoundary } from "../error-boundary/index.js";
9
9
  import { StandAloneApp } from "./stand-alone-app.js";
10
10
  import { HostedApp } from "./hosted-app.js";
11
+ import { usePreloadResources } from "./use-preload-resources.js";
11
12
  const AppToRender = (props) => {
12
13
  const isParent = isStandAloneGuest() || isHost();
14
+ usePreloadResources();
13
15
  return isParent ? /* @__PURE__ */ jsx(StandAloneApp, { ...props }) : /* @__PURE__ */ jsx(HostedApp, { ...props });
14
16
  };
15
17
  const AppRoot = ({
@@ -0,0 +1,14 @@
1
+ import { useEffect } from "react";
2
+ import { getPreloadableAppConfig } from "../../utils/micro-frontend/index.js";
3
+ import { preloadMicroFEResources } from "../micro-app/app-factory/index.js";
4
+ const usePreloadResources = () => {
5
+ useEffect(() => {
6
+ const preloadableFEs = getPreloadableAppConfig();
7
+ preloadableFEs.map(
8
+ (preloadableFE) => preloadMicroFEResources(preloadableFE)
9
+ );
10
+ });
11
+ };
12
+ export {
13
+ usePreloadResources
14
+ };
@@ -9,12 +9,14 @@ import {
9
9
  } from "../../../utils/window.js";
10
10
  import {
11
11
  addStylesToDOM,
12
- removeDynamicImportedStyles
12
+ removeDynamicImportedStyles,
13
+ preloadStyle
13
14
  } from "../resources/style.js";
14
15
  import {
15
16
  addScriptToDOM,
16
17
  removeDynamicImportedScripts,
17
- removePrefetchLinks
18
+ removePrefetchLinks,
19
+ preloadScript
18
20
  } from "../resources/script.js";
19
21
  import {
20
22
  getAppManifest,
@@ -120,6 +122,16 @@ const removeAssetsFromDOM = (id, documentEle = document) => {
120
122
  delete activeApps[id];
121
123
  }
122
124
  };
125
+ const preloadMicroFEResources = async (appConfig) => {
126
+ const manifest = await getAppManifest(appConfig);
127
+ const assets = getFullFileNameofAssetsFromManifest(manifest, appConfig.files);
128
+ assets.forEach((fileName) => {
129
+ if (isCss(fileName))
130
+ preloadStyle({ hostUrl: appConfig.hostUrl, fileName });
131
+ else
132
+ preloadScript({ hostUrl: appConfig.hostUrl, fileName });
133
+ });
134
+ };
123
135
  const loadApp = async (appConfig) => {
124
136
  getLogger().info(logRecords.APP_LOADING(appConfig.id));
125
137
  let assets = appConfig.files;
@@ -155,6 +167,7 @@ const unloadApp = ({
155
167
  export {
156
168
  loadApp,
157
169
  mountApp,
170
+ preloadMicroFEResources,
158
171
  unloadApp,
159
172
  unmountApp
160
173
  };
@@ -1,7 +1,5 @@
1
- import { removeDoubleSlash } from "../../../utils/url.js";
1
+ import { removeDoubleSlash, isAbsoluteUrl } from "../../../utils/url.js";
2
2
  const APP_SCRIPT_ID_PREFIX = "emui-script-";
3
- const HEAD_SCRIPTS = /(?:emuiDiagnostics|global|global-prod|emuiUserMonitoring)(?:..*)?.js/;
4
- const isHeadScript = (scriptSrc) => HEAD_SCRIPTS.test(scriptSrc);
5
3
  const addScriptToDOM = ({ name, hostUrl, documentEle }, fileName, index) => {
6
4
  if (!hostUrl)
7
5
  throw new Error("Unable to add scripts to DOM. hostUrl is required.");
@@ -10,15 +8,12 @@ const addScriptToDOM = ({ name, hostUrl, documentEle }, fileName, index) => {
10
8
  if (!ele)
11
9
  reject(new Error("Unable to insert Application scripts."));
12
10
  ele.id = `${APP_SCRIPT_ID_PREFIX}${name}-${index}`;
13
- const url = new URL(fileName, hostUrl);
11
+ const url = isAbsoluteUrl(fileName) ? new URL(fileName) : new URL(fileName, hostUrl);
14
12
  ele.src = removeDoubleSlash(url.href);
15
13
  ele.onload = resolve.bind(null, ele.id);
16
14
  ele.onerror = reject.bind(null, ele.id);
17
- ele.async = false;
18
- if (isHeadScript(ele.src))
19
- documentEle.head.appendChild(ele);
20
- else
21
- documentEle.body.appendChild(ele);
15
+ ele.defer = true;
16
+ documentEle.head.appendChild(ele);
22
17
  });
23
18
  };
24
19
  const removeScriptFromDOM = (elementId = "", documentEle = document) => new Promise((resolve) => {
@@ -48,9 +43,23 @@ const removePrefetchLinks = (hostUrl, documentEle) => {
48
43
  ele.remove();
49
44
  }
50
45
  };
46
+ const preloadScript = ({
47
+ hostUrl,
48
+ fileName
49
+ }) => {
50
+ if (hostUrl && fileName) {
51
+ const url = new URL(fileName, hostUrl);
52
+ const link = document.createElement("link");
53
+ link.rel = "preload";
54
+ link.as = "script";
55
+ link.href = removeDoubleSlash(url.href);
56
+ document.head.appendChild(link);
57
+ }
58
+ };
51
59
  export {
52
60
  APP_SCRIPT_ID_PREFIX,
53
61
  addScriptToDOM,
62
+ preloadScript,
54
63
  removeDynamicImportedScripts,
55
64
  removePrefetchLinks,
56
65
  removeScriptFromDOM
@@ -1,4 +1,4 @@
1
- import { removeDoubleSlash } from "../../../utils/url.js";
1
+ import { removeDoubleSlash, isAbsoluteUrl } from "../../../utils/url.js";
2
2
  const APP_STYLE_ID_PREFIX = "emui-style-";
3
3
  const addStylesToDOM = ({ name, hostUrl, documentEle }, fileName, index) => {
4
4
  if (!hostUrl)
@@ -9,7 +9,7 @@ const addStylesToDOM = ({ name, hostUrl, documentEle }, fileName, index) => {
9
9
  reject(new Error("Unable to insert Application styles."));
10
10
  ele.id = `${APP_STYLE_ID_PREFIX}${name}-${index}`;
11
11
  ele.rel = "stylesheet";
12
- const url = new URL(fileName, hostUrl);
12
+ const url = isAbsoluteUrl(fileName) ? new URL(fileName) : new URL(fileName, hostUrl);
13
13
  ele.href = removeDoubleSlash(url.href);
14
14
  ele.onload = resolve.bind(null, ele.id);
15
15
  documentEle.head.appendChild(ele);
@@ -32,9 +32,23 @@ const removeDynamicImportedStyles = (hostUrl, documentEle) => {
32
32
  ele.remove();
33
33
  }
34
34
  };
35
+ const preloadStyle = ({
36
+ hostUrl,
37
+ fileName
38
+ }) => {
39
+ if (hostUrl && fileName) {
40
+ const url = new URL(fileName, hostUrl);
41
+ const link = document.createElement("link");
42
+ link.rel = "preload";
43
+ link.as = "style";
44
+ link.href = removeDoubleSlash(url.href);
45
+ document.head.appendChild(link);
46
+ }
47
+ };
35
48
  export {
36
49
  APP_STYLE_ID_PREFIX,
37
50
  addStylesToDOM,
51
+ preloadStyle,
38
52
  removeDynamicImportedStyles,
39
53
  removeStyleFromDOM
40
54
  };
@@ -7,3 +7,4 @@ export declare const getLogger: () => MicroFrontEndLogger;
7
7
  export declare const getMicroFrontEndAppConfig: (appInfo: {
8
8
  id: string;
9
9
  }) => MicroAppConfig;
10
+ export declare const getPreloadableAppConfig: () => MicroAppConfig[];
@@ -12,6 +12,7 @@ export type MicroAppConfig = {
12
12
  files?: Array<string>;
13
13
  development?: EnvConfig;
14
14
  production?: EnvConfig;
15
+ preload?: boolean;
15
16
  documentEle: Document;
16
17
  } & InitOptions;
17
18
  export {};
@@ -1,2 +1,3 @@
1
1
  export declare const getRedirectUrl: () => string;
2
+ export declare const isAbsoluteUrl: (url: string) => boolean;
2
3
  export declare const removeDoubleSlash: (url: string) => string;
@@ -0,0 +1 @@
1
+ export declare const usePreloadResources: () => void;
@@ -1,6 +1,7 @@
1
1
  import { MicroAppConfig } from '../../../utils/micro-frontend/types.js';
2
2
  export declare const mountApp: ({ id, name }: MicroAppConfig) => Promise<void>;
3
3
  export declare const unmountApp: ({ id, name }: MicroAppConfig) => Promise<void | null>;
4
+ export declare const preloadMicroFEResources: (appConfig: MicroAppConfig) => Promise<void>;
4
5
  export declare const loadApp: (appConfig: MicroAppConfig) => Promise<void>;
5
6
  export declare const unloadApp: ({ id, hostUrl, documentEle, }: {
6
7
  id: string;
@@ -4,3 +4,7 @@ export declare const addScriptToDOM: ({ name, hostUrl, documentEle }: MicroAppCo
4
4
  export declare const removeScriptFromDOM: (elementId?: string, documentEle?: Document) => Promise<void>;
5
5
  export declare const removeDynamicImportedScripts: (hostUrl: string, documentEle: HTMLDocument) => void;
6
6
  export declare const removePrefetchLinks: (hostUrl: string, documentEle: HTMLDocument) => void;
7
+ export declare const preloadScript: ({ hostUrl, fileName, }: {
8
+ hostUrl?: string | undefined;
9
+ fileName: string;
10
+ }) => void;
@@ -3,3 +3,7 @@ export declare const APP_STYLE_ID_PREFIX = "emui-style-";
3
3
  export declare const addStylesToDOM: ({ name, hostUrl, documentEle }: MicroAppConfig, fileName: string, index: number) => Promise<string>;
4
4
  export declare const removeStyleFromDOM: (elementId?: string, documentEle?: Document) => Promise<void>;
5
5
  export declare const removeDynamicImportedStyles: (hostUrl: string, documentEle: Document) => void;
6
+ export declare const preloadStyle: ({ hostUrl, fileName, }: {
7
+ hostUrl?: string | undefined;
8
+ fileName: string;
9
+ }) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/pui-app-sdk",
3
- "version": "6.0.0-next.2",
3
+ "version": "6.0.0-next.4",
4
4
  "description": "ICE MT UI Platform Application SDK ",
5
5
  "sideEffects": [
6
6
  "*.css",
@@ -131,11 +131,11 @@
131
131
  "@elliemae/ds-popperjs": "^3.16.4",
132
132
  "@elliemae/ds-toast": "^3.16.4",
133
133
  "@elliemae/em-ssf-guest": "^1.11.3",
134
- "@elliemae/pui-diagnostics": "^3.2.0",
134
+ "@elliemae/pui-diagnostics": "^3.3.1",
135
135
  "@elliemae/pui-micro-frontend-base": "^1.14.0",
136
136
  "@elliemae/pui-scripting-object": "^1.20.1",
137
137
  "@elliemae/pui-theme": "^2.7.0",
138
- "@elliemae/pui-user-monitoring": "^1.20.0"
138
+ "@elliemae/pui-user-monitoring": "^2.0.0"
139
139
  },
140
140
  "devDependencies": {
141
141
  "@elliemae/app-react-dependencies": "~5.0.0-next.3",
@@ -156,14 +156,14 @@
156
156
  "@elliemae/ds-popperjs": "~3.16.4",
157
157
  "@elliemae/ds-toast": "~3.16.4",
158
158
  "@elliemae/em-ssf-guest": "~1.11.3",
159
- "@elliemae/pui-cli": "~9.0.0-next.8",
160
- "@elliemae/pui-diagnostics": "~3.2.0",
159
+ "@elliemae/pui-cli": "~9.0.0-next.10",
160
+ "@elliemae/pui-diagnostics": "~3.3.1",
161
161
  "@elliemae/pui-doc-gen": "~1.6.4",
162
162
  "@elliemae/pui-e2e-test-sdk": "~8.1.1",
163
163
  "@elliemae/pui-micro-frontend-base": "~1.14.0",
164
164
  "@elliemae/pui-scripting-object": "~1.20.1",
165
165
  "@elliemae/pui-theme": "~2.7.0",
166
- "@elliemae/pui-user-monitoring": "~1.20.0",
166
+ "@elliemae/pui-user-monitoring": "~2.0.0",
167
167
  "@types/react-aria-live": "~2.0.2"
168
168
  }
169
169
  }