@actdim/dynstruct 1.1.6 → 1.1.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/dist/appDomain/appContracts.d.ts +2 -1
- package/dist/appDomain/appContracts.d.ts.map +1 -1
- package/dist/appDomain/appContracts.es.js.map +1 -1
- package/dist/appDomain/security/securityProvider.d.ts.map +1 -1
- package/dist/appDomain/security/securityProvider.es.js +48 -50
- package/dist/appDomain/security/securityProvider.es.js.map +1 -1
- package/dist/componentModel/adapters.d.ts +2 -2
- package/dist/componentModel/adapters.d.ts.map +1 -1
- package/dist/componentModel/adapters.es.js +10 -12
- package/dist/componentModel/adapters.es.js.map +1 -1
- package/dist/componentModel/contracts.d.ts +18 -18
- package/dist/componentModel/contracts.d.ts.map +1 -1
- package/dist/componentModel/contracts.es.js.map +1 -1
- package/dist/componentModel/core.d.ts.map +1 -1
- package/dist/componentModel/core.es.js +86 -86
- package/dist/componentModel/core.es.js.map +1 -1
- package/dist/componentModel/react.d.ts.map +1 -1
- package/dist/componentModel/react.es.js +130 -136
- package/dist/componentModel/react.es.js.map +1 -1
- package/dist/services/ServiceProvider.d.ts +6 -4
- package/dist/services/ServiceProvider.d.ts.map +1 -1
- package/dist/services/ServiceProvider.es.js +8 -13
- package/dist/services/ServiceProvider.es.js.map +1 -1
- package/dist/services/StorageService.d.ts +5 -14
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.es.js +37 -48
- package/dist/services/StorageService.es.js.map +1 -1
- package/dist/services/{NavService.d.ts → react/NavService.d.ts} +3 -3
- package/dist/services/react/NavService.d.ts.map +1 -0
- package/dist/services/{NavService.es.js → react/NavService.es.js} +2 -2
- package/dist/services/react/NavService.es.js.map +1 -0
- package/dist/services/react/ServiceProvider.d.ts +7 -0
- package/dist/services/react/ServiceProvider.d.ts.map +1 -0
- package/dist/services/react/ServiceProvider.es.js +24 -0
- package/dist/services/react/ServiceProvider.es.js.map +1 -0
- package/dist/services/react/StorageService.d.ts +16 -0
- package/dist/services/react/StorageService.d.ts.map +1 -0
- package/dist/services/react/StorageService.es.js +55 -0
- package/dist/services/react/StorageService.es.js.map +1 -0
- package/package.json +1 -1
- package/dist/services/NavService.d.ts.map +0 -1
- package/dist/services/NavService.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageService.es.js","sources":["../../src/services/StorageService.
|
|
1
|
+
{"version":3,"file":"StorageService.es.js","sources":["../../src/services/StorageService.ts"],"sourcesContent":["import { PersistentStore } from '@actdim/utico/store/persistentStore';\r\nimport { 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: 'APP-KV-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: 'APP-KV-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: 'APP-KV-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","msg"],"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,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAE;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOI,MAEN,OADO,MAAMF,EAAA,GACD,IAAIE,EAAI,QAAQ,GAAG;AAAA,EAC1C,CACH,GAEDN,EAAO,QAAQ;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAE;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOI,MAAQ;AAErB,aADc,MAAMF,EAAA,GACR;AAAA,QACR;AAAA,UACI,KAAKE,EAAI,QAAQ;AAAA,QAAA;AAAA,QAErBA,EAAI,QAAQ;AAAA,MAAA;AAAA,IAEpB;AAAA,EAAA,CACH,GAEDN,EAAO,QAAQ;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACL,aAAAE;AAAA,IAAA;AAAA,IAEJ,UAAU,OAAOI,MAAQ;AAErB,aADc,MAAMF,EAAA,GACR,OAAOE,EAAI,QAAQ,GAAG;AAAA,IACtC;AAAA,EAAA,CACH,GAEM;AAAA,IACH,WAAAL;AAAA,IACA,aAAAC;AAAA,EAAA;AAER;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseAppMsgChannels, BaseAppMsgStruct, NavContext, NavRoutes } from '
|
|
2
|
-
import { Component, ComponentParams, ComponentStruct } from '
|
|
1
|
+
import { BaseAppMsgChannels, BaseAppMsgStruct, NavContext, NavRoutes } from '../../appDomain/appContracts';
|
|
2
|
+
import { Component, ComponentParams, ComponentStruct } from '../../componentModel/contracts';
|
|
3
3
|
type Struct = ComponentStruct<BaseAppMsgStruct, {
|
|
4
4
|
props: {
|
|
5
5
|
history: NavContext[];
|
|
@@ -11,6 +11,6 @@ type Struct = ComponentStruct<BaseAppMsgStruct, {
|
|
|
11
11
|
}>;
|
|
12
12
|
export declare const useNavService: (params: ComponentParams<Struct>) => Component<Struct>;
|
|
13
13
|
export type NavServiceStruct = Struct;
|
|
14
|
-
export declare const
|
|
14
|
+
export declare const NavService: FC<ComponentParams<TStruct>>;
|
|
15
15
|
export {};
|
|
16
16
|
//# sourceMappingURL=NavService.d.ts.map
|
|
@@ -0,0 +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;AAGpC,KAAK,MAAM,GAAG,eAAe,CACzB,gBAAgB,EAChB;IACI,KAAK,EAAE;QACH,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,8BAAuB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
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 "
|
|
2
|
+
import { getFC as P, useComponent as v } from "../../componentModel/react.es.js";
|
|
3
3
|
const A = (n) => {
|
|
4
4
|
let t, o;
|
|
5
5
|
const e = p(), c = m(), i = y(), l = h(), [u] = N();
|
|
@@ -58,7 +58,7 @@ const A = (n) => {
|
|
|
58
58
|
}, n), o = t.model, t;
|
|
59
59
|
}, C = P(A);
|
|
60
60
|
export {
|
|
61
|
-
C as
|
|
61
|
+
C as NavService,
|
|
62
62
|
A as useNavService
|
|
63
63
|
};
|
|
64
64
|
//# sourceMappingURL=NavService.es.js.map
|
|
@@ -0,0 +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\n\r\ntype Struct = ComponentStruct<\r\n BaseAppMsgStruct,\r\n {\r\n props: {\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-GET-CONTEXT'\r\n | 'APP-NAV-READ-HISTORY'\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-GET-CONTEXT': {\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-READ-HISTORY': {\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 = 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":";;AA2CO,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,IAAaC,EAAMpB,CAAa;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
import { MsgProviderAdapter } from '../../componentModel/adapters';
|
|
3
|
+
export declare function ServiceProvider(props: PropsWithChildren<{
|
|
4
|
+
adapters?: MsgProviderAdapter[];
|
|
5
|
+
abortSignal?: AbortSignal;
|
|
6
|
+
}>): any;
|
|
7
|
+
//# sourceMappingURL=ServiceProvider.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useComponentContext as a } from "../../componentModel/componentContext.es.js";
|
|
2
|
+
import n, { createContext as i, useLayoutEffect as c } from "react";
|
|
3
|
+
import { registerAdapters as l } from "../../componentModel/adapters.es.js";
|
|
4
|
+
const s = i(void 0);
|
|
5
|
+
function f(t) {
|
|
6
|
+
const r = a(), o = new AbortController();
|
|
7
|
+
let e = t.abortSignal;
|
|
8
|
+
return e && (e = AbortSignal.any([e, o.signal])), c(() => (l(r.msgBus, t.adapters, e), () => {
|
|
9
|
+
o.abort();
|
|
10
|
+
}), [r.msgBus, t.adapters]), /* @__PURE__ */ n.createElement(
|
|
11
|
+
s.Provider,
|
|
12
|
+
{
|
|
13
|
+
value: {
|
|
14
|
+
adapters: t.adapters,
|
|
15
|
+
abortSignal: e
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
t.children
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
f as ServiceProvider
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=ServiceProvider.es.js.map
|
|
@@ -0,0 +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;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ComponentParams, ComponentStruct, Component } from '../../componentModel/contracts';
|
|
2
|
+
import { BaseAppMsgChannels, BaseAppMsgStruct } from '../../appDomain/appContracts';
|
|
3
|
+
import { PropsWithChildren } from 'react';
|
|
4
|
+
type Struct = ComponentStruct<BaseAppMsgStruct, {
|
|
5
|
+
props: PropsWithChildren & {
|
|
6
|
+
storeName?: string;
|
|
7
|
+
};
|
|
8
|
+
msgScope: {
|
|
9
|
+
provide: BaseAppMsgChannels<'APP-KV-STORE-GET' | 'APP-KV-STORE-SET' | 'APP-KV-STORE-REMOVE'>;
|
|
10
|
+
};
|
|
11
|
+
}>;
|
|
12
|
+
export declare const useStorageService: (params: ComponentParams<Struct>) => Component<Struct>;
|
|
13
|
+
export type StorageServiceStruct = Struct;
|
|
14
|
+
export declare const StorageService: FC<ComponentParams<TStruct>>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=StorageService.d.ts.map
|
|
@@ -0,0 +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,CACvB,kBAAkB,GAAG,kBAAkB,GAAG,qBAAqB,CAClE,CAAC;KACL,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,8BAA2B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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) => {
|
|
4
|
+
let t, n;
|
|
5
|
+
async function r() {
|
|
6
|
+
a = await y.open(n.storeName);
|
|
7
|
+
}
|
|
8
|
+
let a, i;
|
|
9
|
+
const o = new Promise((e) => {
|
|
10
|
+
i = e;
|
|
11
|
+
});
|
|
12
|
+
return t = l({
|
|
13
|
+
props: {
|
|
14
|
+
storeName: ""
|
|
15
|
+
},
|
|
16
|
+
msgBroker: {
|
|
17
|
+
provide: {
|
|
18
|
+
"APP-KV-STORE-GET": {
|
|
19
|
+
in: {
|
|
20
|
+
callback: async (e) => (await o, (await a.get(e.payload.key))?.data.value)
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"APP-KV-STORE-SET": {
|
|
24
|
+
in: {
|
|
25
|
+
callback: async (e) => {
|
|
26
|
+
await o, await a.set(
|
|
27
|
+
{
|
|
28
|
+
key: e.payload.key
|
|
29
|
+
},
|
|
30
|
+
e.payload.value
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"APP-KV-STORE-REMOVE": {
|
|
36
|
+
in: {
|
|
37
|
+
callback: async (e) => {
|
|
38
|
+
await o, await a.delete(e.payload.key);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
events: {
|
|
45
|
+
onChangeStoreName: () => {
|
|
46
|
+
r();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}, s), n = t.model, r().then(() => i()), t;
|
|
50
|
+
}, u = c(m);
|
|
51
|
+
export {
|
|
52
|
+
u as StorageService,
|
|
53
|
+
m as useStorageService
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=StorageService.es.js.map
|
|
@@ -0,0 +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<\r\n 'APP-KV-STORE-GET' | 'APP-KV-STORE-SET' | 'APP-KV-STORE-REMOVE'\r\n >;\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-KV-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?.data.value;\r\n },\r\n },\r\n },\r\n 'APP-KV-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-KV-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 = getFC(useStorageService);\r\n"],"names":["useStorageService","params","c","m","_updateStoreAsync","store","PersistentStore","ready","init","res","useComponent","msg","StorageService","getFC"],"mappings":";;AA0BO,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,oBAAoB;AAAA,UAChB,IAAI;AAAA,YACA,UAAU,OAAOC,OACb,MAAMH,IACO,MAAMH,EAAM,IAAIM,EAAI,QAAQ,GAAG,IAC/B,KAAK;AAAA,UACtB;AAAA,QACJ;AAAA,QAEJ,oBAAoB;AAAA,UAChB,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,uBAAuB;AAAA,UACnB,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,IAAiBC,EAAMb,CAAiB;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actdim/dynstruct",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.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",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavService.d.ts","sourceRoot":"","sources":["../../src/services/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;AAGpC,KAAK,MAAM,GAAG,eAAe,CACzB,gBAAgB,EAChB;IACI,KAAK,EAAE;QACH,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,YAAY,8BAAuB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavService.es.js","sources":["../../src/services/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\n\r\ntype Struct = ComponentStruct<\r\n BaseAppMsgStruct,\r\n {\r\n props: {\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-GET-CONTEXT'\r\n | 'APP-NAV-READ-HISTORY'\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-GET-CONTEXT': {\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-READ-HISTORY': {\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 NavServiceFC = getFC(useNavService);\r\n"],"names":["useNavService","params","c","m","navigate","useNavigate","location","useLocation","navType","useNavigationType","nvaParams","useParams","searchParams","useSearchParams","useComponent","msg","route","history","ctx","NavServiceFC","getFC"],"mappings":";;AA2CO,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,IAAeC,EAAMpB,CAAa;"}
|