@goplusvn/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/audit/index.d.mts +115 -0
  2. package/dist/audit/index.d.ts +115 -0
  3. package/dist/audit/index.js +204 -0
  4. package/dist/audit/index.js.map +1 -0
  5. package/dist/audit/index.mjs +200 -0
  6. package/dist/audit/index.mjs.map +1 -0
  7. package/dist/auth/index.d.mts +86 -0
  8. package/dist/auth/index.d.ts +86 -0
  9. package/dist/auth/index.js +210 -0
  10. package/dist/auth/index.js.map +1 -0
  11. package/dist/auth/index.mjs +198 -0
  12. package/dist/auth/index.mjs.map +1 -0
  13. package/dist/button-1dWvP9Ib.d.mts +30 -0
  14. package/dist/button-1dWvP9Ib.d.ts +30 -0
  15. package/dist/calendar-2QzdEo1z.d.mts +20 -0
  16. package/dist/calendar-2QzdEo1z.d.ts +20 -0
  17. package/dist/code-generation/index.d.mts +30 -0
  18. package/dist/code-generation/index.d.ts +30 -0
  19. package/dist/code-generation/index.js +31 -0
  20. package/dist/code-generation/index.js.map +1 -0
  21. package/dist/code-generation/index.mjs +28 -0
  22. package/dist/code-generation/index.mjs.map +1 -0
  23. package/dist/configs/index.d.mts +175 -0
  24. package/dist/configs/index.d.ts +175 -0
  25. package/dist/configs/index.js +254 -0
  26. package/dist/configs/index.js.map +1 -0
  27. package/dist/configs/index.mjs +233 -0
  28. package/dist/configs/index.mjs.map +1 -0
  29. package/dist/crud/index.d.mts +646 -0
  30. package/dist/crud/index.d.ts +646 -0
  31. package/dist/crud/index.js +11772 -0
  32. package/dist/crud/index.js.map +1 -0
  33. package/dist/crud/index.mjs +11665 -0
  34. package/dist/crud/index.mjs.map +1 -0
  35. package/dist/crud/server.d.mts +20 -0
  36. package/dist/crud/server.d.ts +20 -0
  37. package/dist/crud/server.js +123 -0
  38. package/dist/crud/server.js.map +1 -0
  39. package/dist/crud/server.mjs +120 -0
  40. package/dist/crud/server.mjs.map +1 -0
  41. package/dist/data-table-skeleton-12NA8Mjx.d.mts +39 -0
  42. package/dist/data-table-skeleton-12NA8Mjx.d.ts +39 -0
  43. package/dist/dialog-bKfjZMTd.d.mts +22 -0
  44. package/dist/dialog-bKfjZMTd.d.ts +22 -0
  45. package/dist/dynamic-icon-DrGIiu2N.d.mts +10 -0
  46. package/dist/dynamic-icon-DrGIiu2N.d.ts +10 -0
  47. package/dist/home/index.d.mts +269 -0
  48. package/dist/home/index.d.ts +269 -0
  49. package/dist/home/index.js +1678 -0
  50. package/dist/home/index.js.map +1 -0
  51. package/dist/home/index.mjs +1635 -0
  52. package/dist/home/index.mjs.map +1 -0
  53. package/dist/hooks/index.d.mts +7 -0
  54. package/dist/hooks/index.d.ts +7 -0
  55. package/dist/hooks/index.js +8316 -0
  56. package/dist/hooks/index.js.map +1 -0
  57. package/dist/hooks/index.mjs +8255 -0
  58. package/dist/hooks/index.mjs.map +1 -0
  59. package/dist/index-50hpiPrV.d.ts +116 -0
  60. package/dist/index-B9zQVEVi.d.mts +116 -0
  61. package/dist/index.d.mts +5 -0
  62. package/dist/index.d.ts +5 -0
  63. package/dist/index.js +123 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/index.mjs +118 -0
  66. package/dist/index.mjs.map +1 -0
  67. package/dist/infrastructure/index.d.mts +423 -0
  68. package/dist/infrastructure/index.d.ts +423 -0
  69. package/dist/infrastructure/index.js +633 -0
  70. package/dist/infrastructure/index.js.map +1 -0
  71. package/dist/infrastructure/index.mjs +619 -0
  72. package/dist/infrastructure/index.mjs.map +1 -0
  73. package/dist/label-DWTEkNPo.d.ts +226 -0
  74. package/dist/label-LPpdcoBx.d.mts +226 -0
  75. package/dist/layout/index.d.mts +48 -0
  76. package/dist/layout/index.d.ts +48 -0
  77. package/dist/layout/index.js +117 -0
  78. package/dist/layout/index.js.map +1 -0
  79. package/dist/layout/index.mjs +90 -0
  80. package/dist/layout/index.mjs.map +1 -0
  81. package/dist/navigation/index.d.mts +16 -0
  82. package/dist/navigation/index.d.ts +16 -0
  83. package/dist/navigation/index.js +53 -0
  84. package/dist/navigation/index.js.map +1 -0
  85. package/dist/navigation/index.mjs +50 -0
  86. package/dist/navigation/index.mjs.map +1 -0
  87. package/dist/notification/index.d.mts +105 -0
  88. package/dist/notification/index.d.ts +105 -0
  89. package/dist/notification/index.js +278 -0
  90. package/dist/notification/index.js.map +1 -0
  91. package/dist/notification/index.mjs +274 -0
  92. package/dist/notification/index.mjs.map +1 -0
  93. package/dist/organization/index.d.mts +99 -0
  94. package/dist/organization/index.d.ts +99 -0
  95. package/dist/organization/index.js +360 -0
  96. package/dist/organization/index.js.map +1 -0
  97. package/dist/organization/index.mjs +352 -0
  98. package/dist/organization/index.mjs.map +1 -0
  99. package/dist/plugin/index.d.mts +83 -0
  100. package/dist/plugin/index.d.ts +83 -0
  101. package/dist/plugin/index.js +86 -0
  102. package/dist/plugin/index.js.map +1 -0
  103. package/dist/plugin/index.mjs +84 -0
  104. package/dist/plugin/index.mjs.map +1 -0
  105. package/dist/providers/index.d.mts +25 -0
  106. package/dist/providers/index.d.ts +25 -0
  107. package/dist/providers/index.js +84 -0
  108. package/dist/providers/index.js.map +1 -0
  109. package/dist/providers/index.mjs +77 -0
  110. package/dist/providers/index.mjs.map +1 -0
  111. package/dist/rbac/index.d.mts +226 -0
  112. package/dist/rbac/index.d.ts +226 -0
  113. package/dist/rbac/index.js +4784 -0
  114. package/dist/rbac/index.js.map +1 -0
  115. package/dist/rbac/index.mjs +4722 -0
  116. package/dist/rbac/index.mjs.map +1 -0
  117. package/dist/rbac/permissions.d.mts +26 -0
  118. package/dist/rbac/permissions.d.ts +26 -0
  119. package/dist/rbac/permissions.js +94 -0
  120. package/dist/rbac/permissions.js.map +1 -0
  121. package/dist/rbac/permissions.mjs +90 -0
  122. package/dist/rbac/permissions.mjs.map +1 -0
  123. package/dist/rbac/server.d.mts +1 -0
  124. package/dist/rbac/server.d.ts +1 -0
  125. package/dist/rbac/server.js +128 -0
  126. package/dist/rbac/server.js.map +1 -0
  127. package/dist/rbac/server.mjs +124 -0
  128. package/dist/rbac/server.mjs.map +1 -0
  129. package/dist/schemas/index.d.mts +1257 -0
  130. package/dist/schemas/index.d.ts +1257 -0
  131. package/dist/schemas/index.js +572 -0
  132. package/dist/schemas/index.js.map +1 -0
  133. package/dist/schemas/index.mjs +523 -0
  134. package/dist/schemas/index.mjs.map +1 -0
  135. package/dist/server-QuYCTa89.d.mts +83 -0
  136. package/dist/server-QuYCTa89.d.ts +83 -0
  137. package/dist/sonner-C74GlRDQ.d.mts +71 -0
  138. package/dist/sonner-C74GlRDQ.d.ts +71 -0
  139. package/dist/status-BOXZgIqX.d.mts +12 -0
  140. package/dist/status-BOXZgIqX.d.ts +12 -0
  141. package/dist/system/index.d.mts +77 -0
  142. package/dist/system/index.d.ts +77 -0
  143. package/dist/system/index.js +102 -0
  144. package/dist/system/index.js.map +1 -0
  145. package/dist/system/index.mjs +100 -0
  146. package/dist/system/index.mjs.map +1 -0
  147. package/dist/tabs-C6FfBwPY.d.mts +18 -0
  148. package/dist/tabs-C6FfBwPY.d.ts +18 -0
  149. package/dist/tenant-provider-B8eC_Wpb.d.mts +27 -0
  150. package/dist/tenant-provider-B8eC_Wpb.d.ts +27 -0
  151. package/dist/types/index.d.mts +469 -0
  152. package/dist/types/index.d.ts +469 -0
  153. package/dist/types/index.js +25 -0
  154. package/dist/types/index.js.map +1 -0
  155. package/dist/types/index.mjs +21 -0
  156. package/dist/types/index.mjs.map +1 -0
  157. package/dist/ui/auth.d.mts +39 -0
  158. package/dist/ui/auth.d.ts +39 -0
  159. package/dist/ui/auth.js +4941 -0
  160. package/dist/ui/auth.js.map +1 -0
  161. package/dist/ui/auth.mjs +4896 -0
  162. package/dist/ui/auth.mjs.map +1 -0
  163. package/dist/ui/crud.d.mts +2 -0
  164. package/dist/ui/crud.d.ts +2 -0
  165. package/dist/ui/crud.js +4 -0
  166. package/dist/ui/crud.js.map +1 -0
  167. package/dist/ui/crud.mjs +3 -0
  168. package/dist/ui/crud.mjs.map +1 -0
  169. package/dist/ui/data-display.d.mts +596 -0
  170. package/dist/ui/data-display.d.ts +596 -0
  171. package/dist/ui/data-display.js +5307 -0
  172. package/dist/ui/data-display.js.map +1 -0
  173. package/dist/ui/data-display.mjs +5212 -0
  174. package/dist/ui/data-display.mjs.map +1 -0
  175. package/dist/ui/feedback.d.mts +55 -0
  176. package/dist/ui/feedback.d.ts +55 -0
  177. package/dist/ui/feedback.js +2608 -0
  178. package/dist/ui/feedback.js.map +1 -0
  179. package/dist/ui/feedback.mjs +2526 -0
  180. package/dist/ui/feedback.mjs.map +1 -0
  181. package/dist/ui/forms.d.mts +309 -0
  182. package/dist/ui/forms.d.ts +309 -0
  183. package/dist/ui/forms.js +4656 -0
  184. package/dist/ui/forms.js.map +1 -0
  185. package/dist/ui/forms.mjs +4571 -0
  186. package/dist/ui/forms.mjs.map +1 -0
  187. package/dist/ui/index.d.mts +331 -0
  188. package/dist/ui/index.d.ts +331 -0
  189. package/dist/ui/index.js +16953 -0
  190. package/dist/ui/index.js.map +1 -0
  191. package/dist/ui/index.mjs +16598 -0
  192. package/dist/ui/index.mjs.map +1 -0
  193. package/dist/ui/primitives/client.d.mts +61 -0
  194. package/dist/ui/primitives/client.d.ts +61 -0
  195. package/dist/ui/primitives/client.js +3408 -0
  196. package/dist/ui/primitives/client.js.map +1 -0
  197. package/dist/ui/primitives/client.mjs +3256 -0
  198. package/dist/ui/primitives/client.mjs.map +1 -0
  199. package/dist/ui/primitives.d.mts +113 -0
  200. package/dist/ui/primitives.d.ts +113 -0
  201. package/dist/ui/primitives.js +3356 -0
  202. package/dist/ui/primitives.js.map +1 -0
  203. package/dist/ui/primitives.mjs +3227 -0
  204. package/dist/ui/primitives.mjs.map +1 -0
  205. package/dist/user/index.d.mts +228 -0
  206. package/dist/user/index.d.ts +228 -0
  207. package/dist/user/index.js +4306 -0
  208. package/dist/user/index.js.map +1 -0
  209. package/dist/user/index.mjs +4260 -0
  210. package/dist/user/index.mjs.map +1 -0
  211. package/dist/utils/index.d.mts +205 -0
  212. package/dist/utils/index.d.ts +205 -0
  213. package/dist/utils/index.js +574 -0
  214. package/dist/utils/index.js.map +1 -0
  215. package/dist/utils/index.mjs +514 -0
  216. package/dist/utils/index.mjs.map +1 -0
  217. package/dist/workflow/index.d.mts +40 -0
  218. package/dist/workflow/index.d.ts +40 -0
  219. package/dist/workflow/index.js +3710 -0
  220. package/dist/workflow/index.js.map +1 -0
  221. package/dist/workflow/index.mjs +3677 -0
  222. package/dist/workflow/index.mjs.map +1 -0
  223. package/package.json +311 -0
@@ -0,0 +1,226 @@
1
+ import { Permission, CrudPermissions } from '../types/index.js';
2
+ import { Session } from 'next-auth';
3
+ export { R as ResourcePrismaClient, a as RoleData, b as RoleFilters, c as RolePrismaClient, g as getActionsForPermissionMatrix, d as getResourcesData, e as getResourcesForPermissionMatrix, f as getRolesData } from '../server-QuYCTa89.js';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import 'lucide-react';
6
+ import 'react';
7
+ import 'zod';
8
+
9
+ /**
10
+ * Interface defining the subset of Prisma Client required for RBAC operations.
11
+ * This allows the service to be agnostic of the actual PrismaClient instance.
12
+ */
13
+ interface RBACPrismaClient {
14
+ userRole: {
15
+ findMany: (args: {
16
+ where: {
17
+ userId: string;
18
+ };
19
+ select: {
20
+ roleCode: boolean;
21
+ role: {
22
+ select: {
23
+ rolePermissions: {
24
+ select: {
25
+ resourceCode: boolean;
26
+ actionCode: boolean;
27
+ };
28
+ };
29
+ };
30
+ };
31
+ };
32
+ }) => Promise<Array<{
33
+ roleCode: string;
34
+ role: {
35
+ rolePermissions: Array<{
36
+ resourceCode: string;
37
+ actionCode: string;
38
+ }>;
39
+ };
40
+ }>>;
41
+ };
42
+ }
43
+ /**
44
+ * Fetch user permissions from database based on roles.
45
+ * Deduplicates permissions by resourceCode:actionCode.
46
+ *
47
+ * @param db - The tenant-specific Prisma Client instance
48
+ * @param userId - The user ID to fetch permissions for
49
+ */
50
+ declare function getUserPermissionsFromDB(db: RBACPrismaClient, userId: string): Promise<Permission[]>;
51
+ /**
52
+ * Get permissions with caching.
53
+ *
54
+ * @param db - The tenant-specific Prisma Client instance
55
+ * @param userId - The user ID
56
+ * @param opts.forceRefresh - Bypass cache
57
+ */
58
+ declare function getCachedUserPermissions(db: RBACPrismaClient, userId: string, opts?: {
59
+ forceRefresh?: boolean;
60
+ }): Promise<Permission[]>;
61
+
62
+ /**
63
+ * Resource Validator
64
+ * Validates resource codes against DB with caching
65
+ */
66
+ interface ResourcePrismaClient {
67
+ resource: {
68
+ findUnique: (args: {
69
+ where: {
70
+ code: string;
71
+ };
72
+ }) => Promise<{
73
+ code: string;
74
+ } | null>;
75
+ findMany: (args?: {
76
+ select?: {
77
+ code: boolean;
78
+ };
79
+ }) => Promise<{
80
+ code: string;
81
+ }[]>;
82
+ };
83
+ }
84
+ /**
85
+ * Check if a resource code exists.
86
+ * Checks cache first, then DB if not found.
87
+ *
88
+ * @param db - Prisma client
89
+ * @param resourceCode - Resource code to validate
90
+ * @returns true if valid, false otherwise
91
+ */
92
+ declare function isValidResourceCode(db: ResourcePrismaClient, resourceCode: string): Promise<boolean>;
93
+ /**
94
+ * Get the correct resource code for permission checking.
95
+ * Priority: config.permissionResource > config.name > entity param
96
+ *
97
+ * @param config - Entity config (may be partial)
98
+ * @param entityParam - Entity param from URL
99
+ * @returns Resource code to use for permission check
100
+ */
101
+ declare function getPermissionResourceCode(config: {
102
+ permissionResource?: string;
103
+ name?: string;
104
+ } | null | undefined, entityParam: string): string;
105
+ /**
106
+ * Validate and get resource code for permission checking.
107
+ * Combines getPermissionResourceCode with DB validation.
108
+ *
109
+ * @param db - Prisma client
110
+ * @param config - Entity config
111
+ * @param entityParam - Entity param from URL
112
+ * @returns Object with resourceCode and isValid flag
113
+ */
114
+ declare function validatePermissionResource(db: ResourcePrismaClient, config: {
115
+ permissionResource?: string;
116
+ name?: string;
117
+ } | null | undefined, entityParam: string): Promise<{
118
+ resourceCode: string;
119
+ isValid: boolean;
120
+ }>;
121
+ /**
122
+ * Preload all resource codes into cache.
123
+ * Call this on app startup for better performance.
124
+ *
125
+ * @param db - Prisma client
126
+ */
127
+ declare function preloadResourceCodes(db: ResourcePrismaClient): Promise<void>;
128
+ /**
129
+ * Clear resource cache.
130
+ * Call when resources are added/removed.
131
+ */
132
+ declare function clearResourceCache(): Promise<void>;
133
+
134
+ type User = {
135
+ id: string;
136
+ name: string | null;
137
+ email: string | null;
138
+ image: string | null;
139
+ isActive: boolean;
140
+ jobTitle?: string;
141
+ };
142
+ type Role = {
143
+ id: string;
144
+ name: string;
145
+ code: string;
146
+ description?: string | null | undefined;
147
+ status: string;
148
+ permissions: string[];
149
+ usersCount: number;
150
+ users: User[];
151
+ createdAt: string;
152
+ updatedAt: string;
153
+ createdBy?: string | null | undefined;
154
+ updatedBy?: string | null | undefined;
155
+ };
156
+ type RolesResponse = {
157
+ total: number;
158
+ page: number;
159
+ pageSize: number;
160
+ items: Role[];
161
+ };
162
+
163
+ interface RoleListPageProps {
164
+ dictionary: any;
165
+ permissions: CrudPermissions;
166
+ lang: string;
167
+ initialData: RolesResponse;
168
+ resources: Array<{
169
+ id: string;
170
+ code: string;
171
+ name: string;
172
+ group: string | null;
173
+ description: string | null;
174
+ icon: string | null;
175
+ order: number | null;
176
+ config: any;
177
+ }>;
178
+ actions: Array<{
179
+ id: string;
180
+ code: string;
181
+ name: string;
182
+ description: string | null;
183
+ isDefault?: boolean;
184
+ }>;
185
+ }
186
+ declare function RoleListPage({ dictionary, permissions, lang, initialData, resources, actions, }: RoleListPageProps): react_jsx_runtime.JSX.Element;
187
+
188
+ declare const CRUD_ACTIONS: {
189
+ readonly create: "create";
190
+ readonly view: "view";
191
+ readonly update: "update";
192
+ readonly delete: "delete";
193
+ readonly export: "export";
194
+ readonly import: "import";
195
+ readonly approve: "approve";
196
+ readonly reject: "reject";
197
+ };
198
+ type CrudAction = keyof typeof CRUD_ACTIONS;
199
+ declare function getActionCode(operation: CrudAction): string;
200
+ declare function getAllCrudActionCodes(): string[];
201
+ declare function isCrudAction(actionCode: string): boolean;
202
+ declare function getFromCache(userId: string): Promise<Permission[] | undefined>;
203
+ declare function setToCache(userId: string, data: Permission[]): Promise<void>;
204
+ declare const pendingQueries: Map<string, Promise<Permission[]>>;
205
+ declare function clearAllPermissionsCache(): Promise<void>;
206
+ declare function clearUserPermissionsCache(userId: string): Promise<void>;
207
+ declare function invalidateUserPermissions(userId: string): Promise<void>;
208
+
209
+ declare function getUserPermissions(session: Session | null): Permission[];
210
+ declare function getCrudPermissionsFromSession(session: Session | null, entity: string): {
211
+ create: boolean;
212
+ view: boolean;
213
+ update: boolean;
214
+ delete: boolean;
215
+ export: boolean;
216
+ import: boolean;
217
+ approve: boolean;
218
+ reject: boolean;
219
+ };
220
+ declare function checkPermission(session: Session | null, resourceCode: string, actionCode: string): boolean;
221
+ declare function hasPermission(session: Session | null, resourceCode: string, actionCode: string): boolean;
222
+ declare function requirePermission(session: Session | null, resourceCode: string, actionCode: string): void;
223
+ declare function hasRole(session: Session | null, roleCode: string): boolean;
224
+ declare function hasAnyRole(session: Session | null, roleCodes: string[]): boolean;
225
+
226
+ export { CRUD_ACTIONS, type CrudAction, type RBACPrismaClient, RoleListPage, checkPermission, clearAllPermissionsCache, clearResourceCache, clearUserPermissionsCache, getActionCode, getAllCrudActionCodes, getCachedUserPermissions, getCrudPermissionsFromSession, getFromCache, getPermissionResourceCode, getUserPermissions, getUserPermissionsFromDB, hasAnyRole, hasPermission, hasRole, invalidateUserPermissions, isCrudAction, isValidResourceCode, pendingQueries, preloadResourceCodes, requirePermission, setToCache, validatePermissionResource };