@skylabs-digital/react-identity-access 2.12.0 → 2.13.0

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.
@@ -0,0 +1,122 @@
1
+ import { ReactNode } from 'react';
2
+ import { UserType } from './api';
3
+
4
+ /**
5
+ * Access mode for zone requirements
6
+ * - 'required': Must match condition (redirect if not)
7
+ * - 'forbidden': Must NOT match condition (redirect if matches)
8
+ * - 'optional': Can be either (no redirect)
9
+ */
10
+ export type AccessMode = 'required' | 'forbidden' | 'optional';
11
+ /**
12
+ * Reason types for access denial
13
+ */
14
+ export type AccessDeniedType = 'no_tenant' | 'has_tenant' | 'not_authenticated' | 'already_authenticated' | 'wrong_user_type' | 'missing_permissions';
15
+ /**
16
+ * Detailed reason object passed to callbacks when access is denied
17
+ */
18
+ export interface AccessDeniedReason {
19
+ type: AccessDeniedType;
20
+ required?: {
21
+ tenant?: AccessMode;
22
+ auth?: AccessMode;
23
+ userType?: UserType | UserType[];
24
+ permissions?: string[];
25
+ };
26
+ current?: {
27
+ hasTenant: boolean;
28
+ isAuthenticated: boolean;
29
+ userType?: UserType;
30
+ permissions?: string[];
31
+ };
32
+ redirectTo: string;
33
+ }
34
+ /**
35
+ * Zone root paths for automatic redirects
36
+ */
37
+ export interface ZoneRoots {
38
+ publicGuest?: string;
39
+ publicUser?: string;
40
+ publicAdmin?: string;
41
+ tenantGuest?: string;
42
+ tenantUser?: string;
43
+ tenantAdmin?: string;
44
+ default?: string;
45
+ }
46
+ /**
47
+ * Default zone roots
48
+ */
49
+ export declare const DEFAULT_ZONE_ROOTS: Required<ZoneRoots>;
50
+ /**
51
+ * Preset zone configuration
52
+ */
53
+ export interface ZonePresetConfig {
54
+ tenant?: AccessMode;
55
+ auth?: AccessMode;
56
+ userType?: UserType | UserType[];
57
+ requiredPermissions?: string[];
58
+ }
59
+ /**
60
+ * Built-in zone presets
61
+ */
62
+ export interface ZonePresets {
63
+ landing: ZonePresetConfig;
64
+ publicOnly: ZonePresetConfig;
65
+ login: ZonePresetConfig;
66
+ guest: ZonePresetConfig;
67
+ authenticated: ZonePresetConfig;
68
+ tenant: ZonePresetConfig;
69
+ tenantOpen: ZonePresetConfig;
70
+ tenantAuth: ZonePresetConfig;
71
+ user: ZonePresetConfig;
72
+ admin: ZonePresetConfig;
73
+ open: ZonePresetConfig;
74
+ }
75
+ /**
76
+ * Default preset configurations
77
+ */
78
+ export declare const DEFAULT_ZONE_PRESETS: ZonePresets;
79
+ /**
80
+ * Return URL storage options
81
+ */
82
+ export type ReturnToStorage = 'url' | 'session' | 'local';
83
+ /**
84
+ * Routing configuration for AuthProvider
85
+ */
86
+ export interface RoutingConfig {
87
+ zoneRoots?: ZoneRoots;
88
+ presets?: Partial<ZonePresets>;
89
+ loadingFallback?: ReactNode;
90
+ accessDeniedFallback?: ReactNode;
91
+ onAccessDenied?: (reason: AccessDeniedReason) => void;
92
+ returnToParam?: string;
93
+ returnToStorage?: ReturnToStorage;
94
+ }
95
+ /**
96
+ * Props for ZoneRoute component
97
+ */
98
+ export interface ZoneRouteProps {
99
+ children: ReactNode;
100
+ preset?: keyof ZonePresets | string;
101
+ tenant?: AccessMode;
102
+ auth?: AccessMode;
103
+ userType?: UserType | UserType[];
104
+ requiredPermissions?: string[];
105
+ requireAllPermissions?: boolean;
106
+ returnTo?: boolean | string;
107
+ onAccessDenied?: (reason: AccessDeniedReason) => void;
108
+ redirectTo?: string;
109
+ loadingFallback?: ReactNode;
110
+ accessDeniedFallback?: ReactNode;
111
+ }
112
+ /**
113
+ * Zone navigation hook return type
114
+ */
115
+ export interface UseZoneNavigationReturn {
116
+ returnToUrl: string | null;
117
+ clearReturnTo: () => void;
118
+ setReturnTo: (url: string) => void;
119
+ navigateToZone: (zone: keyof ZoneRoots) => void;
120
+ getSmartRedirect: () => string;
121
+ }
122
+ //# sourceMappingURL=zoneRouting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoneRouting.d.ts","sourceRoot":"","sources":["../../src/types/zoneRouting.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skylabs-digital/react-identity-access",
3
- "version": "2.12.0",
3
+ "version": "2.13.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"