@mostajs/rbac 1.0.3 → 1.0.5
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/dist/api/categories-id.d.ts.map +1 -1
- package/dist/api/categories-id.js +2 -1
- package/dist/api/categories-id.js.map +1 -1
- package/dist/api/categories.js +1 -1
- package/dist/api/categories.js.map +1 -1
- package/dist/api/matrix.d.ts.map +1 -1
- package/dist/api/matrix.js +3 -1
- package/dist/api/matrix.js.map +1 -1
- package/dist/api/permissions-id.d.ts.map +1 -1
- package/dist/api/permissions-id.js +2 -1
- package/dist/api/permissions-id.js.map +1 -1
- package/dist/api/permissions.d.ts.map +1 -1
- package/dist/api/permissions.js +3 -1
- package/dist/api/permissions.js.map +1 -1
- package/dist/api/roles-id.d.ts.map +1 -1
- package/dist/api/roles-id.js +2 -1
- package/dist/api/roles-id.js.map +1 -1
- package/dist/api/roles.d.ts.map +1 -1
- package/dist/api/roles.js +2 -1
- package/dist/api/roles.js.map +1 -1
- package/dist/api/seed.d.ts.map +1 -1
- package/dist/api/seed.js +3 -1
- package/dist/api/seed.js.map +1 -1
- package/dist/api/users-id.d.ts.map +1 -1
- package/dist/api/users-id.js +2 -1
- package/dist/api/users-id.js.map +1 -1
- package/dist/api/users.d.ts.map +1 -1
- package/dist/api/users.js +2 -1
- package/dist/api/users.js.map +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/permissions-server.d.ts +6 -0
- package/dist/lib/permissions-server.d.ts.map +1 -0
- package/dist/lib/permissions-server.js +25 -0
- package/dist/lib/permissions-server.js.map +1 -0
- package/dist/lib/rbac-seed.d.ts +16 -0
- package/dist/lib/rbac-seed.d.ts.map +1 -0
- package/dist/lib/rbac-seed.js +39 -0
- package/dist/lib/rbac-seed.js.map +1 -0
- package/dist/lib/route-handlers.d.ts +42 -0
- package/dist/lib/route-handlers.d.ts.map +1 -0
- package/dist/lib/route-handlers.js +74 -0
- package/dist/lib/route-handlers.js.map +1 -0
- package/dist/repositories/permission-category.repository.d.ts +11 -0
- package/dist/repositories/permission-category.repository.d.ts.map +1 -0
- package/dist/repositories/permission-category.repository.js +18 -0
- package/dist/repositories/permission-category.repository.js.map +1 -0
- package/dist/repositories/permission.repository.d.ts +13 -0
- package/dist/repositories/permission.repository.d.ts.map +1 -0
- package/dist/repositories/permission.repository.js +22 -0
- package/dist/repositories/permission.repository.js.map +1 -0
- package/dist/repositories/role.repository.d.ts +19 -0
- package/dist/repositories/role.repository.d.ts.map +1 -0
- package/dist/repositories/role.repository.js +34 -0
- package/dist/repositories/role.repository.js.map +1 -0
- package/dist/repositories/user.repository.d.ts +25 -0
- package/dist/repositories/user.repository.d.ts.map +1 -0
- package/dist/repositories/user.repository.js +46 -0
- package/dist/repositories/user.repository.js.map +1 -0
- package/dist/schemas/permission-category.schema.d.ts +3 -0
- package/dist/schemas/permission-category.schema.d.ts.map +1 -0
- package/dist/schemas/permission-category.schema.js +18 -0
- package/dist/schemas/permission-category.schema.js.map +1 -0
- package/dist/schemas/permission.schema.d.ts +3 -0
- package/dist/schemas/permission.schema.d.ts.map +1 -0
- package/dist/schemas/permission.schema.js +13 -0
- package/dist/schemas/permission.schema.js.map +1 -0
- package/dist/schemas/role.schema.d.ts +3 -0
- package/dist/schemas/role.schema.d.ts.map +1 -0
- package/dist/schemas/role.schema.js +14 -0
- package/dist/schemas/role.schema.js.map +1 -0
- package/dist/schemas/user.schema.d.ts +3 -0
- package/dist/schemas/user.schema.d.ts.map +1 -0
- package/dist/schemas/user.schema.js +21 -0
- package/dist/schemas/user.schema.js.map +1 -0
- package/dist/types/index.d.ts +40 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +27 -5
- package/wire.json +12 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare const usersHandlers: {
|
|
2
|
+
GET: any;
|
|
3
|
+
POST: any;
|
|
4
|
+
};
|
|
5
|
+
export declare const usersIdHandlers: {
|
|
6
|
+
GET: any;
|
|
7
|
+
PUT: any;
|
|
8
|
+
DELETE: any;
|
|
9
|
+
};
|
|
10
|
+
export declare const rolesHandlers: {
|
|
11
|
+
GET: any;
|
|
12
|
+
POST: any;
|
|
13
|
+
};
|
|
14
|
+
export declare const rolesIdHandlers: {
|
|
15
|
+
GET: any;
|
|
16
|
+
PUT: any;
|
|
17
|
+
DELETE: any;
|
|
18
|
+
};
|
|
19
|
+
export declare const permissionsHandlers: {
|
|
20
|
+
GET: any;
|
|
21
|
+
POST: any;
|
|
22
|
+
};
|
|
23
|
+
export declare const permissionsIdHandlers: {
|
|
24
|
+
PUT: any;
|
|
25
|
+
DELETE: any;
|
|
26
|
+
};
|
|
27
|
+
export declare const categoriesHandlers: {
|
|
28
|
+
GET: any;
|
|
29
|
+
POST: any;
|
|
30
|
+
};
|
|
31
|
+
export declare const categoriesIdHandlers: {
|
|
32
|
+
PUT: any;
|
|
33
|
+
DELETE: any;
|
|
34
|
+
};
|
|
35
|
+
export declare const matrixHandlers: {
|
|
36
|
+
GET: any;
|
|
37
|
+
POST: any;
|
|
38
|
+
};
|
|
39
|
+
export declare const seedHandlers: {
|
|
40
|
+
POST: any;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=route-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-handlers.d.ts","sourceRoot":"","sources":["../../lib/route-handlers.ts"],"names":[],"mappings":"AAmEA,eAAO,MAAM,aAAa;SAAuB,GAAG;UAAsB,GAAG;CAAE,CAAA;AAC/E,eAAO,MAAM,eAAe;SAAyB,GAAG;SAAsB,GAAG;YAA4B,GAAG;CAAE,CAAA;AAClH,eAAO,MAAM,aAAa;SAAuB,GAAG;UAAsB,GAAG;CAAE,CAAA;AAC/E,eAAO,MAAM,eAAe;SAAyB,GAAG;SAAsB,GAAG;YAA4B,GAAG;CAAE,CAAA;AAClH,eAAO,MAAM,mBAAmB;SAA6B,GAAG;UAA4B,GAAG;CAAE,CAAA;AACjG,eAAO,MAAM,qBAAqB;SAA+B,GAAG;YAAkC,GAAG;CAAE,CAAA;AAC3G,eAAO,MAAM,kBAAkB;SAA4B,GAAG;UAA2B,GAAG;CAAE,CAAA;AAC9F,eAAO,MAAM,oBAAoB;SAA8B,GAAG;YAAiC,GAAG;CAAE,CAAA;AACxG,eAAO,MAAM,cAAc;SAAwB,GAAG;UAAuB,GAAG;CAAE,CAAA;AAClF,eAAO,MAAM,YAAY;UAAwB,GAAG;CAAE,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// @mostajs/rbac — Self-contained route handlers for runtime registration
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
// Phase 5: Bare handlers — permission checking by catch-all.
|
|
4
|
+
import { createUsersHandler } from '../api/users.js';
|
|
5
|
+
import { createUsersIdHandler } from '../api/users-id.js';
|
|
6
|
+
import { createRolesHandler } from '../api/roles.js';
|
|
7
|
+
import { createRolesIdHandler } from '../api/roles-id.js';
|
|
8
|
+
import { createPermissionsHandler } from '../api/permissions.js';
|
|
9
|
+
import { createPermissionsIdHandler } from '../api/permissions-id.js';
|
|
10
|
+
import { createCategoriesHandler } from '../api/categories.js';
|
|
11
|
+
import { createCategoriesIdHandler } from '../api/categories-id.js';
|
|
12
|
+
import { createMatrixHandler } from '../api/matrix.js';
|
|
13
|
+
import { createSeedHandler } from '../api/seed.js';
|
|
14
|
+
// No-op auth — catch-all enforces permissions
|
|
15
|
+
const noAuth = async (_perm) => ({ error: null, session: { user: { id: '' } } });
|
|
16
|
+
const users = createUsersHandler({
|
|
17
|
+
checkPermission: noAuth,
|
|
18
|
+
adminPermission: 'admin:access',
|
|
19
|
+
});
|
|
20
|
+
const usersId = createUsersIdHandler({
|
|
21
|
+
checkPermission: noAuth,
|
|
22
|
+
adminPermission: 'admin:access',
|
|
23
|
+
});
|
|
24
|
+
const roles = createRolesHandler({
|
|
25
|
+
checkPermission: noAuth,
|
|
26
|
+
adminPermission: 'admin:access',
|
|
27
|
+
defaultRoles: {},
|
|
28
|
+
});
|
|
29
|
+
const rolesId = createRolesIdHandler({
|
|
30
|
+
checkPermission: noAuth,
|
|
31
|
+
adminPermission: 'admin:access',
|
|
32
|
+
});
|
|
33
|
+
const permissions = createPermissionsHandler({
|
|
34
|
+
checkPermission: noAuth,
|
|
35
|
+
adminPermission: 'admin:access',
|
|
36
|
+
permissionDefinitions: [],
|
|
37
|
+
categoryDefinitions: [],
|
|
38
|
+
});
|
|
39
|
+
const permissionsId = createPermissionsIdHandler({
|
|
40
|
+
checkPermission: noAuth,
|
|
41
|
+
adminPermission: 'admin:access',
|
|
42
|
+
});
|
|
43
|
+
const categories = createCategoriesHandler({
|
|
44
|
+
checkPermission: noAuth,
|
|
45
|
+
adminPermission: 'admin:access',
|
|
46
|
+
categoryDefinitions: [],
|
|
47
|
+
});
|
|
48
|
+
const categoriesId = createCategoriesIdHandler({
|
|
49
|
+
checkPermission: noAuth,
|
|
50
|
+
adminPermission: 'admin:access',
|
|
51
|
+
});
|
|
52
|
+
const matrix = createMatrixHandler({
|
|
53
|
+
checkPermission: noAuth,
|
|
54
|
+
adminPermission: 'admin:access',
|
|
55
|
+
categoryDefinitions: [],
|
|
56
|
+
});
|
|
57
|
+
const seed = createSeedHandler({
|
|
58
|
+
checkPermission: noAuth,
|
|
59
|
+
adminPermission: 'admin:access',
|
|
60
|
+
permissionDefinitions: [],
|
|
61
|
+
categoryDefinitions: [],
|
|
62
|
+
defaultRoles: {},
|
|
63
|
+
});
|
|
64
|
+
export const usersHandlers = { GET: users.GET, POST: users.POST };
|
|
65
|
+
export const usersIdHandlers = { GET: usersId.GET, PUT: usersId.PUT, DELETE: usersId.DELETE };
|
|
66
|
+
export const rolesHandlers = { GET: roles.GET, POST: roles.POST };
|
|
67
|
+
export const rolesIdHandlers = { GET: rolesId.GET, PUT: rolesId.PUT, DELETE: rolesId.DELETE };
|
|
68
|
+
export const permissionsHandlers = { GET: permissions.GET, POST: permissions.POST };
|
|
69
|
+
export const permissionsIdHandlers = { PUT: permissionsId.PUT, DELETE: permissionsId.DELETE };
|
|
70
|
+
export const categoriesHandlers = { GET: categories.GET, POST: categories.POST };
|
|
71
|
+
export const categoriesIdHandlers = { PUT: categoriesId.PUT, DELETE: categoriesId.DELETE };
|
|
72
|
+
export const matrixHandlers = { GET: matrix.GET, POST: matrix.POST };
|
|
73
|
+
export const seedHandlers = { POST: seed.POST };
|
|
74
|
+
//# sourceMappingURL=route-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-handlers.js","sourceRoot":"","sources":["../../lib/route-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
2
|
+
import type { IDialect } from '@mostajs/orm';
|
|
3
|
+
import type { PermissionCategoryDTO } from '../types/index';
|
|
4
|
+
export declare class PermissionCategoryRepository extends BaseRepository<PermissionCategoryDTO> {
|
|
5
|
+
constructor(dialect: IDialect);
|
|
6
|
+
/** Find all sorted by order then name */
|
|
7
|
+
findAllOrdered(): Promise<PermissionCategoryDTO[]>;
|
|
8
|
+
/** Find by name (unique) */
|
|
9
|
+
findByName(name: string): Promise<PermissionCategoryDTO | null>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=permission-category.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-category.repository.d.ts","sourceRoot":"","sources":["../../repositories/permission-category.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAE3D,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,qBAAqB,CAAC;gBACzE,OAAO,EAAE,QAAQ;IAI7B,yCAAyC;IACnC,cAAc,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAIxD,4BAA4B;IACtB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;CAGtE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// @mostajs/rbac — PermissionCategoryRepository
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
+
import { PermissionCategorySchema } from '../schemas/permission-category.schema';
|
|
5
|
+
export class PermissionCategoryRepository extends BaseRepository {
|
|
6
|
+
constructor(dialect) {
|
|
7
|
+
super(PermissionCategorySchema, dialect);
|
|
8
|
+
}
|
|
9
|
+
/** Find all sorted by order then name */
|
|
10
|
+
async findAllOrdered() {
|
|
11
|
+
return this.findAll({}, { sort: { order: 1, name: 1 } });
|
|
12
|
+
}
|
|
13
|
+
/** Find by name (unique) */
|
|
14
|
+
async findByName(name) {
|
|
15
|
+
return this.findOne({ name });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=permission-category.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-category.repository.js","sourceRoot":"","sources":["../../repositories/permission-category.repository.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAIhF,MAAM,OAAO,4BAA6B,SAAQ,cAAqC;IACrF,YAAY,OAAiB;QAC3B,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
2
|
+
import type { IDialect } from '@mostajs/orm';
|
|
3
|
+
import type { PermissionDTO } from '../types/index';
|
|
4
|
+
export declare class PermissionRepository extends BaseRepository<PermissionDTO> {
|
|
5
|
+
constructor(dialect: IDialect);
|
|
6
|
+
/** Find all sorted by category then name */
|
|
7
|
+
findAllSorted(): Promise<PermissionDTO[]>;
|
|
8
|
+
/** Find by name (unique) */
|
|
9
|
+
findByName(name: string): Promise<PermissionDTO | null>;
|
|
10
|
+
/** Count permissions in a category */
|
|
11
|
+
countByCategory(category: string): Promise<number>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=permission.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.repository.d.ts","sourceRoot":"","sources":["../../repositories/permission.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,qBAAa,oBAAqB,SAAQ,cAAc,CAAC,aAAa,CAAC;gBACzD,OAAO,EAAE,QAAQ;IAI7B,4CAA4C;IACtC,aAAa,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI/C,4BAA4B;IACtB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAI7D,sCAAsC;IAChC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// @mostajs/rbac — PermissionRepository
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
+
import { PermissionSchema } from '../schemas/permission.schema';
|
|
5
|
+
export class PermissionRepository extends BaseRepository {
|
|
6
|
+
constructor(dialect) {
|
|
7
|
+
super(PermissionSchema, dialect);
|
|
8
|
+
}
|
|
9
|
+
/** Find all sorted by category then name */
|
|
10
|
+
async findAllSorted() {
|
|
11
|
+
return this.findAll({}, { sort: { category: 1, name: 1 } });
|
|
12
|
+
}
|
|
13
|
+
/** Find by name (unique) */
|
|
14
|
+
async findByName(name) {
|
|
15
|
+
return this.findOne({ name });
|
|
16
|
+
}
|
|
17
|
+
/** Count permissions in a category */
|
|
18
|
+
async countByCategory(category) {
|
|
19
|
+
return this.count({ category });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=permission.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.repository.js","sourceRoot":"","sources":["../../repositories/permission.repository.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAI/D,MAAM,OAAO,oBAAqB,SAAQ,cAA6B;IACrE,YAAY,OAAiB;QAC3B,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
2
|
+
import type { IDialect } from '@mostajs/orm';
|
|
3
|
+
import type { RoleDTO } from '../types/index';
|
|
4
|
+
export declare class RoleRepository extends BaseRepository<RoleDTO> {
|
|
5
|
+
constructor(dialect: IDialect);
|
|
6
|
+
/** Find all roles with permissions populated */
|
|
7
|
+
findAllWithPermissions(): Promise<RoleDTO[]>;
|
|
8
|
+
/** Find a role by name */
|
|
9
|
+
findByName(name: string): Promise<RoleDTO | null>;
|
|
10
|
+
/** Find role by ID with permissions populated */
|
|
11
|
+
findByIdWithPermissions(id: string): Promise<RoleDTO | null>;
|
|
12
|
+
/** Add a permission to a role */
|
|
13
|
+
addPermission(roleId: string, permissionId: string): Promise<RoleDTO | null>;
|
|
14
|
+
/** Remove a permission from a role */
|
|
15
|
+
removePermission(roleId: string, permissionId: string): Promise<RoleDTO | null>;
|
|
16
|
+
/** Remove a permission from ALL roles (cascade) */
|
|
17
|
+
removePermissionFromAll(permissionId: string): Promise<number>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=role.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.repository.d.ts","sourceRoot":"","sources":["../../repositories/role.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,qBAAa,cAAe,SAAQ,cAAc,CAAC,OAAO,CAAC;gBAC7C,OAAO,EAAE,QAAQ;IAI7B,gDAAgD;IAC1C,sBAAsB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlD,0BAA0B;IACpB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIvD,iDAAiD;IAC3C,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIlE,iCAAiC;IAC3B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIlF,sCAAsC;IAChC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIrF,mDAAmD;IAC7C,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAMrE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// @mostajs/rbac — RoleRepository
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
+
import { RoleSchema } from '../schemas/role.schema';
|
|
5
|
+
export class RoleRepository extends BaseRepository {
|
|
6
|
+
constructor(dialect) {
|
|
7
|
+
super(RoleSchema, dialect);
|
|
8
|
+
}
|
|
9
|
+
/** Find all roles with permissions populated */
|
|
10
|
+
async findAllWithPermissions() {
|
|
11
|
+
return this.findWithRelations({}, ['permissions']);
|
|
12
|
+
}
|
|
13
|
+
/** Find a role by name */
|
|
14
|
+
async findByName(name) {
|
|
15
|
+
return this.findOne({ name });
|
|
16
|
+
}
|
|
17
|
+
/** Find role by ID with permissions populated */
|
|
18
|
+
async findByIdWithPermissions(id) {
|
|
19
|
+
return this.findByIdWithRelations(id, ['permissions']);
|
|
20
|
+
}
|
|
21
|
+
/** Add a permission to a role */
|
|
22
|
+
async addPermission(roleId, permissionId) {
|
|
23
|
+
return this.addToSet(roleId, 'permissions', permissionId);
|
|
24
|
+
}
|
|
25
|
+
/** Remove a permission from a role */
|
|
26
|
+
async removePermission(roleId, permissionId) {
|
|
27
|
+
return this.pull(roleId, 'permissions', permissionId);
|
|
28
|
+
}
|
|
29
|
+
/** Remove a permission from ALL roles (cascade) */
|
|
30
|
+
async removePermissionFromAll(permissionId) {
|
|
31
|
+
return this.updateMany({ permissions: permissionId }, { $pull: { permissions: permissionId } });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=role.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.repository.js","sourceRoot":"","sources":["../../repositories/role.repository.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAInD,MAAM,OAAO,cAAe,SAAQ,cAAuB;IACzD,YAAY,OAAiB;QAC3B,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,sBAAsB;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,uBAAuB,CAAC,EAAU;QACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,YAAoB;QACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;IAC3D,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,YAAoB;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;IACvD,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,uBAAuB,CAAC,YAAoB;QAChD,OAAO,IAAI,CAAC,UAAU,CACpB,EAAE,WAAW,EAAE,YAAY,EAAS,EACpC,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,EAAS,CAChD,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
2
|
+
import type { IDialect, FilterQuery, QueryOptions } from '@mostajs/orm';
|
|
3
|
+
import type { UserDTO } from '../types/index';
|
|
4
|
+
export declare class UserRepository extends BaseRepository<UserDTO> {
|
|
5
|
+
constructor(dialect: IDialect);
|
|
6
|
+
/** List users without password field */
|
|
7
|
+
findAllSafe(filter?: FilterQuery, options?: QueryOptions): Promise<UserDTO[]>;
|
|
8
|
+
/** Find a single user by ID without password */
|
|
9
|
+
findByIdSafe(id: string): Promise<UserDTO | null>;
|
|
10
|
+
/** Find user by email (for authentication) */
|
|
11
|
+
findByEmail(email: string): Promise<UserDTO | null>;
|
|
12
|
+
/** Update lastLoginAt timestamp */
|
|
13
|
+
updateLastLogin(id: string): Promise<void>;
|
|
14
|
+
/** Find user by ID with roles populated */
|
|
15
|
+
findByIdWithRoles(id: string): Promise<UserDTO | null>;
|
|
16
|
+
/** Find all users with roles populated (no password) */
|
|
17
|
+
findAllWithRoles(filter?: FilterQuery, options?: QueryOptions): Promise<UserDTO[]>;
|
|
18
|
+
/** Count users having a specific role */
|
|
19
|
+
countByRole(roleId: string): Promise<number>;
|
|
20
|
+
/** Add a role to a user */
|
|
21
|
+
addRole(userId: string, roleId: string): Promise<UserDTO | null>;
|
|
22
|
+
/** Remove a role from a user */
|
|
23
|
+
removeRole(userId: string, roleId: string): Promise<UserDTO | null>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=user.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.repository.d.ts","sourceRoot":"","sources":["../../repositories/user.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,qBAAa,cAAe,SAAQ,cAAc,CAAC,OAAO,CAAC;gBAC7C,OAAO,EAAE,QAAQ;IAI7B,wCAAwC;IAClC,WAAW,CAAC,MAAM,GAAE,WAAgB,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIvF,gDAAgD;IAC1C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIvD,8CAA8C;IACxC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIzD,mCAAmC;IAC7B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,2CAA2C;IACrC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAI5D,wDAAwD;IAClD,gBAAgB,CAAC,MAAM,GAAE,WAAgB,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI5F,yCAAyC;IACnC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD,2BAA2B;IACrB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAItE,gCAAgC;IAC1B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CAG1E"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// @mostajs/rbac — UserRepository
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
+
import { UserSchema } from '../schemas/user.schema';
|
|
5
|
+
export class UserRepository extends BaseRepository {
|
|
6
|
+
constructor(dialect) {
|
|
7
|
+
super(UserSchema, dialect);
|
|
8
|
+
}
|
|
9
|
+
/** List users without password field */
|
|
10
|
+
async findAllSafe(filter = {}, options) {
|
|
11
|
+
return this.findAll(filter, Object.assign(Object.assign({}, options), { exclude: ['password'] }));
|
|
12
|
+
}
|
|
13
|
+
/** Find a single user by ID without password */
|
|
14
|
+
async findByIdSafe(id) {
|
|
15
|
+
return this.findById(id, { exclude: ['password'] });
|
|
16
|
+
}
|
|
17
|
+
/** Find user by email (for authentication) */
|
|
18
|
+
async findByEmail(email) {
|
|
19
|
+
return this.findOne({ email: email.toLowerCase() });
|
|
20
|
+
}
|
|
21
|
+
/** Update lastLoginAt timestamp */
|
|
22
|
+
async updateLastLogin(id) {
|
|
23
|
+
await this.update(id, { lastLoginAt: new Date() });
|
|
24
|
+
}
|
|
25
|
+
/** Find user by ID with roles populated */
|
|
26
|
+
async findByIdWithRoles(id) {
|
|
27
|
+
return this.findByIdWithRelations(id, ['roles']);
|
|
28
|
+
}
|
|
29
|
+
/** Find all users with roles populated (no password) */
|
|
30
|
+
async findAllWithRoles(filter = {}, options) {
|
|
31
|
+
return this.findWithRelations(filter, ['roles'], Object.assign(Object.assign({}, options), { exclude: ['password'] }));
|
|
32
|
+
}
|
|
33
|
+
/** Count users having a specific role */
|
|
34
|
+
async countByRole(roleId) {
|
|
35
|
+
return this.count({ roles: roleId });
|
|
36
|
+
}
|
|
37
|
+
/** Add a role to a user */
|
|
38
|
+
async addRole(userId, roleId) {
|
|
39
|
+
return this.addToSet(userId, 'roles', roleId);
|
|
40
|
+
}
|
|
41
|
+
/** Remove a role from a user */
|
|
42
|
+
async removeRole(userId, roleId) {
|
|
43
|
+
return this.pull(userId, 'roles', roleId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=user.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../repositories/user.repository.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAInD,MAAM,OAAO,cAAe,SAAQ,cAAuB;IACzD,YAAY,OAAiB;QAC3B,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,WAAW,CAAC,SAAsB,EAAE,EAAE,OAAsB;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,kCAAO,OAAO,KAAE,OAAO,EAAE,CAAC,UAAU,CAAC,IAAG,CAAA;IACpE,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAS,CAAC,CAAA;IAC3D,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,gBAAgB,CAAC,SAAsB,EAAE,EAAE,OAAsB;QACrE,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kCAAO,OAAO,KAAE,OAAO,EAAE,CAAC,UAAU,CAAC,IAAG,CAAA;IACzF,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-category.schema.d.ts","sourceRoot":"","sources":["../../schemas/permission-category.schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,wBAAwB,EAAE,YAmBtC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const PermissionCategorySchema = {
|
|
2
|
+
name: 'PermissionCategory',
|
|
3
|
+
collection: 'permission_categories',
|
|
4
|
+
timestamps: true,
|
|
5
|
+
fields: {
|
|
6
|
+
name: { type: 'string', required: true, unique: true, lowercase: true, trim: true },
|
|
7
|
+
label: { type: 'string', required: true, trim: true },
|
|
8
|
+
description: { type: 'string' },
|
|
9
|
+
icon: { type: 'string' },
|
|
10
|
+
order: { type: 'number', default: 0 },
|
|
11
|
+
system: { type: 'boolean', default: false },
|
|
12
|
+
},
|
|
13
|
+
relations: {},
|
|
14
|
+
indexes: [
|
|
15
|
+
{ fields: { order: 'asc', name: 'asc' } },
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=permission-category.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-category.schema.js","sourceRoot":"","sources":["../../schemas/permission-category.schema.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,wBAAwB,GAAiB;IACpD,IAAI,EAAE,oBAAoB;IAC1B,UAAU,EAAE,uBAAuB;IACnC,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,IAAI,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1F,KAAK,EAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC3D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,IAAI,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;QAC3C,MAAM,EAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;KACjD;IAED,SAAS,EAAE,EAAE;IAEb,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;KAC1C;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.schema.d.ts","sourceRoot":"","sources":["../../schemas/permission.schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,gBAAgB,EAAE,YAa9B,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const PermissionSchema = {
|
|
2
|
+
name: 'Permission',
|
|
3
|
+
collection: 'permissions',
|
|
4
|
+
timestamps: true,
|
|
5
|
+
fields: {
|
|
6
|
+
name: { type: 'string', required: true, unique: true },
|
|
7
|
+
description: { type: 'string' },
|
|
8
|
+
category: { type: 'string' },
|
|
9
|
+
},
|
|
10
|
+
relations: {},
|
|
11
|
+
indexes: [],
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=permission.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.schema.js","sourceRoot":"","sources":["../../schemas/permission.schema.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,IAAI,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC7D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,QAAQ,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;IAED,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;CACZ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.schema.d.ts","sourceRoot":"","sources":["../../schemas/role.schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,UAAU,EAAE,YAexB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const RoleSchema = {
|
|
2
|
+
name: 'Role',
|
|
3
|
+
collection: 'roles',
|
|
4
|
+
timestamps: true,
|
|
5
|
+
fields: {
|
|
6
|
+
name: { type: 'string', required: true, unique: true },
|
|
7
|
+
description: { type: 'string' },
|
|
8
|
+
},
|
|
9
|
+
relations: {
|
|
10
|
+
permissions: { target: 'Permission', type: 'many-to-many', through: 'role_permissions' },
|
|
11
|
+
},
|
|
12
|
+
indexes: [],
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=role.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.schema.js","sourceRoot":"","sources":["../../schemas/role.schema.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,IAAI,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC7D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;IAED,SAAS,EAAE;QACT,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,EAAE;KACzF;IAED,OAAO,EAAE,EAAE;CACZ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.schema.d.ts","sourceRoot":"","sources":["../../schemas/user.schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,UAAU,EAAE,YAsBxB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const UserSchema = {
|
|
2
|
+
name: 'User',
|
|
3
|
+
collection: 'users',
|
|
4
|
+
timestamps: true,
|
|
5
|
+
fields: {
|
|
6
|
+
email: { type: 'string', required: true, unique: true, lowercase: true, trim: true },
|
|
7
|
+
password: { type: 'string', required: true },
|
|
8
|
+
firstName: { type: 'string', required: true, trim: true },
|
|
9
|
+
lastName: { type: 'string', required: true, trim: true },
|
|
10
|
+
phone: { type: 'string', trim: true },
|
|
11
|
+
status: { type: 'string', enum: ['active', 'locked', 'disabled'], default: 'active' },
|
|
12
|
+
lastLoginAt: { type: 'date' },
|
|
13
|
+
},
|
|
14
|
+
relations: {
|
|
15
|
+
roles: { target: 'Role', type: 'many-to-many', through: 'user_roles' },
|
|
16
|
+
},
|
|
17
|
+
indexes: [
|
|
18
|
+
{ fields: { status: 'asc' } },
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=user.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.schema.js","sourceRoot":"","sources":["../../schemas/user.schema.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,KAAK,EAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1F,QAAQ,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,SAAS,EAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC3D,QAAQ,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC3D,KAAK,EAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;QAC3C,MAAM,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC1F,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC9B;IAED,SAAS,EAAE;QACT,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE;KACvE;IAED,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;KAC9B;CACF,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
export interface UserDTO {
|
|
2
|
+
id: string;
|
|
3
|
+
email: string;
|
|
4
|
+
password?: string;
|
|
5
|
+
firstName: string;
|
|
6
|
+
lastName: string;
|
|
7
|
+
phone?: string;
|
|
8
|
+
roles: any[];
|
|
9
|
+
status: 'active' | 'locked' | 'disabled';
|
|
10
|
+
lastLoginAt?: string;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
updatedAt: string;
|
|
13
|
+
}
|
|
14
|
+
export interface RoleDTO {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
permissions: any[];
|
|
19
|
+
createdAt: string;
|
|
20
|
+
updatedAt: string;
|
|
21
|
+
}
|
|
22
|
+
export interface PermissionDTO {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
category?: string;
|
|
27
|
+
createdAt: string;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
}
|
|
30
|
+
export interface PermissionCategoryDTO {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
label: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
icon?: string;
|
|
36
|
+
order: number;
|
|
37
|
+
system: boolean;
|
|
38
|
+
createdAt: string;
|
|
39
|
+
updatedAt: string;
|
|
40
|
+
}
|
|
1
41
|
export interface User {
|
|
2
42
|
id: string;
|
|
3
43
|
email: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,+DAA+D"}
|