16 lines
831 B
TypeScript
16 lines
831 B
TypeScript
import { type Capability, WidgetDriver } from 'matrix-widget-api';
|
|||
|
|
import { filterWidgetCapabilities } from './widgetUtils';
|
||
|
|
|
||
|
|
// A minimal, conservative WidgetDriver for general room widgets. It only narrows
|
||
|
|
// the capabilities a widget may hold (to a benign display-only subset — see
|
||
|
|
// widgetUtils). All data-access methods (sendEvent / readRoomState / sendToDevice
|
||
|
|
// / uploads …) are inherited from the base WidgetDriver and are never reached,
|
||
|
|
// because the capabilities that would gate them are denied here. A richer,
|
||
|
|
// consent-prompt-driven driver is a follow-up.
|
||
|
|
export class GeneralWidgetDriver extends WidgetDriver {
|
||
|
|
// eslint-disable-next-line class-methods-use-this
|
||
|
|
public async validateCapabilities(requested: Set<Capability>): Promise<Set<Capability>> {
|
||
|
|
return filterWidgetCapabilities(requested);
|
||
|
|
}
|
||
|
|
}
|