@m5kdev/frontend 0.20.34 → 0.20.48

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 (25) hide show
  1. package/dist/src/modules/auth/components/AuthProvider.d.mts +1 -1
  2. package/dist/src/modules/auth/components/AuthProvider.d.mts.map +1 -1
  3. package/dist/src/modules/auth/components/AuthProvider.d.ts +1 -1
  4. package/dist/src/modules/auth/components/AuthProvider.d.ts.map +1 -1
  5. package/dist/src/modules/auth/hooks/useMemberInvite.d.mts +12 -0
  6. package/dist/src/modules/auth/hooks/useMemberInvite.d.mts.map +1 -0
  7. package/dist/src/modules/auth/hooks/useMemberInvite.d.ts +12 -0
  8. package/dist/src/modules/auth/hooks/useMemberInvite.d.ts.map +1 -0
  9. package/dist/src/modules/auth/hooks/useMemberInvite.js +32 -0
  10. package/dist/src/modules/auth/hooks/useMemberInvite.js.map +1 -0
  11. package/dist/src/modules/auth/hooks/useMemberInvite.mjs +31 -0
  12. package/dist/src/modules/auth/hooks/useMemberInvite.mjs.map +1 -0
  13. package/dist/src/modules/auth/hooks/useOrganizationAccess.d.mts +19 -0
  14. package/dist/src/modules/auth/hooks/useOrganizationAccess.d.mts.map +1 -0
  15. package/dist/src/modules/auth/hooks/useOrganizationAccess.d.ts +19 -0
  16. package/dist/src/modules/auth/hooks/useOrganizationAccess.d.ts.map +1 -0
  17. package/dist/src/modules/auth/hooks/useOrganizationAccess.js +36 -0
  18. package/dist/src/modules/auth/hooks/useOrganizationAccess.js.map +1 -0
  19. package/dist/src/modules/auth/hooks/useOrganizationAccess.mjs +35 -0
  20. package/dist/src/modules/auth/hooks/useOrganizationAccess.mjs.map +1 -0
  21. package/dist/src/modules/billing/components/BillingProvider.d.mts +1 -1
  22. package/dist/src/modules/billing/components/BillingProvider.d.mts.map +1 -1
  23. package/dist/src/modules/billing/components/BillingProvider.d.ts +1 -1
  24. package/dist/src/modules/billing/components/BillingProvider.d.ts.map +1 -1
  25. package/package.json +4 -4
@@ -18,7 +18,7 @@ declare function AuthProvider({
18
18
  children: React.ReactNode;
19
19
  loader?: React.ReactNode;
20
20
  onSession?: (session: Session | null) => void;
21
- }): string | number | bigint | true | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined> | _$react_jsx_runtime0.JSX.Element;
21
+ }): string | number | bigint | true | _$react_jsx_runtime0.JSX.Element | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined>;
22
22
  //#endregion
23
23
  export { AuthProvider, authProviderContext };
24
24
  //# sourceMappingURL=AuthProvider.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.d.mts","names":[],"sources":["../../../../../src/modules/auth/components/AuthProvider.tsx"],"mappings":";;;;;KAIK,OAAA,GAAU,UAAA,QAAkB,UAAA,CAAW,UAAA;AAAA,cAO/B,mBAAA,EAEE,OAAA,CAFiB,OAAA;;QAExB,OAAA;;oBAEY,SAAA;AAAA;AAAA,iBAQJ,YAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,SAAA,IAAa,OAAA,EAAS,OAAA;AAAA,sCACvB,QAAA,CAD8B,OAAA,CAC9B,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"AuthProvider.d.mts","names":[],"sources":["../../../../../src/modules/auth/components/AuthProvider.tsx"],"mappings":";;;;;KAIK,OAAA,GAAU,UAAA,QAAkB,UAAA,CAAW,UAAA;AAAA,cAO/B,mBAAA,EAEE,OAAA,CAFiB,OAAA;;QAExB,OAAA;;oBAEY,SAAA;AAAA;AAAA,iBAQJ,YAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,SAAA,IAAa,OAAA,EAAS,OAAA;AAAA,sCACvB,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA"}
@@ -18,7 +18,7 @@ declare function AuthProvider({
18
18
  children: React.ReactNode;
19
19
  loader?: React.ReactNode;
20
20
  onSession?: (session: Session | null) => void;
21
- }): string | number | bigint | true | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined> | _$react_jsx_runtime0.JSX.Element;
21
+ }): string | number | bigint | true | _$react_jsx_runtime0.JSX.Element | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined>;
22
22
  //#endregion
23
23
  export { AuthProvider, authProviderContext };
24
24
  //# sourceMappingURL=AuthProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.d.ts","names":[],"sources":["../../../../../src/modules/auth/components/AuthProvider.tsx"],"mappings":";;;;;KAIK,OAAA,GAAU,UAAA,QAAkB,UAAA,CAAW,UAAA;AAAA,cAO/B,mBAAA,EAEE,OAAA,CAFiB,OAAA;;QAExB,OAAA;;oBAEY,SAAA;AAAA;AAAA,iBAQJ,YAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,SAAA,IAAa,OAAA,EAAS,OAAA;AAAA,sCACvB,QAAA,CAD8B,OAAA,CAC9B,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"AuthProvider.d.ts","names":[],"sources":["../../../../../src/modules/auth/components/AuthProvider.tsx"],"mappings":";;;;;KAIK,OAAA,GAAU,UAAA,QAAkB,UAAA,CAAW,UAAA;AAAA,cAO/B,mBAAA,EAEE,OAAA,CAFiB,OAAA;;QAExB,OAAA;;oBAEY,SAAA;AAAA;AAAA,iBAQJ,YAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,SAAA,IAAa,OAAA,EAAS,OAAA;AAAA,sCACvB,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA"}
@@ -0,0 +1,12 @@
1
+ import { AuthOrganizationRole, UseOrganizationAccessProps } from "./useOrganizationAccess.mjs";
2
+ import { UseMutationOptions, useMutation } from "@tanstack/react-query";
3
+
4
+ //#region src/modules/auth/hooks/useMemberInvite.d.ts
5
+ type Variables = {
6
+ email: string;
7
+ role: AuthOrganizationRole;
8
+ };
9
+ declare function useAuthMemberInvite(options: Omit<UseMutationOptions<void, Error, Variables, unknown>, "mutationFn">, props?: UseOrganizationAccessProps): ReturnType<typeof useMutation<void, Error, Variables, unknown>>;
10
+ //#endregion
11
+ export { useAuthMemberInvite };
12
+ //# sourceMappingURL=useMemberInvite.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMemberInvite.d.mts","names":[],"sources":["../../../../../src/modules/auth/hooks/useMemberInvite.ts"],"mappings":";;;;KAQK,SAAA;EAAc,KAAA;EAAe,IAAA,EAAM,oBAAA;AAAA;AAAA,iBAExB,mBAAA,CACd,OAAA,EAAS,IAAA,CAAK,kBAAA,OAAyB,KAAA,EAAO,SAAA,2BAC9C,KAAA,GAAQ,0BAAA,GACP,UAAA,QAAkB,WAAA,OAAkB,KAAA,EAAO,SAAA"}
@@ -0,0 +1,12 @@
1
+ import { AuthOrganizationRole, UseOrganizationAccessProps } from "./useOrganizationAccess.js";
2
+ import { UseMutationOptions, useMutation } from "@tanstack/react-query";
3
+
4
+ //#region src/modules/auth/hooks/useMemberInvite.d.ts
5
+ type Variables = {
6
+ email: string;
7
+ role: AuthOrganizationRole;
8
+ };
9
+ declare function useAuthMemberInvite(options: Omit<UseMutationOptions<void, Error, Variables, unknown>, "mutationFn">, props?: UseOrganizationAccessProps): ReturnType<typeof useMutation<void, Error, Variables, unknown>>;
10
+ //#endregion
11
+ export { useAuthMemberInvite };
12
+ //# sourceMappingURL=useMemberInvite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMemberInvite.d.ts","names":[],"sources":["../../../../../src/modules/auth/hooks/useMemberInvite.ts"],"mappings":";;;;KAQK,SAAA;EAAc,KAAA;EAAe,IAAA,EAAM,oBAAA;AAAA;AAAA,iBAExB,mBAAA,CACd,OAAA,EAAS,IAAA,CAAK,kBAAA,OAAyB,KAAA,EAAO,SAAA,2BAC9C,KAAA,GAAQ,0BAAA,GACP,UAAA,QAAkB,WAAA,OAAkB,KAAA,EAAO,SAAA"}
@@ -0,0 +1,32 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_src_modules_auth_auth_lib = require("../auth.lib.js");
3
+ const require_src_modules_auth_hooks_useOrganizationAccess = require("./useOrganizationAccess.js");
4
+ let _tanstack_react_query = require("@tanstack/react-query");
5
+ //#region src/modules/auth/hooks/useMemberInvite.ts
6
+ function useAuthMemberInvite(options, props) {
7
+ const { managerRoles = ["admin", "owner"], onInvalidateScopedQueries } = props ?? {};
8
+ const { onSuccess, ...rest } = options;
9
+ const { refreshOrganizationQueries, activeOrganizationId } = require_src_modules_auth_hooks_useOrganizationAccess.useOrganizationAccess({
10
+ managerRoles,
11
+ onInvalidateScopedQueries
12
+ });
13
+ return (0, _tanstack_react_query.useMutation)({
14
+ mutationFn: async ({ email, role }) => {
15
+ const { error } = await require_src_modules_auth_auth_lib.authClient.organization.inviteMember({
16
+ organizationId: activeOrganizationId,
17
+ email: email.trim(),
18
+ role
19
+ });
20
+ if (error) throw new Error(error.message);
21
+ },
22
+ onSuccess: async (data, variables, context) => {
23
+ await refreshOrganizationQueries();
24
+ await onSuccess?.(data, variables, context);
25
+ },
26
+ ...rest
27
+ });
28
+ }
29
+ //#endregion
30
+ exports.useAuthMemberInvite = useAuthMemberInvite;
31
+
32
+ //# sourceMappingURL=useMemberInvite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMemberInvite.js","names":["useOrganizationAccess","authClient"],"sources":["../../../../../src/modules/auth/hooks/useMemberInvite.ts"],"sourcesContent":["import { type UseMutationOptions, useMutation } from \"@tanstack/react-query\";\r\nimport { authClient } from \"../auth.lib\";\r\nimport {\r\n type AuthOrganizationRole,\r\n type UseOrganizationAccessProps,\r\n useOrganizationAccess,\r\n} from \"./useOrganizationAccess\";\r\n\r\ntype Variables = { email: string; role: AuthOrganizationRole };\r\n\r\nexport function useAuthMemberInvite(\r\n options: Omit<UseMutationOptions<void, Error, Variables, unknown>, \"mutationFn\">,\r\n props?: UseOrganizationAccessProps\r\n): ReturnType<typeof useMutation<void, Error, Variables, unknown>> {\r\n const { managerRoles = [\"admin\", \"owner\"], onInvalidateScopedQueries } = props ?? {};\r\n const { onSuccess, ...rest } = options;\r\n const { refreshOrganizationQueries, activeOrganizationId } = useOrganizationAccess({\r\n managerRoles,\r\n onInvalidateScopedQueries,\r\n });\r\n return useMutation({\r\n mutationFn: async ({ email, role }: { email: string; role: AuthOrganizationRole }) => {\r\n const { error } = await authClient.organization.inviteMember({\r\n organizationId: activeOrganizationId,\r\n email: email.trim(),\r\n role,\r\n });\r\n if (error) throw new Error(error.message);\r\n },\r\n\r\n onSuccess: async (data, variables, context) => {\r\n await refreshOrganizationQueries();\r\n await onSuccess?.(data, variables, context);\r\n },\r\n ...rest,\r\n });\r\n}\r\n"],"mappings":";;;;;AAUA,SAAgB,oBACd,SACA,OACiE;CACjE,MAAM,EAAE,eAAe,CAAC,SAAS,QAAQ,EAAE,8BAA8B,SAAS,EAAE;CACpF,MAAM,EAAE,WAAW,GAAG,SAAS;CAC/B,MAAM,EAAE,4BAA4B,yBAAyBA,qDAAAA,sBAAsB;EACjF;EACA;EACD,CAAC;AACF,SAAA,GAAA,sBAAA,aAAmB;EACjB,YAAY,OAAO,EAAE,OAAO,WAA0D;GACpF,MAAM,EAAE,UAAU,MAAMC,kCAAAA,WAAW,aAAa,aAAa;IAC3D,gBAAgB;IAChB,OAAO,MAAM,MAAM;IACnB;IACD,CAAC;AACF,OAAI,MAAO,OAAM,IAAI,MAAM,MAAM,QAAQ;;EAG3C,WAAW,OAAO,MAAM,WAAW,YAAY;AAC7C,SAAM,4BAA4B;AAClC,SAAM,YAAY,MAAM,WAAW,QAAQ;;EAE7C,GAAG;EACJ,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { authClient } from "../auth.lib.mjs";
2
+ import { useOrganizationAccess } from "./useOrganizationAccess.mjs";
3
+ import { useMutation } from "@tanstack/react-query";
4
+ //#region src/modules/auth/hooks/useMemberInvite.ts
5
+ function useAuthMemberInvite(options, props) {
6
+ const { managerRoles = ["admin", "owner"], onInvalidateScopedQueries } = props ?? {};
7
+ const { onSuccess, ...rest } = options;
8
+ const { refreshOrganizationQueries, activeOrganizationId } = useOrganizationAccess({
9
+ managerRoles,
10
+ onInvalidateScopedQueries
11
+ });
12
+ return useMutation({
13
+ mutationFn: async ({ email, role }) => {
14
+ const { error } = await authClient.organization.inviteMember({
15
+ organizationId: activeOrganizationId,
16
+ email: email.trim(),
17
+ role
18
+ });
19
+ if (error) throw new Error(error.message);
20
+ },
21
+ onSuccess: async (data, variables, context) => {
22
+ await refreshOrganizationQueries();
23
+ await onSuccess?.(data, variables, context);
24
+ },
25
+ ...rest
26
+ });
27
+ }
28
+ //#endregion
29
+ export { useAuthMemberInvite };
30
+
31
+ //# sourceMappingURL=useMemberInvite.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMemberInvite.mjs","names":[],"sources":["../../../../../src/modules/auth/hooks/useMemberInvite.ts"],"sourcesContent":["import { type UseMutationOptions, useMutation } from \"@tanstack/react-query\";\r\nimport { authClient } from \"../auth.lib\";\r\nimport {\r\n type AuthOrganizationRole,\r\n type UseOrganizationAccessProps,\r\n useOrganizationAccess,\r\n} from \"./useOrganizationAccess\";\r\n\r\ntype Variables = { email: string; role: AuthOrganizationRole };\r\n\r\nexport function useAuthMemberInvite(\r\n options: Omit<UseMutationOptions<void, Error, Variables, unknown>, \"mutationFn\">,\r\n props?: UseOrganizationAccessProps\r\n): ReturnType<typeof useMutation<void, Error, Variables, unknown>> {\r\n const { managerRoles = [\"admin\", \"owner\"], onInvalidateScopedQueries } = props ?? {};\r\n const { onSuccess, ...rest } = options;\r\n const { refreshOrganizationQueries, activeOrganizationId } = useOrganizationAccess({\r\n managerRoles,\r\n onInvalidateScopedQueries,\r\n });\r\n return useMutation({\r\n mutationFn: async ({ email, role }: { email: string; role: AuthOrganizationRole }) => {\r\n const { error } = await authClient.organization.inviteMember({\r\n organizationId: activeOrganizationId,\r\n email: email.trim(),\r\n role,\r\n });\r\n if (error) throw new Error(error.message);\r\n },\r\n\r\n onSuccess: async (data, variables, context) => {\r\n await refreshOrganizationQueries();\r\n await onSuccess?.(data, variables, context);\r\n },\r\n ...rest,\r\n });\r\n}\r\n"],"mappings":";;;;AAUA,SAAgB,oBACd,SACA,OACiE;CACjE,MAAM,EAAE,eAAe,CAAC,SAAS,QAAQ,EAAE,8BAA8B,SAAS,EAAE;CACpF,MAAM,EAAE,WAAW,GAAG,SAAS;CAC/B,MAAM,EAAE,4BAA4B,yBAAyB,sBAAsB;EACjF;EACA;EACD,CAAC;AACF,QAAO,YAAY;EACjB,YAAY,OAAO,EAAE,OAAO,WAA0D;GACpF,MAAM,EAAE,UAAU,MAAM,WAAW,aAAa,aAAa;IAC3D,gBAAgB;IAChB,OAAO,MAAM,MAAM;IACnB;IACD,CAAC;AACF,OAAI,MAAO,OAAM,IAAI,MAAM,MAAM,QAAQ;;EAG3C,WAAW,OAAO,MAAM,WAAW,YAAY;AAC7C,SAAM,4BAA4B;AAClC,SAAM,YAAY,MAAM,WAAW,QAAQ;;EAE7C,GAAG;EACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ //#region src/modules/auth/hooks/useOrganizationAccess.d.ts
2
+ declare const ORGANIZATION_ROLES: readonly ["member", "admin", "owner"];
3
+ type AuthOrganizationRole = (typeof ORGANIZATION_ROLES)[number];
4
+ interface UseOrganizationAccessProps {
5
+ managerRoles?: string[];
6
+ onInvalidateScopedQueries?: () => void | Promise<void>;
7
+ }
8
+ declare function useOrganizationAccess({
9
+ managerRoles,
10
+ onInvalidateScopedQueries
11
+ }: UseOrganizationAccessProps): {
12
+ activeOrganizationId: string;
13
+ activeOrganizationRole: string;
14
+ canManageOrganization: boolean;
15
+ refreshOrganizationQueries: () => Promise<void>;
16
+ };
17
+ //#endregion
18
+ export { AuthOrganizationRole, UseOrganizationAccessProps, useOrganizationAccess };
19
+ //# sourceMappingURL=useOrganizationAccess.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrganizationAccess.d.mts","names":[],"sources":["../../../../../src/modules/auth/hooks/useOrganizationAccess.ts"],"mappings":";cAMM,kBAAA;AAAA,KAEM,oBAAA,WAA+B,kBAAA;AAAA,UAE1B,0BAAA;EACf,YAAA;EACA,yBAAA,gBAAyC,OAAA;AAAA;AAAA,iBAG3B,qBAAA,CAAA;EACd,YAAA;EACA;AAAA,GACC,0BAAA"}
@@ -0,0 +1,19 @@
1
+ //#region src/modules/auth/hooks/useOrganizationAccess.d.ts
2
+ declare const ORGANIZATION_ROLES: readonly ["member", "admin", "owner"];
3
+ type AuthOrganizationRole = (typeof ORGANIZATION_ROLES)[number];
4
+ interface UseOrganizationAccessProps {
5
+ managerRoles?: string[];
6
+ onInvalidateScopedQueries?: () => void | Promise<void>;
7
+ }
8
+ declare function useOrganizationAccess({
9
+ managerRoles,
10
+ onInvalidateScopedQueries
11
+ }: UseOrganizationAccessProps): {
12
+ activeOrganizationId: string;
13
+ activeOrganizationRole: string;
14
+ canManageOrganization: boolean;
15
+ refreshOrganizationQueries: () => Promise<void>;
16
+ };
17
+ //#endregion
18
+ export { AuthOrganizationRole, UseOrganizationAccessProps, useOrganizationAccess };
19
+ //# sourceMappingURL=useOrganizationAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrganizationAccess.d.ts","names":[],"sources":["../../../../../src/modules/auth/hooks/useOrganizationAccess.ts"],"mappings":";cAMM,kBAAA;AAAA,KAEM,oBAAA,WAA+B,kBAAA;AAAA,UAE1B,0BAAA;EACf,YAAA;EACA,yBAAA,gBAAyC,OAAA;AAAA;AAAA,iBAG3B,qBAAA,CAAA;EACd,YAAA;EACA;AAAA,GACC,0BAAA"}
@@ -0,0 +1,36 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_src_modules_auth_hooks_useSession = require("./useSession.js");
3
+ let react = require("react");
4
+ let _tanstack_react_query = require("@tanstack/react-query");
5
+ //#region src/modules/auth/hooks/useOrganizationAccess.ts
6
+ function useOrganizationAccess({ managerRoles, onInvalidateScopedQueries }) {
7
+ const { data: session, registerSession } = require_src_modules_auth_hooks_useSession.useSession();
8
+ const queryClient = (0, _tanstack_react_query.useQueryClient)();
9
+ const activeOrganizationId = session?.session.activeOrganizationId ?? "";
10
+ const activeOrganizationRole = (session?.session)?.activeOrganizationRole ?? "";
11
+ return {
12
+ activeOrganizationId,
13
+ activeOrganizationRole,
14
+ canManageOrganization: (0, react.useMemo)(() => new Set(managerRoles ?? ["admin", "owner"]), [managerRoles]).has(activeOrganizationRole),
15
+ refreshOrganizationQueries: (0, react.useCallback)(async () => {
16
+ await Promise.allSettled([
17
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-list"] }),
18
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-details", activeOrganizationId] }),
19
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-members", activeOrganizationId] }),
20
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-invitations", activeOrganizationId] })
21
+ ]);
22
+ registerSession(() => {
23
+ onInvalidateScopedQueries?.();
24
+ });
25
+ }, [
26
+ activeOrganizationId,
27
+ onInvalidateScopedQueries,
28
+ queryClient,
29
+ registerSession
30
+ ])
31
+ };
32
+ }
33
+ //#endregion
34
+ exports.useOrganizationAccess = useOrganizationAccess;
35
+
36
+ //# sourceMappingURL=useOrganizationAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrganizationAccess.js","names":["useSession"],"sources":["../../../../../src/modules/auth/hooks/useOrganizationAccess.ts"],"sourcesContent":["import { useQueryClient } from \"@tanstack/react-query\";\r\nimport { useCallback, useMemo } from \"react\";\r\nimport { useSession } from \"./useSession\";\r\n\r\n// TODO: move to commons\r\n\r\nconst ORGANIZATION_ROLES = [\"member\", \"admin\", \"owner\"] as const;\r\n\r\nexport type AuthOrganizationRole = (typeof ORGANIZATION_ROLES)[number];\r\n\r\nexport interface UseOrganizationAccessProps {\r\n managerRoles?: string[];\r\n onInvalidateScopedQueries?: () => void | Promise<void>;\r\n}\r\n\r\nexport function useOrganizationAccess({\r\n managerRoles,\r\n onInvalidateScopedQueries,\r\n}: UseOrganizationAccessProps) {\r\n const { data: session, registerSession } = useSession();\r\n const queryClient = useQueryClient();\r\n\r\n const activeOrganizationId = session?.session.activeOrganizationId ?? \"\";\r\n const activeOrganizationRole =\r\n (session?.session as { activeOrganizationRole?: string } | undefined)?.activeOrganizationRole ??\r\n \"\";\r\n const managerRoleSet = useMemo(() => new Set(managerRoles ?? [\"admin\", \"owner\"]), [managerRoles]);\r\n const canManageOrganization = managerRoleSet.has(activeOrganizationRole);\r\n\r\n const refreshOrganizationQueries = useCallback(async () => {\r\n await Promise.allSettled([\r\n queryClient.invalidateQueries({ queryKey: [\"auth-organization-list\"] }),\r\n queryClient.invalidateQueries({\r\n queryKey: [\"auth-organization-details\", activeOrganizationId],\r\n }),\r\n queryClient.invalidateQueries({\r\n queryKey: [\"auth-organization-members\", activeOrganizationId],\r\n }),\r\n queryClient.invalidateQueries({\r\n queryKey: [\"auth-organization-invitations\", activeOrganizationId],\r\n }),\r\n ]);\r\n\r\n registerSession(() => {\r\n void onInvalidateScopedQueries?.();\r\n });\r\n }, [activeOrganizationId, onInvalidateScopedQueries, queryClient, registerSession]);\r\n\r\n return {\r\n activeOrganizationId,\r\n activeOrganizationRole,\r\n canManageOrganization,\r\n refreshOrganizationQueries,\r\n };\r\n}\r\n"],"mappings":";;;;;AAeA,SAAgB,sBAAsB,EACpC,cACA,6BAC6B;CAC7B,MAAM,EAAE,MAAM,SAAS,oBAAoBA,0CAAAA,YAAY;CACvD,MAAM,eAAA,GAAA,sBAAA,iBAA8B;CAEpC,MAAM,uBAAuB,SAAS,QAAQ,wBAAwB;CACtE,MAAM,0BACH,SAAS,UAA6D,0BACvE;AAuBF,QAAO;EACL;EACA;EACA,wBAAA,GAAA,MAAA,eAzBmC,IAAI,IAAI,gBAAgB,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,CACpD,IAAI,uBAAuB;EAyBtE,6BAAA,GAAA,MAAA,aAvB6C,YAAY;AACzD,SAAM,QAAQ,WAAW;IACvB,YAAY,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,EAAE,CAAC;IACvE,YAAY,kBAAkB,EAC5B,UAAU,CAAC,6BAA6B,qBAAqB,EAC9D,CAAC;IACF,YAAY,kBAAkB,EAC5B,UAAU,CAAC,6BAA6B,qBAAqB,EAC9D,CAAC;IACF,YAAY,kBAAkB,EAC5B,UAAU,CAAC,iCAAiC,qBAAqB,EAClE,CAAC;IACH,CAAC;AAEF,yBAAsB;AACf,iCAA6B;KAClC;KACD;GAAC;GAAsB;GAA2B;GAAa;GAAgB,CAAC;EAOlF"}
@@ -0,0 +1,35 @@
1
+ import { useSession } from "./useSession.mjs";
2
+ import { useCallback, useMemo } from "react";
3
+ import { useQueryClient } from "@tanstack/react-query";
4
+ //#region src/modules/auth/hooks/useOrganizationAccess.ts
5
+ function useOrganizationAccess({ managerRoles, onInvalidateScopedQueries }) {
6
+ const { data: session, registerSession } = useSession();
7
+ const queryClient = useQueryClient();
8
+ const activeOrganizationId = session?.session.activeOrganizationId ?? "";
9
+ const activeOrganizationRole = (session?.session)?.activeOrganizationRole ?? "";
10
+ return {
11
+ activeOrganizationId,
12
+ activeOrganizationRole,
13
+ canManageOrganization: useMemo(() => new Set(managerRoles ?? ["admin", "owner"]), [managerRoles]).has(activeOrganizationRole),
14
+ refreshOrganizationQueries: useCallback(async () => {
15
+ await Promise.allSettled([
16
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-list"] }),
17
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-details", activeOrganizationId] }),
18
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-members", activeOrganizationId] }),
19
+ queryClient.invalidateQueries({ queryKey: ["auth-organization-invitations", activeOrganizationId] })
20
+ ]);
21
+ registerSession(() => {
22
+ onInvalidateScopedQueries?.();
23
+ });
24
+ }, [
25
+ activeOrganizationId,
26
+ onInvalidateScopedQueries,
27
+ queryClient,
28
+ registerSession
29
+ ])
30
+ };
31
+ }
32
+ //#endregion
33
+ export { useOrganizationAccess };
34
+
35
+ //# sourceMappingURL=useOrganizationAccess.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrganizationAccess.mjs","names":[],"sources":["../../../../../src/modules/auth/hooks/useOrganizationAccess.ts"],"sourcesContent":["import { useQueryClient } from \"@tanstack/react-query\";\r\nimport { useCallback, useMemo } from \"react\";\r\nimport { useSession } from \"./useSession\";\r\n\r\n// TODO: move to commons\r\n\r\nconst ORGANIZATION_ROLES = [\"member\", \"admin\", \"owner\"] as const;\r\n\r\nexport type AuthOrganizationRole = (typeof ORGANIZATION_ROLES)[number];\r\n\r\nexport interface UseOrganizationAccessProps {\r\n managerRoles?: string[];\r\n onInvalidateScopedQueries?: () => void | Promise<void>;\r\n}\r\n\r\nexport function useOrganizationAccess({\r\n managerRoles,\r\n onInvalidateScopedQueries,\r\n}: UseOrganizationAccessProps) {\r\n const { data: session, registerSession } = useSession();\r\n const queryClient = useQueryClient();\r\n\r\n const activeOrganizationId = session?.session.activeOrganizationId ?? \"\";\r\n const activeOrganizationRole =\r\n (session?.session as { activeOrganizationRole?: string } | undefined)?.activeOrganizationRole ??\r\n \"\";\r\n const managerRoleSet = useMemo(() => new Set(managerRoles ?? [\"admin\", \"owner\"]), [managerRoles]);\r\n const canManageOrganization = managerRoleSet.has(activeOrganizationRole);\r\n\r\n const refreshOrganizationQueries = useCallback(async () => {\r\n await Promise.allSettled([\r\n queryClient.invalidateQueries({ queryKey: [\"auth-organization-list\"] }),\r\n queryClient.invalidateQueries({\r\n queryKey: [\"auth-organization-details\", activeOrganizationId],\r\n }),\r\n queryClient.invalidateQueries({\r\n queryKey: [\"auth-organization-members\", activeOrganizationId],\r\n }),\r\n queryClient.invalidateQueries({\r\n queryKey: [\"auth-organization-invitations\", activeOrganizationId],\r\n }),\r\n ]);\r\n\r\n registerSession(() => {\r\n void onInvalidateScopedQueries?.();\r\n });\r\n }, [activeOrganizationId, onInvalidateScopedQueries, queryClient, registerSession]);\r\n\r\n return {\r\n activeOrganizationId,\r\n activeOrganizationRole,\r\n canManageOrganization,\r\n refreshOrganizationQueries,\r\n };\r\n}\r\n"],"mappings":";;;;AAeA,SAAgB,sBAAsB,EACpC,cACA,6BAC6B;CAC7B,MAAM,EAAE,MAAM,SAAS,oBAAoB,YAAY;CACvD,MAAM,cAAc,gBAAgB;CAEpC,MAAM,uBAAuB,SAAS,QAAQ,wBAAwB;CACtE,MAAM,0BACH,SAAS,UAA6D,0BACvE;AAuBF,QAAO;EACL;EACA;EACA,uBAzBqB,cAAc,IAAI,IAAI,gBAAgB,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,CACpD,IAAI,uBAAuB;EAyBtE,4BAvBiC,YAAY,YAAY;AACzD,SAAM,QAAQ,WAAW;IACvB,YAAY,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,EAAE,CAAC;IACvE,YAAY,kBAAkB,EAC5B,UAAU,CAAC,6BAA6B,qBAAqB,EAC9D,CAAC;IACF,YAAY,kBAAkB,EAC5B,UAAU,CAAC,6BAA6B,qBAAqB,EAC9D,CAAC;IACF,YAAY,kBAAkB,EAC5B,UAAU,CAAC,iCAAiC,qBAAqB,EAClE,CAAC;IACH,CAAC;AAEF,yBAAsB;AACf,iCAA6B;KAClC;KACD;GAAC;GAAsB;GAA2B;GAAa;GAAgB,CAAC;EAOlF"}
@@ -17,7 +17,7 @@ declare function BillingProvider({
17
17
  loader?: React.ReactNode;
18
18
  planPage: React.ReactNode;
19
19
  skipPlanCheck?: boolean;
20
- }): string | number | bigint | boolean | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined> | _$react_jsx_runtime0.JSX.Element | null | undefined;
20
+ }): string | number | bigint | boolean | _$react_jsx_runtime0.JSX.Element | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined> | null | undefined;
21
21
  //#endregion
22
22
  export { BillingProvider, billingProviderContext };
23
23
  //# sourceMappingURL=BillingProvider.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BillingProvider.d.mts","names":[],"sources":["../../../../../src/modules/billing/components/BillingProvider.tsx"],"mappings":";;;;;cAMa,sBAAA,EAEQ,OAAA,CAFc,OAAA;;QAE3B,aAAA;AAAA;AAAA,iBAMQ,eAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA,QAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,aAAA;AAAA,yCACD,QAAA,CAF0B,OAAA,CAE1B,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"BillingProvider.d.mts","names":[],"sources":["../../../../../src/modules/billing/components/BillingProvider.tsx"],"mappings":";;;;;cAMa,sBAAA,EAEQ,OAAA,CAFc,OAAA;;QAE3B,aAAA;AAAA;AAAA,iBAMQ,eAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA,QAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,aAAA;AAAA,yCACD,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA"}
@@ -17,7 +17,7 @@ declare function BillingProvider({
17
17
  loader?: React.ReactNode;
18
18
  planPage: React.ReactNode;
19
19
  skipPlanCheck?: boolean;
20
- }): string | number | bigint | boolean | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined> | _$react_jsx_runtime0.JSX.Element | null | undefined;
20
+ }): string | number | bigint | boolean | _$react_jsx_runtime0.JSX.Element | Iterable<_$react.ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<_$react.ReactNode> | null | undefined> | null | undefined;
21
21
  //#endregion
22
22
  export { BillingProvider, billingProviderContext };
23
23
  //# sourceMappingURL=BillingProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BillingProvider.d.ts","names":[],"sources":["../../../../../src/modules/billing/components/BillingProvider.tsx"],"mappings":";;;;;cAMa,sBAAA,EAEQ,OAAA,CAFc,OAAA;;QAE3B,aAAA;AAAA;AAAA,iBAMQ,eAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA,QAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,aAAA;AAAA,yCACD,QAAA,CAF0B,OAAA,CAE1B,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"BillingProvider.d.ts","names":[],"sources":["../../../../../src/modules/billing/components/BillingProvider.tsx"],"mappings":";;;;;cAMa,sBAAA,EAEQ,OAAA,CAFc,OAAA;;QAE3B,aAAA;AAAA;AAAA,iBAMQ,eAAA,CAAA;EACd,QAAA;EACA,MAAA;EACA,QAAA;EACA;AAAA;EAEA,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,aAAA;AAAA,yCACD,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m5kdev/frontend",
3
- "version": "0.20.34",
3
+ "version": "0.20.48",
4
4
  "license": "GPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,7 +26,7 @@
26
26
  "react": "19.2.1",
27
27
  "react-dom": "19.2.1",
28
28
  "zod": "4.2.1",
29
- "@m5kdev/commons": "0.20.34"
29
+ "@m5kdev/commons": "0.20.48"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "@trpc/server": "11.4.3"
@@ -41,8 +41,8 @@
41
41
  "tsdown": "0.21.7",
42
42
  "typescript": "6.0.3",
43
43
  "vite": "7.0.4",
44
- "@m5kdev/config": "0.20.34",
45
- "@m5kdev/backend": "0.20.34"
44
+ "@m5kdev/config": "0.20.48",
45
+ "@m5kdev/backend": "0.20.48"
46
46
  },
47
47
  "exports": {
48
48
  "./modules/app/components/*": {