{"_id":"@artemsemkin/wp-headers","_rev":"7-2070abe1d751673e81c6a6df601ee497","name":"@artemsemkin/wp-headers","dist-tags":{"latest":"1.2.7"},"versions":{"1.1.0":{"name":"@artemsemkin/wp-headers","version":"1.1.0","keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"author":{"name":"Artem Semkin"},"license":"MIT","_id":"@artemsemkin/wp-headers@1.1.0","maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"homepage":"https://github.com/artkrsk/wp-headers#readme","bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"dist":{"shasum":"bb8a9c803f4a94ee6558400d974c92e84da9a35b","tarball":"https://registry.npmjs.org/@artemsemkin/wp-headers/-/wp-headers-1.1.0.tgz","fileCount":17,"integrity":"sha512-nVXsy+sSgii5/RfLVv+ujNmNRcmb7zq6hbBktatMgS+MxnNcbH+473OY1HCNPUWfup8qzPJBbYNYR3zpROI3iQ==","signatures":[{"sig":"MEUCIB48xWzrH3ZX6yrNYYYbpvuE8RR86Aa8sXs0nLfp59INAiEAqBBTvfLbMQrKv7+eICemuUSgTlXp3BH0BkSRUS4lMbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27469},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"f47d93c0edca9448ce9873f57dab776f775de129","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build"},"_npmUser":{"name":"artemsemkin","email":"me@artemsemkin.com"},"repository":{"url":"git+https://github.com/artkrsk/wp-headers.git","type":"git"},"_npmVersion":"11.10.0","description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","directories":{},"_nodeVersion":"25.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.3.0","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/wp-headers_1.1.0_1771562869209_0.21725745358025939","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@artemsemkin/wp-headers","version":"1.2.0","keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"author":{"name":"Artem Semkin"},"license":"MIT","_id":"@artemsemkin/wp-headers@1.2.0","maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"homepage":"https://github.com/artkrsk/wp-headers#readme","bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"dist":{"shasum":"1a41c0cfdd9bb999ed8e1715bebf0d77c9b8ea88","tarball":"https://registry.npmjs.org/@artemsemkin/wp-headers/-/wp-headers-1.2.0.tgz","fileCount":17,"integrity":"sha512-CR657fokldhHo/0LQZ4D4q+wcr1XBFIsXPe++WxhgBONNC7JUjTRmB81oWMx+E65ZWO/G5z3HfgxpRSYwpSYZg==","signatures":[{"sig":"MEUCIQD7KWJSm2gjE6xYN1zzBHQsuiqn+8ROeYOL4i4fWKwxnQIgWBgY/WOpD0ul7JhB9gPBSCfwxsgVzpcHP96otVGdOaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29913},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"5f1db4b7682d227f1027278e4161c616cf29b0fa","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build"},"_npmUser":{"name":"artemsemkin","email":"me@artemsemkin.com"},"repository":{"url":"git+https://github.com/artkrsk/wp-headers.git","type":"git"},"_npmVersion":"11.10.0","description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","directories":{},"_nodeVersion":"25.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.3.0","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/wp-headers_1.2.0_1771564623070_0.47305825868310114","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@artemsemkin/wp-headers","version":"1.2.1","keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"author":{"name":"Artem Semkin"},"license":"MIT","_id":"@artemsemkin/wp-headers@1.2.1","maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"homepage":"https://github.com/artkrsk/wp-headers#readme","bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"dist":{"shasum":"627d2199585c022386f1fa5c8e2663f887357c76","tarball":"https://registry.npmjs.org/@artemsemkin/wp-headers/-/wp-headers-1.2.1.tgz","fileCount":17,"integrity":"sha512-nHozek+iz+D61wbtrQK6orfHbjp8/+HneeqyAouH5jEBZTCb0qcn+UNJFoJaRgUigaicrW3AMOHiCB2XmJct5Q==","signatures":[{"sig":"MEQCIHGhXGr1VG8pE0aTIm/CIIOXv9VODEEPysQJB6Hiuf63AiAajaCDMCwG2pI5KHUplRiaTjZrCRxQUDd1yDyQJ35Q7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30580},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"fa296fbff7d8c37d22c5df53e070e18320f4a47e","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build"},"_npmUser":{"name":"artemsemkin","email":"me@artemsemkin.com"},"repository":{"url":"git+https://github.com/artkrsk/wp-headers.git","type":"git"},"_npmVersion":"11.10.0","description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","directories":{},"_nodeVersion":"25.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.3.0","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/wp-headers_1.2.1_1771565179243_0.559699520940176","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@artemsemkin/wp-headers","version":"1.2.2","keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"author":{"name":"Artem Semkin"},"license":"MIT","_id":"@artemsemkin/wp-headers@1.2.2","maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"homepage":"https://github.com/artkrsk/wp-headers#readme","bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"dist":{"shasum":"aa733225569612ea9e280650bb481d2c3f88f8d9","tarball":"https://registry.npmjs.org/@artemsemkin/wp-headers/-/wp-headers-1.2.2.tgz","fileCount":17,"integrity":"sha512-ImykKBmvkseIwwYVAp/iYgoiNaaMwNzL3bSBVYG/rtBOrD32I77+c4sGoc4wukNe79iujdD6uEGxoel8wjOiXA==","signatures":[{"sig":"MEUCIQC0/UCTZp61U5beEKMv8WvpBbV811hRC6wyW8n0xKruNwIgfhYCVyrFkPVXXFIcIKCHAONrU1gtGBghPjPdxmewzXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31299},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"65991e59257a34e7a5e3f21008017ab8e73ab6d3","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build"},"_npmUser":{"name":"artemsemkin","email":"me@artemsemkin.com"},"repository":{"url":"git+https://github.com/artkrsk/wp-headers.git","type":"git"},"_npmVersion":"11.10.0","description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","directories":{},"_nodeVersion":"25.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.3.0","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/wp-headers_1.2.2_1771565611865_0.2744248168407366","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@artemsemkin/wp-headers","version":"1.2.5","keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"author":{"name":"Artem Semkin"},"license":"MIT","_id":"@artemsemkin/wp-headers@1.2.5","maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"homepage":"https://github.com/artkrsk/wp-headers#readme","bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"dist":{"shasum":"43beb18fc01194d8827a3db63d88340419ffa241","tarball":"https://registry.npmjs.org/@artemsemkin/wp-headers/-/wp-headers-1.2.5.tgz","fileCount":17,"integrity":"sha512-5zQEdZRnc3BN/foW7TM857x1PP0OxusrqEBaQm/W3DE1GbQ8T6jw3LMxATo1ryYlVOiAObs04u3+Kuxq7NF1Ag==","signatures":[{"sig":"MEUCIQDr3k2V0ixJue8jAjTRgyDdUKl9b7e3F8CEpuzUpoBXaQIgTO/5nXe7NR8mxJoiZjhvsHvhbrfYvj5HSu9TvH0SpWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32259},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"ae13f76d932db355251aa4993e2ad0a94673ee4c","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build"},"_npmUser":{"name":"artemsemkin","email":"me@artemsemkin.com"},"repository":{"url":"git+https://github.com/artkrsk/wp-headers.git","type":"git"},"_npmVersion":"11.10.0","description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","directories":{},"_nodeVersion":"25.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.3.0","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/wp-headers_1.2.5_1771566500802_0.9207763524611621","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@artemsemkin/wp-headers","version":"1.2.6","keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"author":{"name":"Artem Semkin"},"license":"MIT","_id":"@artemsemkin/wp-headers@1.2.6","maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"homepage":"https://github.com/artkrsk/wp-headers#readme","bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"dist":{"shasum":"06fc56188f0ca8d28ab9e06c09a7911202b14d3b","tarball":"https://registry.npmjs.org/@artemsemkin/wp-headers/-/wp-headers-1.2.6.tgz","fileCount":17,"integrity":"sha512-+/oLuKXmcknfaBHMLZEl5ld8q5ZeK3qkCVDRsYKcCDgxnFZncfcrp2GmL4PwISotD1Enm/hLW1+WcfbQ7/YNqw==","signatures":[{"sig":"MEYCIQDHnAKrQh0QeRu5c7b/+LvMTQCgP9iO8/zWxeQooFByAgIhAJNV3Lhwz7asdlEOXxb2LHhXkiOWNy8GHXBOdjWf4d/Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32263},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"ae13f76d932db355251aa4993e2ad0a94673ee4c","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build"},"_npmUser":{"name":"artemsemkin","email":"me@artemsemkin.com"},"repository":{"url":"git+https://github.com/artkrsk/wp-headers.git","type":"git"},"_npmVersion":"11.10.0","description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","directories":{},"_nodeVersion":"25.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.3.0","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/wp-headers_1.2.6_1771568767082_0.6638552129350797","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@artemsemkin/wp-headers","version":"1.2.7","description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","license":"MIT","author":{"name":"Artem Semkin"},"repository":{"type":"git","url":"git+https://github.com/artkrsk/wp-headers.git"},"homepage":"https://github.com/artkrsk/wp-headers#readme","bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm build","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},"devDependencies":{"@types/node":"^25.3.0","@vitest/coverage-v8":"3.2.4","typescript":"^5.7.0","vitest":"^3.0.0"},"packageManager":"pnpm@10.30.0","gitHead":"d513b84a3c1163518814708e5161853ebc256cb1","_id":"@artemsemkin/wp-headers@1.2.7","_nodeVersion":"22.22.0","_npmVersion":"11.10.1","dist":{"integrity":"sha512-RaLMiekSvQXNZDtF5j4RaXWrMVgvOEll0FhlsivfSxzGerB05xkshZTEAtz7fxB1E601CHYw2addxhFsztLJjA==","shasum":"e437cc2ad8296a279b86dd8a9040148b1ab91636","tarball":"https://registry.npmjs.org/@artemsemkin/wp-headers/-/wp-headers-1.2.7.tgz","fileCount":17,"unpackedSize":32295,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@artemsemkin%2fwp-headers@1.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDAgooNrpS8Cveoixbg/ACiuelCvuqZFtq5t2iVeyuAeAiBhoHLxosLTeVwQtbntI/wtAqKmO2MmVrGNCoY2QlOirA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c316d93c-5001-40f6-b51e-422c5d80948a"}},"directories":{},"maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wp-headers_1.2.7_1771672386680_0.5141888591063906"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-20T04:47:49.132Z","modified":"2026-02-21T11:13:07.103Z","1.1.0":"2026-02-20T04:47:49.345Z","1.2.0":"2026-02-20T05:17:03.244Z","1.2.1":"2026-02-20T05:26:19.393Z","1.2.2":"2026-02-20T05:33:32.017Z","1.2.5":"2026-02-20T05:48:20.978Z","1.2.6":"2026-02-20T06:26:07.223Z","1.2.7":"2026-02-21T11:13:06.817Z"},"bugs":{"url":"https://github.com/artkrsk/wp-headers/issues"},"author":{"name":"Artem Semkin"},"license":"MIT","homepage":"https://github.com/artkrsk/wp-headers#readme","keywords":["wordpress","headers","wp-headers","style-css","readme-txt","plugin-header"],"repository":{"type":"git","url":"git+https://github.com/artkrsk/wp-headers.git"},"description":"Generate and patch WordPress file headers (style.css, plugin PHP, readme.txt, TGM)","maintainers":[{"name":"artemsemkin","email":"me@artemsemkin.com"}],"readme":"# @artemsemkin/wp-headers\n\nGenerate and patch WordPress file headers from `package.json` data.\n\n## Install\n\n```bash\nnpm install @artemsemkin/wp-headers\n```\n\n## What it does\n\nReads `wp.theme` or `wp.plugin` fields from a `package.json` and generates or updates WordPress header comments in target files (`style.css`, plugin PHP, `readme.txt`). If a file already contains a header comment, it replaces it in place. If not, it writes a new one. Also patches version strings in TGM-style PHP plugin arrays.\n\n## Examples\n\n### Theme: `package.json` → `style.css`\n\nGiven this in your theme's `package.json`:\n\n```json\n{\n  \"name\": \"@starter/flavor-theme\",\n  \"version\": \"1.0.0\",\n  \"description\": \"A starter theme for WordPress\",\n  \"wp\": {\n    \"theme\": {\n      \"uri\": \"https://example.com/flavor\",\n      \"author\": \"Dev Studio\",\n      \"authorUri\": \"https://example.com\",\n      \"requires\": \"6.0\",\n      \"testedUpTo\": \"6.7\",\n      \"requiresPHP\": \"7.4\",\n      \"license\": \"GPL-2.0-or-later\",\n      \"licenseUri\": \"https://www.gnu.org/licenses/gpl-2.0.html\",\n      \"textDomain\": \"flavor\",\n      \"tags\": [\"blog\", \"one-column\"]\n    }\n  }\n}\n```\n\nRunning `processMapping({ type: 'theme', slug: 'flavor', entityDir: '/path/to/theme' })` generates this `style.css`:\n\n```css\n/*\n * Theme Name: Flavor\n * Theme URI: https://example.com/flavor\n * Author: Dev Studio\n * Author URI: https://example.com\n * Description: A starter theme for WordPress\n * Version: 1.0.0\n * Requires at least: 6.0\n * Tested up to: 6.7\n * Requires PHP: 7.4\n * License: GPL-2.0-or-later\n * License URI: https://www.gnu.org/licenses/gpl-2.0.html\n * Text Domain: flavor\n * Tags: blog, one-column\n */\n\nhtml {\n  margin-top: 0 !important;\n}\n\nimg,\nvideo {\n  max-width: 100%;\n  height: auto;\n}\n```\n\n### Plugin: `package.json` → PHP header\n\nGiven this in your plugin's `package.json`:\n\n```json\n{\n  \"name\": \"@starter/flavor-core\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Core functionality for Flavor theme\",\n  \"wp\": {\n    \"plugin\": {\n      \"name\": \"Flavor Core\",\n      \"uri\": \"https://example.com/flavor-core\",\n      \"author\": \"Dev Studio\",\n      \"authorUri\": \"https://example.com\",\n      \"requires\": \"6.0\",\n      \"testedUpTo\": \"6.7\",\n      \"requiresPHP\": \"7.4\",\n      \"license\": \"GPL-2.0-or-later\",\n      \"textDomain\": \"flavor-core\"\n    }\n  }\n}\n```\n\nRunning `processMapping({ type: 'plugin', slug: 'flavor-core', entityDir: '/path/to/plugin' })` generates or updates the header at the top of `flavor-core.php`:\n\n```php\n<?php\n/**\n * Plugin Name: Flavor Core\n * Plugin URI: https://example.com/flavor-core\n * Description: Core functionality for Flavor theme\n * Version: 1.0.0\n * Requires at least: 6.0\n * Tested up to: 6.7\n * Requires PHP: 7.4\n * Author: Dev Studio\n * Author URI: https://example.com\n * License: GPL-2.0-or-later\n * Text Domain: flavor-core\n */\n\ndefined( 'ABSPATH' ) || exit;\n\ndefine( 'FLAVOR_CORE_VERSION', '1.0.0' );\ndefine( 'FLAVOR_CORE_PATH', plugin_dir_path( __FILE__ ) );\n\nrequire_once FLAVOR_CORE_PATH . 'inc/class-flavor-core.php';\n\nload_plugin_textdomain( 'flavor-core', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );\n```\n\n### TGM version patching\n\nWordPress themes commonly use TGMPA to register required plugins with minimum version constraints. When a plugin's `package.json` includes `wp.plugin.loadPluginsFile`, the tool finds the matching slug in the TGM PHP file and patches its version string.\n\nGiven this TGM registration file in your theme:\n\n```php\n<?php\n\nadd_action( 'tgmpa_register', 'flavor_tgm_register_required_plugins' );\nfunction flavor_tgm_register_required_plugins() {\n    $plugins = array(\n        // Bundled plugins — have a version constraint\n        array(\n            'name'     => 'Flavor Core',\n            'slug'     => 'flavor-core',\n            'source'   => esc_url( $core_plugin_url ),\n            'required' => true,\n            'version'  => '1.0.0',\n        ),\n        array(\n            'name'     => 'Flavor Elementor Extension',\n            'slug'     => 'flavor-elementor-extension',\n            'source'   => esc_url( $elementor_plugin_url ),\n            'required' => true,\n            'version'  => '1.0.0',\n        ),\n        // Third-party plugins — no version field, pulled from wp.org\n        array(\n            'name'     => 'Elementor',\n            'slug'     => 'elementor',\n            'required' => true,\n        ),\n        array(\n            'name'     => 'Contact Form 7',\n            'slug'     => 'contact-form-7',\n            'required' => false,\n        ),\n    );\n\n    tgmpa( $plugins, $config );\n}\n```\n\nWhen `flavor-core`'s `package.json` has `\"version\": \"2.0.0\"`, processing updates only the matching entry — the Elementor and Contact Form 7 entries are left untouched because they don't have a `version` field and their slugs don't match:\n\n```diff\n-            'version'  => '1.0.0',\n+            'version'  => '2.0.0',\n```\n\nWhitespace alignment, quote styles, nested function calls, and other plugin entries are preserved.\n\n## Usage\n\n```ts\nimport { processMapping } from '@artemsemkin/wp-headers'\n\nprocessMapping({\n  type: 'plugin',\n  slug: 'my-plugin',\n  entityDir: '/path/to/plugin',\n  tgmBasePath: '/path/to/theme/src/php',\n})\n```\n\n## Vite integration\n\nUse [`@artemsemkin/vite-plugin-wp-headers`](https://www.npmjs.com/package/@artemsemkin/vite-plugin-wp-headers) to automate header generation during Vite's build lifecycle and watch for changes during dev.\n","readmeFilename":"README.md"}