@k3-universe/react-kit 0.0.29 → 0.0.31

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 (157) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1023 -25
  4. package/dist/kit/builder/auth/components/Can.d.ts +13 -0
  5. package/dist/kit/builder/auth/components/Can.d.ts.map +1 -0
  6. package/dist/kit/builder/auth/components/RequireAuth.d.ts +45 -0
  7. package/dist/kit/builder/auth/components/RequireAuth.d.ts.map +1 -0
  8. package/dist/kit/builder/auth/components/ShowWhenAuthenticated.d.ts +8 -0
  9. package/dist/kit/builder/auth/components/ShowWhenAuthenticated.d.ts.map +1 -0
  10. package/dist/kit/builder/auth/components/ShowWhenError.d.ts +8 -0
  11. package/dist/kit/builder/auth/components/ShowWhenError.d.ts.map +1 -0
  12. package/dist/kit/builder/auth/components/ShowWhenLoading.d.ts +8 -0
  13. package/dist/kit/builder/auth/components/ShowWhenLoading.d.ts.map +1 -0
  14. package/dist/kit/builder/auth/components/ShowWhenUnauthenticated.d.ts +8 -0
  15. package/dist/kit/builder/auth/components/ShowWhenUnauthenticated.d.ts.map +1 -0
  16. package/dist/kit/builder/auth/components/withPermission.d.ts +7 -0
  17. package/dist/kit/builder/auth/components/withPermission.d.ts.map +1 -0
  18. package/dist/kit/builder/auth/hooks/action-hooks.d.ts +18 -0
  19. package/dist/kit/builder/auth/hooks/action-hooks.d.ts.map +1 -0
  20. package/dist/kit/builder/auth/hooks/core-hooks.d.ts +56 -0
  21. package/dist/kit/builder/auth/hooks/core-hooks.d.ts.map +1 -0
  22. package/dist/kit/builder/auth/hooks/index.d.ts +5 -0
  23. package/dist/kit/builder/auth/hooks/index.d.ts.map +1 -0
  24. package/dist/kit/builder/auth/hooks/permission-hooks.d.ts +18 -0
  25. package/dist/kit/builder/auth/hooks/permission-hooks.d.ts.map +1 -0
  26. package/dist/kit/builder/auth/hooks/token-hooks.d.ts +13 -0
  27. package/dist/kit/builder/auth/hooks/token-hooks.d.ts.map +1 -0
  28. package/dist/kit/builder/auth/index.d.ts +14 -8
  29. package/dist/kit/builder/auth/index.d.ts.map +1 -1
  30. package/dist/kit/builder/auth/{AuthProvider.d.ts → providers/AuthProvider.d.ts} +1 -1
  31. package/dist/kit/builder/auth/providers/AuthProvider.d.ts.map +1 -0
  32. package/dist/kit/builder/auth/types/adapter-config.d.ts +31 -0
  33. package/dist/kit/builder/auth/types/adapter-config.d.ts.map +1 -0
  34. package/dist/kit/builder/auth/types/adapter.d.ts +80 -0
  35. package/dist/kit/builder/auth/types/adapter.d.ts.map +1 -0
  36. package/dist/kit/builder/auth/types/core.d.ts +16 -0
  37. package/dist/kit/builder/auth/types/core.d.ts.map +1 -0
  38. package/dist/kit/builder/auth/types/index.d.ts +10 -0
  39. package/dist/kit/builder/auth/types/index.d.ts.map +1 -0
  40. package/dist/kit/builder/auth/types/middleware.d.ts +11 -0
  41. package/dist/kit/builder/auth/types/middleware.d.ts.map +1 -0
  42. package/dist/kit/builder/auth/types/permissions.d.ts +17 -0
  43. package/dist/kit/builder/auth/types/permissions.d.ts.map +1 -0
  44. package/dist/kit/builder/auth/types/state.d.ts +13 -0
  45. package/dist/kit/builder/auth/types/state.d.ts.map +1 -0
  46. package/dist/kit/builder/auth/types/storage.d.ts +20 -0
  47. package/dist/kit/builder/auth/types/storage.d.ts.map +1 -0
  48. package/dist/kit/builder/auth/types/token-manager.d.ts +7 -0
  49. package/dist/kit/builder/auth/types/token-manager.d.ts.map +1 -0
  50. package/dist/kit/builder/auth/types/utils.d.ts +7 -0
  51. package/dist/kit/builder/auth/types/utils.d.ts.map +1 -0
  52. package/dist/kit/builder/auth/{adapter.d.ts → utils/auth-adapter.d.ts} +2 -2
  53. package/dist/kit/builder/auth/utils/auth-adapter.d.ts.map +1 -0
  54. package/dist/kit/builder/auth/utils/client-adapters/apollo-link.d.ts +4 -0
  55. package/dist/kit/builder/auth/utils/client-adapters/apollo-link.d.ts.map +1 -0
  56. package/dist/kit/builder/auth/utils/client-adapters/axios.d.ts +6 -0
  57. package/dist/kit/builder/auth/utils/client-adapters/axios.d.ts.map +1 -0
  58. package/dist/kit/builder/auth/utils/client-adapters/fetch.d.ts +6 -0
  59. package/dist/kit/builder/auth/utils/client-adapters/fetch.d.ts.map +1 -0
  60. package/dist/kit/builder/auth/utils/client-adapters/graphql.d.ts +9 -0
  61. package/dist/kit/builder/auth/utils/client-adapters/graphql.d.ts.map +1 -0
  62. package/dist/kit/builder/auth/utils/client-adapters/index.d.ts +7 -0
  63. package/dist/kit/builder/auth/utils/client-adapters/index.d.ts.map +1 -0
  64. package/dist/kit/builder/auth/utils/client-adapters/rest.d.ts +9 -0
  65. package/dist/kit/builder/auth/utils/client-adapters/rest.d.ts.map +1 -0
  66. package/dist/kit/builder/auth/utils/client-adapters/urql-exchange.d.ts +14 -0
  67. package/dist/kit/builder/auth/utils/client-adapters/urql-exchange.d.ts.map +1 -0
  68. package/dist/kit/builder/auth/{permission-checker.d.ts → utils/permission-checker.d.ts} +1 -1
  69. package/dist/kit/builder/auth/utils/permission-checker.d.ts.map +1 -0
  70. package/dist/kit/builder/auth/utils/storage/browser.d.ts +11 -0
  71. package/dist/kit/builder/auth/utils/storage/browser.d.ts.map +1 -0
  72. package/dist/kit/builder/auth/utils/storage/cookie.d.ts +3 -0
  73. package/dist/kit/builder/auth/utils/storage/cookie.d.ts.map +1 -0
  74. package/dist/kit/builder/auth/utils/storage/encryption.d.ts +7 -0
  75. package/dist/kit/builder/auth/utils/storage/encryption.d.ts.map +1 -0
  76. package/dist/kit/builder/auth/utils/storage/env.d.ts +2 -0
  77. package/dist/kit/builder/auth/utils/storage/env.d.ts.map +1 -0
  78. package/dist/kit/builder/auth/utils/storage/factory.d.ts +6 -0
  79. package/dist/kit/builder/auth/utils/storage/factory.d.ts.map +1 -0
  80. package/dist/kit/builder/auth/utils/storage/index.d.ts +7 -0
  81. package/dist/kit/builder/auth/utils/storage/index.d.ts.map +1 -0
  82. package/dist/kit/builder/auth/utils/storage/memory.d.ts +3 -0
  83. package/dist/kit/builder/auth/utils/storage/memory.d.ts.map +1 -0
  84. package/dist/kit/builder/auth/{token-manager.d.ts → utils/token-manager.d.ts} +1 -1
  85. package/dist/kit/builder/auth/utils/token-manager.d.ts.map +1 -0
  86. package/dist/kit/components/login/Login.d.ts +2 -1
  87. package/dist/kit/components/login/Login.d.ts.map +1 -1
  88. package/dist/kit/layouts/admin/components/AdminLayout.d.ts +2 -1
  89. package/dist/kit/layouts/admin/components/AdminLayout.d.ts.map +1 -1
  90. package/dist/kit/themes/clean-slate.css +28 -4
  91. package/dist/kit/themes/default.css +28 -4
  92. package/dist/kit/themes/minimal-modern.css +28 -4
  93. package/dist/kit/themes/spotify.css +28 -4
  94. package/package.json +1 -1
  95. package/src/index.ts +1 -0
  96. package/src/kit/builder/auth/components/Can.tsx +27 -0
  97. package/src/kit/builder/auth/components/RequireAuth.tsx +78 -0
  98. package/src/kit/builder/auth/components/ShowWhenAuthenticated.tsx +10 -0
  99. package/src/kit/builder/auth/components/ShowWhenError.tsx +10 -0
  100. package/src/kit/builder/auth/components/ShowWhenLoading.tsx +10 -0
  101. package/src/kit/builder/auth/components/ShowWhenUnauthenticated.tsx +10 -0
  102. package/src/kit/builder/auth/components/withPermission.tsx +23 -0
  103. package/src/kit/builder/auth/hooks/action-hooks.ts +34 -0
  104. package/src/kit/builder/auth/hooks/core-hooks.ts +65 -0
  105. package/src/kit/builder/auth/hooks/index.ts +4 -0
  106. package/src/kit/builder/auth/hooks/permission-hooks.ts +43 -0
  107. package/src/kit/builder/auth/hooks/token-hooks.ts +25 -0
  108. package/src/kit/builder/auth/index.ts +16 -18
  109. package/src/kit/builder/auth/{AuthProvider.tsx → providers/AuthProvider.tsx} +1 -1
  110. package/src/kit/builder/auth/types/adapter-config.ts +44 -0
  111. package/src/kit/builder/auth/types/adapter.ts +132 -0
  112. package/src/kit/builder/auth/types/core.ts +27 -0
  113. package/src/kit/builder/auth/types/index.ts +9 -0
  114. package/src/kit/builder/auth/types/middleware.ts +20 -0
  115. package/src/kit/builder/auth/types/permissions.ts +23 -0
  116. package/src/kit/builder/auth/types/state.ts +16 -0
  117. package/src/kit/builder/auth/types/storage.ts +21 -0
  118. package/src/kit/builder/auth/types/token-manager.ts +9 -0
  119. package/src/kit/builder/auth/types/utils.ts +55 -0
  120. package/src/kit/builder/auth/{adapter.ts → utils/auth-adapter.ts} +3 -2
  121. package/src/kit/builder/auth/utils/client-adapters/apollo-link.ts +30 -0
  122. package/src/kit/builder/auth/utils/client-adapters/axios.ts +61 -0
  123. package/src/kit/builder/auth/utils/client-adapters/fetch.ts +48 -0
  124. package/src/kit/builder/auth/utils/client-adapters/graphql.ts +60 -0
  125. package/src/kit/builder/auth/utils/client-adapters/index.ts +6 -0
  126. package/src/kit/builder/auth/utils/client-adapters/rest.ts +60 -0
  127. package/src/kit/builder/auth/utils/client-adapters/urql-exchange.ts +76 -0
  128. package/src/kit/builder/auth/{permission-checker.ts → utils/permission-checker.ts} +1 -1
  129. package/src/kit/builder/auth/utils/storage/browser.ts +99 -0
  130. package/src/kit/builder/auth/utils/storage/cookie.ts +116 -0
  131. package/src/kit/builder/auth/utils/storage/encryption.ts +80 -0
  132. package/src/kit/builder/auth/utils/storage/env.ts +2 -0
  133. package/src/kit/builder/auth/utils/storage/factory.ts +37 -0
  134. package/src/kit/builder/auth/utils/storage/index.ts +6 -0
  135. package/src/kit/builder/auth/utils/storage/memory.ts +15 -0
  136. package/src/kit/builder/auth/{token-manager.ts → utils/token-manager.ts} +1 -1
  137. package/src/kit/components/login/Login.tsx +36 -21
  138. package/src/kit/layouts/admin/components/AdminLayout.tsx +24 -17
  139. package/dist/kit/builder/auth/AuthProvider.d.ts.map +0 -1
  140. package/dist/kit/builder/auth/adapter.d.ts.map +0 -1
  141. package/dist/kit/builder/auth/client-adapters.d.ts +0 -149
  142. package/dist/kit/builder/auth/client-adapters.d.ts.map +0 -1
  143. package/dist/kit/builder/auth/components.d.ts +0 -119
  144. package/dist/kit/builder/auth/components.d.ts.map +0 -1
  145. package/dist/kit/builder/auth/hooks.d.ts +0 -158
  146. package/dist/kit/builder/auth/hooks.d.ts.map +0 -1
  147. package/dist/kit/builder/auth/permission-checker.d.ts.map +0 -1
  148. package/dist/kit/builder/auth/storage.d.ts +0 -17
  149. package/dist/kit/builder/auth/storage.d.ts.map +0 -1
  150. package/dist/kit/builder/auth/token-manager.d.ts.map +0 -1
  151. package/dist/kit/builder/auth/types.d.ts +0 -183
  152. package/dist/kit/builder/auth/types.d.ts.map +0 -1
  153. package/src/kit/builder/auth/client-adapters.ts +0 -398
  154. package/src/kit/builder/auth/components.tsx +0 -221
  155. package/src/kit/builder/auth/hooks.ts +0 -237
  156. package/src/kit/builder/auth/storage.ts +0 -366
  157. package/src/kit/builder/auth/types.ts +0 -393
@@ -1,158 +0,0 @@
1
- import { AuthSession, PermissionPolicy, PermissionRule, WithPermissionOptions } from './types';
2
- /**
3
- * Hook to access the entire auth context
4
- */
5
- export declare function useAuth(): {
6
- state: import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>;
7
- status: import('./types').AuthStatus;
8
- session: AuthSession<unknown, string, string> | null;
9
- user: unknown;
10
- roles: string[];
11
- permissions: string[];
12
- error?: unknown;
13
- login?: ((credentials: unknown) => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>) | undefined;
14
- logout: () => Promise<void>;
15
- refresh: () => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>;
16
- setSession: (session: AuthSession<unknown, string, string> | null) => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>;
17
- hasRole: (target: string | string[], options?: {
18
- requireAll?: boolean;
19
- }) => boolean;
20
- hasPermission: (target: string | string[] | PermissionPolicy<string>, options?: {
21
- requireAll?: boolean;
22
- }) => boolean;
23
- can: (rule: PermissionRule<string, string>) => boolean;
24
- getToken: () => string | null;
25
- isTokenExpired: () => boolean;
26
- getTimeUntilExpiry: () => number;
27
- };
28
- /**
29
- * Hook to get the current auth status
30
- */
31
- export declare function useAuthStatus(): import('./types').AuthStatus;
32
- /**
33
- * Hook to check if user is authenticated
34
- */
35
- export declare function useIsAuthenticated(): boolean;
36
- /**
37
- * Hook to get the current session
38
- */
39
- export declare function useAuthSession<TSession extends AuthSession>(): TSession | null;
40
- /**
41
- * Hook to get the current user
42
- */
43
- export declare function useAuthUser<TUser>(): TUser | null;
44
- /**
45
- * Hook to get user roles
46
- */
47
- export declare function useAuthRoles<TRole extends string = string>(): TRole[];
48
- /**
49
- * Hook to get user permissions
50
- */
51
- export declare function useAuthPermissions<TPermission extends string = string>(): TPermission[];
52
- /**
53
- * Hook to get authentication error
54
- */
55
- export declare function useAuthError(): unknown;
56
- /**
57
- * Hook to check if user has specific permission(s)
58
- * Supports permission policies with AND/OR operators
59
- *
60
- * @example
61
- * ```tsx
62
- * // Check single permission
63
- * const canEdit = usePermission('post:edit');
64
- *
65
- * // Check multiple permissions (all required by default)
66
- * const canManage = usePermission(['post:edit', 'post:delete']);
67
- *
68
- * // Check multiple permissions (any one required)
69
- * const canModify = usePermission(['post:edit', 'post:delete'], { requireAll: false });
70
- *
71
- * // Check with policy
72
- * const canAccess = usePermission({
73
- * operator: 'OR',
74
- * permissions: ['admin:access', 'moderator:access']
75
- * });
76
- * ```
77
- */
78
- export declare function usePermission<TPermission extends string = string>(permission: TPermission | TPermission[] | PermissionPolicy<TPermission>, options?: {
79
- requireAll?: boolean;
80
- }): boolean;
81
- /**
82
- * Hook to check if user has specific role(s)
83
- *
84
- * @example
85
- * ```tsx
86
- * // Check single role
87
- * const isAdmin = useRole('admin');
88
- *
89
- * // Check multiple roles (all required by default)
90
- * const isSuperAdmin = useRole(['admin', 'super']);
91
- *
92
- * // Check multiple roles (any one required)
93
- * const isStaff = useRole(['admin', 'moderator'], { requireAll: false });
94
- * ```
95
- */
96
- export declare function useRole<TRole extends string = string>(roles: TRole | TRole[], options?: {
97
- requireAll?: boolean;
98
- }): boolean;
99
- /**
100
- * Hook to check complex permission rules
101
- * Combines role and permission checks with flexible logic
102
- *
103
- * @example
104
- * ```tsx
105
- * // Check if user has admin role AND edit permission
106
- * const canAdminEdit = useCan({
107
- * roles: 'admin',
108
- * permissions: 'post:edit',
109
- * requireAll: true
110
- * });
111
- *
112
- * // Check if user has admin role OR edit permission
113
- * const canAccess = useCan({
114
- * roles: 'admin',
115
- * permissions: 'post:edit',
116
- * requireAll: false
117
- * });
118
- *
119
- * // Complex policy
120
- * const canManage = useCan({
121
- * roles: ['admin', 'moderator'],
122
- * permissions: {
123
- * operator: 'OR',
124
- * permissions: ['post:edit', 'post:delete']
125
- * }
126
- * });
127
- * ```
128
- */
129
- export declare function useCan<TRole extends string = string, TPermission extends string = string>(rule: WithPermissionOptions<TRole, TPermission> | PermissionRule<TRole, TPermission>): boolean;
130
- /**
131
- * Hook to get the current auth token
132
- */
133
- export declare function useAuthToken(): string | null;
134
- /**
135
- * Hook to check if token is expired
136
- */
137
- export declare function useIsTokenExpired(): boolean;
138
- /**
139
- * Hook to get time until token expiry in milliseconds
140
- */
141
- export declare function useTimeUntilExpiry(): number;
142
- /**
143
- * Hook to get the login function
144
- */
145
- export declare function useLogin<TCredentials = unknown>(): ((credentials: TCredentials) => Promise<unknown>) | undefined;
146
- /**
147
- * Hook to get the logout function
148
- */
149
- export declare function useLogout(): () => Promise<void>;
150
- /**
151
- * Hook to get the refresh function
152
- */
153
- export declare function useRefresh(): () => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>;
154
- /**
155
- * Hook to get the setSession function
156
- */
157
- export declare function useSetSession<TSession extends AuthSession>(): (session: TSession | null) => Promise<unknown>;
158
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAOjB;;GAEG;AACH,wBAAgB,OAAO;;;;;;;;;;;;;kBA8NulF,CAAC;;;kBAAmJ,CAAC;;;;;;EA5NlwF;AAED;;GAEG;AACH,wBAAgB,aAAa,iCAG5B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,YAGjC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,WAAW,KAEvC,QAAQ,GAAG,IAAI,CAClC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,KAEhB,KAAK,GAAG,IAAI,CAC5B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,KAExC,KAAK,EAAE,CACxB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,KAE9C,WAAW,EAAE,CACpC;AAED;;GAEG;AACH,wBAAgB,YAAY,YAG3B;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,EAC/D,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,EACvE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,WAInC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACnD,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,EACtB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,WAInC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,MAAM,CACpB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EAEnC,IAAI,EACA,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,GACzC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,WAIvC;AAMD;;GAEG;AACH,wBAAgB,YAAY,kBAG3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,YAGhC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,WAGjC;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,YAAY,GAAG,OAAO,KAE7B,CAAC,CAAC,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAC9E;AAED;;GAEG;AACH,wBAAgB,SAAS,wBAGxB;AAED;;GAEG;AACH,wBAAgB,UAAU,qHAGzB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,SAAS,WAAW,KAEnC,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CACpE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,WAAW,EAAE,CAAC,EAAE,EAChB,SAAS,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,CAAC,EAAE,CAsBL;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAC3B,CAAC,EAAE,CAsBL;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,eAAe,EAAE,CAAC,EAAE,EACpB,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAsBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,SAAS,EAAE,CAAC,EAAE,EACd,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EACf,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EAEnC,SAAS,EAAE,KAAK,EAAE,EAClB,eAAe,EAAE,WAAW,EAAE,EAC9B,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,GACvC,OAAO,CAkBT"}
@@ -1,17 +0,0 @@
1
- import { AuthStorage, StorageOptions } from './types';
2
- export declare const createMemoryStorage: <T>() => AuthStorage<T>;
3
- export declare const createCookieStorage: <T>(options: StorageOptions) => AuthStorage<T>;
4
- export type BrowserStorageOptions<T> = {
5
- key: string;
6
- serialize?: (value: T | null) => Promise<string | null> | string | null;
7
- deserialize?: (value: string | null) => Promise<T | null> | T | null;
8
- storage?: Storage;
9
- encrypt?: boolean;
10
- encryptionKey?: string;
11
- };
12
- export declare const createBrowserStorage: <T>(options: BrowserStorageOptions<T>) => AuthStorage<T>;
13
- /**
14
- * Creates appropriate storage based on options
15
- */
16
- export declare function createStorage<T>(options?: StorageOptions): AuthStorage<T>;
17
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAS3D,eAAO,MAAM,mBAAmB,GAAI,CAAC,OAAK,WAAW,CAAC,CAAC,CAYtD,CAAC;AAmGF,eAAO,MAAM,mBAAmB,GAAI,CAAC,EACnC,SAAS,cAAc,KACtB,WAAW,CAAC,CAAC,CA4Gf,CAAC;AAMF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,CAAC,EACpC,SAAS,qBAAqB,CAAC,CAAC,CAAC,KAChC,WAAW,CAAC,CAAC,CAkFf,CAAC;AAMF;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CA2B7E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/token-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,YAAY,CA8Cf"}
@@ -1,183 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export type AuthStatus = 'idle' | 'loading' | 'authenticated' | 'unauthenticated' | 'error';
3
- export type TokenType = 'bearer' | 'jwt' | 'custom';
4
- export type RefreshStrategy = 'auto' | 'manual' | 'sliding';
5
- export type AuthSession<TUser = unknown, TRole = string, TPermission = string> = {
6
- user?: TUser | null;
7
- accessToken?: string | null;
8
- refreshToken?: string | null;
9
- tokenType?: TokenType;
10
- roles?: TRole[] | null;
11
- permissions?: TPermission[] | null;
12
- expiresAt?: number | null;
13
- refreshExpiresAt?: number | null;
14
- issuedAt?: number | null;
15
- meta?: Record<string, unknown> | null;
16
- };
17
- export type PermissionOperator = 'AND' | 'OR';
18
- export type PermissionPolicy<TPermission extends string = string> = {
19
- operator?: PermissionOperator;
20
- permissions: TPermission[];
21
- };
22
- export type PermissionRule<TRole extends string = string, TPermission extends string = string> = {
23
- roles?: TRole | TRole[];
24
- permissions?: TPermission | TPermission[] | PermissionPolicy<TPermission>;
25
- requireAll?: boolean;
26
- };
27
- export type PermissionHierarchy<TPermission extends string = string> = {
28
- [key in TPermission]?: TPermission[];
29
- };
30
- export type RoleHierarchy<TRole extends string = string> = {
31
- [key in TRole]?: TRole[];
32
- };
33
- export type AuthAdapterState<TSession, TUser, TRole, TPermission> = {
34
- status: AuthStatus;
35
- session: TSession | null;
36
- user: TUser | null;
37
- roles: TRole[];
38
- permissions: TPermission[];
39
- error?: unknown;
40
- lastRefresh?: number;
41
- tokenExpiresIn?: number;
42
- };
43
- export type AuthAdapterSubscriber<TSession, TUser, TRole, TPermission> = (state: AuthAdapterState<TSession, TUser, TRole, TPermission>) => void;
44
- export type AuthStorage<TSession> = {
45
- get: () => Promise<TSession | null> | TSession | null;
46
- set: (value: TSession | null) => Promise<void> | void;
47
- clear: () => Promise<void> | void;
48
- };
49
- export type StorageType = 'local' | 'session' | 'cookie' | 'memory';
50
- export type StorageOptions = {
51
- key?: string;
52
- encrypt?: boolean;
53
- encryptionKey?: string;
54
- storage?: StorageType;
55
- cookieOptions?: {
56
- domain?: string;
57
- path?: string;
58
- secure?: boolean;
59
- sameSite?: 'strict' | 'lax' | 'none';
60
- maxAge?: number;
61
- };
62
- };
63
- export type AuthMiddleware<TSession = unknown, TUser = unknown, TRole extends string = string, TPermission extends string = string> = {
64
- onBeforeLogin?: (credentials: unknown) => Promise<void> | void;
65
- onAfterLogin?: (state: AuthAdapterState<TSession, TUser, TRole, TPermission>) => Promise<void> | void;
66
- onBeforeLogout?: () => Promise<void> | void;
67
- onAfterLogout?: () => Promise<void> | void;
68
- onRefresh?: (state: AuthAdapterState<TSession, TUser, TRole, TPermission>) => Promise<void> | void;
69
- onError?: (error: unknown) => Promise<void> | void;
70
- onSessionExpired?: () => Promise<void> | void;
71
- };
72
- export type TokenManager = {
73
- isExpired: (expiresAt?: number | null) => boolean;
74
- shouldRefresh: (expiresAt?: number | null, threshold?: number) => boolean;
75
- getTimeUntilExpiry: (expiresAt?: number | null) => number;
76
- scheduleRefresh?: (callback: () => void, expiresAt?: number | null) => () => void;
77
- };
78
- export type AuthAdapterConfig<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
79
- storage?: AuthStorage<TSession>;
80
- loadSession?: () => Promise<TSession | null>;
81
- login?: (credentials: TCredentials) => Promise<TSession>;
82
- logout?: (session: TSession | null) => Promise<void> | void;
83
- refresh?: (session: TSession) => Promise<TSession>;
84
- resolveUser?: (session: TSession | null) => TUser | null;
85
- resolveRoles?: (session: TSession | null) => TRole[];
86
- resolvePermissions?: (session: TSession | null) => TPermission[];
87
- shouldRefresh?: (session: TSession) => boolean;
88
- onStateChange?: (state: AuthAdapterState<TSession, TUser, TRole, TPermission>) => void;
89
- refreshStrategy?: RefreshStrategy;
90
- refreshThreshold?: number;
91
- autoRefresh?: boolean;
92
- permissionHierarchy?: PermissionHierarchy<TPermission>;
93
- roleHierarchy?: RoleHierarchy<TRole>;
94
- middleware?: AuthMiddleware<TSession, TUser, TRole, TPermission>[];
95
- tokenManager?: TokenManager;
96
- retryConfig?: {
97
- maxRetries?: number;
98
- retryDelay?: number;
99
- retryOn?: (error: unknown) => boolean;
100
- };
101
- };
102
- export type AuthAdapter<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
103
- getState: () => AuthAdapterState<TSession, TUser, TRole, TPermission>;
104
- subscribe: (listener: AuthAdapterSubscriber<TSession, TUser, TRole, TPermission>) => () => void;
105
- sync: () => Promise<AuthAdapterState<TSession, TUser, TRole, TPermission>>;
106
- login?: (credentials: TCredentials) => Promise<AuthAdapterState<TSession, TUser, TRole, TPermission>>;
107
- logout: () => Promise<void>;
108
- refresh: () => Promise<AuthAdapterState<TSession, TUser, TRole, TPermission>>;
109
- setSession: (session: TSession | null) => Promise<AuthAdapterState<TSession, TUser, TRole, TPermission>>;
110
- hasRole: (target: TRole | TRole[], options?: {
111
- requireAll?: boolean;
112
- }) => boolean;
113
- hasPermission: (target: TPermission | TPermission[] | PermissionPolicy<TPermission>, options?: {
114
- requireAll?: boolean;
115
- }) => boolean;
116
- can: (rule: PermissionRule<TRole, TPermission>) => boolean;
117
- getToken: () => string | null;
118
- isTokenExpired: () => boolean;
119
- getTimeUntilExpiry: () => number;
120
- scheduleAutoRefresh?: () => () => void;
121
- };
122
- export type AuthContextValue<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
123
- state: AuthAdapterState<TSession, TUser, TRole, TPermission>;
124
- status: AuthStatus;
125
- session: TSession | null;
126
- user: TUser | null;
127
- roles: TRole[];
128
- permissions: TPermission[];
129
- error?: unknown;
130
- login?: (credentials: TCredentials) => Promise<AuthAdapterState<TSession, TUser, TRole, TPermission>>;
131
- logout: () => Promise<void>;
132
- refresh: () => Promise<AuthAdapterState<TSession, TUser, TRole, TPermission>>;
133
- setSession: (session: TSession | null) => Promise<AuthAdapterState<TSession, TUser, TRole, TPermission>>;
134
- hasRole: (target: TRole | TRole[], options?: {
135
- requireAll?: boolean;
136
- }) => boolean;
137
- hasPermission: (target: TPermission | TPermission[] | PermissionPolicy<TPermission>, options?: {
138
- requireAll?: boolean;
139
- }) => boolean;
140
- can: (rule: PermissionRule<TRole, TPermission>) => boolean;
141
- getToken: () => string | null;
142
- isTokenExpired: () => boolean;
143
- getTimeUntilExpiry: () => number;
144
- };
145
- export type RequireAuthProps<TRole extends string = string, TPermission extends string = string> = {
146
- children: ReactNode;
147
- fallback?: ReactNode;
148
- loadingFallback?: ReactNode;
149
- roles?: TRole | TRole[];
150
- permissions?: TPermission | TPermission[] | PermissionPolicy<TPermission>;
151
- requireAll?: boolean;
152
- };
153
- export type CanProps<TRole extends string = string, TPermission extends string = string> = {
154
- children: ReactNode;
155
- fallback?: ReactNode;
156
- roles?: TRole | TRole[];
157
- permissions?: TPermission | TPermission[] | PermissionPolicy<TPermission>;
158
- requireAll?: boolean;
159
- };
160
- export type WithPermissionOptions<TRole extends string = string, TPermission extends string = string> = {
161
- roles?: TRole | TRole[];
162
- permissions?: TPermission | TPermission[] | PermissionPolicy<TPermission>;
163
- requireAll?: boolean;
164
- };
165
- export type GraphQLAuthClient<TSession = unknown, TCredentials = unknown> = {
166
- login: (credentials: TCredentials) => Promise<TSession>;
167
- logout?: () => Promise<void>;
168
- refresh?: (refreshToken: string) => Promise<TSession>;
169
- getCurrentUser?: () => Promise<TSession>;
170
- };
171
- export type RESTAuthClient<TSession = unknown, TCredentials = unknown> = {
172
- login: (credentials: TCredentials) => Promise<TSession>;
173
- logout?: () => Promise<void>;
174
- refresh?: (refreshToken: string) => Promise<TSession>;
175
- getCurrentUser?: () => Promise<TSession>;
176
- };
177
- export type ClientAdapter<TSession = unknown, TCredentials = unknown> = GraphQLAuthClient<TSession, TCredentials> | RESTAuthClient<TSession, TCredentials>;
178
- export type InferSession<T> = T extends AuthAdapter<infer _User, infer _Role extends string, infer _Permission extends string, infer TSession, infer _Credentials> ? TSession : never;
179
- export type InferUser<T> = T extends AuthAdapter<infer TUser, infer _Role extends string, infer _Permission extends string, infer _Session, infer _Credentials> ? TUser : never;
180
- export type InferRole<T> = T extends AuthAdapter<infer _User, infer TRole extends string, infer _Permission extends string, infer _Session, infer _Credentials> ? TRole : never;
181
- export type InferPermission<T> = T extends AuthAdapter<infer _User, infer _Role extends string, infer TPermission extends string, infer _Session, infer _Credentials> ? TPermission : never;
182
- export type InferCredentials<T> = T extends AuthAdapter<infer _User, infer _Role extends string, infer _Permission extends string, infer _Session, infer TCredentials> ? TCredentials : never;
183
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/types.ts"],"names":[],"mappings":"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"}