@equinor/fusion-framework-module-widget 16.0.2 → 16.0.3
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/CHANGELOG.md +43 -0
- package/dist/esm/Widget.js +13 -2
- package/dist/esm/Widget.js.map +1 -1
- package/dist/esm/WidgetManifestLoadError.js +42 -0
- package/dist/esm/WidgetManifestLoadError.js.map +1 -0
- package/dist/esm/WidgetModuleConfigurator.js +2 -0
- package/dist/esm/WidgetModuleConfigurator.js.map +1 -1
- package/dist/esm/WidgetModuleProvider.js +12 -3
- package/dist/esm/WidgetModuleProvider.js.map +1 -1
- package/dist/esm/enable-widget-module.js +1 -1
- package/dist/esm/enable-widget-module.js.map +1 -1
- package/dist/esm/errors/WidgetConfigLoadError.js +40 -0
- package/dist/esm/errors/WidgetConfigLoadError.js.map +1 -0
- package/dist/esm/errors/WidgetScriptModuleError.js +17 -0
- package/dist/esm/errors/WidgetScriptModuleError.js.map +1 -0
- package/dist/esm/module.js +2 -0
- package/dist/esm/module.js.map +1 -1
- package/dist/esm/state/actions.js +1 -1
- package/dist/esm/state/actions.js.map +1 -1
- package/dist/esm/state/create-reducer.js +5 -1
- package/dist/esm/state/create-reducer.js.map +1 -1
- package/dist/esm/state/flows.js +32 -7
- package/dist/esm/state/flows.js.map +1 -1
- package/dist/esm/utils.js +6 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/Widget.d.ts +5 -1
- package/dist/types/WidgetManifestLoadError.d.ts +36 -0
- package/dist/types/WidgetModuleProvider.d.ts +2 -0
- package/dist/types/errors/WidgetConfigLoadError.d.ts +27 -0
- package/dist/types/errors/WidgetScriptModuleError.d.ts +13 -0
- package/dist/types/state/actions.d.ts +8 -8
- package/dist/types/state/create-reducer.d.ts +36 -36
- package/dist/types/version.d.ts +1 -1
- package/package.json +13 -13
- package/src/Widget.ts +13 -2
- package/src/WidgetManifestLoadError.ts +61 -0
- package/src/WidgetModuleConfigurator.ts +2 -0
- package/src/WidgetModuleProvider.ts +8 -1
- package/src/enable-widget-module.ts +1 -1
- package/src/errors/WidgetConfigLoadError.ts +51 -0
- package/src/errors/WidgetScriptModuleError.ts +20 -0
- package/src/module.ts +2 -0
- package/src/state/actions.ts +1 -1
- package/src/state/create-reducer.ts +3 -0
- package/src/state/flows.ts +47 -21
- package/src/types.ts +2 -2
- package/src/utils.ts +6 -1
- package/src/version.ts +1 -1
- package/dist/esm/errors.js +0 -93
- package/dist/esm/errors.js.map +0 -1
- package/dist/types/errors.d.ts +0 -73
- package/src/errors.ts +0 -125
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 16.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 80c3e4a: Internal: resolve `noExplicitAny` Biome warnings in `enableWidgetModule`, `WidgetState`/`Fusion` widening types, and the `setModule` action creator, using explanatory `biome-ignore` comments for load-bearing `any` defaults. No public API or behavior change.
|
|
8
|
+
- 80c3e4a: Internal: resolve fusion-lint warnings across the widget module.
|
|
9
|
+
- Added intent comments above control-flow (`if`/`switch`) blocks and RxJS `.pipe()` chains that were missing them.
|
|
10
|
+
- Added missing `@returns`/`@throws` TSDoc tags on the `Widget.state` getter and `WidgetModuleProvider`'s internal query methods.
|
|
11
|
+
- Split `WidgetConfigLoadError` and `WidgetScriptModuleError` out of `errors.ts` into their own files (re-exported from `errors.ts` to preserve the public `errors.js` subpath export), satisfying `single-export-per-file` while preserving existing TSDoc.
|
|
12
|
+
- Suppressed `single-export-per-file` for co-located helper consts (`module`, `defaultConfigEndpointBuilder`, `createDefaultClient`, `handleFetchConfig`, `handleImportWidget`) that aren't checked by `require-tsdoc`.
|
|
13
|
+
- Replaced the ad-hoc `Todo` comment in `utils.ts` with a reference to [#5099](https://github.com/equinor/fusion-framework/issues/5099).
|
|
14
|
+
|
|
15
|
+
No public API changes.
|
|
16
|
+
|
|
17
|
+
- 80c3e4a: Internal: add a required fusion-lint intent comment explaining an `as unknown as WidgetModuleProvider` cast in the module's `dispose` hook. No behavior change.
|
|
18
|
+
- 80c3e4a: Internal: renamed 45 source files across these packages to comply with the `filename-convention` lint rule (e.g. `AIConfigurator.ts` → `AiConfigurator.ts`, `BookmarkProvider.actions.ts` → `bookmark-actions.ts`, `errors/app-build-error.ts` → `errors/AppBuildError.ts`, `plugins/api/plugin.ts` → `plugins/api/ApiPlugin.ts`, `errors.ts` → `UnsupportedApiVersion.ts`, etc.). Also added `enable-signalr.ts` to the `filename-convention` exclude list since the suggested rename would incorrectly split the "SignalR" brand name. No public API changes.
|
|
19
|
+
- 80c3e4a: Internal: added missing intent comments ahead of non-obvious control flow, RxJS `.pipe()` chains, iterator calls, and multi-source object merges to comply with the `require-intent-comment` and `require-tsdoc` lint rules. Also removed dead duplicate files left over from an earlier refactor in `navigation` (`events.ts`, `navigated-event.ts`, `history.flows.ts` — all fully superseded by their split replacements) and renamed `bookmarks/schemas.ts` to `bookmarks/bookmark.schemas.ts` in `services` to match the `*.schemas.ts` filename convention. No public API changes.
|
|
20
|
+
- Updated dependencies [80c3e4a]
|
|
21
|
+
- Updated dependencies [80c3e4a]
|
|
22
|
+
- Updated dependencies [80c3e4a]
|
|
23
|
+
- Updated dependencies [80c3e4a]
|
|
24
|
+
- Updated dependencies [80c3e4a]
|
|
25
|
+
- Updated dependencies [80c3e4a]
|
|
26
|
+
- Updated dependencies [80c3e4a]
|
|
27
|
+
- Updated dependencies [80c3e4a]
|
|
28
|
+
- Updated dependencies [80c3e4a]
|
|
29
|
+
- Updated dependencies [80c3e4a]
|
|
30
|
+
- Updated dependencies [80c3e4a]
|
|
31
|
+
- Updated dependencies [80c3e4a]
|
|
32
|
+
- Updated dependencies [80c3e4a]
|
|
33
|
+
- Updated dependencies [80c3e4a]
|
|
34
|
+
- Updated dependencies [80c3e4a]
|
|
35
|
+
- Updated dependencies [80c3e4a]
|
|
36
|
+
- Updated dependencies [80c3e4a]
|
|
37
|
+
- Updated dependencies [80c3e4a]
|
|
38
|
+
- Updated dependencies [80c3e4a]
|
|
39
|
+
- @equinor/fusion-framework-module-event@6.0.1
|
|
40
|
+
- @equinor/fusion-framework-module-http@8.0.4
|
|
41
|
+
- @equinor/fusion-framework-module-service-discovery@10.0.2
|
|
42
|
+
- @equinor/fusion-framework-module@6.1.1
|
|
43
|
+
- @equinor/fusion-observable@9.1.1
|
|
44
|
+
- @equinor/fusion-query@7.0.2
|
|
45
|
+
|
|
3
46
|
## 16.0.2
|
|
4
47
|
|
|
5
48
|
### Patch Changes
|
package/dist/esm/Widget.js
CHANGED
|
@@ -30,7 +30,11 @@ export class Widget {
|
|
|
30
30
|
/** Optional version or tag parameters forwarded to manifest/config endpoints. */
|
|
31
31
|
widgetPrams;
|
|
32
32
|
#subscription = new Subscription();
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Current snapshot of the widget's internal state (manifest, config, modules, status).
|
|
35
|
+
*
|
|
36
|
+
* @returns The current {@link WidgetState}.
|
|
37
|
+
*/
|
|
34
38
|
get state() {
|
|
35
39
|
return this.#state.value;
|
|
36
40
|
}
|
|
@@ -128,8 +132,10 @@ export class Widget {
|
|
|
128
132
|
*/
|
|
129
133
|
getManifest(force_refresh = false) {
|
|
130
134
|
return new Observable((subscriber) => {
|
|
135
|
+
// Emit the cached manifest immediately if one is already available
|
|
131
136
|
if (this.#state.value.manifest) {
|
|
132
137
|
subscriber.next(this.#state.value.manifest);
|
|
138
|
+
// Skip the fetch below unless the caller explicitly asked to refresh
|
|
133
139
|
if (!force_refresh) {
|
|
134
140
|
return subscriber.complete();
|
|
135
141
|
}
|
|
@@ -162,8 +168,10 @@ export class Widget {
|
|
|
162
168
|
getConfig(force_refresh = false) {
|
|
163
169
|
return new Observable((subscriber) => {
|
|
164
170
|
const currentValue = this.#state.value;
|
|
171
|
+
// Emit the cached config immediately if the manifest and config are already available
|
|
165
172
|
if (currentValue.manifest && currentValue.config) {
|
|
166
173
|
subscriber.next(currentValue.config);
|
|
174
|
+
// Skip the fetch below unless the caller explicitly asked to refresh
|
|
167
175
|
if (!force_refresh) {
|
|
168
176
|
return subscriber.complete();
|
|
169
177
|
}
|
|
@@ -214,8 +222,10 @@ export class Widget {
|
|
|
214
222
|
*/
|
|
215
223
|
getWidgetModule(force_refresh = false) {
|
|
216
224
|
return new Observable((subscriber) => {
|
|
225
|
+
// Emit the cached script module immediately if one is already available
|
|
217
226
|
if (this.#state.value.modules) {
|
|
218
227
|
subscriber.next(this.#state.value.modules);
|
|
228
|
+
// Skip the import below unless the caller explicitly asked to refresh
|
|
219
229
|
if (!force_refresh) {
|
|
220
230
|
return subscriber.complete();
|
|
221
231
|
}
|
|
@@ -267,7 +277,8 @@ export class Widget {
|
|
|
267
277
|
},
|
|
268
278
|
}),
|
|
269
279
|
error: (err) => {
|
|
270
|
-
observer.error(err)
|
|
280
|
+
observer.error(err);
|
|
281
|
+
this.#state.next(actions.initialize.failure(err));
|
|
271
282
|
},
|
|
272
283
|
complete: () => {
|
|
273
284
|
this.#state.next(actions.initialize.success());
|
package/dist/esm/Widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../src/Widget.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAIlG,OAAO,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,MAAM;IACjB,MAAM,CAAoC;IAE1C,iFAAiF;IACjF,IAAI,CAAS;IAEb,yEAAyE;IACzE,MAAM,CAAsB;IAE5B,iFAAiF;IACjF,WAAW,CAA+B;IAE1C,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;IAEnC
|
|
1
|
+
{"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../src/Widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a widget manifest cannot be loaded from the backend API.
|
|
3
|
+
*
|
|
4
|
+
* Use the static {@link fromHttpResponse} factory to create instances from
|
|
5
|
+
* HTTP responses with appropriate type mapping.
|
|
6
|
+
*/
|
|
7
|
+
export class WidgetManifestLoadError extends Error {
|
|
8
|
+
type;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a `WidgetManifestLoadError` from an HTTP `Response`.
|
|
11
|
+
*
|
|
12
|
+
* Maps HTTP 401 to `'unauthorized'`, 404 to `'not_found'`, and all other
|
|
13
|
+
* status codes to `'unknown'`.
|
|
14
|
+
*
|
|
15
|
+
* @param response - The failing HTTP response.
|
|
16
|
+
* @param options - Standard `ErrorOptions` (e.g., `cause`).
|
|
17
|
+
* @returns A typed `WidgetManifestLoadError`.
|
|
18
|
+
*/
|
|
19
|
+
static fromHttpResponse(response, options) {
|
|
20
|
+
// Map known status codes to a specific error type, otherwise fall through to 'unknown'
|
|
21
|
+
switch (response.status) {
|
|
22
|
+
case 401:
|
|
23
|
+
return new WidgetManifestLoadError('unauthorized', 'failed to load widget manifest, request not authorized', options);
|
|
24
|
+
case 404:
|
|
25
|
+
return new WidgetManifestLoadError('not_found', 'widget manifest not found', options);
|
|
26
|
+
}
|
|
27
|
+
return new WidgetManifestLoadError('unknown', `failed to load widget manifest, status code ${response.status}`, options);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @param type - Error category discriminator.
|
|
31
|
+
* @param message - Human-readable error description.
|
|
32
|
+
* @param options - Standard `ErrorOptions` (e.g., `cause`).
|
|
33
|
+
*/
|
|
34
|
+
constructor(type, message, options) {
|
|
35
|
+
super(message, options);
|
|
36
|
+
this.type = type;
|
|
37
|
+
this.name = 'GetWidgetLoadManifestErrors';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export { WidgetConfigLoadError } from './errors/WidgetConfigLoadError.js';
|
|
41
|
+
export { WidgetScriptModuleError } from './errors/WidgetScriptModuleError.js';
|
|
42
|
+
//# sourceMappingURL=WidgetManifestLoadError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetManifestLoadError.js","sourceRoot":"","sources":["../../src/WidgetManifestLoadError.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAmC9B,IAAI;IAlCtB;;;;;;;;;OASG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAsB;QAChE,uFAAuF;QACvF,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,IAAI,uBAAuB,CAChC,cAAc,EACd,wDAAwD,EACxD,OAAO,CACR,CAAC;YACJ,KAAK,GAAG;gBACN,OAAO,IAAI,uBAAuB,CAAC,WAAW,EAAE,2BAA2B,EAAE,OAAO,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,uBAAuB,CAChC,SAAS,EACT,+CAA+C,QAAQ,CAAC,MAAM,EAAE,EAChE,OAAO,CACR,CAAC;IACJ,CAAC;IACD;;;;OAIG;IACH,YACkB,IAAqB,EACrC,OAAgB,EAChB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAJR,IAAI;QAKpB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -36,6 +36,7 @@ export class WidgetModuleConfigurator extends BaseConfigBuilder {
|
|
|
36
36
|
*/
|
|
37
37
|
async _createHttpClient(clientId, init) {
|
|
38
38
|
const http = await init.requireInstance('http');
|
|
39
|
+
// Reuse an already-registered client when one exists for this id
|
|
39
40
|
if (http.hasClient(clientId)) {
|
|
40
41
|
return http.createClient(clientId);
|
|
41
42
|
}
|
|
@@ -55,6 +56,7 @@ export class WidgetModuleConfigurator extends BaseConfigBuilder {
|
|
|
55
56
|
*/
|
|
56
57
|
async _processConfig(config, _init) {
|
|
57
58
|
const httpClient = await this._createHttpClient('apps', _init);
|
|
59
|
+
// Only fall back to the default client when the caller hasn't set one
|
|
58
60
|
if (!config.client) {
|
|
59
61
|
config.client = createDefaultClient(httpClient);
|
|
60
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetModuleConfigurator.js","sourceRoot":"","sources":["../../src/WidgetModuleConfigurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,kCAAkC,CAAC;AAEjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAwB9C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAyB,SAAQ,iBAAqC;IACjF,gEAAgE;IAChE,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAElC;;;;;OAKG;IACI,SAAS,CAAC,EAAkC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,IAA+B;QAC/E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACxE,OAAO,MAAM,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,cAAc,CAC5B,MAAmC,EACnC,KAAgC;QAEhC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE/D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAA4B,CAAC;IACtC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"WidgetModuleConfigurator.js","sourceRoot":"","sources":["../../src/WidgetModuleConfigurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,kCAAkC,CAAC;AAEjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAwB9C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAyB,SAAQ,iBAAqC;IACjF,gEAAgE;IAChE,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAElC;;;;;OAKG;IACI,SAAS,CAAC,EAAkC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,IAA+B;QAC/E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAEhD,iEAAiE;QACjE,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACxE,OAAO,MAAM,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,cAAc,CAC5B,MAAmC,EACnC,KAAgC;QAEhC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE/D,sEAAsE;QACtE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAA4B,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { catchError, Subscription } from 'rxjs';
|
|
2
2
|
import { HttpResponseError } from '@equinor/fusion-framework-module-http';
|
|
3
3
|
import { Query } from '@equinor/fusion-query';
|
|
4
|
-
import { WidgetManifestLoadError, WidgetConfigLoadError } from './
|
|
4
|
+
import { WidgetManifestLoadError, WidgetConfigLoadError } from './WidgetManifestLoadError';
|
|
5
5
|
import { Widget } from './Widget';
|
|
6
6
|
/**
|
|
7
7
|
* Concrete provider that manages widget instances and performs API queries
|
|
@@ -75,17 +75,22 @@ export class WidgetModuleProvider {
|
|
|
75
75
|
* @param widgetKey - Widget identifier.
|
|
76
76
|
* @param args - Optional version or tag selector.
|
|
77
77
|
* @returns Observable emitting the {@link WidgetConfig}.
|
|
78
|
+
* @throws {WidgetManifestLoadError} When the underlying query fails.
|
|
78
79
|
*/
|
|
79
80
|
_getWidgetConfig(widgetKey, args) {
|
|
80
81
|
const client = new Query(this.#config.client.getWidgetConfig);
|
|
81
82
|
this.#subscription.add(() => client.complete());
|
|
82
|
-
|
|
83
|
+
// Execute the query and handle errors
|
|
84
|
+
return Query.extractQueryValue(
|
|
85
|
+
// Map any query failure to a typed `WidgetManifestLoadError`
|
|
86
|
+
client.query({ widgetKey, args }).pipe(catchError((err) => {
|
|
83
87
|
// Extract the cause since the error will be a `QueryError`
|
|
84
88
|
const { cause } = err;
|
|
85
89
|
// Handle specific errors and throw a `GetWidgetManifestError` if applicable
|
|
86
90
|
if (cause instanceof WidgetManifestLoadError) {
|
|
87
91
|
throw cause;
|
|
88
92
|
}
|
|
93
|
+
// Map HTTP failures to a `WidgetManifestLoadError` carrying the response
|
|
89
94
|
if (cause instanceof HttpResponseError) {
|
|
90
95
|
throw WidgetManifestLoadError.fromHttpResponse(cause.response, {
|
|
91
96
|
cause,
|
|
@@ -104,19 +109,23 @@ export class WidgetModuleProvider {
|
|
|
104
109
|
* @param widgetKey - Widget identifier.
|
|
105
110
|
* @param args - Optional version or tag selector.
|
|
106
111
|
* @returns Observable emitting the {@link WidgetManifest}.
|
|
112
|
+
* @throws {WidgetConfigLoadError} When the underlying query fails.
|
|
107
113
|
*/
|
|
108
114
|
_getWidget(widgetKey, args) {
|
|
109
115
|
// Create a new query using the configured client
|
|
110
116
|
const client = new Query(this.#config.client.getWidgetManifest);
|
|
111
117
|
this.#subscription.add(() => client.complete());
|
|
112
118
|
// Execute the query and handle errors
|
|
113
|
-
return Query.extractQueryValue(
|
|
119
|
+
return Query.extractQueryValue(
|
|
120
|
+
// Map any query failure to a typed `WidgetConfigLoadError`
|
|
121
|
+
client.query({ widgetKey, args }).pipe(catchError((err) => {
|
|
114
122
|
// Extract the cause since the error will be a `QueryError`
|
|
115
123
|
const { cause } = err;
|
|
116
124
|
// Handle specific errors and throw a `GetWidgetConfigError` if applicable
|
|
117
125
|
if (cause instanceof WidgetConfigLoadError) {
|
|
118
126
|
throw cause;
|
|
119
127
|
}
|
|
128
|
+
// Map HTTP failures to a `WidgetConfigLoadError` carrying the response
|
|
120
129
|
if (cause instanceof HttpResponseError) {
|
|
121
130
|
throw WidgetConfigLoadError.fromHttpResponse(cause.response, { cause });
|
|
122
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetModuleProvider.js","sourceRoot":"","sources":["../../src/WidgetModuleProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,YAAY,EAAE,MAAM,MAAM,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WidgetModuleProvider.js","sourceRoot":"","sources":["../../src/WidgetModuleProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ import { module } from './module';
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
export const enableWidgetModule = (
|
|
21
|
-
//
|
|
21
|
+
// biome-ignore lint/suspicious/noExplicitAny: `IModulesConfigurator<any, any>` widens to accept a configurator for any concrete module set — `unknown` would break assignability of a real configurator instance to this parameter
|
|
22
22
|
configurator, builder) => {
|
|
23
23
|
configurator.addConfig({
|
|
24
24
|
module,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable-widget-module.js","sourceRoot":"","sources":["../../src/enable-widget-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;AAChC,
|
|
1
|
+
{"version":3,"file":"enable-widget-module.js","sourceRoot":"","sources":["../../src/enable-widget-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;AAChC,mOAAmO;AACnO,YAA4C,EAC5C,OAA2C,EACrC,EAAE;IACR,YAAY,CAAC,SAAS,CAAC;QACrB,MAAM;QACN,SAAS,EAAE,CAAC,kBAAkB,EAAE,EAAE;YAChC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a widget configuration cannot be loaded from the backend API.
|
|
3
|
+
*
|
|
4
|
+
* Use the static {@link fromHttpResponse} factory to create instances from
|
|
5
|
+
* HTTP responses with appropriate type mapping.
|
|
6
|
+
*/
|
|
7
|
+
export class WidgetConfigLoadError extends Error {
|
|
8
|
+
type;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a `WidgetConfigLoadError` from an HTTP `Response`.
|
|
11
|
+
*
|
|
12
|
+
* Maps HTTP 401 to `'unauthorized'`, 404 to `'not_found'`, and all other
|
|
13
|
+
* status codes to `'unknown'`.
|
|
14
|
+
*
|
|
15
|
+
* @param response - The failing HTTP response.
|
|
16
|
+
* @param options - Standard `ErrorOptions` (e.g., `cause`).
|
|
17
|
+
* @returns A typed `WidgetConfigLoadError`.
|
|
18
|
+
*/
|
|
19
|
+
static fromHttpResponse(response, options) {
|
|
20
|
+
// Map known status codes to a specific error type, otherwise fall through to 'unknown'
|
|
21
|
+
switch (response.status) {
|
|
22
|
+
case 401:
|
|
23
|
+
return new WidgetConfigLoadError('unauthorized', 'failed to load widget config, request not authorized', options);
|
|
24
|
+
case 404:
|
|
25
|
+
return new WidgetConfigLoadError('not_found', 'widget config not found', options);
|
|
26
|
+
}
|
|
27
|
+
return new WidgetConfigLoadError('unknown', `failed to load widget config, status code ${response.status}`, options);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @param type - Error category discriminator.
|
|
31
|
+
* @param message - Human-readable error description.
|
|
32
|
+
* @param options - Standard `ErrorOptions` (e.g., `cause`).
|
|
33
|
+
*/
|
|
34
|
+
constructor(type, message, options) {
|
|
35
|
+
super(message, options);
|
|
36
|
+
this.type = type;
|
|
37
|
+
this.name = 'GetWidgetLoadConfigError';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=WidgetConfigLoadError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetConfigLoadError.js","sourceRoot":"","sources":["../../../src/errors/WidgetConfigLoadError.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAmC5B,IAAI;IAlCtB;;;;;;;;;OASG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAsB;QAChE,uFAAuF;QACvF,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,IAAI,qBAAqB,CAC9B,cAAc,EACd,sDAAsD,EACtD,OAAO,CACR,CAAC;YACJ,KAAK,GAAG;gBACN,OAAO,IAAI,qBAAqB,CAAC,WAAW,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,qBAAqB,CAC9B,SAAS,EACT,6CAA6C,QAAQ,CAAC,MAAM,EAAE,EAC9D,OAAO,CACR,CAAC;IACJ,CAAC;IACD;;;;OAIG;IACH,YACkB,IAAqB,EACrC,OAAgB,EAChB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAJR,IAAI;QAKpB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a widget script module cannot be dynamically imported.
|
|
3
|
+
*/
|
|
4
|
+
export class WidgetScriptModuleError extends Error {
|
|
5
|
+
type;
|
|
6
|
+
/**
|
|
7
|
+
* @param type - Error category discriminator.
|
|
8
|
+
* @param message - Human-readable error description.
|
|
9
|
+
* @param options - Standard `ErrorOptions` (e.g., `cause`).
|
|
10
|
+
*/
|
|
11
|
+
constructor(type, message, options) {
|
|
12
|
+
super(message, options);
|
|
13
|
+
this.type = type;
|
|
14
|
+
this.name = 'WidgetScriptModuleError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=WidgetScriptModuleError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetScriptModuleError.js","sourceRoot":"","sources":["../../../src/errors/WidgetScriptModuleError.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAO9B,IAAI;IANtB;;;;OAIG;IACH,YACkB,IAAqB,EACrC,OAAgB,EAChB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAJR,IAAI;QAKpB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
|
package/dist/esm/module.js
CHANGED
|
@@ -25,6 +25,8 @@ export const module = {
|
|
|
25
25
|
return new WidgetModuleProvider({ config, event });
|
|
26
26
|
},
|
|
27
27
|
dispose: (args) => {
|
|
28
|
+
// `args.instance` is typed as the generic module instance, but the module descriptor
|
|
29
|
+
// guarantees it was created as a `WidgetModuleProvider` — safe to cast for disposal.
|
|
28
30
|
args.instance.dispose();
|
|
29
31
|
},
|
|
30
32
|
};
|
package/dist/esm/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAA8B,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE1F,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAclC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,IAAI,EAAE,SAAS;IACf,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAA8B,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE1F,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAclC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,IAAI,EAAE,SAAS;IACf,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,qFAAqF;QACrF,qFAAqF;QACpF,IAAI,CAAC,QAA4C,CAAC,OAAO,EAAE,CAAC;IAC/D,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -30,7 +30,7 @@ const createActions = () => ({
|
|
|
30
30
|
meta: { update },
|
|
31
31
|
}), (config) => ({ payload: config }), (error) => ({ payload: error })),
|
|
32
32
|
/** Sets the dynamically imported widget script module in state. */
|
|
33
|
-
//
|
|
33
|
+
// biome-ignore lint/suspicious/noExplicitAny: module payload widens to accept any script module shape when set
|
|
34
34
|
setModule: createAction('set_module', (module) => ({ payload: module })),
|
|
35
35
|
/** Async action triplet for dynamically importing the widget script. */
|
|
36
36
|
importWidget: createAsyncAction('import_widget', (entrypoint) => ({ payload: entrypoint }), (module) => ({ payload: module }), (error) => ({ payload: error })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/state/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AASpC;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC;IAC3B,qEAAqE;IACrE,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,QAAwB,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,MAAM;SACP;KACF,CAAC,CAAC;IACH,0EAA0E;IAC1E,aAAa,EAAE,iBAAiB,CAC9B,gBAAgB,EAChB,CAAC,OAA4D,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO;QACP,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CAAC,EACF,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACrD,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACzC;IACD,uCAAuC;IACvC,SAAS,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,wEAAwE;IACxE,WAAW,EAAE,iBAAiB,CAC5B,cAAc,EACd,CAAC,OAA4D,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO;QACP,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CAAC,EACF,CAAC,MAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAC/C,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACzC;IACD,mEAAmE;IACnE
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/state/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AASpC;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC;IAC3B,qEAAqE;IACrE,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,QAAwB,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,MAAM;SACP;KACF,CAAC,CAAC;IACH,0EAA0E;IAC1E,aAAa,EAAE,iBAAiB,CAC9B,gBAAgB,EAChB,CAAC,OAA4D,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO;QACP,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CAAC,EACF,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACrD,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACzC;IACD,uCAAuC;IACvC,SAAS,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,wEAAwE;IACxE,WAAW,EAAE,iBAAiB,CAC5B,cAAc,EACd,CAAC,OAA4D,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO;QACP,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CAAC,EACF,CAAC,MAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAC/C,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACzC;IACD,mEAAmE;IACnE,+GAA+G;IAC/G,SAAS,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7E,wEAAwE;IACxE,YAAY,EAAE,iBAAiB,CAC7B,eAAe,EACf,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EACjD,CAAC,MAA0B,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EACrD,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACzC;IACD,oEAAoE;IACpE,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,QAA+B,EAAE,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAC;IACH,4EAA4E;IAC5E,UAAU,EAAE,iBAAiB,CAC3B,mBAAmB,EACnB,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACzB,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACzB,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACzC;CACF,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC"}
|
|
@@ -12,9 +12,13 @@ import { actions } from './actions';
|
|
|
12
12
|
* automatically as an empty `Set`).
|
|
13
13
|
* @returns A reducer function compatible with `FlowSubject`.
|
|
14
14
|
*/
|
|
15
|
-
export const createReducer = (value) =>
|
|
15
|
+
export const createReducer = (value) =>
|
|
16
|
+
// Seed the reducer's initial state with an empty in-progress status set.
|
|
17
|
+
makeReducer({ ...value, status: new Set() }, (builder) => builder
|
|
16
18
|
.addCase(actions.setManifest, (state, action) => {
|
|
19
|
+
// Merge with existing state when caller requested an update, otherwise replace
|
|
17
20
|
if (action.meta.update) {
|
|
21
|
+
// Shallow-merge the new payload over the existing manifest fields.
|
|
18
22
|
state.manifest = { ...state.manifest, ...action.payload };
|
|
19
23
|
}
|
|
20
24
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-reducer.js","sourceRoot":"","sources":["../../../src/state/create-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,IAAI,WAAW,EAC5B,gBAAgB,EAChB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,YAAY,EAAE,CAAC;AAEf,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAC;AAGlD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"create-reducer.js","sourceRoot":"","sources":["../../../src/state/create-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,IAAI,WAAW,EAC5B,gBAAgB,EAChB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,YAAY,EAAE,CAAC;AAEf,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAC;AAGlD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;AACzD,yEAAyE;AACzE,WAAW,CAAuB,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5F,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC9C,+EAA+E;IAC/E,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,mEAAmE;QACnE,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5C,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AAChC,CAAC,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5C,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACjC,CAAC,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC9C,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAClC,CAAC,CAAC;IACF,sCAAsC;KACrC,UAAU,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC7C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;IACF,4BAA4B;KAC3B,UAAU,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC9C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CACL,CAAC;AAEJ,eAAe,aAAa,CAAC"}
|
package/dist/esm/state/flows.js
CHANGED
|
@@ -9,13 +9,22 @@ import { actions } from './actions';
|
|
|
9
9
|
* @param provider - The widget module provider used for API queries.
|
|
10
10
|
* @returns A `Flow` function for the widget state machine.
|
|
11
11
|
*/
|
|
12
|
-
export const handleFetchManifest = (provider) => (action$) =>
|
|
12
|
+
export const handleFetchManifest = (provider) => (action$) =>
|
|
13
|
+
// React only to `fetchManifest` actions
|
|
14
|
+
action$.pipe(filter(actions.fetchManifest.match), switchMap((action) => {
|
|
13
15
|
const { payload: { key, args }, meta: { update }, } = action;
|
|
16
|
+
// Query the provider for the manifest, dropping falsy emissions, and share it
|
|
14
17
|
const subject = from(provider.getWidgetManifest(key, args)).pipe(filter((x) => !!x), share());
|
|
15
|
-
return concat(subject
|
|
18
|
+
return (concat(subject
|
|
19
|
+
// Emit an intermediate `setManifest` for every value the query produces
|
|
20
|
+
.pipe(map((manifest) => actions.setManifest(manifest, update))), subject
|
|
21
|
+
// Wait for the final emission and report it as the successful result
|
|
22
|
+
.pipe(last(), map((manifest) => actions.fetchManifest.success(manifest))))
|
|
23
|
+
// Convert any error from the query/emission chain into a failure action
|
|
24
|
+
.pipe(catchError((err) => {
|
|
16
25
|
console.error(err, action.payload);
|
|
17
26
|
return of(actions.fetchManifest.failure(err));
|
|
18
|
-
}));
|
|
27
|
+
})));
|
|
19
28
|
}));
|
|
20
29
|
/**
|
|
21
30
|
* RxJS flow that reacts to `fetchConfig` actions by querying the
|
|
@@ -25,11 +34,22 @@ export const handleFetchManifest = (provider) => (action$) => action$.pipe(filte
|
|
|
25
34
|
* @param provider - The widget module provider used for API queries.
|
|
26
35
|
* @returns A `Flow` function for the widget state machine.
|
|
27
36
|
*/
|
|
28
|
-
|
|
37
|
+
// Deliberately co-located with `handleFetchManifest` above
|
|
38
|
+
// fusion-lint-disable-next-line single-export-per-file
|
|
39
|
+
export const handleFetchConfig = (provider) => (action$) =>
|
|
40
|
+
// React only to `fetchConfig` actions
|
|
41
|
+
action$.pipe(filter(actions.fetchConfig.match), switchMap(({ payload: { key, args } }) => {
|
|
42
|
+
// Query the provider for the config, dropping falsy emissions, and share it
|
|
29
43
|
const subject = from(provider.getWidgetConfig(key, args)).pipe(filter((x) => !!x), share());
|
|
30
|
-
return concat(subject
|
|
44
|
+
return (concat(subject
|
|
45
|
+
// Emit an intermediate `setConfig` for every value the query produces
|
|
46
|
+
.pipe(map((manifest) => actions.setConfig(manifest))), subject
|
|
47
|
+
// Wait for the final emission and report it as the successful result
|
|
48
|
+
.pipe(last(), map((manifest) => actions.fetchConfig.success(manifest))))
|
|
49
|
+
// Convert any error from the query/emission chain into a failure action
|
|
50
|
+
.pipe(catchError((err) => {
|
|
31
51
|
return of(actions.fetchConfig.failure(err));
|
|
32
|
-
}));
|
|
52
|
+
})));
|
|
33
53
|
}));
|
|
34
54
|
/**
|
|
35
55
|
* RxJS flow that reacts to `importWidget` actions by dynamically importing
|
|
@@ -37,7 +57,12 @@ export const handleFetchConfig = (provider) => (action$) => action$.pipe(filter(
|
|
|
37
57
|
*
|
|
38
58
|
* @returns A `Flow` function for the widget state machine.
|
|
39
59
|
*/
|
|
40
|
-
|
|
60
|
+
// Deliberately co-located with the other flow handlers above
|
|
61
|
+
// fusion-lint-disable-next-line single-export-per-file
|
|
62
|
+
export const handleImportWidget = () => (action$) =>
|
|
63
|
+
// React only to `importWidget` actions
|
|
64
|
+
action$.pipe(filter(actions.importWidget.match), switchMap(({ payload }) => {
|
|
65
|
+
// Dynamically import the widget's script entry point and report success/failure
|
|
41
66
|
return from(import(/* @vite-ignore */ payload)).pipe(map(actions.importWidget.success), catchError((err) => of(actions.importWidget.failure(err))));
|
|
42
67
|
}));
|
|
43
68
|
//# sourceMappingURL=flows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/state/flows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,QAA8B,EAA8B,EAAE,CAC/D,CAAC,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/state/flows.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/utils.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
export const defaultManifestEndpointBuilder = (apiVersion) => (params) => {
|
|
11
11
|
const { widgetKey, args } = params;
|
|
12
12
|
const { type, value } = args ?? {};
|
|
13
|
+
// Route versioned/tagged lookups differently from the unversioned default
|
|
13
14
|
switch (type) {
|
|
14
15
|
case 'tag':
|
|
15
16
|
case 'version':
|
|
@@ -27,10 +28,12 @@ export const defaultManifestEndpointBuilder = (apiVersion) => (params) => {
|
|
|
27
28
|
* @param apiVersion - API version string appended as a query parameter.
|
|
28
29
|
* @returns A function that maps {@link GetWidgetParameters} to a URL path.
|
|
29
30
|
*/
|
|
31
|
+
// Deliberately co-located with `defaultManifestEndpointBuilder` above
|
|
32
|
+
// fusion-lint-disable-next-line single-export-per-file
|
|
30
33
|
export const defaultConfigEndpointBuilder = (apiVersion) => (params) => {
|
|
31
34
|
const { widgetKey, args } = params;
|
|
32
35
|
const { type, value } = args ?? {};
|
|
33
|
-
//
|
|
36
|
+
// TODO(#5099): Align endpoints with backend when its done!
|
|
34
37
|
switch (type) {
|
|
35
38
|
case 'tag':
|
|
36
39
|
case 'version':
|
|
@@ -50,6 +53,8 @@ export const defaultConfigEndpointBuilder = (apiVersion) => (params) => {
|
|
|
50
53
|
* `apps` service-discovery key).
|
|
51
54
|
* @returns A fully configured `IClient`.
|
|
52
55
|
*/
|
|
56
|
+
// Deliberately co-located with the endpoint builders it composes
|
|
57
|
+
// fusion-lint-disable-next-line single-export-per-file
|
|
53
58
|
export const createDefaultClient = (httpClient) => {
|
|
54
59
|
const apiVersion = '1.0-preview';
|
|
55
60
|
return {
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,CAAC,UAAkB,EAAyB,EAAE,CAC9C,CAAC,MAA2B,EAAE,EAAE;IAC9B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,SAAS;YACZ,OAAO,YAAY,SAAS,aAAa,KAAK,gBAAgB,UAAU,EAAE,CAAC;QAC7E;YACE,OAAO,YAAY,SAAS,gBAAgB,UAAU,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAEJ;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,CAAC,UAAkB,EAAyB,EAAE,CAC9C,CAAC,MAA2B,EAAE,EAAE;IAC9B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,CAAC,UAAkB,EAAyB,EAAE,CAC9C,CAAC,MAA2B,EAAE,EAAE;IAC9B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,SAAS;YACZ,OAAO,YAAY,SAAS,aAAa,KAAK,gBAAgB,UAAU,EAAE,CAAC;QAC7E;YACE,OAAO,YAAY,SAAS,gBAAgB,UAAU,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAEJ;;;;;;;;GAQG;AACH,sEAAsE;AACtE,uDAAuD;AACvD,MAAM,CAAC,MAAM,4BAA4B,GACvC,CAAC,UAAkB,EAAyB,EAAE,CAC9C,CAAC,MAA2B,EAAE,EAAE;IAC9B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACnC,2DAA2D;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,SAAS;YACZ,OAAO,YAAY,SAAS,aAAa,KAAK,uBAAuB,UAAU,EAAE,CAAC;QACpF;YACE,OAAO,YAAY,SAAS,uBAAuB,UAAU,EAAE,CAAC;IACpE,CAAC;AACH,CAAC,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,iEAAiE;AACjE,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAuB,EAAW,EAAE;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC;IACjC,OAAO;QACL,UAAU;QACV,aAAa,EAAE,UAAU,CAAC,GAAG;QAC7B,iBAAiB,EAAE;YACjB,MAAM,EAAE;gBACN,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;aACjF;YACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SACpC;QACD,eAAe,EAAE;YACf,MAAM,EAAE;gBACN,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;aAC/E;YACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SACpC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/esm/version.js
CHANGED