@squide/firefly 9.3.1 → 9.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/AppRouter.d.ts +8 -12
- package/dist/AppRouter.js +68 -8
- package/dist/AppRouter.js.map +1 -0
- package/dist/AppRouterContext.d.ts +5 -9
- package/dist/AppRouterContext.js +30 -1
- package/dist/AppRouterContext.js.map +1 -0
- package/dist/AppRouterReducer.d.ts +23 -26
- package/dist/AppRouterReducer.js +339 -4
- package/dist/AppRouterReducer.js.map +1 -0
- package/dist/FireflyRuntime.d.ts +5 -8
- package/dist/FireflyRuntime.js +66 -5
- package/dist/FireflyRuntime.js.map +1 -0
- package/dist/GlobalDataQueriesError.d.ts +2 -4
- package/dist/GlobalDataQueriesError.js +19 -1
- package/dist/GlobalDataQueriesError.js.map +1 -0
- package/dist/RootRoute.d.ts +1 -5
- package/dist/RootRoute.js +48 -3
- package/dist/RootRoute.js.map +1 -0
- package/dist/boostrap.d.ts +8 -13
- package/dist/boostrap.js +54 -1
- package/dist/boostrap.js.map +1 -0
- package/dist/index.d.ts +23 -28
- package/dist/index.js +51 -25
- package/dist/index.js.map +1 -0
- package/dist/useCanFetchProtectedData.d.ts +1 -3
- package/dist/useCanFetchProtectedData.js +17 -2
- package/dist/useCanFetchProtectedData.js.map +1 -0
- package/dist/useCanFetchPublicData.d.ts +1 -3
- package/dist/useCanFetchPublicData.js +17 -2
- package/dist/useCanFetchPublicData.js.map +1 -0
- package/dist/useCanRegisterDeferredRegistrations.d.ts +1 -3
- package/dist/useCanRegisterDeferredRegistrations.js +14 -2
- package/dist/useCanRegisterDeferredRegistrations.js.map +1 -0
- package/dist/useCanUpdateDeferredRegistrations.d.ts +1 -3
- package/dist/useCanUpdateDeferredRegistrations.js +16 -2
- package/dist/useCanUpdateDeferredRegistrations.js.map +1 -0
- package/dist/useDeferredRegistrations.d.ts +5 -8
- package/dist/useDeferredRegistrations.js +74 -6
- package/dist/useDeferredRegistrations.js.map +1 -0
- package/dist/useExecuteOnce.d.ts +1 -3
- package/dist/useExecuteOnce.js +29 -1
- package/dist/useExecuteOnce.js.map +1 -0
- package/dist/useIsActiveRouteProtected.d.ts +1 -3
- package/dist/useIsActiveRouteProtected.js +23 -1
- package/dist/useIsActiveRouteProtected.js.map +1 -0
- package/dist/useIsBootstrapping.d.ts +3 -7
- package/dist/useIsBootstrapping.js +22 -2
- package/dist/useIsBootstrapping.js.map +1 -0
- package/dist/useNavigationItems.d.ts +3 -7
- package/dist/useNavigationItems.js +26 -2
- package/dist/useNavigationItems.js.map +1 -0
- package/dist/useProtectedDataQueries.d.ts +6 -8
- package/dist/useProtectedDataQueries.js +126 -5
- package/dist/useProtectedDataQueries.js.map +1 -0
- package/dist/usePublicDataQueries.d.ts +5 -7
- package/dist/usePublicDataQueries.js +111 -5
- package/dist/usePublicDataQueries.js.map +1 -0
- package/dist/useRegisterDeferredRegistrations.d.ts +4 -9
- package/dist/useRegisterDeferredRegistrations.js +19 -1
- package/dist/useRegisterDeferredRegistrations.js.map +1 -0
- package/dist/useStrictRegistrationMode.d.ts +1 -3
- package/dist/useStrictRegistrationMode.js +40 -1
- package/dist/useStrictRegistrationMode.js.map +1 -0
- package/dist/useUpdateDeferredRegistrations.d.ts +4 -9
- package/dist/useUpdateDeferredRegistrations.js +30 -2
- package/dist/useUpdateDeferredRegistrations.js.map +1 -0
- package/package.json +29 -24
- package/src/AppRouter.tsx +63 -0
- package/src/AppRouterContext.ts +27 -0
- package/src/AppRouterReducer.ts +363 -0
- package/src/FireflyRuntime.tsx +71 -0
- package/src/GlobalDataQueriesError.ts +17 -0
- package/src/RootRoute.tsx +25 -0
- package/src/boostrap.ts +62 -0
- package/src/index.ts +28 -0
- package/src/useCanFetchProtectedData.ts +26 -0
- package/src/useCanFetchPublicData.ts +23 -0
- package/src/useCanRegisterDeferredRegistrations.ts +24 -0
- package/src/useCanUpdateDeferredRegistrations.ts +23 -0
- package/src/useDeferredRegistrations.ts +59 -0
- package/src/useExecuteOnce.ts +23 -0
- package/src/useIsActiveRouteProtected.ts +12 -0
- package/src/useIsBootstrapping.ts +45 -0
- package/src/useNavigationItems.ts +18 -0
- package/src/useProtectedDataQueries.ts +101 -0
- package/src/usePublicDataQueries.ts +88 -0
- package/src/useRegisterDeferredRegistrations.ts +9 -0
- package/src/useStrictRegistrationMode.ts +28 -0
- package/src/useUpdateDeferredRegistrations.ts +16 -0
- package/dist/chunk-4RUCDAUT.js +0 -18
- package/dist/chunk-BFHHJOJT.js +0 -41
- package/dist/chunk-CTLPFYLM.js +0 -65
- package/dist/chunk-G32YX2KR.js +0 -22
- package/dist/chunk-GXSW4CZS.js +0 -9
- package/dist/chunk-H2ILEMPE.js +0 -28
- package/dist/chunk-HE5HKFL3.js +0 -16
- package/dist/chunk-IOMSOUAL.js +0 -20
- package/dist/chunk-JFMSLZ74.js +0 -253
- package/dist/chunk-L44KFU57.js +0 -34
- package/dist/chunk-LC233OPR.js +0 -54
- package/dist/chunk-MKTGJHQR.js +0 -71
- package/dist/chunk-N2GOIQ5E.js +0 -14
- package/dist/chunk-PMVN3U47.js +0 -21
- package/dist/chunk-PP3MRMJJ.js +0 -11
- package/dist/chunk-ROE2YHN5.js +0 -44
- package/dist/chunk-TURKCH7J.js +0 -20
- package/dist/chunk-WOPD33CM.js +0 -25
- package/dist/chunk-WVRMJZV6.js +0 -18
- package/dist/chunk-XDWYPVAJ.js +0 -21
- package/dist/chunk-YRWFYWK4.js +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePublicDataQueries.js","sources":["webpack://@squide/firefly/./src/usePublicDataQueries.ts"],"sourcesContent":["import { useEventBus } from \"@squide/core\";\nimport { useQueries, type QueriesOptions, type QueriesResults, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { useAppRouterDispatcher } from \"./AppRouterContext.ts\";\nimport { GlobalDataQueriesError } from \"./GlobalDataQueriesError.ts\";\nimport { useCanFetchPublicData } from \"./useCanFetchPublicData.ts\";\nimport { useExecuteOnce } from \"./useExecuteOnce.ts\";\n\nexport const PublicDataFetchStartedEvent = \"squide-public-data-fetch-started\";\nexport const PublicDataFetchFailedEvent = \"squide-public-data-fetch-failed\";\n\n// This converts an array of UseQueryResult to an array of the data type of each query result.\n// For more information, view: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-1.html#mapped-types-on-tuples-and-arrays.\ntype MapUseQueryResultToData<T> = { [K in keyof T]: T[K] extends UseQueryResult<infer U> ? U : never };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function usePublicDataQueries<T extends Array<any>>(queries: QueriesOptions<T>): MapUseQueryResultToData<QueriesResults<T>> {\n const canFetchPublicData = useCanFetchPublicData();\n const eventBus = useEventBus();\n\n const dispatch = useAppRouterDispatcher();\n\n const combineResults = useCallback((results: UseQueryResult<unknown, Error>[]) => {\n const errors = results.filter(x => x.error).map(x => x.error) as Error[];\n const hasErrors = errors.length > 0;\n\n return {\n data: results.map(x => x.data) as MapUseQueryResultToData<QueriesResults<T>>,\n errors,\n hasErrors,\n isReady: !hasErrors && !results.some(x => x.isPending)\n };\n }, []);\n\n const { data, errors: queriesErrors, hasErrors, isReady } = useQueries({\n queries: queries.map(x => ({\n enabled: canFetchPublicData,\n ...x\n })),\n combine: combineResults\n });\n\n useExecuteOnce(useCallback(() => {\n if (canFetchPublicData) {\n eventBus.dispatch(PublicDataFetchStartedEvent);\n\n return true;\n }\n\n return false;\n }, [canFetchPublicData, eventBus]), true);\n\n // Using a ref seems to be the only way to prevent starting two deferred registrations scope.\n const isReadyRef = useRef(false);\n\n const dispatchReady = useExecuteOnce(useCallback(() => {\n if (isReady) {\n isReadyRef.current = true;\n\n dispatch({ type: \"public-data-ready\" });\n\n return true;\n }\n\n return false;\n }, [isReady, dispatch]));\n\n useEffect(() => {\n // State update must be executed in useEffect.\n dispatchReady();\n }, [dispatchReady]);\n\n useEffect(() => {\n if (isReadyRef.current && data) {\n dispatch({ type: \"public-data-updated\" });\n }\n }, [data, dispatch]);\n\n useEffect(() => {\n if (hasErrors) {\n eventBus.dispatch(PublicDataFetchFailedEvent, queriesErrors);\n\n throw new GlobalDataQueriesError(\"[squide] Global public data queries failed.\", queriesErrors);\n }\n }, [hasErrors, queriesErrors, eventBus]);\n\n return data;\n}\n"],"names":["useEventBus","useQueries","useCallback","useEffect","useRef","useAppRouterDispatcher","GlobalDataQueriesError","useCanFetchPublicData","useExecuteOnce","PublicDataFetchStartedEvent","PublicDataFetchFailedEvent","usePublicDataQueries","queries","canFetchPublicData","eventBus","dispatch","combineResults","results","errors","x","hasErrors","data","queriesErrors","isReady","isReadyRef","dispatchReady"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAA2C;AACuE;AAC3D;AACQ;AACM;AACF;AACd;AAE9C,MAAMS,8BAA8B,mCAAmC;AACvE,MAAMC,6BAA6B,kCAAkC;AAM5E,8DAA8D;AACvD,SAASC,qBAA2CC,OAA0B;IACjF,MAAMC,qBAAqBN,wFAAqBA;IAChD,MAAMO,WAAWd,uEAAWA;IAE5B,MAAMe,WAAWV,oFAAsBA;IAEvC,MAAMW,iBAAiBd,iDAAWA,CAAC,CAACe;QAChC,MAAMC,SAASD,QAAQ,MAAM,CAACE,CAAAA,IAAKA,EAAE,KAAK,EAAE,GAAG,CAACA,CAAAA,IAAKA,EAAE,KAAK;QAC5D,MAAMC,YAAYF,OAAO,MAAM,GAAG;QAElC,OAAO;YACH,MAAMD,QAAQ,GAAG,CAACE,CAAAA,IAAKA,EAAE,IAAI;YAC7BD;YACAE;YACA,SAAS,CAACA,aAAa,CAACH,QAAQ,IAAI,CAACE,CAAAA,IAAKA,EAAE,SAAS;QACzD;IACJ,GAAG,EAAE;IAEL,MAAM,EAAEE,IAAI,EAAE,QAAQC,aAAa,EAAEF,SAAS,EAAEG,OAAO,EAAE,GAAGtB,yEAAUA,CAAC;QACnE,SAASW,QAAQ,GAAG,CAACO,CAAAA,IAAM;gBACvB,SAASN;gBACT,GAAGM,CAAC;YACR;QACA,SAASH;IACb;IAEAR,0EAAcA,CAACN,iDAAWA,CAAC;QACvB,IAAIW,oBAAoB;YACpBC,SAAS,QAAQ,CAACL;YAElB,OAAO;QACX;QAEA,OAAO;IACX,GAAG;QAACI;QAAoBC;KAAS,GAAG;IAEpC,6FAA6F;IAC7F,MAAMU,aAAapB,4CAAMA,CAAC;IAE1B,MAAMqB,gBAAgBjB,0EAAcA,CAACN,iDAAWA,CAAC;QAC7C,IAAIqB,SAAS;YACTC,WAAW,OAAO,GAAG;YAErBT,SAAS;gBAAE,MAAM;YAAoB;YAErC,OAAO;QACX;QAEA,OAAO;IACX,GAAG;QAACQ;QAASR;KAAS;IAEtBZ,+CAASA,CAAC;QACN,8CAA8C;QAC9CsB;IACJ,GAAG;QAACA;KAAc;IAElBtB,+CAASA,CAAC;QACN,IAAIqB,WAAW,OAAO,IAAIH,MAAM;YAC5BN,SAAS;gBAAE,MAAM;YAAsB;QAC3C;IACJ,GAAG;QAACM;QAAMN;KAAS;IAEnBZ,+CAASA,CAAC;QACN,IAAIiB,WAAW;YACXN,SAAS,QAAQ,CAACJ,4BAA4BY;YAE9C,MAAM,IAAIhB,sFAAsBA,CAAC,+CAA+CgB;QACpF;IACJ,GAAG;QAACF;QAAWE;QAAeR;KAAS;IAEvC,OAAOO;AACX"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
declare function useRegisterDeferredRegistrations(): <TData = unknown, TRuntime extends Runtime = Runtime<unknown, unknown>>(data: TData, runtime: TRuntime) => Promise<{
|
|
6
|
-
localModuleErrors: _squide_core.ModuleRegistrationError[];
|
|
7
|
-
remoteModuleErrors: _squide_module_federation.RemoteModuleRegistrationError[];
|
|
1
|
+
import type { Runtime } from "@squide/core";
|
|
2
|
+
export declare function useRegisterDeferredRegistrations(): <TData = unknown, TRuntime extends Runtime = Runtime<unknown, unknown>>(data: TData, runtime: TRuntime) => Promise<{
|
|
3
|
+
localModuleErrors: import("@squide/core").ModuleRegistrationError[];
|
|
4
|
+
remoteModuleErrors: import("@squide/module-federation").RemoteModuleRegistrationError[];
|
|
8
5
|
}>;
|
|
9
|
-
|
|
10
|
-
export { useRegisterDeferredRegistrations };
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__ from "../../module-federation/src/index.js";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
3
|
+
|
|
4
|
+
;// CONCATENATED MODULE: external "../../module-federation/src/index.js"
|
|
5
|
+
|
|
6
|
+
;// CONCATENATED MODULE: external "react"
|
|
7
|
+
|
|
8
|
+
;// CONCATENATED MODULE: ./src/useRegisterDeferredRegistrations.ts?__rslib_entry__
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
function useRegisterDeferredRegistrations() {
|
|
12
|
+
return (0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)((data, runtime)=>{
|
|
13
|
+
return (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.registerDeferredRegistrations)(data, runtime);
|
|
14
|
+
}, []);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { useRegisterDeferredRegistrations };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=useRegisterDeferredRegistrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRegisterDeferredRegistrations.js","sources":["webpack://@squide/firefly/./src/useRegisterDeferredRegistrations.ts"],"sourcesContent":["import type { Runtime } from \"@squide/core\";\nimport { registerDeferredRegistrations } from \"@squide/module-federation\";\nimport { useCallback } from \"react\";\n\nexport function useRegisterDeferredRegistrations() {\n return useCallback(<TData = unknown, TRuntime extends Runtime = Runtime>(data: TData, runtime: TRuntime) => {\n return registerDeferredRegistrations(data, runtime);\n }, []);\n}\n"],"names":["registerDeferredRegistrations","useCallback","useRegisterDeferredRegistrations","data","runtime"],"mappings":";;;;;;;;AAC0E;AACtC;AAE7B,SAASE;IACZ,OAAOD,iDAAWA,CAAC,CAAsDE,MAAaC;QAClF,OAAOJ,sGAA6BA,CAACG,MAAMC;IAC/C,GAAG,EAAE;AACT"}
|
|
@@ -1 +1,40 @@
|
|
|
1
|
-
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__ from "../../core/src/index.js";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__ from "../../module-federation/src/index.js";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
4
|
+
|
|
5
|
+
;// CONCATENATED MODULE: external "../../core/src/index.js"
|
|
6
|
+
|
|
7
|
+
;// CONCATENATED MODULE: external "../../module-federation/src/index.js"
|
|
8
|
+
|
|
9
|
+
;// CONCATENATED MODULE: external "react"
|
|
10
|
+
|
|
11
|
+
;// CONCATENATED MODULE: ./src/useStrictRegistrationMode.ts?__rslib_entry__
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
function subscribeToLocalModuleRegistrationStatusChanged(callback) {
|
|
16
|
+
(0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.addLocalModuleRegistrationStatusChangedListener)(callback);
|
|
17
|
+
return ()=>(0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.removeLocalModuleRegistrationStatusChangedListener)(callback);
|
|
18
|
+
}
|
|
19
|
+
function subscribeToRemoteModuleRegistrationStatusChanged(callback) {
|
|
20
|
+
(0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.addRemoteModuleRegistrationStatusChangedListener)(callback);
|
|
21
|
+
return ()=>(0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.removeRemoteModuleRegistrationStatusChangedListener)(callback);
|
|
22
|
+
}
|
|
23
|
+
function useStrictRegistrationMode() {
|
|
24
|
+
const runtime = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useRuntime)();
|
|
25
|
+
const localModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE_react__.useSyncExternalStore)(subscribeToLocalModuleRegistrationStatusChanged, __WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.getLocalModuleRegistrationStatus);
|
|
26
|
+
const remoteModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE_react__.useSyncExternalStore)(subscribeToRemoteModuleRegistrationStatusChanged, __WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.getRemoteModuleRegistrationStatus);
|
|
27
|
+
(0,__WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
28
|
+
if ((0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.areModulesReady)(localModuleStatus, remoteModuleStatus)) {
|
|
29
|
+
runtime._validateRegistrations();
|
|
30
|
+
}
|
|
31
|
+
}, [
|
|
32
|
+
runtime,
|
|
33
|
+
localModuleStatus,
|
|
34
|
+
remoteModuleStatus
|
|
35
|
+
]);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { useStrictRegistrationMode };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=useStrictRegistrationMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStrictRegistrationMode.js","sources":["webpack://@squide/firefly/./src/useStrictRegistrationMode.ts"],"sourcesContent":["import { addLocalModuleRegistrationStatusChangedListener, getLocalModuleRegistrationStatus, removeLocalModuleRegistrationStatusChangedListener, useRuntime } from \"@squide/core\";\nimport { addRemoteModuleRegistrationStatusChangedListener, areModulesReady, getRemoteModuleRegistrationStatus, removeRemoteModuleRegistrationStatusChangedListener } from \"@squide/module-federation\";\nimport { useEffect, useSyncExternalStore } from \"react\";\n\nfunction subscribeToLocalModuleRegistrationStatusChanged(callback: () => void) {\n addLocalModuleRegistrationStatusChangedListener(callback);\n\n return () => removeLocalModuleRegistrationStatusChangedListener(callback);\n}\n\nfunction subscribeToRemoteModuleRegistrationStatusChanged(callback: () => void) {\n addRemoteModuleRegistrationStatusChangedListener(callback);\n\n return () => removeRemoteModuleRegistrationStatusChangedListener(callback);\n}\n\nexport function useStrictRegistrationMode() {\n const runtime = useRuntime();\n\n const localModuleStatus = useSyncExternalStore(subscribeToLocalModuleRegistrationStatusChanged, getLocalModuleRegistrationStatus);\n const remoteModuleStatus = useSyncExternalStore(subscribeToRemoteModuleRegistrationStatusChanged, getRemoteModuleRegistrationStatus);\n\n useEffect(() => {\n if (areModulesReady(localModuleStatus, remoteModuleStatus)) {\n runtime._validateRegistrations();\n }\n }, [runtime, localModuleStatus, remoteModuleStatus]);\n}\n"],"names":["addLocalModuleRegistrationStatusChangedListener","getLocalModuleRegistrationStatus","removeLocalModuleRegistrationStatusChangedListener","useRuntime","addRemoteModuleRegistrationStatusChangedListener","areModulesReady","getRemoteModuleRegistrationStatus","removeRemoteModuleRegistrationStatusChangedListener","useEffect","useSyncExternalStore","subscribeToLocalModuleRegistrationStatusChanged","callback","subscribeToRemoteModuleRegistrationStatusChanged","useStrictRegistrationMode","runtime","localModuleStatus","remoteModuleStatus"],"mappings":";;;;;;;;;;;AAAiL;AACqB;AAC9I;AAExD,SAASU,gDAAgDC,QAAoB;IACzEX,2GAA+CA,CAACW;IAEhD,OAAO,IAAMT,8GAAkDA,CAACS;AACpE;AAEA,SAASC,iDAAiDD,QAAoB;IAC1EP,yHAAgDA,CAACO;IAEjD,OAAO,IAAMJ,4HAAmDA,CAACI;AACrE;AAEO,SAASE;IACZ,MAAMC,UAAUX,sEAAUA;IAE1B,MAAMY,oBAAoBN,0DAAoBA,CAACC,iDAAiDT,wFAAgCA;IAChI,MAAMe,qBAAqBP,0DAAoBA,CAACG,kDAAkDN,sGAAiCA;IAEnIE,+CAASA,CAAC;QACN,IAAIH,wFAAeA,CAACU,mBAAmBC,qBAAqB;YACxDF,QAAQ,sBAAsB;QAClC;IACJ,GAAG;QAACA;QAASC;QAAmBC;KAAmB;AACvD"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
declare function useUpdateDeferredRegistrations(): <TData = unknown, TRuntime extends Runtime = Runtime<unknown, unknown>>(data: TData, runtime: TRuntime) => Promise<{
|
|
6
|
-
localModuleErrors: _squide_core.ModuleRegistrationError[];
|
|
7
|
-
remoteModuleErrors: _squide_module_federation.RemoteModuleRegistrationError[];
|
|
1
|
+
import type { Runtime } from "@squide/core";
|
|
2
|
+
export declare function useUpdateDeferredRegistrations(): <TData = unknown, TRuntime extends Runtime = Runtime<unknown, unknown>>(data: TData, runtime: TRuntime) => Promise<{
|
|
3
|
+
localModuleErrors: import("@squide/core").ModuleRegistrationError[];
|
|
4
|
+
remoteModuleErrors: import("@squide/module-federation").RemoteModuleRegistrationError[];
|
|
8
5
|
}>;
|
|
9
|
-
|
|
10
|
-
export { useUpdateDeferredRegistrations };
|
|
@@ -1,2 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__ from "../../module-federation/src/index.js";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__ from "./AppRouterContext.js";
|
|
4
|
+
|
|
5
|
+
;// CONCATENATED MODULE: external "../../module-federation/src/index.js"
|
|
6
|
+
|
|
7
|
+
;// CONCATENATED MODULE: external "react"
|
|
8
|
+
|
|
9
|
+
;// CONCATENATED MODULE: external "./AppRouterContext.js"
|
|
10
|
+
|
|
11
|
+
;// CONCATENATED MODULE: ./src/useUpdateDeferredRegistrations.ts?__rslib_entry__
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
function useUpdateDeferredRegistrations() {
|
|
16
|
+
const dispatch = (0,__WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__.useAppRouterDispatcher)();
|
|
17
|
+
return (0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(async (data, runtime)=>{
|
|
18
|
+
const errors = await (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.updateDeferredRegistrations)(data, runtime);
|
|
19
|
+
dispatch({
|
|
20
|
+
type: "deferred-registrations-updated"
|
|
21
|
+
});
|
|
22
|
+
return errors;
|
|
23
|
+
}, [
|
|
24
|
+
dispatch
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { useUpdateDeferredRegistrations };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=useUpdateDeferredRegistrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateDeferredRegistrations.js","sources":["webpack://@squide/firefly/./src/useUpdateDeferredRegistrations.ts"],"sourcesContent":["import type { Runtime } from \"@squide/core\";\nimport { updateDeferredRegistrations } from \"@squide/module-federation\";\nimport { useCallback } from \"react\";\nimport { useAppRouterDispatcher } from \"./AppRouterContext.ts\";\n\nexport function useUpdateDeferredRegistrations() {\n const dispatch = useAppRouterDispatcher();\n\n return useCallback(async <TData = unknown, TRuntime extends Runtime = Runtime>(data: TData, runtime: TRuntime) => {\n const errors = await updateDeferredRegistrations(data, runtime);\n\n dispatch({ type: \"deferred-registrations-updated\" });\n\n return errors;\n }, [dispatch]);\n}\n"],"names":["updateDeferredRegistrations","useCallback","useAppRouterDispatcher","useUpdateDeferredRegistrations","dispatch","data","runtime","errors"],"mappings":";;;;;;;;;;;AACwE;AACpC;AAC2B;AAExD,SAASG;IACZ,MAAMC,WAAWF,oFAAsBA;IAEvC,OAAOD,iDAAWA,CAAC,OAA4DI,MAAaC;QACxF,MAAMC,SAAS,MAAMP,oGAA2BA,CAACK,MAAMC;QAEvDF,SAAS;YAAE,MAAM;QAAiC;QAElD,OAAOG;IACX,GAAG;QAACH;KAAS;AACjB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squide/firefly",
|
|
3
3
|
"author": "Workleap",
|
|
4
|
-
"version": "9.3.
|
|
4
|
+
"version": "9.3.3",
|
|
5
5
|
"description": "Helpers to facilitate the creation of an application with the Squide firefly technology stack.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"url": "git+https://github.com/gsoft-inc/wl-squide.git",
|
|
10
10
|
"directory": "packages/firefly"
|
|
11
11
|
},
|
|
12
|
+
"type": "module",
|
|
12
13
|
"publishConfig": {
|
|
13
14
|
"access": "public",
|
|
14
15
|
"provenance": true
|
|
15
16
|
},
|
|
16
|
-
"type": "module",
|
|
17
17
|
"exports": {
|
|
18
18
|
".": {
|
|
19
19
|
"types": "./dist/index.d.ts",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
|
-
"
|
|
25
|
+
"src",
|
|
26
|
+
"dist",
|
|
26
27
|
"CHANGELOG.md",
|
|
27
28
|
"README.md"
|
|
28
29
|
],
|
|
@@ -33,41 +34,45 @@
|
|
|
33
34
|
"react-dom": "*",
|
|
34
35
|
"react-router-dom": "*"
|
|
35
36
|
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@types/react": "19.0.7",
|
|
39
|
+
"@types/react-dom": "19.0.3",
|
|
40
|
+
"@squide/core": "5.4.2",
|
|
41
|
+
"@squide/module-federation": "6.2.2",
|
|
42
|
+
"@squide/msw": "3.2.2",
|
|
43
|
+
"@squide/react-router": "6.4.3"
|
|
44
|
+
},
|
|
36
45
|
"devDependencies": {
|
|
37
|
-
"@
|
|
46
|
+
"@rsbuild/core": "1.1.13",
|
|
47
|
+
"@rslib/core": "0.3.1",
|
|
48
|
+
"@swc/core": "1.10.7",
|
|
38
49
|
"@swc/jest": "0.2.37",
|
|
39
50
|
"@testing-library/jest-dom": "6.6.3",
|
|
40
|
-
"@testing-library/react": "16.0
|
|
51
|
+
"@testing-library/react": "16.2.0",
|
|
41
52
|
"@types/jest": "29.5.14",
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@workleap/
|
|
45
|
-
"@workleap/swc-configs": "2.2.
|
|
46
|
-
"@workleap/tsup-configs": "3.0.6",
|
|
53
|
+
"@typescript-eslint/parser": "8.20.0",
|
|
54
|
+
"@workleap/eslint-plugin": "3.2.6",
|
|
55
|
+
"@workleap/rslib-configs": "1.0.2",
|
|
56
|
+
"@workleap/swc-configs": "2.2.4",
|
|
47
57
|
"@workleap/typescript-configs": "3.0.2",
|
|
48
58
|
"eslint": "8.57.0",
|
|
49
59
|
"jest": "29.7.0",
|
|
50
60
|
"jest-environment-jsdom": "29.7.0",
|
|
51
|
-
"msw": "2.
|
|
52
|
-
"react": "
|
|
53
|
-
"react-dom": "
|
|
61
|
+
"msw": "2.7.0",
|
|
62
|
+
"react": "19.0.0",
|
|
63
|
+
"react-dom": "19.0.0",
|
|
54
64
|
"react-router-dom": "6.27.0",
|
|
55
|
-
"ts-
|
|
56
|
-
"tsup": "8.3.5",
|
|
65
|
+
"ts-node": "10.9.2",
|
|
57
66
|
"typescript": "5.5.4"
|
|
58
67
|
},
|
|
59
|
-
"dependencies": {
|
|
60
|
-
"@squide/core": "5.4.1",
|
|
61
|
-
"@squide/module-federation": "6.2.1",
|
|
62
|
-
"@squide/msw": "3.2.1",
|
|
63
|
-
"@squide/react-router": "6.4.1"
|
|
64
|
-
},
|
|
65
68
|
"sideEffects": false,
|
|
66
69
|
"engines": {
|
|
67
|
-
"node": ">=
|
|
70
|
+
"node": ">=21.1.0"
|
|
68
71
|
},
|
|
69
72
|
"scripts": {
|
|
70
|
-
"
|
|
71
|
-
"
|
|
73
|
+
"build": "rslib build --config ./rslib.build.ts",
|
|
74
|
+
"eslint": "eslint . --max-warnings=-0 --cache --cache-location node_modules/.cache/eslint",
|
|
75
|
+
"typecheck": "tsc",
|
|
76
|
+
"test": "jest"
|
|
72
77
|
}
|
|
73
78
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { useLogger } from "@squide/core";
|
|
2
|
+
import { useRoutes, type Route } from "@squide/react-router";
|
|
3
|
+
import { useEffect, useMemo, type ReactElement } from "react";
|
|
4
|
+
import type { RouterProviderProps } from "react-router-dom";
|
|
5
|
+
import { AppRouterDispatcherContext, AppRouterStateContext } from "./AppRouterContext.ts";
|
|
6
|
+
import { useAppRouterReducer } from "./AppRouterReducer.ts";
|
|
7
|
+
import { RootRoute } from "./RootRoute.tsx";
|
|
8
|
+
import { useStrictRegistrationMode } from "./useStrictRegistrationMode.ts";
|
|
9
|
+
|
|
10
|
+
export interface AppRouterRenderFunctionArgs {
|
|
11
|
+
routes: Route[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface RenderRouterProviderFunctionArgs {
|
|
15
|
+
rootRoute: ReactElement;
|
|
16
|
+
registeredRoutes: Route[];
|
|
17
|
+
routerProviderProps: Omit<RouterProviderProps, "router">;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type RenderRouterProviderFunction = (args: RenderRouterProviderFunctionArgs) => ReactElement;
|
|
21
|
+
|
|
22
|
+
export interface AppRouterProps {
|
|
23
|
+
waitForMsw: boolean;
|
|
24
|
+
waitForPublicData?: boolean;
|
|
25
|
+
waitForProtectedData?: boolean;
|
|
26
|
+
children: RenderRouterProviderFunction;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function AppRouter(props: AppRouterProps) {
|
|
30
|
+
const {
|
|
31
|
+
waitForMsw,
|
|
32
|
+
waitForPublicData = false,
|
|
33
|
+
waitForProtectedData = false,
|
|
34
|
+
children: renderRouterProvider
|
|
35
|
+
} = props;
|
|
36
|
+
|
|
37
|
+
const [state, dispatch] = useAppRouterReducer(waitForMsw, waitForPublicData, waitForProtectedData);
|
|
38
|
+
|
|
39
|
+
const logger = useLogger();
|
|
40
|
+
const routes = useRoutes();
|
|
41
|
+
|
|
42
|
+
useStrictRegistrationMode();
|
|
43
|
+
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
logger.debug("[squide] AppRouter state updated:", state);
|
|
46
|
+
}, [state, logger]);
|
|
47
|
+
|
|
48
|
+
const routerProvider = useMemo(() => {
|
|
49
|
+
return renderRouterProvider({
|
|
50
|
+
rootRoute: <RootRoute />,
|
|
51
|
+
registeredRoutes: routes,
|
|
52
|
+
routerProviderProps: {}
|
|
53
|
+
});
|
|
54
|
+
}, [routes, renderRouterProvider]);
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<AppRouterDispatcherContext.Provider value={dispatch}>
|
|
58
|
+
<AppRouterStateContext.Provider value={state}>
|
|
59
|
+
{routerProvider}
|
|
60
|
+
</AppRouterStateContext.Provider>
|
|
61
|
+
</AppRouterDispatcherContext.Provider>
|
|
62
|
+
);
|
|
63
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { isNil } from "@squide/core";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
import type { AppRouterDispatch, AppRouterState } from "./AppRouterReducer.ts";
|
|
4
|
+
|
|
5
|
+
export const AppRouterStateContext = createContext<AppRouterState | undefined>(undefined);
|
|
6
|
+
|
|
7
|
+
export function useAppRouterState() {
|
|
8
|
+
const state = useContext(AppRouterStateContext);
|
|
9
|
+
|
|
10
|
+
if (isNil(state)) {
|
|
11
|
+
throw new Error("[squide] The useAppRouterState hook must be called by a children of the AppRouter component.");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return state;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const AppRouterDispatcherContext = createContext<AppRouterDispatch | undefined>(undefined);
|
|
18
|
+
|
|
19
|
+
export function useAppRouterDispatcher() {
|
|
20
|
+
const dispatch = useContext(AppRouterDispatcherContext);
|
|
21
|
+
|
|
22
|
+
if (isNil(dispatch)) {
|
|
23
|
+
throw new Error("[squide] The useAppRouterDispatcher hook must be called by a children of the AppRouter component.");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return dispatch;
|
|
27
|
+
}
|