providers->register(ProviderInterface::TYPE_PREVIEW, 'wopi', Provider::class); } public function handle(): string { return 'service_wopi'; } public function label(): string { return 'WOPI Service'; } public function author(): string { return 'Ktrix'; } public function version(): string { return '0.0.1'; } public function description(): string { return 'Read-only WOPI document access and discovery'; } public function permissions(): array { return ['service_wopi.view' => ['label' => 'View office documents', 'description' => 'Open documents in the configured office server', 'group' => 'Documents']]; } public function configure(ModuleContextInterface $context): void { if ($context instanceof BrowserModuleContextInterface) { $context->registerModule($this, 'ServiceWopi', 'static/module.mjs'); } if ($context instanceof ConsoleModuleContextInterface) { $context->registerCommand(CheckCommand::class); $context->registerCommand(CleanupCommand::class); $context->registerCommand(ConfigureCommand::class); } } }