@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.
Files changed (111) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/AppRouter.d.ts +8 -12
  3. package/dist/AppRouter.js +68 -8
  4. package/dist/AppRouter.js.map +1 -0
  5. package/dist/AppRouterContext.d.ts +5 -9
  6. package/dist/AppRouterContext.js +30 -1
  7. package/dist/AppRouterContext.js.map +1 -0
  8. package/dist/AppRouterReducer.d.ts +23 -26
  9. package/dist/AppRouterReducer.js +339 -4
  10. package/dist/AppRouterReducer.js.map +1 -0
  11. package/dist/FireflyRuntime.d.ts +5 -8
  12. package/dist/FireflyRuntime.js +66 -5
  13. package/dist/FireflyRuntime.js.map +1 -0
  14. package/dist/GlobalDataQueriesError.d.ts +2 -4
  15. package/dist/GlobalDataQueriesError.js +19 -1
  16. package/dist/GlobalDataQueriesError.js.map +1 -0
  17. package/dist/RootRoute.d.ts +1 -5
  18. package/dist/RootRoute.js +48 -3
  19. package/dist/RootRoute.js.map +1 -0
  20. package/dist/boostrap.d.ts +8 -13
  21. package/dist/boostrap.js +54 -1
  22. package/dist/boostrap.js.map +1 -0
  23. package/dist/index.d.ts +23 -28
  24. package/dist/index.js +51 -25
  25. package/dist/index.js.map +1 -0
  26. package/dist/useCanFetchProtectedData.d.ts +1 -3
  27. package/dist/useCanFetchProtectedData.js +17 -2
  28. package/dist/useCanFetchProtectedData.js.map +1 -0
  29. package/dist/useCanFetchPublicData.d.ts +1 -3
  30. package/dist/useCanFetchPublicData.js +17 -2
  31. package/dist/useCanFetchPublicData.js.map +1 -0
  32. package/dist/useCanRegisterDeferredRegistrations.d.ts +1 -3
  33. package/dist/useCanRegisterDeferredRegistrations.js +14 -2
  34. package/dist/useCanRegisterDeferredRegistrations.js.map +1 -0
  35. package/dist/useCanUpdateDeferredRegistrations.d.ts +1 -3
  36. package/dist/useCanUpdateDeferredRegistrations.js +16 -2
  37. package/dist/useCanUpdateDeferredRegistrations.js.map +1 -0
  38. package/dist/useDeferredRegistrations.d.ts +5 -8
  39. package/dist/useDeferredRegistrations.js +74 -6
  40. package/dist/useDeferredRegistrations.js.map +1 -0
  41. package/dist/useExecuteOnce.d.ts +1 -3
  42. package/dist/useExecuteOnce.js +29 -1
  43. package/dist/useExecuteOnce.js.map +1 -0
  44. package/dist/useIsActiveRouteProtected.d.ts +1 -3
  45. package/dist/useIsActiveRouteProtected.js +23 -1
  46. package/dist/useIsActiveRouteProtected.js.map +1 -0
  47. package/dist/useIsBootstrapping.d.ts +3 -7
  48. package/dist/useIsBootstrapping.js +22 -2
  49. package/dist/useIsBootstrapping.js.map +1 -0
  50. package/dist/useNavigationItems.d.ts +3 -7
  51. package/dist/useNavigationItems.js +26 -2
  52. package/dist/useNavigationItems.js.map +1 -0
  53. package/dist/useProtectedDataQueries.d.ts +6 -8
  54. package/dist/useProtectedDataQueries.js +126 -5
  55. package/dist/useProtectedDataQueries.js.map +1 -0
  56. package/dist/usePublicDataQueries.d.ts +5 -7
  57. package/dist/usePublicDataQueries.js +111 -5
  58. package/dist/usePublicDataQueries.js.map +1 -0
  59. package/dist/useRegisterDeferredRegistrations.d.ts +4 -9
  60. package/dist/useRegisterDeferredRegistrations.js +19 -1
  61. package/dist/useRegisterDeferredRegistrations.js.map +1 -0
  62. package/dist/useStrictRegistrationMode.d.ts +1 -3
  63. package/dist/useStrictRegistrationMode.js +40 -1
  64. package/dist/useStrictRegistrationMode.js.map +1 -0
  65. package/dist/useUpdateDeferredRegistrations.d.ts +4 -9
  66. package/dist/useUpdateDeferredRegistrations.js +30 -2
  67. package/dist/useUpdateDeferredRegistrations.js.map +1 -0
  68. package/package.json +29 -24
  69. package/src/AppRouter.tsx +63 -0
  70. package/src/AppRouterContext.ts +27 -0
  71. package/src/AppRouterReducer.ts +363 -0
  72. package/src/FireflyRuntime.tsx +71 -0
  73. package/src/GlobalDataQueriesError.ts +17 -0
  74. package/src/RootRoute.tsx +25 -0
  75. package/src/boostrap.ts +62 -0
  76. package/src/index.ts +28 -0
  77. package/src/useCanFetchProtectedData.ts +26 -0
  78. package/src/useCanFetchPublicData.ts +23 -0
  79. package/src/useCanRegisterDeferredRegistrations.ts +24 -0
  80. package/src/useCanUpdateDeferredRegistrations.ts +23 -0
  81. package/src/useDeferredRegistrations.ts +59 -0
  82. package/src/useExecuteOnce.ts +23 -0
  83. package/src/useIsActiveRouteProtected.ts +12 -0
  84. package/src/useIsBootstrapping.ts +45 -0
  85. package/src/useNavigationItems.ts +18 -0
  86. package/src/useProtectedDataQueries.ts +101 -0
  87. package/src/usePublicDataQueries.ts +88 -0
  88. package/src/useRegisterDeferredRegistrations.ts +9 -0
  89. package/src/useStrictRegistrationMode.ts +28 -0
  90. package/src/useUpdateDeferredRegistrations.ts +16 -0
  91. package/dist/chunk-4RUCDAUT.js +0 -18
  92. package/dist/chunk-BFHHJOJT.js +0 -41
  93. package/dist/chunk-CTLPFYLM.js +0 -65
  94. package/dist/chunk-G32YX2KR.js +0 -22
  95. package/dist/chunk-GXSW4CZS.js +0 -9
  96. package/dist/chunk-H2ILEMPE.js +0 -28
  97. package/dist/chunk-HE5HKFL3.js +0 -16
  98. package/dist/chunk-IOMSOUAL.js +0 -20
  99. package/dist/chunk-JFMSLZ74.js +0 -253
  100. package/dist/chunk-L44KFU57.js +0 -34
  101. package/dist/chunk-LC233OPR.js +0 -54
  102. package/dist/chunk-MKTGJHQR.js +0 -71
  103. package/dist/chunk-N2GOIQ5E.js +0 -14
  104. package/dist/chunk-PMVN3U47.js +0 -21
  105. package/dist/chunk-PP3MRMJJ.js +0 -11
  106. package/dist/chunk-ROE2YHN5.js +0 -44
  107. package/dist/chunk-TURKCH7J.js +0 -20
  108. package/dist/chunk-WOPD33CM.js +0 -25
  109. package/dist/chunk-WVRMJZV6.js +0 -18
  110. package/dist/chunk-XDWYPVAJ.js +0 -21
  111. package/dist/chunk-YRWFYWK4.js +0 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @squide/firefly
2
2
 
3
+ ## 9.3.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#231](https://github.com/gsoft-inc/wl-squide/pull/231) [`3c6bce0`](https://github.com/gsoft-inc/wl-squide/commit/3c6bce0cd559d0b8517d644661b6fb2b818ab2f6) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Packages now includes source code and sourcemap.
8
+
9
+ - Updated dependencies [[`3c6bce0`](https://github.com/gsoft-inc/wl-squide/commit/3c6bce0cd559d0b8517d644661b6fb2b818ab2f6)]:
10
+ - @squide/module-federation@6.2.2
11
+ - @squide/react-router@6.4.3
12
+ - @squide/core@5.4.2
13
+ - @squide/msw@3.2.2
14
+
15
+ ## 9.3.2
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [[`4eb46d6`](https://github.com/gsoft-inc/wl-squide/commit/4eb46d69283804a5809494f7275f9d447022a97d)]:
20
+ - @squide/react-router@6.4.2
21
+
3
22
  ## 9.3.1
4
23
 
5
24
  ### Patch Changes
@@ -1,23 +1,19 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Route } from '@squide/react-router';
3
- import { ReactElement } from 'react';
4
- import { RouterProviderProps } from 'react-router-dom';
5
-
6
- interface AppRouterRenderFunctionArgs {
1
+ import { type Route } from "@squide/react-router";
2
+ import { type ReactElement } from "react";
3
+ import type { RouterProviderProps } from "react-router-dom";
4
+ export interface AppRouterRenderFunctionArgs {
7
5
  routes: Route[];
8
6
  }
9
- interface RenderRouterProviderFunctionArgs {
7
+ export interface RenderRouterProviderFunctionArgs {
10
8
  rootRoute: ReactElement;
11
9
  registeredRoutes: Route[];
12
10
  routerProviderProps: Omit<RouterProviderProps, "router">;
13
11
  }
14
- type RenderRouterProviderFunction = (args: RenderRouterProviderFunctionArgs) => ReactElement;
15
- interface AppRouterProps {
12
+ export type RenderRouterProviderFunction = (args: RenderRouterProviderFunctionArgs) => ReactElement;
13
+ export interface AppRouterProps {
16
14
  waitForMsw: boolean;
17
15
  waitForPublicData?: boolean;
18
16
  waitForProtectedData?: boolean;
19
17
  children: RenderRouterProviderFunction;
20
18
  }
21
- declare function AppRouter(props: AppRouterProps): react_jsx_runtime.JSX.Element;
22
-
23
- export { AppRouter, type AppRouterProps, type AppRouterRenderFunctionArgs, type RenderRouterProviderFunction, type RenderRouterProviderFunctionArgs };
19
+ export declare function AppRouter(props: AppRouterProps): import("react/jsx-runtime").JSX.Element;
package/dist/AppRouter.js CHANGED
@@ -1,8 +1,68 @@
1
- export { AppRouter } from './chunk-L44KFU57.js';
2
- import './chunk-WOPD33CM.js';
3
- import './chunk-JFMSLZ74.js';
4
- import './chunk-TURKCH7J.js';
5
- import './chunk-H2ILEMPE.js';
6
- import './chunk-PMVN3U47.js';
7
- import './chunk-PP3MRMJJ.js';
8
- import './chunk-G32YX2KR.js';
1
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__ from "../../core/src/index.js";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__react_router_src_index_js_ff6a88b1__ from "../../react-router/src/index.js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__ from "./AppRouterContext.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__AppRouterReducer_js_6fa81ecc__ from "./AppRouterReducer.js";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__RootRoute_js_5c2fbb69__ from "./RootRoute.js";
8
+ import * as __WEBPACK_EXTERNAL_MODULE__useStrictRegistrationMode_js_f67d8785__ from "./useStrictRegistrationMode.js";
9
+
10
+ ;// CONCATENATED MODULE: external "react/jsx-runtime"
11
+
12
+ ;// CONCATENATED MODULE: external "../../core/src/index.js"
13
+
14
+ ;// CONCATENATED MODULE: external "../../react-router/src/index.js"
15
+
16
+ ;// CONCATENATED MODULE: external "react"
17
+
18
+ ;// CONCATENATED MODULE: external "./AppRouterContext.js"
19
+
20
+ ;// CONCATENATED MODULE: external "./AppRouterReducer.js"
21
+
22
+ ;// CONCATENATED MODULE: external "./RootRoute.js"
23
+
24
+ ;// CONCATENATED MODULE: external "./useStrictRegistrationMode.js"
25
+
26
+ ;// CONCATENATED MODULE: ./src/AppRouter.tsx?__rslib_entry__
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+ function AppRouter(props) {
36
+ const { waitForMsw, waitForPublicData = false, waitForProtectedData = false, children: renderRouterProvider } = props;
37
+ const [state, dispatch] = (0,__WEBPACK_EXTERNAL_MODULE__AppRouterReducer_js_6fa81ecc__.useAppRouterReducer)(waitForMsw, waitForPublicData, waitForProtectedData);
38
+ const logger = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useLogger)();
39
+ const routes = (0,__WEBPACK_EXTERNAL_MODULE__react_router_src_index_js_ff6a88b1__.useRoutes)();
40
+ (0,__WEBPACK_EXTERNAL_MODULE__useStrictRegistrationMode_js_f67d8785__.useStrictRegistrationMode)();
41
+ (0,__WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
42
+ logger.debug("[squide] AppRouter state updated:", state);
43
+ }, [
44
+ state,
45
+ logger
46
+ ]);
47
+ const routerProvider = (0,__WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
48
+ return renderRouterProvider({
49
+ rootRoute: /*#__PURE__*/ (0,__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__RootRoute_js_5c2fbb69__.RootRoute, {}),
50
+ registeredRoutes: routes,
51
+ routerProviderProps: {}
52
+ });
53
+ }, [
54
+ routes,
55
+ renderRouterProvider
56
+ ]);
57
+ return /*#__PURE__*/ (0,__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__.AppRouterDispatcherContext.Provider, {
58
+ value: dispatch,
59
+ children: /*#__PURE__*/ (0,__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__.AppRouterStateContext.Provider, {
60
+ value: state,
61
+ children: routerProvider
62
+ })
63
+ });
64
+ }
65
+
66
+ export { AppRouter };
67
+
68
+ //# sourceMappingURL=AppRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppRouter.js","sources":["webpack://@squide/firefly/./src/AppRouter.tsx"],"sourcesContent":["import { useLogger } from \"@squide/core\";\nimport { useRoutes, type Route } from \"@squide/react-router\";\nimport { useEffect, useMemo, type ReactElement } from \"react\";\nimport type { RouterProviderProps } from \"react-router-dom\";\nimport { AppRouterDispatcherContext, AppRouterStateContext } from \"./AppRouterContext.ts\";\nimport { useAppRouterReducer } from \"./AppRouterReducer.ts\";\nimport { RootRoute } from \"./RootRoute.tsx\";\nimport { useStrictRegistrationMode } from \"./useStrictRegistrationMode.ts\";\n\nexport interface AppRouterRenderFunctionArgs {\n routes: Route[];\n}\n\nexport interface RenderRouterProviderFunctionArgs {\n rootRoute: ReactElement;\n registeredRoutes: Route[];\n routerProviderProps: Omit<RouterProviderProps, \"router\">;\n}\n\nexport type RenderRouterProviderFunction = (args: RenderRouterProviderFunctionArgs) => ReactElement;\n\nexport interface AppRouterProps {\n waitForMsw: boolean;\n waitForPublicData?: boolean;\n waitForProtectedData?: boolean;\n children: RenderRouterProviderFunction;\n}\n\nexport function AppRouter(props: AppRouterProps) {\n const {\n waitForMsw,\n waitForPublicData = false,\n waitForProtectedData = false,\n children: renderRouterProvider\n } = props;\n\n const [state, dispatch] = useAppRouterReducer(waitForMsw, waitForPublicData, waitForProtectedData);\n\n const logger = useLogger();\n const routes = useRoutes();\n\n useStrictRegistrationMode();\n\n useEffect(() => {\n logger.debug(\"[squide] AppRouter state updated:\", state);\n }, [state, logger]);\n\n const routerProvider = useMemo(() => {\n return renderRouterProvider({\n rootRoute: <RootRoute />,\n registeredRoutes: routes,\n routerProviderProps: {}\n });\n }, [routes, renderRouterProvider]);\n\n return (\n <AppRouterDispatcherContext.Provider value={dispatch}>\n <AppRouterStateContext.Provider value={state}>\n {routerProvider}\n </AppRouterStateContext.Provider>\n </AppRouterDispatcherContext.Provider>\n );\n}\n"],"names":["useLogger","useRoutes","useEffect","useMemo","AppRouterDispatcherContext","AppRouterStateContext","useAppRouterReducer","RootRoute","useStrictRegistrationMode","AppRouter","props","waitForMsw","waitForPublicData","waitForProtectedData","renderRouterProvider","state","dispatch","logger","routes","routerProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAyC;AACoB;AACC;AAE4B;AAC9B;AAChB;AAC+B;AAqBpE,SAASS,UAAUC,KAAqB;IAC3C,MAAM,EACFC,UAAU,EACVC,oBAAoB,KAAK,EACzBC,uBAAuB,KAAK,EAC5B,UAAUC,oBAAoB,EACjC,GAAGJ;IAEJ,MAAM,CAACK,OAAOC,SAAS,GAAGV,iFAAmBA,CAACK,YAAYC,mBAAmBC;IAE7E,MAAMI,SAASjB,qEAASA;IACxB,MAAMkB,SAASjB,6EAASA;IAExBO,gGAAyBA;IAEzBN,+CAASA,CAAC;QACNe,OAAO,KAAK,CAAC,qCAAqCF;IACtD,GAAG;QAACA;QAAOE;KAAO;IAElB,MAAME,iBAAiBhB,6CAAOA,CAAC;QAC3B,OAAOW,qBAAqB;YACxB,yBAAW,+DAACP,4DAASA;YACrB,kBAAkBW;YAClB,qBAAqB,CAAC;QAC1B;IACJ,GAAG;QAACA;QAAQJ;KAAqB;IAEjC,qBACI,+DAACV,6FAAmC;QAAC,OAAOY;kBACxC,6EAACX,wFAA8B;YAAC,OAAOU;sBAClCI;;;AAIjB"}
@@ -1,9 +1,5 @@
1
- import * as react from 'react';
2
- import { AppRouterState, AppRouterDispatch } from './AppRouterReducer.js';
3
-
4
- declare const AppRouterStateContext: react.Context<AppRouterState | undefined>;
5
- declare function useAppRouterState(): AppRouterState;
6
- declare const AppRouterDispatcherContext: react.Context<AppRouterDispatch | undefined>;
7
- declare function useAppRouterDispatcher(): AppRouterDispatch;
8
-
9
- export { AppRouterDispatcherContext, AppRouterStateContext, useAppRouterDispatcher, useAppRouterState };
1
+ import type { AppRouterDispatch, AppRouterState } from "./AppRouterReducer.ts";
2
+ export declare const AppRouterStateContext: import("react").Context<AppRouterState | undefined>;
3
+ export declare function useAppRouterState(): AppRouterState;
4
+ export declare const AppRouterDispatcherContext: import("react").Context<AppRouterDispatch | undefined>;
5
+ export declare function useAppRouterDispatcher(): AppRouterDispatch;
@@ -1 +1,30 @@
1
- export { AppRouterDispatcherContext, AppRouterStateContext, useAppRouterDispatcher, useAppRouterState } from './chunk-G32YX2KR.js';
1
+ import * as __WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__ from "../../core/src/index.js";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
3
+
4
+ ;// CONCATENATED MODULE: external "../../core/src/index.js"
5
+
6
+ ;// CONCATENATED MODULE: external "react"
7
+
8
+ ;// CONCATENATED MODULE: ./src/AppRouterContext.ts?__rslib_entry__
9
+
10
+
11
+ const AppRouterStateContext = (0,__WEBPACK_EXTERNAL_MODULE_react__.createContext)(undefined);
12
+ function useAppRouterState() {
13
+ const state = (0,__WEBPACK_EXTERNAL_MODULE_react__.useContext)(AppRouterStateContext);
14
+ if ((0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.isNil)(state)) {
15
+ throw new Error("[squide] The useAppRouterState hook must be called by a children of the AppRouter component.");
16
+ }
17
+ return state;
18
+ }
19
+ const AppRouterDispatcherContext = (0,__WEBPACK_EXTERNAL_MODULE_react__.createContext)(undefined);
20
+ function useAppRouterDispatcher() {
21
+ const dispatch = (0,__WEBPACK_EXTERNAL_MODULE_react__.useContext)(AppRouterDispatcherContext);
22
+ if ((0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.isNil)(dispatch)) {
23
+ throw new Error("[squide] The useAppRouterDispatcher hook must be called by a children of the AppRouter component.");
24
+ }
25
+ return dispatch;
26
+ }
27
+
28
+ export { AppRouterDispatcherContext, AppRouterStateContext, useAppRouterDispatcher, useAppRouterState };
29
+
30
+ //# sourceMappingURL=AppRouterContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppRouterContext.js","sources":["webpack://@squide/firefly/./src/AppRouterContext.ts"],"sourcesContent":["import { isNil } from \"@squide/core\";\nimport { createContext, useContext } from \"react\";\nimport type { AppRouterDispatch, AppRouterState } from \"./AppRouterReducer.ts\";\n\nexport const AppRouterStateContext = createContext<AppRouterState | undefined>(undefined);\n\nexport function useAppRouterState() {\n const state = useContext(AppRouterStateContext);\n\n if (isNil(state)) {\n throw new Error(\"[squide] The useAppRouterState hook must be called by a children of the AppRouter component.\");\n }\n\n return state;\n}\n\nexport const AppRouterDispatcherContext = createContext<AppRouterDispatch | undefined>(undefined);\n\nexport function useAppRouterDispatcher() {\n const dispatch = useContext(AppRouterDispatcherContext);\n\n if (isNil(dispatch)) {\n throw new Error(\"[squide] The useAppRouterDispatcher hook must be called by a children of the AppRouter component.\");\n }\n\n return dispatch;\n}\n"],"names":["isNil","createContext","useContext","AppRouterStateContext","undefined","useAppRouterState","state","Error","AppRouterDispatcherContext","useAppRouterDispatcher","dispatch"],"mappings":";;;;;;;;AAAqC;AACa;AAG3C,MAAMG,wBAAwBF,mDAAaA,CAA6BG,WAAW;AAEnF,SAASC;IACZ,MAAMC,QAAQJ,gDAAUA,CAACC;IAEzB,IAAIH,iEAAKA,CAACM,QAAQ;QACd,MAAM,IAAIC,MAAM;IACpB;IAEA,OAAOD;AACX;AAEO,MAAME,6BAA6BP,mDAAaA,CAAgCG,WAAW;AAE3F,SAASK;IACZ,MAAMC,WAAWR,gDAAUA,CAACM;IAE5B,IAAIR,iEAAKA,CAACU,WAAW;QACjB,MAAM,IAAIH,MAAM;IACpB;IAEA,OAAOG;AACX"}
@@ -1,7 +1,6 @@
1
- import { Dispatch } from 'react';
2
-
3
- type ActiveRouteVisiblity = "unknown" | "public" | "protected";
4
- interface AppRouterState {
1
+ import { type Dispatch } from "react";
2
+ export type ActiveRouteVisiblity = "unknown" | "public" | "protected";
3
+ export interface AppRouterState {
5
4
  waitForMsw: boolean;
6
5
  waitForPublicData: boolean;
7
6
  waitForProtectedData: boolean;
@@ -16,27 +15,25 @@ interface AppRouterState {
16
15
  activeRouteVisibility: ActiveRouteVisiblity;
17
16
  isUnauthorized: boolean;
18
17
  }
19
- type AppRouterActionType = "modules-registered" | "modules-ready" | "msw-ready" | "public-data-ready" | "protected-data-ready" | "public-data-updated" | "protected-data-updated" | "deferred-registrations-updated" | "active-route-is-public" | "active-route-is-protected" | "is-unauthorized";
20
- declare const ModulesRegisteredEvent = "squide-modules-registered";
21
- declare const ModulesReadyEvent = "squide-modules-ready";
22
- declare const MswReadyEvent = "squide-msw-ready";
23
- declare const PublicDataReadyEvent = "squide-public-data-ready";
24
- declare const ProtectedDataReadyEvent = "squide-protected-data-ready";
25
- declare const PublicDataUpdatedEvent = "squide-public-data-updated";
26
- declare const ProtectedDataUpdatedEvent = "squide-protected-data-updated";
27
- declare const DeferredRegistrationsUpdatedEvent = "squide-deferred-registrations-updated";
28
- declare const ApplicationBoostrappedEvent = "squide-app-boostrapped";
29
- interface AppRouterAction {
18
+ export type AppRouterActionType = "modules-registered" | "modules-ready" | "msw-ready" | "public-data-ready" | "protected-data-ready" | "public-data-updated" | "protected-data-updated" | "deferred-registrations-updated" | "active-route-is-public" | "active-route-is-protected" | "is-unauthorized";
19
+ export declare const ModulesRegisteredEvent = "squide-modules-registered";
20
+ export declare const ModulesReadyEvent = "squide-modules-ready";
21
+ export declare const MswReadyEvent = "squide-msw-ready";
22
+ export declare const PublicDataReadyEvent = "squide-public-data-ready";
23
+ export declare const ProtectedDataReadyEvent = "squide-protected-data-ready";
24
+ export declare const PublicDataUpdatedEvent = "squide-public-data-updated";
25
+ export declare const ProtectedDataUpdatedEvent = "squide-protected-data-updated";
26
+ export declare const DeferredRegistrationsUpdatedEvent = "squide-deferred-registrations-updated";
27
+ export declare const ApplicationBoostrappedEvent = "squide-app-boostrapped";
28
+ export interface AppRouterAction {
30
29
  type: AppRouterActionType;
31
30
  }
32
- type AppRouterDispatch = Dispatch<AppRouterAction>;
33
- declare function getAreModulesRegistered(): boolean;
34
- declare function getAreModulesReady(): boolean;
35
- declare function useModuleRegistrationStatusDispatcher(areModulesRegisteredValue: boolean, areModulesReadyValue: boolean, dispatch: AppRouterDispatch): void;
36
- declare function useMswStatusDispatcher(isMswReadyValue: boolean, dispatch: AppRouterDispatch): void;
37
- declare function useBootstrappingCompletedDispatcher(state: AppRouterState): void;
38
- declare function __setAppReducerDispatchProxyFactory(factory: (reactDispatch: AppRouterDispatch) => AppRouterDispatch): void;
39
- declare function __clearAppReducerDispatchProxy(): void;
40
- declare function useAppRouterReducer(waitForMsw: boolean, waitForPublicData: boolean, waitForProtectedData: boolean): [AppRouterState, AppRouterDispatch];
41
-
42
- export { type ActiveRouteVisiblity, type AppRouterAction, type AppRouterActionType, type AppRouterDispatch, type AppRouterState, ApplicationBoostrappedEvent, DeferredRegistrationsUpdatedEvent, ModulesReadyEvent, ModulesRegisteredEvent, MswReadyEvent, ProtectedDataReadyEvent, ProtectedDataUpdatedEvent, PublicDataReadyEvent, PublicDataUpdatedEvent, __clearAppReducerDispatchProxy, __setAppReducerDispatchProxyFactory, getAreModulesReady, getAreModulesRegistered, useAppRouterReducer, useBootstrappingCompletedDispatcher, useModuleRegistrationStatusDispatcher, useMswStatusDispatcher };
31
+ export type AppRouterDispatch = Dispatch<AppRouterAction>;
32
+ export declare function getAreModulesRegistered(): boolean;
33
+ export declare function getAreModulesReady(): boolean;
34
+ export declare function useModuleRegistrationStatusDispatcher(areModulesRegisteredValue: boolean, areModulesReadyValue: boolean, dispatch: AppRouterDispatch): void;
35
+ export declare function useMswStatusDispatcher(isMswReadyValue: boolean, dispatch: AppRouterDispatch): void;
36
+ export declare function useBootstrappingCompletedDispatcher(state: AppRouterState): void;
37
+ export declare function __setAppReducerDispatchProxyFactory(factory: (reactDispatch: AppRouterDispatch) => AppRouterDispatch): void;
38
+ export declare function __clearAppReducerDispatchProxy(): void;
39
+ export declare function useAppRouterReducer(waitForMsw: boolean, waitForPublicData: boolean, waitForProtectedData: boolean): [AppRouterState, AppRouterDispatch];
@@ -1,4 +1,339 @@
1
- export { ApplicationBoostrappedEvent, DeferredRegistrationsUpdatedEvent, ModulesReadyEvent, ModulesRegisteredEvent, MswReadyEvent, ProtectedDataReadyEvent, ProtectedDataUpdatedEvent, PublicDataReadyEvent, PublicDataUpdatedEvent, __clearAppReducerDispatchProxy, __setAppReducerDispatchProxyFactory, getAreModulesReady, getAreModulesRegistered, useAppRouterReducer, useBootstrappingCompletedDispatcher, useModuleRegistrationStatusDispatcher, useMswStatusDispatcher } from './chunk-JFMSLZ74.js';
2
- import './chunk-TURKCH7J.js';
3
- import './chunk-H2ILEMPE.js';
4
- import './chunk-G32YX2KR.js';
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__msw_src_index_js_df8c7d83__ from "../../msw/src/index.js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__ from "./useExecuteOnce.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__useIsBootstrapping_js_642a9b43__ from "./useIsBootstrapping.js";
7
+
8
+ ;// CONCATENATED MODULE: external "../../core/src/index.js"
9
+
10
+ ;// CONCATENATED MODULE: external "../../module-federation/src/index.js"
11
+
12
+ ;// CONCATENATED MODULE: external "../../msw/src/index.js"
13
+
14
+ ;// CONCATENATED MODULE: external "react"
15
+
16
+ ;// CONCATENATED MODULE: external "./useExecuteOnce.js"
17
+
18
+ ;// CONCATENATED MODULE: external "./useIsBootstrapping.js"
19
+
20
+ ;// CONCATENATED MODULE: ./src/AppRouterReducer.ts?__rslib_entry__
21
+
22
+
23
+
24
+
25
+
26
+
27
+ // The followings event const are a concatenation of "squide-" with AppRouterActionType.
28
+ // They are dispatched by the useEnhancedReducerDispatch hook.
29
+ const ModulesRegisteredEvent = "squide-modules-registered";
30
+ const ModulesReadyEvent = "squide-modules-ready";
31
+ const MswReadyEvent = "squide-msw-ready";
32
+ const PublicDataReadyEvent = "squide-public-data-ready";
33
+ const ProtectedDataReadyEvent = "squide-protected-data-ready";
34
+ const PublicDataUpdatedEvent = "squide-public-data-updated";
35
+ const ProtectedDataUpdatedEvent = "squide-protected-data-updated";
36
+ const DeferredRegistrationsUpdatedEvent = "squide-deferred-registrations-updated";
37
+ const ApplicationBoostrappedEvent = "squide-app-boostrapped";
38
+ function reducer(state, action) {
39
+ let newState = state;
40
+ switch(action.type){
41
+ case "modules-registered":
42
+ {
43
+ newState = {
44
+ ...newState,
45
+ areModulesRegistered: true
46
+ };
47
+ break;
48
+ }
49
+ case "modules-ready":
50
+ {
51
+ newState = {
52
+ ...newState,
53
+ areModulesReady: true,
54
+ // Will be set even if the app is not using deferred registrations.
55
+ deferredRegistrationsUpdatedAt: Date.now()
56
+ };
57
+ break;
58
+ }
59
+ case "msw-ready":
60
+ {
61
+ newState = {
62
+ ...newState,
63
+ isMswReady: true
64
+ };
65
+ break;
66
+ }
67
+ case "public-data-ready":
68
+ {
69
+ newState = {
70
+ ...newState,
71
+ isPublicDataReady: true,
72
+ publicDataUpdatedAt: Date.now()
73
+ };
74
+ break;
75
+ }
76
+ case "protected-data-ready":
77
+ {
78
+ newState = {
79
+ ...newState,
80
+ isProtectedDataReady: true,
81
+ protectedDataUpdatedAt: Date.now()
82
+ };
83
+ break;
84
+ }
85
+ case "public-data-updated":
86
+ {
87
+ newState = {
88
+ ...newState,
89
+ publicDataUpdatedAt: Date.now()
90
+ };
91
+ break;
92
+ }
93
+ case "protected-data-updated":
94
+ {
95
+ newState = {
96
+ ...newState,
97
+ protectedDataUpdatedAt: Date.now()
98
+ };
99
+ break;
100
+ }
101
+ case "deferred-registrations-updated":
102
+ {
103
+ newState = {
104
+ ...newState,
105
+ deferredRegistrationsUpdatedAt: Date.now()
106
+ };
107
+ break;
108
+ }
109
+ case "active-route-is-public":
110
+ {
111
+ newState = {
112
+ ...newState,
113
+ activeRouteVisibility: "public"
114
+ };
115
+ break;
116
+ }
117
+ case "active-route-is-protected":
118
+ {
119
+ newState = {
120
+ ...newState,
121
+ activeRouteVisibility: "protected"
122
+ };
123
+ break;
124
+ }
125
+ case "is-unauthorized":
126
+ {
127
+ newState = {
128
+ ...newState,
129
+ isUnauthorized: true
130
+ };
131
+ break;
132
+ }
133
+ default:
134
+ {
135
+ throw new Error(`[squide] The AppRouter component state reducer doesn't support action type "${action.type}".`);
136
+ }
137
+ }
138
+ return newState;
139
+ }
140
+ function getAreModulesRegistered() {
141
+ const localModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.getLocalModuleRegistrationStatus)();
142
+ const remoteModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.getRemoteModuleRegistrationStatus)();
143
+ return (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.areModulesRegistered)(localModuleStatus, remoteModuleStatus);
144
+ }
145
+ function getAreModulesReady() {
146
+ const localModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.getLocalModuleRegistrationStatus)();
147
+ const remoteModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.getRemoteModuleRegistrationStatus)();
148
+ return (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.areModulesReady)(localModuleStatus, remoteModuleStatus);
149
+ }
150
+ function useModuleRegistrationStatusDispatcher(areModulesRegisteredValue, areModulesReadyValue, dispatch) {
151
+ const logger = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useLogger)();
152
+ const dispatchModulesRegistered = (0,__WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__.useExecuteOnce)((0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
153
+ if (getAreModulesRegistered()) {
154
+ dispatch({
155
+ type: "modules-registered"
156
+ });
157
+ logger.debug("[squide] %cModules are registered%c.", "color: white; background-color: green;", "");
158
+ return true;
159
+ }
160
+ return false;
161
+ }, [
162
+ dispatch,
163
+ logger
164
+ ]));
165
+ const dispatchModulesReady = (0,__WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__.useExecuteOnce)((0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
166
+ if (getAreModulesReady()) {
167
+ dispatch({
168
+ type: "modules-ready"
169
+ });
170
+ logger.debug("[squide] %cModules are ready%c.", "color: white; background-color: green;", "");
171
+ return true;
172
+ }
173
+ return false;
174
+ }, [
175
+ dispatch,
176
+ logger
177
+ ]));
178
+ return (0,__WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
179
+ if (!areModulesRegisteredValue) {
180
+ (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.addLocalModuleRegistrationStatusChangedListener)(dispatchModulesRegistered);
181
+ (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.addRemoteModuleRegistrationStatusChangedListener)(dispatchModulesRegistered);
182
+ }
183
+ if (!areModulesReadyValue) {
184
+ (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.addLocalModuleRegistrationStatusChangedListener)(dispatchModulesReady);
185
+ (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.addRemoteModuleRegistrationStatusChangedListener)(dispatchModulesReady);
186
+ }
187
+ return ()=>{
188
+ (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.removeLocalModuleRegistrationStatusChangedListener)(dispatchModulesRegistered);
189
+ (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.removeRemoteModuleRegistrationStatusChangedListener)(dispatchModulesRegistered);
190
+ (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.removeLocalModuleRegistrationStatusChangedListener)(dispatchModulesReady);
191
+ (0,__WEBPACK_EXTERNAL_MODULE__module_federation_src_index_js_e113b625__.removeRemoteModuleRegistrationStatusChangedListener)(dispatchModulesReady);
192
+ };
193
+ }, [
194
+ areModulesRegisteredValue,
195
+ areModulesReadyValue,
196
+ dispatchModulesRegistered,
197
+ dispatchModulesReady
198
+ ]);
199
+ }
200
+ function useMswStatusDispatcher(isMswReadyValue, dispatch) {
201
+ const logger = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useLogger)();
202
+ const dispatchMswReady = (0,__WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__.useExecuteOnce)((0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
203
+ if ((0,__WEBPACK_EXTERNAL_MODULE__msw_src_index_js_df8c7d83__.isMswReady)()) {
204
+ dispatch({
205
+ type: "msw-ready"
206
+ });
207
+ logger.debug("[squide] %cMSW is ready%c.", "color: white; background-color: green;", "");
208
+ return true;
209
+ }
210
+ return false;
211
+ }, [
212
+ dispatch,
213
+ logger
214
+ ]));
215
+ (0,__WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
216
+ if (!isMswReadyValue) {
217
+ (0,__WEBPACK_EXTERNAL_MODULE__msw_src_index_js_df8c7d83__.addMswStateChangedListener)(dispatchMswReady);
218
+ }
219
+ return ()=>{
220
+ (0,__WEBPACK_EXTERNAL_MODULE__msw_src_index_js_df8c7d83__.removeMswStateChangedListener)(dispatchMswReady);
221
+ };
222
+ }, [
223
+ isMswReadyValue,
224
+ dispatchMswReady
225
+ ]);
226
+ }
227
+ function useBootstrappingCompletedDispatcher(state) {
228
+ const eventBus = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useEventBus)();
229
+ const areModulesRegisteredValue = state.areModulesRegistered;
230
+ const isBoostrapping = (0,__WEBPACK_EXTERNAL_MODULE__useIsBootstrapping_js_642a9b43__.isApplicationBootstrapping)(state);
231
+ (0,__WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__.useExecuteOnce)((0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
232
+ if (areModulesRegisteredValue && !isBoostrapping) {
233
+ eventBus.dispatch(ApplicationBoostrappedEvent);
234
+ return true;
235
+ }
236
+ return false;
237
+ }, [
238
+ areModulesRegisteredValue,
239
+ isBoostrapping,
240
+ eventBus
241
+ ]), true);
242
+ }
243
+ let dispatchProxyFactory;
244
+ // This function should only be used by tests.
245
+ function __setAppReducerDispatchProxyFactory(factory) {
246
+ dispatchProxyFactory = factory;
247
+ }
248
+ // This function should only be used by tests.
249
+ function __clearAppReducerDispatchProxy() {
250
+ dispatchProxyFactory = undefined;
251
+ }
252
+ function useReducerDispatchProxy(reactDispatch) {
253
+ return (0,__WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
254
+ return dispatchProxyFactory ? dispatchProxyFactory(reactDispatch) : reactDispatch;
255
+ }, [
256
+ reactDispatch
257
+ ]);
258
+ }
259
+ function useEnhancedReducerDispatch(reducerDispatch) {
260
+ const logger = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useLogger)();
261
+ const eventBus = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useEventBus)();
262
+ return (0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)((action)=>{
263
+ logger.debug("[squide] The following action has been dispatched to the AppRouter reducer:", action);
264
+ eventBus.dispatch(`squide-${action.type}`);
265
+ reducerDispatch(action);
266
+ }, [
267
+ reducerDispatch,
268
+ logger,
269
+ eventBus
270
+ ]);
271
+ }
272
+ function useAppRouterReducer(waitForMsw, waitForPublicData, waitForProtectedData) {
273
+ const areModulesInitiallyRegistered = getAreModulesRegistered();
274
+ const areModulesInitiallyReady = getAreModulesReady();
275
+ const isMswInitiallyReady = (0,__WEBPACK_EXTERNAL_MODULE__msw_src_index_js_df8c7d83__.isMswReady)();
276
+ const eventBus = (0,__WEBPACK_EXTERNAL_MODULE__core_src_index_js_d19dd8a6__.useEventBus)();
277
+ // When modules are initially registered, the reducer action will never be dispatched, therefore the event would not be dispatched as well.
278
+ // To ensure the bootstrapping events sequencing, the event is manually dispatched when the modules are initially registered.
279
+ (0,__WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__.useExecuteOnce)((0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
280
+ if (areModulesInitiallyRegistered) {
281
+ eventBus.dispatch(ModulesRegisteredEvent);
282
+ }
283
+ return true;
284
+ }, [
285
+ areModulesInitiallyRegistered,
286
+ eventBus
287
+ ]), true);
288
+ // When modules are initially registered, the reducer action will never be dispatched, therefore the event would not be dispatched as well.
289
+ // To ensure the bootstrapping events sequencing, the event is manually dispatched when the modules are initially registered.
290
+ (0,__WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__.useExecuteOnce)((0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
291
+ if (areModulesInitiallyReady) {
292
+ eventBus.dispatch(ModulesReadyEvent);
293
+ }
294
+ return true;
295
+ }, [
296
+ areModulesInitiallyReady,
297
+ eventBus
298
+ ]), true);
299
+ // When modules are initially registered, the reducer action will never be dispatched, therefore the event would not be dispatched as well.
300
+ // To ensure the bootstrapping events sequencing, the event is manually dispatched when the modules are initially registered.
301
+ (0,__WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__.useExecuteOnce)((0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
302
+ if (isMswInitiallyReady) {
303
+ eventBus.dispatch(MswReadyEvent);
304
+ }
305
+ return true;
306
+ }, [
307
+ isMswInitiallyReady,
308
+ eventBus
309
+ ]), true);
310
+ const [state, reactDispatch] = (0,__WEBPACK_EXTERNAL_MODULE_react__.useReducer)(reducer, {
311
+ waitForMsw,
312
+ waitForPublicData,
313
+ waitForProtectedData,
314
+ // When the modules registration functions are awaited, the event listeners are registered after the modules are registered.
315
+ areModulesRegistered: areModulesInitiallyRegistered,
316
+ areModulesReady: areModulesInitiallyReady,
317
+ isMswReady: isMswInitiallyReady,
318
+ isPublicDataReady: false,
319
+ isProtectedDataReady: false,
320
+ activeRouteVisibility: "unknown",
321
+ isUnauthorized: false
322
+ });
323
+ const { areModulesRegistered: areModulesRegisteredValue, areModulesReady: areModulesReadyValue, isMswReady: isMswReadyValue } = state;
324
+ // The dispatch proxy is strictly an utility allowing tests to mock the useReducer dispatch function. It's easier
325
+ // than mocking the import from React.
326
+ const dispatchProxy = useReducerDispatchProxy(reactDispatch);
327
+ const dispatch = useEnhancedReducerDispatch(dispatchProxy);
328
+ useModuleRegistrationStatusDispatcher(areModulesRegisteredValue, areModulesReadyValue, dispatch);
329
+ useMswStatusDispatcher(isMswReadyValue, dispatch);
330
+ useBootstrappingCompletedDispatcher(state);
331
+ return [
332
+ state,
333
+ dispatch
334
+ ];
335
+ }
336
+
337
+ export { ApplicationBoostrappedEvent, DeferredRegistrationsUpdatedEvent, ModulesReadyEvent, ModulesRegisteredEvent, MswReadyEvent, ProtectedDataReadyEvent, ProtectedDataUpdatedEvent, PublicDataReadyEvent, PublicDataUpdatedEvent, __clearAppReducerDispatchProxy, __setAppReducerDispatchProxyFactory, getAreModulesReady, getAreModulesRegistered, useAppRouterReducer, useBootstrappingCompletedDispatcher, useModuleRegistrationStatusDispatcher, useMswStatusDispatcher };
338
+
339
+ //# sourceMappingURL=AppRouterReducer.js.map