@mostajs/rbac 2.0.7 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/categories-id.js +1 -1
- package/dist/api/categories.js +1 -1
- package/dist/api/matrix.js +1 -1
- package/dist/api/permissions-id.js +1 -1
- package/dist/api/permissions.js +1 -1
- package/dist/api/roles-id.js +1 -1
- package/dist/api/roles.js +1 -1
- package/dist/api/seed.js +1 -1
- package/dist/api/users-id.js +1 -1
- package/dist/api/users.js +1 -1
- package/dist/components/CategoriesManager.js +9 -9
- package/dist/components/PermissionMatrix.js +6 -6
- package/dist/components/PermissionsManager.js +10 -10
- package/dist/components/RBACManager.js +5 -5
- package/dist/components/RolesManager.js +9 -9
- package/dist/components/UsersManager.js +10 -10
- package/dist/helpers/permissions.d.ts +12 -0
- package/dist/helpers/permissions.d.ts.map +1 -0
- package/dist/helpers/permissions.js +29 -0
- package/dist/helpers/permissions.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -15
- package/dist/index.js.map +1 -1
- package/dist/lib/module-info.d.ts +1 -0
- package/dist/lib/module-info.d.ts.map +1 -1
- package/dist/lib/module-info.js +1 -0
- package/dist/lib/module-info.js.map +1 -1
- package/dist/lib/rbac-seed.d.ts.map +1 -1
- package/dist/lib/rbac-seed.js +3 -1
- package/dist/lib/rbac-seed.js.map +1 -1
- package/dist/register.js +1 -1
- package/dist/repositories/permission-category.repository.js +1 -1
- package/dist/repositories/permission.repository.js +1 -1
- package/dist/repositories/role.repository.js +1 -1
- package/dist/repositories/user.repository.js +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +20 -18
- package/dist/server.js.map +1 -1
- package/package.json +6 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: PUT/DELETE /admin/categories/[id]
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
const updateCategorySchema = z.object({
|
|
7
7
|
label: z.string().min(1).optional(),
|
package/dist/api/categories.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: GET/POST /admin/categories
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
const createCategorySchema = z.object({
|
|
7
7
|
name: z.string().min(1).regex(/^[a-z][a-z0-9_]*$/, 'Format requis : minuscules, chiffres et underscores'),
|
package/dist/api/matrix.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: GET/POST /admin/permissions/matrix
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
export function createMatrixHandler(config) {
|
|
7
7
|
const { checkPermission, adminPermission, categoryDefinitions = [] } = config;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: PUT/DELETE /admin/permissions/[id]
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
const updatePermissionSchema = z.object({
|
|
7
7
|
description: z.string().optional(),
|
package/dist/api/permissions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: GET/POST /admin/permissions
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
const createPermissionSchema = z.object({
|
|
7
7
|
name: z.string().min(1).regex(/^[a-z_]+:[a-z_]+$/, 'Format requis : categorie:action'),
|
package/dist/api/roles-id.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: GET/PUT/DELETE /admin/roles/[id]
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
const updateRoleSchema = z.object({
|
|
7
7
|
name: z.string().min(1).regex(/^[a-z][a-z0-9_]*$/).optional(),
|
package/dist/api/roles.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: GET/POST /admin/roles
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
const createRoleSchema = z.object({
|
|
7
7
|
name: z.string().min(1).regex(/^[a-z][a-z0-9_]*$/, 'Le nom doit être en minuscules (lettres, chiffres, underscores)'),
|
package/dist/api/seed.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
2
|
// RBAC API handler: POST /admin/permissions/seed
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
4
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
5
5
|
export function createSeedHandler(config) {
|
|
6
6
|
const { checkPermission, adminPermission, permissionDefinitions, defaultRoles, categoryDefinitions, } = config;
|
|
7
7
|
async function POST() {
|
package/dist/api/users-id.js
CHANGED
|
@@ -13,7 +13,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
13
13
|
// RBAC API handler: GET/PUT/DELETE /users/[id]
|
|
14
14
|
import { NextResponse } from 'next/server';
|
|
15
15
|
import { hashPassword } from '@mostajs/auth/lib/password';
|
|
16
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
16
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
17
17
|
import { z } from 'zod';
|
|
18
18
|
const updateUserSchema = z.object({
|
|
19
19
|
email: z.string().email().optional(),
|
package/dist/api/users.js
CHANGED
|
@@ -13,7 +13,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
13
13
|
// RBAC API handler: GET/POST /users
|
|
14
14
|
import { NextResponse } from 'next/server';
|
|
15
15
|
import { hashPassword } from '@mostajs/auth/lib/password';
|
|
16
|
-
import { getRbacRepos } from '../lib/repos-factory
|
|
16
|
+
import { getRbacRepos } from '../lib/repos-factory';
|
|
17
17
|
import { z } from 'zod';
|
|
18
18
|
const createUserSchema = z.object({
|
|
19
19
|
email: z.string().email(),
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
6
|
-
import { Button } from './ui/button
|
|
7
|
-
import { Input } from './ui/input
|
|
8
|
-
import { Label } from './ui/label
|
|
9
|
-
import { Badge } from './ui/badge
|
|
10
|
-
import { Card, CardContent } from './ui/card
|
|
11
|
-
import { Dialog, DialogContent, DialogHeader, DialogTitle, } from './ui/dialog
|
|
12
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog
|
|
13
|
-
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table
|
|
6
|
+
import { Button } from './ui/button';
|
|
7
|
+
import { Input } from './ui/input';
|
|
8
|
+
import { Label } from './ui/label';
|
|
9
|
+
import { Badge } from './ui/badge';
|
|
10
|
+
import { Card, CardContent } from './ui/card';
|
|
11
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, } from './ui/dialog';
|
|
12
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog';
|
|
13
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table';
|
|
14
14
|
import { Plus, Pencil, Trash2, Loader2 } from 'lucide-react';
|
|
15
15
|
import { toast } from 'sonner';
|
|
16
|
-
import { createCategoriesApi, createPermissionsApi } from '../lib/rbac-api
|
|
16
|
+
import { createCategoriesApi, createPermissionsApi } from '../lib/rbac-api';
|
|
17
17
|
const defaultT = (key) => key;
|
|
18
18
|
export function CategoriesManager({ apiBasePath = '/api', t = defaultT, }) {
|
|
19
19
|
const catApi = createCategoriesApi(apiBasePath);
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useState, useCallback, Fragment } from 'react';
|
|
5
5
|
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
6
|
-
import { Button } from './ui/button
|
|
7
|
-
import { Badge } from './ui/badge
|
|
8
|
-
import { Card, CardContent } from './ui/card
|
|
9
|
-
import { Checkbox } from './ui/checkbox
|
|
10
|
-
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table
|
|
6
|
+
import { Button } from './ui/button';
|
|
7
|
+
import { Badge } from './ui/badge';
|
|
8
|
+
import { Card, CardContent } from './ui/card';
|
|
9
|
+
import { Checkbox } from './ui/checkbox';
|
|
10
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table';
|
|
11
11
|
import { Loader2, Save, Database } from 'lucide-react';
|
|
12
12
|
import { toast } from 'sonner';
|
|
13
|
-
import { createMatrixApi } from '../lib/rbac-api
|
|
13
|
+
import { createMatrixApi } from '../lib/rbac-api';
|
|
14
14
|
const defaultT = (key) => key;
|
|
15
15
|
export function PermissionMatrix({ apiBasePath = '/api', t = defaultT, }) {
|
|
16
16
|
const api = createMatrixApi(apiBasePath);
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
6
|
-
import { Button } from './ui/button
|
|
7
|
-
import { Input } from './ui/input
|
|
8
|
-
import { Label } from './ui/label
|
|
9
|
-
import { Badge } from './ui/badge
|
|
10
|
-
import { Card, CardContent } from './ui/card
|
|
11
|
-
import { Dialog, DialogContent, DialogHeader, DialogTitle, } from './ui/dialog
|
|
12
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog
|
|
13
|
-
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table
|
|
14
|
-
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from './ui/select
|
|
6
|
+
import { Button } from './ui/button';
|
|
7
|
+
import { Input } from './ui/input';
|
|
8
|
+
import { Label } from './ui/label';
|
|
9
|
+
import { Badge } from './ui/badge';
|
|
10
|
+
import { Card, CardContent } from './ui/card';
|
|
11
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, } from './ui/dialog';
|
|
12
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog';
|
|
13
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table';
|
|
14
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from './ui/select';
|
|
15
15
|
import { Plus, Pencil, Trash2, Loader2 } from 'lucide-react';
|
|
16
16
|
import { toast } from 'sonner';
|
|
17
|
-
import { createPermissionsApi, createCategoriesApi } from '../lib/rbac-api
|
|
17
|
+
import { createPermissionsApi, createCategoriesApi } from '../lib/rbac-api';
|
|
18
18
|
const defaultT = (key) => key;
|
|
19
19
|
export function PermissionsManager({ apiBasePath = '/api', t = defaultT, }) {
|
|
20
20
|
const permApi = createPermissionsApi(apiBasePath);
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
'use client';
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useState } from 'react';
|
|
5
|
-
import { Tabs, TabsContent, TabsList, TabsTrigger } from './ui/tabs
|
|
5
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from './ui/tabs';
|
|
6
6
|
import { Shield } from 'lucide-react';
|
|
7
|
-
import { PermissionMatrix } from './PermissionMatrix
|
|
8
|
-
import { RolesManager } from './RolesManager
|
|
9
|
-
import { PermissionsManager } from './PermissionsManager
|
|
10
|
-
import { CategoriesManager } from './CategoriesManager
|
|
7
|
+
import { PermissionMatrix } from './PermissionMatrix';
|
|
8
|
+
import { RolesManager } from './RolesManager';
|
|
9
|
+
import { PermissionsManager } from './PermissionsManager';
|
|
10
|
+
import { CategoriesManager } from './CategoriesManager';
|
|
11
11
|
const defaultT = (key) => key;
|
|
12
12
|
export function RBACManager({ apiBasePath = '/api', t = defaultT, systemRoles = [], roleColors, statusColors, }) {
|
|
13
13
|
const [tab, setTab] = useState('matrix');
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
6
|
-
import { Button } from './ui/button
|
|
7
|
-
import { Input } from './ui/input
|
|
8
|
-
import { Label } from './ui/label
|
|
9
|
-
import { Badge } from './ui/badge
|
|
10
|
-
import { Card, CardContent } from './ui/card
|
|
11
|
-
import { Dialog, DialogContent, DialogHeader, DialogTitle, } from './ui/dialog
|
|
12
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog
|
|
13
|
-
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table
|
|
6
|
+
import { Button } from './ui/button';
|
|
7
|
+
import { Input } from './ui/input';
|
|
8
|
+
import { Label } from './ui/label';
|
|
9
|
+
import { Badge } from './ui/badge';
|
|
10
|
+
import { Card, CardContent } from './ui/card';
|
|
11
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, } from './ui/dialog';
|
|
12
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog';
|
|
13
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table';
|
|
14
14
|
import { Plus, Pencil, Trash2, Loader2 } from 'lucide-react';
|
|
15
15
|
import { toast } from 'sonner';
|
|
16
|
-
import { createRolesApi } from '../lib/rbac-api
|
|
16
|
+
import { createRolesApi } from '../lib/rbac-api';
|
|
17
17
|
const defaultT = (key) => key;
|
|
18
18
|
export function RolesManager({ apiBasePath = '/api', t = defaultT, systemRoles = [], }) {
|
|
19
19
|
const api = createRolesApi(apiBasePath);
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
6
|
-
import { Button } from './ui/button
|
|
7
|
-
import { Input } from './ui/input
|
|
8
|
-
import { Label } from './ui/label
|
|
9
|
-
import { Badge } from './ui/badge
|
|
10
|
-
import { Card, CardContent } from './ui/card
|
|
11
|
-
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, } from './ui/dialog
|
|
12
|
-
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from './ui/select
|
|
13
|
-
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table
|
|
6
|
+
import { Button } from './ui/button';
|
|
7
|
+
import { Input } from './ui/input';
|
|
8
|
+
import { Label } from './ui/label';
|
|
9
|
+
import { Badge } from './ui/badge';
|
|
10
|
+
import { Card, CardContent } from './ui/card';
|
|
11
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, } from './ui/dialog';
|
|
12
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from './ui/select';
|
|
13
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './ui/table';
|
|
14
14
|
import { Plus, Pencil, Trash2, Loader2 } from 'lucide-react';
|
|
15
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog
|
|
15
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from './ui/alert-dialog';
|
|
16
16
|
import { toast } from 'sonner';
|
|
17
|
-
import { createUsersApi } from '../lib/rbac-api
|
|
17
|
+
import { createUsersApi } from '../lib/rbac-api';
|
|
18
18
|
const defaultT = (key) => key;
|
|
19
19
|
export function UsersManager({ apiBasePath = '/api', t = defaultT, roleColors = {}, statusColors = {}, fallbackRoles, }) {
|
|
20
20
|
const api = createUsersApi(apiBasePath);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a user's permissions include the required permission.
|
|
3
|
+
* Supports exact match, full wildcard '*', and glob patterns like 'cloud.admin.*'.
|
|
4
|
+
*/
|
|
5
|
+
export declare function hasPermission(userPermissions: string[], requiredPermission: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Check if a single user permission matches the required permission.
|
|
8
|
+
* @param required - The permission being checked (e.g. 'cloud.admin.users')
|
|
9
|
+
* @param userPerm - A permission the user holds (e.g. 'cloud.admin.*')
|
|
10
|
+
*/
|
|
11
|
+
export declare function matchesPermission(required: string, userPerm: string): boolean;
|
|
12
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../helpers/permissions.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAG5F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAS7E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// @mostajs/rbac — Permission matching helpers
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
/**
|
|
4
|
+
* Check if a user's permissions include the required permission.
|
|
5
|
+
* Supports exact match, full wildcard '*', and glob patterns like 'cloud.admin.*'.
|
|
6
|
+
*/
|
|
7
|
+
export function hasPermission(userPermissions, requiredPermission) {
|
|
8
|
+
if (!userPermissions || userPermissions.length === 0)
|
|
9
|
+
return false;
|
|
10
|
+
return userPermissions.some(perm => matchesPermission(requiredPermission, perm));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check if a single user permission matches the required permission.
|
|
14
|
+
* @param required - The permission being checked (e.g. 'cloud.admin.users')
|
|
15
|
+
* @param userPerm - A permission the user holds (e.g. 'cloud.admin.*')
|
|
16
|
+
*/
|
|
17
|
+
export function matchesPermission(required, userPerm) {
|
|
18
|
+
if (userPerm === '*')
|
|
19
|
+
return true;
|
|
20
|
+
if (userPerm === required)
|
|
21
|
+
return true;
|
|
22
|
+
// Wildcard pattern: 'cloud.admin.*' matches 'cloud.admin.users'
|
|
23
|
+
if (userPerm.endsWith('.*')) {
|
|
24
|
+
const prefix = userPerm.slice(0, -2);
|
|
25
|
+
return required.startsWith(prefix + '.');
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../helpers/permissions.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,wCAAwC;AAExC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,eAAyB,EAAE,kBAA0B;IACjF,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAClE,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAA;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAClE,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACtC,gEAAgE;IAChE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpC,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { RolesManager } from './components/RolesManager';
|
|
|
12
12
|
export { PermissionsManager } from './components/PermissionsManager';
|
|
13
13
|
export { CategoriesManager } from './components/CategoriesManager';
|
|
14
14
|
export { PermissionMatrix } from './components/PermissionMatrix';
|
|
15
|
+
export { hasPermission, matchesPermission } from './helpers/permissions';
|
|
15
16
|
export { createUsersApi, createRolesApi, createPermissionsApi, createMatrixApi, createCategoriesApi, } from './lib/rbac-api';
|
|
16
17
|
export type { UserDTO, RoleDTO, PermissionDTO, PermissionCategoryDTO, User, RoleOption, RoleData, PermissionData, CategoryData, MatrixData, RBACConfig, PermissionDefinition, RoleDefinition, CategoryDefinition, } from './types';
|
|
17
18
|
export type { UsersHandlerConfig } from './api/users';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAG/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAGjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGxD,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AAGvB,YAAY,EACV,OAAO,EACP,OAAO,EACP,aAAa,EACb,qBAAqB,EACrB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GACnB,MAAM,SAAS,CAAA;AAGhB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAG/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAGjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGxD,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGxE,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AAGvB,YAAY,EACV,OAAO,EACP,OAAO,EACP,aAAa,EACb,qBAAqB,EACrB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GACnB,MAAM,SAAS,CAAA;AAGhB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,24 +2,26 @@
|
|
|
2
2
|
// @mostajs/rbac — Client-safe barrel (NO ORM imports)
|
|
3
3
|
// For server-side code (repos, seed, permissions-server), use '@mostajs/rbac/server'
|
|
4
4
|
// Schemas (pure data definitions — no ORM dependency)
|
|
5
|
-
export { UserSchema } from './schemas/user.schema
|
|
6
|
-
export { RoleSchema } from './schemas/role.schema
|
|
7
|
-
export { PermissionSchema } from './schemas/permission.schema
|
|
8
|
-
export { PermissionCategorySchema } from './schemas/permission-category.schema
|
|
5
|
+
export { UserSchema } from './schemas/user.schema';
|
|
6
|
+
export { RoleSchema } from './schemas/role.schema';
|
|
7
|
+
export { PermissionSchema } from './schemas/permission.schema';
|
|
8
|
+
export { PermissionCategorySchema } from './schemas/permission-category.schema';
|
|
9
9
|
// Menu contribution
|
|
10
|
-
export { rbacMenuContribution } from './lib/menu
|
|
10
|
+
export { rbacMenuContribution } from './lib/menu';
|
|
11
11
|
// Pages (client-side, registered via PageRegistration)
|
|
12
|
-
export { default as UsersPage } from './pages/UsersPage
|
|
13
|
-
export { default as RolesPage } from './pages/RolesPage
|
|
12
|
+
export { default as UsersPage } from './pages/UsersPage';
|
|
13
|
+
export { default as RolesPage } from './pages/RolesPage';
|
|
14
14
|
// i18n
|
|
15
|
-
export { t as rbacT } from './lib/i18n
|
|
15
|
+
export { t as rbacT } from './lib/i18n';
|
|
16
16
|
// Components (client-side)
|
|
17
|
-
export { UsersManager } from './components/UsersManager
|
|
18
|
-
export { RBACManager } from './components/RBACManager
|
|
19
|
-
export { RolesManager } from './components/RolesManager
|
|
20
|
-
export { PermissionsManager } from './components/PermissionsManager
|
|
21
|
-
export { CategoriesManager } from './components/CategoriesManager
|
|
22
|
-
export { PermissionMatrix } from './components/PermissionMatrix
|
|
17
|
+
export { UsersManager } from './components/UsersManager';
|
|
18
|
+
export { RBACManager } from './components/RBACManager';
|
|
19
|
+
export { RolesManager } from './components/RolesManager';
|
|
20
|
+
export { PermissionsManager } from './components/PermissionsManager';
|
|
21
|
+
export { CategoriesManager } from './components/CategoriesManager';
|
|
22
|
+
export { PermissionMatrix } from './components/PermissionMatrix';
|
|
23
|
+
// Permission matching helpers
|
|
24
|
+
export { hasPermission, matchesPermission } from './helpers/permissions';
|
|
23
25
|
// API helpers (client-side fetch wrappers — no server deps)
|
|
24
|
-
export { createUsersApi, createRolesApi, createPermissionsApi, createMatrixApi, createCategoriesApi, } from './lib/rbac-api
|
|
26
|
+
export { createUsersApi, createRolesApi, createPermissionsApi, createMatrixApi, createCategoriesApi, } from './lib/rbac-api';
|
|
25
27
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,sDAAsD;AACtD,qFAAqF;AAErF,sDAAsD;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAE/E,oBAAoB;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,uDAAuD;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO;AACP,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,2BAA2B;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,4DAA4D;AAC5D,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,sDAAsD;AACtD,qFAAqF;AAErF,sDAAsD;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAE/E,oBAAoB;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,uDAAuD;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO;AACP,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,2BAA2B;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAExE,4DAA4D;AAC5D,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-info.d.ts","sourceRoot":"","sources":["../../lib/module-info.ts"],"names":[],"mappings":"AASA,8EAA8E;AAC9E,wBAAgB,UAAU,0CAEzB;AAED,0CAA0C;AAC1C,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"module-info.d.ts","sourceRoot":"","sources":["../../lib/module-info.ts"],"names":[],"mappings":"AASA,8EAA8E;AAC9E,wBAAgB,UAAU,0CAEzB;AAED,0CAA0C;AAC1C,eAAO,MAAM,UAAU;;;;;;IAMrB,gEAAgE;qBACzC,GAAG;;;;;IAQ1B,qDAAqD;2BACxB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAItG,CAAA"}
|
package/dist/lib/module-info.js
CHANGED
|
@@ -12,6 +12,7 @@ export function getSchemas() {
|
|
|
12
12
|
/** Module metadata for setup discovery */
|
|
13
13
|
export const moduleInfo = {
|
|
14
14
|
name: 'rbac',
|
|
15
|
+
version: '2.1.0',
|
|
15
16
|
label: 'Roles & Permissions',
|
|
16
17
|
description: 'User, Role, Permission, PermissionCategory management',
|
|
17
18
|
schemas: getSchemas,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-info.js","sourceRoot":"","sources":["../../lib/module-info.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oEAAoE;AACpE,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AAEnF,8EAA8E;AAC9E,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,CAAA;AAC7E,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,uDAAuD;IACpE,OAAO,EAAE,UAAU;IACnB,gEAAgE;IAChE,IAAI,EAAE,KAAK,EAAE,OAAa,EAAE,EAAE;QAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACnD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE,CAAC;YAClE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;QACD,+BAA+B;QAC/B,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IAC/D,CAAC;IACD,qDAAqD;IACrD,WAAW,EAAE,KAAK,EAAE,OAAiF,EAAE,EAAE;QACvG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACzD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"module-info.js","sourceRoot":"","sources":["../../lib/module-info.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oEAAoE;AACpE,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AAEnF,8EAA8E;AAC9E,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,CAAA;AAC7E,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,uDAAuD;IACpE,OAAO,EAAE,UAAU;IACnB,gEAAgE;IAChE,IAAI,EAAE,KAAK,EAAE,OAAa,EAAE,EAAE;QAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACnD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE,CAAC;YAClE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;QACD,+BAA+B;QAC/B,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IAC/D,CAAC;IACD,qDAAqD;IACrD,WAAW,EAAE,KAAK,EAAE,OAAiF,EAAE,EAAE;QACvG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACzD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-seed.d.ts","sourceRoot":"","sources":["../../lib/rbac-seed.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEjG,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,kBAAkB,EAAE,CAAA;IAChC,WAAW,EAAE,oBAAoB,EAAE,CAAA;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACtC;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAChE,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,
|
|
1
|
+
{"version":3,"file":"rbac-seed.d.ts","sourceRoot":"","sources":["../../lib/rbac-seed.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEjG,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,kBAAkB,EAAE,CAAA;IAChC,WAAW,EAAE,oBAAoB,EAAE,CAAA;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACtC;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAChE,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CAoCD"}
|
package/dist/lib/rbac-seed.js
CHANGED
|
@@ -14,7 +14,8 @@ export async function seedRBAC(options) {
|
|
|
14
14
|
// 2. Upsert permissions — build code→id map
|
|
15
15
|
const permissionMap = {};
|
|
16
16
|
for (const pDef of options.permissions) {
|
|
17
|
-
const
|
|
17
|
+
const displayName = pDef.name || pDef.code;
|
|
18
|
+
const perm = await permRepo.upsert({ name: displayName }, { name: displayName, description: pDef.description, category: pDef.category });
|
|
18
19
|
permissionMap[pDef.code] = perm.id;
|
|
19
20
|
}
|
|
20
21
|
// 3. Upsert roles with permission IDs
|
|
@@ -30,4 +31,5 @@ export async function seedRBAC(options) {
|
|
|
30
31
|
roleCount: Object.keys(options.roles).length,
|
|
31
32
|
};
|
|
32
33
|
}
|
|
34
|
+
// seedCloudRBAC supprime — utiliser @mostajs/cloud-config bootstrapRBAC(seedRBAC) a la place
|
|
33
35
|
//# sourceMappingURL=rbac-seed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-seed.js","sourceRoot":"","sources":["../../lib/rbac-seed.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wCAAwC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AASjD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IAKrD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;IAE5F,uBAAuB;IACvB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IAC/C,CAAC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAA2B,EAAE,CAAA;IAChD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAO,QAAgB,CAAC,MAAM,CACzC,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"rbac-seed.js","sourceRoot":"","sources":["../../lib/rbac-seed.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wCAAwC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AASjD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IAKrD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;IAE5F,uBAAuB;IACvB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IAC/C,CAAC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAA2B,EAAE,CAAA;IAChD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;QAC1C,MAAM,IAAI,GAAG,MAAO,QAAgB,CAAC,MAAM,CACzC,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC9E,CAAA;QACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;IACpC,CAAC;IAED,sCAAsC;IACtC,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;aACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAClC,MAAM,CAAC,OAAO,CAAC,CAAA;QAElB,MAAO,QAAgB,CAAC,MAAM,CAC5B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EACtB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,CACrF,CAAA;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;QACxC,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;QAC3C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM;KAC7C,CAAA;AACH,CAAC;AAED,6FAA6F"}
|
package/dist/register.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @mostajs/rbac — PermissionCategoryRepository
|
|
2
2
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
3
|
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
-
import { PermissionCategorySchema } from '../schemas/permission-category.schema
|
|
4
|
+
import { PermissionCategorySchema } from '../schemas/permission-category.schema';
|
|
5
5
|
export class PermissionCategoryRepository extends BaseRepository {
|
|
6
6
|
constructor(dialect) {
|
|
7
7
|
super(PermissionCategorySchema, dialect);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @mostajs/rbac — PermissionRepository
|
|
2
2
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
3
|
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
-
import { PermissionSchema } from '../schemas/permission.schema
|
|
4
|
+
import { PermissionSchema } from '../schemas/permission.schema';
|
|
5
5
|
export class PermissionRepository extends BaseRepository {
|
|
6
6
|
constructor(dialect) {
|
|
7
7
|
super(PermissionSchema, dialect);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @mostajs/rbac — RoleRepository
|
|
2
2
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
3
|
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
-
import { RoleSchema } from '../schemas/role.schema
|
|
4
|
+
import { RoleSchema } from '../schemas/role.schema';
|
|
5
5
|
export class RoleRepository extends BaseRepository {
|
|
6
6
|
constructor(dialect) {
|
|
7
7
|
super(RoleSchema, dialect);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @mostajs/rbac — UserRepository
|
|
2
2
|
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
3
|
import { BaseRepository } from '@mostajs/orm';
|
|
4
|
-
import { UserSchema } from '../schemas/user.schema
|
|
4
|
+
import { UserSchema } from '../schemas/user.schema';
|
|
5
5
|
export class UserRepository extends BaseRepository {
|
|
6
6
|
constructor(dialect) {
|
|
7
7
|
super(UserSchema, dialect);
|
package/dist/server.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { PermissionRepository } from './repositories/permission.repository';
|
|
|
4
4
|
export { PermissionCategoryRepository } from './repositories/permission-category.repository';
|
|
5
5
|
export { seedRBAC } from './lib/rbac-seed';
|
|
6
6
|
export type { SeedRBACOptions } from './lib/rbac-seed';
|
|
7
|
+
export { hasPermission, matchesPermission } from './helpers/permissions';
|
|
7
8
|
export { createAdmin } from './lib/create-admin';
|
|
8
9
|
export type { CreateAdminOptions, CreateAdminResult } from './lib/create-admin';
|
|
9
10
|
export { getSchemas, moduleInfo } from './lib/module-info';
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAG5F,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG/E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAG5F,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG/E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -2,27 +2,29 @@
|
|
|
2
2
|
// @mostajs/rbac/server — Server-side exports (ORM-dependent)
|
|
3
3
|
// Import from '@mostajs/rbac/server' in API routes and server code
|
|
4
4
|
// Repositories (depend on @mostajs/orm)
|
|
5
|
-
export { UserRepository } from './repositories/user.repository
|
|
6
|
-
export { RoleRepository } from './repositories/role.repository
|
|
7
|
-
export { PermissionRepository } from './repositories/permission.repository
|
|
8
|
-
export { PermissionCategoryRepository } from './repositories/permission-category.repository
|
|
5
|
+
export { UserRepository } from './repositories/user.repository';
|
|
6
|
+
export { RoleRepository } from './repositories/role.repository';
|
|
7
|
+
export { PermissionRepository } from './repositories/permission.repository';
|
|
8
|
+
export { PermissionCategoryRepository } from './repositories/permission-category.repository';
|
|
9
9
|
// RBAC seed (depends on repos → ORM)
|
|
10
|
-
export { seedRBAC } from './lib/rbac-seed
|
|
10
|
+
export { seedRBAC } from './lib/rbac-seed';
|
|
11
|
+
// Permission matching helpers
|
|
12
|
+
export { hasPermission, matchesPermission } from './helpers/permissions';
|
|
11
13
|
// Create admin (depends on repos → ORM + bcrypt)
|
|
12
|
-
export { createAdmin } from './lib/create-admin
|
|
14
|
+
export { createAdmin } from './lib/create-admin';
|
|
13
15
|
// Module info (schemas, seeds, metadata — for setup discovery)
|
|
14
|
-
export { getSchemas, moduleInfo } from './lib/module-info
|
|
16
|
+
export { getSchemas, moduleInfo } from './lib/module-info';
|
|
15
17
|
// Server-side permission DB lookup (depends on repos → ORM)
|
|
16
|
-
export { getPermissionsForRoleFromDB } from './lib/permissions-server
|
|
18
|
+
export { getPermissionsForRoleFromDB } from './lib/permissions-server';
|
|
17
19
|
// API handler factories
|
|
18
|
-
export { createUsersHandler } from './api/users
|
|
19
|
-
export { createUsersIdHandler } from './api/users-id
|
|
20
|
-
export { createRolesHandler } from './api/roles
|
|
21
|
-
export { createRolesIdHandler } from './api/roles-id
|
|
22
|
-
export { createPermissionsHandler } from './api/permissions
|
|
23
|
-
export { createPermissionsIdHandler } from './api/permissions-id
|
|
24
|
-
export { createMatrixHandler } from './api/matrix
|
|
25
|
-
export { createCategoriesHandler } from './api/categories
|
|
26
|
-
export { createCategoriesIdHandler } from './api/categories-id
|
|
27
|
-
export { createSeedHandler } from './api/seed
|
|
20
|
+
export { createUsersHandler } from './api/users';
|
|
21
|
+
export { createUsersIdHandler } from './api/users-id';
|
|
22
|
+
export { createRolesHandler } from './api/roles';
|
|
23
|
+
export { createRolesIdHandler } from './api/roles-id';
|
|
24
|
+
export { createPermissionsHandler } from './api/permissions';
|
|
25
|
+
export { createPermissionsIdHandler } from './api/permissions-id';
|
|
26
|
+
export { createMatrixHandler } from './api/matrix';
|
|
27
|
+
export { createCategoriesHandler } from './api/categories';
|
|
28
|
+
export { createCategoriesIdHandler } from './api/categories-id';
|
|
29
|
+
export { createSeedHandler } from './api/seed';
|
|
28
30
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,6DAA6D;AAC7D,mEAAmE;AAEnE,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAE5F,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE1D,4DAA4D;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAEtE,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,6DAA6D;AAC7D,mEAAmE;AAEnE,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAE5F,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAExE,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE1D,4DAA4D;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAEtE,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/rbac",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "RBAC — User/Role/Permission schemas, repos, management UI, API handlers",
|
|
5
5
|
"author": "Dr Hamid MADANI <drmdh@msn.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -74,6 +74,11 @@
|
|
|
74
74
|
"import": "./dist/lib/menu.js",
|
|
75
75
|
"default": "./dist/lib/menu.js"
|
|
76
76
|
},
|
|
77
|
+
"./helpers/permissions": {
|
|
78
|
+
"types": "./dist/helpers/permissions.d.ts",
|
|
79
|
+
"import": "./dist/helpers/permissions.js",
|
|
80
|
+
"default": "./dist/helpers/permissions.js"
|
|
81
|
+
},
|
|
77
82
|
"./lib/rbac-seed": {
|
|
78
83
|
"types": "./dist/lib/rbac-seed.d.ts",
|
|
79
84
|
"import": "./dist/lib/rbac-seed.js",
|