@k3-universe/react-kit 0.0.29 → 0.0.30

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 (152) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1013 -21
  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.map +1 -1
  87. package/dist/kit/layouts/admin/components/AdminLayout.d.ts +2 -1
  88. package/dist/kit/layouts/admin/components/AdminLayout.d.ts.map +1 -1
  89. package/package.json +1 -1
  90. package/src/index.ts +1 -0
  91. package/src/kit/builder/auth/components/Can.tsx +27 -0
  92. package/src/kit/builder/auth/components/RequireAuth.tsx +78 -0
  93. package/src/kit/builder/auth/components/ShowWhenAuthenticated.tsx +10 -0
  94. package/src/kit/builder/auth/components/ShowWhenError.tsx +10 -0
  95. package/src/kit/builder/auth/components/ShowWhenLoading.tsx +10 -0
  96. package/src/kit/builder/auth/components/ShowWhenUnauthenticated.tsx +10 -0
  97. package/src/kit/builder/auth/components/withPermission.tsx +23 -0
  98. package/src/kit/builder/auth/hooks/action-hooks.ts +34 -0
  99. package/src/kit/builder/auth/hooks/core-hooks.ts +65 -0
  100. package/src/kit/builder/auth/hooks/index.ts +4 -0
  101. package/src/kit/builder/auth/hooks/permission-hooks.ts +43 -0
  102. package/src/kit/builder/auth/hooks/token-hooks.ts +25 -0
  103. package/src/kit/builder/auth/index.ts +16 -18
  104. package/src/kit/builder/auth/{AuthProvider.tsx → providers/AuthProvider.tsx} +1 -1
  105. package/src/kit/builder/auth/types/adapter-config.ts +44 -0
  106. package/src/kit/builder/auth/types/adapter.ts +132 -0
  107. package/src/kit/builder/auth/types/core.ts +27 -0
  108. package/src/kit/builder/auth/types/index.ts +9 -0
  109. package/src/kit/builder/auth/types/middleware.ts +20 -0
  110. package/src/kit/builder/auth/types/permissions.ts +23 -0
  111. package/src/kit/builder/auth/types/state.ts +16 -0
  112. package/src/kit/builder/auth/types/storage.ts +21 -0
  113. package/src/kit/builder/auth/types/token-manager.ts +9 -0
  114. package/src/kit/builder/auth/types/utils.ts +55 -0
  115. package/src/kit/builder/auth/{adapter.ts → utils/auth-adapter.ts} +3 -2
  116. package/src/kit/builder/auth/utils/client-adapters/apollo-link.ts +30 -0
  117. package/src/kit/builder/auth/utils/client-adapters/axios.ts +61 -0
  118. package/src/kit/builder/auth/utils/client-adapters/fetch.ts +48 -0
  119. package/src/kit/builder/auth/utils/client-adapters/graphql.ts +60 -0
  120. package/src/kit/builder/auth/utils/client-adapters/index.ts +6 -0
  121. package/src/kit/builder/auth/utils/client-adapters/rest.ts +60 -0
  122. package/src/kit/builder/auth/utils/client-adapters/urql-exchange.ts +76 -0
  123. package/src/kit/builder/auth/{permission-checker.ts → utils/permission-checker.ts} +1 -1
  124. package/src/kit/builder/auth/utils/storage/browser.ts +99 -0
  125. package/src/kit/builder/auth/utils/storage/cookie.ts +116 -0
  126. package/src/kit/builder/auth/utils/storage/encryption.ts +80 -0
  127. package/src/kit/builder/auth/utils/storage/env.ts +2 -0
  128. package/src/kit/builder/auth/utils/storage/factory.ts +37 -0
  129. package/src/kit/builder/auth/utils/storage/index.ts +6 -0
  130. package/src/kit/builder/auth/utils/storage/memory.ts +15 -0
  131. package/src/kit/builder/auth/{token-manager.ts → utils/token-manager.ts} +1 -1
  132. package/src/kit/components/login/Login.tsx +9 -7
  133. package/src/kit/layouts/admin/components/AdminLayout.tsx +24 -17
  134. package/dist/kit/builder/auth/AuthProvider.d.ts.map +0 -1
  135. package/dist/kit/builder/auth/adapter.d.ts.map +0 -1
  136. package/dist/kit/builder/auth/client-adapters.d.ts +0 -149
  137. package/dist/kit/builder/auth/client-adapters.d.ts.map +0 -1
  138. package/dist/kit/builder/auth/components.d.ts +0 -119
  139. package/dist/kit/builder/auth/components.d.ts.map +0 -1
  140. package/dist/kit/builder/auth/hooks.d.ts +0 -158
  141. package/dist/kit/builder/auth/hooks.d.ts.map +0 -1
  142. package/dist/kit/builder/auth/permission-checker.d.ts.map +0 -1
  143. package/dist/kit/builder/auth/storage.d.ts +0 -17
  144. package/dist/kit/builder/auth/storage.d.ts.map +0 -1
  145. package/dist/kit/builder/auth/token-manager.d.ts.map +0 -1
  146. package/dist/kit/builder/auth/types.d.ts +0 -183
  147. package/dist/kit/builder/auth/types.d.ts.map +0 -1
  148. package/src/kit/builder/auth/client-adapters.ts +0 -398
  149. package/src/kit/builder/auth/components.tsx +0 -221
  150. package/src/kit/builder/auth/hooks.ts +0 -237
  151. package/src/kit/builder/auth/storage.ts +0 -366
  152. package/src/kit/builder/auth/types.ts +0 -393
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/auth/types/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CACjD,MAAM,KAAK,EACX,MAAM,KAAK,SAAS,MAAM,EAC1B,MAAM,WAAW,SAAS,MAAM,EAChC,MAAM,QAAQ,EACd,MAAM,YAAY,CACnB,GACG,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAC9C,MAAM,KAAK,EACX,MAAM,KAAK,SAAS,MAAM,EAC1B,MAAM,WAAW,SAAS,MAAM,EAChC,MAAM,QAAQ,EACd,MAAM,YAAY,CACnB,GACG,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAC9C,MAAM,KAAK,EACX,MAAM,KAAK,SAAS,MAAM,EAC1B,MAAM,WAAW,SAAS,MAAM,EAChC,MAAM,QAAQ,EACd,MAAM,YAAY,CACnB,GACG,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CACpD,MAAM,KAAK,EACX,MAAM,KAAK,SAAS,MAAM,EAC1B,MAAM,WAAW,SAAS,MAAM,EAChC,MAAM,QAAQ,EACd,MAAM,YAAY,CACnB,GACG,WAAW,GACX,KAAK,CAAC;AAEV,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CACrD,MAAM,KAAK,EACX,MAAM,KAAK,SAAS,MAAM,EAC1B,MAAM,WAAW,SAAS,MAAM,EAChC,MAAM,QAAQ,EACd,MAAM,YAAY,CACnB,GACG,YAAY,GACZ,KAAK,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AuthAdapter, AuthAdapterConfig, AuthSession } from './types';
1
+ import { AuthAdapter, AuthAdapterConfig, AuthSession } from '../types';
2
2
  /**
3
3
  * Enhanced Authentication Adapter
4
4
  *
@@ -11,4 +11,4 @@ import { AuthAdapter, AuthAdapterConfig, AuthSession } from './types';
11
11
  * - Session persistence
12
12
  */
13
13
  export declare function createAuthAdapter<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown>(config: AuthAdapterConfig<TUser, TRole, TPermission, TSession, TCredentials>): AuthAdapter<TUser, TRole, TPermission, TSession, TCredentials>;
14
- //# sourceMappingURL=adapter.d.ts.map
14
+ //# sourceMappingURL=auth-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/auth/utils/auth-adapter.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAGjB,WAAW,EAIZ,MAAM,UAAU,CAAC;AAMlB;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,EAEtB,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,GAC3E,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAqYhE"}
@@ -0,0 +1,4 @@
1
+ export declare function createApolloAuthLink(getToken: () => string | null, options?: {
2
+ tokenType?: string;
3
+ }): (ApolloLink: any) => any;
4
+ //# sourceMappingURL=apollo-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apollo-link.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/client-adapters/apollo-link.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,IAOO,YAAY,GAAG,SAkBxB"}
@@ -0,0 +1,6 @@
1
+ export declare function createAxiosAuthInterceptor(axiosInstance: any, getToken: () => string | null, options?: {
2
+ tokenType?: string;
3
+ onTokenExpired?: () => void;
4
+ refreshToken?: () => Promise<void>;
5
+ }): void;
6
+ //# sourceMappingURL=axios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/client-adapters/axios.ts"],"names":[],"mappings":"AAAA,wBAAgB,0BAA0B,CAExC,aAAa,EAAE,GAAG,EAClB,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC,QAoDF"}
@@ -0,0 +1,6 @@
1
+ export declare function createAuthFetch(getToken: () => string | null, options?: {
2
+ tokenType?: string;
3
+ onTokenExpired?: () => void;
4
+ refreshToken?: () => Promise<void>;
5
+ }): typeof fetch;
6
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/client-adapters/fetch.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC,GACA,OAAO,KAAK,CAwCd"}
@@ -0,0 +1,9 @@
1
+ import { AuthAdapterConfig, AuthSession, GraphQLAuthClient } from '../../types';
2
+ export type GraphQLClientAdapterOptions<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
3
+ client: GraphQLAuthClient<TSession, TCredentials>;
4
+ resolveUser?: (session: TSession | null) => TUser | null;
5
+ resolveRoles?: (session: TSession | null) => TRole[];
6
+ resolvePermissions?: (session: TSession | null) => TPermission[];
7
+ };
8
+ export declare function createGraphQLAuthAdapter<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown>(options: GraphQLClientAdapterOptions<TUser, TRole, TPermission, TSession, TCredentials>): Partial<AuthAdapterConfig<TUser, TRole, TPermission, TSession, TCredentials>>;
9
+ //# sourceMappingURL=graphql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/client-adapters/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpF,MAAM,MAAM,2BAA2B,CACrC,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,IACpB;IACF,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACjD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,CAAA;IACxD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,KAAK,EAAE,CAAA;IACpD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,WAAW,EAAE,CAAA;CACjE,CAAA;AAED,wBAAgB,wBAAwB,CACtC,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,EAEtB,OAAO,EAAE,2BAA2B,CAClC,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,YAAY,CACb,GACA,OAAO,CACR,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CACrE,CAoBA"}
@@ -0,0 +1,7 @@
1
+ export * from './graphql';
2
+ export * from './rest';
3
+ export * from './axios';
4
+ export * from './fetch';
5
+ export * from './apollo-link';
6
+ export * from './urql-exchange';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/client-adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { AuthAdapterConfig, AuthSession, RESTAuthClient } from '../../types';
2
+ export type RESTClientAdapterOptions<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
3
+ client: RESTAuthClient<TSession, TCredentials>;
4
+ resolveUser?: (session: TSession | null) => TUser | null;
5
+ resolveRoles?: (session: TSession | null) => TRole[];
6
+ resolvePermissions?: (session: TSession | null) => TPermission[];
7
+ };
8
+ export declare function createRESTAuthAdapter<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown>(options: RESTClientAdapterOptions<TUser, TRole, TPermission, TSession, TCredentials>): Partial<AuthAdapterConfig<TUser, TRole, TPermission, TSession, TCredentials>>;
9
+ //# sourceMappingURL=rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/client-adapters/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjF,MAAM,MAAM,wBAAwB,CAClC,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,IACpB;IACF,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC9C,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,CAAA;IACxD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,KAAK,EAAE,CAAA;IACpD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,WAAW,EAAE,CAAA;CACjE,CAAA;AAED,wBAAgB,qBAAqB,CACnC,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,EAEtB,OAAO,EAAE,wBAAwB,CAC/B,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,YAAY,CACb,GACA,OAAO,CACR,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CACrE,CAoBA"}
@@ -0,0 +1,14 @@
1
+ export declare function createUrqlAuthExchange(getToken: () => string | null, options?: {
2
+ tokenType?: string;
3
+ refreshToken?: () => Promise<void>;
4
+ onTokenExpired?: () => void;
5
+ willAuthError?: (params: {
6
+ authState: any;
7
+ operation: any;
8
+ }) => boolean;
9
+ didAuthError?: (params: {
10
+ error: any;
11
+ operation: any;
12
+ }) => boolean;
13
+ }): (authExchange: any) => any;
14
+ //# sourceMappingURL=urql-exchange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urql-exchange.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/client-adapters/urql-exchange.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAE3B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,GAAG,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAA;IAEvE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAA;CACnE,IAMO,cAAc,GAAG,SA2D1B"}
@@ -1,4 +1,4 @@
1
- import { PermissionHierarchy, PermissionPolicy, PermissionRule, RoleHierarchy } from './types';
1
+ import { PermissionHierarchy, PermissionPolicy, PermissionRule, RoleHierarchy } from '../types';
2
2
  /**
3
3
  * Expands permissions based on hierarchy
4
4
  * e.g., if user has 'admin' and hierarchy defines admin: ['read', 'write'],
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/auth/utils/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,UAAU,CAAC;AAElB;;;;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"}
@@ -0,0 +1,11 @@
1
+ import { AuthStorage } from '../../types';
2
+ export type BrowserStorageOptions<T> = {
3
+ key: string;
4
+ serialize?: (value: T | null) => Promise<string | null> | string | null;
5
+ deserialize?: (value: string | null) => Promise<T | null> | T | null;
6
+ storage?: Storage;
7
+ encrypt?: boolean;
8
+ encryptionKey?: string;
9
+ };
10
+ export declare const createBrowserStorage: <T>(options: BrowserStorageOptions<T>) => AuthStorage<T>;
11
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/storage/browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK9C,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;IACvE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACpE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,EACpC,SAAS,qBAAqB,CAAC,CAAC,CAAC,KAChC,WAAW,CAAC,CAAC,CAkFf,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { AuthStorage, StorageOptions } from '../../types';
2
+ export declare const createCookieStorage: <T>(options: StorageOptions) => AuthStorage<T>;
3
+ //# sourceMappingURL=cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/storage/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAK9D,eAAO,MAAM,mBAAmB,GAAI,CAAC,EACnC,SAAS,cAAc,KACtB,WAAW,CAAC,CAAC,CA4Gf,CAAA"}
@@ -0,0 +1,7 @@
1
+ export declare class SimpleEncryption {
2
+ private key;
3
+ constructor(key: string);
4
+ encrypt(text: string): Promise<string>;
5
+ decrypt(encrypted: string): Promise<string>;
6
+ }
7
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/storage/encryption.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAQ;gBAEP,GAAG,EAAE,MAAM;IAIjB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCtC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmClD"}
@@ -0,0 +1,2 @@
1
+ export declare const isBrowser: boolean;
2
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/storage/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,SACuD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { AuthStorage, StorageOptions } from '../../types';
2
+ /**
3
+ * Creates appropriate storage based on options
4
+ */
5
+ export declare function createStorage<T>(options?: StorageOptions): AuthStorage<T>;
6
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/storage/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAM9D;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CA2B7E"}
@@ -0,0 +1,7 @@
1
+ export * from './env';
2
+ export * from './encryption';
3
+ export * from './memory';
4
+ export * from './cookie';
5
+ export * from './browser';
6
+ export * from './factory';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { AuthStorage } from '../../types';
2
+ export declare const createMemoryStorage: <T>() => AuthStorage<T>;
3
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/auth/utils/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,eAAO,MAAM,mBAAmB,GAAI,CAAC,OAAK,WAAW,CAAC,CAAC,CAYtD,CAAA"}
@@ -1,4 +1,4 @@
1
- import { TokenManager } from './types';
1
+ import { TokenManager } from '../types';
2
2
  /**
3
3
  * Default token manager implementation
4
4
  * Handles token expiration checks and refresh scheduling
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/auth/utils/token-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,YAAY,CA8Cf"}
@@ -1 +1 @@
1
- {"version":3,"file":"Login.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/login/Login.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,MAAM,MAAM,UAAU,GAAG;IAEvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAqB,EACrB,QAAQ,EACR,WAAsC,EACtC,eAA2B,EAC3B,UAAgB,EAChB,mBAA6C,EAC7C,uBAAsC,EACtC,kBAAkB,EAClB,aAAa,EACb,aAA6B,EAC7B,SAAS,EACT,YAAY,EACZ,QAAQ,GACT,EAAE,UAAU,2CA2EZ;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Login.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/login/Login.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,MAAM,MAAM,UAAU,GAAG;IAEvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAqB,EACrB,QAAQ,EACR,WAAsC,EACtC,eAA2B,EAC3B,UAAU,EACV,mBAA6C,EAC7C,uBAAsC,EACtC,kBAAkB,EAClB,aAAa,EACb,aAA6B,EAC7B,SAAS,EACT,YAAY,EACZ,QAAQ,GACT,EAAE,UAAU,2CA6EZ;AAED,eAAe,KAAK,CAAC"}
@@ -11,7 +11,8 @@ type AdminLayoutProps = {
11
11
  }>;
12
12
  headerAfterTrigger?: React.ReactNode;
13
13
  headerAfterTheme?: React.ReactNode;
14
+ onLogout?: () => void | Promise<void>;
14
15
  };
15
- export default function AdminLayout({ children, defaultItemIcon, sidebarCollapsible, sidebarHeader, sidebarHeaderTitle, sidebarHeaderIcon, headerAfterTrigger, headerAfterTheme, }: AdminLayoutProps): import("react/jsx-runtime").JSX.Element;
16
+ export default function AdminLayout({ children, defaultItemIcon, sidebarCollapsible, sidebarHeader, sidebarHeaderTitle, sidebarHeaderIcon, headerAfterTrigger, headerAfterTheme, onLogout, }: AdminLayoutProps): import("react/jsx-runtime").JSX.Element;
16
17
  export {};
17
18
  //# sourceMappingURL=AdminLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../../../src/kit/layouts/admin/components/AdminLayout.tsx"],"names":[],"mappings":"AA+BA,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhE,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC,CAAC;AAgNF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,EAAE,gBAAgB,2CAkBlB"}
1
+ {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../../../src/kit/layouts/admin/components/AdminLayout.tsx"],"names":[],"mappings":"AA+BA,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhE,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AAoNF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,GACT,EAAE,gBAAgB,2CAmBlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k3-universe/react-kit",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  // -----------------------------
2
2
  // KIT: builders
3
3
  // -----------------------------
4
+ export * from './kit/builder/auth';
4
5
  export * from './kit/builder/data-table';
5
6
  export * from './kit/builder/dialog';
6
7
  export * from './kit/builder/form';
@@ -0,0 +1,27 @@
1
+ import type { CanProps } from '../types';
2
+ import { useCan } from '../hooks';
3
+
4
+ /**
5
+ * Component for conditional rendering based on permissions.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * <Can permissions="post:edit" fallback={<ReadOnlyView />}>
10
+ * <EditButton />
11
+ * </Can>
12
+ * ```
13
+ */
14
+ export function Can<
15
+ TRole extends string = string,
16
+ TPermission extends string = string,
17
+ >({
18
+ children,
19
+ fallback = null,
20
+ roles,
21
+ permissions,
22
+ requireAll = true,
23
+ }: CanProps<TRole, TPermission>) {
24
+ const allowed = useCan({ roles, permissions, requireAll });
25
+ if (!allowed) return fallback;
26
+ return children;
27
+ }
@@ -0,0 +1,78 @@
1
+ import type { RequireAuthProps } from '../types';
2
+ import { useAuthContext } from '../providers/AuthProvider';
3
+
4
+ /**
5
+ * Component that requires authentication
6
+ * Optionally checks for specific roles and permissions
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * // Basic authentication check
11
+ * <RequireAuth fallback={<Login />}>
12
+ * <Dashboard />
13
+ * </RequireAuth>
14
+ *
15
+ * // With role check
16
+ * <RequireAuth
17
+ * roles="admin"
18
+ * fallback={<Forbidden />}
19
+ * loadingFallback={<Spinner />}
20
+ * >
21
+ * <AdminPanel />
22
+ * </RequireAuth>
23
+ *
24
+ * // With permission check
25
+ * <RequireAuth
26
+ * permissions={['post:edit', 'post:delete']}
27
+ * fallback={<Forbidden />}
28
+ * >
29
+ * <PostEditor />
30
+ * </RequireAuth>
31
+ *
32
+ * // Complex rule
33
+ * <RequireAuth
34
+ * roles={['admin', 'moderator']}
35
+ * permissions={{
36
+ * operator: 'OR',
37
+ * permissions: ['post:edit', 'post:delete']
38
+ * }}
39
+ * requireAll={false}
40
+ * fallback={<Forbidden />}
41
+ * >
42
+ * <ContentManager />
43
+ * </RequireAuth>
44
+ * ```
45
+ */
46
+ export function RequireAuth<
47
+ TRole extends string = string,
48
+ TPermission extends string = string,
49
+ >({
50
+ children,
51
+ fallback = null,
52
+ loadingFallback = null,
53
+ roles,
54
+ permissions,
55
+ requireAll = true,
56
+ }: RequireAuthProps<TRole, TPermission>) {
57
+ const { status, can } = useAuthContext();
58
+
59
+ if (status === 'loading' || status === 'idle') {
60
+ return loadingFallback;
61
+ }
62
+
63
+ if (status !== 'authenticated') {
64
+ return fallback;
65
+ }
66
+
67
+ if (!roles && !permissions) {
68
+ return children;
69
+ }
70
+
71
+ const allowed = can({ roles, permissions, requireAll });
72
+
73
+ if (!allowed) {
74
+ return fallback;
75
+ }
76
+
77
+ return children;
78
+ }
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ import { useAuthContext } from '../providers/AuthProvider';
3
+
4
+ /**
5
+ * Component that shows children only when authenticated.
6
+ */
7
+ export function ShowWhenAuthenticated({ children }: { children: ReactNode }) {
8
+ const { status } = useAuthContext();
9
+ return status === 'authenticated' ? children : null;
10
+ }
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ import { useAuthContext } from '../providers/AuthProvider';
3
+
4
+ /**
5
+ * Component that shows children only when there's an error.
6
+ */
7
+ export function ShowWhenError({ children }: { children: ReactNode }) {
8
+ const { status } = useAuthContext();
9
+ return status === 'error' ? children : null;
10
+ }
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ import { useAuthContext } from '../providers/AuthProvider';
3
+
4
+ /**
5
+ * Component that shows children only while loading.
6
+ */
7
+ export function ShowWhenLoading({ children }: { children: ReactNode }) {
8
+ const { status } = useAuthContext();
9
+ return status === 'loading' ? children : null;
10
+ }
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ import { useAuthContext } from '../providers/AuthProvider';
3
+
4
+ /**
5
+ * Component that shows children only when NOT authenticated.
6
+ */
7
+ export function ShowWhenUnauthenticated({ children }: { children: ReactNode }) {
8
+ const { status } = useAuthContext();
9
+ return status === 'unauthenticated' ? children : null;
10
+ }
@@ -0,0 +1,23 @@
1
+ import type { ComponentType } from 'react';
2
+ import type { WithPermissionOptions } from '../types';
3
+ import { useCan } from '../hooks';
4
+
5
+ /**
6
+ * Higher-order component that wraps a component with permission checks.
7
+ */
8
+ export function withPermission<
9
+ TRole extends string = string,
10
+ TPermission extends string = string,
11
+ TProps extends Record<string, unknown> = Record<string, unknown>,
12
+ >(
13
+ Component: ComponentType<TProps>,
14
+ options: WithPermissionOptions<TRole, TPermission>,
15
+ ): ComponentType<TProps> {
16
+ const WithPermissionWrapper = (props: TProps) => {
17
+ const allowed = useCan(options);
18
+ if (!allowed) return null;
19
+ return <Component {...props} />;
20
+ };
21
+ WithPermissionWrapper.displayName = `WithPermission(${Component.displayName ?? Component.name ?? 'Component'})`;
22
+ return WithPermissionWrapper as ComponentType<TProps>;
23
+ }
@@ -0,0 +1,34 @@
1
+ import type { AuthSession } from '../types';
2
+ import { useAuthContext } from '../providers/AuthProvider';
3
+
4
+ /**
5
+ * Hook to get the login function.
6
+ */
7
+ export function useLogin<TCredentials = unknown>() {
8
+ const { login } = useAuthContext();
9
+ return login as ((credentials: TCredentials) => Promise<unknown>) | undefined;
10
+ }
11
+
12
+ /**
13
+ * Hook to get the logout function.
14
+ */
15
+ export function useLogout() {
16
+ const { logout } = useAuthContext();
17
+ return logout;
18
+ }
19
+
20
+ /**
21
+ * Hook to get the refresh function.
22
+ */
23
+ export function useRefresh() {
24
+ const { refresh } = useAuthContext();
25
+ return refresh;
26
+ }
27
+
28
+ /**
29
+ * Hook to get the setSession function.
30
+ */
31
+ export function useSetSession<TSession extends AuthSession>() {
32
+ const { setSession } = useAuthContext();
33
+ return setSession as (session: TSession | null) => Promise<unknown>;
34
+ }
@@ -0,0 +1,65 @@
1
+ import type { AuthSession } from '../types';
2
+ import { useAuthContext } from '../providers/AuthProvider';
3
+
4
+ /**
5
+ * Hook to access the entire auth context
6
+ */
7
+ export function useAuth() {
8
+ return useAuthContext();
9
+ }
10
+
11
+ /**
12
+ * Hook to get the current auth status
13
+ */
14
+ export function useAuthStatus() {
15
+ const { status } = useAuthContext();
16
+ return status;
17
+ }
18
+
19
+ /**
20
+ * Hook to check if user is authenticated
21
+ */
22
+ export function useIsAuthenticated() {
23
+ const { status } = useAuthContext();
24
+ return status === 'authenticated';
25
+ }
26
+
27
+ /**
28
+ * Hook to get the current session
29
+ */
30
+ export function useAuthSession<TSession extends AuthSession>() {
31
+ const { session } = useAuthContext();
32
+ return session as TSession | null;
33
+ }
34
+
35
+ /**
36
+ * Hook to get the current user
37
+ */
38
+ export function useAuthUser<TUser>() {
39
+ const { user } = useAuthContext();
40
+ return user as TUser | null;
41
+ }
42
+
43
+ /**
44
+ * Hook to get user roles
45
+ */
46
+ export function useAuthRoles<TRole extends string = string>() {
47
+ const { roles } = useAuthContext();
48
+ return roles as TRole[];
49
+ }
50
+
51
+ /**
52
+ * Hook to get user permissions
53
+ */
54
+ export function useAuthPermissions<TPermission extends string = string>() {
55
+ const { permissions } = useAuthContext();
56
+ return permissions as TPermission[];
57
+ }
58
+
59
+ /**
60
+ * Hook to get authentication error
61
+ */
62
+ export function useAuthError() {
63
+ const { error } = useAuthContext();
64
+ return error;
65
+ }
@@ -0,0 +1,4 @@
1
+ export * from './core-hooks';
2
+ export * from './permission-hooks';
3
+ export * from './token-hooks';
4
+ export * from './action-hooks';
@@ -0,0 +1,43 @@
1
+ import type {
2
+ PermissionPolicy,
3
+ PermissionRule,
4
+ WithPermissionOptions,
5
+ } from '../types';
6
+ import { useAuthContext } from '../providers/AuthProvider';
7
+
8
+ /**
9
+ * Hook to check if user has specific permission(s).
10
+ */
11
+ export function usePermission<TPermission extends string = string>(
12
+ permission: TPermission | TPermission[] | PermissionPolicy<TPermission>,
13
+ options?: { requireAll?: boolean },
14
+ ) {
15
+ const { hasPermission } = useAuthContext();
16
+ return hasPermission(permission, options);
17
+ }
18
+
19
+ /**
20
+ * Hook to check if user has specific role(s).
21
+ */
22
+ export function useRole<TRole extends string = string>(
23
+ roles: TRole | TRole[],
24
+ options?: { requireAll?: boolean },
25
+ ) {
26
+ const { hasRole } = useAuthContext();
27
+ return hasRole(roles, options);
28
+ }
29
+
30
+ /**
31
+ * Hook to check complex permission rules.
32
+ */
33
+ export function useCan<
34
+ TRole extends string = string,
35
+ TPermission extends string = string,
36
+ >(
37
+ rule:
38
+ | WithPermissionOptions<TRole, TPermission>
39
+ | PermissionRule<TRole, TPermission>,
40
+ ) {
41
+ const { can } = useAuthContext();
42
+ return can(rule as PermissionRule<TRole, TPermission>);
43
+ }
@@ -0,0 +1,25 @@
1
+ import { useAuthContext } from '../providers/AuthProvider';
2
+
3
+ /**
4
+ * Hook to get the current auth token.
5
+ */
6
+ export function useAuthToken() {
7
+ const { getToken } = useAuthContext();
8
+ return getToken();
9
+ }
10
+
11
+ /**
12
+ * Hook to check if token is expired.
13
+ */
14
+ export function useIsTokenExpired() {
15
+ const { isTokenExpired } = useAuthContext();
16
+ return isTokenExpired();
17
+ }
18
+
19
+ /**
20
+ * Hook to get time until token expiry in milliseconds.
21
+ */
22
+ export function useTimeUntilExpiry() {
23
+ const { getTimeUntilExpiry } = useAuthContext();
24
+ return getTimeUntilExpiry();
25
+ }