@entur-partner/micro-frontend 2.8.0-alpha.1 → 2.8.0-alpha.2

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/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@entur-partner/util`),t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.createContext)(void 0),i=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.user},a=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.activeOrgId},o=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.navigate},s=({children:e,organisationId:i,getPermissions:a,...o})=>{let[s,c]=(0,t.useState)([]);return(0,t.useEffect)(()=>{async function e(){try{c(await a())}catch(e){console.error(`Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:`,e)}}e()},[a]),(0,n.jsx)(r.Provider,{value:{...o,user:{...o.user,permissions:s},activeOrgId:Number(i)},children:e})},c=`@entur-partner:mount`,l=`@entur-partner:unmount`;function u(e){return new CustomEvent(c,{detail:e})}function d(e){return new CustomEvent(l,{detail:e})}var f=`@entur-partner:after-route-change`;function p(e){let{unmount:t,microFrontendId:n,mount:r}=e,i=(e=>{e.detail.id.startsWith(n)&&r(e.detail.mountPoint,e.detail.payload,e.detail.mountPoint)}),a=(e=>{e.detail.id.startsWith(n)&&t(e.detail.mountPoint)});return window.addEventListener(c,i),window.addEventListener(l,a),()=>{window.removeEventListener(c,i),window.removeEventListener(l,a)}}function m(e){return p(e)}function h(e){return p(e)}exports.AppProvider=s,exports.MOUNT_EVENT_TYPE=c,exports.ROUTE_CHANGE_EVENT_TYPE=f,exports.UNMOUNT_EVENT_TYPE=l,exports.createMountEvent=u,exports.createUnmountEvent=d,exports.registerMicroFrontend=m,exports.registerPublicMicroFrontend=h,exports.useActiveOrgId=a,exports.useNavigate=o,exports.useUser=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@entur-partner/util`),t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.createContext)(void 0),i=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.user},a=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.activeOrgId},o=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.navigate},s=({children:e,organisationId:i,getPermissions:a,...o})=>{let[s,c]=(0,t.useState)([]);return(0,t.useEffect)(()=>{async function e(){try{c(await a())}catch(e){console.error(`Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:`,e)}}e()},[a]),(0,n.jsx)(r.Provider,{value:{...o,user:{...o.user,permissions:s},activeOrgId:Number(i)},children:e})},c=`@entur-partner:mount`,l=`@entur-partner:unmount`;function u(e){return new CustomEvent(c,{detail:e})}function d(e){return new CustomEvent(l,{detail:e})}var f=`@entur-partner:after-route-change`,p=class extends CustomEvent{};function m(e){let{unmount:t,microFrontendId:n,mount:r}=e,i=(e=>{e.detail.id.startsWith(n)&&r(e.detail.mountPoint,e.detail.payload,e.detail.mountPoint)}),a=(e=>{e.detail.id.startsWith(n)&&t(e.detail.mountPoint)});return window.addEventListener(c,i),window.addEventListener(l,a),()=>{window.removeEventListener(c,i),window.removeEventListener(l,a)}}function h(e){return m(e)}function g(e){return m(e)}exports.AppProvider=s,exports.MOUNT_EVENT_TYPE=c,exports.ROUTE_CHANGE_EVENT_TYPE=f,exports.RouteChangeEvent=p,exports.UNMOUNT_EVENT_TYPE=l,exports.createMountEvent=u,exports.createUnmountEvent=d,exports.registerMicroFrontend=h,exports.registerPublicMicroFrontend=g,exports.useActiveOrgId=a,exports.useNavigate=o,exports.useUser=i;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.ts"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./types\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload | PublicMicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype Config<TPayload> = {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: TPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n};\n\nfunction registerFrontend<TPayload>(config: Config<TPayload>): () => void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\tconst onMount = ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload as TPayload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener;\n\n\tconst onUnmount = ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, onMount);\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\n\treturn () => {\n\t\twindow.removeEventListener(MOUNT_EVENT_TYPE, onMount);\n\t\twindow.removeEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\t};\n}\n\nexport function registerMicroFrontend(\n\tconfig: Config<MicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n\nexport function registerPublicMicroFrontend(\n\tconfig: Config<PublicMicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n"],"mappings":"0JAqBA,IAAa,GAAA,EAAA,EAAA,eAAuD,IAAA,GAAU,CAEjE,MAAgB,CAC5B,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,MAGH,MAAuB,CACnC,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,aAYH,MAAoB,CAChC,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,UAGH,GAAqC,CACjD,WACA,iBACA,iBACA,GAAG,KACE,CACL,GAAM,CAAC,EAAa,IAAA,EAAA,EAAA,UAAyC,EAAE,CAAC,CAkBhE,OAhBA,EAAA,EAAA,eAAgB,CACf,eAAe,GAAY,CAC1B,GAAI,CAEH,EAD2B,MAAM,GAAgB,CACf,OAC1B,EAAO,CACf,QAAQ,MACP,iHACA,EACA,EAIH,GAAW,EACT,CAAC,EAAe,CAAC,EAGnB,EAAA,EAAA,KAAC,EAAW,SAAZ,CACC,MAAO,CACN,GAAG,EACH,KAAM,CAAE,GAAG,EAAK,KAAmB,cAAa,CAChD,YAAa,OAAO,EAAe,CACnC,CAEA,WACoB,CAAA,ECtEX,EAAmB,uBACnB,EAAqB,yBAKlC,SAAgB,EAAiB,EAA0B,CAC1D,OAAO,IAAI,YAA8B,EAAkB,CAAE,SAAQ,CAAC,CAGvE,SAAgB,EAAmB,EAA4B,CAC9D,OAAO,IAAI,YAAgC,EAAoB,CAAE,SAAQ,CAAC,CAG3E,IAAa,EAA0B,oCCPvC,SAAS,EAA2B,EAAsC,CACzE,GAAM,CAAE,UAAS,kBAAiB,SAAU,EAEtC,GAAY,GAAsB,CAClC,EAAM,OAAO,GAAG,WAAW,EAAgB,EAGhD,EACC,EAAM,OAAO,WACb,EAAM,OAAO,QACb,EAAM,OAAO,WACb,GAGI,GAAc,GAAwB,CACtC,EAAM,OAAO,GAAG,WAAW,EAAgB,EAGhD,EAAQ,EAAM,OAAO,WAAW,GAMjC,OAHA,OAAO,iBAAiB,EAAkB,EAAQ,CAClD,OAAO,iBAAiB,EAAoB,EAAU,KAEzC,CACZ,OAAO,oBAAoB,EAAkB,EAAQ,CACrD,OAAO,oBAAoB,EAAoB,EAAU,EAI3D,SAAgB,EACf,EACa,CACb,OAAO,EAAiB,EAAO,CAGhC,SAAgB,EACf,EACa,CACb,OAAO,EAAiB,EAAO"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.ts"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./types\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload | PublicMicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype Config<TPayload> = {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: TPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n};\n\nfunction registerFrontend<TPayload>(config: Config<TPayload>): () => void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\tconst onMount = ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload as TPayload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener;\n\n\tconst onUnmount = ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, onMount);\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\n\treturn () => {\n\t\twindow.removeEventListener(MOUNT_EVENT_TYPE, onMount);\n\t\twindow.removeEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\t};\n}\n\nexport function registerMicroFrontend(\n\tconfig: Config<MicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n\nexport function registerPublicMicroFrontend(\n\tconfig: Config<PublicMicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n"],"mappings":"0JAqBA,IAAa,GAAA,EAAA,EAAA,eAAuD,IAAA,GAAU,CAEjE,MAAgB,CAC5B,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,MAGH,MAAuB,CACnC,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,aAYH,MAAoB,CAChC,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,UAGH,GAAqC,CACjD,WACA,iBACA,iBACA,GAAG,KACE,CACL,GAAM,CAAC,EAAa,IAAA,EAAA,EAAA,UAAyC,EAAE,CAAC,CAkBhE,OAhBA,EAAA,EAAA,eAAgB,CACf,eAAe,GAAY,CAC1B,GAAI,CAEH,EAD2B,MAAM,GAAgB,CACf,OAC1B,EAAO,CACf,QAAQ,MACP,iHACA,EACA,EAIH,GAAW,EACT,CAAC,EAAe,CAAC,EAGnB,EAAA,EAAA,KAAC,EAAW,SAAZ,CACC,MAAO,CACN,GAAG,EACH,KAAM,CAAE,GAAG,EAAK,KAAmB,cAAa,CAChD,YAAa,OAAO,EAAe,CACnC,CAEA,WACoB,CAAA,ECtEX,EAAmB,uBACnB,EAAqB,yBAKlC,SAAgB,EAAiB,EAA0B,CAC1D,OAAO,IAAI,YAA8B,EAAkB,CAAE,SAAQ,CAAC,CAGvE,SAAgB,EAAmB,EAA4B,CAC9D,OAAO,IAAI,YAAgC,EAAoB,CAAE,SAAQ,CAAC,CAG3E,IAAa,EAA0B,oCAS1B,EAAb,cAAsC,WAAoC,GChB1E,SAAS,EAA2B,EAAsC,CACzE,GAAM,CAAE,UAAS,kBAAiB,SAAU,EAEtC,GAAY,GAAsB,CAClC,EAAM,OAAO,GAAG,WAAW,EAAgB,EAGhD,EACC,EAAM,OAAO,WACb,EAAM,OAAO,QACb,EAAM,OAAO,WACb,GAGI,GAAc,GAAwB,CACtC,EAAM,OAAO,GAAG,WAAW,EAAgB,EAGhD,EAAQ,EAAM,OAAO,WAAW,GAMjC,OAHA,OAAO,iBAAiB,EAAkB,EAAQ,CAClD,OAAO,iBAAiB,EAAoB,EAAU,KAEzC,CACZ,OAAO,oBAAoB,EAAkB,EAAQ,CACrD,OAAO,oBAAoB,EAAoB,EAAU,EAI3D,SAAgB,EACf,EACa,CACb,OAAO,EAAiB,EAAO,CAGhC,SAAgB,EACf,EACa,CACb,OAAO,EAAiB,EAAO"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export type { AppProviderProps } from "./AppProvider";
2
2
  export { AppProvider, useActiveOrgId, useNavigate, useUser, } from "./AppProvider";
3
- export type { MountEvent, RouteAction, RouteChangeEvent, UnmountEvent, } from "./events";
4
- export { createMountEvent, createUnmountEvent, MOUNT_EVENT_TYPE, ROUTE_CHANGE_EVENT_TYPE, UNMOUNT_EVENT_TYPE, } from "./events";
3
+ export type { MountEvent, RouteAction, UnmountEvent, } from "./events";
4
+ export { createMountEvent, createUnmountEvent, MOUNT_EVENT_TYPE, ROUTE_CHANGE_EVENT_TYPE, RouteChangeEvent, UNMOUNT_EVENT_TYPE, } from "./events";
5
5
  export { registerMicroFrontend, registerPublicMicroFrontend, } from "./registerMicroFrontend";
6
6
  export type { MenuItem, MicroFrontendPayload, NavigationFunction, PublicMicroFrontendPayload, User, } from "./types";
package/dist/index.mjs CHANGED
@@ -40,10 +40,10 @@ function p(e) {
40
40
  function m(e) {
41
41
  return new CustomEvent(f, { detail: e });
42
42
  }
43
- var h = "@entur-partner:after-route-change";
43
+ var h = "@entur-partner:after-route-change", g = class extends CustomEvent {};
44
44
  //#endregion
45
45
  //#region src/registerMicroFrontend.ts
46
- function g(e) {
46
+ function _(e) {
47
47
  let { unmount: t, microFrontendId: n, mount: r } = e, i = ((e) => {
48
48
  e.detail.id.startsWith(n) && r(e.detail.mountPoint, e.detail.payload, e.detail.mountPoint);
49
49
  }), a = ((e) => {
@@ -53,13 +53,13 @@ function g(e) {
53
53
  window.removeEventListener(d, i), window.removeEventListener(f, a);
54
54
  };
55
55
  }
56
- function _(e) {
57
- return g(e);
58
- }
59
56
  function v(e) {
60
- return g(e);
57
+ return _(e);
58
+ }
59
+ function y(e) {
60
+ return _(e);
61
61
  }
62
62
  //#endregion
63
- export { u as AppProvider, d as MOUNT_EVENT_TYPE, h as ROUTE_CHANGE_EVENT_TYPE, f as UNMOUNT_EVENT_TYPE, p as createMountEvent, m as createUnmountEvent, _ as registerMicroFrontend, v as registerPublicMicroFrontend, c as useActiveOrgId, l as useNavigate, s as useUser };
63
+ export { u as AppProvider, d as MOUNT_EVENT_TYPE, h as ROUTE_CHANGE_EVENT_TYPE, g as RouteChangeEvent, f as UNMOUNT_EVENT_TYPE, p as createMountEvent, m as createUnmountEvent, v as registerMicroFrontend, y as registerPublicMicroFrontend, c as useActiveOrgId, l as useNavigate, s as useUser };
64
64
 
65
65
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.ts"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./types\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload | PublicMicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype Config<TPayload> = {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: TPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n};\n\nfunction registerFrontend<TPayload>(config: Config<TPayload>): () => void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\tconst onMount = ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload as TPayload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener;\n\n\tconst onUnmount = ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, onMount);\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\n\treturn () => {\n\t\twindow.removeEventListener(MOUNT_EVENT_TYPE, onMount);\n\t\twindow.removeEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\t};\n}\n\nexport function registerMicroFrontend(\n\tconfig: Config<MicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n\nexport function registerPublicMicroFrontend(\n\tconfig: Config<PublicMicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n"],"mappings":";;;;AAqBA,IAAa,IAAa,EAA0C,KAAA,EAAU,EAEjE,UAAgB;CAC5B,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAGH,UAAuB;CACnC,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAYH,UAAoB;CAChC,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAGH,KAAqC,EACjD,aACA,mBACA,mBACA,GAAG,QACE;CACL,IAAM,CAAC,GAAa,KAAkB,EAAuB,EAAE,CAAC;AAkBhE,QAhBA,QAAgB;EACf,eAAe,IAAY;AAC1B,OAAI;AAEH,MAD2B,MAAM,GAAgB,CACf;YAC1B,GAAO;AACf,YAAQ,MACP,kHACA,EACA;;;AAIH,KAAW;IACT,CAAC,EAAe,CAAC,EAGnB,kBAAC,EAAW,UAAZ;EACC,OAAO;GACN,GAAG;GACH,MAAM;IAAE,GAAG,EAAK;IAAmB;IAAa;GAChD,aAAa,OAAO,EAAe;GACnC;EAEA;EACoB,CAAA;GCtEX,IAAmB,wBACnB,IAAqB;AAKlC,SAAgB,EAAiB,GAA0B;AAC1D,QAAO,IAAI,YAA8B,GAAkB,EAAE,WAAQ,CAAC;;AAGvE,SAAgB,EAAmB,GAA4B;AAC9D,QAAO,IAAI,YAAgC,GAAoB,EAAE,WAAQ,CAAC;;AAG3E,IAAa,IAA0B;;;ACPvC,SAAS,EAA2B,GAAsC;CACzE,IAAM,EAAE,YAAS,oBAAiB,aAAU,GAEtC,MAAY,MAAsB;AAClC,IAAM,OAAO,GAAG,WAAW,EAAgB,IAGhD,EACC,EAAM,OAAO,YACb,EAAM,OAAO,SACb,EAAM,OAAO,WACb;KAGI,MAAc,MAAwB;AACtC,IAAM,OAAO,GAAG,WAAW,EAAgB,IAGhD,EAAQ,EAAM,OAAO,WAAW;;AAMjC,QAHA,OAAO,iBAAiB,GAAkB,EAAQ,EAClD,OAAO,iBAAiB,GAAoB,EAAU,QAEzC;AAEZ,EADA,OAAO,oBAAoB,GAAkB,EAAQ,EACrD,OAAO,oBAAoB,GAAoB,EAAU;;;AAI3D,SAAgB,EACf,GACa;AACb,QAAO,EAAiB,EAAO;;AAGhC,SAAgB,EACf,GACa;AACb,QAAO,EAAiB,EAAO"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.ts"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./types\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload | PublicMicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype Config<TPayload> = {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: TPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n};\n\nfunction registerFrontend<TPayload>(config: Config<TPayload>): () => void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\tconst onMount = ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload as TPayload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener;\n\n\tconst onUnmount = ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, onMount);\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\n\treturn () => {\n\t\twindow.removeEventListener(MOUNT_EVENT_TYPE, onMount);\n\t\twindow.removeEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\t};\n}\n\nexport function registerMicroFrontend(\n\tconfig: Config<MicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n\nexport function registerPublicMicroFrontend(\n\tconfig: Config<PublicMicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n"],"mappings":";;;;AAqBA,IAAa,IAAa,EAA0C,KAAA,EAAU,EAEjE,UAAgB;CAC5B,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAGH,UAAuB;CACnC,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAYH,UAAoB;CAChC,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAGH,KAAqC,EACjD,aACA,mBACA,mBACA,GAAG,QACE;CACL,IAAM,CAAC,GAAa,KAAkB,EAAuB,EAAE,CAAC;AAkBhE,QAhBA,QAAgB;EACf,eAAe,IAAY;AAC1B,OAAI;AAEH,MAD2B,MAAM,GAAgB,CACf;YAC1B,GAAO;AACf,YAAQ,MACP,kHACA,EACA;;;AAIH,KAAW;IACT,CAAC,EAAe,CAAC,EAGnB,kBAAC,EAAW,UAAZ;EACC,OAAO;GACN,GAAG;GACH,MAAM;IAAE,GAAG,EAAK;IAAmB;IAAa;GAChD,aAAa,OAAO,EAAe;GACnC;EAEA;EACoB,CAAA;GCtEX,IAAmB,wBACnB,IAAqB;AAKlC,SAAgB,EAAiB,GAA0B;AAC1D,QAAO,IAAI,YAA8B,GAAkB,EAAE,WAAQ,CAAC;;AAGvE,SAAgB,EAAmB,GAA4B;AAC9D,QAAO,IAAI,YAAgC,GAAoB,EAAE,WAAQ,CAAC;;AAG3E,IAAa,IAA0B,qCAS1B,IAAb,cAAsC,YAAoC;;;AChB1E,SAAS,EAA2B,GAAsC;CACzE,IAAM,EAAE,YAAS,oBAAiB,aAAU,GAEtC,MAAY,MAAsB;AAClC,IAAM,OAAO,GAAG,WAAW,EAAgB,IAGhD,EACC,EAAM,OAAO,YACb,EAAM,OAAO,SACb,EAAM,OAAO,WACb;KAGI,MAAc,MAAwB;AACtC,IAAM,OAAO,GAAG,WAAW,EAAgB,IAGhD,EAAQ,EAAM,OAAO,WAAW;;AAMjC,QAHA,OAAO,iBAAiB,GAAkB,EAAQ,EAClD,OAAO,iBAAiB,GAAoB,EAAU,QAEzC;AAEZ,EADA,OAAO,oBAAoB,GAAkB,EAAQ,EACrD,OAAO,oBAAoB,GAAoB,EAAU;;;AAI3D,SAAgB,EACf,GACa;AACb,QAAO,EAAiB,EAAO;;AAGhC,SAAgB,EACf,GACa;AACb,QAAO,EAAiB,EAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur-partner/micro-frontend",
3
- "version": "2.8.0-alpha.1",
3
+ "version": "2.8.0-alpha.2",
4
4
  "license": "EUPL-1.2",
5
5
  "type": "module",
6
6
  "exports": {
@@ -30,12 +30,12 @@
30
30
  "react-dom": ">=18.0.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@auth0/auth0-spa-js": "2.18.3",
33
+ "@auth0/auth0-spa-js": "2.19.1",
34
34
  "@entur-partner/permission-client-node": "3.6.2",
35
35
  "posthog-js": "^1.365.5"
36
36
  },
37
37
  "dependencies": {
38
- "@entur-partner/util": "^1.4.0-alpha.1"
38
+ "@entur-partner/util": "^1.4.0-alpha.2"
39
39
  },
40
- "gitHead": "827a513d78634f500b876c5ec81c1592637d1894"
40
+ "gitHead": "89e99cb870c9ea3976ab36cb77461ee9a19c3b6b"
41
41
  }