Charter · Role syntax

without

without lists roles whose resolved ids are removed from the role. It expresses the difference between two sets of grants without listing the ids of either. In the example auditor allows * without member, and resolves to every action id member does not have.

Charter
{
  member: ['programme', 'seats', 'me.*'],
  auditor: { allow: ['*'], without: ['member'] },
}
Action ids
[
  'welcome',
  'programme',
  'seats',
  'me.tickets',
  'me.pass',
  'door.list',
  'members',
  'takings',
  'settings',
]
Resolved ids
[
  'welcome',
  'door.list',
  'members',
  'takings',
  'settings',
]
Output matches the expected value

Runs in this page on the installed package. The input and the expected output are defined by the example.