@equinor/fusion-framework-module-app 5.3.6 → 5.3.8
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 +67 -0
- package/dist/esm/AppConfigBuilder.js +3 -0
- package/dist/esm/AppConfigBuilder.js.map +1 -1
- package/dist/esm/AppConfigurator.js +10 -0
- package/dist/esm/AppConfigurator.js.map +1 -1
- package/dist/esm/AppModuleProvider.js +29 -0
- package/dist/esm/AppModuleProvider.js.map +1 -1
- package/dist/esm/app/App.js +102 -12
- package/dist/esm/app/App.js.map +1 -1
- package/dist/esm/app/actions.js +6 -0
- package/dist/esm/app/actions.js.map +1 -1
- package/dist/esm/app/create-reducer.js +6 -3
- package/dist/esm/app/create-reducer.js.map +1 -1
- package/dist/esm/app/create-state.js +4 -0
- package/dist/esm/app/create-state.js.map +1 -1
- package/dist/esm/app/flows.js +59 -8
- package/dist/esm/app/flows.js.map +1 -1
- package/dist/esm/enable-app-module.js +7 -1
- package/dist/esm/enable-app-module.js.map +1 -1
- package/dist/esm/errors.js +39 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/helpers.js +10 -0
- package/dist/esm/helpers.js.map +1 -1
- package/dist/esm/module.js +21 -0
- package/dist/esm/module.js.map +1 -1
- package/dist/esm/version.js +2 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/AppConfigurator.d.ts +3 -0
- package/dist/types/AppModuleProvider.d.ts +26 -0
- package/dist/types/app/App.d.ts +100 -0
- package/dist/types/app/actions.d.ts +6 -0
- package/dist/types/app/create-reducer.d.ts +48 -1
- package/dist/types/app/events.d.ts +20 -2
- package/dist/types/app/flows.d.ts +18 -0
- package/dist/types/enable-app-module.d.ts +4 -0
- package/dist/types/errors.d.ts +39 -0
- package/dist/types/events.d.ts +3 -0
- package/dist/types/helpers.d.ts +8 -0
- package/dist/types/module.d.ts +5 -0
- package/dist/types/types.d.ts +4 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +9 -9
- package/src/app/create-reducer.ts +31 -29
- package/src/version.ts +1 -1
package/dist/esm/app/actions.js
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { createAction, createAsyncAction, } from '@equinor/fusion-observable';
|
|
2
2
|
const createActions = () => ({
|
|
3
|
+
/** Manifest loading */
|
|
3
4
|
setManifest: createAction('set_manifest', (manifest, update) => ({
|
|
4
5
|
payload: manifest,
|
|
5
6
|
meta: {
|
|
7
|
+
// TODO when updating
|
|
6
8
|
created: Date.now(),
|
|
7
9
|
update,
|
|
8
10
|
},
|
|
9
11
|
})),
|
|
10
12
|
fetchManifest: createAsyncAction('fetch_manifest', (key, update) => ({ payload: key, meta: { update } }), (manifest) => ({ payload: manifest }), (error) => ({ payload: error })),
|
|
13
|
+
/** Config loading */
|
|
11
14
|
setConfig: createAction('set_config', (config) => ({ payload: config })),
|
|
12
15
|
fetchConfig: createAsyncAction('fetch_config', (key) => ({ payload: key }), (config) => ({ payload: config }), (error) => ({ payload: error })),
|
|
16
|
+
/** App loading */
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
18
|
setModule: createAction('set_module', (module) => ({ payload: module })),
|
|
14
19
|
importApp: createAsyncAction('import_app', (entrypoint) => ({ payload: entrypoint }), (module) => ({ payload: module }), (error) => ({ payload: error })),
|
|
20
|
+
// App Instance
|
|
15
21
|
setInstance: createAction('set_instance', (instance) => ({
|
|
16
22
|
payload: instance,
|
|
17
23
|
})),
|
|
@@ -1 +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;
|
|
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;IACzB,uBAAuB;IACvB,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,QAAqB,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE;YACF,qBAAqB;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,MAAM;SACT;KACJ,CAAC,CAAC;IAEH,aAAa,EAAE,iBAAiB,CAC5B,gBAAgB,EAChB,CAAC,GAAW,EAAE,MAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EACvE,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;IACD,qBAAqB;IACrB,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;IACD,kBAAkB;IAClB,8DAA8D;IAC9D,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;IAED,eAAe;IACf,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,QAA4B,EAAE,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,UAAU,EAAE,iBAAiB,CACzB,gBAAgB,EAChB,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,CAC3C;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getBaseType, createReducer as makeReducer, isCompleteAction, isRequestAction, } from '@equinor/fusion-observable';
|
|
2
2
|
import { enableMapSet } from 'immer';
|
|
3
3
|
enableMapSet();
|
|
4
4
|
import { actions } from './actions';
|
|
5
5
|
export const createReducer = (value) => makeReducer(Object.assign(Object.assign({}, value), { status: new Set() }), (builder) => builder
|
|
6
|
+
// update or set manifest
|
|
6
7
|
.addCase(actions.setManifest, (state, action) => {
|
|
7
8
|
if (action.meta.update) {
|
|
8
9
|
state.manifest = Object.assign(Object.assign({}, state.manifest), action.payload);
|
|
@@ -20,11 +21,13 @@ export const createReducer = (value) => makeReducer(Object.assign(Object.assign(
|
|
|
20
21
|
.addCase(actions.setInstance, (state, action) => {
|
|
21
22
|
state.instance = action.payload;
|
|
22
23
|
})
|
|
24
|
+
// add status which indicates that a request is in progress
|
|
23
25
|
.addMatcher(isRequestAction, (state, action) => {
|
|
24
|
-
state.status.add(
|
|
26
|
+
state.status.add(getBaseType(action.type));
|
|
25
27
|
})
|
|
28
|
+
// remove status when a request is complete
|
|
26
29
|
.addMatcher(isCompleteAction, (state, action) => {
|
|
27
|
-
state.status.delete(
|
|
30
|
+
state.status.delete(getBaseType(action.type));
|
|
28
31
|
}));
|
|
29
32
|
export default createReducer;
|
|
30
33
|
//# sourceMappingURL=create-reducer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-reducer.js","sourceRoot":"","sources":["../../../src/app/create-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"create-reducer.js","sourceRoot":"","sources":["../../../src/app/create-reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,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,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AAI7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAA4B,EAAE,EAAE,CAC1D,WAAW,CACP,gCAAK,KAAK,KAAE,MAAM,EAAE,IAAI,GAAG,EAAE,GAAoB,EACjD,CAAC,OAAO,EAAE,EAAE,CACR,OAAO;IACH,yBAAyB;KACxB,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,QAAQ,mCAAQ,KAAK,CAAC,QAAQ,GAAK,MAAM,CAAC,OAAO,CAAE,CAAC;IAC9D,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;IACpC,CAAC;AACL,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;IACF,2DAA2D;KAC1D,UAAU,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC3C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;IACF,2CAA2C;KAC1C,UAAU,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CACb,CAAC;AAEN,eAAe,aAAa,CAAC"}
|
|
@@ -3,9 +3,13 @@ import { createReducer } from './create-reducer';
|
|
|
3
3
|
import { handleFetchManifest, handleFetchConfig, handleImportApplication } from './flows';
|
|
4
4
|
export const createState = (value, provider) => {
|
|
5
5
|
const reducer = createReducer(value);
|
|
6
|
+
// create state
|
|
6
7
|
const state = new FlowSubject(reducer);
|
|
8
|
+
// add handler for fetching manifest
|
|
7
9
|
state.addFlow(handleFetchManifest(provider));
|
|
10
|
+
// add handler for fetching config
|
|
8
11
|
state.addFlow(handleFetchConfig(provider));
|
|
12
|
+
// add handler for loading application script
|
|
9
13
|
state.addFlow(handleImportApplication());
|
|
10
14
|
return state;
|
|
11
15
|
};
|
|
@@ -1 +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,KAA4B,EAC5B,QAA2B,EACS,EAAE;IACtC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;
|
|
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,KAA4B,EAC5B,QAA2B,EACS,EAAE;IACtC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAErC,eAAe;IACf,MAAM,KAAK,GAAG,IAAI,WAAW,CAA0B,OAAO,CAAC,CAAC;IAEhE,oCAAoC;IACpC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7C,kCAAkC;IAClC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE3C,6CAA6C;IAC7C,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAEzC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
|
package/dist/esm/app/flows.js
CHANGED
|
@@ -1,20 +1,71 @@
|
|
|
1
1
|
import { from, of, concat } from 'rxjs';
|
|
2
2
|
import { catchError, filter, last, map, share, switchMap } from 'rxjs/operators';
|
|
3
3
|
import { actions } from './actions';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Handles the fetch manifest action by fetching the app manifest from the provider,
|
|
6
|
+
* dispatching success or failure actions based on the result.
|
|
7
|
+
*
|
|
8
|
+
* @param provider The AppModuleProvider used to fetch the app manifest.
|
|
9
|
+
* @returns A Flow function that takes an Observable of actions and returns an Observable of actions.
|
|
10
|
+
*/
|
|
11
|
+
export const handleFetchManifest = (provider) => (action$) => action$.pipe(
|
|
12
|
+
// only handle fetch manifest request actions
|
|
13
|
+
filter(actions.fetchManifest.match),
|
|
14
|
+
// when request is received, abort any ongoing request and start new
|
|
15
|
+
switchMap((action) => {
|
|
5
16
|
const { payload: appKey, meta: { update }, } = action;
|
|
6
|
-
|
|
7
|
-
|
|
17
|
+
// fetch manifest from provider
|
|
18
|
+
const subject = from(provider.getAppManifest(appKey)).pipe(
|
|
19
|
+
// filter out null values
|
|
20
|
+
filter((x) => !!x),
|
|
21
|
+
// allow multiple subscriptions
|
|
22
|
+
share());
|
|
23
|
+
// first load manifest and then dispatch success action
|
|
24
|
+
return concat(subject.pipe(map((manifest) => actions.setManifest(manifest, update))), subject.pipe(last(), map((manifest) => actions.fetchManifest.success(manifest)))).pipe(
|
|
25
|
+
// catch any error and dispatch failure action
|
|
26
|
+
catchError((err) => {
|
|
8
27
|
return of(actions.fetchManifest.failure(err));
|
|
9
28
|
}));
|
|
10
29
|
}));
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Handles the fetch config action by fetching the app configuration from the provider,
|
|
32
|
+
* filtering out null values, and dispatching success or failure actions accordingly.
|
|
33
|
+
*
|
|
34
|
+
* @param provider The AppModuleProvider used to fetch the app configuration.
|
|
35
|
+
* @returns A Flow function that takes an Observable of actions and returns an Observable of actions.
|
|
36
|
+
*/
|
|
37
|
+
export const handleFetchConfig = (provider) => (action$) => action$.pipe(
|
|
38
|
+
// only handle fetch config request actions
|
|
39
|
+
filter(actions.fetchConfig.match),
|
|
40
|
+
// when request is received, abort any ongoing request and start new
|
|
41
|
+
switchMap(({ payload: appKey }) => {
|
|
42
|
+
// fetch manifest from provider
|
|
43
|
+
const subject = from(provider.getAppConfig(appKey)).pipe(
|
|
44
|
+
// filter out null values
|
|
45
|
+
filter((x) => !!x),
|
|
46
|
+
// allow multiple subscriptions
|
|
47
|
+
share());
|
|
48
|
+
// first load manifest and then dispatch success action
|
|
49
|
+
return concat(subject.pipe(map((manifest) => actions.setConfig(manifest))), subject.pipe(last(), map((manifest) => actions.fetchConfig.success(manifest)))).pipe(
|
|
50
|
+
// catch any error and dispatch failure action
|
|
51
|
+
catchError((err) => {
|
|
14
52
|
return of(actions.fetchConfig.failure(err));
|
|
15
53
|
}));
|
|
16
54
|
}));
|
|
17
|
-
|
|
18
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Handles the import application flow.
|
|
57
|
+
* @returns A flow that takes in actions and returns an observable of AppBundleState.
|
|
58
|
+
*/
|
|
59
|
+
export const handleImportApplication = () => (action$) => action$.pipe(
|
|
60
|
+
// only handle import script request actions
|
|
61
|
+
filter(actions.importApp.match),
|
|
62
|
+
// when request is received, abort any ongoing request and start new
|
|
63
|
+
switchMap(({ payload }) => {
|
|
64
|
+
// dynamically import the application script
|
|
65
|
+
return from(import(payload)).pipe(
|
|
66
|
+
// dispatch success action
|
|
67
|
+
map(actions.importApp.success),
|
|
68
|
+
// catch any error and dispatch failure action
|
|
69
|
+
catchError((err) => of(actions.importApp.failure(err))));
|
|
19
70
|
}));
|
|
20
71
|
//# sourceMappingURL=flows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/app/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;
|
|
1
|
+
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/app/flows.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { module } from './module';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Method for enabling the Service module
|
|
4
|
+
* @param configurator - configuration object
|
|
5
|
+
*/
|
|
6
|
+
export const enableAppModule = (
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
configurator, builder) => {
|
|
3
9
|
configurator.addConfig({
|
|
4
10
|
module,
|
|
5
11
|
configure: (appConfigurator) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable-app-module.js","sourceRoot":"","sources":["../../src/enable-app-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"enable-app-module.js","sourceRoot":"","sources":["../../src/enable-app-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;AAC3B,8DAA8D;AAC9D,YAA4C,EAC5C,OAAkC,EAC9B,EAAE;IACN,YAAY,CAAC,SAAS,CAAC;QACnB,MAAM;QACN,SAAS,EAAE,CAAC,eAAe,EAAE,EAAE;YAC3B,OAAO,IAAI,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
|
package/dist/esm/errors.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents an error that occurs when loading an application manifest.
|
|
3
|
+
*/
|
|
1
4
|
export class AppManifestError extends Error {
|
|
5
|
+
/**
|
|
6
|
+
* Creates an instance of AppManifestError based on the HTTP response status.
|
|
7
|
+
* @param response The HTTP response.
|
|
8
|
+
* @param options Optional error options.
|
|
9
|
+
* @returns An instance of AppManifestError.
|
|
10
|
+
*/
|
|
2
11
|
static fromHttpResponse(response, options) {
|
|
3
12
|
switch (response.status) {
|
|
4
13
|
case 401:
|
|
@@ -8,12 +17,27 @@ export class AppManifestError extends Error {
|
|
|
8
17
|
}
|
|
9
18
|
return new AppManifestError('unknown', `failed to load application manifest, status code ${response.status}`, options);
|
|
10
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates an instance of AppManifestError.
|
|
22
|
+
* @param type The type of the error.
|
|
23
|
+
* @param message The error message.
|
|
24
|
+
* @param options Optional error options.
|
|
25
|
+
*/
|
|
11
26
|
constructor(type, message, options) {
|
|
12
27
|
super(message, options);
|
|
13
28
|
this.type = type;
|
|
14
29
|
}
|
|
15
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Represents an error that occurs in the application configuration.
|
|
33
|
+
*/
|
|
16
34
|
export class AppConfigError extends Error {
|
|
35
|
+
/**
|
|
36
|
+
* Creates an instance of `AppConfigError` based on the HTTP response status.
|
|
37
|
+
* @param response The HTTP response.
|
|
38
|
+
* @param options Additional error options.
|
|
39
|
+
* @returns An instance of `AppConfigError` based on the HTTP response status.
|
|
40
|
+
*/
|
|
17
41
|
static fromHttpResponse(response, options) {
|
|
18
42
|
switch (response.status) {
|
|
19
43
|
case 401:
|
|
@@ -23,12 +47,27 @@ export class AppConfigError extends Error {
|
|
|
23
47
|
}
|
|
24
48
|
return new AppConfigError('unknown', `failed to load application config, status code ${response.status}`, options);
|
|
25
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates an instance of `AppConfigError`.
|
|
52
|
+
* @param type The type of the application error.
|
|
53
|
+
* @param message The error message.
|
|
54
|
+
* @param options Additional error options.
|
|
55
|
+
*/
|
|
26
56
|
constructor(type, message, options) {
|
|
27
57
|
super(message, options);
|
|
28
58
|
this.type = type;
|
|
29
59
|
}
|
|
30
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Represents an error that occurs when loading the application script.
|
|
63
|
+
*/
|
|
31
64
|
export class AppScriptModuleError extends Error {
|
|
65
|
+
/**
|
|
66
|
+
* Creates a new instance of the AppScriptModuleError class.
|
|
67
|
+
* @param type The type of the error.
|
|
68
|
+
* @param message The error message.
|
|
69
|
+
* @param options Additional options for the error.
|
|
70
|
+
*/
|
|
32
71
|
constructor(type, message, options) {
|
|
33
72
|
super(message, options);
|
|
34
73
|
this.type = type;
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACvC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAsB;QAC9D,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtB,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;QAC5F,CAAC;QACD,OAAO,IAAI,gBAAgB,CACvB,SAAS,EACT,oDAAoD,QAAQ,CAAC,MAAM,EAAE,EACrE,OAAO,CACV,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,YACoB,IAAkB,EAClC,OAAgB,EAChB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAc;IAKtC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACrC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAsB;QAC9D,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtB,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;QACxF,CAAC;QACD,OAAO,IAAI,cAAc,CACrB,SAAS,EACT,kDAAkD,QAAQ,CAAC,MAAM,EAAE,EACnE,OAAO,CACV,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,YACoB,IAAkB,EAClC,OAAgB,EAChB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAc;IAKtC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC3C;;;;;OAKG;IACH,YACoB,IAAkB,EAClC,OAAgB,EAChB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAc;IAKtC,CAAC;CACJ"}
|
package/dist/esm/helpers.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
// manifest properties to compare
|
|
1
2
|
const compareKey = ['key', 'version'];
|
|
3
|
+
/**
|
|
4
|
+
* Compares two app manifests for equality.
|
|
5
|
+
*
|
|
6
|
+
* @template T - The type of the app manifest.
|
|
7
|
+
* @param a - The first app manifest.
|
|
8
|
+
* @param b - The second app manifest.
|
|
9
|
+
* @returns True if the app manifests are equal, false otherwise.
|
|
10
|
+
*/
|
|
2
11
|
export const compareAppManifest = (a, b) => {
|
|
12
|
+
// use compareKey to compare only the keys that are important for equality
|
|
3
13
|
return compareKey.every((key) => (a === null || a === void 0 ? void 0 : a[key]) === (b === null || b === void 0 ? void 0 : b[key]));
|
|
4
14
|
};
|
|
5
15
|
//# sourceMappingURL=helpers.js.map
|
package/dist/esm/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,iCAAiC;AACjC,MAAM,UAAU,GAA6B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAwB,CAAK,EAAE,CAAK,EAAW,EAAE;IAC/E,0EAA0E;IAC1E,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,GAAG,CAAC,OAAK,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AAC5D,CAAC,CAAC"}
|
package/dist/esm/module.js
CHANGED
|
@@ -10,14 +10,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { AppConfigurator } from './AppConfigurator';
|
|
11
11
|
import { AppModuleProvider } from './AppModuleProvider';
|
|
12
12
|
export const moduleKey = 'app';
|
|
13
|
+
/**
|
|
14
|
+
* Represents a module for handling applications.
|
|
15
|
+
* Responsible for loading applications, configurations and manifests.
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
13
18
|
export const module = {
|
|
19
|
+
/**
|
|
20
|
+
* The name of the module.
|
|
21
|
+
*/
|
|
14
22
|
name: moduleKey,
|
|
23
|
+
/**
|
|
24
|
+
* Configures the module.
|
|
25
|
+
* @returns An instance of AppConfigurator.
|
|
26
|
+
*/
|
|
15
27
|
configure: () => new AppConfigurator(),
|
|
28
|
+
/**
|
|
29
|
+
* Initializes the module.
|
|
30
|
+
* @param args - The initialization arguments.
|
|
31
|
+
* @returns A new instance of AppModuleProvider.
|
|
32
|
+
*/
|
|
16
33
|
initialize: (args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
34
|
const config = yield args.config.createConfig(args);
|
|
18
35
|
const event = yield args.requireInstance('event').catch(() => undefined);
|
|
19
36
|
return new AppModuleProvider({ config, event });
|
|
20
37
|
}),
|
|
38
|
+
/**
|
|
39
|
+
* Disposes the module.
|
|
40
|
+
* @param args - The disposal arguments.
|
|
41
|
+
*/
|
|
21
42
|
dispose: (args) => {
|
|
22
43
|
args.instance.dispose();
|
|
23
44
|
},
|
package/dist/esm/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAI/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,SAAS;IACf;;;OAGG;IACH,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE;IACtC;;;;OAIG;IACH,UAAU,EAAE,CAAO,IAAI,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,MAA0B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC,CAAA;IACD;;;OAGG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,QAAyC,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;CACJ,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|