lapeh 2.6.17 → 3.0.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 (67) hide show
  1. package/.env.example +1 -6
  2. package/README.md +19 -85
  3. package/bin/index.js +84 -180
  4. package/dist/lib/bootstrap.d.ts.map +1 -1
  5. package/dist/lib/bootstrap.js +17 -16
  6. package/dist/lib/core/store.d.ts +55 -0
  7. package/dist/lib/core/store.d.ts.map +1 -0
  8. package/dist/lib/core/store.js +66 -0
  9. package/dist/lib/middleware/error.d.ts.map +1 -1
  10. package/dist/lib/middleware/error.js +1 -20
  11. package/dist/lib/utils/validator.d.ts.map +1 -1
  12. package/dist/lib/utils/validator.js +3 -32
  13. package/dist/src/modules/Auth/auth.controller.d.ts.map +1 -1
  14. package/dist/src/modules/Auth/auth.controller.js +118 -105
  15. package/dist/src/modules/Rbac/rbac.controller.d.ts.map +1 -1
  16. package/dist/src/modules/Rbac/rbac.controller.js +141 -140
  17. package/dist/src/routes/index.d.ts.map +1 -1
  18. package/dist/src/routes/index.js +0 -5
  19. package/doc/en/CHEATSHEET.md +3 -7
  20. package/doc/en/CLI.md +16 -41
  21. package/doc/en/DEPLOYMENT.md +171 -245
  22. package/doc/en/GETTING_STARTED.md +1 -25
  23. package/doc/en/PACKAGES.md +2 -3
  24. package/doc/en/STRUCTURE.md +1 -11
  25. package/doc/en/TUTORIAL.md +61 -119
  26. package/doc/id/CHANGELOG.md +16 -0
  27. package/doc/id/CHEATSHEET.md +0 -4
  28. package/doc/id/CLI.md +19 -54
  29. package/doc/id/DEPLOYMENT.md +171 -245
  30. package/doc/id/GETTING_STARTED.md +91 -115
  31. package/doc/id/PACKAGES.md +0 -1
  32. package/doc/id/STRUCTURE.md +1 -11
  33. package/doc/id/TUTORIAL.md +51 -109
  34. package/gitignore.template +0 -10
  35. package/lib/bootstrap.ts +39 -38
  36. package/lib/core/store.ts +116 -0
  37. package/lib/middleware/error.ts +1 -21
  38. package/lib/utils/validator.ts +3 -39
  39. package/package.json +4 -18
  40. package/scripts/init-project.js +2 -108
  41. package/scripts/make-module.js +1 -12
  42. package/scripts/seed-json.js +158 -0
  43. package/src/modules/Auth/auth.controller.ts +156 -106
  44. package/src/modules/Rbac/rbac.controller.ts +193 -138
  45. package/src/routes/index.ts +0 -3
  46. package/src/routes/rbac.ts +42 -42
  47. package/storage/logs/.0337f5062fe676994d1dc340156e089444e3d6e0-audit.json +5 -10
  48. package/storage/logs/lapeh-2025-12-30.log +1093 -0
  49. package/tsconfig.build.json +1 -3
  50. package/tsconfig.json +0 -1
  51. package/lib/core/database.ts +0 -5
  52. package/prisma/base.prisma.template +0 -8
  53. package/prisma/migrations/20251225163737_init/migration.sql +0 -236
  54. package/prisma/migrations/20251226000329_create_pets_table/migration.sql +0 -11
  55. package/prisma/migrations/20251226001249_create_pets_table/migration.sql +0 -82
  56. package/prisma/migrations/20251226001717_restore_core_models/migration.sql +0 -236
  57. package/prisma/migrations/migration_lock.toml +0 -3
  58. package/prisma/schema.prisma +0 -197
  59. package/prisma/seed.ts +0 -411
  60. package/scripts/compile-schema.js +0 -64
  61. package/src/modules/Auth/auth.prisma +0 -106
  62. package/src/modules/Pets/pets.controller.ts +0 -238
  63. package/src/modules/Pets/pets.prisma +0 -9
  64. package/src/modules/Rbac/rbac.prisma +0 -68
  65. package/src/routes/pets.ts +0 -13
  66. package/storage/logs/lapeh-2025-12-26.log +0 -88
  67. package/storage/logs/lapeh-2025-12-27.log +0 -217
@@ -1,217 +0,0 @@
1
- [2025-12-27 00:09:03] WARN: Validation error
2
- Errors: {
3
- "email": [
4
- "Invalid email"
5
- ],
6
- "password": [
7
- "String must contain at least 4 character(s)"
8
- ]
9
- }
10
- Meta: {"statusCode":422}
11
- [2025-12-27 00:57:03] WARN: Validation error
12
- Errors: {
13
- "email": [
14
- "Invalid email"
15
- ],
16
- "password": [
17
- "String must contain at least 4 character(s)"
18
- ]
19
- }
20
- Meta: {"statusCode":422}
21
- [2025-12-27 00:57:03] WARN: POST /api/auth/login 422 - 648ms - ::1
22
- [2025-12-27 00:57:05] WARN: Validation error
23
- Errors: {
24
- "email": [
25
- "Invalid email"
26
- ],
27
- "password": [
28
- "String must contain at least 4 character(s)"
29
- ]
30
- }
31
- Meta: {"statusCode":422}
32
- [2025-12-27 00:57:05] WARN: POST /api/auth/login 422 - 9ms - ::1
33
- [2025-12-27 00:57:21] INFO: POST /api/auth/login 200 - 744ms - ::1
34
- [2025-12-27 00:57:23] INFO: POST /api/auth/login 200 - 146ms - ::1
35
- [2025-12-27 00:57:33] WARN: Validation error
36
- Errors: {
37
- "email": [
38
- "Invalid email"
39
- ]
40
- }
41
- Meta: {"statusCode":422}
42
- [2025-12-27 00:57:33] WARN: POST /api/auth/login 422 - 7ms - ::1
43
- [2025-12-27 00:57:38] INFO: POST /api/auth/login 200 - 227ms - ::1
44
- [2025-12-27 00:57:44] INFO: POST /api/pets 201 - 38ms - ::1
45
- [2025-12-27 05:29:45] INFO: GET /api/pets 200 - 639ms - ::1
46
- [2025-12-27 05:29:47] INFO: GET /api/pets 200 - 14ms - ::1
47
- [2025-12-27 05:29:49] INFO: GET /api/pets 200 - 17ms - ::1
48
- [2025-12-27 05:39:12] WARN: Email not registered
49
- Errors: {
50
- "field": "email",
51
- "message": "Email is not registered, please register first"
52
- }
53
- Meta: {"statusCode":401}
54
- [2025-12-27 05:39:12] WARN: POST /api/auth/login 401 - 282ms - ::1
55
- [2025-12-27 07:18:49] INFO: GET /api/pets 200 - 943ms - ::1
56
- [2025-12-27 07:18:51] INFO: GET /api/pets 200 - 14ms - ::1
57
- [2025-12-27 07:18:52] INFO: GET /api/pets 200 - 12ms - ::1
58
- [2025-12-27 07:18:53] INFO: GET /api/pets 200 - 16ms - ::1
59
- [2025-12-27 07:18:54] INFO: GET /api/pets 200 - 14ms - ::1
60
- [2025-12-27 07:18:55] INFO: GET /api/pets 200 - 17ms - ::1
61
- [2025-12-27 07:18:56] INFO: GET /api/pets 200 - 17ms - ::1
62
- [2025-12-27 07:18:59] INFO: POST /api/auth/login 200 - 192ms - ::1
63
- [2025-12-27 07:19:01] INFO: POST /api/auth/login 200 - 174ms - ::1
64
- [2025-12-27 07:19:02] INFO: POST /api/auth/login 200 - 170ms - ::1
65
- [2025-12-27 07:21:10] INFO: GET /api/pets 200 - 310ms - ::1
66
- [2025-12-27 07:21:12] INFO: GET /api/pets 200 - 15ms - ::1
67
- [2025-12-27 07:21:21] INFO: GET /api/pets 200 - 13ms - ::1
68
- [2025-12-27 07:21:21] INFO: GET /api/pets 200 - 15ms - ::1
69
- [2025-12-27 07:21:22] INFO: GET /api/pets 200 - 19ms - ::1
70
- [2025-12-27 07:21:23] INFO: GET /api/pets 200 - 18ms - ::1
71
- [2025-12-27 07:21:24] INFO: GET /api/pets 200 - 16ms - ::1
72
- [2025-12-27 07:21:25] INFO: GET /api/pets 200 - 11ms - ::1
73
- [2025-12-27 07:24:00] INFO: GET /api/pets 200 - 274ms - ::1
74
- [2025-12-27 07:24:08] INFO: GET /api/pets 200 - 23ms - ::1
75
- [2025-12-27 07:24:09] INFO: GET /api/pets 200 - 13ms - ::1
76
- [2025-12-27 07:24:10] INFO: GET /api/pets 200 - 19ms - ::1
77
- [2025-12-27 07:24:10] INFO: GET /api/pets 200 - 22ms - ::1
78
- [2025-12-27 07:24:11] INFO: GET /api/pets 200 - 18ms - ::1
79
- [2025-12-27 07:24:12] INFO: GET /api/pets 200 - 16ms - ::1
80
- [2025-12-27 07:26:19] INFO: GET /api/pets 200 - 229ms - ::1
81
- [2025-12-27 07:48:20] INFO: GET /api/pets 200 - 253ms - ::1
82
- [2025-12-27 07:48:22] INFO: GET /api/pets 200 - 16ms - ::1
83
- [2025-12-27 07:48:23] INFO: GET /api/pets 200 - 24ms - ::1
84
- [2025-12-27 07:48:24] INFO: GET /api/pets 200 - 15ms - ::1
85
- [2025-12-27 07:48:25] INFO: GET /api/pets 200 - 18ms - ::1
86
- [2025-12-27 07:48:26] INFO: GET /api/pets 200 - 14ms - ::1
87
- [2025-12-27 07:48:30] INFO: POST /api/auth/login 200 - 178ms - ::1
88
- [2025-12-27 07:48:31] INFO: POST /api/auth/login 200 - 161ms - ::1
89
- [2025-12-27 07:48:32] INFO: POST /api/auth/login 200 - 169ms - ::1
90
- [2025-12-27 07:48:33] INFO: POST /api/auth/login 200 - 152ms - ::1
91
- [2025-12-27 07:48:35] INFO: POST /api/auth/login 200 - 165ms - ::1
92
- [2025-12-27 07:48:36] INFO: POST /api/auth/login 200 - 137ms - ::1
93
- [2025-12-27 07:48:37] INFO: POST /api/auth/login 200 - 174ms - ::1
94
- [2025-12-27 07:48:38] INFO: POST /api/auth/login 200 - 157ms - ::1
95
- [2025-12-27 07:48:40] INFO: POST /api/auth/login 200 - 218ms - ::1
96
- [2025-12-27 07:48:41] INFO: POST /api/auth/login 200 - 162ms - ::1
97
- [2025-12-27 07:48:42] INFO: POST /api/auth/login 200 - 149ms - ::1
98
- [2025-12-27 07:48:49] INFO: GET /api/auth/me 200 - 20ms - ::1
99
- [2025-12-27 07:48:52] INFO: GET /api/auth/me 200 - 16ms - ::1
100
- [2025-12-27 07:48:52] INFO: GET /api/auth/me 200 - 22ms - ::1
101
- [2025-12-27 07:48:53] INFO: GET /api/auth/me 200 - 23ms - ::1
102
- [2025-12-27 07:48:58] INFO: GET /api/pets 200 - 58ms - ::1
103
- [2025-12-27 07:48:59] INFO: GET /api/pets 200 - 19ms - ::1
104
- [2025-12-27 09:12:25] INFO: POST /api/auth/register 200 - 386ms - ::1
105
- [2025-12-27 09:12:25] INFO: POST /api/auth/login 200 - 77ms - ::1
106
- [2025-12-27 09:12:25] WARN: Unauthorized
107
- Meta: {"statusCode":401}
108
- [2025-12-27 09:12:25] WARN: POST /api/rbac/roles 401 - 2ms - ::1
109
- [2025-12-27 09:13:27] INFO: POST /api/auth/login 200 - 111ms - ::1
110
- [2025-12-27 09:13:27] WARN: Validation error
111
- Errors: {
112
- "email": [
113
- "The email has already been taken."
114
- ]
115
- }
116
- Meta: {"statusCode":422}
117
- [2025-12-27 09:13:27] WARN: POST /api/auth/register 422 - 4ms - ::1
118
- [2025-12-27 09:13:27] INFO: POST /api/auth/login 200 - 67ms - ::1
119
- [2025-12-27 09:13:27] INFO: GET /api/auth/me 200 - 7ms - ::1
120
- [2025-12-27 09:13:28] INFO: POST /api/auth/login 200 - 64ms - ::1
121
- [2025-12-27 09:13:28] WARN: Unauthorized
122
- Meta: {"statusCode":401}
123
- [2025-12-27 09:13:28] WARN: POST /api/rbac/roles 401 - 2ms - ::1
124
- [2025-12-27 09:15:38] INFO: POST /api/auth/login 200 - 220ms - ::1
125
- [2025-12-27 09:15:38] WARN: Validation error
126
- Errors: {
127
- "email": [
128
- "The email has already been taken."
129
- ]
130
- }
131
- Meta: {"statusCode":422}
132
- [2025-12-27 09:15:38] WARN: POST /api/auth/register 422 - 8ms - ::1
133
- [2025-12-27 09:15:38] INFO: POST /api/auth/login 200 - 70ms - ::1
134
- [2025-12-27 09:15:38] INFO: GET /api/auth/me 200 - 7ms - ::1
135
- [2025-12-27 09:15:38] INFO: POST /api/auth/login 200 - 64ms - ::1
136
- [2025-12-27 09:15:38] WARN: Unauthorized
137
- Meta: {"statusCode":401}
138
- [2025-12-27 09:15:38] WARN: POST /api/rbac/roles 401 - 4ms - ::1
139
- [2025-12-27 09:16:41] INFO: POST /api/auth/login 200 - 342ms - ::1
140
- [2025-12-27 09:16:41] WARN: Validation error
141
- Errors: {
142
- "email": [
143
- "The email has already been taken."
144
- ]
145
- }
146
- Meta: {"statusCode":422}
147
- [2025-12-27 09:16:41] WARN: POST /api/auth/register 422 - 7ms - ::1
148
- [2025-12-27 09:16:41] INFO: POST /api/auth/login 200 - 70ms - ::1
149
- [2025-12-27 09:16:41] INFO: GET /api/auth/me 200 - 7ms - ::1
150
- [2025-12-27 09:16:41] INFO: POST /api/auth/login 200 - 64ms - ::1
151
- [2025-12-27 09:16:41] INFO: POST /api/rbac/roles 201 - 10ms - ::1
152
- [2025-12-27 09:16:41] INFO: POST /api/rbac/permissions 201 - 7ms - ::1
153
- [2025-12-27 09:16:41] WARN: POST /api/rbac/assign-permission-role 404 - 4ms - ::1
154
- [2025-12-27 09:16:41] WARN: POST /api/rbac/assign-role-user 404 - 3ms - ::1
155
- [2025-12-27 09:16:41] INFO: GET /api/auth/me 200 - 5ms - ::1
156
- [2025-12-27 09:16:41] INFO: DELETE /api/rbac/roles/4 200 - 16ms - ::1
157
- [2025-12-27 09:16:41] INFO: DELETE /api/rbac/permissions/15 200 - 9ms - ::1
158
- [2025-12-27 09:17:22] INFO: POST /api/auth/login 200 - 130ms - ::1
159
- [2025-12-27 09:17:22] WARN: Validation error
160
- Errors: {
161
- "email": [
162
- "The email has already been taken."
163
- ]
164
- }
165
- Meta: {"statusCode":422}
166
- [2025-12-27 09:17:22] WARN: POST /api/auth/register 422 - 4ms - ::1
167
- [2025-12-27 09:17:22] INFO: POST /api/auth/login 200 - 68ms - ::1
168
- [2025-12-27 09:17:22] INFO: GET /api/auth/me 200 - 5ms - ::1
169
- [2025-12-27 09:17:22] INFO: POST /api/auth/login 200 - 70ms - ::1
170
- [2025-12-27 09:17:22] INFO: POST /api/rbac/roles 201 - 7ms - ::1
171
- [2025-12-27 09:17:22] INFO: POST /api/rbac/permissions 201 - 6ms - ::1
172
- [2025-12-27 09:17:22] INFO: POST /api/rbac/roles/assign-permission 200 - 14ms - ::1
173
- [2025-12-27 09:17:22] INFO: POST /api/rbac/users/assign-role 200 - 9ms - ::1
174
- [2025-12-27 09:17:22] INFO: GET /api/auth/me 200 - 5ms - ::1
175
- [2025-12-27 09:17:22] INFO: DELETE /api/rbac/roles/5 200 - 6ms - ::1
176
- [2025-12-27 09:17:22] INFO: DELETE /api/rbac/permissions/16 200 - 6ms - ::1
177
- [2025-12-27 09:20:59] INFO: POST /api/auth/login 200 - 234ms - ::1
178
- [2025-12-27 09:20:59] WARN: Validation error
179
- Errors: {
180
- "email": [
181
- "The email has already been taken."
182
- ]
183
- }
184
- Meta: {"statusCode":422}
185
- [2025-12-27 09:20:59] WARN: POST /api/auth/register 422 - 8ms - ::1
186
- [2025-12-27 09:21:00] INFO: POST /api/auth/login 200 - 68ms - ::1
187
- [2025-12-27 09:21:00] INFO: GET /api/auth/me 200 - 8ms - ::1
188
- [2025-12-27 09:21:00] INFO: POST /api/auth/login 200 - 73ms - ::1
189
- [2025-12-27 09:21:00] INFO: POST /api/rbac/roles 201 - 12ms - ::1
190
- [2025-12-27 09:21:00] INFO: POST /api/rbac/permissions 201 - 10ms - ::1
191
- [2025-12-27 09:21:00] INFO: POST /api/rbac/roles/assign-permission 200 - 21ms - ::1
192
- [2025-12-27 09:21:00] INFO: POST /api/rbac/users/assign-role 200 - 9ms - ::1
193
- [2025-12-27 09:21:00] INFO: GET /api/auth/me 200 - 7ms - ::1
194
- [2025-12-27 09:21:00] INFO: DELETE /api/rbac/roles/6 200 - 7ms - ::1
195
- [2025-12-27 09:21:00] INFO: DELETE /api/rbac/permissions/17 200 - 10ms - ::1
196
- [2025-12-27 09:25:15] INFO: POST /api/auth/login 200 - 253ms - ::1
197
- [2025-12-27 09:25:15] WARN: Validation error
198
- Errors: {
199
- "email": [
200
- "The email has already been taken."
201
- ]
202
- }
203
- Meta: {"statusCode":422}
204
- [2025-12-27 09:25:15] WARN: POST /api/auth/register 422 - 9ms - ::1
205
- [2025-12-27 09:25:15] INFO: POST /api/auth/login 200 - 66ms - ::1
206
- [2025-12-27 09:25:15] INFO: GET /api/auth/me 200 - 8ms - ::1
207
- [2025-12-27 09:25:15] INFO: POST /api/auth/login 200 - 67ms - ::1
208
- [2025-12-27 09:25:15] INFO: POST /api/rbac/roles 201 - 12ms - ::1
209
- [2025-12-27 09:25:15] INFO: POST /api/rbac/permissions 201 - 12ms - ::1
210
- [2025-12-27 09:25:15] INFO: POST /api/rbac/roles/assign-permission 200 - 24ms - ::1
211
- [2025-12-27 09:25:15] INFO: POST /api/rbac/users/assign-role 200 - 10ms - ::1
212
- [2025-12-27 09:25:15] INFO: GET /api/auth/me 200 - 7ms - ::1
213
- [2025-12-27 09:25:15] INFO: DELETE /api/rbac/roles/7 200 - 14ms - ::1
214
- [2025-12-27 09:25:15] INFO: DELETE /api/rbac/permissions/18 200 - 10ms - ::1
215
- [2025-12-27 09:29:29] INFO: GET /api/pets 200 - 129ms - ::1
216
- [2025-12-27 09:29:32] INFO: GET /api/pets 200 - 16ms - ::1
217
- [2025-12-27 09:29:33] INFO: GET /api/pets 200 - 19ms - ::1