@equinor/fusion-framework-module-app 2.1.6 → 2.3.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 (65) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/esm/AppConfigBuilder.js +57 -0
  3. package/dist/esm/AppConfigBuilder.js.map +1 -0
  4. package/dist/esm/AppConfigurator.js +82 -0
  5. package/dist/esm/AppConfigurator.js.map +1 -0
  6. package/dist/esm/AppModuleProvider.js +91 -0
  7. package/dist/esm/AppModuleProvider.js.map +1 -0
  8. package/dist/esm/app/App.js +172 -0
  9. package/dist/esm/app/App.js.map +1 -0
  10. package/dist/esm/app/actions.js +17 -0
  11. package/dist/esm/app/actions.js.map +1 -0
  12. package/dist/esm/app/create-reducer.js +25 -0
  13. package/dist/esm/app/create-reducer.js.map +1 -0
  14. package/dist/esm/app/create-state.js +12 -0
  15. package/dist/esm/app/create-state.js.map +1 -0
  16. package/dist/esm/app/flows.js +17 -0
  17. package/dist/esm/app/flows.js.map +1 -0
  18. package/dist/esm/app/types.js +2 -0
  19. package/dist/esm/app/types.js.map +1 -0
  20. package/dist/esm/errors.js +37 -0
  21. package/dist/esm/errors.js.map +1 -0
  22. package/dist/esm/events.js +7 -0
  23. package/dist/esm/events.js.map +1 -0
  24. package/dist/esm/index.js +4 -2
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/module.js +6 -3
  27. package/dist/esm/module.js.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/dist/types/AppConfigBuilder.d.ts +26 -0
  30. package/dist/types/AppConfigurator.d.ts +28 -0
  31. package/dist/types/AppModuleProvider.d.ts +26 -0
  32. package/dist/types/app/App.d.ts +34 -0
  33. package/dist/types/app/actions.d.ts +46 -0
  34. package/dist/types/app/create-reducer.d.ts +3 -0
  35. package/dist/types/app/create-state.d.ts +5 -0
  36. package/dist/types/app/flows.d.ts +7 -0
  37. package/dist/types/app/types.d.ts +9 -0
  38. package/dist/types/errors.d.ts +16 -0
  39. package/dist/types/events.d.ts +22 -0
  40. package/dist/types/index.d.ts +4 -2
  41. package/dist/types/module.d.ts +5 -4
  42. package/dist/types/types.d.ts +29 -1
  43. package/package.json +14 -6
  44. package/src/AppConfigBuilder.ts +86 -0
  45. package/src/AppConfigurator.ts +101 -0
  46. package/src/AppModuleProvider.ts +159 -0
  47. package/src/app/App.ts +243 -0
  48. package/src/app/actions.ts +51 -0
  49. package/src/app/create-reducer.ts +41 -0
  50. package/src/app/create-state.ts +21 -0
  51. package/src/app/flows.ts +61 -0
  52. package/src/app/types.ts +11 -0
  53. package/src/errors.ts +53 -0
  54. package/src/events.ts +34 -0
  55. package/src/index.ts +10 -2
  56. package/src/module.ts +11 -12
  57. package/src/types.ts +42 -1
  58. package/dist/esm/configurator.js +0 -62
  59. package/dist/esm/configurator.js.map +0 -1
  60. package/dist/esm/provider.js +0 -83
  61. package/dist/esm/provider.js.map +0 -1
  62. package/dist/types/configurator.d.ts +0 -24
  63. package/dist/types/provider.d.ts +0 -43
  64. package/src/configurator.ts +0 -81
  65. package/src/provider.ts +0 -181
package/CHANGELOG.md CHANGED
@@ -3,6 +3,19 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 2.3.0 (2022-12-12)
7
+
8
+ ### Features
9
+
10
+ - **module-app:** add config builder ([0fe107c](https://github.com/equinor/fusion-framework/commit/0fe107c87a129c6e63044e6298914cdfc4e0d626))
11
+
12
+ ## [2.2.0](https://github.com/equinor/fusion-framework/compare/@equinor/fusion-framework-module-app@2.1.6...@equinor/fusion-framework-module-app@2.2.0) (2022-12-12)
13
+
14
+ ### Features
15
+
16
+ - create instance container for application ([d5cbd74](https://github.com/equinor/fusion-framework/commit/d5cbd74b89cd9cba0dabef4a62f585c72e3c14be))
17
+ - **module-app:** load javascript modules ([bb3d2a1](https://github.com/equinor/fusion-framework/commit/bb3d2a1cb00b5753462094ebdf24c8ba3c614c9f))
18
+
6
19
  ## [2.1.6](https://github.com/equinor/fusion-framework/compare/@equinor/fusion-framework-module-app@2.1.5...@equinor/fusion-framework-module-app@2.1.6) (2022-12-08)
7
20
 
8
21
  **Note:** Version bump only for package @equinor/fusion-framework-module-app
@@ -0,0 +1,57 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _AppConfigBuilder_init;
13
+ export class AppConfigBuilder {
14
+ constructor(init, config = {}) {
15
+ this.config = config;
16
+ _AppConfigBuilder_init.set(this, void 0);
17
+ __classPrivateFieldSet(this, _AppConfigBuilder_init, init, "f");
18
+ }
19
+ requireInstance(module) {
20
+ return __classPrivateFieldGet(this, _AppConfigBuilder_init, "f").requireInstance(module);
21
+ }
22
+ setAppClient(client, expire = 1 * 60 * 1000) {
23
+ client;
24
+ expire;
25
+ this.config.client = {
26
+ getAppManifest: typeof client.getAppManifest === 'function'
27
+ ? {
28
+ key: ({ appKey }) => appKey,
29
+ client: {
30
+ fn: client.getAppManifest,
31
+ },
32
+ expire,
33
+ }
34
+ : client.getAppManifest,
35
+ getAppManifests: typeof client.getAppManifests === 'function'
36
+ ? {
37
+ key: () => 'app_manifests',
38
+ client: {
39
+ fn: client.getAppManifests,
40
+ },
41
+ expire,
42
+ }
43
+ : client.getAppManifests,
44
+ getAppConfig: typeof client.getAppConfig === 'function'
45
+ ? {
46
+ key: (args) => JSON.stringify(args),
47
+ client: {
48
+ fn: client.getAppConfig,
49
+ },
50
+ expire,
51
+ }
52
+ : client.getAppConfig,
53
+ };
54
+ }
55
+ }
56
+ _AppConfigBuilder_init = new WeakMap();
57
+ //# sourceMappingURL=AppConfigBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppConfigBuilder.js","sourceRoot":"","sources":["../../src/AppConfigBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;AAYA,MAAM,OAAO,gBAAgB;IAQzB,YAAY,IAAW,EAAS,SAAmC,EAAE;QAArC,WAAM,GAAN,MAAM,CAA+B;QADrE,yCAAa;QAET,uBAAA,IAAI,0BAAS,IAAI,MAAA,CAAC;IACtB,CAAC;IASD,eAAe,CAAC,MAAc;QAC1B,OAAO,uBAAA,IAAI,8BAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CACR,MAQC,EACD,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;QAEtB,MAAM,CAAC;QACP,MAAM,CAAC;QAEP,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG;YACjB,cAAc,EACV,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU;gBACvC,CAAC,CAAC;oBACI,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM;oBAC3B,MAAM,EAAE;wBACJ,EAAE,EAAE,MAAM,CAAC,cAAc;qBAC5B;oBACD,MAAM;iBACT;gBACH,CAAC,CAAC,MAAM,CAAC,cAAc;YAC/B,eAAe,EACX,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU;gBACxC,CAAC,CAAC;oBAEI,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe;oBAC1B,MAAM,EAAE;wBACJ,EAAE,EAAE,MAAM,CAAC,eAAe;qBAC7B;oBACD,MAAM;iBACT;gBACH,CAAC,CAAC,MAAM,CAAC,eAAe;YAChC,YAAY,EACR,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU;gBACrC,CAAC,CAAC;oBAEI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBACnC,MAAM,EAAE;wBACJ,EAAE,EAAE,MAAM,CAAC,YAAY;qBAC1B;oBACD,MAAM;iBACT;gBACH,CAAC,CAAC,MAAM,CAAC,YAAY;SAChC,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,82 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
11
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
13
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
14
+ };
15
+ var _AppConfigurator_configBuilders;
16
+ import { AppConfigBuilder } from './AppConfigBuilder';
17
+ import { moduleKey } from './module';
18
+ export class AppConfigurator {
19
+ constructor() {
20
+ this.defaultExpireTime = 1 * 60 * 1000;
21
+ _AppConfigurator_configBuilders.set(this, []);
22
+ }
23
+ addConfigBuilder(init) {
24
+ __classPrivateFieldGet(this, _AppConfigurator_configBuilders, "f").push(init);
25
+ }
26
+ _createHttpClient(init) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const http = yield init.requireInstance('http');
29
+ if (http.hasClient(moduleKey)) {
30
+ return http.createClient(moduleKey);
31
+ }
32
+ else {
33
+ const serviceDiscovery = yield init.requireInstance('serviceDiscovery');
34
+ try {
35
+ return yield serviceDiscovery.createClient('app');
36
+ }
37
+ catch (_a) {
38
+ return yield serviceDiscovery.createClient('portal');
39
+ }
40
+ }
41
+ });
42
+ }
43
+ createConfig(init) {
44
+ var _a;
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const config = yield __classPrivateFieldGet(this, _AppConfigurator_configBuilders, "f").reduce((cur, cb) => __awaiter(this, void 0, void 0, function* () {
47
+ const builder = new AppConfigBuilder(init, yield cur);
48
+ yield Promise.resolve(cb(builder));
49
+ return Object.assign(cur, builder.config);
50
+ }), Promise.resolve({}));
51
+ (_a = config.client) !== null && _a !== void 0 ? _a : (config.client = yield (() => __awaiter(this, void 0, void 0, function* () {
52
+ const httpClient = yield this._createHttpClient(init);
53
+ return {
54
+ getAppManifest: {
55
+ client: {
56
+ fn: ({ appKey }) => httpClient.json$(`/api/apps/${appKey}`),
57
+ },
58
+ key: ({ appKey }) => appKey,
59
+ expire: this.defaultExpireTime,
60
+ },
61
+ getAppManifests: {
62
+ client: {
63
+ fn: () => httpClient.json$(`/api/apps`),
64
+ },
65
+ key: (args) => JSON.stringify(args),
66
+ expire: this.defaultExpireTime,
67
+ },
68
+ getAppConfig: {
69
+ client: {
70
+ fn: ({ appKey, tag }) => httpClient.json$(`/api/apps/${appKey}/config${tag ? `?tag=${tag}` : ''}`),
71
+ },
72
+ key: (args) => JSON.stringify(args),
73
+ expire: this.defaultExpireTime,
74
+ },
75
+ };
76
+ }))());
77
+ return config;
78
+ });
79
+ }
80
+ }
81
+ _AppConfigurator_configBuilders = new WeakMap();
82
+ //# sourceMappingURL=AppConfigurator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppConfigurator.js","sourceRoot":"","sources":["../../src/AppConfigurator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _AppModuleProvider_appsClient, _AppModuleProvider_configClient, _AppModuleProvider_current$, _AppModuleProvider_subscription, _AppModuleProvider_event;
13
+ import { BehaviorSubject, catchError, distinctUntilKeyChanged, map, pairwise, Subscription, takeWhile, } from 'rxjs';
14
+ import { Query } from '@equinor/fusion-query';
15
+ import { App, filterEmpty } from './app/App';
16
+ import { HttpResponseError } from '@equinor/fusion-framework-module-http';
17
+ import { AppConfigError, AppManifestError } from './errors';
18
+ export class AppModuleProvider {
19
+ static compareAppManifest(a, b) {
20
+ return JSON.stringify(a) === JSON.stringify(b);
21
+ }
22
+ get current() {
23
+ return __classPrivateFieldGet(this, _AppModuleProvider_current$, "f").value;
24
+ }
25
+ get current$() {
26
+ return __classPrivateFieldGet(this, _AppModuleProvider_current$, "f").pipe(filterEmpty(), distinctUntilKeyChanged('appKey'));
27
+ }
28
+ constructor(args) {
29
+ _AppModuleProvider_appsClient.set(this, void 0);
30
+ _AppModuleProvider_configClient.set(this, void 0);
31
+ _AppModuleProvider_current$.set(this, void 0);
32
+ _AppModuleProvider_subscription.set(this, new Subscription());
33
+ _AppModuleProvider_event.set(this, void 0);
34
+ const { event, config } = args;
35
+ __classPrivateFieldSet(this, _AppModuleProvider_event, event, "f");
36
+ __classPrivateFieldSet(this, _AppModuleProvider_current$, new BehaviorSubject(undefined), "f");
37
+ this.appClient = new Query(config.client.getAppManifest);
38
+ __classPrivateFieldSet(this, _AppModuleProvider_appsClient, new Query(config.client.getAppManifests), "f");
39
+ __classPrivateFieldSet(this, _AppModuleProvider_configClient, new Query(config.client.getAppConfig), "f");
40
+ __classPrivateFieldGet(this, _AppModuleProvider_subscription, "f").add(() => this.appClient.complete());
41
+ __classPrivateFieldGet(this, _AppModuleProvider_subscription, "f").add(() => __classPrivateFieldGet(this, _AppModuleProvider_appsClient, "f").complete());
42
+ __classPrivateFieldGet(this, _AppModuleProvider_subscription, "f").add(() => __classPrivateFieldGet(this, _AppModuleProvider_configClient, "f").complete());
43
+ __classPrivateFieldGet(this, _AppModuleProvider_subscription, "f").add(this.current$
44
+ .pipe(pairwise(), takeWhile(() => !!event))
45
+ .subscribe(([previous, next]) => {
46
+ event === null || event === void 0 ? void 0 : event.dispatchEvent('onCurrentAppChanged', {
47
+ source: this,
48
+ detail: { previous, next },
49
+ });
50
+ }));
51
+ __classPrivateFieldGet(this, _AppModuleProvider_subscription, "f").add(__classPrivateFieldGet(this, _AppModuleProvider_current$, "f")
52
+ .pipe(pairwise(), map(([previous]) => previous), filterEmpty())
53
+ .subscribe((app) => app.dispose()));
54
+ }
55
+ getAppManifest(appKey) {
56
+ return Query.extractQueryValue(this.appClient.query({ appKey }).pipe(catchError((err) => {
57
+ const { cause } = err;
58
+ if (cause instanceof AppManifestError) {
59
+ throw cause;
60
+ }
61
+ if (cause instanceof HttpResponseError) {
62
+ throw AppManifestError.fromHttpResponse(cause.response, { cause });
63
+ }
64
+ throw new AppManifestError('unknown', 'failed to load manifest', { cause });
65
+ })));
66
+ }
67
+ getAllAppManifests() {
68
+ return Query.extractQueryValue(__classPrivateFieldGet(this, _AppModuleProvider_appsClient, "f").query());
69
+ }
70
+ getAppConfig(appKey, tag) {
71
+ return Query.extractQueryValue(__classPrivateFieldGet(this, _AppModuleProvider_configClient, "f").query({ appKey, tag }).pipe(catchError((err) => {
72
+ const { cause } = err;
73
+ if (cause instanceof AppConfigError) {
74
+ throw cause;
75
+ }
76
+ if (cause instanceof HttpResponseError) {
77
+ throw AppConfigError.fromHttpResponse(cause.response, { cause });
78
+ }
79
+ throw new AppConfigError('unknown', 'failed to load config', { cause });
80
+ })));
81
+ }
82
+ setCurrentApp(appKey) {
83
+ __classPrivateFieldGet(this, _AppModuleProvider_current$, "f").next(new App(appKey, { provider: this, event: __classPrivateFieldGet(this, _AppModuleProvider_event, "f") }));
84
+ }
85
+ dispose() {
86
+ __classPrivateFieldGet(this, _AppModuleProvider_subscription, "f").unsubscribe();
87
+ }
88
+ }
89
+ _AppModuleProvider_appsClient = new WeakMap(), _AppModuleProvider_configClient = new WeakMap(), _AppModuleProvider_current$ = new WeakMap(), _AppModuleProvider_subscription = new WeakMap(), _AppModuleProvider_event = new WeakMap();
90
+ export default AppModuleProvider;
91
+ //# sourceMappingURL=AppModuleProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppModuleProvider.js","sourceRoot":"","sources":["../../src/AppModuleProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
11
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
13
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
14
+ };
15
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
16
+ if (kind === "m") throw new TypeError("Private method is not writable");
17
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
18
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
19
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
20
+ };
21
+ var _App_state;
22
+ import { Observable } from '@equinor/fusion-observable';
23
+ import { combineLatest, filter, firstValueFrom, lastValueFrom, map, of, Subscription, } from 'rxjs';
24
+ import { createState } from './create-state';
25
+ import { actions } from './actions';
26
+ import '../events';
27
+ export function filterEmpty() {
28
+ return filter((value) => value !== undefined && value !== null);
29
+ }
30
+ export class App {
31
+ get manifest$() {
32
+ return __classPrivateFieldGet(this, _App_state, "f").pipe(map(({ manifest }) => manifest), filterEmpty());
33
+ }
34
+ get config$() {
35
+ return __classPrivateFieldGet(this, _App_state, "f").pipe(map(({ config }) => config), filterEmpty());
36
+ }
37
+ get modules$() {
38
+ return __classPrivateFieldGet(this, _App_state, "f").pipe(map(({ modules }) => modules), filterEmpty());
39
+ }
40
+ get instance$() {
41
+ return __classPrivateFieldGet(this, _App_state, "f").pipe(map(({ instance }) => instance), filterEmpty());
42
+ }
43
+ get appKey() {
44
+ return __classPrivateFieldGet(this, _App_state, "f").value.appKey;
45
+ }
46
+ get manifest() {
47
+ return firstValueFrom(this.manifest$);
48
+ }
49
+ get config() {
50
+ return firstValueFrom(this.config$);
51
+ }
52
+ get instance() {
53
+ return __classPrivateFieldGet(this, _App_state, "f").value.instance;
54
+ }
55
+ constructor(appKey, args) {
56
+ _App_state.set(this, void 0);
57
+ __classPrivateFieldSet(this, _App_state, createState(appKey, args.provider), "f");
58
+ const subscriptions = new Subscription();
59
+ if (args.event) {
60
+ subscriptions.add(args.event.addEventListener('onAppModulesLoaded', (e) => {
61
+ if (e.detail.appKey === appKey) {
62
+ __classPrivateFieldGet(this, _App_state, "f").next(actions.setInstance(e.detail.modules));
63
+ }
64
+ }));
65
+ }
66
+ this.dispose = () => {
67
+ if (__classPrivateFieldGet(this, _App_state, "f").value.instance) {
68
+ __classPrivateFieldGet(this, _App_state, "f").value.instance.dispose();
69
+ }
70
+ subscriptions.unsubscribe();
71
+ __classPrivateFieldGet(this, _App_state, "f").complete();
72
+ };
73
+ }
74
+ initialize() {
75
+ return combineLatest([this.getManifest(), this.getAppModule(), this.getConfig()]);
76
+ }
77
+ loadConfig() {
78
+ __classPrivateFieldGet(this, _App_state, "f").next(actions.fetchConfig(this.appKey));
79
+ }
80
+ loadManifest() {
81
+ __classPrivateFieldGet(this, _App_state, "f").next(actions.fetchManifest(this.appKey));
82
+ }
83
+ loadAppModule(allow_cache = true) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ const manifest = yield this.getManifestAsync(allow_cache);
86
+ __classPrivateFieldGet(this, _App_state, "f").next(actions.importApp(manifest.entry));
87
+ });
88
+ }
89
+ getConfig(force_refresh = false) {
90
+ return new Observable((subscriber) => {
91
+ if (__classPrivateFieldGet(this, _App_state, "f").value.config) {
92
+ subscriber.next(__classPrivateFieldGet(this, _App_state, "f").value.config);
93
+ if (!force_refresh) {
94
+ return subscriber.complete();
95
+ }
96
+ }
97
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('set_config', ({ payload }) => {
98
+ subscriber.next(payload);
99
+ }));
100
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('fetch_config::success', ({ payload }) => {
101
+ subscriber.next(payload);
102
+ subscriber.complete();
103
+ }));
104
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('fetch_config::failure', ({ payload }) => {
105
+ subscriber.error(Error('failed to load application config', {
106
+ cause: payload,
107
+ }));
108
+ }));
109
+ this.loadConfig();
110
+ });
111
+ }
112
+ getConfigAsync(allow_cache = true) {
113
+ const operator = allow_cache ? firstValueFrom : lastValueFrom;
114
+ return operator(this.getConfig(!allow_cache));
115
+ }
116
+ getManifest(force_refresh = false) {
117
+ return new Observable((subscriber) => {
118
+ if (__classPrivateFieldGet(this, _App_state, "f").value.manifest) {
119
+ subscriber.next(__classPrivateFieldGet(this, _App_state, "f").value.manifest);
120
+ if (!force_refresh) {
121
+ return subscriber.complete();
122
+ }
123
+ }
124
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('set_manifest', ({ payload }) => {
125
+ subscriber.next(payload);
126
+ }));
127
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('fetch_manifest::success', ({ payload }) => {
128
+ subscriber.next(payload);
129
+ subscriber.complete();
130
+ }));
131
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('fetch_manifest::failure', ({ payload }) => {
132
+ subscriber.error(Error('failed to load application manifest', {
133
+ cause: payload,
134
+ }));
135
+ }));
136
+ this.loadManifest();
137
+ });
138
+ }
139
+ getManifestAsync(allow_cache = true) {
140
+ const operator = allow_cache ? firstValueFrom : lastValueFrom;
141
+ return operator(this.getManifest(!allow_cache));
142
+ }
143
+ getAppModule(force_refresh = false) {
144
+ return new Observable((subscriber) => {
145
+ if (__classPrivateFieldGet(this, _App_state, "f").value.modules) {
146
+ subscriber.next(__classPrivateFieldGet(this, _App_state, "f").value.modules);
147
+ if (!force_refresh) {
148
+ return subscriber.complete();
149
+ }
150
+ }
151
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('set_module', ({ payload }) => {
152
+ subscriber.next(payload);
153
+ }));
154
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('import_app::success', ({ payload }) => {
155
+ subscriber.next(payload);
156
+ subscriber.complete();
157
+ }));
158
+ subscriber.add(__classPrivateFieldGet(this, _App_state, "f").addEffect('import_app::failure', ({ payload }) => {
159
+ subscriber.error(Error('failed to load application modules from script', {
160
+ cause: payload,
161
+ }));
162
+ }));
163
+ subscriber.add(this.getManifest().subscribe((manifest) => of(__classPrivateFieldGet(this, _App_state, "f").next(actions.importApp(manifest.entry)))));
164
+ });
165
+ }
166
+ getAppModuleAsync(allow_cache = true) {
167
+ const operator = allow_cache ? firstValueFrom : lastValueFrom;
168
+ return operator(this.getAppModule(!allow_cache));
169
+ }
170
+ }
171
+ _App_state = new WeakMap();
172
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/app/App.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { createAction, createAsyncAction, } from '@equinor/fusion-observable';
2
+ const createActions = () => ({
3
+ setManifest: createAction('set_manifest', (manifest) => ({
4
+ payload: manifest,
5
+ meta: { created: Date.now() },
6
+ })),
7
+ fetchManifest: createAsyncAction('fetch_manifest', (key) => ({ payload: key }), (manifest) => ({ payload: manifest }), (error) => ({ payload: error })),
8
+ setConfig: createAction('set_config', (config) => ({ payload: config })),
9
+ fetchConfig: createAsyncAction('fetch_config', (key) => ({ payload: key }), (config) => ({ payload: config }), (error) => ({ payload: error })),
10
+ setModule: createAction('set_module', (module) => ({ payload: module })),
11
+ importApp: createAsyncAction('import_app', (entrypoint) => ({ payload: entrypoint }), (module) => ({ payload: module }), (error) => ({ payload: error })),
12
+ setInstance: createAction('set_instance', (instance) => ({
13
+ payload: instance,
14
+ })),
15
+ });
16
+ export const actions = createActions();
17
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/app/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,YAAY,EACZ,iBAAiB,GACpB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC;IAEzB,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,QAAqB,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;KAChC,CAAC,CAAC;IACH,aAAa,EAAE,iBAAiB,CAC5B,gBAAgB,EAChB,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EACnC,CAAC,QAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAClD,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAC3C;IAED,SAAS,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACnF,WAAW,EAAE,iBAAiB,CAC1B,cAAc,EACd,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EACnC,CAAC,MAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAC5C,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAC3C;IAGD,SAAS,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7E,SAAS,EAAE,iBAAiB,CACxB,YAAY,EACZ,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EACjD,CAAC,MAAuB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAClD,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAC3C;IAGD,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,QAA4B,EAAE,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,QAAQ;KACpB,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { actionBaseType, createReducer as makeReducer, isCompleteAction, isRequestAction, } from '@equinor/fusion-observable';
2
+ import { enableMapSet } from 'immer';
3
+ enableMapSet();
4
+ import { actions } from './actions';
5
+ export const createReducer = (appKey) => makeReducer({ appKey, status: new Set() }, (builder) => builder
6
+ .addCase(actions.setManifest, (state, action) => {
7
+ state.manifest = action.payload;
8
+ })
9
+ .addCase(actions.setConfig, (state, action) => {
10
+ state.config = action.payload;
11
+ })
12
+ .addCase(actions.setModule, (state, action) => {
13
+ state.modules = action.payload;
14
+ })
15
+ .addCase(actions.setInstance, (state, action) => {
16
+ state.instance = action.payload;
17
+ })
18
+ .addMatcher(isRequestAction, (state, action) => {
19
+ state.status.add(actionBaseType(action));
20
+ })
21
+ .addMatcher(isCompleteAction, (state, action) => {
22
+ state.status.delete(actionBaseType(action));
23
+ }));
24
+ export default createReducer;
25
+ //# sourceMappingURL=create-reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-reducer.js","sourceRoot":"","sources":["../../../src/app/create-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,aAAa,IAAI,WAAW,EAC5B,gBAAgB,EAChB,eAAe,GAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,YAAY,EAAE,CAAC;AAEf,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE,CAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CACrE,OAAO;KACF,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5C,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AACpC,CAAC,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC1C,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AAClC,CAAC,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC1C,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,CAAC,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5C,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AACpC,CAAC,CAAC;KAED,UAAU,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC3C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;KAED,UAAU,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CACT,CAAC;AAEN,eAAe,aAAa,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FlowSubject } from '@equinor/fusion-observable';
2
+ import { createReducer } from './create-reducer';
3
+ import { handleFetchManifest, handleFetchConfig, handleImportApplication } from './flows';
4
+ export const createState = (appKey, provider) => {
5
+ const reducer = createReducer(appKey);
6
+ const state = new FlowSubject(reducer);
7
+ state.addFlow(handleFetchManifest(provider));
8
+ state.addFlow(handleFetchConfig(provider));
9
+ state.addFlow(handleImportApplication());
10
+ return state;
11
+ };
12
+ //# sourceMappingURL=create-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-state.js","sourceRoot":"","sources":["../../../src/app/create-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAM1F,MAAM,CAAC,MAAM,WAAW,GAAG,CACvB,MAAc,EACd,QAA2B,EACS,EAAE;IACtC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,WAAW,CAA0B,OAAO,CAAC,CAAC;IAChE,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { from, of, merge } from 'rxjs';
2
+ import { catchError, filter, last, map, switchMap } from 'rxjs/operators';
3
+ import { actions } from './actions';
4
+ export const handleFetchManifest = (provider) => (action$) => action$.pipe(filter(actions.fetchManifest.match), switchMap(({ payload: appKey }) => {
5
+ const fetch$ = from(provider.getAppManifest(appKey)).pipe(filter((x) => !!x), map(actions.setManifest));
6
+ return merge(fetch$, fetch$.pipe(last(), map(({ payload }) => actions.fetchManifest.success(payload)))).pipe(catchError((err) => {
7
+ return of(actions.fetchManifest.failure(err));
8
+ }));
9
+ }));
10
+ export const handleFetchConfig = (provider) => (action$) => action$.pipe(filter(actions.fetchConfig.match), switchMap(({ payload: appKey }) => {
11
+ const fetch$ = from(provider.getAppConfig(appKey)).pipe(map(actions.setConfig));
12
+ return merge(fetch$, fetch$.pipe(last(), map(({ payload }) => actions.fetchConfig.success(payload)))).pipe(catchError((err) => of(actions.fetchConfig.failure(err))));
13
+ }));
14
+ export const handleImportApplication = () => (action$) => action$.pipe(filter(actions.importApp.match), switchMap(({ payload }) => {
15
+ return from(import(payload)).pipe(map(actions.importApp.success), catchError((err) => of(actions.importApp.failure(err))));
16
+ }));
17
+ //# sourceMappingURL=flows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/app/flows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,CAAC,MAAM,mBAAmB,GAC5B,CAAC,QAA2B,EAAiC,EAAE,CAC/D,CAAC,OAAO,EAAE,EAAE,CACR,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAClB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAC3B,CAAC;IACF,OAAO,KAAK,CACR,MAAM,EACN,MAAM,CAAC,IAAI,CACP,IAAI,EAAE,EACN,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC/D,CACJ,CAAC,IAAI,CACF,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CACL,CAAC;AACN,CAAC,CAAC,CACL,CAAC;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAC1B,CAAC,QAA2B,EAAiC,EAAE,CAC/D,CAAC,OAAO,EAAE,EAAE,CACR,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,OAAO,KAAK,CACR,MAAM,EACN,MAAM,CAAC,IAAI,CACP,IAAI,EAAE,EACN,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC7D,CACJ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC,CACL,CAAC;AAEV,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAkC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CACpF,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC7B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAC9B,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAC1D,CAAC;AACN,CAAC,CAAC,CACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/app/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ export class AppManifestError extends Error {
2
+ static fromHttpResponse(response, options) {
3
+ switch (response.status) {
4
+ case 401:
5
+ return new AppManifestError('unauthorized', 'failed to load application manifest, request not authorized', options);
6
+ case 404:
7
+ return new AppManifestError('not_found', 'application manifest not found', options);
8
+ }
9
+ return new AppManifestError('unknown', `failed to load application manifest, status code ${response.status}`, options);
10
+ }
11
+ constructor(type, message, options) {
12
+ super(message, options);
13
+ this.type = type;
14
+ }
15
+ }
16
+ export class AppConfigError extends Error {
17
+ static fromHttpResponse(response, options) {
18
+ switch (response.status) {
19
+ case 401:
20
+ return new AppConfigError('unauthorized', 'failed to load application config, request not authorized', options);
21
+ case 404:
22
+ return new AppConfigError('not_found', 'application config not found', options);
23
+ }
24
+ return new AppConfigError('unknown', `failed to load application config, status code ${response.status}`, options);
25
+ }
26
+ constructor(type, message, options) {
27
+ super(message, options);
28
+ this.type = type;
29
+ }
30
+ }
31
+ export class AppScriptModuleError extends Error {
32
+ constructor(type, message, options) {
33
+ super(message, options);
34
+ this.type = type;
35
+ }
36
+ }
37
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACvC,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAsB;QAC9D,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACrB,KAAK,GAAG;gBACJ,OAAO,IAAI,gBAAgB,CACvB,cAAc,EACd,6DAA6D,EAC7D,OAAO,CACV,CAAC;YACN,KAAK,GAAG;gBACJ,OAAO,IAAI,gBAAgB,CAAC,WAAW,EAAE,gCAAgC,EAAE,OAAO,CAAC,CAAC;SAC3F;QACD,OAAO,IAAI,gBAAgB,CACvB,SAAS,EACT,oDAAoD,QAAQ,CAAC,MAAM,EAAE,EACrE,OAAO,CACV,CAAC;IACN,CAAC;IACD,YAA4B,IAAkB,EAAE,OAAgB,EAAE,OAAsB;QACpF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QADA,SAAI,GAAJ,IAAI,CAAc;IAE9C,CAAC;CACJ;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACrC,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAsB;QAC9D,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACrB,KAAK,GAAG;gBACJ,OAAO,IAAI,cAAc,CACrB,cAAc,EACd,2DAA2D,EAC3D,OAAO,CACV,CAAC;YACN,KAAK,GAAG;gBACJ,OAAO,IAAI,cAAc,CAAC,WAAW,EAAE,8BAA8B,EAAE,OAAO,CAAC,CAAC;SACvF;QACD,OAAO,IAAI,cAAc,CACrB,SAAS,EACT,kDAAkD,QAAQ,CAAC,MAAM,EAAE,EACnE,OAAO,CACV,CAAC;IACN,CAAC;IACD,YAA4B,IAAkB,EAAE,OAAgB,EAAE,OAAsB;QACpF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QADA,SAAI,GAAJ,IAAI,CAAc;IAE9C,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC3C,YAA4B,IAAkB,EAAE,OAAgB,EAAE,OAAsB;QACpF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QADA,SAAI,GAAJ,IAAI,CAAc;IAE9C,CAAC;CACJ"}
@@ -0,0 +1,7 @@
1
+ import { FrameworkEvent } from '@equinor/fusion-framework-module-event';
2
+ export class AppModulesLoadedEvent extends FrameworkEvent {
3
+ constructor(appKey, modules, init) {
4
+ super('onAppModulesLoaded', Object.assign(Object.assign({}, init), { detail: { appKey, modules } }));
5
+ }
6
+ }
7
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAsB,MAAM,wCAAwC,CAAC;AAY5F,MAAM,OAAO,qBAEX,SAAQ,cAAmD;IACzD,YACI,MAAc,EACd,OAAqC,EACrC,IAA0D;QAE1D,KAAK,CAAC,oBAAoB,kCAAO,IAAI,KAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAG,CAAC;IAC1E,CAAC;CACJ"}