{"library":"rollup-plugin-userscript","title":"rollup-plugin-userscript","description":"Rollup plugin that automatically parses userscript metadata blocks and injects @grant declarations for GM_* functions used in the code. Version 1.1.0 requires Rollup ^4.0.0 and Node >=18. Differentiates from manual grant management by analyzing the bundle at compile time and adding only needed grants. Maintained by Violentmonkey project; follows Tampermonkey/Violentmonkey metadata conventions.","language":"javascript","status":"active","last_verified":"Mon Apr 27","install":{"commands":["npm install rollup-plugin-userscript"],"cli":null},"imports":["import userscript from 'rollup-plugin-userscript';","import userscript from 'rollup-plugin-userscript';\nexport default {\n  plugins: [userscript(meta => meta.replace('KEY', 'value'))]\n};","import './meta.js?userscript-metadata';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"// rollup.config.mjs\nimport userscript from 'rollup-plugin-userscript';\nimport { defineConfig } from 'rollup';\n\nexport default defineConfig({\n  input: 'src/index.js',\n  output: {\n    file: 'dist/bundle.user.js',\n    format: 'iife'\n  },\n  plugins: [\n    userscript(meta => {\n      const pkg = { author: 'John Doe' };\n      return meta.replace('process.env.AUTHOR', pkg.author);\n    })\n  ]\n});\n\n// src/index.js\nimport './meta.js?userscript-metadata';\n// Use GM_* functions\nGM_setClipboard('Hello');\n","lang":"javascript","description":"Configures Rollup to bundle a userscript, uses the plugin to replace placeholders in metadata and automatically add @grant for GM_setClipboard.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}