@servicetitan/web-components 17.5.4 → 19.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.
- package/dist/common.d.ts +7 -8
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +2 -41
- package/dist/common.js.map +1 -1
- package/dist/event-bus.d.ts +18 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +76 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/globals.d.ts +10 -0
- package/dist/globals.d.ts.map +1 -0
- package/dist/globals.js +20 -0
- package/dist/globals.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +1 -7
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +15 -9
- package/dist/loader.js.map +1 -1
- package/dist/register.d.ts +0 -3
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +24 -3
- package/dist/register.js.map +1 -1
- package/package.json +8 -8
- package/src/common.ts +13 -24
- package/src/event-bus.ts +52 -0
- package/src/globals.ts +25 -0
- package/src/index.ts +1 -0
- package/src/loader.tsx +25 -16
- package/src/register.tsx +32 -21
- package/dist/optional-value-provider.d.ts +0 -9
- package/dist/optional-value-provider.d.ts.map +0 -1
- package/dist/optional-value-provider.js +0 -13
- package/dist/optional-value-provider.js.map +0 -1
- package/src/optional-value-provider.tsx +0 -19
package/dist/common.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { Log } from '@servicetitan/log-service';
|
|
2
|
+
import { EventBus } from './event-bus';
|
|
2
3
|
import { HistoryManager } from './history-manager';
|
|
4
|
+
export declare type ExposedDependencies = Record<string, {
|
|
5
|
+
version: string;
|
|
6
|
+
variable: string;
|
|
7
|
+
}>;
|
|
3
8
|
export declare const BASENAME_TOKEN: import("@servicetitan/react-ioc").SymbolToken<string>;
|
|
9
|
+
export declare const EXPOSED_DEPENDENCIES_TOKEN: import("@servicetitan/react-ioc").SymbolToken<ExposedDependencies>;
|
|
4
10
|
export declare const IS_WEB_COMPONENT_TOKEN: import("@servicetitan/react-ioc").SymbolToken<boolean>;
|
|
5
11
|
export declare const RENDER_ROOT_TOKEN: import("@servicetitan/react-ioc").SymbolToken<ShadowRoot>;
|
|
6
12
|
export interface Entries {
|
|
7
13
|
logService?: Log;
|
|
8
14
|
historyManager?: HistoryManager;
|
|
15
|
+
exposedDependencies?: ExposedDependencies;
|
|
9
16
|
eventBus?: EventBus;
|
|
10
17
|
basename?: string;
|
|
11
18
|
onReady: () => void;
|
|
@@ -24,13 +31,5 @@ export declare function getJson<T = any>(url: string, { retries, retryDelay, ...
|
|
|
24
31
|
headers: Headers;
|
|
25
32
|
}>;
|
|
26
33
|
export declare function useCancelation(): AbortController;
|
|
27
|
-
export declare type EventHandler = () => void;
|
|
28
|
-
export declare class EventBus {
|
|
29
|
-
private emitter;
|
|
30
|
-
on: (type: string, handler: EventHandler) => void;
|
|
31
|
-
off: (type: string, handler: EventHandler) => void;
|
|
32
|
-
emit: (type: string) => void;
|
|
33
|
-
}
|
|
34
|
-
export declare function useEventBus(): EventBus;
|
|
35
34
|
export {};
|
|
36
35
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,oBAAY,mBAAmB,GAAG,MAAM,CACpC,MAAM,EACN;IACI,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB,CACJ,CAAC;AAEF,eAAO,MAAM,cAAc,uDAAwC,CAAC;AACpE,eAAO,MAAM,0BAA0B,oEAEtC,CAAC;AACF,eAAO,MAAM,sBAAsB,wDAAiD,CAAC;AACrF,eAAO,MAAM,iBAAiB,2DAA+C,CAAC;AAE9E,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAkCvE;AAED,UAAU,cAAe,SAAQ,WAAW;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,OAAW,EAAE,UAAiB,EAAE,GAAG,MAAM,EAAE,GAAE,cAAmB,GACnE,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAmCxC;AAED,wBAAgB,cAAc,oBAE7B"}
|
package/dist/common.js
CHANGED
|
@@ -23,12 +23,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.useCancelation = exports.getJson = exports.isCompatible = exports.RENDER_ROOT_TOKEN = exports.IS_WEB_COMPONENT_TOKEN = exports.EXPOSED_DEPENDENCIES_TOKEN = exports.BASENAME_TOKEN = void 0;
|
|
27
27
|
const semver_1 = __importDefault(require("semver"));
|
|
28
|
-
const mitt_1 = __importDefault(require("mitt"));
|
|
29
28
|
const react_1 = require("react");
|
|
30
29
|
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
31
30
|
exports.BASENAME_TOKEN = (0, react_ioc_1.symbolToken)('BASENAME_TOKEN');
|
|
31
|
+
exports.EXPOSED_DEPENDENCIES_TOKEN = (0, react_ioc_1.symbolToken)('EXPOSED_DEPENDENCIES_TOKEN');
|
|
32
32
|
exports.IS_WEB_COMPONENT_TOKEN = (0, react_ioc_1.symbolToken)('IS_WEB_COMPONENT_TOKEN');
|
|
33
33
|
exports.RENDER_ROOT_TOKEN = (0, react_ioc_1.symbolToken)('RENDER_ROOT_TOKEN');
|
|
34
34
|
function isCompatible(hostVersion, packageVersion) {
|
|
@@ -95,43 +95,4 @@ function useCancelation() {
|
|
|
95
95
|
return (0, react_1.useRef)(new AbortController()).current;
|
|
96
96
|
}
|
|
97
97
|
exports.useCancelation = useCancelation;
|
|
98
|
-
class EventBus {
|
|
99
|
-
constructor() {
|
|
100
|
-
Object.defineProperty(this, "emitter", {
|
|
101
|
-
enumerable: true,
|
|
102
|
-
configurable: true,
|
|
103
|
-
writable: true,
|
|
104
|
-
value: (0, mitt_1.default)()
|
|
105
|
-
});
|
|
106
|
-
Object.defineProperty(this, "on", {
|
|
107
|
-
enumerable: true,
|
|
108
|
-
configurable: true,
|
|
109
|
-
writable: true,
|
|
110
|
-
value: (type, handler) => {
|
|
111
|
-
this.emitter.on(type, handler);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
Object.defineProperty(this, "off", {
|
|
115
|
-
enumerable: true,
|
|
116
|
-
configurable: true,
|
|
117
|
-
writable: true,
|
|
118
|
-
value: (type, handler) => {
|
|
119
|
-
this.emitter.off(type, handler);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
Object.defineProperty(this, "emit", {
|
|
123
|
-
enumerable: true,
|
|
124
|
-
configurable: true,
|
|
125
|
-
writable: true,
|
|
126
|
-
value: (type) => {
|
|
127
|
-
this.emitter.emit(type);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
exports.EventBus = EventBus;
|
|
133
|
-
function useEventBus() {
|
|
134
|
-
return (0, react_1.useRef)(new EventBus()).current;
|
|
135
|
-
}
|
|
136
|
-
exports.useEventBus = useEventBus;
|
|
137
98
|
//# sourceMappingURL=common.js.map
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare type EventHandler = () => void;
|
|
2
|
+
export declare type JobEventHandler = (defer: {
|
|
3
|
+
resolve(): void;
|
|
4
|
+
reject(reason?: string | Error): void;
|
|
5
|
+
}) => void;
|
|
6
|
+
export declare class EventBus {
|
|
7
|
+
job: {
|
|
8
|
+
on: (type: string, handler: JobEventHandler) => void;
|
|
9
|
+
off: (type: string, handler: JobEventHandler) => void;
|
|
10
|
+
emit: (type: string) => Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
private emitter;
|
|
13
|
+
on: (type: string, handler: EventHandler) => void;
|
|
14
|
+
off: (type: string, handler: EventHandler) => void;
|
|
15
|
+
emit: (type: string) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function useEventBus(): EventBus;
|
|
18
|
+
//# sourceMappingURL=event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"AAIA,oBAAY,YAAY,GAAG,MAAM,IAAI,CAAC;AACtC,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE;IAClC,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;CACzC,KAAK,IAAI,CAAC;AAEX,qBAAa,QAAQ;IACjB,GAAG;mBACY,MAAM,WAAW,eAAe;oBAG/B,MAAM,WAAW,eAAe;qBAG/B,MAAM;MAcrB;IAEF,OAAO,CAAC,OAAO,CAAe;IAE9B,EAAE,SAAU,MAAM,WAAW,YAAY,UAEvC;IAEF,GAAG,SAAU,MAAM,WAAW,YAAY,UAExC;IAEF,IAAI,SAAU,MAAM,UAElB;CACL;AAED,wBAAgB,WAAW,aAE1B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useEventBus = exports.EventBus = void 0;
|
|
7
|
+
const mitt_1 = __importDefault(require("mitt"));
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
class EventBus {
|
|
10
|
+
constructor() {
|
|
11
|
+
Object.defineProperty(this, "job", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: {
|
|
16
|
+
on: (type, handler) => {
|
|
17
|
+
this.emitter.on(type, handler);
|
|
18
|
+
},
|
|
19
|
+
off: (type, handler) => {
|
|
20
|
+
this.emitter.off(type, handler);
|
|
21
|
+
},
|
|
22
|
+
emit: (type) => {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
this.emitter.emit(type, {
|
|
25
|
+
resolve: () => resolve(),
|
|
26
|
+
reject: (reason) => {
|
|
27
|
+
if (typeof reason === 'string' || reason instanceof Error) {
|
|
28
|
+
reject(reason);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
reject();
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, "emitter", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: (0, mitt_1.default)()
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(this, "on", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
writable: true,
|
|
49
|
+
value: (type, handler) => {
|
|
50
|
+
this.emitter.on(type, handler);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(this, "off", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true,
|
|
56
|
+
writable: true,
|
|
57
|
+
value: (type, handler) => {
|
|
58
|
+
this.emitter.off(type, handler);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(this, "emit", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
configurable: true,
|
|
64
|
+
writable: true,
|
|
65
|
+
value: (type) => {
|
|
66
|
+
this.emitter.emit(type);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.EventBus = EventBus;
|
|
72
|
+
function useEventBus() {
|
|
73
|
+
return (0, react_1.useRef)(new EventBus()).current;
|
|
74
|
+
}
|
|
75
|
+
exports.useEventBus = useEventBus;
|
|
76
|
+
//# sourceMappingURL=event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,iCAA+B;AAQ/B,MAAa,QAAQ;IAArB;QACI;;;;mBAAM;gBACF,EAAE,EAAE,CAAC,IAAY,EAAE,OAAwB,EAAE,EAAE;oBAC3C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnC,CAAC;gBACD,GAAG,EAAE,CAAC,IAAY,EAAE,OAAwB,EAAE,EAAE;oBAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE;oBACnB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;4BACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;4BACxB,MAAM,EAAE,CAAC,MAAuB,EAAE,EAAE;gCAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,KAAK,EAAE;oCACvD,MAAM,CAAC,MAAM,CAAC,CAAC;iCAClB;qCAAM;oCACH,MAAM,EAAE,CAAC;iCACZ;4BACL,CAAC;yBACJ,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC;aACJ;WAAC;QAEF;;;;mBAAkB,IAAA,cAAI,GAAO;WAAC;QAE9B;;;;mBAAK,CAAC,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;WAAC;QAEF;;;;mBAAM,CAAC,IAAY,EAAE,OAAqB,EAAE,EAAE;gBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpC,CAAC;WAAC;QAEF;;;;mBAAO,CAAC,IAAY,EAAE,EAAE;gBACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;WAAC;IACN,CAAC;CAAA;AArCD,4BAqCC;AAED,SAAgB,WAAW;IACvB,OAAO,IAAA,cAAM,EAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;AAC1C,CAAC;AAFD,kCAEC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ExposedDependencies } from './common';
|
|
2
|
+
declare global {
|
|
3
|
+
export const EXPOSED_DEPENDENCIES: ExposedDependencies | undefined;
|
|
4
|
+
export const WEB_COMPONENT_NAME: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
declare const _EXPOSED_DEPENDENCIES: ExposedDependencies | undefined;
|
|
7
|
+
export { _EXPOSED_DEPENDENCIES as EXPOSED_DEPENDENCIES };
|
|
8
|
+
declare const _WEB_COMPONENT_NAME: string | undefined;
|
|
9
|
+
export { _WEB_COMPONENT_NAME as WEB_COMPONENT_NAME };
|
|
10
|
+
//# sourceMappingURL=globals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,oBAAoB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACnE,MAAM,CAAC,MAAM,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACvD;AAUD,QAAA,MAAM,qBAAqB,iCAEzB,CAAC;AACH,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;AAEzD,QAAA,MAAM,mBAAmB,oBAEvB,CAAC;AACH,OAAO,EAAE,mBAAmB,IAAI,kBAAkB,EAAE,CAAC"}
|
package/dist/globals.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WEB_COMPONENT_NAME = exports.EXPOSED_DEPENDENCIES = void 0;
|
|
4
|
+
function get(fetch) {
|
|
5
|
+
try {
|
|
6
|
+
return fetch();
|
|
7
|
+
}
|
|
8
|
+
catch (_a) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const _EXPOSED_DEPENDENCIES = get(() => {
|
|
13
|
+
return EXPOSED_DEPENDENCIES;
|
|
14
|
+
});
|
|
15
|
+
exports.EXPOSED_DEPENDENCIES = _EXPOSED_DEPENDENCIES;
|
|
16
|
+
const _WEB_COMPONENT_NAME = get(() => {
|
|
17
|
+
return WEB_COMPONENT_NAME;
|
|
18
|
+
});
|
|
19
|
+
exports.WEB_COMPONENT_NAME = _WEB_COMPONENT_NAME;
|
|
20
|
+
//# sourceMappingURL=globals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":";;;AAQA,SAAS,GAAG,CAAI,KAAc;IAC1B,IAAI;QACA,OAAO,KAAK,EAAE,CAAC;KAClB;IAAC,WAAM;QACJ,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAED,MAAM,qBAAqB,GAAG,GAAG,CAAC,GAAG,EAAE;IACnC,OAAO,oBAAoB,CAAC;AAChC,CAAC,CAAC,CAAC;AAC+B,qDAAoB;AAEtD,MAAM,mBAAmB,GAAG,GAAG,CAAC,GAAG,EAAE;IACjC,OAAO,kBAAkB,CAAC;AAC9B,CAAC,CAAC,CAAC;AAC6B,iDAAkB"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./common"), exports);
|
|
14
|
+
__exportStar(require("./event-bus"), exports);
|
|
14
15
|
__exportStar(require("./history-manager"), exports);
|
|
15
16
|
__exportStar(require("./register"), exports);
|
|
16
17
|
__exportStar(require("./loader"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,oDAAkC;AAClC,6CAA2B;AAC3B,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,oDAAkC;AAClC,6CAA2B;AAC3B,2CAAyB"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { EventBus } from './
|
|
3
|
-
declare global {
|
|
4
|
-
export const EXPOSED_DEPENDENCIES: Record<string, {
|
|
5
|
-
version: string;
|
|
6
|
-
variable: string;
|
|
7
|
-
}>;
|
|
8
|
-
}
|
|
2
|
+
import { EventBus } from './event-bus';
|
|
9
3
|
export declare type LoaderRef = EventBus;
|
|
10
4
|
export interface LoaderProps {
|
|
11
5
|
src: string;
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EASH,SAAS,EACZ,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EASH,SAAS,EACZ,MAAM,OAAO,CAAC;AAkBf,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AAyEpD,oBAAY,SAAS,GAAG,QAAQ,CAAC;AAEjC,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM,kGAoKlB,CAAC"}
|
package/dist/loader.js
CHANGED
|
@@ -21,7 +21,9 @@ const error_boundary_1 = require("@servicetitan/error-boundary");
|
|
|
21
21
|
const log_service_1 = require("@servicetitan/log-service");
|
|
22
22
|
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
23
23
|
const common_1 = require("./common");
|
|
24
|
+
const event_bus_1 = require("./event-bus");
|
|
24
25
|
const history_manager_1 = require("./history-manager");
|
|
26
|
+
const globals_1 = require("./globals");
|
|
25
27
|
function omitPackageVersion(packageUrl) {
|
|
26
28
|
const chunks = packageUrl.split('@');
|
|
27
29
|
if (chunks.length > 2) {
|
|
@@ -29,7 +31,7 @@ function omitPackageVersion(packageUrl) {
|
|
|
29
31
|
}
|
|
30
32
|
return packageUrl;
|
|
31
33
|
}
|
|
32
|
-
function getBundleInfo(packageUrl, signal) {
|
|
34
|
+
function getBundleInfo(packageUrl, exposedDependencies = {}, signal) {
|
|
33
35
|
var _a;
|
|
34
36
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
37
|
const { data: { dependencies, version }, headers, } = yield (0, common_1.getJson)(`${packageUrl}/package.json`, { cache: 'no-store', signal });
|
|
@@ -37,7 +39,7 @@ function getBundleInfo(packageUrl, signal) {
|
|
|
37
39
|
? `${omitPackageVersion(packageUrl)}@${version}`
|
|
38
40
|
: packageUrl;
|
|
39
41
|
const { data: metadata } = yield (0, common_1.getJson)(`${exactPackageUrl}/dist/metadata.json`, { signal });
|
|
40
|
-
const mismatch = Object.entries(
|
|
42
|
+
const mismatch = Object.entries(exposedDependencies).reduce((result, [dependency, { version: hostVersion }]) => {
|
|
41
43
|
const packageVersion = dependencies[dependency];
|
|
42
44
|
if (packageVersion && !(0, common_1.isCompatible)(hostVersion, packageVersion)) {
|
|
43
45
|
result[dependency] = { host: hostVersion, package: packageVersion };
|
|
@@ -46,10 +48,10 @@ function getBundleInfo(packageUrl, signal) {
|
|
|
46
48
|
}, {});
|
|
47
49
|
for (const [dependency, variable] of Object.entries(metadata.sharedDependencies)) {
|
|
48
50
|
const packageVersion = dependencies[dependency];
|
|
49
|
-
if (!
|
|
51
|
+
if (!exposedDependencies[dependency]) {
|
|
50
52
|
mismatch[dependency] = { host: 'missing', package: packageVersion };
|
|
51
53
|
}
|
|
52
|
-
else if (
|
|
54
|
+
else if (exposedDependencies[dependency].variable !== variable) {
|
|
53
55
|
mismatch[dependency] = { host: 'wrong global variable', package: packageVersion };
|
|
54
56
|
}
|
|
55
57
|
}
|
|
@@ -74,7 +76,7 @@ function getBundleInfo(packageUrl, signal) {
|
|
|
74
76
|
}
|
|
75
77
|
exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFallback, errorFallback, className }, ref) => {
|
|
76
78
|
const [isLoading, setIsLoading] = (0, react_1.useState)(true);
|
|
77
|
-
const [logService, historyManager] = (0, react_ioc_1.useOptionalDependencies)(log_service_1.Log, history_manager_1.HistoryManager);
|
|
79
|
+
const [logService, historyManager, exposedDependencies = globals_1.EXPOSED_DEPENDENCIES] = (0, react_ioc_1.useOptionalDependencies)(log_service_1.Log, history_manager_1.HistoryManager, common_1.EXPOSED_DEPENDENCIES_TOKEN);
|
|
78
80
|
const dataAttrs = (0, react_1.useMemo)(() => Object.fromEntries(Object.entries(data).map(([key, value]) => [
|
|
79
81
|
'data-' + key.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()),
|
|
80
82
|
value,
|
|
@@ -83,7 +85,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
83
85
|
const Loader = (0, react_1.useMemo)(() => {
|
|
84
86
|
const Component = (0, react_1.forwardRef)((_0, ref) => {
|
|
85
87
|
const cancelation = (0, common_1.useCancelation)();
|
|
86
|
-
const eventBus = (0,
|
|
88
|
+
const eventBus = (0, event_bus_1.useEventBus)();
|
|
87
89
|
(0, react_1.useImperativeHandle)(ref, () => eventBus, [] // eslint-disable-line react-hooks/exhaustive-deps
|
|
88
90
|
);
|
|
89
91
|
(0, react_1.useEffect)(() => {
|
|
@@ -95,7 +97,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
95
97
|
const Lazy = (0, react_1.useMemo)(() => (0, react_1.lazy)(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
96
98
|
let bundleInfo;
|
|
97
99
|
try {
|
|
98
|
-
bundleInfo = yield getBundleInfo(src, cancelation.signal);
|
|
100
|
+
bundleInfo = yield getBundleInfo(src, exposedDependencies, cancelation.signal);
|
|
99
101
|
}
|
|
100
102
|
catch (e) {
|
|
101
103
|
if (cancelation.signal.aborted) {
|
|
@@ -110,7 +112,10 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
110
112
|
logService === null || logService === void 0 ? void 0 : logService.warning({
|
|
111
113
|
category: 'MicroFrontends.DependenciesMismatch',
|
|
112
114
|
message: 'Some of the package dependencies have incompatible versions.',
|
|
113
|
-
data: {
|
|
115
|
+
data: {
|
|
116
|
+
package: src,
|
|
117
|
+
dependencies: JSON.stringify(mismatch),
|
|
118
|
+
},
|
|
114
119
|
});
|
|
115
120
|
}
|
|
116
121
|
const script = Array.from(document.scripts).find(({ src }) => src === url);
|
|
@@ -140,6 +145,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
140
145
|
webComponent === null || webComponent === void 0 ? void 0 : webComponent.provide({
|
|
141
146
|
logService,
|
|
142
147
|
historyManager,
|
|
148
|
+
exposedDependencies,
|
|
143
149
|
eventBus,
|
|
144
150
|
basename,
|
|
145
151
|
onReady: () => {
|
|
@@ -158,7 +164,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
158
164
|
return (0, jsx_runtime_1.jsx)(Lazy, {}, void 0);
|
|
159
165
|
});
|
|
160
166
|
return Component;
|
|
161
|
-
}, [src, className, logService, historyManager, basename, dataAttrs]);
|
|
167
|
+
}, [src, className, logService, historyManager, exposedDependencies, basename, dataAttrs]);
|
|
162
168
|
const LoadingFallback = (0, react_1.useMemo)(() => () => {
|
|
163
169
|
if (loadingFallback !== undefined) {
|
|
164
170
|
return loadingFallback;
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAUe;AAEf,oDAA4B;AAE5B,4DAA6B;AAE7B,iEAA6D;AAC7D,2DAAgD;AAChD,uDAAkE;AAElE,qCAOkB;AAClB,uDAAmD;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"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"}
|
package/dist/register.d.ts
CHANGED
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAE,MAAM,OAAO,CAAC;AAkC1C,wBAAgB,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,QAyHhE"}
|
package/dist/register.js
CHANGED
|
@@ -6,9 +6,10 @@ const react_dom_1 = require("react-dom");
|
|
|
6
6
|
const log_service_1 = require("@servicetitan/log-service");
|
|
7
7
|
const design_system_1 = require("@servicetitan/design-system");
|
|
8
8
|
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
9
|
-
const optional_value_provider_1 = require("./optional-value-provider");
|
|
10
9
|
const common_1 = require("./common");
|
|
10
|
+
const event_bus_1 = require("./event-bus");
|
|
11
11
|
const history_manager_1 = require("./history-manager");
|
|
12
|
+
const globals_1 = require("./globals");
|
|
12
13
|
function createLink(url, onLoad) {
|
|
13
14
|
const element = document.createElement('link');
|
|
14
15
|
element.href = url;
|
|
@@ -65,6 +66,12 @@ function register(Component, light) {
|
|
|
65
66
|
writable: true,
|
|
66
67
|
value: void 0
|
|
67
68
|
});
|
|
69
|
+
Object.defineProperty(this, "exposedDependencies", {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
configurable: true,
|
|
72
|
+
writable: true,
|
|
73
|
+
value: void 0
|
|
74
|
+
});
|
|
68
75
|
Object.defineProperty(this, "eventBus", {
|
|
69
76
|
enumerable: true,
|
|
70
77
|
configurable: true,
|
|
@@ -134,7 +141,16 @@ function register(Component, light) {
|
|
|
134
141
|
(0, react_dom_1.render)((0, jsx_runtime_1.jsx)(react_ioc_1.Provider, Object.assign({ singletons: [
|
|
135
142
|
{ provide: common_1.IS_WEB_COMPONENT_TOKEN, useValue: true },
|
|
136
143
|
{ provide: common_1.RENDER_ROOT_TOKEN, useValue: this.root },
|
|
137
|
-
] }, { children: (0, jsx_runtime_1.jsx)(design_system_1.DefaultPortalContext.Provider, Object.assign({ value: this.portal }, { children: (0, jsx_runtime_1.jsx)(
|
|
144
|
+
] }, { children: (0, jsx_runtime_1.jsx)(design_system_1.DefaultPortalContext.Provider, Object.assign({ value: this.portal }, { children: (0, jsx_runtime_1.jsx)(design_system_1.TablePopupPropsContext.Provider, Object.assign({ value: props => (Object.assign(Object.assign({}, props), { appendTo: this.root })) }, { children: (0, jsx_runtime_1.jsx)(react_ioc_1.Provider, Object.assign({ singletons: [
|
|
145
|
+
{ provide: log_service_1.Log, useValue: this.logService },
|
|
146
|
+
{ provide: history_manager_1.HistoryManager, useValue: this.historyManager },
|
|
147
|
+
{
|
|
148
|
+
provide: common_1.EXPOSED_DEPENDENCIES_TOKEN,
|
|
149
|
+
useValue: this.exposedDependencies,
|
|
150
|
+
},
|
|
151
|
+
{ provide: event_bus_1.EventBus, useValue: this.eventBus },
|
|
152
|
+
{ provide: common_1.BASENAME_TOKEN, useValue: this.basename },
|
|
153
|
+
].filter(({ useValue }) => useValue !== undefined) }, { children: (0, jsx_runtime_1.jsx)(Component, Object.assign({}, this.dataset), void 0) }), void 0) }), void 0) }), void 0) }), void 0), this.root, this.onReady);
|
|
138
154
|
}
|
|
139
155
|
});
|
|
140
156
|
}
|
|
@@ -154,7 +170,12 @@ function register(Component, light) {
|
|
|
154
170
|
(_a = this.onDispose) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
155
171
|
}
|
|
156
172
|
}
|
|
157
|
-
|
|
173
|
+
if (!globals_1.WEB_COMPONENT_NAME) {
|
|
174
|
+
// eslint-disable-next-line no-console
|
|
175
|
+
console.error('"WEB_COMPONENT_NAME" is not defined!');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
window.customElements.define(globals_1.WEB_COMPONENT_NAME, WebComponent);
|
|
158
179
|
}
|
|
159
180
|
exports.register = register;
|
|
160
181
|
//# sourceMappingURL=register.js.map
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":";;;;AACA,yCAA2D;AAE3D,2DAAgD;AAChD,+
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/web-components",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
"src"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@servicetitan/error-boundary": "^
|
|
17
|
+
"@servicetitan/error-boundary": "^19.1.0",
|
|
18
18
|
"lodash.get": "~4.4.2",
|
|
19
19
|
"mitt": "~3.0.0",
|
|
20
20
|
"semver": "~7.3.5"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@servicetitan/design-system": "~10.
|
|
24
|
-
"@servicetitan/log-service": "^
|
|
25
|
-
"@servicetitan/react-ioc": "^
|
|
23
|
+
"@servicetitan/design-system": "~10.6.0",
|
|
24
|
+
"@servicetitan/log-service": "^19.1.0",
|
|
25
|
+
"@servicetitan/react-ioc": "^19.1.0",
|
|
26
26
|
"@types/history": "~4.7.9",
|
|
27
27
|
"@types/lodash.get": "~4.4.6",
|
|
28
|
-
"@types/react": "~17.0.
|
|
28
|
+
"@types/react": "~17.0.36",
|
|
29
29
|
"@types/react-dom": "~17.0.11",
|
|
30
30
|
"@types/semver": "~7.3.9",
|
|
31
31
|
"history": "~4.10.1",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"react-dom": "~17.0.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@servicetitan/design-system": "~10.
|
|
36
|
+
"@servicetitan/design-system": "~10.6.0",
|
|
37
37
|
"@servicetitan/log-service": "^17.0.0",
|
|
38
38
|
"@servicetitan/react-ioc": "^17.0.0",
|
|
39
39
|
"history": "~4.10.1",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"cli": {
|
|
47
47
|
"webpack": false
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "9e276cf0db28138e0c5fd29b6b38eecdae98769e"
|
|
50
50
|
}
|
package/src/common.ts
CHANGED
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
|
|
3
|
-
import mitt from 'mitt';
|
|
4
|
-
|
|
5
3
|
import { useRef } from 'react';
|
|
6
4
|
|
|
7
5
|
import { symbolToken } from '@servicetitan/react-ioc';
|
|
8
6
|
import { Log } from '@servicetitan/log-service';
|
|
9
7
|
|
|
8
|
+
import { EventBus } from './event-bus';
|
|
10
9
|
import { HistoryManager } from './history-manager';
|
|
11
10
|
|
|
11
|
+
export type ExposedDependencies = Record<
|
|
12
|
+
string,
|
|
13
|
+
{
|
|
14
|
+
version: string;
|
|
15
|
+
variable: string;
|
|
16
|
+
}
|
|
17
|
+
>;
|
|
18
|
+
|
|
12
19
|
export const BASENAME_TOKEN = symbolToken<string>('BASENAME_TOKEN');
|
|
20
|
+
export const EXPOSED_DEPENDENCIES_TOKEN = symbolToken<ExposedDependencies>(
|
|
21
|
+
'EXPOSED_DEPENDENCIES_TOKEN'
|
|
22
|
+
);
|
|
13
23
|
export const IS_WEB_COMPONENT_TOKEN = symbolToken<boolean>('IS_WEB_COMPONENT_TOKEN');
|
|
14
24
|
export const RENDER_ROOT_TOKEN = symbolToken<ShadowRoot>('RENDER_ROOT_TOKEN');
|
|
15
25
|
|
|
16
26
|
export interface Entries {
|
|
17
27
|
logService?: Log;
|
|
18
28
|
historyManager?: HistoryManager;
|
|
29
|
+
exposedDependencies?: ExposedDependencies;
|
|
19
30
|
eventBus?: EventBus;
|
|
20
31
|
basename?: string;
|
|
21
32
|
onReady: () => void;
|
|
@@ -110,25 +121,3 @@ export async function getJson<T = any>(
|
|
|
110
121
|
export function useCancelation() {
|
|
111
122
|
return useRef(new AbortController()).current;
|
|
112
123
|
}
|
|
113
|
-
|
|
114
|
-
export type EventHandler = () => void;
|
|
115
|
-
|
|
116
|
-
export class EventBus {
|
|
117
|
-
private emitter = mitt();
|
|
118
|
-
|
|
119
|
-
on = (type: string, handler: EventHandler) => {
|
|
120
|
-
this.emitter.on(type, handler);
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
off = (type: string, handler: EventHandler) => {
|
|
124
|
-
this.emitter.off(type, handler);
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
emit = (type: string) => {
|
|
128
|
-
this.emitter.emit(type);
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export function useEventBus() {
|
|
133
|
-
return useRef(new EventBus()).current;
|
|
134
|
-
}
|
package/src/event-bus.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import mitt from 'mitt';
|
|
2
|
+
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
|
|
5
|
+
export type EventHandler = () => void;
|
|
6
|
+
export type JobEventHandler = (defer: {
|
|
7
|
+
resolve(): void;
|
|
8
|
+
reject(reason?: string | Error): void;
|
|
9
|
+
}) => void;
|
|
10
|
+
|
|
11
|
+
export class EventBus {
|
|
12
|
+
job = {
|
|
13
|
+
on: (type: string, handler: JobEventHandler) => {
|
|
14
|
+
this.emitter.on(type, handler);
|
|
15
|
+
},
|
|
16
|
+
off: (type: string, handler: JobEventHandler) => {
|
|
17
|
+
this.emitter.off(type, handler);
|
|
18
|
+
},
|
|
19
|
+
emit: (type: string) => {
|
|
20
|
+
return new Promise<void>((resolve, reject) => {
|
|
21
|
+
this.emitter.emit(type, {
|
|
22
|
+
resolve: () => resolve(),
|
|
23
|
+
reject: (reason?: string | Error) => {
|
|
24
|
+
if (typeof reason === 'string' || reason instanceof Error) {
|
|
25
|
+
reject(reason);
|
|
26
|
+
} else {
|
|
27
|
+
reject();
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
private emitter = mitt<any>();
|
|
36
|
+
|
|
37
|
+
on = (type: string, handler: EventHandler) => {
|
|
38
|
+
this.emitter.on(type, handler);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
off = (type: string, handler: EventHandler) => {
|
|
42
|
+
this.emitter.off(type, handler);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
emit = (type: string) => {
|
|
46
|
+
this.emitter.emit(type);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function useEventBus() {
|
|
51
|
+
return useRef(new EventBus()).current;
|
|
52
|
+
}
|
package/src/globals.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import { ExposedDependencies } from './common';
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
export const EXPOSED_DEPENDENCIES: ExposedDependencies | undefined;
|
|
6
|
+
export const WEB_COMPONENT_NAME: string | undefined;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function get<T>(fetch: () => T) {
|
|
10
|
+
try {
|
|
11
|
+
return fetch();
|
|
12
|
+
} catch {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const _EXPOSED_DEPENDENCIES = get(() => {
|
|
18
|
+
return EXPOSED_DEPENDENCIES;
|
|
19
|
+
});
|
|
20
|
+
export { _EXPOSED_DEPENDENCIES as EXPOSED_DEPENDENCIES };
|
|
21
|
+
|
|
22
|
+
const _WEB_COMPONENT_NAME = get(() => {
|
|
23
|
+
return WEB_COMPONENT_NAME;
|
|
24
|
+
});
|
|
25
|
+
export { _WEB_COMPONENT_NAME as WEB_COMPONENT_NAME };
|
package/src/index.ts
CHANGED
package/src/loader.tsx
CHANGED
|
@@ -19,20 +19,16 @@ import { Log } from '@servicetitan/log-service';
|
|
|
19
19
|
import { useOptionalDependencies } from '@servicetitan/react-ioc';
|
|
20
20
|
|
|
21
21
|
import {
|
|
22
|
+
ExposedDependencies,
|
|
23
|
+
EXPOSED_DEPENDENCIES_TOKEN,
|
|
22
24
|
useCancelation,
|
|
23
|
-
EventBus,
|
|
24
|
-
useEventBus,
|
|
25
25
|
getJson,
|
|
26
26
|
isCompatible,
|
|
27
27
|
IWebComponent,
|
|
28
28
|
} from './common';
|
|
29
|
+
import { EventBus, useEventBus } from './event-bus';
|
|
29
30
|
import { HistoryManager } from './history-manager';
|
|
30
|
-
|
|
31
|
-
declare global {
|
|
32
|
-
export const EXPOSED_DEPENDENCIES: Record<string, { version: string; variable: string }>;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;
|
|
31
|
+
import { EXPOSED_DEPENDENCIES } from './globals';
|
|
36
32
|
|
|
37
33
|
function omitPackageVersion(packageUrl: string) {
|
|
38
34
|
const chunks = packageUrl.split('@');
|
|
@@ -44,7 +40,11 @@ function omitPackageVersion(packageUrl: string) {
|
|
|
44
40
|
return packageUrl;
|
|
45
41
|
}
|
|
46
42
|
|
|
47
|
-
async function getBundleInfo(
|
|
43
|
+
async function getBundleInfo(
|
|
44
|
+
packageUrl: string,
|
|
45
|
+
exposedDependencies: ExposedDependencies = {},
|
|
46
|
+
signal?: AbortSignal
|
|
47
|
+
) {
|
|
48
48
|
const {
|
|
49
49
|
data: { dependencies, version },
|
|
50
50
|
headers,
|
|
@@ -57,7 +57,7 @@ async function getBundleInfo(packageUrl: string, signal?: AbortSignal) {
|
|
|
57
57
|
|
|
58
58
|
const { data: metadata } = await getJson(`${exactPackageUrl}/dist/metadata.json`, { signal });
|
|
59
59
|
|
|
60
|
-
const mismatch = Object.entries(
|
|
60
|
+
const mismatch = Object.entries(exposedDependencies).reduce(
|
|
61
61
|
(result, [dependency, { version: hostVersion }]) => {
|
|
62
62
|
const packageVersion = dependencies[dependency];
|
|
63
63
|
|
|
@@ -73,9 +73,9 @@ async function getBundleInfo(packageUrl: string, signal?: AbortSignal) {
|
|
|
73
73
|
for (const [dependency, variable] of Object.entries(metadata.sharedDependencies)) {
|
|
74
74
|
const packageVersion = dependencies[dependency];
|
|
75
75
|
|
|
76
|
-
if (!
|
|
76
|
+
if (!exposedDependencies[dependency]) {
|
|
77
77
|
mismatch[dependency] = { host: 'missing', package: packageVersion };
|
|
78
|
-
} else if (
|
|
78
|
+
} else if (exposedDependencies[dependency].variable !== variable) {
|
|
79
79
|
mismatch[dependency] = { host: 'wrong global variable', package: packageVersion };
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -114,7 +114,8 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
114
114
|
({ src, data = {}, basename, loadingFallback, errorFallback, className }, ref) => {
|
|
115
115
|
const [isLoading, setIsLoading] = useState(true);
|
|
116
116
|
|
|
117
|
-
const [logService, historyManager
|
|
117
|
+
const [logService, historyManager, exposedDependencies = EXPOSED_DEPENDENCIES] =
|
|
118
|
+
useOptionalDependencies(Log, HistoryManager, EXPOSED_DEPENDENCIES_TOKEN);
|
|
118
119
|
|
|
119
120
|
const dataAttrs = useMemo(
|
|
120
121
|
() =>
|
|
@@ -151,7 +152,11 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
151
152
|
lazy<() => JSX.Element | null>(async () => {
|
|
152
153
|
let bundleInfo: Awaited<ReturnType<typeof getBundleInfo>>;
|
|
153
154
|
try {
|
|
154
|
-
bundleInfo = await getBundleInfo(
|
|
155
|
+
bundleInfo = await getBundleInfo(
|
|
156
|
+
src,
|
|
157
|
+
exposedDependencies,
|
|
158
|
+
cancelation.signal
|
|
159
|
+
);
|
|
155
160
|
} catch (e) {
|
|
156
161
|
if (cancelation.signal.aborted) {
|
|
157
162
|
return {
|
|
@@ -169,7 +174,10 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
169
174
|
category: 'MicroFrontends.DependenciesMismatch',
|
|
170
175
|
message:
|
|
171
176
|
'Some of the package dependencies have incompatible versions.',
|
|
172
|
-
data: {
|
|
177
|
+
data: {
|
|
178
|
+
package: src,
|
|
179
|
+
dependencies: JSON.stringify(mismatch),
|
|
180
|
+
},
|
|
173
181
|
});
|
|
174
182
|
}
|
|
175
183
|
|
|
@@ -204,6 +212,7 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
204
212
|
webComponent?.provide({
|
|
205
213
|
logService,
|
|
206
214
|
historyManager,
|
|
215
|
+
exposedDependencies,
|
|
207
216
|
eventBus,
|
|
208
217
|
basename,
|
|
209
218
|
onReady: () => {
|
|
@@ -232,7 +241,7 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
232
241
|
});
|
|
233
242
|
|
|
234
243
|
return Component;
|
|
235
|
-
}, [src, className, logService, historyManager, basename, dataAttrs]);
|
|
244
|
+
}, [src, className, logService, historyManager, exposedDependencies, basename, dataAttrs]);
|
|
236
245
|
|
|
237
246
|
const LoadingFallback = useMemo(
|
|
238
247
|
() => () => {
|
package/src/register.tsx
CHANGED
|
@@ -2,23 +2,21 @@ import { FC, ComponentType } from 'react';
|
|
|
2
2
|
import { render, unmountComponentAtNode } from 'react-dom';
|
|
3
3
|
|
|
4
4
|
import { Log } from '@servicetitan/log-service';
|
|
5
|
-
import { DefaultPortalContext } from '@servicetitan/design-system';
|
|
5
|
+
import { DefaultPortalContext, TablePopupPropsContext } from '@servicetitan/design-system';
|
|
6
6
|
import { Provider } from '@servicetitan/react-ioc';
|
|
7
7
|
|
|
8
|
-
import { OptionalValueProvider } from './optional-value-provider';
|
|
9
8
|
import {
|
|
9
|
+
ExposedDependencies,
|
|
10
|
+
EXPOSED_DEPENDENCIES_TOKEN,
|
|
10
11
|
Entries,
|
|
11
|
-
EventBus,
|
|
12
12
|
IWebComponent,
|
|
13
13
|
BASENAME_TOKEN,
|
|
14
14
|
IS_WEB_COMPONENT_TOKEN,
|
|
15
15
|
RENDER_ROOT_TOKEN,
|
|
16
16
|
} from './common';
|
|
17
|
+
import { EventBus } from './event-bus';
|
|
17
18
|
import { HistoryManager } from './history-manager';
|
|
18
|
-
|
|
19
|
-
declare global {
|
|
20
|
-
export const WEB_COMPONENT_NAME: string;
|
|
21
|
-
}
|
|
19
|
+
import { WEB_COMPONENT_NAME } from './globals';
|
|
22
20
|
|
|
23
21
|
function createLink(url: string, onLoad: () => void) {
|
|
24
22
|
const element = document.createElement('link');
|
|
@@ -58,6 +56,7 @@ export function register(Component: ComponentType, light: boolean) {
|
|
|
58
56
|
|
|
59
57
|
private logService?: Log;
|
|
60
58
|
private historyManager?: HistoryManager;
|
|
59
|
+
private exposedDependencies?: ExposedDependencies;
|
|
61
60
|
private eventBus?: EventBus;
|
|
62
61
|
private basename?: string;
|
|
63
62
|
private onReady?: () => void;
|
|
@@ -118,21 +117,27 @@ export function register(Component: ComponentType, light: boolean) {
|
|
|
118
117
|
]}
|
|
119
118
|
>
|
|
120
119
|
<DefaultPortalContext.Provider value={this.portal as unknown as HTMLElement}>
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
<TablePopupPropsContext.Provider
|
|
121
|
+
value={props => ({
|
|
122
|
+
...props,
|
|
123
|
+
appendTo: this.root as unknown as HTMLElement,
|
|
124
|
+
})}
|
|
125
|
+
>
|
|
126
|
+
<Provider
|
|
127
|
+
singletons={[
|
|
128
|
+
{ provide: Log, useValue: this.logService },
|
|
129
|
+
{ provide: HistoryManager, useValue: this.historyManager },
|
|
130
|
+
{
|
|
131
|
+
provide: EXPOSED_DEPENDENCIES_TOKEN,
|
|
132
|
+
useValue: this.exposedDependencies,
|
|
133
|
+
},
|
|
134
|
+
{ provide: EventBus, useValue: this.eventBus },
|
|
135
|
+
{ provide: BASENAME_TOKEN, useValue: this.basename },
|
|
136
|
+
].filter(({ useValue }) => useValue !== undefined)}
|
|
125
137
|
>
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
useValue={this.basename}
|
|
130
|
-
>
|
|
131
|
-
<Component {...this.dataset} />
|
|
132
|
-
</OptionalValueProvider>
|
|
133
|
-
</OptionalValueProvider>
|
|
134
|
-
</OptionalValueProvider>
|
|
135
|
-
</OptionalValueProvider>
|
|
138
|
+
<Component {...this.dataset} />
|
|
139
|
+
</Provider>
|
|
140
|
+
</TablePopupPropsContext.Provider>
|
|
136
141
|
</DefaultPortalContext.Provider>
|
|
137
142
|
</Provider>,
|
|
138
143
|
this.root,
|
|
@@ -141,5 +146,11 @@ export function register(Component: ComponentType, light: boolean) {
|
|
|
141
146
|
};
|
|
142
147
|
}
|
|
143
148
|
|
|
149
|
+
if (!WEB_COMPONENT_NAME) {
|
|
150
|
+
// eslint-disable-next-line no-console
|
|
151
|
+
console.error('"WEB_COMPONENT_NAME" is not defined!');
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
|
|
144
155
|
window.customElements.define(WEB_COMPONENT_NAME, WebComponent);
|
|
145
156
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { SymbolToken, interfaces } from '@servicetitan/react-ioc';
|
|
3
|
-
export interface OptionalValueProviderProps<T> {
|
|
4
|
-
provide: SymbolToken<T> | interfaces.Abstract<T>;
|
|
5
|
-
useValue: T | undefined;
|
|
6
|
-
children: JSX.Element;
|
|
7
|
-
}
|
|
8
|
-
export declare const OptionalValueProvider: <T extends unknown>({ provide, useValue, children, }: OptionalValueProviderProps<T>) => JSX.Element;
|
|
9
|
-
//# sourceMappingURL=optional-value-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optional-value-provider.d.ts","sourceRoot":"","sources":["../src/optional-value-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAY,MAAM,yBAAyB,CAAC;AAE5E,MAAM,WAAW,0BAA0B,CAAC,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjD,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,qBAAqB,qGAUjC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OptionalValueProvider = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
6
|
-
const OptionalValueProvider = ({ provide, useValue, children, }) => {
|
|
7
|
-
if (useValue) {
|
|
8
|
-
return (0, jsx_runtime_1.jsx)(react_ioc_1.Provider, Object.assign({ singletons: [{ provide, useValue }] }, { children: children }), void 0);
|
|
9
|
-
}
|
|
10
|
-
return children;
|
|
11
|
-
};
|
|
12
|
-
exports.OptionalValueProvider = OptionalValueProvider;
|
|
13
|
-
//# sourceMappingURL=optional-value-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optional-value-provider.js","sourceRoot":"","sources":["../src/optional-value-provider.tsx"],"names":[],"mappings":";;;;AAAA,uDAA4E;AAQrE,MAAM,qBAAqB,GAAG,CAAgB,EACjD,OAAO,EACP,QAAQ,EACR,QAAQ,GACoB,EAAE,EAAE;IAChC,IAAI,QAAQ,EAAE;QACV,OAAO,uBAAC,oBAAQ,kBAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,gBAAG,QAAQ,YAAY,CAAC;KAC/E;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAVW,QAAA,qBAAqB,yBAUhC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { SymbolToken, interfaces, Provider } from '@servicetitan/react-ioc';
|
|
2
|
-
|
|
3
|
-
export interface OptionalValueProviderProps<T> {
|
|
4
|
-
provide: SymbolToken<T> | interfaces.Abstract<T>;
|
|
5
|
-
useValue: T | undefined;
|
|
6
|
-
children: JSX.Element;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const OptionalValueProvider = <T extends any>({
|
|
10
|
-
provide,
|
|
11
|
-
useValue,
|
|
12
|
-
children,
|
|
13
|
-
}: OptionalValueProviderProps<T>) => {
|
|
14
|
-
if (useValue) {
|
|
15
|
-
return <Provider singletons={[{ provide, useValue }]}>{children}</Provider>;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return children;
|
|
19
|
-
};
|