packages); $modules = $packages->filter(fn($package) => $package->type === 'openstamanager-module'); $modules->transform(function ($module) { $osm_modules = collect($module->extra->{'osm-modules'}); $module->config = $osm_modules ->mapWithKeys(fn($item, $name) => config($name) ?? include base_path("vendor/$module->name/config/{$name}.php")) ->reject(null) ->all(); // Modules $module->modules = $osm_modules->map(function ($item, $key) use ($module) { $split = explode('/', $module->name, 2); $item->moduleFullName = $module->name; $item->moduleVendor = $split[0]; $item->moduleName = $key; return $item; }); return $module; }); $filtered = $modules->only($filter); return ($request && $request->wantsJson()) ? response()->json($filtered) : $filtered; } }