@eminuckan/spine 0.2.0 → 0.2.2

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 (179) hide show
  1. package/README.md +2 -2
  2. package/dist/api-client/api-config.server.d.ts +40 -0
  3. package/dist/api-client/api-config.server.d.ts.map +1 -0
  4. package/dist/api-client/error-codes.d.ts +57 -0
  5. package/dist/api-client/error-codes.d.ts.map +1 -0
  6. package/dist/api-client/error-handler.d.ts +52 -0
  7. package/dist/api-client/error-handler.d.ts.map +1 -0
  8. package/dist/api-client/fetch-client.server.d.ts +29 -0
  9. package/dist/api-client/fetch-client.server.d.ts.map +1 -0
  10. package/dist/api-client/index.d.ts +11 -3
  11. package/dist/api-client/index.d.ts.map +1 -0
  12. package/dist/api-client/index.js +3 -2
  13. package/dist/api-client/retry-handler.d.ts +29 -0
  14. package/dist/api-client/retry-handler.d.ts.map +1 -0
  15. package/dist/api-client/server.d.ts +9 -4
  16. package/dist/api-client/server.d.ts.map +1 -0
  17. package/dist/api-client/server.js +4 -3
  18. package/dist/api-client/types.d.ts +121 -0
  19. package/dist/api-client/types.d.ts.map +1 -0
  20. package/dist/{api-client-Ftxqm3Ep.js → api-client-DsrxK05Z.js} +1 -1
  21. package/dist/{api-client-Ftxqm3Ep.js.map → api-client-DsrxK05Z.js.map} +1 -1
  22. package/dist/auth/auth.server.d.ts +124 -0
  23. package/dist/auth/auth.server.d.ts.map +1 -0
  24. package/dist/auth/index.d.ts +8 -2
  25. package/dist/auth/index.d.ts.map +1 -0
  26. package/dist/auth/redis-session-storage.server.d.ts +21 -0
  27. package/dist/auth/redis-session-storage.server.d.ts.map +1 -0
  28. package/dist/auth/route-protection.server.d.ts +107 -0
  29. package/dist/auth/route-protection.server.d.ts.map +1 -0
  30. package/dist/auth/server.d.ts +13 -3
  31. package/dist/auth/server.d.ts.map +1 -0
  32. package/dist/auth/server.js +3 -3
  33. package/dist/auth/token-refresh.server.d.ts +17 -0
  34. package/dist/auth/token-refresh.server.d.ts.map +1 -0
  35. package/dist/auth/types.d.ts +160 -0
  36. package/dist/auth/types.d.ts.map +1 -0
  37. package/dist/auth.server-BPiCtlJE.js +5 -0
  38. package/dist/{auth.server-C979TR6W.js → auth.server-Cx2h2qu3.js} +3 -3
  39. package/dist/{auth.server-C979TR6W.js.map → auth.server-Cx2h2qu3.js.map} +1 -1
  40. package/dist/http/response.d.ts +12 -0
  41. package/dist/http/response.d.ts.map +1 -0
  42. package/dist/identity/identity-context-provider.d.ts +19 -0
  43. package/dist/identity/identity-context-provider.d.ts.map +1 -0
  44. package/dist/identity/identity-context.server.d.ts +73 -0
  45. package/dist/identity/identity-context.server.d.ts.map +1 -0
  46. package/dist/identity/identity-store.d.ts +55 -0
  47. package/dist/identity/identity-store.d.ts.map +1 -0
  48. package/dist/identity/index.d.ts +9 -4
  49. package/dist/identity/index.d.ts.map +1 -0
  50. package/dist/identity/server.d.ts +6 -4
  51. package/dist/identity/server.d.ts.map +1 -0
  52. package/dist/identity/server.js +2 -1
  53. package/dist/identity/types.d.ts +91 -0
  54. package/dist/identity/types.d.ts.map +1 -0
  55. package/dist/index.d.ts +14 -12
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +6 -5
  58. package/dist/logging/config.d.ts +7 -0
  59. package/dist/logging/config.d.ts.map +1 -0
  60. package/dist/logging/index.d.ts +9 -3
  61. package/dist/logging/index.d.ts.map +1 -0
  62. package/dist/logging/logger.d.ts +22 -0
  63. package/dist/logging/logger.d.ts.map +1 -0
  64. package/dist/logging/types.d.ts +27 -0
  65. package/dist/logging/types.d.ts.map +1 -0
  66. package/dist/permissions/components.d.ts +48 -0
  67. package/dist/permissions/components.d.ts.map +1 -0
  68. package/dist/permissions/constants.d.ts +9 -0
  69. package/dist/permissions/constants.d.ts.map +1 -0
  70. package/dist/permissions/hooks.d.ts +47 -0
  71. package/dist/permissions/hooks.d.ts.map +1 -0
  72. package/dist/permissions/index.d.ts +28 -2
  73. package/dist/permissions/index.d.ts.map +1 -0
  74. package/dist/permissions/permission-initializer.d.ts +18 -0
  75. package/dist/permissions/permission-initializer.d.ts.map +1 -0
  76. package/dist/permissions/permission-service.d.ts +53 -0
  77. package/dist/permissions/permission-service.d.ts.map +1 -0
  78. package/dist/permissions/permission-store.d.ts +42 -0
  79. package/dist/permissions/permission-store.d.ts.map +1 -0
  80. package/dist/permissions/route-protection.server.d.ts +33 -0
  81. package/dist/permissions/route-protection.server.d.ts.map +1 -0
  82. package/dist/permissions/types.d.ts +44 -0
  83. package/dist/permissions/types.d.ts.map +1 -0
  84. package/dist/query-client/index.d.ts +8 -2
  85. package/dist/query-client/index.d.ts.map +1 -0
  86. package/dist/query-client/index.js +1 -1
  87. package/dist/query-client/query-config.d.ts +55 -0
  88. package/dist/query-client/query-config.d.ts.map +1 -0
  89. package/dist/query-client/types.d.ts +115 -0
  90. package/dist/query-client/types.d.ts.map +1 -0
  91. package/dist/{query-client-DRPQIKHX.js → query-client-Bpe08pk9.js} +1 -1
  92. package/dist/query-client-Bpe08pk9.js.map +1 -0
  93. package/dist/react-router/index.d.ts +9 -12
  94. package/dist/react-router/index.d.ts.map +1 -0
  95. package/dist/react-router/index.js +6 -5
  96. package/dist/react-router/server.d.ts +9 -18
  97. package/dist/react-router/server.d.ts.map +1 -0
  98. package/dist/react-router/server.js +13 -12
  99. package/dist/{redis-session-storage.server-DhufyPjd.js → redis-session-storage.server-BR_0y-QO.js} +2 -2
  100. package/dist/{redis-session-storage.server-DhufyPjd.js.map → redis-session-storage.server-BR_0y-QO.js.map} +1 -1
  101. package/dist/{server-CiSbg-9C.js → server-BHfKHKF_.js} +5 -5
  102. package/dist/{server-CiSbg-9C.js.map → server-BHfKHKF_.js.map} +1 -1
  103. package/dist/{server-C-DiVP9e.js → server-BxvRxjCK.js} +2 -2
  104. package/dist/{server-C-DiVP9e.js.map → server-BxvRxjCK.js.map} +1 -1
  105. package/dist/{server-iWm3oeCM.js → server-C3L8J7iE.js} +3 -2
  106. package/dist/server-C3L8J7iE.js.map +1 -0
  107. package/dist/{server-CNp6gjFE.js → server-CouYoZiw.js} +1 -1
  108. package/dist/{server-CNp6gjFE.js.map → server-CouYoZiw.js.map} +1 -1
  109. package/dist/server-DZmcd2Lr.js +422 -0
  110. package/dist/server-DZmcd2Lr.js.map +1 -0
  111. package/dist/server.d.ts +14 -18
  112. package/dist/server.d.ts.map +1 -0
  113. package/dist/server.js +13 -12
  114. package/dist/signalr/index.d.ts +8 -4
  115. package/dist/signalr/index.d.ts.map +1 -0
  116. package/dist/signalr/index.js +1 -1
  117. package/dist/signalr/signalr-client.d.ts +98 -0
  118. package/dist/signalr/signalr-client.d.ts.map +1 -0
  119. package/dist/signalr/types.d.ts +42 -0
  120. package/dist/signalr/types.d.ts.map +1 -0
  121. package/dist/{signalr-BJGcXc0m.js → signalr-SJ-1sIxw.js} +1 -1
  122. package/dist/{signalr-BJGcXc0m.js.map → signalr-SJ-1sIxw.js.map} +1 -1
  123. package/dist/tenant/index.d.ts +9 -3
  124. package/dist/tenant/index.d.ts.map +1 -0
  125. package/dist/tenant/server.d.ts +7 -3
  126. package/dist/tenant/server.d.ts.map +1 -0
  127. package/dist/tenant/server.js +2 -2
  128. package/dist/tenant/tenant-context.d.ts +45 -0
  129. package/dist/tenant/tenant-context.d.ts.map +1 -0
  130. package/dist/tenant/tenant-cookie.server.d.ts +35 -0
  131. package/dist/tenant/tenant-cookie.server.d.ts.map +1 -0
  132. package/dist/tenant/tenant-store.d.ts +58 -0
  133. package/dist/tenant/tenant-store.d.ts.map +1 -0
  134. package/dist/tenant/tenant.server.d.ts +49 -0
  135. package/dist/tenant/tenant.server.d.ts.map +1 -0
  136. package/dist/tenant/types.d.ts +51 -0
  137. package/dist/tenant/types.d.ts.map +1 -0
  138. package/dist/types-BnKaWdfe.js +8 -0
  139. package/dist/types-BnKaWdfe.js.map +1 -0
  140. package/package.json +2 -7
  141. package/dist/auth.server-DU-x2LPA.js +0 -5
  142. package/dist/index-BIJOC8Fb.d.ts +0 -272
  143. package/dist/index-BIJOC8Fb.d.ts.map +0 -1
  144. package/dist/index-Bt9XE6gj.d.ts +0 -104
  145. package/dist/index-Bt9XE6gj.d.ts.map +0 -1
  146. package/dist/index-C2hGpzGr.d.ts +0 -74
  147. package/dist/index-C2hGpzGr.d.ts.map +0 -1
  148. package/dist/index-CfQsb3l_.d.ts +0 -170
  149. package/dist/index-CfQsb3l_.d.ts.map +0 -1
  150. package/dist/index-D6RK_5vm.d.ts +0 -199
  151. package/dist/index-D6RK_5vm.d.ts.map +0 -1
  152. package/dist/index-DrttYPAj.d.ts +0 -30
  153. package/dist/index-DrttYPAj.d.ts.map +0 -1
  154. package/dist/index-geY2ynnN.d.ts +0 -141
  155. package/dist/index-geY2ynnN.d.ts.map +0 -1
  156. package/dist/index-kr8Wk7v5.d.ts +0 -1
  157. package/dist/query-client-DRPQIKHX.js.map +0 -1
  158. package/dist/server-BoeUiXSh.d.ts +0 -40
  159. package/dist/server-BoeUiXSh.d.ts.map +0 -1
  160. package/dist/server-CLbksnvg.d.ts +0 -144
  161. package/dist/server-CLbksnvg.d.ts.map +0 -1
  162. package/dist/server-CXGaRaiS.d.ts +0 -256
  163. package/dist/server-CXGaRaiS.d.ts.map +0 -1
  164. package/dist/server-DLgH3FRR.js +0 -312
  165. package/dist/server-DLgH3FRR.js.map +0 -1
  166. package/dist/server-DazqdM63.d.ts +0 -93
  167. package/dist/server-DazqdM63.d.ts.map +0 -1
  168. package/dist/server-iWm3oeCM.js.map +0 -1
  169. package/dist/server-zEKMDpP7.d.ts +0 -80
  170. package/dist/server-zEKMDpP7.d.ts.map +0 -1
  171. package/dist/types-BTjFzIhv.d.ts +0 -31
  172. package/dist/types-BTjFzIhv.d.ts.map +0 -1
  173. package/dist/types-DoIfDhl6.d.ts +0 -55
  174. package/dist/types-DoIfDhl6.d.ts.map +0 -1
  175. package/dist/types-DufLRY7A.d.ts +0 -164
  176. package/dist/types-DufLRY7A.d.ts.map +0 -1
  177. package/dist/types-uDrDMkCq.d.ts +0 -93
  178. package/dist/types-uDrDMkCq.d.ts.map +0 -1
  179. /package/dist/{src-D7mh9MKA.js → src-CJ2RLi94.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,12 +1,14 @@
1
- import { LogContext, LogEntry, LogLevel$1 as LogLevel, LoggerConfig } from "./types-BTjFzIhv.js";
2
- import { APIConfig, APILogger, ApiError$1 as ApiError, CreateAPIConfigOptions, ErrorCodes$1 as ErrorCodes, ErrorHandler$1 as ErrorHandler, GetAccessTokenFn, GetCurrentTenantFn, ProblemDetails, RetryConfig, TokenRefreshFn, TokenRefreshResult, ValidationError, calculateBackoffDelay$1 as calculateBackoffDelay, createRetryFetch$1 as createRetryFetch, fetchWithTimeout$1 as fetchWithTimeout, handleApiError$1 as handleApiError, isRetryableError$1 as isRetryableError, withRetry$1 as withRetry } from "./index-D6RK_5vm.js";
3
- import { OrganizationBranding, OrganizationData, TenantContextType, TenantInfo, TenantMembership } from "./types-DoIfDhl6.js";
4
- import { AddressData, IdentityContextChangeHandler, IdentityContextChangedEvent, IdentityContextData } from "./types-uDrDMkCq.js";
5
- import { IdentityContextProvider$1 as IdentityContextProvider, IdentityStoreConfig, IdentityUnauthorizedDetails, configureIdentityEndpoints$1 as configureIdentityEndpoints, configureIdentityStore$1 as configureIdentityStore, resetIdentityStoreConfig$1 as resetIdentityStoreConfig, useHasSubscription$1 as useHasSubscription, useIdentityContext$1 as useIdentityContext, useIdentityStore$1 as useIdentityStore, useIsOnboarded$1 as useIsOnboarded, useUserPermissions$1 as useUserPermissions, useUserTenants$1 as useUserTenants } from "./index-C2hGpzGr.js";
6
- import { LOG_LEVEL_PRIORITY$1 as LOG_LEVEL_PRIORITY, Logger$1 as Logger, createLogger$1 as createLogger, defaultLoggerConfig$1 as defaultLoggerConfig, logger$1 as logger } from "./index-DrttYPAj.js";
7
- import { FieldPermissionResult, PERMISSION_MODULES$1 as PERMISSION_MODULES, PermissionCheckOptions, PermissionCheckResult, PermissionChecker$1 as PermissionChecker, PermissionCode, PermissionInitializer$1 as PermissionInitializer, PermissionModule, ProtectedAction$1 as ProtectedAction, ProtectedButton$1 as ProtectedButton, ProtectedLink$1 as ProtectedLink, ProtectedSection$1 as ProtectedSection, getPermissionChecker$1 as getPermissionChecker, getPermissions$1 as getPermissions, initializePermissions$1 as initializePermissions, useAllPermissions$1 as useAllPermissions, useHasModulePermission$1 as useHasModulePermission, useHasPermission$1 as useHasPermission, useHasPermissions$1 as useHasPermissions, useModulePermission$1 as useModulePermission, usePermission$1 as usePermission, usePermissionChecker$1 as usePermissionChecker, usePermissionStore$1 as usePermissionStore, usePermissions$1 as usePermissions } from "./index-BIJOC8Fb.js";
8
- import { TenantProvider$1 as TenantProvider, configureTenantEndpoints$1 as configureTenantEndpoints, initializeTenantStore$1 as initializeTenantStore, useCurrentOrganization$1 as useCurrentOrganization, useCurrentTenant$1 as useCurrentTenant, useOrganization$1 as useOrganization, useTenant$1 as useTenant, useTenantStore$1 as useTenantStore, useTenantSwitcher$1 as useTenantSwitcher } from "./index-Bt9XE6gj.js";
9
- import { IdentitySignalRClient$1 as IdentitySignalRClient, SignalRClient$1 as SignalRClient, SignalRClientConfig, SignalRConnectionState, SignalREventHandler, cleanupSignalR$1 as cleanupSignalR, createIdentitySignalRClient$1 as createIdentitySignalRClient, getIdentitySignalRClient$1 as getIdentitySignalRClient, initializeSignalR$1 as initializeSignalR } from "./index-geY2ynnN.js";
10
- import { CachePreset, CachePresets, InvalidationHelpers, LogoutHandler, QueryClientConfig, QueryLogger, cachePresets$1 as cachePresets, createQueryClient$1 as createQueryClient, createQueryKeyFactory$1 as createQueryKeyFactory, invalidationHelpers$1 as invalidationHelpers } from "./index-CfQsb3l_.js";
11
- import "./index-kr8Wk7v5.js";
12
- export { APIConfig, APILogger, AddressData, ApiError, CachePreset, CachePresets, CreateAPIConfigOptions, ErrorCodes, ErrorHandler, FieldPermissionResult, GetAccessTokenFn, GetCurrentTenantFn, IdentityContextChangeHandler, IdentityContextChangedEvent, IdentityContextData, IdentityContextProvider, IdentitySignalRClient, IdentityStoreConfig, IdentityUnauthorizedDetails, InvalidationHelpers, LOG_LEVEL_PRIORITY, LogContext, LogEntry, LogLevel, Logger, LoggerConfig, LogoutHandler, OrganizationBranding, OrganizationData, PERMISSION_MODULES, PermissionCheckOptions, PermissionCheckResult, PermissionChecker, PermissionCode, PermissionInitializer, PermissionModule, ProblemDetails, ProtectedAction, ProtectedButton, ProtectedLink, ProtectedSection, QueryClientConfig, QueryLogger, RetryConfig, SignalRClient, SignalRClientConfig, SignalRConnectionState, SignalREventHandler, TenantContextType, TenantInfo, TenantMembership, TenantProvider, TokenRefreshFn, TokenRefreshResult, ValidationError, cachePresets, calculateBackoffDelay, cleanupSignalR, configureIdentityEndpoints, configureIdentityStore, configureTenantEndpoints, createIdentitySignalRClient, createLogger, createQueryClient, createQueryKeyFactory, createRetryFetch, defaultLoggerConfig, fetchWithTimeout, getIdentitySignalRClient, getPermissionChecker, getPermissions, handleApiError, initializePermissions, initializeSignalR, initializeTenantStore, invalidationHelpers, isRetryableError, logger, resetIdentityStoreConfig, useAllPermissions, useCurrentOrganization, useCurrentTenant, useHasModulePermission, useHasPermission, useHasPermissions, useHasSubscription, useIdentityContext, useIdentityStore, useIsOnboarded, useModulePermission, useOrganization, usePermission, usePermissionChecker, usePermissionStore, usePermissions, useTenant, useTenantStore, useTenantSwitcher, useUserPermissions, useUserTenants, withRetry };
1
+ /**
2
+ * Spine
3
+ *
4
+ * Framework-agnostic primitives for auth, permissions, tenant context,
5
+ * identity, API access, realtime signaling, query configuration, and logging.
6
+ */
7
+ export * from './logging';
8
+ export * from './permissions';
9
+ export * from './tenant';
10
+ export * from './identity';
11
+ export * from './api-client';
12
+ export * from './signalr';
13
+ export * from './query-client';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -2,9 +2,10 @@ import { LOG_LEVEL_PRIORITY, LogLevel, Logger, createLogger, defaultLoggerConfig
2
2
  import { PERMISSION_MODULES, PermissionChecker, PermissionInitializer, ProtectedAction, ProtectedButton, ProtectedLink, ProtectedSection, getPermissionChecker, getPermissions, initializePermissions, useAllPermissions, useHasModulePermission, useHasPermission, useHasPermissions, useModulePermission, usePermission, usePermissionChecker, usePermissionStore, usePermissions } from "./permissions-D5ScGGnd.js";
3
3
  import { TenantProvider, configureTenantEndpoints, initializeTenantStore, useCurrentOrganization, useCurrentTenant, useOrganization, useTenant, useTenantStore, useTenantSwitcher } from "./tenant-C6KPaSCX.js";
4
4
  import { IdentityContextProvider, configureIdentityEndpoints, configureIdentityStore, resetIdentityStoreConfig, useHasSubscription, useIdentityContext, useIdentityStore, useIsOnboarded, useUserPermissions, useUserTenants } from "./identity-CFa1txoj.js";
5
- import { ApiError, ErrorCodes, ErrorHandler, calculateBackoffDelay, createRetryFetch, fetchWithTimeout, handleApiError, isRetryableError, withRetry } from "./api-client-Ftxqm3Ep.js";
6
- import { IdentitySignalRClient, SignalRClient, cleanupSignalR, createIdentitySignalRClient, getIdentitySignalRClient, initializeSignalR } from "./signalr-BJGcXc0m.js";
7
- import { cachePresets, createQueryClient, createQueryKeyFactory, invalidationHelpers } from "./query-client-DRPQIKHX.js";
8
- import "./src-D7mh9MKA.js";
5
+ import { isApiClientError } from "./types-BnKaWdfe.js";
6
+ import { ApiError, ErrorCodes, ErrorHandler, calculateBackoffDelay, createRetryFetch, fetchWithTimeout, handleApiError, isRetryableError, withRetry } from "./api-client-DsrxK05Z.js";
7
+ import { IdentitySignalRClient, SignalRClient, cleanupSignalR, createIdentitySignalRClient, getIdentitySignalRClient, initializeSignalR } from "./signalr-SJ-1sIxw.js";
8
+ import { cachePresets, createQueryClient, createQueryKeyFactory, invalidationHelpers } from "./query-client-Bpe08pk9.js";
9
+ import "./src-CJ2RLi94.js";
9
10
 
10
- export { ApiError, ErrorCodes, ErrorHandler, IdentityContextProvider, IdentitySignalRClient, LOG_LEVEL_PRIORITY, LogLevel, Logger, PERMISSION_MODULES, PermissionChecker, PermissionInitializer, ProtectedAction, ProtectedButton, ProtectedLink, ProtectedSection, SignalRClient, TenantProvider, cachePresets, calculateBackoffDelay, cleanupSignalR, configureIdentityEndpoints, configureIdentityStore, configureTenantEndpoints, createIdentitySignalRClient, createLogger, createQueryClient, createQueryKeyFactory, createRetryFetch, defaultLoggerConfig, fetchWithTimeout, getIdentitySignalRClient, getPermissionChecker, getPermissions, handleApiError, initializePermissions, initializeSignalR, initializeTenantStore, invalidationHelpers, isRetryableError, logger, resetIdentityStoreConfig, useAllPermissions, useCurrentOrganization, useCurrentTenant, useHasModulePermission, useHasPermission, useHasPermissions, useHasSubscription, useIdentityContext, useIdentityStore, useIsOnboarded, useModulePermission, useOrganization, usePermission, usePermissionChecker, usePermissionStore, usePermissions, useTenant, useTenantStore, useTenantSwitcher, useUserPermissions, useUserTenants, withRetry };
11
+ export { ApiError, ErrorCodes, ErrorHandler, IdentityContextProvider, IdentitySignalRClient, LOG_LEVEL_PRIORITY, LogLevel, Logger, PERMISSION_MODULES, PermissionChecker, PermissionInitializer, ProtectedAction, ProtectedButton, ProtectedLink, ProtectedSection, SignalRClient, TenantProvider, cachePresets, calculateBackoffDelay, cleanupSignalR, configureIdentityEndpoints, configureIdentityStore, configureTenantEndpoints, createIdentitySignalRClient, createLogger, createQueryClient, createQueryKeyFactory, createRetryFetch, defaultLoggerConfig, fetchWithTimeout, getIdentitySignalRClient, getPermissionChecker, getPermissions, handleApiError, initializePermissions, initializeSignalR, initializeTenantStore, invalidationHelpers, isApiClientError, isRetryableError, logger, resetIdentityStoreConfig, useAllPermissions, useCurrentOrganization, useCurrentTenant, useHasModulePermission, useHasPermission, useHasPermissions, useHasSubscription, useIdentityContext, useIdentityStore, useIsOnboarded, useModulePermission, useOrganization, usePermission, usePermissionChecker, usePermissionStore, usePermissions, useTenant, useTenantStore, useTenantSwitcher, useUserPermissions, useUserTenants, withRetry };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Logger Configuration
3
+ */
4
+ import { LogLevel, type LoggerConfig } from './types';
5
+ export declare const LOG_LEVEL_PRIORITY: Record<LogLevel, number>;
6
+ export declare const defaultLoggerConfig: LoggerConfig;
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/logging/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAKjC,CAAC"}
@@ -1,3 +1,9 @@
1
- import { LogContext, LogEntry, LogLevel$1 as LogLevel, LoggerConfig } from "../types-BTjFzIhv.js";
2
- import { LOG_LEVEL_PRIORITY$1 as LOG_LEVEL_PRIORITY, Logger$1 as Logger, createLogger$1 as createLogger, defaultLoggerConfig$1 as defaultLoggerConfig, logger$1 as logger } from "../index-DrttYPAj.js";
3
- export { LOG_LEVEL_PRIORITY, LogContext, LogEntry, LogLevel, Logger, LoggerConfig, createLogger, defaultLoggerConfig, logger };
1
+ /**
2
+ * Logging Module
3
+ *
4
+ * Centralized logging implementation with structured logging format.
5
+ */
6
+ export * from './logger';
7
+ export * from './types';
8
+ export * from './config';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Logger Service
3
+ *
4
+ * Centralized logging implementation with structured logging format.
5
+ */
6
+ import { type LogContext, type LoggerConfig } from './types';
7
+ export declare class Logger {
8
+ private config;
9
+ constructor(config?: Partial<LoggerConfig>);
10
+ debug(message: string, context?: LogContext): void;
11
+ info(message: string, context?: LogContext): void;
12
+ warn(message: string, context?: LogContext): void;
13
+ error(message: string, error?: Error, context?: LogContext): void;
14
+ private log;
15
+ private shouldLog;
16
+ private logToConsole;
17
+ private formatEntry;
18
+ private sendToRemote;
19
+ }
20
+ export declare const logger: Logger;
21
+ export declare function createLogger(config?: Partial<LoggerConfig>): Logger;
22
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logging/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAY,KAAK,UAAU,EAAiB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGtF,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAO1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAIlD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAIjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAIjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAIjE,OAAO,CAAC,GAAG;IA6BX,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,WAAW;YAcL,YAAY;CAmB3B;AAGD,eAAO,MAAM,MAAM,QAAe,CAAC;AAGnC,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAEnE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Logging Types
3
+ */
4
+ export declare enum LogLevel {
5
+ DEBUG = "debug",
6
+ INFO = "info",
7
+ WARN = "warn",
8
+ ERROR = "error"
9
+ }
10
+ export interface LogContext {
11
+ [key: string]: unknown;
12
+ }
13
+ export interface LogEntry {
14
+ timestamp: string;
15
+ level: LogLevel;
16
+ message: string;
17
+ context?: LogContext;
18
+ error?: Error;
19
+ }
20
+ export interface LoggerConfig {
21
+ minLevel: LogLevel;
22
+ enableConsole: boolean;
23
+ enableRemote: boolean;
24
+ remoteEndpoint?: string;
25
+ serviceName?: string;
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/logging/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Permission Components
3
+ *
4
+ * Protected UI components that conditionally render based on permissions.
5
+ */
6
+ import { type ReactNode, type ComponentProps } from 'react';
7
+ import type { PermissionCode, PermissionCheckOptions } from './types';
8
+ interface ProtectedButtonProps extends ComponentProps<'button'> {
9
+ permission: PermissionCode;
10
+ fallback?: ReactNode;
11
+ }
12
+ /**
13
+ * Button that only renders if user has the required permission
14
+ */
15
+ export declare function ProtectedButton({ permission, fallback, children, ...props }: ProtectedButtonProps): import("react/jsx-runtime").JSX.Element;
16
+ interface ProtectedLinkProps extends ComponentProps<'a'> {
17
+ permission: PermissionCode;
18
+ fallback?: ReactNode;
19
+ }
20
+ /**
21
+ * Link that only renders if user has the required permission
22
+ */
23
+ export declare function ProtectedLink({ permission, fallback, children, ...props }: ProtectedLinkProps): import("react/jsx-runtime").JSX.Element;
24
+ interface ProtectedSectionProps {
25
+ permission?: PermissionCode;
26
+ permissions?: PermissionCode[];
27
+ options?: PermissionCheckOptions;
28
+ fallback?: ReactNode;
29
+ children: ReactNode;
30
+ }
31
+ /**
32
+ * Section that only renders if user has the required permission(s)
33
+ */
34
+ export declare function ProtectedSection({ permission, permissions, options, fallback, children, }: ProtectedSectionProps): import("react/jsx-runtime").JSX.Element;
35
+ interface ProtectedActionProps {
36
+ permission: PermissionCode;
37
+ onAction: () => void;
38
+ children: (props: {
39
+ onClick: () => void;
40
+ disabled: boolean;
41
+ }) => ReactNode;
42
+ }
43
+ /**
44
+ * Render prop component for protected actions
45
+ */
46
+ export declare function ProtectedAction({ permission, onAction, children, }: ProtectedActionProps): import("react/jsx-runtime").JSX.Element;
47
+ export {};
48
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/permissions/components.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAc,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAMtE,UAAU,oBAAqB,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC7D,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,QAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAQtB;AAMD,UAAU,kBAAmB,SAAQ,cAAc,CAAC,GAAG,CAAC;IACtD,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,QAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAQpB;AAMD,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,WAAW,EACX,OAAO,EACP,QAAe,EACf,QAAQ,GACT,EAAE,qBAAqB,2CAwBvB;AAMD,UAAU,oBAAoB;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,SAAS,CAAC;CAC5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,QAAQ,EACR,QAAQ,GACT,EAAE,oBAAoB,2CAWtB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Permission Constants
3
+ */
4
+ import type { PermissionModule } from './types';
5
+ /**
6
+ * Available permission modules
7
+ */
8
+ export declare const PERMISSION_MODULES: PermissionModule[];
9
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/permissions/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAShD,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Permission Hooks
3
+ *
4
+ * React hooks for permission checks.
5
+ */
6
+ import type { PermissionCode, PermissionCheckOptions, PermissionModule } from './types';
7
+ /**
8
+ * Hook for checking a single permission
9
+ */
10
+ export declare function usePermission(permission: PermissionCode): boolean;
11
+ /**
12
+ * Alias for usePermission
13
+ */
14
+ export declare const useHasPermission: typeof usePermission;
15
+ /**
16
+ * Hook for checking multiple permissions
17
+ */
18
+ export declare function usePermissions(permissions: PermissionCode[], options?: PermissionCheckOptions): import("./types").PermissionCheckResult;
19
+ /**
20
+ * Alias for usePermissions
21
+ */
22
+ export declare const useHasPermissions: typeof usePermissions;
23
+ /**
24
+ * Hook for checking module-level permissions
25
+ */
26
+ export declare function useModulePermission(module: PermissionModule): boolean;
27
+ /**
28
+ * Alias for useModulePermission
29
+ */
30
+ export declare const useHasModulePermission: typeof useModulePermission;
31
+ /**
32
+ * Hook for getting a memoized permission checker function
33
+ */
34
+ export declare function usePermissionChecker(): (permission: PermissionCode) => boolean;
35
+ /**
36
+ * Hook for getting all user permissions
37
+ */
38
+ export declare function useAllPermissions(): readonly PermissionCode[];
39
+ /**
40
+ * Hook for field-level permissions
41
+ */
42
+ export declare function useFieldPermissions(module: PermissionModule, entity: string): import("./types").FieldPermissionResult;
43
+ /**
44
+ * Hook for permission loading state
45
+ */
46
+ export declare function usePermissionLoading(): boolean;
47
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/permissions/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAExF;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAGjE;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,sBAAgB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,cAAc,EAAE,EAC7B,OAAO,CAAC,EAAE,sBAAsB,2CAOjC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,uBAAiB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAGrE;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,4BAAsB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,oBAAoB,iBAGnB,cAAc,aAG9B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,cAAc,EAAE,CAG7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,2CAM3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C"}
@@ -1,2 +1,28 @@
1
- import { FieldPermissionResult, PERMISSION_MODULES$1 as PERMISSION_MODULES, PermissionCheckOptions, PermissionCheckResult, PermissionChecker$1 as PermissionChecker, PermissionCode, PermissionInitializer$1 as PermissionInitializer, PermissionModule, ProtectedAction$1 as ProtectedAction, ProtectedButton$1 as ProtectedButton, ProtectedLink$1 as ProtectedLink, ProtectedSection$1 as ProtectedSection, getPermissionChecker$1 as getPermissionChecker, getPermissions$1 as getPermissions, initializePermissions$1 as initializePermissions, useAllPermissions$1 as useAllPermissions, useHasModulePermission$1 as useHasModulePermission, useHasPermission$1 as useHasPermission, useHasPermissions$1 as useHasPermissions, useModulePermission$1 as useModulePermission, usePermission$1 as usePermission, usePermissionChecker$1 as usePermissionChecker, usePermissionStore$1 as usePermissionStore, usePermissions$1 as usePermissions } from "../index-BIJOC8Fb.js";
2
- export { FieldPermissionResult, PERMISSION_MODULES, PermissionCheckOptions, PermissionCheckResult, PermissionChecker, PermissionCode, PermissionInitializer, PermissionModule, ProtectedAction, ProtectedButton, ProtectedLink, ProtectedSection, getPermissionChecker, getPermissions, initializePermissions, useAllPermissions, useHasModulePermission, useHasPermission, useHasPermissions, useModulePermission, usePermission, usePermissionChecker, usePermissionStore, usePermissions };
1
+ /**
2
+ * Permissions Module
3
+ *
4
+ * Role-based access control system with React hooks and components.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * import { usePermission, ProtectedButton } from '@eminuckan/spine/permissions';
9
+ *
10
+ * function MyComponent() {
11
+ * const canEdit = usePermission('Identity.Users.Edit');
12
+ *
13
+ * return (
14
+ * <ProtectedButton permission="Identity.Users.Create">
15
+ * Create User
16
+ * </ProtectedButton>
17
+ * );
18
+ * }
19
+ * ```
20
+ */
21
+ export type { PermissionCode, PermissionModule, PermissionCheckOptions, PermissionCheckResult, FieldPermissionResult, } from './types';
22
+ export { PermissionChecker } from './permission-service';
23
+ export { usePermissionStore, initializePermissions, getPermissionChecker, getPermissions, } from './permission-store';
24
+ export { PermissionInitializer } from './permission-initializer';
25
+ export { usePermission, useHasPermission, usePermissions, useHasPermissions, useModulePermission, useHasModulePermission, usePermissionChecker, useAllPermissions, } from './hooks';
26
+ export { ProtectedButton, ProtectedLink, ProtectedSection, ProtectedAction, } from './components';
27
+ export { PERMISSION_MODULES } from './constants';
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Permission Initializer Component
3
+ *
4
+ * Initializes permission store from identity context.
5
+ */
6
+ import { type ReactNode } from 'react';
7
+ import type { PermissionCode } from './types';
8
+ interface PermissionInitializerProps {
9
+ permissions: PermissionCode[];
10
+ isLoading?: boolean;
11
+ children: ReactNode;
12
+ }
13
+ /**
14
+ * Component that initializes permissions from props
15
+ */
16
+ export declare function PermissionInitializer({ permissions, isLoading, children, }: PermissionInitializerProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=permission-initializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-initializer.d.ts","sourceRoot":"","sources":["../../src/permissions/permission-initializer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,0BAA0B;IAClC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,WAAW,EACX,SAAiB,EACjB,QAAQ,GACT,EAAE,0BAA0B,2CAM5B"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Permission Service
3
+ *
4
+ * Core permission checking logic.
5
+ */
6
+ import type { PermissionCode, PermissionModule, PermissionCheckOptions, PermissionCheckResult, FieldPermissionResult } from './types';
7
+ /**
8
+ * Permission Checker Class
9
+ *
10
+ * Provides methods for checking user permissions.
11
+ */
12
+ export declare class PermissionChecker {
13
+ private permissions;
14
+ private permissionArray;
15
+ constructor(permissions: PermissionCode[]);
16
+ /**
17
+ * Check if user has a single permission
18
+ */
19
+ hasPermission(permission: PermissionCode): boolean;
20
+ /**
21
+ * Check multiple permissions with AND/OR logic
22
+ */
23
+ hasPermissions(permissions: PermissionCode[], options?: PermissionCheckOptions): PermissionCheckResult;
24
+ /**
25
+ * Check wildcard permission pattern
26
+ */
27
+ private hasWildcardPermission;
28
+ /**
29
+ * Check if user has any permission in a module
30
+ */
31
+ hasModulePermission(module: PermissionModule): boolean;
32
+ /**
33
+ * Get field-level permissions for an entity
34
+ */
35
+ getFieldPermissions(module: PermissionModule, entity: string): FieldPermissionResult;
36
+ /**
37
+ * Get all permissions
38
+ */
39
+ getAllPermissions(): readonly PermissionCode[];
40
+ /**
41
+ * Get permissions for a specific module
42
+ */
43
+ getModulePermissions(module: PermissionModule): PermissionCode[];
44
+ /**
45
+ * Check if user has any permissions
46
+ */
47
+ hasAnyPermissions(): boolean;
48
+ /**
49
+ * Get permission count
50
+ */
51
+ getPermissionCount(): number;
52
+ }
53
+ //# sourceMappingURL=permission-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-service.d.ts","sourceRoot":"","sources":["../../src/permissions/permission-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,eAAe,CAAmB;gBAE9B,WAAW,EAAE,cAAc,EAAE;IAKzC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAIlD;;OAEG;IACH,cAAc,CACZ,WAAW,EAAE,cAAc,EAAE,EAC7B,OAAO,GAAE,sBAA2B,GACnC,qBAAqB;IA8BxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAKtD;;OAEG;IACH,mBAAmB,CACjB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,qBAAqB;IAWxB;;OAEG;IACH,iBAAiB,IAAI,SAAS,cAAc,EAAE;IAI9C;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,EAAE;IAKhE;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAG7B"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Permission Store (Zustand)
3
+ *
4
+ * State management for permissions.
5
+ */
6
+ import { PermissionChecker } from './permission-service';
7
+ import type { PermissionCode } from './types';
8
+ /**
9
+ * Permission store state interface
10
+ */
11
+ interface PermissionState {
12
+ checker: PermissionChecker;
13
+ permissions: PermissionCode[];
14
+ isLoading: boolean;
15
+ setPermissions: (permissions: PermissionCode[]) => void;
16
+ setLoading: (isLoading: boolean) => void;
17
+ reset: () => void;
18
+ }
19
+ /**
20
+ * Selectors for selective subscription
21
+ */
22
+ export declare const selectChecker: (state: PermissionState) => PermissionChecker;
23
+ export declare const selectPermissions: (state: PermissionState) => string[];
24
+ export declare const selectIsLoading: (state: PermissionState) => boolean;
25
+ /**
26
+ * Permission store
27
+ */
28
+ export declare const usePermissionStore: import("zustand").UseBoundStore<import("zustand").StoreApi<PermissionState>>;
29
+ /**
30
+ * Initialize permission store
31
+ */
32
+ export declare function initializePermissions(permissions: PermissionCode[], isLoading?: boolean): void;
33
+ /**
34
+ * Get permission checker outside React components
35
+ */
36
+ export declare function getPermissionChecker(): PermissionChecker;
37
+ /**
38
+ * Get all permissions outside React components
39
+ */
40
+ export declare function getPermissions(): PermissionCode[];
41
+ export {};
42
+ //# sourceMappingURL=permission-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-store.d.ts","sourceRoot":"","sources":["../../src/permissions/permission-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,eAAe,sBAAkB,CAAC;AACvE,eAAO,MAAM,iBAAiB,GAAI,OAAO,eAAe,aAAsB,CAAC;AAC/E,eAAO,MAAM,eAAe,GAAI,OAAO,eAAe,YAAoB,CAAC;AAW3E;;GAEG;AACH,eAAO,MAAM,kBAAkB,8EAiB5B,CAAC;AAEJ;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,cAAc,EAAE,EAC7B,SAAS,GAAE,OAAe,GACzB,IAAI,CAGN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,cAAc,EAAE,CAEjD"}
@@ -0,0 +1,33 @@
1
+ import type { PermissionCheckOptions, PermissionCode } from './types';
2
+ export interface PermissionRouteSession {
3
+ user?: {
4
+ sub?: string;
5
+ email?: string | null;
6
+ } | null;
7
+ accessToken?: string | null;
8
+ }
9
+ export interface PermissionRouteContext {
10
+ permissions: PermissionCode[];
11
+ currentTenant?: string | null;
12
+ }
13
+ export interface ForbiddenPermissionDetails {
14
+ request: Request;
15
+ permission: PermissionCode | PermissionCode[];
16
+ permissionsToCheck: PermissionCode[];
17
+ missingPermissions?: PermissionCode[];
18
+ options: PermissionCheckOptions;
19
+ session: PermissionRouteSession;
20
+ context: PermissionRouteContext;
21
+ }
22
+ export interface PermissionRouteProtectionConfig {
23
+ getSession?: (request: Request) => Promise<PermissionRouteSession>;
24
+ resolveContext?: (request: Request, session: PermissionRouteSession) => Promise<PermissionRouteContext>;
25
+ createUnauthorizedResponse?: (request: Request, session: PermissionRouteSession) => Response;
26
+ createForbiddenResponse?: (details: ForbiddenPermissionDetails) => Response;
27
+ }
28
+ export declare function configurePermissionRouteProtection(config: PermissionRouteProtectionConfig): void;
29
+ export declare function resetPermissionRouteProtection(): void;
30
+ export declare function requirePermission(request: Request, permission: PermissionCode | PermissionCode[], options?: PermissionCheckOptions): Promise<void>;
31
+ export declare function checkPermission(request: Request, permission: PermissionCode | PermissionCode[], options?: PermissionCheckOptions): Promise<boolean>;
32
+ export declare function withPermission<TLoaderData>(permission: PermissionCode | PermissionCode[], loader: (args: any) => Promise<TLoaderData>, options?: PermissionCheckOptions): (args: any) => Promise<TLoaderData>;
33
+ //# sourceMappingURL=route-protection.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-protection.server.d.ts","sourceRoot":"","sources":["../../src/permissions/route-protection.server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,GAAG,IAAI,CAAC;IACT,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAC9C,kBAAkB,EAAE,cAAc,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IACtC,OAAO,EAAE,sBAAsB,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,sBAAsB,KAC5B,QAAQ,CAAC;IACd,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,QAAQ,CAAC;CAC7E;AA6CD,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,+BAA+B,GACtC,IAAI,CAKN;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAkBD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,EAC7C,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,EAC7C,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,wBAAgB,cAAc,CAAC,WAAW,EACxC,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,EAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,sBAAsB,IAElB,MAAM,GAAG,KAAG,OAAO,CAAC,WAAW,CAAC,CAI/C"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Permission Types
3
+ */
4
+ /**
5
+ * Permission code string type
6
+ */
7
+ export type PermissionCode = string;
8
+ /**
9
+ * Permission module types
10
+ */
11
+ export type PermissionModule = 'Identity' | 'PropertyManagement' | 'Leasing' | 'Accounting' | 'Tasks' | 'People' | 'Organization' | 'Subscription';
12
+ /**
13
+ * Permission check options
14
+ */
15
+ export interface PermissionCheckOptions {
16
+ /**
17
+ * Operator for multiple permissions check
18
+ * @default 'OR'
19
+ */
20
+ operator?: 'AND' | 'OR';
21
+ /**
22
+ * Enable wildcard pattern matching
23
+ * @default false
24
+ */
25
+ wildcard?: boolean;
26
+ }
27
+ /**
28
+ * Permission check result
29
+ */
30
+ export interface PermissionCheckResult {
31
+ hasPermission: boolean;
32
+ matchedPermissions: PermissionCode[];
33
+ missingPermissions: PermissionCode[];
34
+ }
35
+ /**
36
+ * Field permission result
37
+ */
38
+ export interface FieldPermissionResult {
39
+ canView: boolean;
40
+ canEdit: boolean;
41
+ canCreate: boolean;
42
+ canDelete: boolean;
43
+ }
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/permissions/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,oBAAoB,GACpB,SAAS,GACT,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,cAAc,GACd,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,cAAc,EAAE,CAAC;IACrC,kBAAkB,EAAE,cAAc,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -1,2 +1,8 @@
1
- import { CachePreset, CachePresets, InvalidationHelpers, LogoutHandler, QueryClientConfig, QueryLogger, cachePresets$1 as cachePresets, createQueryClient$1 as createQueryClient, createQueryKeyFactory$1 as createQueryKeyFactory, invalidationHelpers$1 as invalidationHelpers } from "../index-CfQsb3l_.js";
2
- export { CachePreset, CachePresets, InvalidationHelpers, LogoutHandler, QueryClientConfig, QueryLogger, cachePresets, createQueryClient, createQueryKeyFactory, invalidationHelpers };
1
+ /**
2
+ * Query Client Module
3
+ *
4
+ * TanStack Query configuration and utilities.
5
+ */
6
+ export type { QueryLogger, LogoutHandler, QueryClientConfig, CachePreset, CachePresets, InvalidationHelpers, } from './types';
7
+ export { createQueryClient, cachePresets, createQueryKeyFactory, invalidationHelpers, } from './query-config';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query-client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
@@ -1,3 +1,3 @@
1
- import { cachePresets, createQueryClient, createQueryKeyFactory, invalidationHelpers } from "../query-client-DRPQIKHX.js";
1
+ import { cachePresets, createQueryClient, createQueryKeyFactory, invalidationHelpers } from "../query-client-Bpe08pk9.js";
2
2
 
3
3
  export { cachePresets, createQueryClient, createQueryKeyFactory, invalidationHelpers };
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Query Client Configuration
3
+ *
4
+ * Optimized caching strategy for different types of data:
5
+ * - Static data (rarely changes): Long staleTime and gcTime
6
+ * - Dynamic data (changes frequently): Short staleTime
7
+ * - Critical data (needs to be fresh): Very short staleTime with prefetching
8
+ */
9
+ import { QueryClient } from '@tanstack/react-query';
10
+ import type { QueryClientConfig, CachePresets } from './types';
11
+ /**
12
+ * Create optimized QueryClient instance
13
+ *
14
+ * @param config - Configuration options
15
+ * @returns Configured QueryClient with optimized defaults
16
+ */
17
+ export declare function createQueryClient(config?: QueryClientConfig): QueryClient;
18
+ /**
19
+ * Cache Presets for different data types
20
+ *
21
+ * Use these presets for consistent caching across the application.
22
+ */
23
+ export declare const cachePresets: CachePresets;
24
+ /**
25
+ * Create base query keys for a module
26
+ */
27
+ export declare function createQueryKeyFactory<T extends string>(module: T): {
28
+ all: readonly [T];
29
+ lists: () => readonly [T, 'list'];
30
+ list: (filters?: Record<string, unknown>) => readonly [T, 'list', Record<string, unknown>?];
31
+ details: () => readonly [T, 'detail'];
32
+ detail: (id: string) => readonly [T, 'detail', string];
33
+ };
34
+ /**
35
+ * Invalidation helpers for common patterns
36
+ */
37
+ export declare const invalidationHelpers: {
38
+ /**
39
+ * Invalidate all queries for a module
40
+ */
41
+ invalidateModule: (queryClient: QueryClient, module: string) => Promise<void>;
42
+ /**
43
+ * Invalidate all list queries for a module
44
+ */
45
+ invalidateLists: (queryClient: QueryClient, module: string) => Promise<void>;
46
+ /**
47
+ * Invalidate a specific detail query
48
+ */
49
+ invalidateDetail: (queryClient: QueryClient, module: string, id: string) => Promise<void>;
50
+ /**
51
+ * Invalidate and refetch (useful for critical data)
52
+ */
53
+ invalidateAndRefetch: (queryClient: QueryClient, queryKey: readonly unknown[]) => Promise<void>;
54
+ };
55
+ //# sourceMappingURL=query-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-config.d.ts","sourceRoot":"","sources":["../../src/query-client/query-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAA6B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA6D/D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,iBAAsB,GAAG,WAAW,CAqE7E;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,YAwC1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EACpD,MAAM,EAAE,CAAC,GACR;IACD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAClB,KAAK,EAAE,MAAM,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,EAAE,MAAM,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;CACxD,CAQA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;oCACmC,WAAW,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;IAIjF;;OAEG;mCACkC,WAAW,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;IAIhF;;OAEG;oCAEY,WAAW,UAChB,MAAM,MACV,MAAM,KACT,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;wCACuC,WAAW,YAAY,SAAS,OAAO,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;CAIpG,CAAC"}