@actdim/dynstruct 1.2.6 → 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.
Files changed (58) hide show
  1. package/README.md +2338 -18
  2. package/dist/appDomain/appContracts.d.ts.map +1 -1
  3. package/dist/appDomain/appContracts.es.js +1 -1
  4. package/dist/appDomain/appContracts.es.js.map +1 -1
  5. package/dist/appDomain/navigation.es.js.map +1 -1
  6. package/dist/appDomain/security/securityContracts.es.js.map +1 -1
  7. package/dist/appDomain/security/securityProvider.d.ts +6 -5
  8. package/dist/appDomain/security/securityProvider.d.ts.map +1 -1
  9. package/dist/appDomain/security/securityProvider.es.js +70 -45
  10. package/dist/appDomain/security/securityProvider.es.js.map +1 -1
  11. package/dist/appDomain/util.es.js.map +1 -1
  12. package/dist/componentModel/DynamicContent.es.js.map +1 -1
  13. package/dist/componentModel/adapters.es.js.map +1 -1
  14. package/dist/componentModel/componentContext.d.ts +5 -5
  15. package/dist/componentModel/componentContext.d.ts.map +1 -1
  16. package/dist/componentModel/componentContext.es.js.map +1 -1
  17. package/dist/componentModel/contracts.d.ts +23 -19
  18. package/dist/componentModel/contracts.d.ts.map +1 -1
  19. package/dist/componentModel/contracts.es.js +1 -1
  20. package/dist/componentModel/contracts.es.js.map +1 -1
  21. package/dist/componentModel/core.d.ts +2 -2
  22. package/dist/componentModel/core.d.ts.map +1 -1
  23. package/dist/componentModel/core.es.js +115 -111
  24. package/dist/componentModel/core.es.js.map +1 -1
  25. package/dist/componentModel/react/errorBoundary.d.ts +19 -0
  26. package/dist/componentModel/react/errorBoundary.d.ts.map +1 -0
  27. package/dist/componentModel/react/errorBoundary.es.js +52 -0
  28. package/dist/componentModel/react/errorBoundary.es.js.map +1 -0
  29. package/dist/componentModel/react.d.ts +2 -2
  30. package/dist/componentModel/react.d.ts.map +1 -1
  31. package/dist/componentModel/react.es.js +156 -139
  32. package/dist/componentModel/react.es.js.map +1 -1
  33. package/dist/componentModel/scope.d.ts +1 -1
  34. package/dist/componentModel/scope.d.ts.map +1 -1
  35. package/dist/componentModel/scope.es.js +1 -1
  36. package/dist/componentModel/scope.es.js.map +1 -1
  37. package/dist/globals.es.js.map +1 -1
  38. package/dist/net/apiError.es.js.map +1 -1
  39. package/dist/net/client.d.ts +9 -5
  40. package/dist/net/client.d.ts.map +1 -1
  41. package/dist/net/client.es.js +96 -80
  42. package/dist/net/client.es.js.map +1 -1
  43. package/dist/net/request.es.js.map +1 -1
  44. package/dist/reactHooks.d.ts +1 -1
  45. package/dist/reactHooks.d.ts.map +1 -1
  46. package/dist/reactHooks.es.js.map +1 -1
  47. package/dist/services/ServiceProvider.es.js.map +1 -1
  48. package/dist/services/StorageService.es.js.map +1 -1
  49. package/dist/services/react/NavService.d.ts.map +1 -1
  50. package/dist/services/react/NavService.es.js +15 -15
  51. package/dist/services/react/NavService.es.js.map +1 -1
  52. package/dist/services/react/ServiceProvider.d.ts +2 -2
  53. package/dist/services/react/ServiceProvider.d.ts.map +1 -1
  54. package/dist/services/react/ServiceProvider.es.js.map +1 -1
  55. package/dist/services/react/StorageService.d.ts.map +1 -1
  56. package/dist/services/react/StorageService.es.js +7 -7
  57. package/dist/services/react/StorageService.es.js.map +1 -1
  58. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/net/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,QAAQ,EAAqB,cAAc,EAAiB,MAAM,WAAW,CAAC;AAE1G,OAAO,EAAoB,cAAc,EAAe,MAAM,0BAA0B,CAAC;AAIzF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAa9E;AAID,qBAAa,UAAU;IACnB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAGvB,OAAO,CAAC,eAAe,CAA6B;IAEpD,OAAO,CAAC,OAAO,CAAW;IAE1B,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,IAAI,CAAe;IAE3B,OAAO,CAAC,WAAW,CAAW;gBAElB,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,WAAe;cAgBnE,eAAe;YAcjB,mBAAmB;YAUnB,qBAAqB;YAqBrB,2BAA2B;YAkD3B,mBAAmB;IA+CpB,UAAU,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;CA2CxE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/net/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,QAAQ,EAAqB,cAAc,EAAiB,MAAM,WAAW,CAAC;AAE1G,OAAO,EAAoB,cAAc,EAA8B,MAAM,0BAA0B,CAAC;AAIxG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAa9E;AAID,qBAAa,UAAU;IACZ,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAGrB,OAAO,CAAC,eAAe,CAA6B;IAEpD,OAAO,CAAC,OAAO,CAAW;IAE1B,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,WAAW,CAAW;IAE9B,OAAO,CAAC,SAAS,CAAgB;IAEjC,OAAO,CAAC,eAAe,CAAkB;gBAE7B,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,WAAe;IA2BnF,CAAC,MAAM,CAAC,OAAO,CAAC;cAIA,IAAI;cASJ,eAAe;YAiBjB,cAAc;YAQd,qBAAqB;YAwBrB,2BAA2B;YAkD3B,mBAAmB;IAiDpB,UAAU,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;CA2CxE"}
@@ -1,126 +1,142 @@
1
1
  import { v4 as d } from "uuid";
2
- import o from "http-status";
3
- import { getResponseResult as u } from "./request.es.js";
2
+ import c from "http-status";
3
+ import { getResponseResult as f } from "./request.es.js";
4
4
  import { ApiError as r } from "./apiError.es.js";
5
- import { $CONFIG_GET as f } from "../appDomain/appContracts.es.js";
6
- import { $AUTH_SIGNIN as p, $CONTEXT_GET as y, $AUTH_REFRESH as w, $AUTH_ENSURE as g } from "../appDomain/security/securityContracts.es.js";
7
- function A(i, e) {
8
- if (!i)
9
- return i;
10
- const t = e.map((c) => c.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|"), s = new RegExp(`(_?(${t}))+?$`, "i");
11
- let a = i.replace(s, "");
12
- return a = a.trim(), a.length > 0 ? a : i;
5
+ import { $CONFIG_GET as p } from "../appDomain/appContracts.es.js";
6
+ import { $AUTH_SIGNIN as u, $CONTEXT_GET as g, $AUTH_REFRESH as w, $AUTH_ENSURE as y } from "../appDomain/security/securityContracts.es.js";
7
+ function R(o, t) {
8
+ if (!o)
9
+ return o;
10
+ const e = t.map((n) => n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|"), s = new RegExp(`(_?(${e}))+?$`, "i");
11
+ let i = o.replace(s, "");
12
+ return i = i.trim(), i.length > 0 ? i : o;
13
13
  }
14
- const T = ["api", "controller", "client", "fetcher"];
15
- class B {
14
+ const b = ["api", "controller", "client", "fetcher"];
15
+ class k {
16
16
  baseUrl;
17
17
  name;
18
+ apiId;
18
19
  // private requestStates
19
20
  requestStateMap;
20
21
  fetcher;
21
22
  msgBus;
22
23
  accessToken;
23
- init;
24
24
  apiSuffixes;
25
- constructor(e, n, t = T) {
26
- this.apiSuffixes = t, this.fetcher = n || window, this.requestStateMap = /* @__PURE__ */ new Map(), this.msgBus = e.msgBus, this.msgBus.on({
27
- channel: p,
25
+ apiConfig;
26
+ abortController;
27
+ constructor(t, a, e = b) {
28
+ this.apiSuffixes = e, this.fetcher = a || window, this.requestStateMap = /* @__PURE__ */ new Map(), this.msgBus = t.msgBus, this.abortController = new AbortController();
29
+ const s = [this.abortController.signal];
30
+ t?.abortSignal && s.push(t.abortSignal);
31
+ const i = AbortSignal.any(s);
32
+ this.msgBus.on({
33
+ channel: u,
28
34
  group: "out",
29
- callback: (s) => {
30
- this.accessToken = s.payload.accessToken;
35
+ callback: (n) => {
36
+ this.accessToken = n.payload.accessToken;
37
+ },
38
+ options: {
39
+ abortSignal: i
31
40
  }
32
- }), this.init = Promise.all([this.getBaseUrlAsync(), this.updateSecurityAsync()]);
41
+ });
33
42
  }
34
- async getBaseUrlAsync() {
35
- const n = (await this.msgBus.request({
36
- channel: f
37
- })).payload, t = A(this.name, this.apiSuffixes), s = Object.entries(n.apis).find((a) => a[0].toLowerCase() === t?.toLowerCase());
38
- s || console.warn(`API "${t}" is not defined in the current configuration. Using default configuration.`), this.baseUrl = s?.[1].url || n.baseUrl;
43
+ [Symbol.dispose]() {
44
+ this.abortController.abort();
39
45
  }
40
- async updateSecurityAsync() {
41
- if (!this.accessToken) {
42
- const e = await this.msgBus.request({
43
- channel: y
44
- });
45
- this.accessToken = e.payload.accessToken;
46
- }
47
- return this.accessToken;
46
+ async init() {
47
+ this.baseUrl || await this.updateApiConfig(), this.accessToken || await this.updateSecurity();
48
+ }
49
+ async updateApiConfig() {
50
+ const a = (await this.msgBus.request({
51
+ channel: p
52
+ })).payload;
53
+ let e = this.apiId;
54
+ e || (this.apiId = e = R(this.name, this.apiSuffixes));
55
+ const s = Object.entries(a?.apis || {}).find((i) => i[0].toLowerCase() === e?.toLowerCase());
56
+ s || console.warn(`API "${e}" is not defined in the current configuration. Using default configuration.`), this.apiConfig = s?.[1], this.baseUrl = this.apiConfig?.url || a?.baseUrl;
48
57
  }
49
- async addAuthorizationAsync(e) {
50
- const n = await this.updateSecurityAsync();
51
- if (!n)
58
+ async updateSecurity() {
59
+ const t = await this.msgBus.request({
60
+ channel: g
61
+ });
62
+ return this.accessToken = t.payload.accessToken, this.accessToken;
63
+ }
64
+ async addAuthorizationAsync(t) {
65
+ this.accessToken || await this.updateSecurity();
66
+ const a = this.accessToken;
67
+ if (!a)
52
68
  throw r.create({
53
- status: o.UNAUTHORIZED
69
+ status: c.UNAUTHORIZED
54
70
  });
55
- const t = "Authorization", s = e.headers, a = `Bearer ${n}`;
71
+ const e = "Authorization", s = t.headers, i = `Bearer ${a}`;
56
72
  if (s instanceof Headers)
57
- s.set(t, a);
73
+ s.set(e, i);
58
74
  else
59
75
  throw new Error("Unsupported headers");
60
76
  }
61
- async executeRequestInternalAsync(e) {
77
+ async executeRequestInternalAsync(t) {
62
78
  try {
63
- let n = !0;
64
- const t = e.callbacks && e.callbacks.onBeforeSendRequest;
65
- if (t) {
79
+ let a = !0;
80
+ const e = t.callbacks && t.callbacks.onBeforeSendRequest;
81
+ if (e) {
66
82
  const s = {
67
- request: e,
83
+ request: t,
68
84
  cancel: !1,
69
85
  handled: !1
70
86
  };
71
- if (await t(s), s.cancel)
72
- if (n = !1, e.status = "canceled", s.handled)
73
- e.result = s.result;
87
+ if (await e(s), s.cancel)
88
+ if (a = !1, t.status = "canceled", s.handled)
89
+ t.result = s.result;
74
90
  else
75
91
  throw new Error("The request was aborted");
76
92
  }
77
- if (n) {
78
- e.status = "executing";
79
- const s = await this.fetcher.fetch(e.url, e);
80
- r.assert(s, e);
81
- let a = e.callbacks && e.callbacks.onResponseRead;
82
- a || (a = async (l) => {
83
- const h = await u(s, e);
93
+ if (a) {
94
+ t.status = "executing";
95
+ const s = await this.fetcher.fetch(t.url, t);
96
+ r.assert(s, t);
97
+ let i = t.callbacks && t.callbacks.onResponseRead;
98
+ i || (i = async (l) => {
99
+ const h = await f(s, t);
84
100
  l.result = h;
85
101
  });
86
- const c = {
102
+ const n = {
87
103
  response: s
88
104
  };
89
- await a(c), e.result = c.result, e.status = "succeeded";
105
+ await i(n), t.result = n.result, t.status = "succeeded";
90
106
  }
91
- } catch (n) {
92
- throw e.status = "failed", n;
107
+ } catch (a) {
108
+ throw t.status = "failed", a;
93
109
  }
94
- return e;
110
+ return t;
95
111
  }
96
- async executeRequestAsync(e) {
97
- let n = 0;
112
+ async executeRequestAsync(t) {
113
+ let a = 0;
98
114
  do
99
115
  try {
100
- return e.useAuth && await this.addAuthorizationAsync(e), await this.executeRequestInternalAsync(e);
101
- } catch (t) {
102
- if (t instanceof r) {
103
- if (n > 0 || t.status === o.UPGRADE_REQUIRED)
104
- throw t;
105
- if (t.status === o.UNAUTHORIZED) {
106
- t.response?.headers?.get("token-expired") ? await this.msgBus.request({
116
+ return t.useAuth && await this.addAuthorizationAsync(t), await this.executeRequestInternalAsync(t);
117
+ } catch (e) {
118
+ if (e instanceof r) {
119
+ if (a > 0 || e.status === c.UPGRADE_REQUIRED)
120
+ throw e;
121
+ if (e.status === c.UNAUTHORIZED) {
122
+ e.response?.headers?.get("token-expired") ? await this.msgBus.request({
107
123
  channel: w
108
124
  }) : await this.msgBus.request({
109
- channel: g
125
+ channel: y
110
126
  });
111
127
  continue;
112
- }
113
- continue;
128
+ } else if (e.status >= c.INTERNAL_SERVER_ERROR)
129
+ continue;
114
130
  }
115
- throw t;
131
+ throw e;
116
132
  } finally {
117
- n++;
133
+ a++;
118
134
  }
119
135
  while (!0);
120
136
  }
121
137
  // T extends IApiResponse
122
- async fetchAsync(e) {
123
- await this.init, e = { ...{
138
+ async fetchAsync(t) {
139
+ await this.init, t = { ...{
124
140
  contentType: "application/json",
125
141
  method: "POST",
126
142
  body: null,
@@ -128,18 +144,18 @@ class B {
128
144
  cache: "default",
129
145
  credentials: "same-origin",
130
146
  mode: "cors"
131
- }, ...e }, e.id || (e.id = d()), e.headers instanceof Headers || (e.headers = new Headers(e.headers)), e.headers.append("Content-Type", e.contentType), e.method === "POST" && (e.body || (e.body = ""));
132
- let t = {
133
- ...e,
147
+ }, ...t }, t.id || (t.id = d()), t.headers instanceof Headers || (t.headers = new Headers(t.headers)), t.headers.append("Content-Type", t.contentType), t.method === "POST" && (t.body || (t.body = ""));
148
+ let e = {
149
+ ...t,
134
150
  status: "queued",
135
151
  response: void 0,
136
152
  result: void 0
137
153
  };
138
- return this.requestStateMap.set(e.id, t), await this.executeRequestAsync(t), t.result;
154
+ return this.requestStateMap.set(t.id, e), await this.executeRequestAsync(e), e.result;
139
155
  }
140
156
  }
141
157
  export {
142
- B as ClientBase,
143
- A as extractApiName
158
+ k as ClientBase,
159
+ R as extractApiName
144
160
  };
145
161
  //# sourceMappingURL=client.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.es.js","sources":["../../src/net/client.ts"],"sourcesContent":["import { v4 as uuid } from \"uuid\";\r\nimport httpStatus from \"http-status\";\r\nimport { getResponseResult, IFetcher, IRequestCallbacks, IRequestParams, IRequestState } from \"./request\";\r\nimport { ApiError } from \"./apiError\";\r\nimport { BaseAppMsgStruct, BaseAppContext, $CONFIG_GET } from \"@/appDomain/appContracts\";\r\nimport { MsgBus } from \"@actdim/msgmesh/contracts\";\r\nimport { $AUTH_ENSURE, $AUTH_REFRESH, $AUTH_SIGNIN, $CONTEXT_GET } from \"@/appDomain/security/securityContracts\";\r\n\r\nexport function extractApiName(name: string, suffixes: string[]): string | null {\r\n if (!name) {\r\n return name;\r\n // return null; // ?\r\n }\r\n const escaped = suffixes.map((s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"));\r\n const group = escaped.join(\"|\");\r\n const pattern = new RegExp(`(_?(${group}))+?$`, \"i\");\r\n\r\n let result = name.replace(pattern, \"\");\r\n\r\n result = result.trim();\r\n return result.length > 0 ? result : name;\r\n}\r\n\r\nconst API_SUFFIXES = [\"api\", \"controller\", \"client\", \"fetcher\"];\r\n// App(Api)ClientBase\r\nexport class ClientBase {\r\n protected baseUrl: string;\r\n\r\n protected name: string;\r\n\r\n // private requestStates\r\n private requestStateMap: Map<string, IRequestState>;\r\n\r\n private fetcher: IFetcher;\r\n\r\n private msgBus: MsgBus<BaseAppMsgStruct>;\r\n\r\n private accessToken: string;\r\n\r\n private init: Promise<any>;\r\n\r\n private apiSuffixes: string[];\r\n\r\n constructor(context: BaseAppContext, fetcher?: IFetcher, apiSuffixes = API_SUFFIXES) {\r\n this.apiSuffixes = apiSuffixes;\r\n this.fetcher = fetcher || window;\r\n this.requestStateMap = new Map<string, IRequestState>();\r\n this.msgBus = context.msgBus;\r\n // TODO: unsubscribe\r\n this.msgBus.on({\r\n channel: $AUTH_SIGNIN,\r\n group: \"out\",\r\n callback: (msg) => {\r\n this.accessToken = msg.payload.accessToken;\r\n }\r\n });\r\n this.init = Promise.all([this.getBaseUrlAsync(), this.updateSecurityAsync()]);\r\n }\r\n\r\n protected async getBaseUrlAsync() {\r\n const msg = await this.msgBus.request({\r\n channel: $CONFIG_GET\r\n });\r\n const config = msg.payload;\r\n const apiName = extractApiName(this.name, this.apiSuffixes);\r\n const apiEntry = Object.entries(config.apis).find((entry) => entry[0].toLowerCase() === apiName?.toLowerCase());\r\n if (!apiEntry) {\r\n // console.debug\r\n console.warn(`API \"${apiName}\" is not defined in the current configuration. Using default configuration.`);\r\n }\r\n this.baseUrl = apiEntry?.[1].url || config.baseUrl;\r\n }\r\n\r\n private async updateSecurityAsync() {\r\n if (!this.accessToken) {\r\n const msg = await this.msgBus.request({\r\n channel: $CONTEXT_GET\r\n });\r\n this.accessToken = msg.payload.accessToken;\r\n }\r\n return this.accessToken;\r\n }\r\n\r\n private async addAuthorizationAsync(request: IRequestParams) {\r\n const accessToken = await this.updateSecurityAsync();\r\n if (!accessToken) {\r\n throw ApiError.create({\r\n status: httpStatus.UNAUTHORIZED\r\n });\r\n }\r\n const authorizationHeader = \"Authorization\";\r\n const headers = request.headers;\r\n const headerValue = `Bearer ${accessToken}`;\r\n if (headers instanceof Headers) {\r\n // if (headers.has(authorizationHeader)) {\r\n // headers.delete(authorizationHeader)\r\n // }\r\n // headers.append(authorizationHeader, headerValue);\r\n headers.set(authorizationHeader, headerValue);\r\n } else {\r\n throw new Error(\"Unsupported headers\"); // object type\r\n }\r\n }\r\n\r\n private async executeRequestInternalAsync(request: IRequestState) {\r\n try {\r\n let proceed = true;\r\n const onBeforeSendRequest = request.callbacks && request.callbacks.onBeforeSendRequest;\r\n if (onBeforeSendRequest) {\r\n const event = {\r\n request: request,\r\n cancel: false,\r\n handled: false\r\n } as Parameters<IRequestCallbacks[\"onBeforeSendRequest\"]>[0];\r\n await onBeforeSendRequest(event);\r\n if (event.cancel) {\r\n // interrupt\r\n proceed = false;\r\n request.status = \"canceled\";\r\n if (event.handled) {\r\n request.result = event.result;\r\n } else {\r\n // ApiError?\r\n throw new Error(\"The request was aborted\"); // has been? canceled?\r\n }\r\n }\r\n }\r\n if (proceed) {\r\n request.status = \"executing\";\r\n const response = await this.fetcher.fetch(request.url, request);\r\n ApiError.assert(response, request);\r\n let onResponseRead = request.callbacks && request.callbacks.onResponseRead;\r\n if (!onResponseRead) {\r\n onResponseRead = async (event) => {\r\n const result = await getResponseResult(response, request);\r\n event.result = result;\r\n };\r\n }\r\n const event = {\r\n response: response\r\n } as Parameters<IRequestCallbacks[\"onResponseRead\"]>[0];\r\n\r\n await onResponseRead(event);\r\n request.result = event.result;\r\n request.status = \"succeeded\";\r\n }\r\n } catch (err) {\r\n request.status = \"failed\";\r\n // throw ApiError.create(undefined, request);\r\n throw err;\r\n }\r\n return request;\r\n }\r\n\r\n private async executeRequestAsync(request: IRequestState): Promise<IRequestState> {\r\n let attempt = 0;\r\n do {\r\n try {\r\n if (request.useAuth) {\r\n await this.addAuthorizationAsync(request);\r\n }\r\n return await this.executeRequestInternalAsync(request);\r\n } catch (err) {\r\n if (err instanceof ApiError) {\r\n if (attempt > 0) {\r\n throw err;\r\n }\r\n if (err.status === httpStatus.UPGRADE_REQUIRED) {\r\n // await this.context.msgBus.request({\r\n // channel: \"APP.RELOAD\"\r\n // });\r\n throw err;\r\n } else if (err.status === httpStatus.UNAUTHORIZED) {\r\n if (err.response?.headers?.get(\"token-expired\")) {\r\n // token expired or invalid\r\n await this.msgBus.request({\r\n channel: $AUTH_REFRESH\r\n });\r\n } else {\r\n await this.msgBus.request({\r\n channel: $AUTH_ENSURE\r\n });\r\n }\r\n // codes:\r\n // TOKEN_EXPIRED\r\n // TOKEN_INVALID\r\n // TOKEN_MISSING\r\n // AUTH_REQUIRED\r\n // header: WWW-Authenticate\r\n continue;\r\n }\r\n continue;\r\n }\r\n throw err;\r\n } finally {\r\n attempt++;\r\n }\r\n } while (true);\r\n }\r\n\r\n // T extends IApiResponse\r\n public async fetchAsync<T>(requestParams: IRequestParams): Promise<T> {\r\n await this.init;\r\n\r\n const defaultParams: Partial<IRequestParams> = {\r\n contentType: \"application/json\",\r\n method: \"POST\",\r\n body: null,\r\n headers: {},\r\n cache: \"default\",\r\n credentials: \"same-origin\",\r\n mode: \"cors\"\r\n };\r\n\r\n requestParams = { ...defaultParams, ...requestParams };\r\n if (!requestParams.id) {\r\n requestParams.id = uuid();\r\n }\r\n\r\n if (!(requestParams.headers instanceof Headers)) {\r\n requestParams.headers = new Headers(requestParams.headers);\r\n }\r\n\r\n requestParams.headers.append(\"Content-Type\", requestParams.contentType);\r\n // \"api-version\"\r\n\r\n if (requestParams.method === \"POST\") {\r\n if (!requestParams.body) {\r\n requestParams.body = \"\";\r\n }\r\n }\r\n\r\n let request = {\r\n ...requestParams,\r\n status: \"queued\",\r\n response: undefined,\r\n result: undefined\r\n } as IRequestState;\r\n\r\n this.requestStateMap.set(requestParams.id, request);\r\n\r\n await this.executeRequestAsync(request);\r\n return request.result;\r\n }\r\n}\r\n\r\n// TODO: check MLWEB-2172\r\n// TODO: support request cancellation\r\n// https://stackoverflow.com/questions/31061838/how-do-i-cancel-an-http-fetch-request\r\n// https://mukeshprajapati0251.medium.com/cancel-rest-api-pending-request-1af65e70366d\r\n\r\n/* \r\nif (status === 404) {\r\n return response.text().then((_responseText) => {\r\n let result404: any = null;\r\n result404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as __API__ProblemDetails;\r\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n\r\nBLOB\r\nlet reader = new FileReader();\r\n reader.onload = event => resolve((event.target as any).result);\r\n reader.readAsText(blob);\r\n*/\r\n"],"names":["extractApiName","name","suffixes","group","s","pattern","result","API_SUFFIXES","ClientBase","context","fetcher","apiSuffixes","$AUTH_SIGNIN","msg","config","$CONFIG_GET","apiName","apiEntry","entry","$CONTEXT_GET","request","accessToken","ApiError","httpStatus","authorizationHeader","headers","headerValue","proceed","onBeforeSendRequest","event","response","onResponseRead","getResponseResult","err","attempt","$AUTH_REFRESH","$AUTH_ENSURE","requestParams","uuid"],"mappings":"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"}
1
+ {"version":3,"file":"client.es.js","sources":["../../src/net/client.ts"],"sourcesContent":null,"names":["extractApiName","name","suffixes","group","s","pattern","result","API_SUFFIXES","ClientBase","context","fetcher","apiSuffixes","abortSignals","abortSignal","$AUTH_SIGNIN","msg","config","$CONFIG_GET","apiId","apiEntry","entry","$CONTEXT_GET","request","accessToken","ApiError","httpStatus","authorizationHeader","headers","headerValue","proceed","onBeforeSendRequest","event","response","onResponseRead","getResponseResult","err","attempt","$AUTH_REFRESH","$AUTH_ENSURE","requestParams","uuid"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.es.js","sources":["../../src/net/request.ts"],"sourcesContent":["// Transport\r\n\r\nimport httpStatus from \"http-status\";\r\nimport { AsyncFunc, AwaitedReturnType, Func } from \"@actdim/utico/typeCore\";\r\nimport { ApiError } from \"./apiError\";\r\n\r\nexport type IFetcher = {\r\n fetch(url: RequestInfo | URL, init?: RequestInit): Promise<Response>;\r\n};\r\n\r\n// IParsedBody\r\nexport type IResolvedBody = {\r\n [K in keyof Body]?: Body[K] extends Func ? AwaitedReturnType<Body[K]> : Body[K];\r\n};\r\n\r\n// https://www.iana.org/assignments/media-types/media-types.xhtml\r\nexport type MimeType =\r\n // application\r\n | \"application/atom+xml\"\r\n | \"application/json\"\r\n | \"application/javascript\"\r\n | \"application/octet-stream\"\r\n | \"application/pdf\"\r\n | \"application/postscript\"\r\n | \"application/soap+xml\"\r\n | \"application/font-woff\"\r\n | \"application/xhtml+xml\"\r\n | \"application/zip\"\r\n | \"application/gzip\"\r\n | \"application/x-tex\"\r\n | \"application/xml\"\r\n | \"application/msword\"\r\n // text\r\n | \"text/cmd\"\r\n | \"text/css\"\r\n | \"text/csv\"\r\n | \"text/html\"\r\n // \"text/javascript\" |\r\n | \"text/plain\"\r\n | \"text/xml\"\r\n | \"text/markdown\"\r\n // image\r\n | \"image/png\"\r\n | \"image/jpeg\"\r\n | \"image/tiff\";\r\n\r\n// RequestExecutionStatus\r\nexport type RequestStatus =\r\n // Created\r\n | \"\" // none/created/new/unsent\r\n // Queued\r\n | \"queued\" // scheduled\r\n // Executing\r\n | \"executing\" // sent/pending/processing/in-progress\r\n // \"suspended\" | // on-hold\r\n // Successful\r\n | \"succeeded\" // successful/resolved/done/completed/finished/fulfilled/complete\r\n // Unsuccessful\r\n | \"failed\" // unsuccessful/rejected\r\n // Aborted\r\n | \"canceled\"; // aborted/terminated\r\n\r\nexport type IResponseState = Response & {\r\n // parsed?\r\n resolved?: IResolvedBody;\r\n};\r\n\r\nexport type IRequestState = IRequestParams & {\r\n status: RequestStatus;\r\n result?: any;\r\n};\r\n\r\nexport const getResponseBlob = (response: Response) => response.blob();\r\n\r\nexport const getResponseJson = (response: Response) => response.json();\r\n\r\nexport const getResponseText = (response: Response) => response.text();\r\n\r\nexport const getResponseArrayBuffer = (response: Response) => response.arrayBuffer();\r\n\r\n// https://stackoverflow.com/questions/64781995/how-to-get-mime-type-of-an-array-buffer-object\r\nexport async function getResponseResult(response: IResponseState, request: IRequestState): Promise<any> {\r\n // const headers: { [key: string]: string } = {};\r\n let contentType =\r\n request.contentType ||\r\n (request.headers && request.headers instanceof Headers ? request.headers.get(\"content-type\") : request.headers[\"Content-Type\"]);\r\n if (response.headers) {\r\n // for (const k in response.headers.keys()) {\r\n // headers[k] = response.headers.get[k];\r\n // }\r\n // if (response.headers.forEach) {\r\n // response.headers.forEach((v, k) => headers[k] = v);\r\n // }\r\n contentType = response.headers instanceof Headers ? response.headers.get(\"content-type\") : response.headers[\"content-type\"];\r\n }\r\n let result: any = undefined;\r\n if (!response.resolved) {\r\n response.resolved = {};\r\n }\r\n const resolved = response.resolved;\r\n contentType = (contentType || \"\").toLowerCase();\r\n if (contentType.startsWith(\"text/\")) {\r\n result = await response.text();\r\n } else if (contentType.startsWith(\"image/\")) {\r\n result = await response.blob();\r\n } else {\r\n if (contentType.startsWith(\"application/json\")) {\r\n result = await response.json();\r\n resolved.json = result;\r\n } else if (contentType.startsWith(\"octet-stream\")) {\r\n result = await response.blob();\r\n resolved.blob = result;\r\n } else {\r\n try {\r\n resolved.json = await response.clone().json();\r\n } catch {\r\n try {\r\n resolved.text = await response.text();\r\n } catch {\r\n }\r\n }\r\n // unexpected response\r\n // throw new Error(`Unsupported content type: ${contentType}`);\r\n }\r\n }\r\n if (!(response.status === httpStatus.OK || response.status === httpStatus.NO_CONTENT)) {\r\n // JSON.stringify(resolved)\r\n throw ApiError.create(response, request);\r\n }\r\n\r\n request.result = result;\r\n return result;\r\n}\r\n\r\nexport interface IRequestCallbacks<TResult = any> {\r\n // onBeforeExecuteRequest\r\n onBeforeSendRequest?: (event: {\r\n request: IRequestParams;\r\n // interrupt\r\n cancel: boolean;\r\n handled: boolean;\r\n result?: TResult;\r\n }) => Promise<void>;\r\n onResponseRead?: (event: { response: Response; result: TResult }) => Promise<void>;\r\n}\r\n\r\n// IRequestOptions\r\nexport interface IRequestParams<TResult = any> extends RequestInit {\r\n // TODO: support WebSocket transport\r\n id?: string;\r\n tag?: string;\r\n url: string;\r\n // authType?: ...;\r\n useAuth?: boolean;\r\n // authToken?: string; // bearerToken\r\n // TODO: support\r\n // accepts: string[]; // https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Accept\r\n // TODO: support\r\n crossDomain?: boolean;\r\n contentType?: MimeType; // dataType\r\n httpOnly?: boolean;\r\n // transportType: ...;\r\n callbacks?: IRequestCallbacks<TResult>;\r\n}\r\n"],"names":["getResponseBlob","response","getResponseJson","getResponseText","getResponseArrayBuffer","getResponseResult","request","contentType","result","resolved","httpStatus","ApiError"],"mappings":";;AAwEO,MAAMA,IAAkB,CAACC,MAAuBA,EAAS,KAAA,GAEnDC,IAAkB,CAACD,MAAuBA,EAAS,KAAA,GAEnDE,IAAkB,CAACF,MAAuBA,EAAS,KAAA,GAEnDG,IAAyB,CAACH,MAAuBA,EAAS,YAAA;AAGvE,eAAsBI,EAAkBJ,GAA0BK,GAAsC;AAEpG,MAAIC,IACAD,EAAQ,gBACPA,EAAQ,WAAWA,EAAQ,mBAAmB,UAAUA,EAAQ,QAAQ,IAAI,cAAc,IAAIA,EAAQ,QAAQ,cAAc;AACjI,EAAIL,EAAS,YAOTM,IAAcN,EAAS,mBAAmB,UAAUA,EAAS,QAAQ,IAAI,cAAc,IAAIA,EAAS,QAAQ,cAAc;AAE9H,MAAIO;AACJ,EAAKP,EAAS,aACVA,EAAS,WAAW,CAAA;AAExB,QAAMQ,IAAWR,EAAS;AAE1B,MADAM,KAAeA,KAAe,IAAI,YAAA,GAC9BA,EAAY,WAAW,OAAO;AAC9B,IAAAC,IAAS,MAAMP,EAAS,KAAA;AAAA,WACjBM,EAAY,WAAW,QAAQ;AACtC,IAAAC,IAAS,MAAMP,EAAS,KAAA;AAAA,WAEpBM,EAAY,WAAW,kBAAkB;AACzC,IAAAC,IAAS,MAAMP,EAAS,KAAA,GACxBQ,EAAS,OAAOD;AAAA,WACTD,EAAY,WAAW,cAAc;AAC5C,IAAAC,IAAS,MAAMP,EAAS,KAAA,GACxBQ,EAAS,OAAOD;AAAA;AAEhB,QAAI;AACA,MAAAC,EAAS,OAAO,MAAMR,EAAS,MAAA,EAAQ,KAAA;AAAA,IAC3C,QAAQ;AACJ,UAAI;AACA,QAAAQ,EAAS,OAAO,MAAMR,EAAS,KAAA;AAAA,MACnC,QAAQ;AAAA,MACR;AAAA,IACJ;AAKR,MAAI,EAAEA,EAAS,WAAWS,EAAW,MAAMT,EAAS,WAAWS,EAAW;AAEtE,UAAMC,EAAS,OAAOV,GAAUK,CAAO;AAG3C,SAAAA,EAAQ,SAASE,GACVA;AACX;"}
1
+ {"version":3,"file":"request.es.js","sources":["../../src/net/request.ts"],"sourcesContent":null,"names":["getResponseBlob","response","getResponseJson","getResponseText","getResponseArrayBuffer","getResponseResult","request","contentType","result","resolved","httpStatus","ApiError"],"mappings":";;AAwEO,MAAMA,IAAkB,CAACC,MAAuBA,EAAS,KAAA,GAEnDC,IAAkB,CAACD,MAAuBA,EAAS,KAAA,GAEnDE,IAAkB,CAACF,MAAuBA,EAAS,KAAA,GAEnDG,IAAyB,CAACH,MAAuBA,EAAS,YAAA;AAGvE,eAAsBI,EAAkBJ,GAA0BK,GAAsC;AAEpG,MAAIC,IACAD,EAAQ,gBACPA,EAAQ,WAAWA,EAAQ,mBAAmB,UAAUA,EAAQ,QAAQ,IAAI,cAAc,IAAIA,EAAQ,QAAQ,cAAc;AACjI,EAAIL,EAAS,YAOTM,IAAcN,EAAS,mBAAmB,UAAUA,EAAS,QAAQ,IAAI,cAAc,IAAIA,EAAS,QAAQ,cAAc;AAE9H,MAAIO;AACJ,EAAKP,EAAS,aACVA,EAAS,WAAW,CAAA;AAExB,QAAMQ,IAAWR,EAAS;AAE1B,MADAM,KAAeA,KAAe,IAAI,YAAA,GAC9BA,EAAY,WAAW,OAAO;AAC9B,IAAAC,IAAS,MAAMP,EAAS,KAAA;AAAA,WACjBM,EAAY,WAAW,QAAQ;AACtC,IAAAC,IAAS,MAAMP,EAAS,KAAA;AAAA,WAEpBM,EAAY,WAAW,kBAAkB;AACzC,IAAAC,IAAS,MAAMP,EAAS,KAAA,GACxBQ,EAAS,OAAOD;AAAA,WACTD,EAAY,WAAW,cAAc;AAC5C,IAAAC,IAAS,MAAMP,EAAS,KAAA,GACxBQ,EAAS,OAAOD;AAAA;AAEhB,QAAI;AACA,MAAAC,EAAS,OAAO,MAAMR,EAAS,MAAA,EAAQ,KAAA;AAAA,IAC3C,QAAQ;AACJ,UAAI;AACA,QAAAQ,EAAS,OAAO,MAAMR,EAAS,KAAA;AAAA,MACnC,QAAQ;AAAA,MACR;AAAA,IACJ;AAKR,MAAI,EAAEA,EAAS,WAAWS,EAAW,MAAMT,EAAS,WAAWS,EAAW;AAEtE,UAAMC,EAAS,OAAOV,GAAUK,CAAO;AAG3C,SAAAA,EAAQ,SAASE,GACVA;AACX;"}
@@ -1,2 +1,2 @@
1
- export declare function useLazyRef<T>(factory: () => T): any;
1
+ export declare function useLazyRef<T>(factory: () => T): import('react').RefObject<T>;
2
2
  //# sourceMappingURL=reactHooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactHooks.d.ts","sourceRoot":"","sources":["../src/reactHooks.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAM7C"}
1
+ {"version":3,"file":"reactHooks.d.ts","sourceRoot":"","sources":["../src/reactHooks.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gCAM7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactHooks.es.js","sources":["../src/reactHooks.ts"],"sourcesContent":["import { useRef } from \"react\";\r\n\r\nexport function useLazyRef<T>(factory: () => T) {\r\n const ref = useRef<T | null>(null);\r\n if (ref.current === null) {\r\n ref.current = factory();\r\n }\r\n return ref;\r\n}\r\n"],"names":["useLazyRef","factory","ref","useRef"],"mappings":";AAEO,SAASA,EAAcC,GAAkB;AAC5C,QAAMC,IAAMC,EAAiB,IAAI;AACjC,SAAID,EAAI,YAAY,SAChBA,EAAI,UAAUD,EAAA,IAEXC;AACX;"}
1
+ {"version":3,"file":"reactHooks.es.js","sources":["../src/reactHooks.ts"],"sourcesContent":null,"names":["useLazyRef","factory","ref","useRef"],"mappings":";AAEO,SAASA,EAAcC,GAAkB;AAC5C,QAAMC,IAAMC,EAAiB,IAAI;AACjC,SAAID,EAAI,YAAY,SAChBA,EAAI,UAAUD,EAAA,IAEXC;AACX;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceProvider.es.js","sources":["../../src/services/ServiceProvider.ts"],"sourcesContent":["import { BaseAppMsgStruct } from '@/appDomain/appContracts';\r\nimport { MsgProviderAdapter, registerAdapters } from '../componentModel/adapters';\r\nimport { MsgBus } from '@actdim/msgmesh/contracts';\r\n\r\nexport function createServiceProvider(msgBus: MsgBus<BaseAppMsgStruct>, adapters?: MsgProviderAdapter[], abortSignal?: AbortSignal) {\r\n const abortController = new AbortController();\r\n if (abortSignal) {\r\n abortSignal = AbortSignal.any([abortSignal, abortController.signal]);\r\n }\r\n registerAdapters(msgBus, adapters, abortSignal);\r\n return {\r\n adapters,\r\n abortSignal\r\n }\r\n}\r\n\r\n"],"names":["createServiceProvider","msgBus","adapters","abortSignal","abortController","registerAdapters"],"mappings":";AAIO,SAASA,EAAsBC,GAAkCC,GAAiCC,GAA2B;AAChI,QAAMC,IAAkB,IAAI,gBAAA;AAC5B,SAAID,MACAA,IAAc,YAAY,IAAI,CAACA,GAAaC,EAAgB,MAAM,CAAC,IAEvEC,EAAiBJ,GAAQC,GAAUC,CAAW,GACvC;AAAA,IACH,UAAAD;AAAA,IACA,aAAAC;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"ServiceProvider.es.js","sources":["../../src/services/ServiceProvider.ts"],"sourcesContent":null,"names":["createServiceProvider","msgBus","adapters","abortSignal","abortController","registerAdapters"],"mappings":";AAIO,SAASA,EAAsBC,GAAkCC,GAAiCC,GAA2B;AAChI,QAAMC,IAAkB,IAAI,gBAAA;AAC5B,SAAID,MACAA,IAAc,YAAY,IAAI,CAACA,GAAaC,EAAgB,MAAM,CAAC,IAEvEC,EAAiBJ,GAAQC,GAAUC,CAAW,GACvC;AAAA,IACH,UAAAD;AAAA,IACA,aAAAC;AAAA,EAAA;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StorageService.es.js","sources":["../../src/services/StorageService.ts"],"sourcesContent":["import { PersistentStore } from '@actdim/utico/store/persistentStore';\r\nimport { $STORE_GET, $STORE_REMOVE, $STORE_SET, BaseAppMsgStruct } from '@/appDomain/appContracts';\r\nimport { MsgBus } from '@actdim/msgmesh/contracts';\r\n\r\nexport async function createStorageService(msgBus: MsgBus<BaseAppMsgStruct>, storeName: string, abortSignal?: AbortSignal) {\r\n\r\n const abortController = new AbortController();\r\n if (abortSignal) {\r\n abortSignal = AbortSignal.any([abortSignal, abortController.signal]);\r\n }\r\n\r\n const getStore = () => {\r\n return PersistentStore.open(storeName);\r\n }\r\n\r\n msgBus.provide({\r\n channel: $STORE_GET,\r\n group: \"in\",\r\n options: {\r\n abortSignal\r\n },\r\n callback: async (msg) => {\r\n const store = await getStore();\r\n return await store.get(msg.payload.key);\r\n }\r\n });\r\n\r\n msgBus.provide({\r\n channel: $STORE_SET,\r\n group: \"in\",\r\n options: {\r\n abortSignal\r\n },\r\n callback: async (msg) => {\r\n const store = await getStore();\r\n await store.set(\r\n {\r\n key: msg.payload.key,\r\n },\r\n msg.payload.value,\r\n );\r\n }\r\n });\r\n\r\n msgBus.provide({\r\n channel: $STORE_REMOVE,\r\n group: \"in\",\r\n options: {\r\n abortSignal\r\n },\r\n callback: async (msg) => {\r\n const store = await getStore();\r\n await store.delete(msg.payload.key);\r\n }\r\n });\r\n\r\n return {\r\n storeName,\r\n abortSignal\r\n }\r\n};"],"names":["createStorageService","msgBus","storeName","abortSignal","abortController","getStore","PersistentStore","$STORE_GET","msg","$STORE_SET","$STORE_REMOVE"],"mappings":";;AAIA,eAAsBA,EAAqBC,GAAkCC,GAAmBC,GAA2B;AAEvH,QAAMC,IAAkB,IAAI,gBAAA;AAC5B,EAAID,MACAA,IAAc,YAAY,IAAI,CAACA,GAAaC,EAAgB,MAAM,CAAC;AAGvE,QAAMC,IAAW,MACNC,EAAgB,KAAKJ,CAAS;AAGzC,SAAAD,EAAO,QAAQ;AAAA,IACX,SAASM;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAJ;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOK,MAEN,OADO,MAAMH,EAAA,GACD,IAAIG,EAAI,QAAQ,GAAG;AAAA,EAC1C,CACH,GAEDP,EAAO,QAAQ;AAAA,IACX,SAASQ;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAN;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOK,MAAQ;AAErB,aADc,MAAMH,EAAA,GACR;AAAA,QACR;AAAA,UACI,KAAKG,EAAI,QAAQ;AAAA,QAAA;AAAA,QAErBA,EAAI,QAAQ;AAAA,MAAA;AAAA,IAEpB;AAAA,EAAA,CACH,GAEDP,EAAO,QAAQ;AAAA,IACX,SAASS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAP;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOK,MAAQ;AAErB,aADc,MAAMH,EAAA,GACR,OAAOG,EAAI,QAAQ,GAAG;AAAA,IACtC;AAAA,EAAA,CACH,GAEM;AAAA,IACH,WAAAN;AAAA,IACA,aAAAC;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"StorageService.es.js","sources":["../../src/services/StorageService.ts"],"sourcesContent":null,"names":["createStorageService","msgBus","storeName","abortSignal","abortController","getStore","PersistentStore","$STORE_GET","msg","$STORE_SET","$STORE_REMOVE"],"mappings":";;AAIA,eAAsBA,EAAqBC,GAAkCC,GAAmBC,GAA2B;AAEvH,QAAMC,IAAkB,IAAI,gBAAA;AAC5B,EAAID,MACAA,IAAc,YAAY,IAAI,CAACA,GAAaC,EAAgB,MAAM,CAAC;AAGvE,QAAMC,IAAW,MACNC,EAAgB,KAAKJ,CAAS;AAGzC,SAAAD,EAAO,QAAQ;AAAA,IACX,SAASM;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAJ;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOK,MAEN,OADO,MAAMH,EAAA,GACD,IAAIG,EAAI,QAAQ,GAAG;AAAA,EAC1C,CACH,GAEDP,EAAO,QAAQ;AAAA,IACX,SAASQ;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAN;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOK,MAAQ;AAErB,aADc,MAAMH,EAAA,GACR;AAAA,QACR;AAAA,UACI,KAAKG,EAAI,QAAQ;AAAA,QAAA;AAAA,QAErBA,EAAI,QAAQ;AAAA,MAAA;AAAA,IAEpB;AAAA,EAAA,CACH,GAEDP,EAAO,QAAQ;AAAA,IACX,SAASS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAP;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOK,MAAQ;AAErB,aADc,MAAMH,EAAA,GACR,OAAOG,EAAI,QAAQ,GAAG;AAAA,IACtC;AAAA,EAAA,CACH,GAEM;AAAA,IACH,WAAAN;AAAA,IACA,aAAAC;AAAA,EAAA;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavService.d.ts","sourceRoot":"","sources":["../../../src/services/react/NavService.tsx"],"names":[],"mappings":"AAQA,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACR,SAAS,EAGT,eAAe,EACf,eAAe,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,KAAK,MAAM,GAAG,eAAe,CACzB,gBAAgB,EAChB;IACI,KAAK,EAAE,iBAAiB,GAAG;QACvB,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,MAAM,EAAE,SAAS,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACN,OAAO,EAAE,kBAAkB,CACrB,cAAc,GACd,qBAAqB,GACrB,sBAAsB,GACtB,yBAAyB,CAC9B,CAAC;KACL,CAAC;CACL,CACJ,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,QAAQ,eAAe,CAAC,MAAM,CAAC,sBA+E5D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACtC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAwB,CAAC"}
1
+ {"version":3,"file":"NavService.d.ts","sourceRoot":"","sources":["../../../src/services/react/NavService.tsx"],"names":[],"mappings":"AAQA,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACR,SAAS,EAGT,eAAe,EACf,eAAe,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,KAAK,MAAM,GAAG,eAAe,CACzB,gBAAgB,EAChB;IACI,KAAK,EAAE,iBAAiB,GAAG;QACvB,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,MAAM,EAAE,SAAS,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACN,OAAO,EAAE,kBAAkB,CACrB,cAAc,GACd,qBAAqB,GACrB,sBAAsB,GACtB,yBAAyB,CAC9B,CAAC;KACL,CAAC;CACL,CACJ,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,QAAQ,eAAe,CAAC,MAAM,CAAC,sBA+E5D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACtC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAA0B,CAAC"}
@@ -1,9 +1,9 @@
1
- import { useNavigate as p, useLocation as m, useNavigationType as y, useParams as h, useSearchParams as N } from "react-router-dom";
2
- import { getFC as P, useComponent as v } from "../../componentModel/react.es.js";
1
+ import { useNavigate as p, useLocation as y, useNavigationType as m, useParams as h, useSearchParams as N } from "react-router-dom";
2
+ import { toReact as P, useComponent as v } from "../../componentModel/react.es.js";
3
3
  const A = (n) => {
4
- let t, o;
5
- const e = p(), c = m(), i = y(), l = h(), [u] = N();
6
- return t = v({
4
+ let e, o;
5
+ const s = p(), c = y(), i = m(), l = h(), [u] = N();
6
+ return e = v({
7
7
  props: {
8
8
  history: [],
9
9
  routes: void 0
@@ -13,13 +13,13 @@ const A = (n) => {
13
13
  "APP.NAV.GOTO": {
14
14
  in: {
15
15
  callback: async (a) => {
16
- e(a.payload);
16
+ s(a.payload);
17
17
  }
18
18
  },
19
19
  ex: {
20
20
  callback: async (a) => {
21
- const s = a.payload.route;
22
- e(o.routes[s].path(a.payload.params));
21
+ const t = a.payload.route;
22
+ s(o.routes[t].path(a.payload.params));
23
23
  }
24
24
  }
25
25
  },
@@ -37,16 +37,16 @@ const A = (n) => {
37
37
  }
38
38
  },
39
39
  events: {
40
- onLayout: (a) => {
41
- const s = o.history;
42
- if (s) {
40
+ onLayoutReady: (a) => {
41
+ const t = o.history;
42
+ if (t) {
43
43
  const r = {
44
44
  location: c,
45
45
  searchParams: u,
46
46
  params: l,
47
47
  navType: i
48
48
  };
49
- s.push(r), a.msgBus.send({
49
+ t.push(r), a.msgBus.send({
50
50
  channel: "APP.NAV.CONTEXT.CHANGED",
51
51
  group: "in",
52
52
  payload: r
@@ -55,10 +55,10 @@ const A = (n) => {
55
55
  }
56
56
  },
57
57
  view: () => null
58
- }, n), o = t.model, t;
59
- }, C = P(A);
58
+ }, n), o = e.model, e;
59
+ }, E = P(A);
60
60
  export {
61
- C as NavService,
61
+ E as NavService,
62
62
  A as useNavService
63
63
  };
64
64
  //# sourceMappingURL=NavService.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavService.es.js","sources":["../../../src/services/react/NavService.tsx"],"sourcesContent":["import {\r\n To,\r\n useLocation,\r\n useNavigate,\r\n useNavigationType,\r\n useParams,\r\n useSearchParams,\r\n} from 'react-router-dom';\r\nimport {\r\n BaseAppMsgChannels,\r\n BaseAppMsgStruct,\r\n NavContext,\r\n NavRoutes,\r\n} from '@/appDomain/appContracts';\r\nimport type {\r\n Component,\r\n ComponentDef,\r\n ComponentModel,\r\n ComponentParams,\r\n ComponentStruct,\r\n} from '@/componentModel/contracts';\r\nimport { getFC, useComponent } from '@/componentModel/react';\r\nimport { PropsWithChildren } from 'react';\r\n\r\ntype Struct = ComponentStruct<\r\n BaseAppMsgStruct,\r\n {\r\n props: PropsWithChildren & {\r\n history: NavContext[];\r\n routes: NavRoutes;\r\n };\r\n msgScope: {\r\n provide: BaseAppMsgChannels<\r\n | 'APP.NAV.GOTO'\r\n | 'APP.NAV.CONTEXT.GET'\r\n | 'APP.NAV.HISTORY.READ'\r\n | 'APP.NAV.CONTEXT.CHANGED'\r\n >;\r\n };\r\n }\r\n>;\r\n\r\n// const store = new PersistentStore('history');\r\n\r\nexport const useNavService = (params: ComponentParams<Struct>) => {\r\n let c: Component<Struct>;\r\n let m: ComponentModel<Struct>;\r\n\r\n const navigate = useNavigate();\r\n\r\n const location = useLocation();\r\n const navType = useNavigationType();\r\n const nvaParams = useParams();\r\n const [searchParams] = useSearchParams();\r\n\r\n const def: ComponentDef<Struct> = {\r\n props: {\r\n history: [],\r\n routes: undefined,\r\n },\r\n msgBroker: {\r\n provide: {\r\n 'APP.NAV.GOTO': {\r\n in: {\r\n callback: async (msg) => {\r\n navigate(msg.payload as To);\r\n },\r\n },\r\n ex: {\r\n callback: async (msg) => {\r\n const route = msg.payload.route;\r\n navigate(m.routes[route].path(msg.payload.params));\r\n },\r\n },\r\n },\r\n 'APP.NAV.CONTEXT.GET': {\r\n in: {\r\n callback: (msg) => {\r\n return m.history[m.history.length - 1];\r\n },\r\n },\r\n },\r\n 'APP.NAV.HISTORY.READ': {\r\n in: {\r\n callback: (msg) => {\r\n return m.history[m.history.length - 1];\r\n },\r\n },\r\n },\r\n 'APP.NAV.CONTEXT.CHANGED': {},\r\n },\r\n },\r\n events: {\r\n onLayout: (c) => {\r\n const history = m.history;\r\n if (history) {\r\n const ctx = {\r\n location: location,\r\n searchParams: searchParams,\r\n params: nvaParams,\r\n navType: navType,\r\n };\r\n history.push(ctx);\r\n c.msgBus.send({\r\n channel: 'APP.NAV.CONTEXT.CHANGED',\r\n group: 'in',\r\n payload: ctx,\r\n });\r\n }\r\n },\r\n },\r\n view: () => {\r\n return null;\r\n },\r\n };\r\n\r\n c = useComponent(def, params);\r\n m = c.model;\r\n\r\n // deps\r\n // location, navType, params, searchParams\r\n\r\n return c;\r\n};\r\n\r\nexport type NavServiceStruct = Struct;\r\nexport const NavService: React.FC<ComponentParams<Struct>> = getFC(useNavService);\r\n"],"names":["useNavService","params","c","m","navigate","useNavigate","location","useLocation","navType","useNavigationType","nvaParams","useParams","searchParams","useSearchParams","useComponent","msg","route","history","ctx","NavService","getFC"],"mappings":";;AA4CO,MAAMA,IAAgB,CAACC,MAAoC;AAC9D,MAAIC,GACAC;AAEJ,QAAMC,IAAWC,EAAA,GAEXC,IAAWC,EAAA,GACXC,IAAUC,EAAA,GACVC,IAAYC,EAAA,GACZ,CAACC,CAAY,IAAIC,EAAA;AA+DvB,SAAAX,IAAIY,EA7D8B;AAAA,IAC9B,OAAO;AAAA,MACH,SAAS,CAAA;AAAA,MACT,QAAQ;AAAA,IAAA;AAAA,IAEZ,WAAW;AAAA,MACP,SAAS;AAAA,QACL,gBAAgB;AAAA,UACZ,IAAI;AAAA,YACA,UAAU,OAAOC,MAAQ;AACrB,cAAAX,EAASW,EAAI,OAAa;AAAA,YAC9B;AAAA,UAAA;AAAA,UAEJ,IAAI;AAAA,YACA,UAAU,OAAOA,MAAQ;AACrB,oBAAMC,IAAQD,EAAI,QAAQ;AAC1B,cAAAX,EAASD,EAAE,OAAOa,CAAK,EAAE,KAAKD,EAAI,QAAQ,MAAM,CAAC;AAAA,YACrD;AAAA,UAAA;AAAA,QACJ;AAAA,QAEJ,uBAAuB;AAAA,UACnB,IAAI;AAAA,YACA,UAAU,CAACA,MACAZ,EAAE,QAAQA,EAAE,QAAQ,SAAS,CAAC;AAAA,UACzC;AAAA,QACJ;AAAA,QAEJ,wBAAwB;AAAA,UACpB,IAAI;AAAA,YACA,UAAU,CAACY,MACAZ,EAAE,QAAQA,EAAE,QAAQ,SAAS,CAAC;AAAA,UACzC;AAAA,QACJ;AAAA,QAEJ,2BAA2B,CAAA;AAAA,MAAC;AAAA,IAChC;AAAA,IAEJ,QAAQ;AAAA,MACJ,UAAU,CAACD,MAAM;AACb,cAAMe,IAAUd,EAAE;AAClB,YAAIc,GAAS;AACT,gBAAMC,IAAM;AAAA,YACR,UAAAZ;AAAA,YACA,cAAAM;AAAA,YACA,QAAQF;AAAA,YACR,SAAAF;AAAA,UAAA;AAEJ,UAAAS,EAAQ,KAAKC,CAAG,GAChBhB,EAAE,OAAO,KAAK;AAAA,YACV,SAAS;AAAA,YACT,OAAO;AAAA,YACP,SAASgB;AAAA,UAAA,CACZ;AAAA,QACL;AAAA,MACJ;AAAA,IAAA;AAAA,IAEJ,MAAM,MACK;AAAA,EACX,GAGkBjB,CAAM,GAC5BE,IAAID,EAAE,OAKCA;AACX,GAGaiB,IAAgDC,EAAMpB,CAAa;"}
1
+ {"version":3,"file":"NavService.es.js","sources":["../../../src/services/react/NavService.tsx"],"sourcesContent":null,"names":["useNavService","params","c","m","navigate","useNavigate","location","useLocation","navType","useNavigationType","nvaParams","useParams","searchParams","useSearchParams","useComponent","msg","route","history","ctx","NavService","toReact"],"mappings":";;AA4CO,MAAMA,IAAgB,CAACC,MAAoC;AAC9D,MAAIC,GACAC;AAEJ,QAAMC,IAAWC,EAAA,GAEXC,IAAWC,EAAA,GACXC,IAAUC,EAAA,GACVC,IAAYC,EAAA,GACZ,CAACC,CAAY,IAAIC,EAAA;AA+DvB,SAAAX,IAAIY,EA7D8B;AAAA,IAC9B,OAAO;AAAA,MACH,SAAS,CAAA;AAAA,MACT,QAAQ;AAAA,IAAA;AAAA,IAEZ,WAAW;AAAA,MACP,SAAS;AAAA,QACL,gBAAgB;AAAA,UACZ,IAAI;AAAA,YACA,UAAU,OAAOC,MAAQ;AACrB,cAAAX,EAASW,EAAI,OAAa;AAAA,YAC9B;AAAA,UAAA;AAAA,UAEJ,IAAI;AAAA,YACA,UAAU,OAAOA,MAAQ;AACrB,oBAAMC,IAAQD,EAAI,QAAQ;AAC1B,cAAAX,EAASD,EAAE,OAAOa,CAAK,EAAE,KAAKD,EAAI,QAAQ,MAAM,CAAC;AAAA,YACrD;AAAA,UAAA;AAAA,QACJ;AAAA,QAEJ,uBAAuB;AAAA,UACnB,IAAI;AAAA,YACA,UAAU,CAACA,MACAZ,EAAE,QAAQA,EAAE,QAAQ,SAAS,CAAC;AAAA,UACzC;AAAA,QACJ;AAAA,QAEJ,wBAAwB;AAAA,UACpB,IAAI;AAAA,YACA,UAAU,CAACY,MACAZ,EAAE,QAAQA,EAAE,QAAQ,SAAS,CAAC;AAAA,UACzC;AAAA,QACJ;AAAA,QAEJ,2BAA2B,CAAA;AAAA,MAAC;AAAA,IAChC;AAAA,IAEJ,QAAQ;AAAA,MACJ,eAAe,CAACD,MAAM;AAClB,cAAMe,IAAUd,EAAE;AAClB,YAAIc,GAAS;AACT,gBAAMC,IAAM;AAAA,YACR,UAAAZ;AAAA,YACA,cAAAM;AAAA,YACA,QAAQF;AAAA,YACR,SAAAF;AAAA,UAAA;AAEJ,UAAAS,EAAQ,KAAKC,CAAG,GAChBhB,EAAE,OAAO,KAAK;AAAA,YACV,SAAS;AAAA,YACT,OAAO;AAAA,YACP,SAASgB;AAAA,UAAA,CACZ;AAAA,QACL;AAAA,MACJ;AAAA,IAAA;AAAA,IAEJ,MAAM,MACK;AAAA,EACX,GAGkBjB,CAAM,GAC5BE,IAAID,EAAE,OAKCA;AACX,GAGaiB,IAAgDC,EAAQpB,CAAa;"}
@@ -1,7 +1,7 @@
1
- import { PropsWithChildren } from 'react';
1
+ import { PropsWithChildren, default as React } from 'react';
2
2
  import { MsgProviderAdapter } from '../../componentModel/adapters';
3
3
  export declare function ServiceProvider(props: PropsWithChildren<{
4
4
  adapters?: MsgProviderAdapter[];
5
5
  abortSignal?: AbortSignal;
6
- }>): any;
6
+ }>): React.JSX.Element;
7
7
  //# sourceMappingURL=ServiceProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceProvider.d.ts","sourceRoot":"","sources":["../../../src/services/react/ServiceProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,iBAAiB,EAAmB,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAoB,MAAM,+BAA+B,CAAC;AAQrF,wBAAgB,eAAe,CAC3B,KAAK,EAAE,iBAAiB,CAAC;IACrB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC,OAyBL"}
1
+ {"version":3,"file":"ServiceProvider.d.ts","sourceRoot":"","sources":["../../../src/services/react/ServiceProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,iBAAiB,EAAmB,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAoB,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,wBAAgB,eAAe,CAC3B,KAAK,EAAE,iBAAiB,CAAC;IACrB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC,qBAyBL"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceProvider.es.js","sources":["../../../src/services/react/ServiceProvider.tsx"],"sourcesContent":["import { useComponentContext } from '@/componentModel/componentContext';\r\nimport { createContext, PropsWithChildren, useLayoutEffect } from 'react';\r\nimport { MsgProviderAdapter, registerAdapters } from '../../componentModel/adapters';\r\nimport React from 'react';\r\n\r\nconst ReactContext = createContext<{\r\n adapters: MsgProviderAdapter[];\r\n abortSignal?: AbortSignal;\r\n}>(undefined);\r\n\r\nexport function ServiceProvider(\r\n props: PropsWithChildren<{\r\n adapters?: MsgProviderAdapter[];\r\n abortSignal?: AbortSignal;\r\n }>,\r\n) {\r\n const context = useComponentContext();\r\n const abortController = new AbortController();\r\n let abortSignal = props.abortSignal;\r\n if (abortSignal) {\r\n abortSignal = AbortSignal.any([abortSignal, abortController.signal]);\r\n }\r\n useLayoutEffect(() => {\r\n registerAdapters(context.msgBus, props.adapters, abortSignal);\r\n return () => {\r\n abortController.abort();\r\n };\r\n }, [context.msgBus, props.adapters]);\r\n\r\n return (\r\n <ReactContext.Provider\r\n value={{\r\n adapters: props.adapters,\r\n abortSignal: abortSignal,\r\n }}\r\n >\r\n {props.children}\r\n </ReactContext.Provider>\r\n );\r\n}\r\n"],"names":["ReactContext","createContext","ServiceProvider","props","context","useComponentContext","abortController","abortSignal","useLayoutEffect","registerAdapters","React"],"mappings":";;;AAKA,MAAMA,IAAeC,EAGlB,MAAS;AAEL,SAASC,EACZC,GAIF;AACE,QAAMC,IAAUC,EAAA,GACVC,IAAkB,IAAI,gBAAA;AAC5B,MAAIC,IAAcJ,EAAM;AACxB,SAAII,MACAA,IAAc,YAAY,IAAI,CAACA,GAAaD,EAAgB,MAAM,CAAC,IAEvEE,EAAgB,OACZC,EAAiBL,EAAQ,QAAQD,EAAM,UAAUI,CAAW,GACrD,MAAM;AACT,IAAAD,EAAgB,MAAA;AAAA,EACpB,IACD,CAACF,EAAQ,QAAQD,EAAM,QAAQ,CAAC,GAG/B,gBAAAO,EAAA;AAAA,IAACV,EAAa;AAAA,IAAb;AAAA,MACG,OAAO;AAAA,QACH,UAAUG,EAAM;AAAA,QAChB,aAAAI;AAAA,MAAA;AAAA,IACJ;AAAA,IAECJ,EAAM;AAAA,EAAA;AAGnB;"}
1
+ {"version":3,"file":"ServiceProvider.es.js","sources":["../../../src/services/react/ServiceProvider.tsx"],"sourcesContent":null,"names":["ReactContext","createContext","ServiceProvider","props","context","useComponentContext","abortController","abortSignal","useLayoutEffect","registerAdapters","React"],"mappings":";;;AAKA,MAAMA,IAAeC,EAGlB,MAAS;AAEL,SAASC,EACZC,GAIF;AACE,QAAMC,IAAUC,EAAA,GACVC,IAAkB,IAAI,gBAAA;AAC5B,MAAIC,IAAcJ,EAAM;AACxB,SAAII,MACAA,IAAc,YAAY,IAAI,CAACA,GAAaD,EAAgB,MAAM,CAAC,IAEvEE,EAAgB,OACZC,EAAiBL,EAAQ,QAAQD,EAAM,UAAUI,CAAW,GACrD,MAAM;AACT,IAAAD,EAAgB,MAAA;AAAA,EACpB,IACD,CAACF,EAAQ,QAAQD,EAAM,QAAQ,CAAC,GAG/B,gBAAAO,EAAA;AAAA,IAACV,EAAa;AAAA,IAAb;AAAA,MACG,OAAO;AAAA,QACH,UAAUG,EAAM;AAAA,QAChB,aAAAI;AAAA,MAAA;AAAA,IACJ;AAAA,IAECJ,EAAM;AAAA,EAAA;AAGnB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StorageService.d.ts","sourceRoot":"","sources":["../../../src/services/react/StorageService.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,eAAe,EACf,SAAS,EAGZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,KAAK,MAAM,GAAG,eAAe,CACzB,gBAAgB,EAChB;IACI,KAAK,EAAE,iBAAiB,GAAG;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE;QACN,OAAO,EAAE,kBAAkB,CAAC,eAAe,GAAG,eAAe,GAAG,kBAAkB,CAAC,CAAC;KACvF,CAAC;CACL,CACJ,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,CAAC,MAAM,CAAC,sBA+DhE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAC1C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAA4B,CAAC"}
1
+ {"version":3,"file":"StorageService.d.ts","sourceRoot":"","sources":["../../../src/services/react/StorageService.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,eAAe,EACf,SAAS,EAGZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,KAAK,MAAM,GAAG,eAAe,CACzB,gBAAgB,EAChB;IACI,KAAK,EAAE,iBAAiB,GAAG;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE;QACN,OAAO,EAAE,kBAAkB,CAAC,eAAe,GAAG,eAAe,GAAG,kBAAkB,CAAC,CAAC;KACvF,CAAC;CACL,CACJ,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,CAAC,MAAM,CAAC,sBA+DhE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAC1C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAA8B,CAAC"}
@@ -1,9 +1,9 @@
1
- import { getFC as c, useComponent as l } from "../../componentModel/react.es.js";
2
- import { PersistentStore as y } from "@actdim/utico/store/persistentStore";
3
- const m = (s) => {
1
+ import { toReact as s, useComponent as l } from "../../componentModel/react.es.js";
2
+ import { PersistentStore as m } from "@actdim/utico/store/persistentStore";
3
+ const p = (c) => {
4
4
  let a, n;
5
5
  async function r() {
6
- t = await y.open(n.storeName);
6
+ t = await m.open(n.storeName);
7
7
  }
8
8
  let t, i;
9
9
  const o = new Promise((e) => {
@@ -46,10 +46,10 @@ const m = (s) => {
46
46
  r();
47
47
  }
48
48
  }
49
- }, s), n = a.model, r().then(() => i()), a;
50
- }, w = c(m);
49
+ }, c), n = a.model, r().then(() => i()), a;
50
+ }, w = s(p);
51
51
  export {
52
52
  w as StorageService,
53
- m as useStorageService
53
+ p as useStorageService
54
54
  };
55
55
  //# sourceMappingURL=StorageService.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageService.es.js","sources":["../../../src/services/react/StorageService.tsx"],"sourcesContent":["import {\r\n ComponentParams,\r\n ComponentStruct,\r\n Component,\r\n ComponentModel,\r\n ComponentDef,\r\n} from '@/componentModel/contracts';\r\nimport { getFC, useComponent } from '@/componentModel/react';\r\nimport { PersistentStore } from '@actdim/utico/store/persistentStore';\r\nimport { BaseAppMsgChannels, BaseAppMsgStruct } from '@/appDomain/appContracts';\r\nimport { PropsWithChildren } from 'react';\r\n\r\ntype Struct = ComponentStruct<\r\n BaseAppMsgStruct,\r\n {\r\n props: PropsWithChildren & {\r\n storeName?: string;\r\n };\r\n msgScope: {\r\n provide: BaseAppMsgChannels<'APP.STORE.GET' | 'APP.STORE.SET' | 'APP.STORE.REMOVE'>;\r\n };\r\n }\r\n>;\r\n\r\nexport const useStorageService = (params: ComponentParams<Struct>) => {\r\n let c: Component<Struct>;\r\n let m: ComponentModel<Struct>;\r\n\r\n async function _updateStoreAsync() {\r\n store = await PersistentStore.open(m.storeName);\r\n }\r\n\r\n let store: PersistentStore;\r\n let ready: () => void;\r\n const init = new Promise<void>((res) => {\r\n ready = res;\r\n });\r\n\r\n const def: ComponentDef<Struct> = {\r\n props: {\r\n storeName: '',\r\n },\r\n msgBroker: {\r\n provide: {\r\n 'APP.STORE.GET': {\r\n in: {\r\n callback: async (msg) => {\r\n await init;\r\n const item = await store.get(msg.payload.key); \r\n return item;\r\n },\r\n },\r\n },\r\n 'APP.STORE.SET': {\r\n in: {\r\n callback: async (msg) => {\r\n await init;\r\n await store.set(\r\n {\r\n key: msg.payload.key,\r\n },\r\n msg.payload.value,\r\n );\r\n },\r\n },\r\n },\r\n 'APP.STORE.REMOVE': {\r\n in: {\r\n callback: async (msg) => {\r\n await init;\r\n await store.delete(msg.payload.key);\r\n },\r\n },\r\n },\r\n },\r\n },\r\n events: {\r\n onChangeStoreName: () => {\r\n _updateStoreAsync();\r\n },\r\n },\r\n };\r\n\r\n c = useComponent(def, params);\r\n m = c.model;\r\n _updateStoreAsync().then(() => ready());\r\n return c;\r\n};\r\n\r\nexport type StorageServiceStruct = Struct;\r\nexport const StorageService: React.FC<ComponentParams<Struct>> = getFC(useStorageService);\r\n"],"names":["useStorageService","params","c","m","_updateStoreAsync","store","PersistentStore","ready","init","res","useComponent","msg","StorageService","getFC"],"mappings":";;AAwBO,MAAMA,IAAoB,CAACC,MAAoC;AAClE,MAAIC,GACAC;AAEJ,iBAAeC,IAAoB;AAC/B,IAAAC,IAAQ,MAAMC,EAAgB,KAAKH,EAAE,SAAS;AAAA,EAClD;AAEA,MAAIE,GACAE;AACJ,QAAMC,IAAO,IAAI,QAAc,CAACC,MAAQ;AACpC,IAAAF,IAAQE;AAAA,EACZ,CAAC;AA+CD,SAAAP,IAAIQ,EA7C8B;AAAA,IAC9B,OAAO;AAAA,MACH,WAAW;AAAA,IAAA;AAAA,IAEf,WAAW;AAAA,MACP,SAAS;AAAA,QACL,iBAAiB;AAAA,UACb,IAAI;AAAA,YACA,UAAU,OAAOC,OACb,MAAMH,GACO,MAAMH,EAAM,IAAIM,EAAI,QAAQ,GAAG;AAAA,UAEhD;AAAA,QACJ;AAAA,QAEJ,iBAAiB;AAAA,UACb,IAAI;AAAA,YACA,UAAU,OAAOA,MAAQ;AACrB,oBAAMH,GACN,MAAMH,EAAM;AAAA,gBACR;AAAA,kBACI,KAAKM,EAAI,QAAQ;AAAA,gBAAA;AAAA,gBAErBA,EAAI,QAAQ;AAAA,cAAA;AAAA,YAEpB;AAAA,UAAA;AAAA,QACJ;AAAA,QAEJ,oBAAoB;AAAA,UAChB,IAAI;AAAA,YACA,UAAU,OAAOA,MAAQ;AACrB,oBAAMH,GACN,MAAMH,EAAM,OAAOM,EAAI,QAAQ,GAAG;AAAA,YACtC;AAAA,UAAA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,IAEJ,QAAQ;AAAA,MACJ,mBAAmB,MAAM;AACrB,QAAAP,EAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EACJ,GAGkBH,CAAM,GAC5BE,IAAID,EAAE,OACNE,IAAoB,KAAK,MAAMG,GAAO,GAC/BL;AACX,GAGaU,IAAoDC,EAAMb,CAAiB;"}
1
+ {"version":3,"file":"StorageService.es.js","sources":["../../../src/services/react/StorageService.tsx"],"sourcesContent":null,"names":["useStorageService","params","c","m","_updateStore","store","PersistentStore","ready","init","res","useComponent","msg","StorageService","toReact"],"mappings":";;AAwBO,MAAMA,IAAoB,CAACC,MAAoC;AAClE,MAAIC,GACAC;AAEJ,iBAAeC,IAAe;AAC1B,IAAAC,IAAQ,MAAMC,EAAgB,KAAKH,EAAE,SAAS;AAAA,EAClD;AAEA,MAAIE,GACAE;AACJ,QAAMC,IAAO,IAAI,QAAc,CAACC,MAAQ;AACpC,IAAAF,IAAQE;AAAA,EACZ,CAAC;AA+CD,SAAAP,IAAIQ,EA7C8B;AAAA,IAC9B,OAAO;AAAA,MACH,WAAW;AAAA,IAAA;AAAA,IAEf,WAAW;AAAA,MACP,SAAS;AAAA,QACL,iBAAiB;AAAA,UACb,IAAI;AAAA,YACA,UAAU,OAAOC,OACb,MAAMH,GACO,MAAMH,EAAM,IAAIM,EAAI,QAAQ,GAAG;AAAA,UAEhD;AAAA,QACJ;AAAA,QAEJ,iBAAiB;AAAA,UACb,IAAI;AAAA,YACA,UAAU,OAAOA,MAAQ;AACrB,oBAAMH,GACN,MAAMH,EAAM;AAAA,gBACR;AAAA,kBACI,KAAKM,EAAI,QAAQ;AAAA,gBAAA;AAAA,gBAErBA,EAAI,QAAQ;AAAA,cAAA;AAAA,YAEpB;AAAA,UAAA;AAAA,QACJ;AAAA,QAEJ,oBAAoB;AAAA,UAChB,IAAI;AAAA,YACA,UAAU,OAAOA,MAAQ;AACrB,oBAAMH,GACN,MAAMH,EAAM,OAAOM,EAAI,QAAQ,GAAG;AAAA,YACtC;AAAA,UAAA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,IAEJ,QAAQ;AAAA,MACJ,mBAAmB,MAAM;AACrB,QAAAP,EAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EACJ,GAGkBH,CAAM,GAC5BE,IAAID,EAAE,OACNE,IAAe,KAAK,MAAMG,GAAO,GAC1BL;AACX,GAGaU,IAAoDC,EAAQb,CAAiB;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actdim/dynstruct",
3
- "version": "1.2.6",
3
+ "version": "1.2.7",
4
4
  "description": "A type-safe component system for large-scale apps: explicit dependencies, message bus communication, and structure-first, declarative design",
5
5
  "author": "Pavel Borodaev",
6
6
  "license": "Proprietary",
@@ -71,7 +71,7 @@
71
71
  "typecheck": "tsc -p tsconfig.json --noEmit"
72
72
  },
73
73
  "peerDependencies": {
74
- "@actdim/msgmesh": "^1.2.5",
74
+ "@actdim/msgmesh": "^1.2.7",
75
75
  "@actdim/utico": "^1.1.2",
76
76
  "http-status": "^2.1.0",
77
77
  "jwt-decode": "^4.0.0",
@@ -94,6 +94,8 @@
94
94
  "@types/chai": "^5.2.3",
95
95
  "@types/mocha": "^10.0.10",
96
96
  "@types/node": "^24.10.0",
97
+ "@types/react": "^19.2.14",
98
+ "@types/react-dom": "^19.2.3",
97
99
  "@typescript-eslint/eslint-plugin": "^8.46.3",
98
100
  "@typescript-eslint/parser": "^8.46.3",
99
101
  "@vitejs/plugin-react-swc": "^4.2.1",