@servicetitan/web-components 30.3.0 → 31.0.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 (76) hide show
  1. package/dist/__mocks__/test-component.d.ts.map +1 -1
  2. package/dist/common.js +17 -13
  3. package/dist/common.js.map +1 -1
  4. package/dist/contexts/index.js +1 -0
  5. package/dist/contexts/index.js.map +1 -1
  6. package/dist/contexts/mfe-data-context.js +2 -2
  7. package/dist/contexts/mfe-data-context.js.map +1 -1
  8. package/dist/contexts/mfe-metadata-context.js +1 -0
  9. package/dist/contexts/mfe-metadata-context.js.map +1 -1
  10. package/dist/delayed.js +8 -5
  11. package/dist/delayed.js.map +1 -1
  12. package/dist/event-bus.js +79 -96
  13. package/dist/event-bus.js.map +1 -1
  14. package/dist/get-value-for-environment.js +9 -4
  15. package/dist/get-value-for-environment.js.map +1 -1
  16. package/dist/globals.js +7 -7
  17. package/dist/globals.js.map +1 -1
  18. package/dist/history-manager.js +59 -69
  19. package/dist/history-manager.js.map +1 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/loader.js +92 -49
  23. package/dist/loader.js.map +1 -1
  24. package/dist/register.js +182 -218
  25. package/dist/register.js.map +1 -1
  26. package/dist/render.js +11 -12
  27. package/dist/render.js.map +1 -1
  28. package/dist/types.js +2 -1
  29. package/dist/types.js.map +1 -1
  30. package/dist/utils/get-bundle-info.js +18 -16
  31. package/dist/utils/get-bundle-info.js.map +1 -1
  32. package/dist/utils/get-element-name.js +1 -0
  33. package/dist/utils/get-element-name.js.map +1 -1
  34. package/dist/utils/get-entry-points.js +11 -4
  35. package/dist/utils/get-entry-points.js.map +1 -1
  36. package/dist/utils/get-ld-service-token.js +3 -3
  37. package/dist/utils/get-ld-service-token.js.map +1 -1
  38. package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js +4 -4
  39. package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js.map +1 -1
  40. package/dist/utils/get-mfe-has-unique-chunk-namespace.js +1 -0
  41. package/dist/utils/get-mfe-has-unique-chunk-namespace.js.map +1 -1
  42. package/dist/utils/get-mfe-supports-rerendering.js +4 -4
  43. package/dist/utils/get-mfe-supports-rerendering.js.map +1 -1
  44. package/dist/utils/get-version-mismatches.js +18 -11
  45. package/dist/utils/get-version-mismatches.js.map +1 -1
  46. package/dist/utils/index.js +1 -0
  47. package/dist/utils/index.js.map +1 -1
  48. package/dist/utils/is-compatible.js +1 -0
  49. package/dist/utils/is-compatible.js.map +1 -1
  50. package/dist/utils/is-versioned-url.js +2 -1
  51. package/dist/utils/is-versioned-url.js.map +1 -1
  52. package/dist/utils/load-scripts.js +7 -6
  53. package/dist/utils/load-scripts.js.map +1 -1
  54. package/dist/utils/ttl-cache.js +26 -27
  55. package/dist/utils/ttl-cache.js.map +1 -1
  56. package/dist/utils/validate-bundle-info.js +13 -10
  57. package/dist/utils/validate-bundle-info.js.map +1 -1
  58. package/dist/utils/web-component.js +46 -22
  59. package/dist/utils/web-component.js.map +1 -1
  60. package/package.json +11 -11
  61. package/src/__mocks__/test-component.tsx +2 -0
  62. package/src/__tests__/event-bus.test.ts +1 -0
  63. package/src/__tests__/loader.test.tsx +3 -3
  64. package/src/event-bus.ts +1 -0
  65. package/dist/__mocks__/expect-styles-in-dom.js +0 -9
  66. package/dist/__mocks__/expect-styles-in-dom.js.map +0 -1
  67. package/dist/__mocks__/index.js +0 -4
  68. package/dist/__mocks__/index.js.map +0 -1
  69. package/dist/__mocks__/register-component.js +0 -14
  70. package/dist/__mocks__/register-component.js.map +0 -1
  71. package/dist/__mocks__/test-component.js +0 -15
  72. package/dist/__mocks__/test-component.js.map +0 -1
  73. package/dist/contexts/tests/mfe-data-context.test.js +0 -24
  74. package/dist/contexts/tests/mfe-data-context.test.js.map +0 -1
  75. package/dist/contexts/tests/mfe-metadata-context.test.js +0 -26
  76. package/dist/contexts/tests/mfe-metadata-context.test.js.map +0 -1
@@ -1,85 +1,75 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _ts_decorate(decorators, target, key, desc) {
2
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
16
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
18
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
19
+ }
7
20
  import { injectable } from '@servicetitan/react-ioc';
8
- let HistoryManager = class HistoryManager {
9
- constructor() {
21
+ export class HistoryManager {
22
+ constructor(){
10
23
  // Initiator of action, used for filtering redirections
11
- Object.defineProperty(this, "occupied", {
12
- enumerable: true,
13
- configurable: true,
14
- writable: true,
15
- value: void 0
16
- });
17
- Object.defineProperty(this, "storage", {
18
- enumerable: true,
19
- configurable: true,
20
- writable: true,
21
- value: new Map()
22
- });
23
- Object.defineProperty(this, "register", {
24
- enumerable: true,
25
- configurable: true,
26
- writable: true,
27
- value: (addable) => {
28
- this.storage.set(addable, addable.listen(location => {
29
- const path = addable.createHref(location);
30
- const state = location.state;
31
- if (!this.occupied) {
32
- this.occupied = { history: addable, location };
33
- }
34
- else if (this.occupied.history === addable) {
35
- this.occupied.location = location;
24
+ _define_property(this, "occupied", void 0);
25
+ _define_property(this, "storage", new Map());
26
+ _define_property(this, "register", (addable)=>{
27
+ this.storage.set(addable, addable.listen((location)=>{
28
+ const path = addable.createHref(location);
29
+ const state = location.state;
30
+ if (!this.occupied) {
31
+ this.occupied = {
32
+ history: addable,
33
+ location
34
+ };
35
+ } else if (this.occupied.history === addable) {
36
+ this.occupied.location = location;
37
+ }
38
+ for (const history of this.storage.keys()){
39
+ if (history === addable) {
40
+ continue;
36
41
  }
37
- for (const history of this.storage.keys()) {
38
- if (history === addable) {
39
- continue;
40
- }
41
- if (history.createHref(history.location) === path &&
42
- history.location.state === state) {
43
- continue;
44
- }
45
- // Allow redirects only to the deeper pages
46
- const unblock = history.block(location => {
47
- if (this.occupied &&
48
- !history
49
- .createHref(location)
50
- .startsWith(this.occupied.history.createHref(this.occupied.location))) {
51
- return false;
52
- }
53
- });
54
- history.replace(path, state);
55
- unblock();
42
+ if (history.createHref(history.location) === path && history.location.state === state) {
43
+ continue;
56
44
  }
57
- // Wait for all updates, including redirections
58
- setTimeout(() => {
59
- var _a, _b;
60
- if (((_a = this.occupied) === null || _a === void 0 ? void 0 : _a.history) === addable &&
61
- ((_b = this.occupied) === null || _b === void 0 ? void 0 : _b.location) === location) {
62
- this.occupied = undefined;
45
+ // Allow redirects only to the deeper pages
46
+ const unblock = history.block((location)=>{
47
+ if (this.occupied && !history.createHref(location).startsWith(this.occupied.history.createHref(this.occupied.location))) {
48
+ return false;
63
49
  }
64
50
  });
65
- }));
66
- }
67
- });
68
- Object.defineProperty(this, "unregister", {
69
- enumerable: true,
70
- configurable: true,
71
- writable: true,
72
- value: (removable) => {
73
- if (this.storage.has(removable)) {
74
- this.storage.get(removable)();
75
- this.storage.delete(removable);
51
+ history.replace(path, state);
52
+ unblock();
76
53
  }
54
+ // Wait for all updates, including redirections
55
+ setTimeout(()=>{
56
+ var _this_occupied, _this_occupied1;
57
+ if (((_this_occupied = this.occupied) === null || _this_occupied === void 0 ? void 0 : _this_occupied.history) === addable && ((_this_occupied1 = this.occupied) === null || _this_occupied1 === void 0 ? void 0 : _this_occupied1.location) === location) {
58
+ this.occupied = undefined;
59
+ }
60
+ });
61
+ }));
62
+ });
63
+ _define_property(this, "unregister", (removable)=>{
64
+ if (this.storage.has(removable)) {
65
+ this.storage.get(removable)();
66
+ this.storage.delete(removable);
77
67
  }
78
68
  });
79
69
  }
80
- };
81
- HistoryManager = __decorate([
70
+ }
71
+ HistoryManager = _ts_decorate([
82
72
  injectable()
83
73
  ], HistoryManager);
84
- export { HistoryManager };
74
+
85
75
  //# sourceMappingURL=history-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"history-manager.js","sourceRoot":"","sources":["../src/history-manager.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG9C,IAAM,cAAc,GAApB,MAAM,cAAc;IAApB;QACH,uDAAuD;QACvD;;;;;WAAoD;QAEpD;;;;mBAAU,IAAI,GAAG,EAA+B;WAAC;QAEjD;;;;mBAAW,CAAC,OAAgB,EAAE,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CACZ,OAAO,EACP,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACtB,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAE7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACnD,CAAC;yBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;wBAC3C,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACtC,CAAC;oBAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;wBACxC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;4BACtB,SAAS;wBACb,CAAC;wBAED,IACI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI;4BAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,EAClC,CAAC;4BACC,SAAS;wBACb,CAAC;wBAED,2CAA2C;wBAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;4BACrC,IACI,IAAI,CAAC,QAAQ;gCACb,CAAC,OAAO;qCACH,UAAU,CAAC,QAAQ,CAAC;qCACpB,UAAU,CACP,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC3D,EACP,CAAC;gCACC,OAAO,KAAK,CAAC;4BACjB,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAE7B,OAAO,EAAE,CAAC;oBACd,CAAC;oBAED,+CAA+C;oBAC/C,UAAU,CAAC,GAAG,EAAE;;wBACZ,IACI,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,MAAK,OAAO;4BAClC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,QAAQ,MAAK,QAAQ,EACtC,CAAC;4BACC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;wBAC9B,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CACL,CAAC;YACN,CAAC;WAAC;QAEF;;;;mBAAa,CAAC,SAAkB,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC;YACL,CAAC;WAAC;IACN,CAAC;CAAA,CAAA;AArEY,cAAc;IAD1B,UAAU,EAAE;GACA,cAAc,CAqE1B"}
1
+ {"version":3,"sources":["../src/history-manager.ts"],"sourcesContent":["import { History, Location, UnregisterCallback } from 'history';\n\nimport { injectable } from '@servicetitan/react-ioc';\n\n@injectable()\nexport class HistoryManager {\n // Initiator of action, used for filtering redirections\n occupied?: { history: History; location: Location };\n\n storage = new Map<History, UnregisterCallback>();\n\n register = (addable: History) => {\n this.storage.set(\n addable,\n addable.listen(location => {\n const path = addable.createHref(location);\n const state = location.state;\n\n if (!this.occupied) {\n this.occupied = { history: addable, location };\n } else if (this.occupied.history === addable) {\n this.occupied.location = location;\n }\n\n for (const history of this.storage.keys()) {\n if (history === addable) {\n continue;\n }\n\n if (\n history.createHref(history.location) === path &&\n history.location.state === state\n ) {\n continue;\n }\n\n // Allow redirects only to the deeper pages\n const unblock = history.block(location => {\n if (\n this.occupied &&\n !history\n .createHref(location)\n .startsWith(\n this.occupied.history.createHref(this.occupied.location)\n )\n ) {\n return false;\n }\n });\n\n history.replace(path, state);\n\n unblock();\n }\n\n // Wait for all updates, including redirections\n setTimeout(() => {\n if (\n this.occupied?.history === addable &&\n this.occupied?.location === location\n ) {\n this.occupied = undefined;\n }\n });\n })\n );\n };\n\n unregister = (removable: History) => {\n if (this.storage.has(removable)) {\n this.storage.get(removable)!();\n this.storage.delete(removable);\n }\n };\n}\n"],"names":["injectable","HistoryManager","occupied","storage","Map","register","addable","set","listen","location","path","createHref","state","history","keys","unblock","block","startsWith","replace","setTimeout","undefined","unregister","removable","has","get","delete"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,SAASA,UAAU,QAAQ,0BAA0B;AAGrD,OAAO,MAAMC;;QACT,uDAAuD;QACvDC,uBAAAA,YAAAA,KAAAA;QAEAC,uBAAAA,WAAU,IAAIC;QAEdC,uBAAAA,YAAW,CAACC;YACR,IAAI,CAACH,OAAO,CAACI,GAAG,CACZD,SACAA,QAAQE,MAAM,CAACC,CAAAA;gBACX,MAAMC,OAAOJ,QAAQK,UAAU,CAACF;gBAChC,MAAMG,QAAQH,SAASG,KAAK;gBAE5B,IAAI,CAAC,IAAI,CAACV,QAAQ,EAAE;oBAChB,IAAI,CAACA,QAAQ,GAAG;wBAAEW,SAASP;wBAASG;oBAAS;gBACjD,OAAO,IAAI,IAAI,CAACP,QAAQ,CAACW,OAAO,KAAKP,SAAS;oBAC1C,IAAI,CAACJ,QAAQ,CAACO,QAAQ,GAAGA;gBAC7B;gBAEA,KAAK,MAAMI,WAAW,IAAI,CAACV,OAAO,CAACW,IAAI,GAAI;oBACvC,IAAID,YAAYP,SAAS;wBACrB;oBACJ;oBAEA,IACIO,QAAQF,UAAU,CAACE,QAAQJ,QAAQ,MAAMC,QACzCG,QAAQJ,QAAQ,CAACG,KAAK,KAAKA,OAC7B;wBACE;oBACJ;oBAEA,2CAA2C;oBAC3C,MAAMG,UAAUF,QAAQG,KAAK,CAACP,CAAAA;wBAC1B,IACI,IAAI,CAACP,QAAQ,IACb,CAACW,QACIF,UAAU,CAACF,UACXQ,UAAU,CACP,IAAI,CAACf,QAAQ,CAACW,OAAO,CAACF,UAAU,CAAC,IAAI,CAACT,QAAQ,CAACO,QAAQ,IAEjE;4BACE,OAAO;wBACX;oBACJ;oBAEAI,QAAQK,OAAO,CAACR,MAAME;oBAEtBG;gBACJ;gBAEA,+CAA+C;gBAC/CI,WAAW;wBAEH,gBACA;oBAFJ,IACI,EAAA,iBAAA,IAAI,CAACjB,QAAQ,cAAb,qCAAA,eAAeW,OAAO,MAAKP,WAC3B,EAAA,kBAAA,IAAI,CAACJ,QAAQ,cAAb,sCAAA,gBAAeO,QAAQ,MAAKA,UAC9B;wBACE,IAAI,CAACP,QAAQ,GAAGkB;oBACpB;gBACJ;YACJ;QAER;QAEAC,uBAAAA,cAAa,CAACC;YACV,IAAI,IAAI,CAACnB,OAAO,CAACoB,GAAG,CAACD,YAAY;gBAC7B,IAAI,CAACnB,OAAO,CAACqB,GAAG,CAACF;gBACjB,IAAI,CAACnB,OAAO,CAACsB,MAAM,CAACH;YACxB;QACJ;;AACJ"}
package/dist/index.js CHANGED
@@ -5,4 +5,5 @@ export * from './get-value-for-environment';
5
5
  export * from './history-manager';
6
6
  export * from './loader';
7
7
  export * from './register';
8
+
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './common';\nexport * from './contexts';\nexport * from './event-bus';\nexport * from './get-value-for-environment';\nexport * from './history-manager';\nexport * from './loader';\nexport * from './register';\n\nexport type { JSON, JSONPrimitive, Serializable } from './types';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,oBAAoB;AAClC,cAAc,WAAW;AACzB,cAAc,aAAa"}
package/dist/loader.js CHANGED
@@ -1,44 +1,56 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Suspense, forwardRef, lazy, useEffect, useImperativeHandle, useMemo, useRef, } from 'react';
2
+ import { Suspense, forwardRef, lazy, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
3
3
  import { ErrorBoundary } from '@servicetitan/error-boundary';
4
4
  import { Log } from '@servicetitan/log-service';
5
5
  import { useOptionalDependencies } from '@servicetitan/react-ioc';
6
- import { EXPOSED_DEPENDENCIES_TOKEN, EXPOSED_INSTANCE_DEPENDENCIES_TOKEN, useCancelation, } from './common';
6
+ import { EXPOSED_DEPENDENCIES_TOKEN, EXPOSED_INSTANCE_DEPENDENCIES_TOKEN, useCancelation } from './common';
7
7
  import { Delayed } from './delayed';
8
8
  import { EventBus, EVENT_BUS_TOKEN } from './event-bus';
9
9
  import { EXPOSED_DEPENDENCIES, EXPOSED_INSTANCE_DEPENDENCIES } from './globals';
10
- import { TtlCache, getBundleInfo, getLDServiceToken, validateBundleInfo, loadScripts, webComponent, } from './utils';
11
- export const Loader = forwardRef((props, ref) => {
12
- var _a, _b;
10
+ import { TtlCache, getBundleInfo, getLDServiceToken, validateBundleInfo, loadScripts, webComponent } from './utils';
11
+ export const Loader = /*#__PURE__*/ forwardRef((props, ref)=>{
13
12
  const { cache = true, basename, fallbackSrc, onRequestError, retries, src } = props;
14
13
  const { loadingFallback, loadingFallbackDelayed = true } = props;
15
14
  const bus = useEventBus();
16
15
  const [logService, exposedDependencies = EXPOSED_DEPENDENCIES, eventBus = bus] = useOptionalDependencies(Log, EXPOSED_DEPENDENCIES_TOKEN, EVENT_BUS_TOKEN);
17
16
  let [exposedInstanceDependencies = EXPOSED_INSTANCE_DEPENDENCIES] = useOptionalDependencies(EXPOSED_INSTANCE_DEPENDENCIES_TOKEN);
18
- const [ldService] = useOptionalDependencies((_a = getLDServiceToken()) !== null && _a !== void 0 ? _a : Symbol());
17
+ var _getLDServiceToken;
18
+ const [ldService] = useOptionalDependencies((_getLDServiceToken = getLDServiceToken()) !== null && _getLDServiceToken !== void 0 ? _getLDServiceToken : Symbol());
19
19
  const cancelation = useCancelation();
20
- const LoadingFallback = useMemo(() => {
20
+ const LoadingFallback = useMemo(()=>{
21
21
  const message = `Loading${isLocalHost(src) ? ` ${src}` : ''}...`;
22
- return getFallback(loadingFallback, message, { delayed: loadingFallbackDelayed });
23
- }, [loadingFallback, loadingFallbackDelayed, src]);
24
- const ErrorFallback = useMemo(() => {
22
+ return getFallback(loadingFallback, message, {
23
+ delayed: loadingFallbackDelayed
24
+ });
25
+ }, [
26
+ loadingFallback,
27
+ loadingFallbackDelayed,
28
+ src
29
+ ]);
30
+ const ErrorFallback = useMemo(()=>{
25
31
  const message = `Something went wrong${isLocalHost(src) ? ` loading ${src}` : ''}`;
26
32
  return getFallback(props.errorFallback, message);
27
- }, [props.errorFallback, src]);
28
- exposedInstanceDependencies = useMemo(() => ensureLDService(exposedInstanceDependencies, ldService), [exposedInstanceDependencies, ldService]);
29
- const Loader = useMemo(() => lazyLoader({
30
- basename,
31
- cache,
32
- cancelation,
33
- exposedDependencies,
33
+ }, [
34
+ props.errorFallback,
35
+ src
36
+ ]);
37
+ exposedInstanceDependencies = useMemo(()=>ensureLDService(exposedInstanceDependencies, ldService), [
34
38
  exposedInstanceDependencies,
35
- eventBus,
36
- fallbackSrc,
37
- logService,
38
- onRequestError,
39
- retries,
40
- src,
41
- }), [
39
+ ldService
40
+ ]);
41
+ const Loader = useMemo(()=>lazyLoader({
42
+ basename,
43
+ cache,
44
+ cancelation,
45
+ exposedDependencies,
46
+ exposedInstanceDependencies,
47
+ eventBus,
48
+ fallbackSrc,
49
+ logService,
50
+ onRequestError,
51
+ retries,
52
+ src
53
+ }), [
42
54
  basename,
43
55
  cache,
44
56
  cancelation,
@@ -49,28 +61,46 @@ export const Loader = forwardRef((props, ref) => {
49
61
  onRequestError,
50
62
  fallbackSrc,
51
63
  retries,
52
- src,
64
+ src
65
+ ]);
66
+ useImperativeHandle(ref, ()=>eventBus, [
67
+ eventBus
53
68
  ]);
54
- useImperativeHandle(ref, () => eventBus, [eventBus]);
55
- return (_jsx(ErrorBoundary, { moduleName: src, fallback: ErrorFallback, children: _jsx(Suspense, { fallback: _jsx(LoadingFallback, {}), children: _jsx(Loader, { data: (_b = props.data) !== null && _b !== void 0 ? _b : {}, className: props.className, LoadingFallback: LoadingFallback }) }) }));
69
+ var _props_data;
70
+ return /*#__PURE__*/ _jsx(ErrorBoundary, {
71
+ moduleName: src,
72
+ fallback: ErrorFallback,
73
+ children: /*#__PURE__*/ _jsx(Suspense, {
74
+ fallback: /*#__PURE__*/ _jsx(LoadingFallback, {}),
75
+ children: /*#__PURE__*/ _jsx(Loader, {
76
+ data: (_props_data = props.data) !== null && _props_data !== void 0 ? _props_data : {},
77
+ className: props.className,
78
+ LoadingFallback: LoadingFallback
79
+ })
80
+ })
81
+ });
56
82
  });
57
83
  function lazyLoader(props) {
58
84
  const { cancelation } = props;
59
85
  const LazyWebComponent = lazyWebComponent(props);
60
- return (props) => {
61
- useEffect(() => {
62
- return () => {
86
+ return (props)=>{
87
+ useEffect(()=>{
88
+ return ()=>{
63
89
  cancelation.abort();
64
90
  };
65
91
  }, []);
66
- return (_jsx(LazyWebComponent, { data: props.data, className: props.className, LoadingFallback: props.LoadingFallback }));
92
+ return /*#__PURE__*/ _jsx(LazyWebComponent, {
93
+ data: props.data,
94
+ className: props.className,
95
+ LoadingFallback: props.LoadingFallback
96
+ });
67
97
  };
68
98
  }
69
99
  function lazyWebComponent(props) {
70
- const { basename, cancelation, exposedDependencies, exposedInstanceDependencies, eventBus, fallbackSrc, logService, onRequestError, retries, src, } = props;
100
+ const { basename, cancelation, exposedDependencies, exposedInstanceDependencies, eventBus, fallbackSrc, logService, onRequestError, retries, src } = props;
71
101
  let { cache } = props;
72
- return lazy(async () => {
73
- var _a;
102
+ return /*#__PURE__*/ lazy(async ()=>{
103
+ var _exposedInstanceDependencies_launchDarkly;
74
104
  let bundleInfo = cache ? bundleCache.get(src) : undefined;
75
105
  if (!bundleInfo) {
76
106
  try {
@@ -81,13 +111,12 @@ function lazyWebComponent(props) {
81
111
  exposedInstanceDependencies,
82
112
  signal: cancelation.signal,
83
113
  retries,
84
- onRequestError,
114
+ onRequestError
85
115
  });
86
- }
87
- catch (e) {
116
+ } catch (e) {
88
117
  if (cancelation.signal.aborted) {
89
118
  return {
90
- default: () => null,
119
+ default: ()=>null
91
120
  };
92
121
  }
93
122
  throw e;
@@ -102,13 +131,11 @@ function lazyWebComponent(props) {
102
131
  exposedDependencies,
103
132
  exposedInstanceDependencies,
104
133
  logService,
105
- packageUrl: src,
134
+ packageUrl: src
106
135
  });
107
136
  }
108
137
  await loadScripts(bundleInfo);
109
- const ldService = bundleInfo.mfeHasCompatibleLaunchDarklyVersion
110
- ? (_a = exposedInstanceDependencies === null || exposedInstanceDependencies === void 0 ? void 0 : exposedInstanceDependencies.launchDarkly) === null || _a === void 0 ? void 0 : _a.ldService
111
- : undefined;
138
+ const ldService = bundleInfo.mfeHasCompatibleLaunchDarklyVersion ? exposedInstanceDependencies === null || exposedInstanceDependencies === void 0 ? void 0 : (_exposedInstanceDependencies_launchDarkly = exposedInstanceDependencies.launchDarkly) === null || _exposedInstanceDependencies_launchDarkly === void 0 ? void 0 : _exposedInstanceDependencies_launchDarkly.ldService : undefined;
112
139
  return {
113
140
  default: webComponent({
114
141
  basename,
@@ -117,22 +144,35 @@ function lazyWebComponent(props) {
117
144
  exposedDependencies,
118
145
  exposedInstanceDependencies,
119
146
  ldService,
120
- logService,
121
- }),
147
+ logService
148
+ })
122
149
  };
123
150
  });
124
151
  }
125
152
  function getFallback(node, message, { delayed = false } = {}) {
126
- const fallbackNode = node !== undefined ? node : _jsx("h2", { children: message });
127
- return delayed ? () => _jsx(Delayed, { children: fallbackNode }) : () => fallbackNode;
153
+ const fallbackNode = node !== undefined ? node : /*#__PURE__*/ _jsx("h2", {
154
+ children: message
155
+ });
156
+ return delayed ? ()=>/*#__PURE__*/ _jsx(Delayed, {
157
+ children: fallbackNode
158
+ }) : ()=>fallbackNode;
128
159
  }
129
160
  function isLocalHost(source) {
130
- return ['localhost', '127.0.0.1'].some(host => source.indexOf(host) >= 0);
161
+ return [
162
+ 'localhost',
163
+ '127.0.0.1'
164
+ ].some((host)=>source.indexOf(host) >= 0);
131
165
  }
132
166
  function ensureLDService(exposedInstanceDependencies, ldService) {
133
167
  const launchDarkly = exposedInstanceDependencies === null || exposedInstanceDependencies === void 0 ? void 0 : exposedInstanceDependencies.launchDarkly;
134
168
  if ((launchDarkly === null || launchDarkly === void 0 ? void 0 : launchDarkly.version) && !launchDarkly.ldService && ldService) {
135
- return { ...exposedInstanceDependencies, launchDarkly: { ...launchDarkly, ldService } };
169
+ return {
170
+ ...exposedInstanceDependencies,
171
+ launchDarkly: {
172
+ ...launchDarkly,
173
+ ldService
174
+ }
175
+ };
136
176
  }
137
177
  return exposedInstanceDependencies;
138
178
  }
@@ -140,5 +180,8 @@ function useEventBus() {
140
180
  return useRef(new EventBus()).current;
141
181
  }
142
182
  const MINUTE = 1000 * 60;
143
- const bundleCache = new TtlCache({ ttlMs: 15 * MINUTE });
183
+ const bundleCache = new TtlCache({
184
+ ttlMs: 15 * MINUTE
185
+ });
186
+
144
187
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/loader.tsx"],"sourcesContent":["import {\n ReactElement,\n ReactNode,\n Suspense,\n forwardRef,\n lazy,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\nimport { ErrorBoundary } from '@servicetitan/error-boundary';\nimport { type LDService } from '@servicetitan/launchdarkly-service';\nimport { Log } from '@servicetitan/log-service';\nimport { useOptionalDependencies } from '@servicetitan/react-ioc';\n\nimport {\n EXPOSED_DEPENDENCIES_TOKEN,\n EXPOSED_INSTANCE_DEPENDENCIES_TOKEN,\n ExposedDependencies,\n ExposedInstanceDependencies,\n GetJsonError,\n useCancelation,\n} from './common';\nimport { MFEContextData } from './contexts/mfe-data-context';\nimport { Delayed } from './delayed';\nimport { EventBus, EVENT_BUS_TOKEN } from './event-bus';\nimport { EXPOSED_DEPENDENCIES, EXPOSED_INSTANCE_DEPENDENCIES } from './globals';\nimport {\n BundleInfo,\n TtlCache,\n getBundleInfo,\n getLDServiceToken,\n validateBundleInfo,\n loadScripts,\n webComponent,\n} from './utils';\n\nexport type LoaderRef = EventBus;\n\nexport type FallbackNode = NonNullable<ReactNode> | null;\n\nexport interface LoaderProps<T> {\n src: string;\n fallbackSrc?: string;\n /** Values in the object will be stringified and then parsed before being delivered to the MFE via props or context. */\n data?: MFEContextData<T>;\n basename?: string;\n loadingFallback?: FallbackNode;\n loadingFallbackDelayed?: boolean;\n errorFallback?: FallbackNode;\n className?: string;\n retries?: number;\n cache?: boolean | number;\n onRequestError?(error: GetJsonError): boolean;\n}\n\nexport type LoaderDataProps = Pick<LoaderProps<{}>, 'data' | 'className'> & {\n LoadingFallback: () => JSX.Element;\n};\n\nexport const Loader = forwardRef<LoaderRef, LoaderProps<{}>>((props, ref) => {\n const { cache = true, basename, fallbackSrc, onRequestError, retries, src } = props;\n const { loadingFallback, loadingFallbackDelayed = true } = props;\n\n const bus = useEventBus();\n const [logService, exposedDependencies = EXPOSED_DEPENDENCIES, eventBus = bus] =\n useOptionalDependencies(Log, EXPOSED_DEPENDENCIES_TOKEN, EVENT_BUS_TOKEN);\n let [exposedInstanceDependencies = EXPOSED_INSTANCE_DEPENDENCIES] = useOptionalDependencies(\n EXPOSED_INSTANCE_DEPENDENCIES_TOKEN\n );\n const [ldService] = useOptionalDependencies(getLDServiceToken() ?? Symbol());\n const cancelation = useCancelation();\n\n const LoadingFallback = useMemo(() => {\n const message = `Loading${isLocalHost(src) ? ` ${src}` : ''}...`;\n return getFallback(loadingFallback, message, { delayed: loadingFallbackDelayed });\n }, [loadingFallback, loadingFallbackDelayed, src]);\n\n const ErrorFallback = useMemo(() => {\n const message = `Something went wrong${isLocalHost(src) ? ` loading ${src}` : ''}`;\n return getFallback(props.errorFallback, message);\n }, [props.errorFallback, src]);\n\n exposedInstanceDependencies = useMemo(\n () => ensureLDService(exposedInstanceDependencies, ldService),\n [exposedInstanceDependencies, ldService]\n );\n\n const Loader = useMemo(\n () =>\n lazyLoader({\n basename,\n cache,\n cancelation,\n exposedDependencies,\n exposedInstanceDependencies,\n eventBus,\n fallbackSrc,\n logService,\n onRequestError,\n retries,\n src,\n }),\n [\n basename,\n cache,\n cancelation,\n exposedDependencies,\n exposedInstanceDependencies,\n eventBus,\n logService,\n onRequestError,\n fallbackSrc,\n retries,\n src,\n ]\n );\n\n useImperativeHandle(ref, () => eventBus, [eventBus]);\n\n return (\n <ErrorBoundary moduleName={src} fallback={ErrorFallback}>\n <Suspense fallback={<LoadingFallback />}>\n <Loader\n data={props.data ?? {}}\n className={props.className}\n LoadingFallback={LoadingFallback}\n />\n </Suspense>\n </ErrorBoundary>\n );\n});\n\ntype LazyLoaderProps = LoaderProps<any> & {\n cancelation: AbortController;\n exposedDependencies?: ExposedDependencies;\n exposedInstanceDependencies?: ExposedInstanceDependencies;\n eventBus: EventBus;\n logService?: Log;\n};\n\nfunction lazyLoader(props: LazyLoaderProps) {\n const { cancelation } = props;\n\n const LazyWebComponent = lazyWebComponent(props);\n\n return (props: LoaderDataProps) => {\n useEffect(() => {\n return () => {\n cancelation.abort();\n };\n }, []);\n\n return (\n <LazyWebComponent\n data={props.data}\n className={props.className}\n LoadingFallback={props.LoadingFallback}\n />\n );\n };\n}\n\nfunction lazyWebComponent(props: LazyLoaderProps) {\n const {\n basename,\n cancelation,\n exposedDependencies,\n exposedInstanceDependencies,\n eventBus,\n fallbackSrc,\n logService,\n onRequestError,\n retries,\n src,\n } = props;\n\n let { cache } = props;\n\n return lazy<(_: LoaderDataProps) => JSX.Element | null>(async () => {\n let bundleInfo: BundleInfo | undefined = cache ? bundleCache.get(src) : undefined;\n if (!bundleInfo) {\n try {\n bundleInfo = await getBundleInfo({\n mainPackageUrl: src,\n fallbackPackageUrl: fallbackSrc,\n exposedDependencies,\n exposedInstanceDependencies,\n signal: cancelation.signal,\n retries,\n onRequestError,\n });\n } catch (e) {\n if (cancelation.signal.aborted) {\n return {\n default: () => null,\n };\n }\n\n throw e;\n }\n\n if (cache === true && !bundleInfo.mfeHasUniqueChunkNamespace) {\n cache = -1;\n }\n\n if (cache) {\n bundleCache.set(src, bundleInfo, typeof cache === 'number' ? cache : undefined);\n }\n\n validateBundleInfo(bundleInfo, {\n exposedDependencies,\n exposedInstanceDependencies,\n logService,\n packageUrl: src,\n });\n }\n\n await loadScripts(bundleInfo);\n\n const ldService = bundleInfo.mfeHasCompatibleLaunchDarklyVersion\n ? exposedInstanceDependencies?.launchDarkly?.ldService\n : undefined;\n\n return {\n default: webComponent({\n basename,\n bundleInfo,\n eventBus,\n exposedDependencies,\n exposedInstanceDependencies,\n ldService,\n logService,\n }),\n };\n });\n}\n\nfunction getFallback(\n node: FallbackNode | undefined,\n message: string,\n { delayed = false }: { delayed?: boolean } = {}\n) {\n const fallbackNode = node !== undefined ? (node as ReactElement) : <h2>{message}</h2>;\n return delayed ? () => <Delayed>{fallbackNode}</Delayed> : () => fallbackNode;\n}\n\nfunction isLocalHost(source: string) {\n return ['localhost', '127.0.0.1'].some(host => source.indexOf(host) >= 0);\n}\n\nfunction ensureLDService(\n exposedInstanceDependencies?: ExposedInstanceDependencies,\n ldService?: LDService\n) {\n const launchDarkly = exposedInstanceDependencies?.launchDarkly;\n if (launchDarkly?.version && !launchDarkly.ldService && ldService) {\n return { ...exposedInstanceDependencies, launchDarkly: { ...launchDarkly, ldService } };\n }\n return exposedInstanceDependencies;\n}\n\nfunction useEventBus() {\n return useRef(new EventBus()).current;\n}\n\nconst MINUTE = 1000 * 60;\nconst bundleCache = new TtlCache<BundleInfo>({ ttlMs: 15 * MINUTE });\n"],"names":["Suspense","forwardRef","lazy","useEffect","useImperativeHandle","useMemo","useRef","ErrorBoundary","Log","useOptionalDependencies","EXPOSED_DEPENDENCIES_TOKEN","EXPOSED_INSTANCE_DEPENDENCIES_TOKEN","useCancelation","Delayed","EventBus","EVENT_BUS_TOKEN","EXPOSED_DEPENDENCIES","EXPOSED_INSTANCE_DEPENDENCIES","TtlCache","getBundleInfo","getLDServiceToken","validateBundleInfo","loadScripts","webComponent","Loader","props","ref","cache","basename","fallbackSrc","onRequestError","retries","src","loadingFallback","loadingFallbackDelayed","bus","useEventBus","logService","exposedDependencies","eventBus","exposedInstanceDependencies","ldService","Symbol","cancelation","LoadingFallback","message","isLocalHost","getFallback","delayed","ErrorFallback","errorFallback","ensureLDService","lazyLoader","moduleName","fallback","data","className","LazyWebComponent","lazyWebComponent","abort","bundleInfo","bundleCache","get","undefined","mainPackageUrl","fallbackPackageUrl","signal","e","aborted","default","mfeHasUniqueChunkNamespace","set","packageUrl","mfeHasCompatibleLaunchDarklyVersion","launchDarkly","node","fallbackNode","h2","source","some","host","indexOf","version","current","MINUTE","ttlMs"],"mappings":"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"}