@servicetitan/web-components 30.3.1 → 31.1.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 (131) hide show
  1. package/dist/common.js +17 -13
  2. package/dist/common.js.map +1 -1
  3. package/dist/contexts/index.js +1 -0
  4. package/dist/contexts/index.js.map +1 -1
  5. package/dist/contexts/mfe-data-context.js +2 -2
  6. package/dist/contexts/mfe-data-context.js.map +1 -1
  7. package/dist/contexts/mfe-metadata-context.js +1 -0
  8. package/dist/contexts/mfe-metadata-context.js.map +1 -1
  9. package/dist/contexts/tests/mfe-data-context.test.js +21 -11
  10. package/dist/contexts/tests/mfe-data-context.test.js.map +1 -1
  11. package/dist/contexts/tests/mfe-metadata-context.test.js +28 -13
  12. package/dist/contexts/tests/mfe-metadata-context.test.js.map +1 -1
  13. package/dist/delayed.js +8 -5
  14. package/dist/delayed.js.map +1 -1
  15. package/dist/event-bus.js +79 -97
  16. package/dist/event-bus.js.map +1 -1
  17. package/dist/get-value-for-environment.js +9 -4
  18. package/dist/get-value-for-environment.js.map +1 -1
  19. package/dist/globals.js +7 -7
  20. package/dist/globals.js.map +1 -1
  21. package/dist/headless-loader.d.ts +5 -0
  22. package/dist/headless-loader.d.ts.map +1 -0
  23. package/dist/headless-loader.js +17 -0
  24. package/dist/headless-loader.js.map +1 -0
  25. package/dist/history-manager.js +59 -69
  26. package/dist/history-manager.js.map +1 -1
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +3 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/loader.d.ts +10 -4
  32. package/dist/loader.d.ts.map +1 -1
  33. package/dist/loader.js +114 -79
  34. package/dist/loader.js.map +1 -1
  35. package/dist/register-headless.d.ts +9 -0
  36. package/dist/register-headless.d.ts.map +1 -0
  37. package/dist/register-headless.js +67 -0
  38. package/dist/register-headless.js.map +1 -0
  39. package/dist/register.js +182 -218
  40. package/dist/register.js.map +1 -1
  41. package/dist/render.js +11 -12
  42. package/dist/render.js.map +1 -1
  43. package/dist/types.d.ts +11 -0
  44. package/dist/types.d.ts.map +1 -1
  45. package/dist/types.js +2 -1
  46. package/dist/types.js.map +1 -1
  47. package/dist/utils/get-bundle-info.d.ts +4 -12
  48. package/dist/utils/get-bundle-info.d.ts.map +1 -1
  49. package/dist/utils/get-bundle-info.js +41 -52
  50. package/dist/utils/get-bundle-info.js.map +1 -1
  51. package/dist/utils/get-cache-setting.d.ts +2 -0
  52. package/dist/utils/get-cache-setting.d.ts.map +1 -0
  53. package/dist/utils/get-cache-setting.js +6 -0
  54. package/dist/utils/get-cache-setting.js.map +1 -0
  55. package/dist/utils/get-cached-metadata.d.ts +18 -0
  56. package/dist/utils/get-cached-metadata.d.ts.map +1 -0
  57. package/dist/utils/get-cached-metadata.js +47 -0
  58. package/dist/utils/get-cached-metadata.js.map +1 -0
  59. package/dist/utils/get-element-name.js +1 -0
  60. package/dist/utils/get-element-name.js.map +1 -1
  61. package/dist/utils/get-entry-points.js +11 -4
  62. package/dist/utils/get-entry-points.js.map +1 -1
  63. package/dist/utils/get-ld-service-token.js +3 -3
  64. package/dist/utils/get-ld-service-token.js.map +1 -1
  65. package/dist/utils/get-mfe-has-compatible-launchdarkly-version.d.ts +1 -1
  66. package/dist/utils/get-mfe-has-compatible-launchdarkly-version.d.ts.map +1 -1
  67. package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js +4 -4
  68. package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js.map +1 -1
  69. package/dist/utils/get-mfe-has-unique-chunk-namespace.d.ts +1 -1
  70. package/dist/utils/get-mfe-has-unique-chunk-namespace.d.ts.map +1 -1
  71. package/dist/utils/get-mfe-has-unique-chunk-namespace.js +1 -0
  72. package/dist/utils/get-mfe-has-unique-chunk-namespace.js.map +1 -1
  73. package/dist/utils/get-mfe-supports-rerendering.d.ts +1 -1
  74. package/dist/utils/get-mfe-supports-rerendering.d.ts.map +1 -1
  75. package/dist/utils/get-mfe-supports-rerendering.js +4 -4
  76. package/dist/utils/get-mfe-supports-rerendering.js.map +1 -1
  77. package/dist/utils/get-version-mismatches.d.ts +1 -1
  78. package/dist/utils/get-version-mismatches.d.ts.map +1 -1
  79. package/dist/utils/get-version-mismatches.js +19 -12
  80. package/dist/utils/get-version-mismatches.js.map +1 -1
  81. package/dist/utils/index.js +1 -0
  82. package/dist/utils/index.js.map +1 -1
  83. package/dist/utils/is-compatible.js +1 -0
  84. package/dist/utils/is-compatible.js.map +1 -1
  85. package/dist/utils/is-versioned-url.js +2 -1
  86. package/dist/utils/is-versioned-url.js.map +1 -1
  87. package/dist/utils/load-scripts.js +7 -6
  88. package/dist/utils/load-scripts.js.map +1 -1
  89. package/dist/utils/ttl-cache.js +26 -27
  90. package/dist/utils/ttl-cache.js.map +1 -1
  91. package/dist/utils/validate-bundle-info.js +13 -10
  92. package/dist/utils/validate-bundle-info.js.map +1 -1
  93. package/dist/utils/web-component.d.ts +1 -1
  94. package/dist/utils/web-component.d.ts.map +1 -1
  95. package/dist/utils/web-component.js +51 -24
  96. package/dist/utils/web-component.js.map +1 -1
  97. package/package.json +12 -12
  98. package/src/__mocks__/test-component.tsx +2 -0
  99. package/src/__tests__/headless-loader.test.tsx +123 -0
  100. package/src/__tests__/loader.test.tsx +36 -14
  101. package/src/__tests__/register-headless.test.tsx +98 -0
  102. package/src/headless-loader.tsx +21 -0
  103. package/src/index.ts +2 -0
  104. package/src/loader.tsx +58 -46
  105. package/src/register-headless.ts +81 -0
  106. package/src/types.ts +9 -0
  107. package/src/utils/__tests__/get-version-mismatches.test.ts +1 -1
  108. package/src/utils/get-bundle-info.ts +37 -60
  109. package/src/utils/get-cache-setting.ts +5 -0
  110. package/src/utils/get-cached-metadata.ts +72 -0
  111. package/src/utils/get-mfe-has-compatible-launchdarkly-version.ts +1 -1
  112. package/src/utils/get-mfe-has-unique-chunk-namespace.ts +1 -1
  113. package/src/utils/get-mfe-supports-rerendering.ts +1 -1
  114. package/src/utils/get-version-mismatches.ts +1 -1
  115. package/src/utils/web-component.tsx +8 -6
  116. package/dist/__mocks__/expect-styles-in-dom.d.ts +0 -3
  117. package/dist/__mocks__/expect-styles-in-dom.d.ts.map +0 -1
  118. package/dist/__mocks__/expect-styles-in-dom.js +0 -9
  119. package/dist/__mocks__/expect-styles-in-dom.js.map +0 -1
  120. package/dist/__mocks__/index.d.ts +0 -4
  121. package/dist/__mocks__/index.d.ts.map +0 -1
  122. package/dist/__mocks__/index.js +0 -4
  123. package/dist/__mocks__/index.js.map +0 -1
  124. package/dist/__mocks__/register-component.d.ts +0 -4
  125. package/dist/__mocks__/register-component.d.ts.map +0 -1
  126. package/dist/__mocks__/register-component.js +0 -14
  127. package/dist/__mocks__/register-component.js.map +0 -1
  128. package/dist/__mocks__/test-component.d.ts +0 -3
  129. package/dist/__mocks__/test-component.d.ts.map +0 -1
  130. package/dist/__mocks__/test-component.js +0 -15
  131. package/dist/__mocks__/test-component.js.map +0 -1
package/dist/render.js CHANGED
@@ -1,14 +1,12 @@
1
- import ReactDOM from 'react-dom';
1
+ /* eslint-disable react/no-deprecated */ import ReactDOM from 'react-dom';
2
2
  let createRoot;
3
3
  try {
4
4
  /**
5
5
  * Note, the webpack.IgnorePlugin must be configured to ignore this dependency.
6
6
  * @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}
7
- */
8
- createRoot = require('react-dom/client').createRoot;
9
- }
10
- catch (_a) {
11
- // ignore
7
+ */ createRoot = require('react-dom/client').createRoot;
8
+ } catch (e) {
9
+ // ignore
12
10
  }
13
11
  export function render(element, container, options) {
14
12
  if (typeof createRoot !== 'function' || (options === null || options === void 0 ? void 0 : options.legacyRoot)) {
@@ -17,23 +15,24 @@ export function render(element, container, options) {
17
15
  const root = createRoot(container);
18
16
  root.render(element);
19
17
  return {
20
- rerender(element) {
18
+ rerender (element) {
21
19
  root.render(element);
22
20
  },
23
- unmount() {
21
+ unmount () {
24
22
  root.unmount();
25
- },
23
+ }
26
24
  };
27
25
  }
28
26
  function renderLegacyRoot(element, container) {
29
27
  ReactDOM.render(element, container);
30
28
  return {
31
- rerender(element) {
29
+ rerender (element) {
32
30
  ReactDOM.render(element, container);
33
31
  },
34
- unmount() {
32
+ unmount () {
35
33
  ReactDOM.unmountComponentAtNode(container);
36
- },
34
+ }
37
35
  };
38
36
  }
37
+
39
38
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,IAAI,UAA4C,CAAC;AACjD,IAAI,CAAC;IACD;;;OAGG;IACH,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC;AACxD,CAAC;AAAC,WAAM,CAAC;IACL,SAAS;AACb,CAAC;AAWD,MAAM,UAAU,MAAM,CAClB,OAAqB,EACrB,SAAqC,EACrC,OAAuB;IAEvB,IAAI,OAAO,UAAU,KAAK,UAAU,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAA,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErB,OAAO;QACH,QAAQ,CAAC,OAAqB;YAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CACrB,OAAqB,EACrB,SAAqC;IAErC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEpC,OAAO;QACH,QAAQ,CAAC,OAAqB;YAC1B,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,OAAO;YACH,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"sources":["../src/render.ts"],"sourcesContent":["/* eslint-disable react/no-deprecated */\nimport { ReactElement } from 'react';\nimport ReactDOM from 'react-dom';\nimport type ReactDOMClient from 'react-dom/client';\n\nlet createRoot: typeof ReactDOMClient.createRoot;\ntry {\n /**\n * Note, the webpack.IgnorePlugin must be configured to ignore this dependency.\n * @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}\n */\n createRoot = require('react-dom/client').createRoot;\n} catch {\n // ignore\n}\n\ninterface RenderOptions {\n legacyRoot?: boolean;\n}\n\ninterface RenderResult {\n rerender(element: ReactElement): void;\n unmount(): void;\n}\n\nexport function render(\n element: ReactElement,\n container: Element | DocumentFragment,\n options?: RenderOptions\n): RenderResult {\n if (typeof createRoot !== 'function' || options?.legacyRoot) {\n return renderLegacyRoot(element, container);\n }\n\n const root = createRoot(container);\n root.render(element);\n\n return {\n rerender(element: ReactElement) {\n root.render(element);\n },\n unmount() {\n root.unmount();\n },\n };\n}\n\nfunction renderLegacyRoot(\n element: ReactElement,\n container: Element | DocumentFragment\n): RenderResult {\n ReactDOM.render(element, container);\n\n return {\n rerender(element: ReactElement) {\n ReactDOM.render(element, container);\n },\n unmount() {\n ReactDOM.unmountComponentAtNode(container);\n },\n };\n}\n"],"names":["ReactDOM","createRoot","require","render","element","container","options","legacyRoot","renderLegacyRoot","root","rerender","unmount","unmountComponentAtNode"],"mappings":"AAAA,sCAAsC,GAEtC,OAAOA,cAAc,YAAY;AAGjC,IAAIC;AACJ,IAAI;IACA;;;KAGC,GACDA,aAAaC,QAAQ,oBAAoBD,UAAU;AACvD,EAAE,UAAM;AACJ,SAAS;AACb;AAWA,OAAO,SAASE,OACZC,OAAqB,EACrBC,SAAqC,EACrCC,OAAuB;IAEvB,IAAI,OAAOL,eAAe,eAAcK,oBAAAA,8BAAAA,QAASC,UAAU,GAAE;QACzD,OAAOC,iBAAiBJ,SAASC;IACrC;IAEA,MAAMI,OAAOR,WAAWI;IACxBI,KAAKN,MAAM,CAACC;IAEZ,OAAO;QACHM,UAASN,OAAqB;YAC1BK,KAAKN,MAAM,CAACC;QAChB;QACAO;YACIF,KAAKE,OAAO;QAChB;IACJ;AACJ;AAEA,SAASH,iBACLJ,OAAqB,EACrBC,SAAqC;IAErCL,SAASG,MAAM,CAACC,SAASC;IAEzB,OAAO;QACHK,UAASN,OAAqB;YAC1BJ,SAASG,MAAM,CAACC,SAASC;QAC7B;QACAM;YACIX,SAASY,sBAAsB,CAACP;QACpC;IACJ;AACJ"}
package/dist/types.d.ts CHANGED
@@ -5,4 +5,15 @@ export type JSON = JSONPrimitive | {
5
5
  export type Serializable<T> = {
6
6
  [P in keyof T]: T[P] extends JSONPrimitive ? T[P] : T[P] extends Function | Date | Map<any, any> | Set<any> | symbol ? never : T[P] extends (infer U)[] ? Serializable<U>[] : Serializable<T[P]>;
7
7
  };
8
+ export interface Metadata {
9
+ name: string;
10
+ version?: string;
11
+ bundledWith?: Record<string, string | undefined>;
12
+ sharedDependencies: Record<string, string>;
13
+ dependencies?: Record<string, string>;
14
+ entrypoints?: Record<string, {
15
+ css: string[];
16
+ js: string[];
17
+ }>;
18
+ }
8
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,EAAE,CAAC;AAE7E,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GACpC,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAC9D,KAAK,GACL,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACtB,YAAY,CAAC,CAAC,CAAC,EAAE,GACjB,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,EAAE,CAAC;AAE7E,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GACpC,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAC9D,KAAK,GACL,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACtB,YAAY,CAAC,CAAC,CAAC,EAAE,GACjB,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,EAAE,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACjE"}
package/dist/types.js CHANGED
@@ -1,2 +1,3 @@
1
- export {};
1
+ export { };
2
+
2
3
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["export type JSONPrimitive = string | number | boolean | null | undefined;\n\nexport type JSON = JSONPrimitive | { [key: string | number]: JSON } | JSON[];\n\nexport type Serializable<T> = {\n [P in keyof T]: T[P] extends JSONPrimitive\n ? T[P]\n : T[P] extends Function | Date | Map<any, any> | Set<any> | symbol\n ? never\n : T[P] extends (infer U)[]\n ? Serializable<U>[]\n : Serializable<T[P]>;\n};\n\nexport interface Metadata {\n name: string;\n version?: string;\n bundledWith?: Record<string, string | undefined>;\n sharedDependencies: Record<string, string>;\n dependencies?: Record<string, string>;\n entrypoints?: Record<string, { css: string[]; js: string[] }>;\n}\n"],"names":[],"mappings":"AAcA,WAOC"}
@@ -1,27 +1,18 @@
1
1
  import { ExposedDependencies, ExposedInstanceDependencies, GetJsonError } from '../common';
2
2
  import { EntryPoints } from './get-entry-points';
3
- export interface Metadata {
4
- name: string;
5
- version?: string;
6
- bundledWith?: Record<string, string | undefined>;
7
- sharedDependencies: Record<string, string>;
8
- dependencies?: Record<string, string>;
9
- entrypoints?: Record<string, {
10
- css: string[];
11
- js: string[];
12
- }>;
13
- }
14
3
  export type BundleInfo = Awaited<ReturnType<typeof getBundleInfo>>;
15
4
  interface GetBundleInfoProps {
5
+ cache: boolean | number;
16
6
  exposedDependencies?: ExposedDependencies;
17
7
  exposedInstanceDependencies?: ExposedInstanceDependencies;
18
8
  fallbackPackageUrl?: string;
9
+ isHeadless?: boolean;
19
10
  mainPackageUrl: string;
20
11
  onRequestError?: (error: GetJsonError) => void;
21
12
  retries?: number;
22
13
  signal?: AbortSignal;
23
14
  }
24
- export declare function getBundleInfo({ mainPackageUrl, fallbackPackageUrl, exposedDependencies, exposedInstanceDependencies, signal, retries, onRequestError, }: GetBundleInfoProps): Promise<{
15
+ export declare function getBundleInfo({ cache, mainPackageUrl, fallbackPackageUrl, exposedDependencies, exposedInstanceDependencies, isHeadless, signal, retries, onRequestError, }: GetBundleInfoProps): Promise<{
25
16
  bundledWith: Record<string, string | undefined> | undefined;
26
17
  disposer: () => void;
27
18
  mfeSupportsRerendering: boolean;
@@ -31,6 +22,7 @@ export declare function getBundleInfo({ mainPackageUrl, fallbackPackageUrl, expo
31
22
  host: string;
32
23
  package: string;
33
24
  }> | undefined;
25
+ resolvedBundleType: "headless" | "light" | "full";
34
26
  urls: EntryPoints;
35
27
  WebComponent: string;
36
28
  version: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"get-bundle-info.d.ts","sourceRoot":"","sources":["../../src/utils/get-bundle-info.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAW,YAAY,EAAE,MAAM,WAAW,CAAC;AACpG,OAAO,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAOjE,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,EAAE,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC;AAEnE,UAAU,kBAAkB;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,wBAAsB,aAAa,CAAC,EAChC,cAAc,EACd,kBAAkB,EAClB,mBAAwB,EACxB,2BAAgC,EAChC,MAAM,EACN,OAAO,EACP,cAAc,GACjB,EAAE,kBAAkB;;;;;;;;;;;;;GAqEpB"}
1
+ {"version":3,"file":"get-bundle-info.d.ts","sourceRoot":"","sources":["../../src/utils/get-bundle-info.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAW,YAAY,EAAE,MAAM,WAAW,CAAC;AAGpG,OAAO,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAOjE,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC;AAEnE,UAAU,kBAAkB;IACxB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,wBAAsB,aAAa,CAAC,EAChC,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAwB,EACxB,2BAAgC,EAChC,UAAU,EACV,MAAM,EACN,OAAO,EACP,cAAc,GACjB,EAAE,kBAAkB;;;;;;;;;;;;;;GAiFpB"}
@@ -1,91 +1,80 @@
1
1
  import semver from 'semver';
2
2
  import get from 'lodash.get';
3
3
  import { getJson } from '../common';
4
+ import { getCachedMetadata } from './get-cached-metadata';
5
+ import { getCacheSetting } from './get-cache-setting';
4
6
  import { getEntrypoints } from './get-entry-points';
5
- import { getMFESupportsRerendering } from './get-mfe-supports-rerendering';
6
- import { getVersionMismatches } from './get-version-mismatches';
7
- import { isVersionedUrl } from './is-versioned-url';
8
7
  import { getMFEHasCompatibleLaunchDarklyVersion } from './get-mfe-has-compatible-launchdarkly-version';
8
+ import { getMFESupportsRerendering } from './get-mfe-supports-rerendering';
9
9
  import { getMFEHasUniqueChunkNamespace } from './get-mfe-has-unique-chunk-namespace';
10
- export async function getBundleInfo({ mainPackageUrl, fallbackPackageUrl, exposedDependencies = {}, exposedInstanceDependencies = {}, signal, retries, onRequestError, }) {
11
- var _a;
12
- const { data: metadata, url: packageUrl } = await getMetadata({
10
+ import { getVersionMismatches } from './get-version-mismatches';
11
+ export async function getBundleInfo({ cache, mainPackageUrl, fallbackPackageUrl, exposedDependencies = {}, exposedInstanceDependencies = {}, isHeadless, signal, retries, onRequestError }) {
12
+ var _metadata_entrypoints;
13
+ const { data: metadata, url: packageUrl } = await getCachedMetadata({
14
+ cache,
13
15
  fallbackPackageUrl,
14
16
  mainPackageUrl,
15
17
  onRequestError,
16
18
  retries,
17
- signal,
19
+ signal
18
20
  });
19
21
  const { bundledWith, name, sharedDependencies } = metadata;
20
22
  const exactPackageUrl = packageUrl.replace('/dist/metadata.json', '');
21
- const cache = getCacheSetting(exactPackageUrl);
23
+ const requestCache = getCacheSetting(exactPackageUrl);
22
24
  let dependencies;
23
25
  if (metadata.dependencies) {
24
26
  dependencies = metadata.dependencies;
25
- }
26
- else {
27
+ } else {
27
28
  const { data: packageJson } = await getJson(`${exactPackageUrl}/package.json`, {
28
- cache,
29
+ cache: requestCache,
29
30
  retries,
30
- signal,
31
+ signal
31
32
  });
32
33
  dependencies = packageJson.dependencies;
33
34
  }
34
- const mismatch = getVersionMismatches(exposedDependencies, dependencies, sharedDependencies);
35
- const hasMismatch = !!Object.keys(mismatch).length;
36
- const startupVersion = bundledWith === null || bundledWith === void 0 ? void 0 : bundledWith['@servicetitan/startup'];
37
- const supportLightBundles = startupVersion && semver.gte(startupVersion, '17.0.0');
38
- const embed = !hasMismatch && supportLightBundles;
39
- const bundleType = embed ? 'light' : 'full';
40
- const withBaseUrl = (path) => `${exactPackageUrl}/dist/bundle/${bundleType}/${path}`;
41
- let entrypoints;
42
- if ((_a = metadata.entrypoints) === null || _a === void 0 ? void 0 : _a[bundleType]) {
43
- entrypoints = metadata.entrypoints[bundleType];
35
+ let mismatch;
36
+ let resolvedBundleType;
37
+ if (isHeadless) {
38
+ resolvedBundleType = 'headless';
39
+ } else {
40
+ mismatch = getVersionMismatches(exposedDependencies, dependencies, sharedDependencies);
41
+ const startupVersion = bundledWith === null || bundledWith === void 0 ? void 0 : bundledWith['@servicetitan/startup'];
42
+ const supportLightBundles = !!startupVersion && semver.gte(startupVersion, '17.0.0');
43
+ const embed = !mismatch && supportLightBundles;
44
+ resolvedBundleType = embed ? 'light' : 'full';
44
45
  }
45
- else {
46
- entrypoints = await getEntrypoints(withBaseUrl('entrypoints.json'), cache);
46
+ const withBaseUrl = (path)=>`${exactPackageUrl}/dist/bundle/${resolvedBundleType}/${path}`;
47
+ let entrypoints;
48
+ if ((_metadata_entrypoints = metadata.entrypoints) === null || _metadata_entrypoints === void 0 ? void 0 : _metadata_entrypoints[resolvedBundleType]) {
49
+ entrypoints = metadata.entrypoints[resolvedBundleType];
50
+ } else {
51
+ entrypoints = await getEntrypoints(withBaseUrl('entrypoints.json'), requestCache);
47
52
  }
48
- const disposer = () => {
49
- if (embed) {
53
+ const disposer = ()=>{
54
+ if (resolvedBundleType === 'light') {
50
55
  const path = Object.values(sharedDependencies).shift();
51
56
  if (path) {
52
57
  get(window, path).getStorage().clear(name);
53
58
  }
54
59
  }
55
60
  };
56
- const urls = Object.entries(entrypoints).reduce((result, [key, value]) => ({ ...result, [key]: value.map(withBaseUrl) }), {});
61
+ const urls = Object.entries(entrypoints).reduce((result, [key, value])=>({
62
+ ...result,
63
+ [key]: value.map(withBaseUrl)
64
+ }), {});
65
+ const elementName = resolvedBundleType === 'headless' ? `headless-${name}` : name;
57
66
  return {
58
67
  bundledWith,
59
68
  disposer,
60
69
  mfeSupportsRerendering: getMFESupportsRerendering(bundledWith, dependencies),
61
70
  mfeHasUniqueChunkNamespace: getMFEHasUniqueChunkNamespace(bundledWith),
62
71
  mfeHasCompatibleLaunchDarklyVersion: getMFEHasCompatibleLaunchDarklyVersion(bundledWith, exposedInstanceDependencies),
63
- mismatch: hasMismatch ? mismatch : undefined,
72
+ mismatch,
73
+ resolvedBundleType,
64
74
  urls,
65
- WebComponent: name,
66
- version: metadata.version,
75
+ WebComponent: elementName,
76
+ version: metadata.version
67
77
  };
68
78
  }
69
- async function getMetadata(props) {
70
- const { fallbackPackageUrl, mainPackageUrl, onRequestError, retries, signal } = props;
71
- return getJson(`${mainPackageUrl}/dist/metadata.json`, {
72
- cache: getCacheSetting(mainPackageUrl),
73
- retries: fallbackPackageUrl ? 0 : retries,
74
- onRequestError,
75
- signal,
76
- }).catch(e => {
77
- if (!fallbackPackageUrl) {
78
- throw e;
79
- }
80
- return getJson(`${fallbackPackageUrl}/dist/metadata.json`, {
81
- retries,
82
- onRequestError,
83
- cache: getCacheSetting(fallbackPackageUrl),
84
- signal,
85
- });
86
- });
87
- }
88
- function getCacheSetting(url) {
89
- return isVersionedUrl(url) ? undefined : 'no-store';
90
- }
79
+
91
80
  //# sourceMappingURL=get-bundle-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-bundle-info.js","sourceRoot":"","sources":["../../src/utils/get-bundle-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/get-bundle-info.ts"],"sourcesContent":["import semver from 'semver';\nimport get from 'lodash.get';\n\nimport { ExposedDependencies, ExposedInstanceDependencies, getJson, GetJsonError } from '../common';\nimport { getCachedMetadata } from './get-cached-metadata';\nimport { getCacheSetting } from './get-cache-setting';\nimport { EntryPoints, getEntrypoints } from './get-entry-points';\nimport { getMFEHasCompatibleLaunchDarklyVersion } from './get-mfe-has-compatible-launchdarkly-version';\nimport { getMFESupportsRerendering } from './get-mfe-supports-rerendering';\nimport { getMFEHasUniqueChunkNamespace } from './get-mfe-has-unique-chunk-namespace';\nimport { getVersionMismatches } from './get-version-mismatches';\nimport type { Metadata } from '../types';\n\nexport type BundleInfo = Awaited<ReturnType<typeof getBundleInfo>>;\n\ninterface GetBundleInfoProps {\n cache: boolean | number;\n exposedDependencies?: ExposedDependencies;\n exposedInstanceDependencies?: ExposedInstanceDependencies;\n fallbackPackageUrl?: string;\n isHeadless?: boolean;\n mainPackageUrl: string;\n onRequestError?: (error: GetJsonError) => void;\n retries?: number;\n signal?: AbortSignal;\n}\n\nexport async function getBundleInfo({\n cache,\n mainPackageUrl,\n fallbackPackageUrl,\n exposedDependencies = {},\n exposedInstanceDependencies = {},\n isHeadless,\n signal,\n retries,\n onRequestError,\n}: GetBundleInfoProps) {\n const { data: metadata, url: packageUrl } = await getCachedMetadata({\n cache,\n fallbackPackageUrl,\n mainPackageUrl,\n onRequestError,\n retries,\n signal,\n });\n\n const { bundledWith, name, sharedDependencies } = metadata;\n const exactPackageUrl = packageUrl.replace('/dist/metadata.json', '');\n const requestCache = getCacheSetting(exactPackageUrl);\n\n let dependencies: NonNullable<Metadata['dependencies']>;\n if (metadata.dependencies) {\n dependencies = metadata.dependencies;\n } else {\n const { data: packageJson } = await getJson(`${exactPackageUrl}/package.json`, {\n cache: requestCache,\n retries,\n signal,\n });\n\n dependencies = packageJson.dependencies;\n }\n\n let mismatch: ReturnType<typeof getVersionMismatches>;\n let resolvedBundleType: 'headless' | 'light' | 'full';\n\n if (isHeadless) {\n resolvedBundleType = 'headless';\n } else {\n mismatch = getVersionMismatches(exposedDependencies, dependencies, sharedDependencies);\n const startupVersion = bundledWith?.['@servicetitan/startup'];\n const supportLightBundles = !!startupVersion && semver.gte(startupVersion, '17.0.0');\n const embed = !mismatch && supportLightBundles;\n resolvedBundleType = embed ? 'light' : 'full';\n }\n\n const withBaseUrl = (path: string) =>\n `${exactPackageUrl}/dist/bundle/${resolvedBundleType}/${path}`;\n\n let entrypoints: EntryPoints;\n if (metadata.entrypoints?.[resolvedBundleType]) {\n entrypoints = metadata.entrypoints[resolvedBundleType];\n } else {\n entrypoints = await getEntrypoints(withBaseUrl('entrypoints.json'), requestCache);\n }\n\n const disposer = () => {\n if (resolvedBundleType === 'light') {\n const path = Object.values<string>(sharedDependencies).shift();\n if (path) {\n get(window, path).getStorage().clear(name);\n }\n }\n };\n\n const urls = Object.entries(entrypoints).reduce(\n (result, [key, value]) => ({ ...result, [key]: value.map(withBaseUrl) }),\n {} as EntryPoints\n );\n\n const elementName = resolvedBundleType === 'headless' ? `headless-${name}` : name;\n\n return {\n bundledWith,\n disposer,\n mfeSupportsRerendering: getMFESupportsRerendering(bundledWith, dependencies),\n mfeHasUniqueChunkNamespace: getMFEHasUniqueChunkNamespace(bundledWith),\n mfeHasCompatibleLaunchDarklyVersion: getMFEHasCompatibleLaunchDarklyVersion(\n bundledWith,\n exposedInstanceDependencies\n ),\n mismatch,\n resolvedBundleType,\n urls,\n WebComponent: elementName,\n version: metadata.version,\n };\n}\n"],"names":["semver","get","getJson","getCachedMetadata","getCacheSetting","getEntrypoints","getMFEHasCompatibleLaunchDarklyVersion","getMFESupportsRerendering","getMFEHasUniqueChunkNamespace","getVersionMismatches","getBundleInfo","cache","mainPackageUrl","fallbackPackageUrl","exposedDependencies","exposedInstanceDependencies","isHeadless","signal","retries","onRequestError","metadata","data","url","packageUrl","bundledWith","name","sharedDependencies","exactPackageUrl","replace","requestCache","dependencies","packageJson","mismatch","resolvedBundleType","startupVersion","supportLightBundles","gte","embed","withBaseUrl","path","entrypoints","disposer","Object","values","shift","window","getStorage","clear","urls","entries","reduce","result","key","value","map","elementName","mfeSupportsRerendering","mfeHasUniqueChunkNamespace","mfeHasCompatibleLaunchDarklyVersion","WebComponent","version"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getCacheSetting(url: string): "no-store" | undefined;
2
+ //# sourceMappingURL=get-cache-setting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cache-setting.d.ts","sourceRoot":"","sources":["../../src/utils/get-cache-setting.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,0BAE1C"}
@@ -0,0 +1,6 @@
1
+ import { isVersionedUrl } from './is-versioned-url';
2
+ export function getCacheSetting(url) {
3
+ return isVersionedUrl(url) ? undefined : 'no-store';
4
+ }
5
+
6
+ //# sourceMappingURL=get-cache-setting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/get-cache-setting.ts"],"sourcesContent":["import { isVersionedUrl } from './is-versioned-url';\n\nexport function getCacheSetting(url: string) {\n return isVersionedUrl(url) ? undefined : 'no-store';\n}\n"],"names":["isVersionedUrl","getCacheSetting","url","undefined"],"mappings":"AAAA,SAASA,cAAc,QAAQ,qBAAqB;AAEpD,OAAO,SAASC,gBAAgBC,GAAW;IACvC,OAAOF,eAAeE,OAAOC,YAAY;AAC7C"}
@@ -0,0 +1,18 @@
1
+ import { GetJsonError } from '../common';
2
+ import type { Metadata } from '../types';
3
+ interface GetMetadataProps {
4
+ fallbackPackageUrl?: string;
5
+ mainPackageUrl: string;
6
+ onRequestError?: (error: GetJsonError) => void;
7
+ signal?: AbortSignal;
8
+ retries?: number;
9
+ }
10
+ export declare function getCachedMetadata(props: GetMetadataProps & {
11
+ cache: boolean | number;
12
+ }): Promise<{
13
+ data: Metadata;
14
+ headers: Headers;
15
+ url: string;
16
+ }>;
17
+ export {};
18
+ //# sourceMappingURL=get-cached-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cached-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/get-cached-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAWzC,UAAU,gBAAgB;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AA0BD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG;IAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE;;;;GA2B5F"}
@@ -0,0 +1,47 @@
1
+ import { getJson } from '../common';
2
+ import { getCacheSetting } from './get-cache-setting';
3
+ import { getMFEHasUniqueChunkNamespace } from './get-mfe-has-unique-chunk-namespace';
4
+ import { TtlCache } from './ttl-cache';
5
+ const MINUTE = 1000 * 60;
6
+ const metadataResponseCache = new TtlCache({
7
+ ttlMs: 15 * MINUTE
8
+ });
9
+ async function getMetadata(props) {
10
+ const { fallbackPackageUrl, mainPackageUrl, onRequestError, retries, signal } = props;
11
+ try {
12
+ return await getJson(`${mainPackageUrl}/dist/metadata.json`, {
13
+ cache: getCacheSetting(mainPackageUrl),
14
+ retries: fallbackPackageUrl ? 0 : retries,
15
+ onRequestError,
16
+ signal
17
+ });
18
+ } catch (e) {
19
+ if (!fallbackPackageUrl) {
20
+ throw e;
21
+ }
22
+ return getJson(`${fallbackPackageUrl}/dist/metadata.json`, {
23
+ retries,
24
+ onRequestError,
25
+ cache: getCacheSetting(fallbackPackageUrl),
26
+ signal
27
+ });
28
+ }
29
+ }
30
+ export async function getCachedMetadata(props) {
31
+ let cache = props.cache;
32
+ const cacheKey = props.mainPackageUrl;
33
+ let metadataResponse = cache ? metadataResponseCache.get(cacheKey) : undefined;
34
+ if (!metadataResponse) {
35
+ metadataResponse = await getMetadata(props);
36
+ const mfeHasUniqueChunkNamespace = getMFEHasUniqueChunkNamespace(metadataResponse.data.bundledWith);
37
+ if (cache === true && !mfeHasUniqueChunkNamespace) {
38
+ cache = -1;
39
+ }
40
+ if (cache) {
41
+ metadataResponseCache.set(cacheKey, metadataResponse, typeof cache === 'number' ? cache : undefined);
42
+ }
43
+ }
44
+ return metadataResponse;
45
+ }
46
+
47
+ //# sourceMappingURL=get-cached-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/get-cached-metadata.ts"],"sourcesContent":["import { getJson, GetJsonError } from '../common';\nimport type { Metadata } from '../types';\nimport { getCacheSetting } from './get-cache-setting';\nimport { getMFEHasUniqueChunkNamespace } from './get-mfe-has-unique-chunk-namespace';\nimport { TtlCache } from './ttl-cache';\n\nconst MINUTE = 1000 * 60;\n\nconst metadataResponseCache = new TtlCache<Awaited<ReturnType<typeof getMetadata>>>({\n ttlMs: 15 * MINUTE,\n});\n\ninterface GetMetadataProps {\n fallbackPackageUrl?: string;\n mainPackageUrl: string;\n onRequestError?: (error: GetJsonError) => void;\n signal?: AbortSignal;\n retries?: number;\n}\n\nasync function getMetadata(props: GetMetadataProps) {\n const { fallbackPackageUrl, mainPackageUrl, onRequestError, retries, signal } = props;\n\n try {\n return await getJson<Metadata>(`${mainPackageUrl}/dist/metadata.json`, {\n cache: getCacheSetting(mainPackageUrl),\n retries: fallbackPackageUrl ? 0 : retries,\n onRequestError,\n signal,\n });\n } catch (e) {\n if (!fallbackPackageUrl) {\n throw e;\n }\n\n return getJson<Metadata>(`${fallbackPackageUrl}/dist/metadata.json`, {\n retries,\n onRequestError,\n cache: getCacheSetting(fallbackPackageUrl),\n signal,\n });\n }\n}\n\nexport async function getCachedMetadata(props: GetMetadataProps & { cache: boolean | number }) {\n let cache = props.cache;\n const cacheKey = props.mainPackageUrl;\n\n let metadataResponse = cache ? metadataResponseCache.get(cacheKey) : undefined;\n\n if (!metadataResponse) {\n metadataResponse = await getMetadata(props);\n\n const mfeHasUniqueChunkNamespace = getMFEHasUniqueChunkNamespace(\n metadataResponse.data.bundledWith\n );\n\n if (cache === true && !mfeHasUniqueChunkNamespace) {\n cache = -1;\n }\n\n if (cache) {\n metadataResponseCache.set(\n cacheKey,\n metadataResponse,\n typeof cache === 'number' ? cache : undefined\n );\n }\n }\n\n return metadataResponse;\n}\n"],"names":["getJson","getCacheSetting","getMFEHasUniqueChunkNamespace","TtlCache","MINUTE","metadataResponseCache","ttlMs","getMetadata","props","fallbackPackageUrl","mainPackageUrl","onRequestError","retries","signal","cache","e","getCachedMetadata","cacheKey","metadataResponse","get","undefined","mfeHasUniqueChunkNamespace","data","bundledWith","set"],"mappings":"AAAA,SAASA,OAAO,QAAsB,YAAY;AAElD,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,6BAA6B,QAAQ,uCAAuC;AACrF,SAASC,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,SAAS,OAAO;AAEtB,MAAMC,wBAAwB,IAAIF,SAAkD;IAChFG,OAAO,KAAKF;AAChB;AAUA,eAAeG,YAAYC,KAAuB;IAC9C,MAAM,EAAEC,kBAAkB,EAAEC,cAAc,EAAEC,cAAc,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAGL;IAEhF,IAAI;QACA,OAAO,MAAMR,QAAkB,GAAGU,eAAe,mBAAmB,CAAC,EAAE;YACnEI,OAAOb,gBAAgBS;YACvBE,SAASH,qBAAqB,IAAIG;YAClCD;YACAE;QACJ;IACJ,EAAE,OAAOE,GAAG;QACR,IAAI,CAACN,oBAAoB;YACrB,MAAMM;QACV;QAEA,OAAOf,QAAkB,GAAGS,mBAAmB,mBAAmB,CAAC,EAAE;YACjEG;YACAD;YACAG,OAAOb,gBAAgBQ;YACvBI;QACJ;IACJ;AACJ;AAEA,OAAO,eAAeG,kBAAkBR,KAAqD;IACzF,IAAIM,QAAQN,MAAMM,KAAK;IACvB,MAAMG,WAAWT,MAAME,cAAc;IAErC,IAAIQ,mBAAmBJ,QAAQT,sBAAsBc,GAAG,CAACF,YAAYG;IAErE,IAAI,CAACF,kBAAkB;QACnBA,mBAAmB,MAAMX,YAAYC;QAErC,MAAMa,6BAA6BnB,8BAC/BgB,iBAAiBI,IAAI,CAACC,WAAW;QAGrC,IAAIT,UAAU,QAAQ,CAACO,4BAA4B;YAC/CP,QAAQ,CAAC;QACb;QAEA,IAAIA,OAAO;YACPT,sBAAsBmB,GAAG,CACrBP,UACAC,kBACA,OAAOJ,UAAU,WAAWA,QAAQM;QAE5C;IACJ;IAEA,OAAOF;AACX"}
@@ -1,4 +1,5 @@
1
1
  export function getElementName({ WebComponent }) {
2
2
  return WebComponent.replace(/-[^-]+$/, '');
3
3
  }
4
+
4
5
  //# sourceMappingURL=get-element-name.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-element-name.js","sourceRoot":"","sources":["../../src/utils/get-element-name.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,EAAE,YAAY,EAAoC;IAC7E,OAAO,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"sources":["../../src/utils/get-element-name.ts"],"sourcesContent":["import { BundleInfo } from './get-bundle-info';\n\nexport function getElementName({ WebComponent }: Pick<BundleInfo, 'WebComponent'>) {\n return WebComponent.replace(/-[^-]+$/, '');\n}\n"],"names":["getElementName","WebComponent","replace"],"mappings":"AAEA,OAAO,SAASA,eAAe,EAAEC,YAAY,EAAoC;IAC7E,OAAOA,aAAaC,OAAO,CAAC,WAAW;AAC3C"}
@@ -3,11 +3,18 @@ export async function getEntrypoints(url, cache, signal) {
3
3
  try {
4
4
  return (await getJson(url, {
5
5
  cache,
6
- signal,
6
+ signal
7
7
  })).data;
8
- }
9
- catch (_a) {
10
- return { css: ['index.css'], js: ['index.js'] };
8
+ } catch (e) {
9
+ return {
10
+ css: [
11
+ 'index.css'
12
+ ],
13
+ js: [
14
+ 'index.js'
15
+ ]
16
+ };
11
17
  }
12
18
  }
19
+
13
20
  //# sourceMappingURL=get-entry-points.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-entry-points.js","sourceRoot":"","sources":["../../src/utils/get-entry-points.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,GAAW,EACX,KAA6B,EAC7B,MAAoB;IAEpB,IAAI,CAAC;QACD,OAAO,CACH,MAAM,OAAO,CAAC,GAAG,EAAE;YACf,KAAK;YACL,MAAM;SACT,CAAC,CACL,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IACpD,CAAC;AACL,CAAC"}
1
+ {"version":3,"sources":["../../src/utils/get-entry-points.ts"],"sourcesContent":["import { getJson } from '../common';\n\nexport interface EntryPoints {\n css: string[];\n js: string[];\n}\n\nexport async function getEntrypoints(\n url: string,\n cache: 'no-store' | undefined,\n signal?: AbortSignal\n): Promise<EntryPoints> {\n try {\n return (\n await getJson(url, {\n cache,\n signal,\n })\n ).data;\n } catch {\n return { css: ['index.css'], js: ['index.js'] };\n }\n}\n"],"names":["getJson","getEntrypoints","url","cache","signal","data","css","js"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AAOpC,OAAO,eAAeC,eAClBC,GAAW,EACXC,KAA6B,EAC7BC,MAAoB;IAEpB,IAAI;QACA,OAAO,AACH,CAAA,MAAMJ,QAAQE,KAAK;YACfC;YACAC;QACJ,EAAC,EACHC,IAAI;IACV,EAAE,UAAM;QACJ,OAAO;YAAEC,KAAK;gBAAC;aAAY;YAAEC,IAAI;gBAAC;aAAW;QAAC;IAClD;AACJ"}
@@ -1,11 +1,11 @@
1
1
  let token;
2
2
  try {
3
3
  token = require('@servicetitan/launchdarkly-service').LD_SERVICE_TOKEN;
4
- }
5
- catch (_a) {
6
- // ignore
4
+ } catch (e) {
5
+ // ignore
7
6
  }
8
7
  export function getLDServiceToken() {
9
8
  return token;
10
9
  }
10
+
11
11
  //# sourceMappingURL=get-ld-service-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-ld-service-token.js","sourceRoot":"","sources":["../../src/utils/get-ld-service-token.ts"],"names":[],"mappings":"AAGA,IAAI,KAA6B,CAAC;AAClC,IAAI,CAAC;IACD,KAAK,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC,gBAAgB,CAAC;AAC3E,CAAC;AAAC,WAAM,CAAC;IACL,SAAS;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC7B,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"sources":["../../src/utils/get-ld-service-token.ts"],"sourcesContent":["import { type LDService } from '@servicetitan/launchdarkly-service';\nimport { SymbolToken } from '@servicetitan/react-ioc';\n\nlet token: SymbolToken<LDService>;\ntry {\n token = require('@servicetitan/launchdarkly-service').LD_SERVICE_TOKEN;\n} catch {\n // ignore\n}\n\nexport function getLDServiceToken() {\n return token;\n}\n"],"names":["token","require","LD_SERVICE_TOKEN","getLDServiceToken"],"mappings":"AAGA,IAAIA;AACJ,IAAI;IACAA,QAAQC,QAAQ,sCAAsCC,gBAAgB;AAC1E,EAAE,UAAM;AACJ,SAAS;AACb;AAEA,OAAO,SAASC;IACZ,OAAOH;AACX"}
@@ -1,5 +1,5 @@
1
1
  import { ExposedInstanceDependencies } from '../common';
2
- import { Metadata } from './get-bundle-info';
2
+ import type { Metadata } from '../types';
3
3
  /**
4
4
  * @param bundledWith THe MFE's metadata.bundledWith.
5
5
  * @param exposedInstanceDependencies The hosts's EXPOSED_INSTANCE_DEPENDENCIES, if any.
@@ -1 +1 @@
1
- {"version":3,"file":"get-mfe-has-compatible-launchdarkly-version.d.ts","sourceRoot":"","sources":["../../src/utils/get-mfe-has-compatible-launchdarkly-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAClD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,EACpC,2BAA2B,EAAE,2BAA2B,uBAO3D"}
1
+ {"version":3,"file":"get-mfe-has-compatible-launchdarkly-version.d.ts","sourceRoot":"","sources":["../../src/utils/get-mfe-has-compatible-launchdarkly-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAClD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,EACpC,2BAA2B,EAAE,2BAA2B,uBAO3D"}
@@ -4,13 +4,13 @@
4
4
  * @returns Returns true when host and MFE use compatible version of LaunchDarkly
5
5
  * and returns false when host and MGE use incompatible version.
6
6
  * Returns undefined when either the host or MFE doesn't expose LaunchDarkly.
7
- */
8
- export function getMFEHasCompatibleLaunchDarklyVersion(bundledWith, exposedInstanceDependencies) {
9
- var _a;
7
+ */ export function getMFEHasCompatibleLaunchDarklyVersion(bundledWith, exposedInstanceDependencies) {
8
+ var _exposedInstanceDependencies_launchDarkly;
10
9
  const mfeVersion = bundledWith === null || bundledWith === void 0 ? void 0 : bundledWith['launchdarkly-js-client-sdk'];
11
- const hostVersion = (_a = exposedInstanceDependencies.launchDarkly) === null || _a === void 0 ? void 0 : _a.version;
10
+ const hostVersion = (_exposedInstanceDependencies_launchDarkly = exposedInstanceDependencies.launchDarkly) === null || _exposedInstanceDependencies_launchDarkly === void 0 ? void 0 : _exposedInstanceDependencies_launchDarkly.version;
12
11
  if (hostVersion && mfeVersion) {
13
12
  return hostVersion === mfeVersion;
14
13
  }
15
14
  }
15
+
16
16
  //# sourceMappingURL=get-mfe-has-compatible-launchdarkly-version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-mfe-has-compatible-launchdarkly-version.js","sourceRoot":"","sources":["../../src/utils/get-mfe-has-compatible-launchdarkly-version.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CAClD,WAAoC,EACpC,2BAAwD;;IAExD,MAAM,UAAU,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,4BAA4B,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,MAAA,2BAA2B,CAAC,YAAY,0CAAE,OAAO,CAAC;IACtE,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;QAC5B,OAAO,WAAW,KAAK,UAAU,CAAC;IACtC,CAAC;AACL,CAAC"}
1
+ {"version":3,"sources":["../../src/utils/get-mfe-has-compatible-launchdarkly-version.ts"],"sourcesContent":["import { ExposedInstanceDependencies } from '../common';\nimport type { Metadata } from '../types';\n\n/**\n * @param bundledWith THe MFE's metadata.bundledWith.\n * @param exposedInstanceDependencies The hosts's EXPOSED_INSTANCE_DEPENDENCIES, if any.\n * @returns Returns true when host and MFE use compatible version of LaunchDarkly\n * and returns false when host and MGE use incompatible version.\n * Returns undefined when either the host or MFE doesn't expose LaunchDarkly.\n */\nexport function getMFEHasCompatibleLaunchDarklyVersion(\n bundledWith: Metadata['bundledWith'],\n exposedInstanceDependencies: ExposedInstanceDependencies\n) {\n const mfeVersion = bundledWith?.['launchdarkly-js-client-sdk'];\n const hostVersion = exposedInstanceDependencies.launchDarkly?.version;\n if (hostVersion && mfeVersion) {\n return hostVersion === mfeVersion;\n }\n}\n"],"names":["getMFEHasCompatibleLaunchDarklyVersion","bundledWith","exposedInstanceDependencies","mfeVersion","hostVersion","launchDarkly","version"],"mappings":"AAGA;;;;;;CAMC,GACD,OAAO,SAASA,uCACZC,WAAoC,EACpCC,2BAAwD;QAGpCA;IADpB,MAAMC,aAAaF,wBAAAA,kCAAAA,WAAa,CAAC,6BAA6B;IAC9D,MAAMG,eAAcF,4CAAAA,4BAA4BG,YAAY,cAAxCH,gEAAAA,0CAA0CI,OAAO;IACrE,IAAIF,eAAeD,YAAY;QAC3B,OAAOC,gBAAgBD;IAC3B;AACJ"}
@@ -1,3 +1,3 @@
1
- import { Metadata } from './get-bundle-info';
1
+ import type { Metadata } from '../types';
2
2
  export declare function getMFEHasUniqueChunkNamespace(bundledWith: Metadata['bundledWith']): boolean;
3
3
  //# sourceMappingURL=get-mfe-has-unique-chunk-namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-mfe-has-unique-chunk-namespace.d.ts","sourceRoot":"","sources":["../../src/utils/get-mfe-has-unique-chunk-namespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,WAEjF"}
1
+ {"version":3,"file":"get-mfe-has-unique-chunk-namespace.d.ts","sourceRoot":"","sources":["../../src/utils/get-mfe-has-unique-chunk-namespace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,WAEjF"}
@@ -9,4 +9,5 @@ function isSupportedVersion(version) {
9
9
  return semver.gte(minVersion, '27.2.0');
10
10
  }
11
11
  }
12
+
12
13
  //# sourceMappingURL=get-mfe-has-unique-chunk-namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-mfe-has-unique-chunk-namespace.js","sourceRoot":"","sources":["../../src/utils/get-mfe-has-unique-chunk-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,0EAA0E;AAC1E,MAAM,UAAU,6BAA6B,CAAC,WAAoC;IAC9E,OAAO,CAAC,CAAC,kBAAkB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,uBAAuB,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IACxC,MAAM,UAAU,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;AACL,CAAC"}
1
+ {"version":3,"sources":["../../src/utils/get-mfe-has-unique-chunk-namespace.ts"],"sourcesContent":["import semver from 'semver';\nimport type { Metadata } from '../types';\n\n// Check if the MFE loads it's chunks into a unique global chunk namespace\nexport function getMFEHasUniqueChunkNamespace(bundledWith: Metadata['bundledWith']) {\n return !!isSupportedVersion(bundledWith?.['@servicetitan/startup']);\n}\n\nfunction isSupportedVersion(version?: string) {\n const minVersion = version && semver.minVersion(version);\n if (minVersion) {\n return semver.gte(minVersion, '27.2.0');\n }\n}\n"],"names":["semver","getMFEHasUniqueChunkNamespace","bundledWith","isSupportedVersion","version","minVersion","gte"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAG5B,0EAA0E;AAC1E,OAAO,SAASC,8BAA8BC,WAAoC;IAC9E,OAAO,CAAC,CAACC,mBAAmBD,wBAAAA,kCAAAA,WAAa,CAAC,wBAAwB;AACtE;AAEA,SAASC,mBAAmBC,OAAgB;IACxC,MAAMC,aAAaD,WAAWJ,OAAOK,UAAU,CAACD;IAChD,IAAIC,YAAY;QACZ,OAAOL,OAAOM,GAAG,CAACD,YAAY;IAClC;AACJ"}
@@ -1,3 +1,3 @@
1
- import { Metadata } from './get-bundle-info';
1
+ import type { Metadata } from '../types';
2
2
  export declare function getMFESupportsRerendering(bundledWith: Metadata['bundledWith'], dependencies: Metadata['dependencies']): boolean;
3
3
  //# sourceMappingURL=get-mfe-supports-rerendering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-mfe-supports-rerendering.d.ts","sourceRoot":"","sources":["../../src/utils/get-mfe-supports-rerendering.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAY7C,wBAAgB,yBAAyB,CACrC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,EACpC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,WAOzC"}
1
+ {"version":3,"file":"get-mfe-supports-rerendering.d.ts","sourceRoot":"","sources":["../../src/utils/get-mfe-supports-rerendering.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAYzC,wBAAgB,yBAAyB,CACrC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,EACpC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,WAOzC"}
@@ -8,10 +8,9 @@ import semver from 'semver';
8
8
  * dependency is set in it's own package's package.json instead of the monorepo's root package.json
9
9
  * `bundledWith.@servicetitan/startup` is checked third, with the hope that the startup version
10
10
  * matches web-components
11
- */
12
- export function getMFESupportsRerendering(bundledWith, dependencies) {
13
- var _a, _b;
14
- return !!((_b = (_a = isSupportedVersion(bundledWith === null || bundledWith === void 0 ? void 0 : bundledWith['@servicetitan/web-components'])) !== null && _a !== void 0 ? _a : isSupportedVersion(dependencies === null || dependencies === void 0 ? void 0 : dependencies['@servicetitan/web-components'])) !== null && _b !== void 0 ? _b : isSupportedVersion(bundledWith === null || bundledWith === void 0 ? void 0 : bundledWith['@servicetitan/startup']));
11
+ */ export function getMFESupportsRerendering(bundledWith, dependencies) {
12
+ var _isSupportedVersion, _ref;
13
+ return !!((_ref = (_isSupportedVersion = isSupportedVersion(bundledWith === null || bundledWith === void 0 ? void 0 : bundledWith['@servicetitan/web-components'])) !== null && _isSupportedVersion !== void 0 ? _isSupportedVersion : isSupportedVersion(dependencies === null || dependencies === void 0 ? void 0 : dependencies['@servicetitan/web-components'])) !== null && _ref !== void 0 ? _ref : isSupportedVersion(bundledWith === null || bundledWith === void 0 ? void 0 : bundledWith['@servicetitan/startup']));
15
14
  }
16
15
  function isSupportedVersion(version) {
17
16
  const minVersion = version && semver.minVersion(version);
@@ -19,4 +18,5 @@ function isSupportedVersion(version) {
19
18
  return semver.gte(minVersion, '22.12.0');
20
19
  }
21
20
  }
21
+
22
22
  //# sourceMappingURL=get-mfe-supports-rerendering.js.map