{"version":3,"file":"roles.mjs","names":[],"sources":["../src/api/roles.ts"],"sourcesContent":["import type {\n\tCreateRoleDto,\n\tRoleAssignmentsResponse,\n\tRoleMembersResponse,\n\tRoleProjectMembersResponse,\n\tUpdateRoleDto,\n} from '@n8n/api-types';\nimport type { AllRolesMap, Role } from '@n8n/permissions';\n\nimport type { IRestApiContext } from '../types';\nimport { makeRestApiRequest } from '../utils';\n\nexport const getRoles = async (context: IRestApiContext): Promise<AllRolesMap> => {\n\treturn await makeRestApiRequest(context, 'GET', '/roles?withUsageCount=true');\n};\n\nexport const createRole = async (context: IRestApiContext, body: CreateRoleDto): Promise<Role> => {\n\treturn await makeRestApiRequest(context, 'POST', '/roles', body);\n};\n\nexport const getRoleBySlug = async (\n\tcontext: IRestApiContext,\n\tbody: { slug: string },\n): Promise<Role> => {\n\treturn await makeRestApiRequest(context, 'GET', `/roles/${body.slug}?withUsageCount=true`);\n};\n\nexport const updateRole = async (\n\tcontext: IRestApiContext,\n\tslug: string,\n\tbody: UpdateRoleDto,\n): Promise<Role> => {\n\treturn await makeRestApiRequest(context, 'PATCH', `/roles/${slug}`, body);\n};\n\nexport const deleteRole = async (\n\tcontext: IRestApiContext,\n\tslug: string,\n\treassignRoleSlug?: string,\n): Promise<Role> => {\n\tconst query = reassignRoleSlug ? `?reassignRoleSlug=${encodeURIComponent(reassignRoleSlug)}` : '';\n\treturn await makeRestApiRequest(context, 'DELETE', `/roles/${slug}${query}`);\n};\n\nexport const getRoleAssignments = async (\n\tcontext: IRestApiContext,\n\tslug: string,\n): Promise<RoleAssignmentsResponse> => {\n\treturn await makeRestApiRequest(context, 'GET', `/roles/${slug}/assignments`);\n};\n\nexport const getRoleProjectMembers = async (\n\tcontext: IRestApiContext,\n\tslug: string,\n\tprojectId: string,\n): Promise<RoleProjectMembersResponse> => {\n\treturn await makeRestApiRequest(\n\t\tcontext,\n\t\t'GET',\n\t\t`/roles/${slug}/assignments/${projectId}/members`,\n\t);\n};\n\nexport const getRoleMembers = async (\n\tcontext: IRestApiContext,\n\tslug: string,\n): Promise<RoleMembersResponse> => {\n\treturn await makeRestApiRequest(context, 'GET', `/roles/${slug}/members`);\n};\n"],"mappings":";;;AAYA,MAAa,WAAW,OAAO,YAAmD;AACjF,QAAO,MAAM,mBAAmB,SAAS,OAAO,6BAA6B;;AAG9E,MAAa,aAAa,OAAO,SAA0B,SAAuC;AACjG,QAAO,MAAM,mBAAmB,SAAS,QAAQ,UAAU,KAAK;;AAGjE,MAAa,gBAAgB,OAC5B,SACA,SACmB;AACnB,QAAO,MAAM,mBAAmB,SAAS,OAAO,UAAU,KAAK,KAAK,sBAAsB;;AAG3F,MAAa,aAAa,OACzB,SACA,MACA,SACmB;AACnB,QAAO,MAAM,mBAAmB,SAAS,SAAS,UAAU,QAAQ,KAAK;;AAG1E,MAAa,aAAa,OACzB,SACA,MACA,qBACmB;AAEnB,QAAO,MAAM,mBAAmB,SAAS,UAAU,UAAU,OAD/C,mBAAmB,qBAAqB,mBAAmB,iBAAiB,KAAK,KACnB;;AAG7E,MAAa,qBAAqB,OACjC,SACA,SACsC;AACtC,QAAO,MAAM,mBAAmB,SAAS,OAAO,UAAU,KAAK,cAAc;;AAG9E,MAAa,wBAAwB,OACpC,SACA,MACA,cACyC;AACzC,QAAO,MAAM,mBACZ,SACA,OACA,UAAU,KAAK,eAAe,UAAU,UACxC;;AAGF,MAAa,iBAAiB,OAC7B,SACA,SACkC;AAClC,QAAO,MAAM,mBAAmB,SAAS,OAAO,UAAU,KAAK,UAAU"}