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.
- package/bin/index.js +39 -56
- package/dist/generated/prisma/browser.d.ts +80 -0
- package/dist/generated/prisma/browser.d.ts.map +1 -0
- package/dist/generated/prisma/browser.js +56 -0
- package/dist/generated/prisma/client.d.ts +97 -0
- package/dist/generated/prisma/client.d.ts.map +1 -0
- package/dist/generated/prisma/client.js +68 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +486 -0
- package/dist/generated/prisma/commonInputTypes.d.ts.map +1 -0
- package/dist/generated/prisma/commonInputTypes.js +11 -0
- package/dist/generated/prisma/enums.d.ts +2 -0
- package/dist/generated/prisma/enums.d.ts.map +1 -0
- package/dist/generated/prisma/enums.js +11 -0
- package/dist/generated/prisma/internal/class.d.ts +281 -0
- package/dist/generated/prisma/internal/class.d.ts.map +1 -0
- package/dist/generated/prisma/internal/class.js +76 -0
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +1734 -0
- package/dist/generated/prisma/internal/prismaNamespace.d.ts.map +1 -0
- package/dist/generated/prisma/internal/prismaNamespace.js +260 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +200 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts.map +1 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +231 -0
- package/dist/generated/prisma/models/cache.d.ts +986 -0
- package/dist/generated/prisma/models/cache.d.ts.map +1 -0
- package/dist/generated/prisma/models/cache.js +2 -0
- package/dist/generated/prisma/models/cache_locks.d.ts +976 -0
- package/dist/generated/prisma/models/cache_locks.d.ts.map +1 -0
- package/dist/generated/prisma/models/cache_locks.js +2 -0
- package/dist/generated/prisma/models/failed_jobs.d.ts +1098 -0
- package/dist/generated/prisma/models/failed_jobs.d.ts.map +1 -0
- package/dist/generated/prisma/models/failed_jobs.js +2 -0
- package/dist/generated/prisma/models/job_batches.d.ts +1212 -0
- package/dist/generated/prisma/models/job_batches.d.ts.map +1 -0
- package/dist/generated/prisma/models/job_batches.js +2 -0
- package/dist/generated/prisma/models/jobs.d.ts +1112 -0
- package/dist/generated/prisma/models/jobs.d.ts.map +1 -0
- package/dist/generated/prisma/models/jobs.js +2 -0
- package/dist/generated/prisma/models/migrations.d.ts +979 -0
- package/dist/generated/prisma/models/migrations.d.ts.map +1 -0
- package/dist/generated/prisma/models/migrations.js +2 -0
- package/dist/generated/prisma/models/password_reset_tokens.d.ts +941 -0
- package/dist/generated/prisma/models/password_reset_tokens.d.ts.map +1 -0
- package/dist/generated/prisma/models/password_reset_tokens.js +2 -0
- package/dist/generated/prisma/models/permissions.d.ts +1333 -0
- package/dist/generated/prisma/models/permissions.d.ts.map +1 -0
- package/dist/generated/prisma/models/permissions.js +2 -0
- package/dist/generated/prisma/models/personal_access_tokens.d.ts +1178 -0
- package/dist/generated/prisma/models/personal_access_tokens.d.ts.map +1 -0
- package/dist/generated/prisma/models/personal_access_tokens.js +2 -0
- package/dist/generated/prisma/models/role_permissions.d.ts +1291 -0
- package/dist/generated/prisma/models/role_permissions.d.ts.map +1 -0
- package/dist/generated/prisma/models/role_permissions.js +2 -0
- package/dist/generated/prisma/models/roles.d.ts +1333 -0
- package/dist/generated/prisma/models/roles.d.ts.map +1 -0
- package/dist/generated/prisma/models/roles.js +2 -0
- package/dist/generated/prisma/models/sessions.d.ts +1073 -0
- package/dist/generated/prisma/models/sessions.d.ts.map +1 -0
- package/dist/generated/prisma/models/sessions.js +2 -0
- package/dist/generated/prisma/models/user_permissions.d.ts +1291 -0
- package/dist/generated/prisma/models/user_permissions.d.ts.map +1 -0
- package/dist/generated/prisma/models/user_permissions.js +2 -0
- package/dist/generated/prisma/models/user_roles.d.ts +1291 -0
- package/dist/generated/prisma/models/user_roles.d.ts.map +1 -0
- package/dist/generated/prisma/models/user_roles.js +2 -0
- package/dist/generated/prisma/models/users.d.ts +1513 -0
- package/dist/generated/prisma/models/users.d.ts.map +1 -0
- package/dist/generated/prisma/models/users.js +2 -0
- package/dist/generated/prisma/models.d.ts +17 -0
- package/dist/generated/prisma/models.d.ts.map +1 -0
- package/dist/generated/prisma/models.js +2 -0
- package/dist/lib/bootstrap.d.ts +2 -0
- package/dist/lib/bootstrap.d.ts.map +1 -0
- package/dist/lib/bootstrap.js +133 -0
- package/dist/lib/core/database.d.ts +3 -0
- package/dist/lib/core/database.d.ts.map +1 -0
- package/dist/lib/core/database.js +34 -0
- package/dist/lib/core/realtime.d.ts +3 -0
- package/dist/lib/core/realtime.d.ts.map +1 -0
- package/dist/lib/core/realtime.js +36 -0
- package/dist/lib/core/redis.d.ts +8 -0
- package/dist/lib/core/redis.d.ts.map +1 -0
- package/dist/lib/core/redis.js +123 -0
- package/dist/lib/core/serializer.d.ts +43 -0
- package/dist/lib/core/serializer.d.ts.map +1 -0
- package/dist/lib/core/serializer.js +66 -0
- package/dist/lib/core/server.d.ts +2 -0
- package/dist/lib/core/server.d.ts.map +1 -0
- package/dist/lib/core/server.js +60 -0
- package/dist/lib/middleware/auth.d.ts +4 -0
- package/dist/lib/middleware/auth.d.ts.map +1 -0
- package/dist/lib/middleware/auth.js +55 -0
- package/dist/lib/middleware/error.d.ts +3 -0
- package/dist/lib/middleware/error.d.ts.map +1 -0
- package/dist/lib/middleware/error.js +60 -0
- package/dist/lib/middleware/multipart.d.ts +4 -0
- package/dist/lib/middleware/multipart.d.ts.map +1 -0
- package/dist/lib/middleware/multipart.js +17 -0
- package/dist/lib/middleware/rateLimit.d.ts +2 -0
- package/dist/lib/middleware/rateLimit.d.ts.map +1 -0
- package/dist/lib/middleware/rateLimit.js +19 -0
- package/dist/lib/middleware/requestLogger.d.ts +3 -0
- package/dist/lib/middleware/requestLogger.d.ts.map +1 -0
- package/dist/lib/middleware/requestLogger.js +22 -0
- package/dist/lib/middleware/visitor.d.ts +3 -0
- package/dist/lib/middleware/visitor.d.ts.map +1 -0
- package/dist/lib/middleware/visitor.js +144 -0
- package/dist/lib/utils/logger.d.ts +11 -0
- package/dist/lib/utils/logger.d.ts.map +1 -0
- package/dist/lib/utils/logger.js +81 -0
- package/dist/lib/utils/pagination.d.ts +19 -0
- package/dist/lib/utils/pagination.d.ts.map +1 -0
- package/dist/lib/utils/pagination.js +34 -0
- package/dist/lib/utils/response.d.ts +11 -0
- package/dist/lib/utils/response.d.ts.map +1 -0
- package/dist/lib/utils/response.js +57 -0
- package/dist/lib/utils/validator.d.ts +38 -0
- package/dist/lib/utils/validator.d.ts.map +1 -0
- package/dist/lib/utils/validator.js +369 -0
- package/dist/prisma/seed.d.ts +2 -0
- package/dist/prisma/seed.d.ts.map +1 -0
- package/dist/prisma/seed.js +381 -0
- package/dist/src/controllers/authController.d.ts +11 -0
- package/dist/src/controllers/authController.d.ts.map +1 -0
- package/dist/src/controllers/authController.js +414 -0
- package/dist/src/controllers/petController.d.ts +7 -0
- package/dist/src/controllers/petController.d.ts.map +1 -0
- package/dist/src/controllers/petController.js +163 -0
- package/dist/src/controllers/rbacController.d.ts +16 -0
- package/dist/src/controllers/rbacController.d.ts.map +1 -0
- package/dist/src/controllers/rbacController.js +437 -0
- package/dist/src/core/database.d.ts +3 -0
- package/dist/src/core/database.d.ts.map +1 -0
- package/dist/src/core/database.js +34 -0
- package/dist/src/core/realtime.d.ts +3 -0
- package/dist/src/core/realtime.d.ts.map +1 -0
- package/dist/src/core/realtime.js +36 -0
- package/dist/src/core/redis.d.ts +8 -0
- package/dist/src/core/redis.d.ts.map +1 -0
- package/dist/src/core/redis.js +123 -0
- package/dist/src/core/serializer.d.ts +43 -0
- package/dist/src/core/serializer.d.ts.map +1 -0
- package/dist/src/core/serializer.js +66 -0
- package/dist/src/core/server.d.ts +2 -0
- package/dist/src/core/server.d.ts.map +1 -0
- package/dist/src/core/server.js +60 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +98 -0
- package/dist/src/middleware/auth.d.ts +4 -0
- package/dist/src/middleware/auth.d.ts.map +1 -0
- package/dist/src/middleware/auth.js +48 -0
- package/dist/src/middleware/error.d.ts +3 -0
- package/dist/src/middleware/error.d.ts.map +1 -0
- package/dist/src/middleware/error.js +60 -0
- package/dist/src/middleware/multipart.d.ts +4 -0
- package/dist/src/middleware/multipart.d.ts.map +1 -0
- package/dist/src/middleware/multipart.js +17 -0
- package/dist/src/middleware/rateLimit.d.ts +2 -0
- package/dist/src/middleware/rateLimit.d.ts.map +1 -0
- package/dist/src/middleware/rateLimit.js +19 -0
- package/dist/src/middleware/requestLogger.d.ts +3 -0
- package/dist/src/middleware/requestLogger.d.ts.map +1 -0
- package/dist/src/middleware/requestLogger.js +22 -0
- package/dist/src/middleware/visitor.d.ts +3 -0
- package/dist/src/middleware/visitor.d.ts.map +1 -0
- package/dist/src/middleware/visitor.js +144 -0
- package/dist/src/prisma.d.ts +3 -0
- package/dist/src/prisma.d.ts.map +1 -0
- package/dist/src/prisma.js +34 -0
- package/dist/src/realtime.d.ts +3 -0
- package/dist/src/realtime.d.ts.map +1 -0
- package/dist/src/realtime.js +36 -0
- package/dist/src/redis.d.ts +8 -0
- package/dist/src/redis.d.ts.map +1 -0
- package/dist/src/redis.js +122 -0
- package/dist/src/routes/auth.d.ts +2 -0
- package/dist/src/routes/auth.d.ts.map +1 -0
- package/dist/src/routes/auth.js +45 -0
- package/dist/src/routes/index.d.ts +2 -0
- package/dist/src/routes/index.d.ts.map +1 -0
- package/dist/src/routes/index.js +14 -0
- package/dist/src/routes/pets.d.ts +3 -0
- package/dist/src/routes/pets.d.ts.map +1 -0
- package/dist/src/routes/pets.js +45 -0
- package/dist/src/routes/rbac.d.ts +2 -0
- package/dist/src/routes/rbac.d.ts.map +1 -0
- package/dist/src/routes/rbac.js +23 -0
- package/dist/src/schema/auth-schema.d.ts +76 -0
- package/dist/src/schema/auth-schema.d.ts.map +1 -0
- package/dist/src/schema/auth-schema.js +63 -0
- package/dist/src/schema/pet-schema.d.ts +28 -0
- package/dist/src/schema/pet-schema.d.ts.map +1 -0
- package/dist/src/schema/pet-schema.js +14 -0
- package/dist/src/server.d.ts +2 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +31 -0
- package/dist/src/utils/logger.d.ts +11 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +81 -0
- package/dist/src/utils/pagination.d.ts +19 -0
- package/dist/src/utils/pagination.d.ts.map +1 -0
- package/dist/src/utils/pagination.js +34 -0
- package/dist/src/utils/response.d.ts +11 -0
- package/dist/src/utils/response.d.ts.map +1 -0
- package/dist/src/utils/response.js +57 -0
- package/dist/src/utils/validator.d.ts +38 -0
- package/dist/src/utils/validator.d.ts.map +1 -0
- package/dist/src/utils/validator.js +369 -0
- package/lib/bootstrap.ts +6 -0
- package/package.json +26 -14
- package/.env.example +0 -19
- package/doc/ARCHITECTURE_GUIDE.md +0 -73
- package/doc/CHANGELOG.md +0 -77
- package/doc/CHEATSHEET.md +0 -94
- package/doc/CLI.md +0 -139
- package/doc/CONTRIBUTING.md +0 -105
- package/doc/DEPLOYMENT.md +0 -122
- package/doc/FAQ.md +0 -81
- package/doc/FEATURES.md +0 -165
- package/doc/GETTING_STARTED.md +0 -108
- package/doc/INTRODUCTION.md +0 -60
- package/doc/PACKAGES.md +0 -66
- package/doc/PERFORMANCE.md +0 -91
- package/doc/ROADMAP.md +0 -93
- package/doc/SECURITY.md +0 -93
- package/doc/STRUCTURE.md +0 -90
- package/doc/TUTORIAL.md +0 -192
- package/docker-compose.yml +0 -24
- package/eslint.config.mjs +0 -26
- package/framework.md +0 -168
- package/nodemon.json +0 -6
- package/prisma.config.ts +0 -15
- package/src/controllers/authController.ts +0 -469
- package/src/controllers/petController.ts +0 -194
- package/src/controllers/rbacController.ts +0 -478
- package/src/models/core.prisma +0 -163
- package/src/models/pets.prisma +0 -9
- package/src/routes/auth.ts +0 -74
- package/src/routes/index.ts +0 -10
- package/src/routes/pets.ts +0 -13
- package/src/routes/rbac.ts +0 -42
- package/storage/logs/.gitkeep +0 -0
- 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"}
|