@actdim/dynstruct 1.2.5 → 1.2.7
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/README.md +2338 -18
- package/dist/appDomain/appContracts.d.ts.map +1 -1
- package/dist/appDomain/appContracts.es.js +1 -1
- package/dist/appDomain/appContracts.es.js.map +1 -1
- package/dist/appDomain/navigation.es.js.map +1 -1
- package/dist/appDomain/security/securityContracts.es.js.map +1 -1
- package/dist/appDomain/security/securityProvider.d.ts +6 -5
- package/dist/appDomain/security/securityProvider.d.ts.map +1 -1
- package/dist/appDomain/security/securityProvider.es.js +70 -45
- package/dist/appDomain/security/securityProvider.es.js.map +1 -1
- package/dist/appDomain/util.es.js.map +1 -1
- package/dist/componentModel/DynamicContent.es.js.map +1 -1
- package/dist/componentModel/adapters.es.js.map +1 -1
- package/dist/componentModel/componentContext.d.ts +5 -5
- package/dist/componentModel/componentContext.d.ts.map +1 -1
- package/dist/componentModel/componentContext.es.js.map +1 -1
- package/dist/componentModel/contracts.d.ts +23 -19
- package/dist/componentModel/contracts.d.ts.map +1 -1
- package/dist/componentModel/contracts.es.js +1 -1
- package/dist/componentModel/contracts.es.js.map +1 -1
- package/dist/componentModel/core.d.ts +2 -2
- package/dist/componentModel/core.d.ts.map +1 -1
- package/dist/componentModel/core.es.js +115 -111
- package/dist/componentModel/core.es.js.map +1 -1
- package/dist/componentModel/react/errorBoundary.d.ts +19 -0
- package/dist/componentModel/react/errorBoundary.d.ts.map +1 -0
- package/dist/componentModel/react/errorBoundary.es.js +52 -0
- package/dist/componentModel/react/errorBoundary.es.js.map +1 -0
- package/dist/componentModel/react.d.ts +2 -2
- package/dist/componentModel/react.d.ts.map +1 -1
- package/dist/componentModel/react.es.js +156 -139
- package/dist/componentModel/react.es.js.map +1 -1
- package/dist/componentModel/scope.d.ts +1 -1
- package/dist/componentModel/scope.d.ts.map +1 -1
- package/dist/componentModel/scope.es.js +1 -1
- package/dist/componentModel/scope.es.js.map +1 -1
- package/dist/globals.es.js.map +1 -1
- package/dist/net/apiError.es.js.map +1 -1
- package/dist/net/client.d.ts +9 -5
- package/dist/net/client.d.ts.map +1 -1
- package/dist/net/client.es.js +96 -80
- package/dist/net/client.es.js.map +1 -1
- package/dist/net/request.es.js.map +1 -1
- package/dist/reactHooks.d.ts +1 -1
- package/dist/reactHooks.d.ts.map +1 -1
- package/dist/reactHooks.es.js.map +1 -1
- package/dist/services/ServiceProvider.es.js.map +1 -1
- package/dist/services/StorageService.es.js.map +1 -1
- package/dist/services/react/NavService.d.ts.map +1 -1
- package/dist/services/react/NavService.es.js +15 -15
- package/dist/services/react/NavService.es.js.map +1 -1
- package/dist/services/react/ServiceProvider.d.ts +2 -2
- package/dist/services/react/ServiceProvider.d.ts.map +1 -1
- package/dist/services/react/ServiceProvider.es.js.map +1 -1
- package/dist/services/react/StorageService.d.ts.map +1 -1
- package/dist/services/react/StorageService.es.js +15 -19
- package/dist/services/react/StorageService.es.js.map +1 -1
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appContracts.d.ts","sourceRoot":"","sources":["../../src/appDomain/appContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,wBAAwB,IAAI,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACrI,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,SAAS,iBAAiB,CAAC;AACxC,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AACtD,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,eAAO,MAAM,OAAO,eAAe,CAAC;AACpC,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAE5C,eAAO,MAAM,MAAM,cAAc,CAAC;AAClC,eAAO,MAAM,aAAa,gBAAW,CAAC;AAEtC,eAAO,MAAM,MAAM,cAAc,CAAC;AAElC,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAGhD,MAAM,MAAM,OAAO,GAAG;IAIlB,QAAQ,EAAE,MAAM,CAAC;IAIjB,MAAM,EAAE,MAAM,CAAC;IAIf,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,KAAK,GAAG,GAAG,IAAI,OAAO,GAAG;IAI7C,KAAK,EAAE,KAAK,CAAC;IAOb,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAQf,KAAK,GAML,MAAM,GAKN,SAAS,CAAC;AAGhB,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAGhE,MAAM,MAAM,QAAQ,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI;IACpE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEjD,KAAK,cAAc,CAAC,UAAU,SAAS,SAAS,IAAI;KAC/C,CAAC,IAAI,MAAM,UAAU,GAAG;QACrB,KAAK,EAAE,CAAC,CAAC;QACT,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;KAC3C;CACJ,CAAC,MAAM,UAAU,CAAC,CAAC;AAEpB,MAAM,MAAM,UAAU,GAAG;IAErB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAE3C,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"appContracts.d.ts","sourceRoot":"","sources":["../../src/appDomain/appContracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $C_ERROR as E } from "@actdim/msgmesh/contracts";
|
|
2
|
-
const O = "APP.NAV.GOTO", A = "APP.NAV.CONTEXT.GET", R = "APP.NAV.CONTEXT.CHANGED", P = "APP.NAV.HISTORY.READ", o = "APP.NOTICE", N = "APP.CONFIG.GET", s = "APP.ERROR", t = E, $ = "APP.FETCH", c = "APP.STORE.GET", n = "APP.STORE.SET", C = "APP.STORE.REMOVE", G = Symbol("
|
|
2
|
+
const O = "APP.NAV.GOTO", A = "APP.NAV.CONTEXT.GET", R = "APP.NAV.CONTEXT.CHANGED", P = "APP.NAV.HISTORY.READ", o = "APP.NOTICE", N = "APP.CONFIG.GET", s = "APP.ERROR", t = E, $ = "APP.FETCH", c = "APP.STORE.GET", n = "APP.STORE.SET", C = "APP.STORE.REMOVE", G = Symbol("isAppError");
|
|
3
3
|
export {
|
|
4
4
|
N as $CONFIG_GET,
|
|
5
5
|
s as $ERROR,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appContracts.es.js","sources":["../../src/appDomain/appContracts.ts"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"appContracts.es.js","sources":["../../src/appDomain/appContracts.ts"],"sourcesContent":null,"names":["$NAV_GOTO","$NAV_CONTEXT_GET","$NAV_CONTEXT_CHANGED","$NAV_HISTORY_READ","$NOTICE","$CONFIG_GET","$ERROR","$MSGBUS_ERROR","$C_ERROR","$FETCH","$STORE_GET","$STORE_SET","$STORE_REMOVE","$isAppError"],"mappings":";AAOO,MAAMA,IAAY,gBACZC,IAAmB,uBACnBC,IAAuB,2BACvBC,IAAoB,wBAEpBC,IAAU,cACVC,IAAc,kBAEdC,IAAS,aACTC,IAAgBC,GAEhBC,IAAS,aAETC,IAAa,iBACbC,IAAa,iBACbC,IAAgB,oBAmFhBC,IAAc,OAAO,YAAY;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.es.js","sources":["../../src/appDomain/navigation.ts"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"navigation.es.js","sources":["../../src/appDomain/navigation.ts"],"sourcesContent":null,"names":["createNavigationRoute","options","toPath","compile","matcher","match","params","path","matchResult"],"mappings":";AAIO,SAASA,EAAuEC,GAIpF;AACC,QAAMC,IAASC,EAAQF,EAAQ,OAAO,GAChCG,IAAUC,EAAMJ,EAAQ,OAAO;AACrC,SAAO;AAAA,IACH,MAAM,CAACK,MACEA,IAGEJ,EAAOI,CAAM,IAFTL,EAAQ;AAAA,IAIvB,OAAO,CAACM,MAAiB;AACrB,YAAMC,IAAcJ,EAAQG,CAAI;AAChC,UAAIC,MAAgB;AAGpB,eAAOA,EAAY;AAAA,IACvB;AAAA,IACA,SAASP,EAAQ;AAAA,IACjB,eAAeA,EAAQ;AAAA,EAAA;AAE/B;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securityContracts.es.js","sources":["../../../src/appDomain/security/securityContracts.ts"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"securityContracts.es.js","sources":["../../../src/appDomain/security/securityContracts.ts"],"sourcesContent":null,"names":["AccessLevel","$AUTH_SIGNIN","$AUTH_SIGNIN_REQUEST","$AUTH_SIGNOUT","$AUTH_SIGNOUT_REQUEST","$AUTH_REFRESH","$AUTH_ENSURE","$ACL_GET","$CONTEXT_GET","$CONFIG_GET"],"mappings":"AAGO,IAAKA,sBAAAA,OACRA,EAAAA,EAAA,OAAO,CAAA,IAAP,QACAA,EAAAA,EAAA,YAAY,CAAA,IAAZ,aACAA,EAAAA,EAAA,WAAW,CAAA,IAAX,YACAA,EAAAA,EAAA,SAAS,CAAA,IAAT,UACAA,EAAAA,EAAA,WAAW,CAAA,IAAX,YACAA,EAAAA,EAAA,WAAW,EAAA,IAAX,YACAA,EAAAA,EAAA,OAAO,EAAA,IAAP,QAPQA,IAAAA,KAAA,CAAA,CAAA;AAoBL,MAAMC,IAAe,4BACfC,IAAuB,oCACvBC,IAAgB,6BAChBC,IAAwB,qCACxBC,IAAgB,6BAEhBC,IAAe,4BACfC,IAAW,wBACXC,IAAe,4BACfC,IAAc;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AccessLevel, IAccessDescriptor, ISecurable, UserCredentials, SecurityContext } from './securityContracts';
|
|
2
|
-
import {
|
|
3
|
-
import { BaseAppMsgStruct } from '../appContracts';
|
|
2
|
+
import { BaseAppContext } from '../appContracts';
|
|
4
3
|
export declare class SecurityProvider {
|
|
5
4
|
private msgBus;
|
|
6
5
|
private domainConfig;
|
|
@@ -13,9 +12,11 @@ export declare class SecurityProvider {
|
|
|
13
12
|
private tokenExpiresAt;
|
|
14
13
|
private acl;
|
|
15
14
|
private fetcher;
|
|
16
|
-
private
|
|
17
|
-
constructor(
|
|
18
|
-
|
|
15
|
+
private abortController;
|
|
16
|
+
constructor(context: BaseAppContext);
|
|
17
|
+
[Symbol.dispose](): void;
|
|
18
|
+
protected init(): Promise<void>;
|
|
19
|
+
getContext(): Promise<SecurityContext>;
|
|
19
20
|
private updateConfig;
|
|
20
21
|
restoreData(): Promise<void>;
|
|
21
22
|
get domain(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securityProvider.d.ts","sourceRoot":"","sources":["../../../src/appDomain/security/securityProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,UAAU,EAEV,eAAe,EAEf,eAAe,EASlB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"securityProvider.d.ts","sourceRoot":"","sources":["../../../src/appDomain/security/securityProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,UAAU,EAEV,eAAe,EAEf,eAAe,EASlB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAsD,cAAc,EAAoB,MAAM,0BAA0B,CAAC;AAkChI,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,YAAY,CAA2B;IAE/C,OAAO,CAAC,WAAW,CAAqB;IAExC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,QAAQ,CAAM;IAGtB,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,OAAO,CAA8E;IAE7F,OAAO,CAAC,eAAe,CAAkB;gBAE7B,OAAO,EAAE,cAAc;IAwEnC,CAAC,MAAM,CAAC,OAAO,CAAC;cAIA,IAAI;IAMP,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;YAYrC,YAAY;IAUpB,WAAW;IAuDjB,IAAW,MAAM,IAAI,MAAM,CAE1B;IAaK,cAAc;IAsCP,UAAU;IA8BV,MAAM,CAAC,WAAW,EAAE,eAAe;IA+C1C,QAAQ;IAsCD,OAAO;IAkCP,WAAW;IA+CX,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC;IAU1C,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,cAAmB;CAOlF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { $CONTEXT_GET as m, $ACL_GET as f, $AUTH_SIGNIN as l, $AUTH_SIGNOUT as
|
|
1
|
+
import { $CONTEXT_GET as m, $ACL_GET as f, $AUTH_SIGNIN as l, $AUTH_SIGNOUT as d, $AUTH_REFRESH as T, $AUTH_ENSURE as k, $CONFIG_GET as w, $AUTH_SIGNIN_REQUEST as C, AccessLevel as y } from "./securityContracts.es.js";
|
|
2
2
|
import { getValuePrefixer as E } from "@actdim/utico/typeCore";
|
|
3
3
|
import "jwt-decode";
|
|
4
4
|
import { getResponseResult as c } from "../../net/request.es.js";
|
|
5
5
|
import { ApiError as u } from "../../net/apiError.es.js";
|
|
6
|
-
import { $CONFIG_GET as p, $STORE_GET as
|
|
7
|
-
const
|
|
6
|
+
import { $CONFIG_GET as p, $STORE_GET as o, $STORE_REMOVE as r, $STORE_SET as h } from "../appContracts.es.js";
|
|
7
|
+
const S = {
|
|
8
8
|
accessToken: "ACCESS_TOKEN",
|
|
9
9
|
refreshToken: "REFRESH_TOKEN",
|
|
10
10
|
acl: "ACL",
|
|
@@ -12,7 +12,7 @@ const v = {
|
|
|
12
12
|
// signInInfo
|
|
13
13
|
authInfo: "AUTH_INFO"
|
|
14
14
|
};
|
|
15
|
-
class
|
|
15
|
+
class K {
|
|
16
16
|
// private isAuthenticated: boolean;
|
|
17
17
|
// private isExpired: boolean;
|
|
18
18
|
msgBus;
|
|
@@ -28,35 +28,54 @@ class _ {
|
|
|
28
28
|
// RBAC vs ABAC vs PBAC: https://habr.com/ru/companies/otus/articles/698080/
|
|
29
29
|
acl;
|
|
30
30
|
fetcher = window;
|
|
31
|
-
|
|
31
|
+
abortController;
|
|
32
32
|
constructor(s) {
|
|
33
|
-
this.msgBus = s, this.
|
|
33
|
+
this.msgBus = s.msgBus, this.abortController = new AbortController();
|
|
34
|
+
const e = [this.abortController.signal];
|
|
35
|
+
s?.abortSignal && e.push(s.abortSignal);
|
|
36
|
+
const t = {
|
|
37
|
+
abortSignal: AbortSignal.any(e)
|
|
38
|
+
};
|
|
39
|
+
this.msgBus.provide({
|
|
34
40
|
channel: m,
|
|
35
|
-
callback:
|
|
41
|
+
callback: (a) => this.getContext(),
|
|
42
|
+
options: t
|
|
36
43
|
}), this.msgBus.provide({
|
|
37
44
|
channel: f,
|
|
38
|
-
callback:
|
|
45
|
+
callback: (a) => this.getAcl(a.payload),
|
|
46
|
+
options: t
|
|
39
47
|
}), this.msgBus.provide({
|
|
40
48
|
channel: l,
|
|
41
|
-
callback:
|
|
49
|
+
callback: (a) => this.signIn(a.payload),
|
|
50
|
+
options: t
|
|
42
51
|
}), this.msgBus.provide({
|
|
43
|
-
channel:
|
|
44
|
-
callback:
|
|
52
|
+
channel: d,
|
|
53
|
+
callback: (a) => this.signOut(),
|
|
54
|
+
options: t
|
|
45
55
|
}), this.msgBus.provide({
|
|
46
56
|
channel: T,
|
|
47
|
-
callback:
|
|
57
|
+
callback: (a) => this.refreshAuth(),
|
|
58
|
+
options: t
|
|
48
59
|
}), this.msgBus.provide({
|
|
49
60
|
channel: k,
|
|
50
|
-
callback:
|
|
61
|
+
callback: (a) => this.ensureAuth(),
|
|
62
|
+
options: t
|
|
51
63
|
}), this.msgBus.provide({
|
|
52
64
|
channel: w,
|
|
53
|
-
callback: async (
|
|
65
|
+
callback: async (a) => (await this.msgBus.request({
|
|
54
66
|
channel: p
|
|
55
|
-
})).payload?.security
|
|
67
|
+
})).payload?.security,
|
|
68
|
+
options: t
|
|
56
69
|
});
|
|
57
70
|
}
|
|
58
|
-
|
|
59
|
-
|
|
71
|
+
[Symbol.dispose]() {
|
|
72
|
+
this.abortController.abort();
|
|
73
|
+
}
|
|
74
|
+
async init() {
|
|
75
|
+
this.domainConfig || await this.updateConfig();
|
|
76
|
+
}
|
|
77
|
+
async getContext() {
|
|
78
|
+
return await this.init(), {
|
|
60
79
|
accessToken: this.accessToken,
|
|
61
80
|
refreshToken: this.refreshToken,
|
|
62
81
|
authInfo: this.authInfo,
|
|
@@ -71,22 +90,22 @@ class _ {
|
|
|
71
90
|
});
|
|
72
91
|
this.domainConfig = s.payload.security;
|
|
73
92
|
const e = E(`${this.domainConfig?.id}/`);
|
|
74
|
-
this.storageKeys = e(
|
|
93
|
+
this.storageKeys = e(S), await this.restoreData();
|
|
75
94
|
}
|
|
76
95
|
async restoreData() {
|
|
77
96
|
let s = await this.msgBus.request({
|
|
78
|
-
channel:
|
|
97
|
+
channel: o,
|
|
79
98
|
payload: {
|
|
80
99
|
key: this.storageKeys.accessToken
|
|
81
100
|
}
|
|
82
101
|
});
|
|
83
|
-
this.accessToken = s.payload.data?.value, s = await this.msgBus.request({
|
|
84
|
-
channel:
|
|
102
|
+
if (this.accessToken = s.payload.data?.value, s = await this.msgBus.request({
|
|
103
|
+
channel: o,
|
|
85
104
|
payload: {
|
|
86
105
|
key: this.storageKeys.refreshToken
|
|
87
106
|
}
|
|
88
107
|
}), this.refreshToken = s.payload.data?.value, s = await this.msgBus.request({
|
|
89
|
-
channel:
|
|
108
|
+
channel: o,
|
|
90
109
|
payload: {
|
|
91
110
|
key: this.storageKeys.userCredentials
|
|
92
111
|
}
|
|
@@ -94,20 +113,23 @@ class _ {
|
|
|
94
113
|
userName: null,
|
|
95
114
|
password: null
|
|
96
115
|
}, s = await this.msgBus.request({
|
|
97
|
-
channel:
|
|
116
|
+
channel: o,
|
|
98
117
|
payload: {
|
|
99
118
|
key: this.storageKeys.authInfo
|
|
100
119
|
}
|
|
101
120
|
}), this.authInfo = s.payload.data?.value, s = await this.msgBus.request({
|
|
102
|
-
channel:
|
|
121
|
+
channel: o,
|
|
103
122
|
payload: {
|
|
104
123
|
key: this.storageKeys.acl
|
|
105
124
|
}
|
|
106
|
-
}), this.acl = s.payload.data?.value || null, this.accessToken
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
125
|
+
}), this.acl = s.payload.data?.value || null, this.accessToken) {
|
|
126
|
+
const e = await this.getContext();
|
|
127
|
+
this.msgBus.send({
|
|
128
|
+
channel: l,
|
|
129
|
+
group: "out",
|
|
130
|
+
payload: e
|
|
131
|
+
});
|
|
132
|
+
}
|
|
111
133
|
}
|
|
112
134
|
get domain() {
|
|
113
135
|
return this.domainConfig?.id;
|
|
@@ -124,27 +146,27 @@ class _ {
|
|
|
124
146
|
// removeSavedData
|
|
125
147
|
async clearSavedData() {
|
|
126
148
|
this.accessToken = null, await this.msgBus.request({
|
|
127
|
-
channel:
|
|
149
|
+
channel: r,
|
|
128
150
|
payload: {
|
|
129
151
|
key: this.storageKeys.accessToken
|
|
130
152
|
}
|
|
131
153
|
}), this.refreshToken = null, await this.msgBus.request({
|
|
132
|
-
channel:
|
|
154
|
+
channel: r,
|
|
133
155
|
payload: {
|
|
134
156
|
key: this.storageKeys.refreshToken
|
|
135
157
|
}
|
|
136
158
|
}), this.userCredentials = null, await this.msgBus.request({
|
|
137
|
-
channel:
|
|
159
|
+
channel: r,
|
|
138
160
|
payload: {
|
|
139
161
|
key: this.storageKeys.userCredentials
|
|
140
162
|
}
|
|
141
163
|
}), this.authInfo = null, await this.msgBus.request({
|
|
142
|
-
channel:
|
|
164
|
+
channel: r,
|
|
143
165
|
payload: {
|
|
144
166
|
key: this.storageKeys.authInfo
|
|
145
167
|
}
|
|
146
168
|
}), this.acl = null, await this.msgBus.request({
|
|
147
|
-
channel:
|
|
169
|
+
channel: r,
|
|
148
170
|
payload: {
|
|
149
171
|
key: this.storageKeys.acl
|
|
150
172
|
}
|
|
@@ -157,7 +179,7 @@ class _ {
|
|
|
157
179
|
group: "out"
|
|
158
180
|
}), e = async () => {
|
|
159
181
|
throw await this.msgBus.once({
|
|
160
|
-
channel:
|
|
182
|
+
channel: d,
|
|
161
183
|
group: "out"
|
|
162
184
|
}), new Error("Auth failed: login aborted");
|
|
163
185
|
};
|
|
@@ -169,6 +191,7 @@ class _ {
|
|
|
169
191
|
}), await Promise.race([s, e]);
|
|
170
192
|
}
|
|
171
193
|
async signIn(s) {
|
|
194
|
+
await this.init();
|
|
172
195
|
let e = this.domainConfig.routes?.authSignIn;
|
|
173
196
|
e = e.replace(/[?&]$/, "");
|
|
174
197
|
const n = JSON.stringify(s), t = {
|
|
@@ -179,11 +202,11 @@ class _ {
|
|
|
179
202
|
"Content-Type": "application/json",
|
|
180
203
|
Accept: "text/plain"
|
|
181
204
|
}
|
|
182
|
-
},
|
|
205
|
+
}, a = {
|
|
183
206
|
...t,
|
|
184
207
|
status: "executing"
|
|
185
|
-
},
|
|
186
|
-
await c(
|
|
208
|
+
}, i = await this.fetcher.fetch(e, t);
|
|
209
|
+
await c(i, a), u.assert(i, a), this.authInfo = i.resolved.json;
|
|
187
210
|
const g = this.authInfo;
|
|
188
211
|
return this.userCredentials = s, this.accessToken = g.accessToken, this.refreshToken = g.refreshToken, this.saveData(), this.getContext();
|
|
189
212
|
}
|
|
@@ -221,6 +244,7 @@ class _ {
|
|
|
221
244
|
});
|
|
222
245
|
}
|
|
223
246
|
async signOut() {
|
|
247
|
+
await this.init();
|
|
224
248
|
let s = this.domainConfig.routes?.authSignOut;
|
|
225
249
|
s && (s = s.replace(/[?&]$/, ""));
|
|
226
250
|
const e = {
|
|
@@ -237,6 +261,7 @@ class _ {
|
|
|
237
261
|
await c(t, n), u.assert(t, n), this.clearSavedData();
|
|
238
262
|
}
|
|
239
263
|
async refreshAuth() {
|
|
264
|
+
await this.init();
|
|
240
265
|
let s = this.domainConfig.routes?.authRefresh;
|
|
241
266
|
s && (s = s.replace(/[?&]$/, ""));
|
|
242
267
|
let e = {
|
|
@@ -251,23 +276,23 @@ class _ {
|
|
|
251
276
|
"Content-Type": "application/json",
|
|
252
277
|
Accept: "text/plain"
|
|
253
278
|
}
|
|
254
|
-
},
|
|
279
|
+
}, a = {
|
|
255
280
|
...t,
|
|
256
281
|
status: "executing"
|
|
257
|
-
},
|
|
258
|
-
return await c(
|
|
282
|
+
}, i = await this.fetcher.fetch(s, t);
|
|
283
|
+
return await c(i, a), u.assert(i, a), e = i.resolved.json, this.accessToken = e.accessToken, this.refreshToken = e.refreshToken, this.saveData(), this.getContext();
|
|
259
284
|
}
|
|
260
285
|
async getAcl(s) {
|
|
261
|
-
return {
|
|
262
|
-
[
|
|
286
|
+
return await this.init(), {
|
|
287
|
+
[y.Full]: ""
|
|
263
288
|
};
|
|
264
289
|
}
|
|
265
290
|
// authorize
|
|
266
|
-
async verifyAccess(s, e =
|
|
291
|
+
async verifyAccess(s, e = y.Full) {
|
|
267
292
|
return this.getAcl(s), !1;
|
|
268
293
|
}
|
|
269
294
|
}
|
|
270
295
|
export {
|
|
271
|
-
|
|
296
|
+
K as SecurityProvider
|
|
272
297
|
};
|
|
273
298
|
//# sourceMappingURL=securityProvider.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securityProvider.es.js","sources":["../../../src/appDomain/security/securityProvider.ts"],"sourcesContent":["import {\r\n AccessLevel,\r\n IAccessDescriptor,\r\n ISecurable,\r\n BaseSecurityDomainConfig,\r\n UserCredentials,\r\n SecurityTokens,\r\n SecurityContext,\r\n $AUTH_SIGNIN,\r\n $AUTH_SIGNOUT,\r\n $AUTH_SIGNIN_REQUEST,\r\n $CONTEXT_GET,\r\n $ACL_GET,\r\n $AUTH_REFRESH,\r\n $AUTH_ENSURE,\r\n $CONFIG_GET as $SECURITY_CONFIG_GET\r\n} from \"./securityContracts\";\r\nimport { getValuePrefixer } from \"@actdim/utico/typeCore\";\r\nimport { jwtDecode } from \"jwt-decode\";\r\nimport { getResponseResult, IRequestParams, IRequestState, IResponseState } from \"@/net/request\";\r\nimport { ApiError } from \"@/net/apiError\";\r\nimport { MsgBus } from \"@actdim/msgmesh/contracts\";\r\nimport { $CONFIG_GET, $STORE_GET, $STORE_REMOVE, $STORE_SET, BaseAppMsgStruct } from \"@/appDomain/appContracts\";\r\n\r\nconst userNameClaim = \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name\";\r\n\r\n// JwtTokenPayload\r\ntype TokenPayload = {\r\n [userNameClaim]: string;\r\n};\r\n\r\n// Access denied\r\n// Insufficient privileges to perform this operation\r\nconst defaultAccessDeniedReason = \"Insufficient privileges. Contact your system Administrator.\";\r\n\r\nconst storageKeys = {\r\n accessToken: \"ACCESS_TOKEN\",\r\n refreshToken: \"REFRESH_TOKEN\",\r\n acl: \"ACL\",\r\n userCredentials: \"USER_CREDENTIALS\",\r\n // signInInfo\r\n authInfo: \"AUTH_INFO\"\r\n};\r\n\r\nfunction decodeJWTToken<T extends TokenPayload>(token: string): T {\r\n if (!token) {\r\n return null;\r\n }\r\n try {\r\n return jwtDecode<T>(this.accessToken);\r\n } catch {\r\n // something wrong with the token\r\n return null;\r\n }\r\n}\r\n\r\nexport class SecurityProvider {\r\n // private isAuthenticated: boolean;\r\n\r\n // private isExpired: boolean;\r\n\r\n private msgBus: MsgBus<BaseAppMsgStruct>;\r\n\r\n private domainConfig: BaseSecurityDomainConfig;\r\n\r\n private storageKeys: typeof storageKeys;\r\n\r\n private accessToken: string;\r\n\r\n private refreshToken: string;\r\n\r\n private userCredentials: UserCredentials;\r\n\r\n private authInfo: any;\r\n\r\n // private authority: string;\r\n private authProvider: string;\r\n\r\n private tokenExpiresAt: string;\r\n\r\n // RBAC vs ABAC vs PBAC: https://habr.com/ru/companies/otus/articles/698080/\r\n private acl: any;\r\n\r\n private fetcher: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> } = window;\r\n\r\n private init: Promise<any>;\r\n\r\n constructor(msgBus: MsgBus<BaseAppMsgStruct>) {\r\n this.msgBus = msgBus;\r\n\r\n this.init = this.updateConfig();\r\n\r\n // TODO: support custom requests\r\n\r\n this.msgBus.provide({\r\n channel: $CONTEXT_GET,\r\n callback: async (msg) => {\r\n await this.init;\r\n return this.getContext();\r\n }\r\n });\r\n\r\n this.msgBus.provide({\r\n channel: $ACL_GET,\r\n callback: async (msg) => {\r\n await this.init;\r\n return this.getAcl(msg.payload);\r\n }\r\n });\r\n\r\n this.msgBus.provide({\r\n channel: $AUTH_SIGNIN,\r\n callback: async (msg) => {\r\n await this.init;\r\n return this.signIn(msg.payload);\r\n }\r\n });\r\n\r\n this.msgBus.provide({\r\n channel: $AUTH_SIGNOUT,\r\n callback: async (msg) => {\r\n await this.init;\r\n return this.signOut();\r\n }\r\n });\r\n\r\n this.msgBus.provide({\r\n channel: $AUTH_REFRESH,\r\n callback: async (msg) => {\r\n await this.init;\r\n return this.refreshAuth();\r\n }\r\n });\r\n\r\n this.msgBus.provide({\r\n channel: $AUTH_ENSURE,\r\n callback: async (msg) => {\r\n await this.init;\r\n return this.ensureAuth();\r\n }\r\n });\r\n\r\n this.msgBus.provide({\r\n channel: $SECURITY_CONFIG_GET,\r\n callback: async (msg) => {\r\n return (\r\n await this.msgBus.request({\r\n channel: $CONFIG_GET\r\n })\r\n ).payload?.security;\r\n }\r\n });\r\n }\r\n\r\n public getContext(): SecurityContext {\r\n return {\r\n accessToken: this.accessToken,\r\n refreshToken: this.refreshToken,\r\n authInfo: this.authInfo,\r\n authProvider: this.authProvider,\r\n domain: this.domain,\r\n tokenExpiresAt: this.tokenExpiresAt\r\n };\r\n }\r\n\r\n private async updateConfig() {\r\n const msg = await this.msgBus.request({\r\n channel: $CONFIG_GET\r\n });\r\n this.domainConfig = msg.payload.security;\r\n const prefixer = getValuePrefixer<typeof storageKeys>(`${this.domainConfig?.id}/`);\r\n this.storageKeys = prefixer(storageKeys);\r\n await this.restoreData();\r\n }\r\n\r\n async restoreData() {\r\n let msg = await this.msgBus.request({\r\n channel: $STORE_GET,\r\n payload: {\r\n key: this.storageKeys.accessToken\r\n }\r\n });\r\n this.accessToken = msg.payload.data?.value;\r\n\r\n msg = await this.msgBus.request({\r\n channel: $STORE_GET,\r\n payload: {\r\n key: this.storageKeys.refreshToken\r\n }\r\n });\r\n this.refreshToken = msg.payload.data?.value;\r\n\r\n msg = await this.msgBus.request({\r\n channel: $STORE_GET,\r\n payload: {\r\n key: this.storageKeys.userCredentials\r\n }\r\n });\r\n this.userCredentials = msg.payload.data?.value || {\r\n userName: null,\r\n password: null\r\n };\r\n\r\n msg = await this.msgBus.request({\r\n channel: $STORE_GET,\r\n payload: {\r\n key: this.storageKeys.authInfo\r\n }\r\n });\r\n\r\n this.authInfo = msg.payload.data?.value;\r\n\r\n msg = await this.msgBus.request({\r\n channel: $STORE_GET,\r\n payload: {\r\n key: this.storageKeys.acl\r\n }\r\n })\r\n this.acl = msg.payload.data?.value || null;\r\n\r\n if (this.accessToken) {\r\n this.msgBus.send({\r\n channel: $AUTH_SIGNIN,\r\n group: \"out\",\r\n payload: this.getContext()\r\n });\r\n }\r\n }\r\n\r\n public get domain(): string {\r\n return this.domainConfig?.id;\r\n }\r\n\r\n // cleanUserAndActionsStorage = (): void => {\r\n // const obsoleteKeysRegexMatch = /^(user|actions)@.+$/;\r\n // for (let i = localStorage.length - 1; i >= 0; i--) {\r\n // const key = localStorage.key(i);\r\n // if (key && obsoleteKeysRegexMatch.test(key)) {\r\n // localStorage.removeItem(key);\r\n // }\r\n // }\r\n // };\r\n\r\n // removeSavedData\r\n async clearSavedData() {\r\n this.accessToken = null;\r\n await this.msgBus.request({\r\n channel: $STORE_REMOVE,\r\n payload: {\r\n key: this.storageKeys.accessToken\r\n }\r\n });\r\n this.refreshToken = null;\r\n await this.msgBus.request({\r\n channel: $STORE_REMOVE,\r\n payload: {\r\n key: this.storageKeys.refreshToken\r\n }\r\n });\r\n this.userCredentials = null;\r\n await this.msgBus.request({\r\n channel: $STORE_REMOVE,\r\n payload: {\r\n key: this.storageKeys.userCredentials\r\n }\r\n });\r\n this.authInfo = null;\r\n await this.msgBus.request({\r\n channel: $STORE_REMOVE,\r\n payload: {\r\n key: this.storageKeys.authInfo\r\n }\r\n });\r\n this.acl = null;\r\n await this.msgBus.request({\r\n channel: $STORE_REMOVE,\r\n payload: {\r\n key: this.storageKeys.acl\r\n }\r\n });\r\n }\r\n\r\n async ensureAuth() {\r\n this.accessToken = null;\r\n this.acl = null;\r\n\r\n const signIn = this.msgBus.once({\r\n channel: $AUTH_SIGNIN,\r\n group: \"out\"\r\n });\r\n\r\n const signOut = async () => {\r\n await this.msgBus.once({\r\n channel: $AUTH_SIGNOUT,\r\n group: \"out\"\r\n });\r\n throw new Error(\"Auth failed: login aborted\");\r\n };\r\n\r\n this.msgBus.send({\r\n channel: $AUTH_SIGNIN_REQUEST,\r\n payload: {\r\n callbackUrl: window.location.pathname + window.location.search\r\n }\r\n });\r\n await Promise.race([signIn, signOut]);\r\n }\r\n\r\n async signIn(credentials: UserCredentials) {\r\n let url = this.domainConfig.routes?.authSignIn;\r\n\r\n url = url.replace(/[?&]$/, \"\");\r\n\r\n const content = JSON.stringify(credentials);\r\n\r\n // TODO:\r\n // application/x-www-form-urlencoded?\r\n // ?userName=&password=\r\n // userName:password (BASIC)\r\n\r\n const requestParams: IRequestParams = {\r\n url: url,\r\n body: content,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"text/plain\"\r\n }\r\n };\r\n\r\n const request: IRequestState = {\r\n ...requestParams,\r\n status: \"executing\"\r\n };\r\n\r\n const response: IResponseState = await this.fetcher.fetch(url, requestParams);\r\n await getResponseResult(response, request);\r\n ApiError.assert(response, request);\r\n\r\n this.authInfo = response.resolved.json;\r\n const tokens = this.authInfo as SecurityTokens;\r\n\r\n this.userCredentials = credentials;\r\n\r\n this.accessToken = tokens.accessToken;\r\n this.refreshToken = tokens.refreshToken;\r\n // this.acl = ...;\r\n\r\n this.saveData();\r\n\r\n return this.getContext();\r\n }\r\n\r\n async saveData() {\r\n await this.msgBus.request({\r\n channel: $STORE_SET,\r\n payload: {\r\n key: this.storageKeys.accessToken,\r\n value: this.accessToken || null\r\n }\r\n });\r\n await this.msgBus.request({\r\n channel: $STORE_SET,\r\n payload: {\r\n key: this.storageKeys.refreshToken,\r\n value: this.refreshToken || null\r\n }\r\n });\r\n await this.msgBus.request({\r\n channel: $STORE_SET,\r\n payload: {\r\n key: this.storageKeys.userCredentials,\r\n value: this.userCredentials ? this.userCredentials : null\r\n }\r\n });\r\n await this.msgBus.request({\r\n channel: $STORE_SET,\r\n payload: {\r\n key: this.storageKeys.authInfo,\r\n value: this.authInfo ? this.authInfo : null\r\n }\r\n });\r\n await this.msgBus.request({\r\n channel: $STORE_SET,\r\n payload: {\r\n key: this.storageKeys.acl,\r\n value: this.acl ? this.acl : null\r\n }\r\n });\r\n }\r\n\r\n async signOut() {\r\n let url = this.domainConfig.routes?.authSignOut;\r\n if (url) {\r\n url = url.replace(/[?&]$/, \"\");\r\n }\r\n\r\n const requestParams: IRequestParams = {\r\n url: url,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"text/plain\"\r\n }\r\n };\r\n\r\n const request: IRequestState = {\r\n ...requestParams,\r\n status: \"executing\"\r\n };\r\n\r\n const response: IResponseState = await this.fetcher.fetch(url, requestParams);\r\n await getResponseResult(response, request);\r\n ApiError.assert(response, request);\r\n\r\n // this.accessToken = null;\r\n // this.refreshToken = null;\r\n // this.userCredentials = null;\r\n // this.acl = null;\r\n // this.saveData();\r\n this.clearSavedData();\r\n }\r\n\r\n async refreshAuth() {\r\n let url = this.domainConfig.routes?.authRefresh;\r\n if (url) {\r\n url = url.replace(/[?&]$/, \"\");\r\n }\r\n\r\n let tokens: SecurityTokens = {\r\n refreshToken: this.refreshToken\r\n };\r\n\r\n const content = JSON.stringify(tokens);\r\n // const content = tokens;\r\n\r\n const requestParams: IRequestParams = {\r\n url: url,\r\n body: content,\r\n method: \"POST\",\r\n // useAuth: true,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"text/plain\"\r\n }\r\n };\r\n\r\n const request: IRequestState = {\r\n ...requestParams,\r\n status: \"executing\"\r\n };\r\n\r\n const response: IResponseState = await this.fetcher.fetch(url, requestParams);\r\n await getResponseResult(response, request);\r\n ApiError.assert(response, request);\r\n\r\n tokens = response.resolved.json as SecurityTokens;\r\n\r\n this.accessToken = tokens.accessToken;\r\n this.refreshToken = tokens.refreshToken;\r\n // this.userInfo = ...; // TODO\r\n // this.acl = ...;\r\n\r\n this.saveData();\r\n\r\n return this.getContext();\r\n }\r\n\r\n async getAcl<T extends ISecurable>(obj: T) {\r\n // TODO: read from this.acl\r\n\r\n return {\r\n [AccessLevel.Full]: \"\"\r\n } as IAccessDescriptor;\r\n }\r\n\r\n // authorize\r\n async verifyAccess<T extends ISecurable>(obj: T, accessLevel = AccessLevel.Full) {\r\n const acl = this.getAcl(obj);\r\n\r\n // TODO: check accessDescriptors\r\n\r\n return false;\r\n }\r\n}\r\n"],"names":["storageKeys","SecurityProvider","msgBus","$CONTEXT_GET","msg","$ACL_GET","$AUTH_SIGNIN","$AUTH_SIGNOUT","$AUTH_REFRESH","$AUTH_ENSURE","$SECURITY_CONFIG_GET","$CONFIG_GET","prefixer","getValuePrefixer","$STORE_GET","$STORE_REMOVE","signIn","signOut","$AUTH_SIGNIN_REQUEST","credentials","url","content","requestParams","request","response","getResponseResult","ApiError","tokens","$STORE_SET","obj","AccessLevel","accessLevel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"securityProvider.es.js","sources":["../../../src/appDomain/security/securityProvider.ts"],"sourcesContent":null,"names":["storageKeys","SecurityProvider","context","abortSignals","options","$CONTEXT_GET","msg","$ACL_GET","$AUTH_SIGNIN","$AUTH_SIGNOUT","$AUTH_REFRESH","$AUTH_ENSURE","$SECURITY_CONFIG_GET","$CONFIG_GET","prefixer","getValuePrefixer","$STORE_GET","$STORE_REMOVE","signIn","signOut","$AUTH_SIGNIN_REQUEST","credentials","url","content","requestParams","request","response","getResponseResult","ApiError","tokens","$STORE_SET","obj","AccessLevel","accessLevel"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.es.js","sources":["../../src/appDomain/util.ts"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"util.es.js","sources":["../../src/appDomain/util.ts"],"sourcesContent":null,"names":["toAppError","err","source","timestamp","properties","localTimeAsUtcISOString","$isAppError","isAppError","date","pad","n"],"mappings":";AAEO,SAASA,EAAWC,GAAUC,GAAiBC,GAAoBC,GAAqD;AAI3H,SAHKD,MACDA,IAAYE,EAAA,IAEZJ,aAAe,QACR;AAAA,IACH,SAASA,EAAI;AAAA,IACb,MAAMA,EAAI;AAAA,IACV,MAAMA,EAAI;AAAA,IACV,OAAOA,EAAI;AAAA,IACX,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAOH,EAAWC,EAAI,KAAK;AAAA,IAC3B,YAAAG;AAAA,IACA,CAACE,CAAW,GAAG;AAAA,EAAA,IAGZ;AAAA,IACH,SAASL,EAAI,WAAWA,EAAI,SAAA;AAAA,IAC5B,MAAMA,EAAI;AAAA,IACV,MAAMA,EAAI;AAAA,IACV,QAAQ,KAAK,UAAUA,CAAG;AAAA,IAC1B,OAAOA,EAAI;AAAA,IACX,QAAQA,EAAI,UAAUC;AAAA,IACtB,WAAAC;AAAA,IACA,OAAOH,EAAWC,EAAI,KAAK;AAAA,IAC3B,YAAAG;AAAA,IACA,CAACE,CAAW,GAAG;AAAA,EAAA;AAG3B;AAEO,SAASC,EAAWN,GAA2B;AAClD,SAAOA,KAAOA,EAAIK,CAAW,MAAM;AACvC;AAGA,SAASD,EAAwBG,IAAO,oBAAI,QAAQ;AAChD,QAAMC,IAAM,CAAAC,MAAK,OAAOA,CAAC,EAAE,SAAS,GAAG,GAAG;AAE1C,SACIF,EAAK,gBAAgB,MACrBC,EAAID,EAAK,aAAa,CAAC,IAAI,MAC3BC,EAAID,EAAK,QAAA,CAAS,IAAI,MACtBC,EAAID,EAAK,SAAA,CAAU,IAAI,MACvBC,EAAID,EAAK,WAAA,CAAY,IAAI,MACzBC,EAAID,EAAK,WAAA,CAAY,IAAI,MACzB,OAAOA,EAAK,gBAAA,CAAiB,EAAE,SAAS,GAAG,GAAG,IAC9C;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicContent.es.js","sources":["../../src/componentModel/DynamicContent.tsx"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"DynamicContent.es.js","sources":["../../src/componentModel/DynamicContent.tsx"],"sourcesContent":null,"names":["useDynamicContent","params","c","m","useComponent","_"],"mappings":";AAwBO,SAASA,EACZC,GACF;AACE,MAAIC,GACAC;AAWJ,SAAAD,IAAIE,EAVmD;AAAA,IACnD,OAAO;AAAA,MACH,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,IAEV,MAAM,CAACC,GAAGH,MACCC,EAAE,OAAA;AAAA,EACb,GAGkBF,CAAM,GAC5BE,IAAID,EAAE,OACCA;AACX;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.es.js","sources":["../../src/componentModel/adapters.ts"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"adapters.es.js","sources":["../../src/componentModel/adapters.ts"],"sourcesContent":null,"names":["getMethodNames","client","name","registerAdapters","msgBus","adapters","abortSignal","adapter","service","channelSelector","methodName","channel","msg","getMsgChannelSelector","services","entry"],"mappings":"AAIA,MAAMA,IAAiB,CAACC,MAEb,OAAO,oBAAoBA,CAAM,EAAE;AAAA,EACtC,CAACC,MAASA,MAAS,iBAAiB,OAAOD,EAAOC,CAAI,KAAM;AAAA;AAa7D,SAASC,EAAiBC,GAAqBC,GAAgCC,GAA2B;AAC7G,MAAID;AACA,eAAWE,KAAWF,GAAU;AAC5B,YAAM,EAAE,SAAAG,GAAS,iBAAAC,EAAA,IAAoBF;AACrC,UAAI,CAACC,KAAW,CAACC;AACb,cAAM,IAAI,MAAM,yDAAyD;AAE7E,iBAAWC,KAAcV,EAAe,OAAO,eAAeQ,CAAO,CAAC,GAAG;AACrE,cAAMG,IAAUF,IAAkBD,GAASE,CAAU;AACrD,QAAIC,KACAP,EAAO,QAAQ;AAAA,UACX,SAAAO;AAAA,UACA,OAAO;AAAA,UACP,UAAU,CAACC,MACCJ,EAAQE,CAAU,EAAW,GAAKE,EAAI,WAAW,CAAA,CAAa;AAAA,UAE1E,SAAS;AAAA,YACL,aAAAN;AAAA,UAAA;AAAA,QACJ,CACH;AAAA,MAET;AAAA,IACJ;AAER;AA0BO,SAASO,EACZC,GACF;AACE,SAAO,CAACN,GAAcE,MAAuB;AACzC,UAAMK,IAAQ,OAAO,QAAQD,CAAQ,EAAE,KAAK,CAACC,MAAUA,EAAM,CAAC,MAAMP,CAAO;AAC3E,WAAKO,IAGE,GAAGA,EAAM,CAAC,CAAC,GAAGL,EAAW,aAAa,KAFlC;AAAA,EAGf;AACJ;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { PropsWithChildren } from 'react';
|
|
2
|
-
import { BaseContext } from './contracts';
|
|
3
|
-
export declare const ReactComponentContext:
|
|
1
|
+
import { default as React, PropsWithChildren } from 'react';
|
|
2
|
+
import { BaseContext, ComponentRegistryContext } from './contracts';
|
|
3
|
+
export declare const ReactComponentContext: React.Context<ComponentRegistryContext>;
|
|
4
4
|
export declare function ComponentContextProvider(props: PropsWithChildren<{
|
|
5
5
|
value?: BaseContext;
|
|
6
|
-
}>):
|
|
7
|
-
export declare function useComponentContext():
|
|
6
|
+
}>): React.JSX.Element;
|
|
7
|
+
export declare function useComponentContext(): ComponentRegistryContext;
|
|
8
8
|
//# sourceMappingURL=componentContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentContext.d.ts","sourceRoot":"","sources":["../../src/componentModel/componentContext.tsx"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"componentContext.d.ts","sourceRoot":"","sources":["../../src/componentModel/componentContext.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAqB,MAAM,aAAa,CAAC;AAGvF,eAAO,MAAM,qBAAqB,yCAAqD,CAAC;AAGxF,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,iBAAiB,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC,qBA2LL;AAGD,wBAAgB,mBAAmB,6BASlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentContext.es.js","sources":["../../src/componentModel/componentContext.tsx"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"componentContext.es.js","sources":["../../src/componentModel/componentContext.tsx"],"sourcesContent":null,"names":["ReactComponentContext","createContext","ComponentContextProvider","props","context","treeRef","useRef","regStack","seqMap","getNextId","regType","index","toHtmlId","getCurrentId","register","id","parentId","node","parentNode","unregister","childId","getParent","getChildren","getChainUp","result","current","parent","getChainDown","stack","children","child","getHierarchyPath","path","getNodeMap","React","useComponentContext","useContext"],"mappings":"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"}
|