lapeh 2.3.6 → 2.3.8

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 (243) hide show
  1. package/bin/index.js +39 -56
  2. package/dist/generated/prisma/browser.d.ts +80 -0
  3. package/dist/generated/prisma/browser.d.ts.map +1 -0
  4. package/dist/generated/prisma/browser.js +56 -0
  5. package/dist/generated/prisma/client.d.ts +97 -0
  6. package/dist/generated/prisma/client.d.ts.map +1 -0
  7. package/dist/generated/prisma/client.js +68 -0
  8. package/dist/generated/prisma/commonInputTypes.d.ts +486 -0
  9. package/dist/generated/prisma/commonInputTypes.d.ts.map +1 -0
  10. package/dist/generated/prisma/commonInputTypes.js +11 -0
  11. package/dist/generated/prisma/enums.d.ts +2 -0
  12. package/dist/generated/prisma/enums.d.ts.map +1 -0
  13. package/dist/generated/prisma/enums.js +11 -0
  14. package/dist/generated/prisma/internal/class.d.ts +281 -0
  15. package/dist/generated/prisma/internal/class.d.ts.map +1 -0
  16. package/dist/generated/prisma/internal/class.js +76 -0
  17. package/dist/generated/prisma/internal/prismaNamespace.d.ts +1734 -0
  18. package/dist/generated/prisma/internal/prismaNamespace.d.ts.map +1 -0
  19. package/dist/generated/prisma/internal/prismaNamespace.js +260 -0
  20. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +200 -0
  21. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts.map +1 -0
  22. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +231 -0
  23. package/dist/generated/prisma/models/cache.d.ts +986 -0
  24. package/dist/generated/prisma/models/cache.d.ts.map +1 -0
  25. package/dist/generated/prisma/models/cache.js +2 -0
  26. package/dist/generated/prisma/models/cache_locks.d.ts +976 -0
  27. package/dist/generated/prisma/models/cache_locks.d.ts.map +1 -0
  28. package/dist/generated/prisma/models/cache_locks.js +2 -0
  29. package/dist/generated/prisma/models/failed_jobs.d.ts +1098 -0
  30. package/dist/generated/prisma/models/failed_jobs.d.ts.map +1 -0
  31. package/dist/generated/prisma/models/failed_jobs.js +2 -0
  32. package/dist/generated/prisma/models/job_batches.d.ts +1212 -0
  33. package/dist/generated/prisma/models/job_batches.d.ts.map +1 -0
  34. package/dist/generated/prisma/models/job_batches.js +2 -0
  35. package/dist/generated/prisma/models/jobs.d.ts +1112 -0
  36. package/dist/generated/prisma/models/jobs.d.ts.map +1 -0
  37. package/dist/generated/prisma/models/jobs.js +2 -0
  38. package/dist/generated/prisma/models/migrations.d.ts +979 -0
  39. package/dist/generated/prisma/models/migrations.d.ts.map +1 -0
  40. package/dist/generated/prisma/models/migrations.js +2 -0
  41. package/dist/generated/prisma/models/password_reset_tokens.d.ts +941 -0
  42. package/dist/generated/prisma/models/password_reset_tokens.d.ts.map +1 -0
  43. package/dist/generated/prisma/models/password_reset_tokens.js +2 -0
  44. package/dist/generated/prisma/models/permissions.d.ts +1333 -0
  45. package/dist/generated/prisma/models/permissions.d.ts.map +1 -0
  46. package/dist/generated/prisma/models/permissions.js +2 -0
  47. package/dist/generated/prisma/models/personal_access_tokens.d.ts +1178 -0
  48. package/dist/generated/prisma/models/personal_access_tokens.d.ts.map +1 -0
  49. package/dist/generated/prisma/models/personal_access_tokens.js +2 -0
  50. package/dist/generated/prisma/models/role_permissions.d.ts +1291 -0
  51. package/dist/generated/prisma/models/role_permissions.d.ts.map +1 -0
  52. package/dist/generated/prisma/models/role_permissions.js +2 -0
  53. package/dist/generated/prisma/models/roles.d.ts +1333 -0
  54. package/dist/generated/prisma/models/roles.d.ts.map +1 -0
  55. package/dist/generated/prisma/models/roles.js +2 -0
  56. package/dist/generated/prisma/models/sessions.d.ts +1073 -0
  57. package/dist/generated/prisma/models/sessions.d.ts.map +1 -0
  58. package/dist/generated/prisma/models/sessions.js +2 -0
  59. package/dist/generated/prisma/models/user_permissions.d.ts +1291 -0
  60. package/dist/generated/prisma/models/user_permissions.d.ts.map +1 -0
  61. package/dist/generated/prisma/models/user_permissions.js +2 -0
  62. package/dist/generated/prisma/models/user_roles.d.ts +1291 -0
  63. package/dist/generated/prisma/models/user_roles.d.ts.map +1 -0
  64. package/dist/generated/prisma/models/user_roles.js +2 -0
  65. package/dist/generated/prisma/models/users.d.ts +1513 -0
  66. package/dist/generated/prisma/models/users.d.ts.map +1 -0
  67. package/dist/generated/prisma/models/users.js +2 -0
  68. package/dist/generated/prisma/models.d.ts +17 -0
  69. package/dist/generated/prisma/models.d.ts.map +1 -0
  70. package/dist/generated/prisma/models.js +2 -0
  71. package/dist/lib/bootstrap.d.ts +2 -0
  72. package/dist/lib/bootstrap.d.ts.map +1 -0
  73. package/dist/lib/bootstrap.js +133 -0
  74. package/dist/lib/core/database.d.ts +3 -0
  75. package/dist/lib/core/database.d.ts.map +1 -0
  76. package/dist/lib/core/database.js +34 -0
  77. package/dist/lib/core/realtime.d.ts +3 -0
  78. package/dist/lib/core/realtime.d.ts.map +1 -0
  79. package/dist/lib/core/realtime.js +36 -0
  80. package/dist/lib/core/redis.d.ts +8 -0
  81. package/dist/lib/core/redis.d.ts.map +1 -0
  82. package/dist/lib/core/redis.js +123 -0
  83. package/dist/lib/core/serializer.d.ts +43 -0
  84. package/dist/lib/core/serializer.d.ts.map +1 -0
  85. package/dist/lib/core/serializer.js +66 -0
  86. package/dist/lib/core/server.d.ts +2 -0
  87. package/dist/lib/core/server.d.ts.map +1 -0
  88. package/dist/lib/core/server.js +60 -0
  89. package/dist/lib/middleware/auth.d.ts +4 -0
  90. package/dist/lib/middleware/auth.d.ts.map +1 -0
  91. package/dist/lib/middleware/auth.js +55 -0
  92. package/dist/lib/middleware/error.d.ts +3 -0
  93. package/dist/lib/middleware/error.d.ts.map +1 -0
  94. package/dist/lib/middleware/error.js +60 -0
  95. package/dist/lib/middleware/multipart.d.ts +4 -0
  96. package/dist/lib/middleware/multipart.d.ts.map +1 -0
  97. package/dist/lib/middleware/multipart.js +17 -0
  98. package/dist/lib/middleware/rateLimit.d.ts +2 -0
  99. package/dist/lib/middleware/rateLimit.d.ts.map +1 -0
  100. package/dist/lib/middleware/rateLimit.js +19 -0
  101. package/dist/lib/middleware/requestLogger.d.ts +3 -0
  102. package/dist/lib/middleware/requestLogger.d.ts.map +1 -0
  103. package/dist/lib/middleware/requestLogger.js +22 -0
  104. package/dist/lib/middleware/visitor.d.ts +3 -0
  105. package/dist/lib/middleware/visitor.d.ts.map +1 -0
  106. package/dist/lib/middleware/visitor.js +144 -0
  107. package/dist/lib/utils/logger.d.ts +11 -0
  108. package/dist/lib/utils/logger.d.ts.map +1 -0
  109. package/dist/lib/utils/logger.js +81 -0
  110. package/dist/lib/utils/pagination.d.ts +19 -0
  111. package/dist/lib/utils/pagination.d.ts.map +1 -0
  112. package/dist/lib/utils/pagination.js +34 -0
  113. package/dist/lib/utils/response.d.ts +11 -0
  114. package/dist/lib/utils/response.d.ts.map +1 -0
  115. package/dist/lib/utils/response.js +57 -0
  116. package/dist/lib/utils/validator.d.ts +38 -0
  117. package/dist/lib/utils/validator.d.ts.map +1 -0
  118. package/dist/lib/utils/validator.js +369 -0
  119. package/dist/prisma/seed.d.ts +2 -0
  120. package/dist/prisma/seed.d.ts.map +1 -0
  121. package/dist/prisma/seed.js +381 -0
  122. package/dist/src/controllers/authController.d.ts +11 -0
  123. package/dist/src/controllers/authController.d.ts.map +1 -0
  124. package/dist/src/controllers/authController.js +414 -0
  125. package/dist/src/controllers/petController.d.ts +7 -0
  126. package/dist/src/controllers/petController.d.ts.map +1 -0
  127. package/dist/src/controllers/petController.js +163 -0
  128. package/dist/src/controllers/rbacController.d.ts +16 -0
  129. package/dist/src/controllers/rbacController.d.ts.map +1 -0
  130. package/dist/src/controllers/rbacController.js +437 -0
  131. package/dist/src/core/database.d.ts +3 -0
  132. package/dist/src/core/database.d.ts.map +1 -0
  133. package/dist/src/core/database.js +34 -0
  134. package/dist/src/core/realtime.d.ts +3 -0
  135. package/dist/src/core/realtime.d.ts.map +1 -0
  136. package/dist/src/core/realtime.js +36 -0
  137. package/dist/src/core/redis.d.ts +8 -0
  138. package/dist/src/core/redis.d.ts.map +1 -0
  139. package/dist/src/core/redis.js +123 -0
  140. package/dist/src/core/serializer.d.ts +43 -0
  141. package/dist/src/core/serializer.d.ts.map +1 -0
  142. package/dist/src/core/serializer.js +66 -0
  143. package/dist/src/core/server.d.ts +2 -0
  144. package/dist/src/core/server.d.ts.map +1 -0
  145. package/dist/src/core/server.js +60 -0
  146. package/dist/src/index.d.ts +2 -0
  147. package/dist/src/index.d.ts.map +1 -0
  148. package/dist/src/index.js +98 -0
  149. package/dist/src/middleware/auth.d.ts +4 -0
  150. package/dist/src/middleware/auth.d.ts.map +1 -0
  151. package/dist/src/middleware/auth.js +48 -0
  152. package/dist/src/middleware/error.d.ts +3 -0
  153. package/dist/src/middleware/error.d.ts.map +1 -0
  154. package/dist/src/middleware/error.js +60 -0
  155. package/dist/src/middleware/multipart.d.ts +4 -0
  156. package/dist/src/middleware/multipart.d.ts.map +1 -0
  157. package/dist/src/middleware/multipart.js +17 -0
  158. package/dist/src/middleware/rateLimit.d.ts +2 -0
  159. package/dist/src/middleware/rateLimit.d.ts.map +1 -0
  160. package/dist/src/middleware/rateLimit.js +19 -0
  161. package/dist/src/middleware/requestLogger.d.ts +3 -0
  162. package/dist/src/middleware/requestLogger.d.ts.map +1 -0
  163. package/dist/src/middleware/requestLogger.js +22 -0
  164. package/dist/src/middleware/visitor.d.ts +3 -0
  165. package/dist/src/middleware/visitor.d.ts.map +1 -0
  166. package/dist/src/middleware/visitor.js +144 -0
  167. package/dist/src/prisma.d.ts +3 -0
  168. package/dist/src/prisma.d.ts.map +1 -0
  169. package/dist/src/prisma.js +34 -0
  170. package/dist/src/realtime.d.ts +3 -0
  171. package/dist/src/realtime.d.ts.map +1 -0
  172. package/dist/src/realtime.js +36 -0
  173. package/dist/src/redis.d.ts +8 -0
  174. package/dist/src/redis.d.ts.map +1 -0
  175. package/dist/src/redis.js +122 -0
  176. package/dist/src/routes/auth.d.ts +2 -0
  177. package/dist/src/routes/auth.d.ts.map +1 -0
  178. package/dist/src/routes/auth.js +45 -0
  179. package/dist/src/routes/index.d.ts +2 -0
  180. package/dist/src/routes/index.d.ts.map +1 -0
  181. package/dist/src/routes/index.js +14 -0
  182. package/dist/src/routes/pets.d.ts +3 -0
  183. package/dist/src/routes/pets.d.ts.map +1 -0
  184. package/dist/src/routes/pets.js +45 -0
  185. package/dist/src/routes/rbac.d.ts +2 -0
  186. package/dist/src/routes/rbac.d.ts.map +1 -0
  187. package/dist/src/routes/rbac.js +23 -0
  188. package/dist/src/schema/auth-schema.d.ts +76 -0
  189. package/dist/src/schema/auth-schema.d.ts.map +1 -0
  190. package/dist/src/schema/auth-schema.js +63 -0
  191. package/dist/src/schema/pet-schema.d.ts +28 -0
  192. package/dist/src/schema/pet-schema.d.ts.map +1 -0
  193. package/dist/src/schema/pet-schema.js +14 -0
  194. package/dist/src/server.d.ts +2 -0
  195. package/dist/src/server.d.ts.map +1 -0
  196. package/dist/src/server.js +31 -0
  197. package/dist/src/utils/logger.d.ts +11 -0
  198. package/dist/src/utils/logger.d.ts.map +1 -0
  199. package/dist/src/utils/logger.js +81 -0
  200. package/dist/src/utils/pagination.d.ts +19 -0
  201. package/dist/src/utils/pagination.d.ts.map +1 -0
  202. package/dist/src/utils/pagination.js +34 -0
  203. package/dist/src/utils/response.d.ts +11 -0
  204. package/dist/src/utils/response.d.ts.map +1 -0
  205. package/dist/src/utils/response.js +57 -0
  206. package/dist/src/utils/validator.d.ts +38 -0
  207. package/dist/src/utils/validator.d.ts.map +1 -0
  208. package/dist/src/utils/validator.js +369 -0
  209. package/lib/bootstrap.ts +6 -0
  210. package/package.json +26 -14
  211. package/.env.example +0 -19
  212. package/doc/ARCHITECTURE_GUIDE.md +0 -73
  213. package/doc/CHANGELOG.md +0 -77
  214. package/doc/CHEATSHEET.md +0 -94
  215. package/doc/CLI.md +0 -139
  216. package/doc/CONTRIBUTING.md +0 -105
  217. package/doc/DEPLOYMENT.md +0 -122
  218. package/doc/FAQ.md +0 -81
  219. package/doc/FEATURES.md +0 -165
  220. package/doc/GETTING_STARTED.md +0 -108
  221. package/doc/INTRODUCTION.md +0 -60
  222. package/doc/PACKAGES.md +0 -66
  223. package/doc/PERFORMANCE.md +0 -91
  224. package/doc/ROADMAP.md +0 -93
  225. package/doc/SECURITY.md +0 -93
  226. package/doc/STRUCTURE.md +0 -90
  227. package/doc/TUTORIAL.md +0 -192
  228. package/docker-compose.yml +0 -24
  229. package/eslint.config.mjs +0 -26
  230. package/framework.md +0 -168
  231. package/nodemon.json +0 -6
  232. package/prisma.config.ts +0 -15
  233. package/src/controllers/authController.ts +0 -469
  234. package/src/controllers/petController.ts +0 -194
  235. package/src/controllers/rbacController.ts +0 -478
  236. package/src/models/core.prisma +0 -163
  237. package/src/models/pets.prisma +0 -9
  238. package/src/routes/auth.ts +0 -74
  239. package/src/routes/index.ts +0 -10
  240. package/src/routes/pets.ts +0 -13
  241. package/src/routes/rbac.ts +0 -42
  242. package/storage/logs/.gitkeep +0 -0
  243. package/tsconfig.json +0 -30
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const dotenv_1 = __importDefault(require("dotenv"));
7
+ dotenv_1.default.config();
8
+ const database_1 = require("../lib/core/database");
9
+ const bcryptjs_1 = __importDefault(require("bcryptjs"));
10
+ const uuid_1 = require("uuid");
11
+ async function main() {
12
+ console.log("Start seeding...");
13
+ // 1. Create Users (Super Admin, Admin & User)
14
+ const passwordHash = await bcryptjs_1.default.hash("string", 10);
15
+ const superAdmin = await database_1.prisma.users.upsert({
16
+ where: { email: "sa@sa.com" },
17
+ update: {},
18
+ create: {
19
+ uuid: (0, uuid_1.v4)(),
20
+ name: "Super Admin",
21
+ email: "sa@sa.com",
22
+ password: passwordHash,
23
+ created_at: new Date(),
24
+ updated_at: new Date(),
25
+ },
26
+ });
27
+ console.log(`Created super admin: ${superAdmin.name}`);
28
+ const admin = await database_1.prisma.users.upsert({
29
+ where: { email: "a@a.com" },
30
+ update: {},
31
+ create: {
32
+ uuid: (0, uuid_1.v4)(),
33
+ name: "Admin User",
34
+ email: "a@a.com",
35
+ password: passwordHash,
36
+ created_at: new Date(),
37
+ updated_at: new Date(),
38
+ },
39
+ });
40
+ console.log(`Created admin: ${admin.name}`);
41
+ const user = await database_1.prisma.users.upsert({
42
+ where: { email: "u@u.com" },
43
+ update: {},
44
+ create: {
45
+ uuid: (0, uuid_1.v4)(),
46
+ name: "Regular User",
47
+ email: "u@u.com",
48
+ password: passwordHash,
49
+ created_at: new Date(),
50
+ updated_at: new Date(),
51
+ },
52
+ });
53
+ console.log(`Created user: ${user.name}`);
54
+ // 2. Seed Roles
55
+ const superAdminRole = await database_1.prisma.roles.upsert({
56
+ where: { slug: "super_admin" },
57
+ update: {},
58
+ create: {
59
+ name: "Super Admin",
60
+ slug: "super_admin",
61
+ description: "Full access to all resources",
62
+ created_at: new Date(),
63
+ updated_at: new Date(),
64
+ },
65
+ });
66
+ const adminRole = await database_1.prisma.roles.upsert({
67
+ where: { slug: "admin" },
68
+ update: {},
69
+ create: {
70
+ name: "Admin",
71
+ slug: "admin",
72
+ description: "Administrator",
73
+ created_at: new Date(),
74
+ updated_at: new Date(),
75
+ },
76
+ });
77
+ const userRole = await database_1.prisma.roles.upsert({
78
+ where: { slug: "user" },
79
+ update: {},
80
+ create: {
81
+ name: "User",
82
+ slug: "user",
83
+ description: "Regular user",
84
+ created_at: new Date(),
85
+ updated_at: new Date(),
86
+ },
87
+ });
88
+ console.log("Seeded roles");
89
+ // 3. Seed Permissions
90
+ const manageUsers = await database_1.prisma.permissions.upsert({
91
+ where: { slug: "users.manage" },
92
+ update: {},
93
+ create: {
94
+ name: "Manage Users",
95
+ slug: "users.manage",
96
+ description: "Create, update, and delete users",
97
+ created_at: new Date(),
98
+ updated_at: new Date(),
99
+ },
100
+ });
101
+ const manageUsersCreate = await database_1.prisma.permissions.upsert({
102
+ where: { slug: "users.create" },
103
+ update: {},
104
+ create: {
105
+ name: "Create Users",
106
+ slug: "users.create",
107
+ description: "Create users",
108
+ created_at: new Date(),
109
+ updated_at: new Date(),
110
+ },
111
+ });
112
+ const manageUsersView = await database_1.prisma.permissions.upsert({
113
+ where: { slug: "users.view" },
114
+ update: {},
115
+ create: {
116
+ name: "View Users",
117
+ slug: "users.view",
118
+ description: "View users",
119
+ created_at: new Date(),
120
+ updated_at: new Date(),
121
+ },
122
+ });
123
+ const manageUsersUpdate = await database_1.prisma.permissions.upsert({
124
+ where: { slug: "users.update" },
125
+ update: {},
126
+ create: {
127
+ name: "Update Users",
128
+ slug: "users.update",
129
+ description: "Update users",
130
+ created_at: new Date(),
131
+ updated_at: new Date(),
132
+ },
133
+ });
134
+ const manageUsersDelete = await database_1.prisma.permissions.upsert({
135
+ where: { slug: "users.delete" },
136
+ update: {},
137
+ create: {
138
+ name: "Delete Users",
139
+ slug: "users.delete",
140
+ description: "Delete users",
141
+ created_at: new Date(),
142
+ updated_at: new Date(),
143
+ },
144
+ });
145
+ const manageRoles = await database_1.prisma.permissions.upsert({
146
+ where: { slug: "roles.manage" },
147
+ update: {},
148
+ create: {
149
+ name: "Manage Roles",
150
+ slug: "roles.manage",
151
+ description: "Create, update, and delete roles",
152
+ created_at: new Date(),
153
+ updated_at: new Date(),
154
+ },
155
+ });
156
+ const managePermissions = await database_1.prisma.permissions.upsert({
157
+ where: { slug: "permissions.manage" },
158
+ update: {},
159
+ create: {
160
+ name: "Manage Permissions",
161
+ slug: "permissions.manage",
162
+ description: "Create, update, and delete permissions",
163
+ created_at: new Date(),
164
+ updated_at: new Date(),
165
+ },
166
+ });
167
+ const manageProfiles = await database_1.prisma.permissions.upsert({
168
+ where: { slug: "profiles.manage" },
169
+ update: {},
170
+ create: {
171
+ name: "Manage Profiles",
172
+ slug: "profiles.manage",
173
+ description: "Manage user profiles",
174
+ created_at: new Date(),
175
+ updated_at: new Date(),
176
+ },
177
+ });
178
+ console.log("Seeded permissions");
179
+ // 4. Assign permissions to roles
180
+ const postsCreate = await database_1.prisma.permissions.upsert({
181
+ where: { slug: "posts.create" },
182
+ update: {},
183
+ create: {
184
+ name: "Create Posts",
185
+ slug: "posts.create",
186
+ description: "Create posts",
187
+ created_at: new Date(),
188
+ updated_at: new Date(),
189
+ },
190
+ });
191
+ const postsUpdate = await database_1.prisma.permissions.upsert({
192
+ where: { slug: "posts.update" },
193
+ update: {},
194
+ create: {
195
+ name: "Update Posts",
196
+ slug: "posts.update",
197
+ description: "Update posts",
198
+ created_at: new Date(),
199
+ updated_at: new Date(),
200
+ },
201
+ });
202
+ const postsDelete = await database_1.prisma.permissions.upsert({
203
+ where: { slug: "posts.delete" },
204
+ update: {},
205
+ create: {
206
+ name: "Delete Posts",
207
+ slug: "posts.delete",
208
+ description: "Delete posts",
209
+ created_at: new Date(),
210
+ updated_at: new Date(),
211
+ },
212
+ });
213
+ const postsView = await database_1.prisma.permissions.upsert({
214
+ where: { slug: "posts.view" },
215
+ update: {},
216
+ create: {
217
+ name: "View Posts",
218
+ slug: "posts.view",
219
+ description: "View posts",
220
+ created_at: new Date(),
221
+ updated_at: new Date(),
222
+ },
223
+ });
224
+ const categoriesManage = await database_1.prisma.permissions.upsert({
225
+ where: { slug: "categories.manage" },
226
+ update: {},
227
+ create: {
228
+ name: "Manage Categories",
229
+ slug: "categories.manage",
230
+ description: "Manage categories",
231
+ created_at: new Date(),
232
+ updated_at: new Date(),
233
+ },
234
+ });
235
+ const commentsManage = await database_1.prisma.permissions.upsert({
236
+ where: { slug: "comments.manage" },
237
+ update: {},
238
+ create: {
239
+ name: "Manage Comments",
240
+ slug: "comments.manage",
241
+ description: "Manage comments",
242
+ created_at: new Date(),
243
+ updated_at: new Date(),
244
+ },
245
+ });
246
+ console.log("Seeded resource permissions");
247
+ // 4. Assign permissions to roles
248
+ const rolePermPairs = [
249
+ // super_admin gets all users permissions + other management permissions
250
+ { roleId: superAdminRole.id, permId: manageUsers.id },
251
+ { roleId: superAdminRole.id, permId: manageUsersCreate.id },
252
+ { roleId: superAdminRole.id, permId: manageUsersView.id },
253
+ { roleId: superAdminRole.id, permId: manageUsersUpdate.id },
254
+ { roleId: superAdminRole.id, permId: manageUsersDelete.id },
255
+ { roleId: superAdminRole.id, permId: manageRoles.id },
256
+ { roleId: superAdminRole.id, permId: managePermissions.id },
257
+ { roleId: superAdminRole.id, permId: manageProfiles.id },
258
+ { roleId: superAdminRole.id, permId: postsCreate.id },
259
+ { roleId: superAdminRole.id, permId: postsUpdate.id },
260
+ { roleId: superAdminRole.id, permId: postsDelete.id },
261
+ { roleId: superAdminRole.id, permId: postsView.id },
262
+ { roleId: superAdminRole.id, permId: categoriesManage.id },
263
+ { roleId: superAdminRole.id, permId: commentsManage.id },
264
+ // admin gets users permissions except delete
265
+ { roleId: adminRole.id, permId: manageUsersCreate.id },
266
+ { roleId: adminRole.id, permId: manageUsersView.id },
267
+ { roleId: adminRole.id, permId: manageUsersUpdate.id },
268
+ // admin gets other management permissions
269
+ { roleId: adminRole.id, permId: manageRoles.id },
270
+ { roleId: adminRole.id, permId: managePermissions.id },
271
+ { roleId: adminRole.id, permId: postsCreate.id },
272
+ { roleId: adminRole.id, permId: postsUpdate.id },
273
+ { roleId: adminRole.id, permId: postsDelete.id },
274
+ { roleId: adminRole.id, permId: postsView.id },
275
+ { roleId: adminRole.id, permId: categoriesManage.id },
276
+ { roleId: adminRole.id, permId: commentsManage.id },
277
+ // user gets read-only posts
278
+ { roleId: userRole.id, permId: postsView.id },
279
+ ];
280
+ for (const pair of rolePermPairs) {
281
+ await database_1.prisma.role_permissions.upsert({
282
+ where: {
283
+ role_id_permission_id: {
284
+ role_id: pair.roleId,
285
+ permission_id: pair.permId,
286
+ },
287
+ },
288
+ create: {
289
+ role_id: pair.roleId,
290
+ permission_id: pair.permId,
291
+ created_at: new Date(),
292
+ },
293
+ update: {},
294
+ });
295
+ }
296
+ console.log("Assigned permissions to roles");
297
+ // 5. Assign roles to users
298
+ const userRolePairs = [
299
+ { userId: superAdmin.id, roleId: superAdminRole.id },
300
+ { userId: admin.id, roleId: adminRole.id },
301
+ { userId: user.id, roleId: userRole.id },
302
+ ];
303
+ for (const pair of userRolePairs) {
304
+ await database_1.prisma.user_roles.upsert({
305
+ where: {
306
+ user_id_role_id: {
307
+ user_id: pair.userId,
308
+ role_id: pair.roleId,
309
+ },
310
+ },
311
+ create: {
312
+ user_id: pair.userId,
313
+ role_id: pair.roleId,
314
+ created_at: new Date(),
315
+ },
316
+ update: {},
317
+ });
318
+ }
319
+ console.log("Assigned roles to users");
320
+ // 6. Seed Pets (Massive Seeding)
321
+ console.log("Starting massive pet seeding (50,000 records)...");
322
+ const petData = [];
323
+ const speciesList = [
324
+ "Dog",
325
+ "Cat",
326
+ "Bird",
327
+ "Fish",
328
+ "Rabbit",
329
+ "Hamster",
330
+ "Turtle",
331
+ "Parrot",
332
+ ];
333
+ const names = [
334
+ "Bella",
335
+ "Max",
336
+ "Charlie",
337
+ "Luna",
338
+ "Lucy",
339
+ "Cooper",
340
+ "Bailey",
341
+ "Daisy",
342
+ "Sadie",
343
+ "Molly",
344
+ ];
345
+ for (let i = 0; i < 50000; i++) {
346
+ const species = speciesList[Math.floor(Math.random() * speciesList.length)];
347
+ const name = names[Math.floor(Math.random() * names.length)] + " " + i;
348
+ const age = Math.floor(Math.random() * 15) + 1;
349
+ petData.push({
350
+ name,
351
+ species,
352
+ age,
353
+ created_at: new Date(),
354
+ updated_at: new Date(),
355
+ });
356
+ // Batch insert every 5000 records to prevent memory issues
357
+ if (petData.length === 5000) {
358
+ await database_1.prisma.pets.createMany({
359
+ data: petData,
360
+ });
361
+ petData.length = 0; // Clear array
362
+ console.log(`Seeded ${i + 1} pets...`);
363
+ }
364
+ }
365
+ // Insert remaining pets
366
+ if (petData.length > 0) {
367
+ await database_1.prisma.pets.createMany({
368
+ data: petData,
369
+ });
370
+ }
371
+ console.log("Finished seeding 50,000 pets.");
372
+ console.log("Seeding finished.");
373
+ }
374
+ main()
375
+ .catch((e) => {
376
+ console.error(e);
377
+ process.exit(1);
378
+ })
379
+ .finally(async () => {
380
+ await database_1.prisma.$disconnect();
381
+ });
@@ -0,0 +1,11 @@
1
+ import { Request, Response } from "express";
2
+ export declare const ACCESS_TOKEN_EXPIRES_IN_SECONDS: number;
3
+ export declare function register(req: Request, res: Response): Promise<void>;
4
+ export declare function login(req: Request, res: Response): Promise<void>;
5
+ export declare function me(req: Request, res: Response): Promise<void>;
6
+ export declare function logout(_req: Request, res: Response): Promise<void>;
7
+ export declare function refreshToken(req: Request, res: Response): Promise<void>;
8
+ export declare function updateAvatar(req: Request, res: Response): Promise<void>;
9
+ export declare function updatePassword(req: Request, res: Response): Promise<void>;
10
+ export declare function updateProfile(req: Request, res: Response): Promise<void>;
11
+ //# sourceMappingURL=authController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authController.d.ts","sourceRoot":"","sources":["../../../src/controllers/authController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAS5C,eAAO,MAAM,+BAA+B,QAAmB,CAAC;AA4EhE,wBAAsB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBAiDzD;AAED,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBA4EtD;AAED,wBAAsB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBAiCnD;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBASxD;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBAmE7D;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBAuD7D;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBA4C/D;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBAoC9D"}