@famgia/omnify-react-sso 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- export { DateString, DateTimeString, Locale, LocaleMap, ValidationRule } from '@omnify-base/schemas/common';
2
- export { defaultLocale, fallbackLocale, getMessage, getMessages, supportedLocales, validationMessages } from '@omnify-base/schemas/i18n';
1
+ export { DateString, DateTimeString, LocaleMap, ValidationRule } from '@omnify-base/schemas/common';
2
+ export { fallbackLocale, getMessage, getMessages, supportedLocales, validationMessages } from '@omnify-base/schemas/i18n';
3
3
  export { BranchCache, BranchCacheCreate, BranchCacheUpdate, OrganizationCache, OrganizationCacheCreate, OrganizationCacheUpdate, PermissionCreate, PermissionUpdate, RoleCreate, RolePermission, RolePermissionCreate, RolePermissionUpdate, RoleUpdate, TeamCache, TeamCacheCreate, TeamCacheUpdate, TeamPermission, TeamPermissionCreate, TeamPermissionUpdate, UserCache, UserCacheCreate, UserCacheUpdate, branchCacheCreateSchema, branchCacheSchemas, branchCacheUpdateSchema, organizationCacheCreateSchema, organizationCacheSchemas, organizationCacheUpdateSchema, permissionCreateSchema, permissionSchemas, permissionUpdateSchema, roleCreateSchema, rolePermissionCreateSchema, rolePermissionSchemas, rolePermissionUpdateSchema, roleSchemas, roleUpdateSchema, teamCacheCreateSchema, teamCacheSchemas, teamCacheUpdateSchema, teamPermissionCreateSchema, teamPermissionSchemas, teamPermissionUpdateSchema, userCacheCreateSchema, userCacheSchemas, userCacheUpdateSchema } from './schemas/index.js';
4
4
  import * as react from 'react';
5
- import { b as SsoContextValue, c as SsoProviderProps, B as BranchContextValue, d as BranchProviderProps, S as SsoUser$2, a as SsoOrganization, e as SsoConfig, f as SsoCallbackProps, O as OrganizationSwitcherProps, P as ProtectedRouteProps, g as OrgBranchSelectorModalProps, h as BranchGateProps, i as BranchGateSelection } from './types-CJmA2a9r.js';
6
- export { l as OrgBranchSelection, k as SsoBranch, j as SsoCallbackResponse } from './types-CJmA2a9r.js';
5
+ import { ReactNode } from 'react';
6
+ import { b as SsoContextValue, c as SsoProviderProps, B as BranchContextValue, d as BranchProviderProps, S as SsoUser$2, a as SsoOrganization, e as SsoConfig, f as SsoCallbackProps, O as OrganizationSwitcherProps, P as ProtectedRouteProps, g as OrgBranchSelectorModalProps, h as BranchGateProps, i as BranchGateSelection } from './types-bD5deLxs.js';
7
+ export { j as OrgBranchSelection, k as SsoBranch, l as SsoCallbackResponse } from './types-bD5deLxs.js';
7
8
  import * as react_jsx_runtime from 'react/jsx-runtime';
8
9
  export { branchCacheI18n, getBranchCacheFieldLabel, getBranchCacheFieldPlaceholder, getBranchCacheLabel } from '@omnify-base/schemas/BranchCache';
9
10
  export { getOrganizationCacheFieldLabel, getOrganizationCacheFieldPlaceholder, getOrganizationCacheLabel, organizationCacheI18n } from '@omnify-base/schemas/OrganizationCache';
@@ -407,6 +408,335 @@ declare function useBranchGate(storageKey?: string): {
407
408
  clearSelection: () => void;
408
409
  };
409
410
 
411
+ /**
412
+ * Base service configuration
413
+ */
414
+ interface ServiceConfig {
415
+ apiUrl: string;
416
+ }
417
+
418
+ /**
419
+ * User Service - Admin User CRUD operations
420
+ *
421
+ * Provides user management functionality for admin users.
422
+ * Uses the /api/admin/sso/users endpoints.
423
+ */
424
+
425
+ interface User {
426
+ id: string;
427
+ name: string;
428
+ email: string;
429
+ console_user_id?: string;
430
+ created_at?: string;
431
+ updated_at?: string;
432
+ }
433
+ interface UserListParams {
434
+ page?: number;
435
+ per_page?: number;
436
+ "filter[search]"?: string;
437
+ "filter[org_id]"?: string;
438
+ sort?: string;
439
+ }
440
+ interface UserListResponse {
441
+ data: User[];
442
+ links?: {
443
+ first?: string;
444
+ last?: string;
445
+ prev?: string | null;
446
+ next?: string | null;
447
+ };
448
+ meta: {
449
+ current_page: number;
450
+ from: number | null;
451
+ last_page: number;
452
+ per_page: number;
453
+ to: number | null;
454
+ total: number;
455
+ };
456
+ }
457
+ interface UpdateUserInput {
458
+ name?: string;
459
+ email?: string;
460
+ }
461
+ interface RoleAssignmentWithPermissions {
462
+ role: {
463
+ id: string;
464
+ name: string;
465
+ slug: string;
466
+ level: number;
467
+ };
468
+ scope: "global" | "org-wide" | "branch";
469
+ console_org_id: string | null;
470
+ console_branch_id: string | null;
471
+ org_name?: string | null;
472
+ branch_name?: string | null;
473
+ permissions: string[];
474
+ }
475
+ interface TeamMembershipWithPermissions {
476
+ team: {
477
+ id: string | number;
478
+ name: string;
479
+ path: string | null;
480
+ };
481
+ is_leader: boolean;
482
+ permissions: string[];
483
+ }
484
+ interface UserPermissionsBreakdown {
485
+ user: {
486
+ id: string;
487
+ name: string;
488
+ email: string;
489
+ console_org_id?: string | null;
490
+ organization?: {
491
+ id: string;
492
+ console_org_id: string;
493
+ name: string;
494
+ code: string;
495
+ } | null;
496
+ };
497
+ context: {
498
+ org_id: string | null;
499
+ branch_id: string | null;
500
+ };
501
+ role_assignments: RoleAssignmentWithPermissions[];
502
+ team_memberships: TeamMembershipWithPermissions[];
503
+ aggregated_permissions: string[];
504
+ }
505
+ interface UserService {
506
+ list(params?: UserListParams, orgSlug?: string): Promise<UserListResponse>;
507
+ get(id: string, orgSlug?: string): Promise<User>;
508
+ update(id: string, input: UpdateUserInput, orgSlug?: string): Promise<User>;
509
+ delete(id: string, orgSlug?: string): Promise<void>;
510
+ search(email: string, orgSlug?: string): Promise<User[]>;
511
+ getPermissions(userId: string, orgId?: string, branchId?: string, orgSlug?: string): Promise<UserPermissionsBreakdown>;
512
+ }
513
+ declare function createUserService(config: ServiceConfig): UserService;
514
+
515
+ interface UserTableProps {
516
+ users: User[];
517
+ loading?: boolean;
518
+ pagination?: UserListResponse["meta"];
519
+ sortField?: string;
520
+ sortOrder?: "asc" | "desc";
521
+ onPageChange?: (page: number, pageSize: number) => void;
522
+ onSortChange?: (field: string | undefined, order: "asc" | "desc" | undefined) => void;
523
+ onSearch?: (value: string) => void;
524
+ onEdit?: (user: User) => void;
525
+ onDelete?: (user: User) => void;
526
+ deleteLoading?: boolean;
527
+ showSearch?: boolean;
528
+ showActions?: boolean;
529
+ }
530
+ declare function UserTable({ users, loading, pagination, sortField, sortOrder, onPageChange, onSortChange, onSearch, onEdit, onDelete, deleteLoading, showSearch, showActions, }: UserTableProps): react_jsx_runtime.JSX.Element;
531
+
532
+ interface UserFormProps {
533
+ initialValues?: Partial<User>;
534
+ onSubmit: (values: UpdateUserInput) => void;
535
+ onCancel?: () => void;
536
+ loading?: boolean;
537
+ submitText?: string;
538
+ }
539
+ declare function UserForm({ initialValues, onSubmit, onCancel, loading, submitText, }: UserFormProps): react_jsx_runtime.JSX.Element;
540
+
541
+ /**
542
+ * Default translations for SSO components
543
+ *
544
+ * Apps can override these by adding to their i18n resources under the "sso" namespace.
545
+ */
546
+ declare const ssoNamespace = "sso";
547
+ declare const defaultTranslations: {
548
+ en: {
549
+ actions: string;
550
+ save: string;
551
+ cancel: string;
552
+ delete: string;
553
+ edit: string;
554
+ search: string;
555
+ loading: string;
556
+ yes: string;
557
+ no: string;
558
+ confirmDelete: string;
559
+ users: string;
560
+ user: string;
561
+ name: string;
562
+ email: string;
563
+ ssoUser: string;
564
+ localUser: string;
565
+ userList: string;
566
+ userDetails: string;
567
+ editUser: string;
568
+ deleteUser: string;
569
+ searchUsers: string;
570
+ noUsersFound: string;
571
+ userDeleted: string;
572
+ userUpdated: string;
573
+ roles: string;
574
+ role: string;
575
+ roleName: string;
576
+ roleDescription: string;
577
+ permissions: string;
578
+ assignRole: string;
579
+ removeRole: string;
580
+ permission: string;
581
+ permissionName: string;
582
+ permissionDescription: string;
583
+ required: string;
584
+ maxLength: string;
585
+ invalidEmail: string;
586
+ total: string;
587
+ page: string;
588
+ };
589
+ ja: {
590
+ actions: string;
591
+ save: string;
592
+ cancel: string;
593
+ delete: string;
594
+ edit: string;
595
+ search: string;
596
+ loading: string;
597
+ yes: string;
598
+ no: string;
599
+ confirmDelete: string;
600
+ users: string;
601
+ user: string;
602
+ name: string;
603
+ email: string;
604
+ ssoUser: string;
605
+ localUser: string;
606
+ userList: string;
607
+ userDetails: string;
608
+ editUser: string;
609
+ deleteUser: string;
610
+ searchUsers: string;
611
+ noUsersFound: string;
612
+ userDeleted: string;
613
+ userUpdated: string;
614
+ roles: string;
615
+ role: string;
616
+ roleName: string;
617
+ roleDescription: string;
618
+ permissions: string;
619
+ assignRole: string;
620
+ removeRole: string;
621
+ permission: string;
622
+ permissionName: string;
623
+ permissionDescription: string;
624
+ required: string;
625
+ maxLength: string;
626
+ invalidEmail: string;
627
+ total: string;
628
+ page: string;
629
+ };
630
+ vi: {
631
+ actions: string;
632
+ save: string;
633
+ cancel: string;
634
+ delete: string;
635
+ edit: string;
636
+ search: string;
637
+ loading: string;
638
+ yes: string;
639
+ no: string;
640
+ confirmDelete: string;
641
+ users: string;
642
+ user: string;
643
+ name: string;
644
+ email: string;
645
+ ssoUser: string;
646
+ localUser: string;
647
+ userList: string;
648
+ userDetails: string;
649
+ editUser: string;
650
+ deleteUser: string;
651
+ searchUsers: string;
652
+ noUsersFound: string;
653
+ userDeleted: string;
654
+ userUpdated: string;
655
+ roles: string;
656
+ role: string;
657
+ roleName: string;
658
+ roleDescription: string;
659
+ permissions: string;
660
+ assignRole: string;
661
+ removeRole: string;
662
+ permission: string;
663
+ permissionName: string;
664
+ permissionDescription: string;
665
+ required: string;
666
+ maxLength: string;
667
+ invalidEmail: string;
668
+ total: string;
669
+ page: string;
670
+ };
671
+ };
672
+
673
+ /**
674
+ * Hook for SSO translations using react-i18next
675
+ *
676
+ * Falls back to English if translation not found.
677
+ * Apps should initialize i18next and add SSO translations to their resources.
678
+ */
679
+
680
+ type TranslationKey = keyof typeof defaultTranslations.en;
681
+ /**
682
+ * Hook for SSO component translations
683
+ *
684
+ * Falls back to English if react-i18next is not available or translation not found.
685
+ *
686
+ * @example
687
+ * const { t } = useSsoTranslation();
688
+ * <span>{t("users")}</span>
689
+ * <span>{t("required", { field: t("email") })}</span>
690
+ */
691
+ declare function useSsoTranslation(): {
692
+ t: (key: TranslationKey, options?: Record<string, unknown>) => string;
693
+ };
694
+
695
+ type TranslationMessages = Record<string, any>;
696
+ interface I18nProviderProps {
697
+ children: ReactNode;
698
+ /** App-specific translations for each locale */
699
+ translations?: {
700
+ en?: TranslationMessages;
701
+ ja?: TranslationMessages;
702
+ vi?: TranslationMessages;
703
+ };
704
+ /** Default locale (defaults to "ja") */
705
+ fallbackLocale?: string;
706
+ }
707
+ declare function I18nProvider({ children, translations, fallbackLocale }: I18nProviderProps): react_jsx_runtime.JSX.Element;
708
+
709
+ type TranslationValues = Record<string, string | number>;
710
+ /**
711
+ * Hook that mimics next-intl's useTranslations API
712
+ *
713
+ * @example
714
+ * // Without namespace (uses default "translation" namespace)
715
+ * const t = useTranslations();
716
+ * t("common.save") // "Save"
717
+ *
718
+ * // With namespace prefix
719
+ * const t = useTranslations("auth");
720
+ * t("login") // accesses "auth.login"
721
+ */
722
+ declare function useTranslations(namespace?: string): (key: string, values?: TranslationValues) => string;
723
+
724
+ /**
725
+ * i18n configuration constants
726
+ */
727
+ declare const locales: readonly ["ja", "en", "vi"];
728
+ type Locale = (typeof locales)[number];
729
+ declare const defaultLocale: Locale;
730
+ declare const localeNames: Record<Locale, string>;
731
+ declare const changeLanguage: (locale: Locale) => void;
732
+ declare const getCurrentLocale: () => Locale;
733
+
734
+ /**
735
+ * Hook to get the current locale
736
+ * This provides the same API as next-intl's useLocale()
737
+ */
738
+ declare function useLocale(): Locale;
739
+
410
740
  /**
411
741
  * Branch header utilities for API clients
412
742
  *
@@ -479,13 +809,6 @@ declare function createBranchHeaderSetter(axiosInstance: AxiosLike): (selection:
479
809
  */
480
810
  declare function setBranchHeaders(axiosInstance: AxiosLike, selection: BranchGateSelection | null): void;
481
811
 
482
- /**
483
- * Base service configuration
484
- */
485
- interface ServiceConfig {
486
- apiUrl: string;
487
- }
488
-
489
812
  /**
490
813
  * Auth Service - SSO Authentication
491
814
  *
@@ -591,17 +914,24 @@ type TokenService = ReturnType<typeof createTokenService>;
591
914
  */
592
915
 
593
916
  interface Role$1 {
594
- id: number;
917
+ id: string;
595
918
  name: string;
596
919
  slug: string;
597
920
  description: string | null;
598
921
  level: number;
922
+ console_org_id?: string | null;
599
923
  permissions_count?: number;
924
+ organization?: {
925
+ id: string;
926
+ console_org_id: string;
927
+ name: string;
928
+ code: string;
929
+ } | null;
600
930
  created_at: string;
601
931
  updated_at: string;
602
932
  }
603
933
  interface Permission$1 {
604
- id: number;
934
+ id: string;
605
935
  name: string;
606
936
  slug: string;
607
937
  group: string | null;
@@ -618,6 +948,12 @@ interface CreateRoleInput$1 {
618
948
  name: string;
619
949
  level: number;
620
950
  description?: string;
951
+ scope?: 'global' | 'org';
952
+ console_org_id?: string | null;
953
+ }
954
+ interface RoleListParams {
955
+ 'filter[scope]'?: 'global' | 'org' | 'all';
956
+ 'filter[org_id]'?: string;
621
957
  }
622
958
  interface UpdateRoleInput$1 {
623
959
  name?: string;
@@ -651,7 +987,7 @@ declare function createRoleService(config: ServiceConfig): {
651
987
  * List all roles (admin)
652
988
  * GET /api/admin/sso/roles
653
989
  */
654
- adminList: (orgSlug: string) => Promise<{
990
+ adminList: (orgSlug: string, params?: RoleListParams) => Promise<{
655
991
  data: Role$1[];
656
992
  }>;
657
993
  /**
@@ -1036,17 +1372,18 @@ interface Organization {
1036
1372
  role: string;
1037
1373
  }
1038
1374
  interface Role {
1039
- id: number;
1375
+ id: string;
1040
1376
  name: string;
1041
1377
  slug: string;
1042
1378
  description: string | null;
1043
1379
  level: number;
1380
+ console_org_id?: string | null;
1044
1381
  permissions_count?: number;
1045
1382
  created_at: string;
1046
1383
  updated_at: string;
1047
1384
  }
1048
1385
  interface Permission {
1049
- id: number;
1386
+ id: string;
1050
1387
  name: string;
1051
1388
  slug: string;
1052
1389
  group: string | null;
@@ -1407,6 +1744,23 @@ declare const ssoQueryKeys: {
1407
1744
  readonly list: (userId: string) => readonly ["sso", "user-roles", string];
1408
1745
  readonly byBranch: (userId: string, orgId: string, branchId: string | null) => readonly ["sso", "user-roles", string, string, string | null];
1409
1746
  };
1747
+ readonly users: {
1748
+ readonly all: () => readonly ["sso", "users"];
1749
+ readonly list: (params?: {
1750
+ page?: number;
1751
+ per_page?: number;
1752
+ search?: string;
1753
+ sort?: string;
1754
+ order?: string;
1755
+ }) => readonly ["sso", "users", "list", {
1756
+ page?: number;
1757
+ per_page?: number;
1758
+ search?: string;
1759
+ sort?: string;
1760
+ order?: string;
1761
+ } | undefined];
1762
+ readonly detail: (id: number | string) => readonly ["sso", "users", "detail", string | number];
1763
+ };
1410
1764
  readonly branches: {
1411
1765
  readonly all: () => readonly ["sso", "branches"];
1412
1766
  readonly list: (orgSlug?: string) => readonly ["sso", "branches", "list", string | undefined];
@@ -1415,6 +1769,23 @@ declare const ssoQueryKeys: {
1415
1769
  readonly primary: (orgSlug?: string) => readonly ["sso", "branches", "primary", string | undefined];
1416
1770
  };
1417
1771
  readonly admin: {
1772
+ readonly users: {
1773
+ readonly all: (orgSlug: string) => readonly ["sso", "admin", string, "users"];
1774
+ readonly list: (orgSlug: string, params?: {
1775
+ page?: number;
1776
+ per_page?: number;
1777
+ search?: string;
1778
+ sort?: string;
1779
+ order?: string;
1780
+ }) => readonly ["sso", "admin", string, "users", "list", {
1781
+ page?: number;
1782
+ per_page?: number;
1783
+ search?: string;
1784
+ sort?: string;
1785
+ order?: string;
1786
+ } | undefined];
1787
+ readonly detail: (orgSlug: string, id: number | string) => readonly ["sso", "admin", string, "users", "detail", string | number];
1788
+ };
1418
1789
  readonly roles: {
1419
1790
  readonly all: (orgSlug: string) => readonly ["sso", "admin", string, "roles"];
1420
1791
  readonly list: (orgSlug: string) => readonly ["sso", "admin", string, "roles", "list"];
@@ -1449,4 +1820,4 @@ declare const ssoQueryKeys: {
1449
1820
  };
1450
1821
  };
1451
1822
 
1452
- export { type ApiToken$1 as ApiToken, type AssignRoleInput, type AssignRoleResponse, type AuthCallbackInput, type AuthCallbackResponse, type AuthService, type SsoUser$1 as AuthUser, type AuthUserResponse, BRANCH_HEADERS, type Branch, BranchContext, BranchContextValue, BranchGate, BranchGateProps, BranchGateSelection, BranchProvider, BranchProviderProps, type BranchService, type BranchesResponse, type CleanupOrphanedInput$1 as CleanupOrphanedInput, type CreatePermissionInput$1 as CreatePermissionInput, type CreateRoleInput$1 as CreateRoleInput, OrgBranchSelectorModal, OrgBranchSelectorModalProps, type Organization$1 as Organization, OrganizationSwitcher, OrganizationSwitcherProps, type OrphanedTeam$1 as OrphanedTeam, type Permission$1 as Permission, type PermissionListParams, type PermissionMatrix$1 as PermissionMatrix, type PermissionService, ProtectedRoute, ProtectedRouteProps, type RemoveRoleResponse, type Role$1 as Role, type RoleAssignment, type RoleScope, type RoleService, type RoleWithPermissions$1 as RoleWithPermissions, type ServiceConfig, type Permission$1 as ServicePermission, type Role$1 as ServiceRole, SsoCallback, SsoCallbackProps, SsoConfig, SsoContext, SsoContextValue, SsoOrganization, SsoProvider, SsoProviderProps, type SsoService, type SsoServiceConfig, type SsoUser$1 as SsoServiceUser, SsoUser$2 as SsoUser, type SyncPermissionsInput$1 as SyncPermissionsInput, type SyncPermissionsResponse, type SyncRolesInput, type SyncRolesResponse, type SyncTeamPermissionsInput, type TeamPermissionDetail$1 as TeamPermissionDetail, type TeamService, type TeamWithPermissions$1 as TeamWithPermissions, type TokenService, type UpdatePermissionInput$1 as UpdatePermissionInput, type UpdateRoleInput$1 as UpdateRoleInput, type UseAuthReturn, type UseBranchReturn, type UseOrganizationReturn, type UseSsoReturn, type UserRoleService, createAuthService, createBranchHeaderSetter, createBranchService, createPermissionService, createRoleService, createSsoService, createTeamService, createTokenService, createUserRoleService, getEffectivePermissions, getScopeLabel, setBranchHeaders, ssoQueryKeys, useAuth, useBranch, useBranchGate, useOrganization, useSso };
1823
+ export { type ApiToken$1 as ApiToken, type AssignRoleInput, type AssignRoleResponse, type AuthCallbackInput, type AuthCallbackResponse, type AuthService, type SsoUser$1 as AuthUser, type AuthUserResponse, BRANCH_HEADERS, type Branch, BranchContext, BranchContextValue, BranchGate, BranchGateProps, BranchGateSelection, BranchProvider, BranchProviderProps, type BranchService, type BranchesResponse, type CleanupOrphanedInput$1 as CleanupOrphanedInput, type CreatePermissionInput$1 as CreatePermissionInput, type CreateRoleInput$1 as CreateRoleInput, I18nProvider, type I18nProviderProps, type Locale, OrgBranchSelectorModal, OrgBranchSelectorModalProps, type Organization$1 as Organization, OrganizationSwitcher, OrganizationSwitcherProps, type OrphanedTeam$1 as OrphanedTeam, type Permission$1 as Permission, type PermissionListParams, type PermissionMatrix$1 as PermissionMatrix, type PermissionService, ProtectedRoute, ProtectedRouteProps, type RemoveRoleResponse, type Role$1 as Role, type RoleAssignment, type RoleAssignmentWithPermissions, type RoleScope, type RoleService, type RoleWithPermissions$1 as RoleWithPermissions, type ServiceConfig, type Permission$1 as ServicePermission, type Role$1 as ServiceRole, SsoCallback, SsoCallbackProps, SsoConfig, SsoContext, SsoContextValue, SsoOrganization, SsoProvider, SsoProviderProps, type SsoService, type SsoServiceConfig, type SsoUser$1 as SsoServiceUser, SsoUser$2 as SsoUser, type SyncPermissionsInput$1 as SyncPermissionsInput, type SyncPermissionsResponse, type SyncRolesInput, type SyncRolesResponse, type SyncTeamPermissionsInput, type TeamMembershipWithPermissions, type TeamPermissionDetail$1 as TeamPermissionDetail, type TeamService, type TeamWithPermissions$1 as TeamWithPermissions, type TokenService, type UpdatePermissionInput$1 as UpdatePermissionInput, type UpdateRoleInput$1 as UpdateRoleInput, type UpdateUserInput, type UseAuthReturn, type UseBranchReturn, type UseOrganizationReturn, type UseSsoReturn, type User, UserForm, type UserFormProps, type UserListParams, type UserListResponse, type UserPermissionsBreakdown, type UserRoleService, type UserService, UserTable, type UserTableProps, changeLanguage, createAuthService, createBranchHeaderSetter, createBranchService, createPermissionService, createRoleService, createSsoService, createTeamService, createTokenService, createUserRoleService, createUserService, defaultLocale, defaultTranslations, getCurrentLocale, getEffectivePermissions, getScopeLabel, localeNames, locales, setBranchHeaders, ssoNamespace, ssoQueryKeys, useAuth, useBranch, useBranchGate, useLocale, useOrganization, useSso, useSsoTranslation, useTranslations };