/**
     * {@inheritdoc}
     */
    public function filterDump(AssetInterface $asset)
    {
        if (preg_match('/jquery_plugins_overrides\\.js$/', $asset->getSourcePath())) {
            $content = '';
            foreach (AssetRegistry::getAssets() as $module) {
                if ($module instanceof JavascriptModule && $module->getJqueryPlugins()) {
                    $name = $module->getModuleName();
                    foreach ($module->getJqueryPlugins() as $method) {
                        $script = <<<JAVASCRIPT
//Override {$name} plugin to load with RequireJs
\$.fn.{$method} = function () {
    var element = \$(this);
    var args = arguments;
    require(['{$name}'], function (module) {
        return element.each(function () {
            \$.fn.{$method}.apply(element,args);
        });
    });
    
    return element;
};

JAVASCRIPT;
                        $content .= $script;
                    }
                    $asset->setContent($content);
                }
            }
        }
    }
    /**
     * {@inheritdoc}
     */
    public function filterDump(AssetInterface $asset)
    {
        if (preg_match('/require_js_config\\.js$/', $asset->getSourcePath())) {
            $config = ['baseUrl' => '/', 'waitSeconds' => false, 'paths' => [], 'shim' => []];
            foreach (AssetRegistry::getAssets() as $module) {
                if ($module instanceof JavascriptModule) {
                    $path = array_key_value($this->config, 'cdn') && $module->getCdn() ? $module->getCdn() : $module->getPath();
                    $config['paths'][$module->getModuleName()] = preg_replace('/\\.js$/', '', $path);
                    if ($module->getDependencies()) {
                        $config['shim'][$module->getModuleName()]['deps'] = $module->getDependencies();
                    }
                    if ($module->getExports()) {
                        $config['shim'][$module->getModuleName()]['exports'] = $module->getExports();
                    }
                    if ($module->getInit()) {
                        $config['shim'][$module->getModuleName()]['init'] = '{function}' . $module->getInit() . '{/function}';
                    }
                }
            }
            $configJson = json_encode($config, JSON_UNESCAPED_SLASHES);
            $configJs = str_replace(['"{function}', '{/function}"', '\\"'], ['function(){', '}', '"'], $configJson);
            $content = <<<EOS
require.config({$configJs});
EOS;
            $asset->setContent($content);
        }
    }
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $assets = AssetRegistry::getAssets();
     $table = new Table($output);
     $table->setHeaders(['Name', 'Assets', 'RequireJS']);
     $names = array_keys($assets);
     $lastName = array_pop($names);
     foreach ($assets as $name => $namedAsset) {
         if ($namedAsset instanceof AssetBundle) {
             foreach ($namedAsset->getAssets() as $index => $asset) {
                 $table->addRow([$name, $asset->getPath()]);
                 $name = '';
             }
         } else {
             $table->addRow([$namedAsset->getName(), $namedAsset->getPath(), $namedAsset instanceof JavascriptModule ? $namedAsset->getModuleName() : '']);
         }
         if ($name !== $lastName) {
             $table->addRow(new TableSeparator());
         }
     }
     $table->render();
 }