@burdenoff/microfe-organization 2026.510.110
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/README.md +64 -0
- package/dist/generated/global-operations.d.ts +1647 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-operations.js +724 -0
- package/dist/generated/global-operations.js.map +1 -0
- package/dist/generated/global-types.d.ts +20716 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/global-types.js +8 -0
- package/dist/generated/global-types.js.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +53363 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/node_modules/sonner/dist/index.js +163 -0
- package/dist/node_modules/sonner/dist/index.js.map +1 -0
- package/dist/node_modules/zod/v3/ZodError.js +82 -0
- package/dist/node_modules/zod/v3/ZodError.js.map +1 -0
- package/dist/node_modules/zod/v3/errors.js +10 -0
- package/dist/node_modules/zod/v3/errors.js.map +1 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.js +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.js +93 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
- package/dist/node_modules/zod/v3/helpers/util.js +76 -0
- package/dist/node_modules/zod/v3/helpers/util.js.map +1 -0
- package/dist/node_modules/zod/v3/locales/en.js +62 -0
- package/dist/node_modules/zod/v3/locales/en.js.map +1 -0
- package/dist/node_modules/zod/v3/types.js +2441 -0
- package/dist/node_modules/zod/v3/types.js.map +1 -0
- package/dist/organization-management/AdminOrganizationRoot.d.ts +16 -0
- package/dist/organization-management/AdminOrganizationRoot.d.ts.map +1 -0
- package/dist/organization-management/AdminOrganizationRoot.js +76 -0
- package/dist/organization-management/AdminOrganizationRoot.js.map +1 -0
- package/dist/organization-management/AdminOrganizationRoutes.d.ts +16 -0
- package/dist/organization-management/AdminOrganizationRoutes.d.ts.map +1 -0
- package/dist/organization-management/AdminOrganizationRoutes.js +73 -0
- package/dist/organization-management/AdminOrganizationRoutes.js.map +1 -0
- package/dist/organization-management/UserOrganizationRoot.d.ts +17 -0
- package/dist/organization-management/UserOrganizationRoot.d.ts.map +1 -0
- package/dist/organization-management/UserOrganizationRoot.js +45 -0
- package/dist/organization-management/UserOrganizationRoot.js.map +1 -0
- package/dist/organization-management/UserOrganizationRoutes.d.ts +12 -0
- package/dist/organization-management/UserOrganizationRoutes.d.ts.map +1 -0
- package/dist/organization-management/UserOrganizationRoutes.js +30 -0
- package/dist/organization-management/UserOrganizationRoutes.js.map +1 -0
- package/dist/organization-management/constants/permissions.d.ts +30 -0
- package/dist/organization-management/constants/permissions.d.ts.map +1 -0
- package/dist/organization-management/constants/permissions.js +22 -0
- package/dist/organization-management/constants/permissions.js.map +1 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts +19 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts.map +1 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.js +15 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.js.map +1 -0
- package/dist/organization-management/hooks/useOrganizationPageView.d.ts +11 -0
- package/dist/organization-management/hooks/useOrganizationPageView.d.ts.map +1 -0
- package/dist/organization-management/hooks/useOrganizationPageView.js +24 -0
- package/dist/organization-management/hooks/useOrganizationPageView.js.map +1 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts +18 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.js +119 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.js.map +1 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts +6 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js +51 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js.map +1 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts +11 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.js +56 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.js.map +1 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.d.ts +22 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.js +70 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.js.map +1 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts +6 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.js +141 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.js.map +1 -0
- package/dist/organization-management/modules/members/hooks/useInvites.d.ts +75 -0
- package/dist/organization-management/modules/members/hooks/useInvites.d.ts.map +1 -0
- package/dist/organization-management/modules/members/hooks/useInvites.js +253 -0
- package/dist/organization-management/modules/members/hooks/useInvites.js.map +1 -0
- package/dist/organization-management/modules/members/hooks/useMembers.d.ts +84 -0
- package/dist/organization-management/modules/members/hooks/useMembers.d.ts.map +1 -0
- package/dist/organization-management/modules/members/hooks/useMembers.js +95 -0
- package/dist/organization-management/modules/members/hooks/useMembers.js.map +1 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts +6 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js +91 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts +6 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js +115 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.d.ts +2 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.js +424 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts +6 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js +114 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js.map +1 -0
- package/dist/organization-management/modules/members/types/index.d.ts +35 -0
- package/dist/organization-management/modules/members/types/index.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts +13 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.js +325 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.js.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts +13 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js +49 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js.map +1 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts +86 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.js +164 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts +6 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +76 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts +2 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +306 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts +6 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +93 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts +2 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +448 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -0
- package/dist/organization-management/modules/organizations/schemas/index.d.ts +53 -0
- package/dist/organization-management/modules/organizations/schemas/index.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/schemas/index.js +25 -0
- package/dist/organization-management/modules/organizations/schemas/index.js.map +1 -0
- package/dist/organization-management/modules/organizations/types/index.d.ts +34 -0
- package/dist/organization-management/modules/organizations/types/index.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts +13 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js +147 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts +16 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js +107 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts +16 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js +386 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts +13 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js +49 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts +47 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js +46 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts +133 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js +111 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +82 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +438 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +90 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +465 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/schemas/index.d.ts +44 -0
- package/dist/organization-management/modules/workspaces/schemas/index.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/schemas/index.js +22 -0
- package/dist/organization-management/modules/workspaces/schemas/index.js.map +1 -0
- package/dist/organization-management/modules/workspaces/types/index.d.ts +39 -0
- package/dist/organization-management/modules/workspaces/types/index.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts +48 -0
- package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts.map +1 -0
- package/dist/organization-management/providers/OrgConsoleProvider.d.ts +19 -0
- package/dist/organization-management/providers/OrgConsoleProvider.d.ts.map +1 -0
- package/dist/organization-management/providers/OrgConsoleProvider.js +24 -0
- package/dist/organization-management/providers/OrgConsoleProvider.js.map +1 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts +28 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js +105 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js.map +1 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.d.ts +14 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.d.ts.map +1 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.js +30 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.js.map +1 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.d.ts +11 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.d.ts.map +1 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.js +37 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.js.map +1 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.d.ts +6 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.d.ts.map +1 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.js +24 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.js.map +1 -0
- package/dist/organization-management/shared/components/input/SearchInput.d.ts +15 -0
- package/dist/organization-management/shared/components/input/SearchInput.d.ts.map +1 -0
- package/dist/organization-management/shared/components/input/SearchInput.js +40 -0
- package/dist/organization-management/shared/components/input/SearchInput.js.map +1 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts +10 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts.map +1 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js +21 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js.map +1 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts +2 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts.map +1 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.js +17 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.js.map +1 -0
- package/dist/organization-management/shared/hooks/useTr.d.ts +14 -0
- package/dist/organization-management/shared/hooks/useTr.d.ts.map +1 -0
- package/dist/organization-management/shared/hooks/useTr.js +14 -0
- package/dist/organization-management/shared/hooks/useTr.js.map +1 -0
- package/dist/organization-management/shared/logger.d.ts +11 -0
- package/dist/organization-management/shared/logger.d.ts.map +1 -0
- package/dist/organization-management/shared/logger.js +46 -0
- package/dist/organization-management/shared/logger.js.map +1 -0
- package/dist/organization-management/shared/recaptcha.d.ts +2 -0
- package/dist/organization-management/shared/recaptcha.d.ts.map +1 -0
- package/dist/organization-management/shared/recaptcha.js +6 -0
- package/dist/organization-management/shared/recaptcha.js.map +1 -0
- package/dist/organization-management/shared/types/graphql.d.ts +131 -0
- package/dist/organization-management/shared/types/graphql.d.ts.map +1 -0
- package/dist/organization-management/shared/types/graphql.js +10 -0
- package/dist/organization-management/shared/types/graphql.js.map +1 -0
- package/dist/organization-management/shared/utils/cn.d.ts +8 -0
- package/dist/organization-management/shared/utils/cn.d.ts.map +1 -0
- package/dist/organization-management/types/index.d.ts +46 -0
- package/dist/organization-management/types/index.d.ts.map +1 -0
- package/dist/utils/nativeBridge.d.ts +3 -0
- package/dist/utils/nativeBridge.d.ts.map +1 -0
- package/dist/utils/nativeBridge.js +2 -0
- package/package.json +116 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useTr — translation hook with fallback semantics.
|
|
3
|
+
*
|
|
4
|
+
* Wraps `useI18n().t()` so that when a key has no translation (i.e. the
|
|
5
|
+
* provider returns the key itself), the caller's English fallback is used
|
|
6
|
+
* instead. This keeps consumer call sites consistent and avoids leaking
|
|
7
|
+
* untranslated keys into the UI.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const tr = useTr();
|
|
11
|
+
* return <h1>{tr('organizations.title', 'Organizations')}</h1>;
|
|
12
|
+
*/
|
|
13
|
+
export declare function useTr(): (key: string, fallback: string) => string;
|
|
14
|
+
//# sourceMappingURL=useTr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTr.d.ts","sourceRoot":"","sources":["../../../../src/organization-management/shared/hooks/useTr.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CASjE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useCallback as e } from "react";
|
|
2
|
+
import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
3
|
+
//#region src/organization-management/shared/hooks/useTr.ts
|
|
4
|
+
function n() {
|
|
5
|
+
let { t: n } = t();
|
|
6
|
+
return e((e, t) => {
|
|
7
|
+
let r = n(e);
|
|
8
|
+
return r === e ? t : r;
|
|
9
|
+
}, [n]);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { n as useTr };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=useTr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTr.js","names":[],"sources":["../../../../src/organization-management/shared/hooks/useTr.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\n/**\n * useTr — translation hook with fallback semantics.\n *\n * Wraps `useI18n().t()` so that when a key has no translation (i.e. the\n * provider returns the key itself), the caller's English fallback is used\n * instead. This keeps consumer call sites consistent and avoids leaking\n * untranslated keys into the UI.\n *\n * @example\n * const tr = useTr();\n * return <h1>{tr('organizations.title', 'Organizations')}</h1>;\n */\nexport function useTr(): (key: string, fallback: string) => string {\n const { t } = useI18n();\n return useCallback(\n (key: string, fallback: string): string => {\n const translated = t(key);\n return translated === key ? fallback : translated;\n },\n [t]\n );\n}\n"],"mappings":";;;AAeA,SAAgB,IAAmD;CACjE,IAAM,EAAE,SAAM,GAAS;AACvB,QAAO,GACJ,GAAa,MAA6B;EACzC,IAAM,IAAa,EAAE,EAAI;AACzB,SAAO,MAAe,IAAM,IAAW;IAEzC,CAAC,EAAE,CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Redact a free-form ID by exposing only the first/last 4 characters. */
|
|
2
|
+
export declare function redactId(id: string | null | undefined): string | undefined;
|
|
3
|
+
type LogData = Record<string, unknown>;
|
|
4
|
+
interface OrganizationLogger {
|
|
5
|
+
info: (event: string, data?: LogData) => void;
|
|
6
|
+
warn: (event: string, data?: LogData) => void;
|
|
7
|
+
error: (event: string, data?: LogData, error?: unknown) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const logger: OrganizationLogger;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/organization-management/shared/logger.ts"],"names":[],"mappings":"AAkBA,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI1E;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvC,UAAU,kBAAkB;IAC1B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACjE;AAQD,eAAO,MAAM,MAAM,EAAE,kBA4BpB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { logManager as e } from "@burdenoff/fe-libs/shared/logger/LogManager";
|
|
2
|
+
//#region src/organization-management/shared/logger.ts
|
|
3
|
+
var t = "organization", n = (() => {
|
|
4
|
+
let n = e.getLogger(`microfe.${t}`);
|
|
5
|
+
return n.setContext({
|
|
6
|
+
component: "microfe-organization",
|
|
7
|
+
module: t
|
|
8
|
+
}), n;
|
|
9
|
+
})();
|
|
10
|
+
function r(e) {
|
|
11
|
+
if (e) return e.length <= 8 ? "***" : `${e.slice(0, 4)}…${e.slice(-4)}`;
|
|
12
|
+
}
|
|
13
|
+
function i(e) {
|
|
14
|
+
if (e) return e instanceof Error ? e : Error(typeof e == "string" ? e : JSON.stringify(e));
|
|
15
|
+
}
|
|
16
|
+
var a = {
|
|
17
|
+
info: (e, r) => {
|
|
18
|
+
try {
|
|
19
|
+
n.info(e, {
|
|
20
|
+
...r,
|
|
21
|
+
module: t
|
|
22
|
+
});
|
|
23
|
+
} catch {}
|
|
24
|
+
},
|
|
25
|
+
warn: (e, r) => {
|
|
26
|
+
try {
|
|
27
|
+
n.warn(e, {
|
|
28
|
+
...r,
|
|
29
|
+
module: t
|
|
30
|
+
});
|
|
31
|
+
} catch {}
|
|
32
|
+
},
|
|
33
|
+
error: (e, r, a) => {
|
|
34
|
+
try {
|
|
35
|
+
let o = i(a) ?? Error(e);
|
|
36
|
+
o.meta = {
|
|
37
|
+
...r,
|
|
38
|
+
module: t
|
|
39
|
+
}, n.error(e, o);
|
|
40
|
+
} catch {}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
//#endregion
|
|
44
|
+
export { a as logger, r as redactId };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","names":[],"sources":["../../../src/organization-management/shared/logger.ts"],"sourcesContent":["/**\n * Module-scoped logger for `microfe-organization`.\n *\n * Wraps the fe-libs `LogManager` so every log entry is tagged with\n * `module: 'organization'` and IDs are redacted before they hit any sink.\n * Per the SRE guide (§7) we never log emails, display names or other PII.\n */\nimport { logManager } from '@burdenoff/fe-libs/shared/logger/LogManager';\nimport type { ILogger } from '@burdenoff/fe-libs/shared/logger/types';\n\nconst MODULE_NAME = 'organization';\n\nconst baseLogger: ILogger = (() => {\n const log = logManager.getLogger(`microfe.${MODULE_NAME}`);\n log.setContext({ component: 'microfe-organization', module: MODULE_NAME });\n return log;\n})();\n\n/** Redact a free-form ID by exposing only the first/last 4 characters. */\nexport function redactId(id: string | null | undefined): string | undefined {\n if (!id) return undefined;\n if (id.length <= 8) return '***';\n return `${id.slice(0, 4)}…${id.slice(-4)}`;\n}\n\ntype LogData = Record<string, unknown>;\n\ninterface OrganizationLogger {\n info: (event: string, data?: LogData) => void;\n warn: (event: string, data?: LogData) => void;\n error: (event: string, data?: LogData, error?: unknown) => void;\n}\n\nfunction toError(error: unknown): Error | undefined {\n if (!error) return undefined;\n if (error instanceof Error) return error;\n return new Error(typeof error === 'string' ? error : JSON.stringify(error));\n}\n\nexport const logger: OrganizationLogger = {\n info: (event, data) => {\n try {\n baseLogger.info(event, { ...data, module: MODULE_NAME });\n } catch {\n // Logger transport failures must not break the UI.\n }\n },\n warn: (event, data) => {\n try {\n baseLogger.warn(event, { ...data, module: MODULE_NAME });\n } catch {\n // Logger transport failures must not break the UI.\n }\n },\n error: (event, data, error) => {\n try {\n // The fe-libs Logger.error signature drops the `data` arg, so we attach\n // the structured payload to the Error object itself before forwarding.\n const errObj = toError(error) ?? new Error(event);\n const payload = { ...data, module: MODULE_NAME };\n type ErrorWithMeta = Error & { meta?: LogData };\n (errObj as ErrorWithMeta).meta = payload;\n baseLogger.error(event, errObj);\n } catch {\n // Logger transport failures must not break the UI.\n }\n },\n};\n"],"mappings":";;AAUA,IAAM,IAAc,gBAEd,WAA6B;CACjC,IAAM,IAAM,EAAW,UAAU,WAAW,IAAc;AAE1D,QADA,EAAI,WAAW;EAAE,WAAW;EAAwB,QAAQ;EAAa,CAAC,EACnE;IACL;AAGJ,SAAgB,EAAS,GAAmD;AACrE,OAEL,QADI,EAAG,UAAU,IAAU,QACpB,GAAG,EAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAG,MAAM,GAAG;;AAW1C,SAAS,EAAQ,GAAmC;AAC7C,OAEL,QADI,aAAiB,QAAc,IACxB,MAAM,OAAO,KAAU,WAAW,IAAQ,KAAK,UAAU,EAAM,CAAC;;AAG7E,IAAa,IAA6B;CACxC,OAAO,GAAO,MAAS;AACrB,MAAI;AACF,KAAW,KAAK,GAAO;IAAE,GAAG;IAAM,QAAQ;IAAa,CAAC;UAClD;;CAIV,OAAO,GAAO,MAAS;AACrB,MAAI;AACF,KAAW,KAAK,GAAO;IAAE,GAAG;IAAM,QAAQ;IAAa,CAAC;UAClD;;CAIV,QAAQ,GAAO,GAAM,MAAU;AAC7B,MAAI;GAGF,IAAM,IAAS,EAAQ,EAAM,IAAQ,MAAM,EAAM;AAIjD,GADC,EAAyB,OAFV;IAAE,GAAG;IAAM,QAAQ;IAAa,EAGhD,EAAW,MAAM,GAAO,EAAO;UACzB;;CAIX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha.d.ts","sourceRoot":"","sources":["../../../src/organization-management/shared/recaptcha.ts"],"names":[],"mappings":"AAmDA,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiBlF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha.js","names":[],"sources":["../../../src/organization-management/shared/recaptcha.ts"],"sourcesContent":["/// <reference types=\"vite/client\" />\n\nconst CAPTCHA_ENABLED = import.meta.env.VITE_CAPTCHA_ENABLED === 'true';\nconst SCRIPT_ID = 'burdenoff-recaptcha-v3';\n\ninterface Grecaptcha {\n ready(callback: () => void): void;\n execute(siteKey: string, options: { action: string }): Promise<string>;\n}\n\nfunction getGrecaptcha(): Grecaptcha | undefined {\n return (window as unknown as { grecaptcha?: Grecaptcha }).grecaptcha;\n}\n\nfunction getSiteKey(): string {\n const siteKey = import.meta.env.VITE_RECAPTCHA_SITE_KEY;\n if (typeof siteKey !== 'string' || siteKey.trim().length === 0) {\n throw new Error('reCAPTCHA site key is not configured');\n }\n return siteKey.trim();\n}\n\nfunction loadScript(siteKey: string): Promise<void> {\n if (getGrecaptcha()?.execute) {\n return Promise.resolve();\n }\n\n const existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n if (existing) {\n return new Promise((resolve, reject) => {\n existing.addEventListener('load', () => resolve(), { once: true });\n existing.addEventListener('error', () => reject(new Error('Failed to load reCAPTCHA')), {\n once: true,\n });\n });\n }\n\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.id = SCRIPT_ID;\n script.async = true;\n script.defer = true;\n script.src = `https://www.google.com/recaptcha/api.js?render=${encodeURIComponent(siteKey)}`;\n script.addEventListener('load', () => resolve(), { once: true });\n script.addEventListener('error', () => reject(new Error('Failed to load reCAPTCHA')), {\n once: true,\n });\n document.head.appendChild(script);\n });\n}\n\nexport async function executeRecaptcha(action: string): Promise<string | undefined> {\n if (!CAPTCHA_ENABLED) {\n return undefined;\n }\n\n const siteKey = getSiteKey();\n await loadScript(siteKey);\n const grecaptcha = getGrecaptcha();\n if (!grecaptcha?.execute) {\n throw new Error('reCAPTCHA is not available');\n }\n\n return new Promise((resolve, reject) => {\n grecaptcha.ready(() => {\n grecaptcha.execute(siteKey, { action }).then(resolve).catch(reject);\n });\n });\n}\n"],"mappings":";AAmDA,eAAsB,EAAiB,GAA6C"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared GraphQL types
|
|
3
|
+
* Generated types will be added via GraphQL Codegen
|
|
4
|
+
*/
|
|
5
|
+
export interface PageInfo {
|
|
6
|
+
totalCount: number;
|
|
7
|
+
hasNextPage: boolean;
|
|
8
|
+
hasPreviousPage: boolean;
|
|
9
|
+
startCursor?: string;
|
|
10
|
+
endCursor?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface PaginationInput {
|
|
13
|
+
first?: number;
|
|
14
|
+
after?: string;
|
|
15
|
+
last?: number;
|
|
16
|
+
before?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface Connection<T> {
|
|
19
|
+
items: T[];
|
|
20
|
+
pageInfo: PageInfo;
|
|
21
|
+
}
|
|
22
|
+
export declare enum TenantStatus {
|
|
23
|
+
ACTIVE = "ACTIVE",
|
|
24
|
+
INACTIVE = "INACTIVE",
|
|
25
|
+
SUSPENDED = "SUSPENDED"
|
|
26
|
+
}
|
|
27
|
+
export declare enum OrganizationStatus {
|
|
28
|
+
ACTIVE = "ACTIVE",
|
|
29
|
+
INACTIVE = "INACTIVE",
|
|
30
|
+
ARCHIVED = "ARCHIVED"
|
|
31
|
+
}
|
|
32
|
+
export declare enum WorkspaceStatus {
|
|
33
|
+
ACTIVE = "ACTIVE",
|
|
34
|
+
INACTIVE = "INACTIVE",
|
|
35
|
+
ARCHIVED = "ARCHIVED"
|
|
36
|
+
}
|
|
37
|
+
export declare enum WorkspaceVisibility {
|
|
38
|
+
PRIVATE = "PRIVATE",
|
|
39
|
+
PUBLIC = "PUBLIC",
|
|
40
|
+
INTERNAL = "INTERNAL"
|
|
41
|
+
}
|
|
42
|
+
export declare enum OrganizationRole {
|
|
43
|
+
SUPER_ADMIN = "SUPER_ADMIN",
|
|
44
|
+
TENANT_ADMIN = "TENANT_ADMIN",
|
|
45
|
+
ORG_ADMIN = "ORG_ADMIN",
|
|
46
|
+
WORKSPACE_ADMIN = "WORKSPACE_ADMIN",
|
|
47
|
+
MEMBER = "MEMBER",
|
|
48
|
+
GUEST = "GUEST"
|
|
49
|
+
}
|
|
50
|
+
export declare enum WorkspaceRole {
|
|
51
|
+
SUPER_ADMIN = "SUPER_ADMIN",
|
|
52
|
+
TENANT_ADMIN = "TENANT_ADMIN",
|
|
53
|
+
ORG_ADMIN = "ORG_ADMIN",
|
|
54
|
+
WORKSPACE_ADMIN = "WORKSPACE_ADMIN",
|
|
55
|
+
MEMBER = "MEMBER",
|
|
56
|
+
GUEST = "GUEST"
|
|
57
|
+
}
|
|
58
|
+
export declare enum ProductStatus {
|
|
59
|
+
ACTIVE = "ACTIVE",
|
|
60
|
+
BETA = "BETA",
|
|
61
|
+
DEPRECATED = "DEPRECATED",
|
|
62
|
+
COMING_SOON = "COMING_SOON"
|
|
63
|
+
}
|
|
64
|
+
export interface Tenant {
|
|
65
|
+
id: string;
|
|
66
|
+
name: string;
|
|
67
|
+
slug: string;
|
|
68
|
+
status: TenantStatus;
|
|
69
|
+
subscriptionTier?: string;
|
|
70
|
+
billingAccountId?: string;
|
|
71
|
+
customDomain?: string;
|
|
72
|
+
logoUrl?: string;
|
|
73
|
+
metadata?: Record<string, unknown>;
|
|
74
|
+
createdAt: string;
|
|
75
|
+
updatedAt: string;
|
|
76
|
+
organizations?: Organization[];
|
|
77
|
+
products?: PlatformProduct[];
|
|
78
|
+
}
|
|
79
|
+
export interface Organization {
|
|
80
|
+
id: string;
|
|
81
|
+
tenantId: string;
|
|
82
|
+
name: string;
|
|
83
|
+
slug: string;
|
|
84
|
+
description?: string;
|
|
85
|
+
logo?: string;
|
|
86
|
+
website?: string;
|
|
87
|
+
status: OrganizationStatus;
|
|
88
|
+
metadata?: Record<string, unknown>;
|
|
89
|
+
createdAt: string;
|
|
90
|
+
updatedAt: string;
|
|
91
|
+
memberCount?: number;
|
|
92
|
+
workspaceCount?: number;
|
|
93
|
+
workspaces?: Workspace[];
|
|
94
|
+
}
|
|
95
|
+
export interface Workspace {
|
|
96
|
+
id: string;
|
|
97
|
+
organizationId: string;
|
|
98
|
+
tenantId: string;
|
|
99
|
+
name: string;
|
|
100
|
+
slug: string;
|
|
101
|
+
status: WorkspaceStatus;
|
|
102
|
+
type: string;
|
|
103
|
+
memberCount?: number;
|
|
104
|
+
endpoint?: string;
|
|
105
|
+
region?: string;
|
|
106
|
+
metadata?: Record<string, unknown>;
|
|
107
|
+
createdAt: string;
|
|
108
|
+
updatedAt: string;
|
|
109
|
+
}
|
|
110
|
+
export interface Member {
|
|
111
|
+
id: string;
|
|
112
|
+
userId: string;
|
|
113
|
+
organizationId: string;
|
|
114
|
+
role: string;
|
|
115
|
+
invitedBy?: string;
|
|
116
|
+
joinedAt?: string;
|
|
117
|
+
}
|
|
118
|
+
export interface PlatformProduct {
|
|
119
|
+
id: string;
|
|
120
|
+
name: string;
|
|
121
|
+
slug: string;
|
|
122
|
+
description?: string;
|
|
123
|
+
category?: string;
|
|
124
|
+
status: ProductStatus;
|
|
125
|
+
iconUrl?: string;
|
|
126
|
+
version?: string;
|
|
127
|
+
metadata?: Record<string, unknown>;
|
|
128
|
+
createdAt: string;
|
|
129
|
+
updatedAt: string;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../../src/organization-management/shared/types/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/organization-management/shared/types/graphql.ts
|
|
2
|
+
var e = /* @__PURE__ */ function(e) {
|
|
3
|
+
return e.ACTIVE = "ACTIVE", e.INACTIVE = "INACTIVE", e.ARCHIVED = "ARCHIVED", e;
|
|
4
|
+
}({}), t = /* @__PURE__ */ function(e) {
|
|
5
|
+
return e.ACTIVE = "ACTIVE", e.INACTIVE = "INACTIVE", e.ARCHIVED = "ARCHIVED", e;
|
|
6
|
+
}({});
|
|
7
|
+
//#endregion
|
|
8
|
+
export { e as OrganizationStatus, t as WorkspaceStatus };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.js","names":[],"sources":["../../../../src/organization-management/shared/types/graphql.ts"],"sourcesContent":["/**\n * Shared GraphQL types\n * Generated types will be added via GraphQL Codegen\n */\n\n// Pagination\nexport interface PageInfo {\n totalCount: number;\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n startCursor?: string;\n endCursor?: string;\n}\n\nexport interface PaginationInput {\n first?: number;\n after?: string;\n last?: number;\n before?: string;\n}\n\n// Connection pattern\nexport interface Connection<T> {\n items: T[];\n pageInfo: PageInfo;\n}\n\n// Common enums\nexport enum TenantStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n SUSPENDED = 'SUSPENDED',\n}\n\nexport enum OrganizationStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n ARCHIVED = 'ARCHIVED',\n}\n\nexport enum WorkspaceStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n ARCHIVED = 'ARCHIVED',\n}\n\nexport enum WorkspaceVisibility {\n PRIVATE = 'PRIVATE',\n PUBLIC = 'PUBLIC',\n INTERNAL = 'INTERNAL',\n}\n\nexport enum OrganizationRole {\n SUPER_ADMIN = 'SUPER_ADMIN',\n TENANT_ADMIN = 'TENANT_ADMIN',\n ORG_ADMIN = 'ORG_ADMIN',\n WORKSPACE_ADMIN = 'WORKSPACE_ADMIN',\n MEMBER = 'MEMBER',\n GUEST = 'GUEST',\n}\n\nexport enum WorkspaceRole {\n SUPER_ADMIN = 'SUPER_ADMIN',\n TENANT_ADMIN = 'TENANT_ADMIN',\n ORG_ADMIN = 'ORG_ADMIN',\n WORKSPACE_ADMIN = 'WORKSPACE_ADMIN',\n MEMBER = 'MEMBER',\n GUEST = 'GUEST',\n}\n\nexport enum ProductStatus {\n ACTIVE = 'ACTIVE',\n BETA = 'BETA',\n DEPRECATED = 'DEPRECATED',\n COMING_SOON = 'COMING_SOON',\n}\n\n// Base entity types (will be replaced by codegen)\nexport interface Tenant {\n id: string;\n name: string;\n slug: string;\n status: TenantStatus;\n subscriptionTier?: string;\n billingAccountId?: string;\n customDomain?: string;\n logoUrl?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n organizations?: Organization[];\n products?: PlatformProduct[];\n}\n\nexport interface Organization {\n id: string;\n tenantId: string;\n name: string;\n slug: string;\n description?: string;\n logo?: string;\n website?: string;\n status: OrganizationStatus;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n memberCount?: number;\n workspaceCount?: number;\n workspaces?: Workspace[];\n}\n\nexport interface Workspace {\n id: string;\n organizationId: string;\n tenantId: string;\n name: string;\n slug: string;\n status: WorkspaceStatus;\n type: string; // PERSONAL, TEAM, etc.\n memberCount?: number;\n endpoint?: string;\n region?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface Member {\n id: string;\n userId: string;\n organizationId: string;\n role: string;\n invitedBy?: string;\n joinedAt?: string;\n}\n\nexport interface PlatformProduct {\n id: string;\n name: string;\n slug: string;\n description?: string;\n category?: string;\n status: ProductStatus;\n iconUrl?: string;\n version?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n"],"mappings":";AAkCA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,SAAA,UACA,EAAA,WAAA,YACA,EAAA,WAAA;KACD,EAEW,IAAL,yBAAA,GAAA;QACL,EAAA,SAAA,UACA,EAAA,WAAA,YACA,EAAA,WAAA;KACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../../../src/organization-management/shared/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface NavItem {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
path: string;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
order: number;
|
|
9
|
+
group?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface FooterItem {
|
|
12
|
+
id: string;
|
|
13
|
+
label: string;
|
|
14
|
+
order: number;
|
|
15
|
+
type?: string;
|
|
16
|
+
section?: 'left' | 'right' | 'center';
|
|
17
|
+
}
|
|
18
|
+
export interface User {
|
|
19
|
+
id: string;
|
|
20
|
+
email: string;
|
|
21
|
+
firstName?: string;
|
|
22
|
+
lastName?: string;
|
|
23
|
+
avatarUrl?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface OrganizationRootProps {
|
|
26
|
+
basePath?: string;
|
|
27
|
+
navigate: (path: string) => void;
|
|
28
|
+
currentUser?: User;
|
|
29
|
+
tenantId?: string;
|
|
30
|
+
workspaceId?: string;
|
|
31
|
+
apiGatewayUrl?: string;
|
|
32
|
+
authToken?: string;
|
|
33
|
+
capabilities?: {
|
|
34
|
+
canManageOrganizations?: boolean;
|
|
35
|
+
canManageWorkspaces?: boolean;
|
|
36
|
+
canManageMembers?: boolean;
|
|
37
|
+
};
|
|
38
|
+
registerNavItems?: (items: NavItem | NavItem[]) => () => void;
|
|
39
|
+
registerFooterItems?: (items: FooterItem | FooterItem[]) => () => void;
|
|
40
|
+
callbacks?: {
|
|
41
|
+
onOrganizationCreate?: (orgId: string) => void;
|
|
42
|
+
onWorkspaceCreate?: (workspaceId: string) => void;
|
|
43
|
+
onMemberInvite?: (memberId: string) => void;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organization-management/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACvC;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAGjC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE;QACb,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IAGF,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC;IAC9D,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,KAAK,MAAM,IAAI,CAAC;IAGvE,SAAS,CAAC,EAAE;QACV,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QAClD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;KAC7C,CAAC;CACH"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getPlatform, isNative, isIOS, isAndroid, isWeb, nativeImpact, nativeNotify, nativeToast, nativeConfirm, nativeCopyText, nativeShare, nativeOpenUrl, useNativePlatform, useSafeArea, useNativeKeyboard, useAppState, useDeviceInfo, useHaptics, useStatusBar, } from '@burdenoff/fe-libs/shared/native';
|
|
2
|
+
export type { BurdenoffNativePlatform, BurdenoffNativeBridge, SafeAreaInsets, DeviceInfo, HapticImpactStyle, HapticNotificationType, ToastDuration, ConfirmOptions, ShareOptions, AppState, StatusBarTheme, } from '@burdenoff/fe-libs/shared/native';
|
|
3
|
+
//# sourceMappingURL=nativeBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeBridge.d.ts","sourceRoot":"","sources":["../../src/utils/nativeBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,GACb,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,MAAM,kCAAkC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@burdenoff/microfe-organization",
|
|
3
|
+
"version": "2026.510.110",
|
|
4
|
+
"description": "Organization management microfrontend for Burdenoff products",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"package.json",
|
|
9
|
+
"README.md"
|
|
10
|
+
],
|
|
11
|
+
"imports": {
|
|
12
|
+
"#src/*": "./src/*",
|
|
13
|
+
"#organization/*": "./src/organization/*"
|
|
14
|
+
},
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"main": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "vite",
|
|
25
|
+
"build": "tsc && vite build",
|
|
26
|
+
"schema:pull": "graphql-codegen --project schema-wspace && graphql-codegen --project schema-global",
|
|
27
|
+
"codegen": "graphql-codegen --project wspace && graphql-codegen --project global",
|
|
28
|
+
"codegen:all": "bun run schema:pull && bun run codegen",
|
|
29
|
+
"lint": "eslint .",
|
|
30
|
+
"lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
|
|
31
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
32
|
+
"type:check": "tsc --noEmit",
|
|
33
|
+
"test": "vitest run",
|
|
34
|
+
"test:watch": "vitest",
|
|
35
|
+
"test:coverage": "vitest run --coverage",
|
|
36
|
+
"sanity": "bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run test",
|
|
37
|
+
"switch:status": "bun scripts/deps-mode.ts status",
|
|
38
|
+
"switch:remote": "bun scripts/deps-mode.ts remote",
|
|
39
|
+
"switch:local": "bun scripts/deps-mode.ts local",
|
|
40
|
+
"switch:check": "bun scripts/deps-mode.ts check",
|
|
41
|
+
"prepare": "lefthook install || true",
|
|
42
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx}\""
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@apollo/client": "^3.12.0",
|
|
46
|
+
"@burdenoff/fe-libs": "2026.507.125",
|
|
47
|
+
"@tanstack/react-query": "^5.90.16",
|
|
48
|
+
"clsx": "^2.1.1",
|
|
49
|
+
"graphql": "^16.10.0",
|
|
50
|
+
"lucide-react": "^0.468.0",
|
|
51
|
+
"react": "^19.0.0",
|
|
52
|
+
"react-dom": "^19.0.0",
|
|
53
|
+
"react-router-dom": "^7.1.3",
|
|
54
|
+
"sonner": "^2.0.7",
|
|
55
|
+
"tailwind-merge": "^3.4.0",
|
|
56
|
+
"zod": "^3.25.76",
|
|
57
|
+
"zustand": "^5.0.3"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@eslint/js": "^9.39.1",
|
|
61
|
+
"@graphql-codegen/add": "^5.0.0",
|
|
62
|
+
"@graphql-codegen/cli": "^5.0.0",
|
|
63
|
+
"@graphql-codegen/import-types-preset": "^3.0.0",
|
|
64
|
+
"@graphql-codegen/schema-ast": "^4.0.0",
|
|
65
|
+
"@graphql-codegen/typescript": "^4.0.0",
|
|
66
|
+
"@graphql-codegen/typescript-operations": "^4.0.0",
|
|
67
|
+
"@graphql-codegen/typescript-react-apollo": "^4.0.0",
|
|
68
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
69
|
+
"@testing-library/react": "^16.3.2",
|
|
70
|
+
"@types/react": "^19.0.2",
|
|
71
|
+
"@types/react-dom": "^19.0.2",
|
|
72
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
73
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
74
|
+
"autoprefixer": "^10.4.20",
|
|
75
|
+
"eslint": "^9.18.0",
|
|
76
|
+
"eslint-plugin-react": "^7.37.5",
|
|
77
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
78
|
+
"jsdom": "^29.1.1",
|
|
79
|
+
"knip": "^6.12.2",
|
|
80
|
+
"lefthook": "^2.1.1",
|
|
81
|
+
"postcss": "^8.4.49",
|
|
82
|
+
"prettier": "^3.4.2",
|
|
83
|
+
"tailwindcss": "^4.0.0",
|
|
84
|
+
"typescript": "^5.9.0",
|
|
85
|
+
"typescript-eslint": "^8.46.0",
|
|
86
|
+
"vite": "8.0.8",
|
|
87
|
+
"vite-plugin-dts": "3.9.1",
|
|
88
|
+
"vitest": "^3.2.4"
|
|
89
|
+
},
|
|
90
|
+
"peerDependencies": {
|
|
91
|
+
"@apollo/client": "^3.12.0",
|
|
92
|
+
"react": "^19.0.0",
|
|
93
|
+
"react-dom": "^19.0.0",
|
|
94
|
+
"zustand": "^5.0.0"
|
|
95
|
+
},
|
|
96
|
+
"publishConfig": {
|
|
97
|
+
"access": "restricted"
|
|
98
|
+
},
|
|
99
|
+
"overrides": {
|
|
100
|
+
"lodash": ">=4.17.21",
|
|
101
|
+
"lodash-es": ">=4.17.21",
|
|
102
|
+
"dompurify": ">=3.3.4",
|
|
103
|
+
"fast-xml-parser": ">=4.5.5",
|
|
104
|
+
"@xmldom/xmldom": ">=0.8.12",
|
|
105
|
+
"swiper": ">=12.1.2",
|
|
106
|
+
"brace-expansion": ">=1.1.13",
|
|
107
|
+
"follow-redirects": ">=1.15.12",
|
|
108
|
+
"smol-toml": ">=1.6.1",
|
|
109
|
+
"axios": ">=1.15.0",
|
|
110
|
+
"flatted": ">=3.4.1",
|
|
111
|
+
"yaml": ">=2.8.3",
|
|
112
|
+
"picomatch": ">=2.3.2",
|
|
113
|
+
"immutable": ">=3.8.3",
|
|
114
|
+
"minimatch": ">=3.1.3"
|
|
115
|
+
}
|
|
116
|
+
}
|