{"_id":"unplugin-keywords","_rev":"44-0cf9b64ec086b2b2af5a6e37ccaa2e00","name":"unplugin-keywords","dist-tags":{"latest":"2.18.0"},"versions":{"2.6.1":{"name":"unplugin-keywords","version":"2.6.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.6.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"9af5082e66b4fefc1ba2442462774b0395adbb2e","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.6.1.tgz","fileCount":27,"integrity":"sha512-mPJXQFYHqDPBi6Sym9ND5qntiIaqppivVI/vj9RCgR2h9nXQHjA9fWDcKdDgXes5B44GNAh9sMh4CpSU7Vdpng==","signatures":[{"sig":"MEQCID8KiK20G7uqgYZTYf+SHAC+KrjNnG1WtN3Zayyl9FN+AiBdav1WTBmh1I0VBmUmEPX/AFW+Mz+JzTdzDtr1nPWQog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84741},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@types/babel__core":"^7.20.5"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.6.1_1778351663829_0.21891574652386647","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"unplugin-keywords","version":"2.6.2","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.6.2","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"945644c3f2ac8018cb123142c7ed1f0cebffd05e","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.6.2.tgz","fileCount":27,"integrity":"sha512-jgxhEJdrUY482Htmwd6oQqWYQNHIHh4bZEWUXTYk1UFY3OMkAbTEaZrz/G93/gYWnqLUxb1Q7n5C43jXoO3Qmg==","signatures":[{"sig":"MEUCIQDU9sZAxayq2Ew7d7+e+l6Mhmwj9f9TQCVjnvgwNBJNLwIgPAAcFb6PdRfNMB64XXQu5mgieHKw0ncUJ9u7SmG1AZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84832},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@types/babel__core":"^7.20.5"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.6.2_1778971313216_0.4794450218171027","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"unplugin-keywords","version":"2.7.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.7.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"d5fe681772da62e0d0db9aa8540a3ac49ebeaa27","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.7.0.tgz","fileCount":27,"integrity":"sha512-MBke9kF5L9Me1ZrV4KK7gVgdtgOWckg3AqmhrBT2PUNudnJ7xjeWIScW/ZslxbFKb5hV/7Y14OYxdbqSWx6Ixg==","signatures":[{"sig":"MEQCIGFqyiXXtE0D+UBcDkTu9CPWzrgrUOhdJJ5KWbtZB5DLAiA/AeLAIW0esF44Zmn9bmSyh4RKp/OqD4ssomashW9VVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87821},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@types/babel__core":"^7.20.5"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.7.0_1779119370437_0.27537069650997203","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"unplugin-keywords","version":"2.7.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.7.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"1a9be7f318344f3e3c635bc539f193542c3948fd","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.7.1.tgz","fileCount":27,"integrity":"sha512-BO3+rWN/QzTTDRFe8U2axLX8AJZ3jDclFSe3mBXjIXjAcLeOnjkc0Tk5AE55b6w5EAn07St4FFKKtD29cYZT7g==","signatures":[{"sig":"MEUCIBuS5NW/hY2x5NH1JoD7MgGTeBkBeD7NzZ6C1UNDeDgUAiEAtX5n0zihXyMCxeoeQAJlTi7DPW+xkivGlznrGeQ8iFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87761},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@types/babel__core":"^7.20.5"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.7.1_1779124943250_0.09155220809179965","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"unplugin-keywords","version":"2.7.2","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.7.2","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"d82e22f25c7232c1e074f35a765e5bd10ee62f24","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.7.2.tgz","fileCount":27,"integrity":"sha512-QVM60w2xlprQWgnHH6W9VuQG6K6sWc71q2NC9nnfv7vvJJF4myqb/64dscTS6Nv+eS+UttjOM+KYyRsQ2LhoEA==","signatures":[{"sig":"MEUCIQD+SIEZPJwiLvgVdMzDNWwalQOspB/c7I8fy2v0eBtjxwIgDw4j/VDHTYX4s/scXgQVCZr1wkYIkIHN5b9JOBIaxag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87659},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@types/babel__core":"^7.20.5"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.7.2_1779141251704_0.19409979937088706","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"unplugin-keywords","version":"2.8.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.8.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"14fd8eaf9d0643c59757e6ddced00ce5dac91290","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.8.0.tgz","fileCount":39,"integrity":"sha512-6xA1TRj9/kqZmUm7s4waskUAezVQ+VxzT+C60zKrHFHm3uL7oZQN1aVyPUMsPr6hWUQPIBXm1qvZXc5YWTPQMQ==","signatures":[{"sig":"MEQCIFPUaUytBV7wlaVlYQQADxmRKW/osI5BSp4F7ZN1uZ5DAiAXl3Sseg/vFxNcAGLB4NKL1CgwqAStDCthlmzGrJlHwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92150},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@types/babel__core":"^7.20.5"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.8.0_1779168794964_0.6671016366764313","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"unplugin-keywords","version":"2.9.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.9.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"01018bbc4862807fe642b1c4b40454240f61e440","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.9.0.tgz","fileCount":39,"integrity":"sha512-HWdL6kA1E0aKAV67/AOEN/4wmy/xjxVhVWi/GZBL5e+4hkcqK2kTKkrQi1h7urPHz88D2qs87JYI7ybYeXg2KA==","signatures":[{"sig":"MEQCIHIXuFbUJnatH/d/or+IxRf4hYz1G0OsVBwnduSI9wSUAiAw2DsVUJxJ4201k0CZnWFc5clDiiTegcJLYyrnc8f3xA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91979},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.9.0_1779208732519_0.8016229143213862","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"unplugin-keywords","version":"2.9.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.9.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"69a0d7dca780e91b9ed986a8de866c1d02346bbc","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.9.1.tgz","fileCount":39,"integrity":"sha512-PnFNKO7MMNizaGLG/Bd+8ARju2S2Ffu/JTs3Qr5WdRZnNPx4R+kmAHZPTUjOG/hTC7RViklEcnelRwoCQd2PgA==","signatures":[{"sig":"MEUCICZwMQIybPZ8qOV/GX9XyoHeYMMfEow3FthqU95Pqp6TAiEA3KvRdCV9mNVHf75lKoibwndHejr03WR6UiizjkQIq3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92223},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.9.1_1779347522299_0.7230194788631905","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"unplugin-keywords","version":"2.10.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.10.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"d8aa11f153fb3cd9bd4a6e40c09c692105583a50","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.10.0.tgz","fileCount":39,"integrity":"sha512-lA8sYzccw/3Itpen2oQNwKh/lhY0DuN0rMcdp0aNPf1u0TtbuRNX7XWR1lPaD/urOOzjf5NFsWMgqaDtxXzjew==","signatures":[{"sig":"MEUCIQCE+ZLdrn/9vc91M/D4fITRIUNBDawGkXIMpDcJat5boAIgIqT0ycoak82uaaI8gqMR0gvkidyLrPDJIeOVBIUudJs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92583},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.10.0_1779407067963_0.29419218788187385","host":"s3://npm-registry-packages-npm-production"}},"2.10.1":{"name":"unplugin-keywords","version":"2.10.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.10.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"44ead8fb89b6598e1eb47f0e4b2cdfcd857f8ca6","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.10.1.tgz","fileCount":39,"integrity":"sha512-741mfOb9QjUS2cdbmepN55Zz3w2UXs1mpah0YlBXYeCEnrRp4hfiX4FGGGzUKBLsvgXy9fFDkYJw0qwRGD5VJQ==","signatures":[{"sig":"MEUCIE+oEcFjY/dREaGOvW2D3GUq5oT/kadXtt5o+8EZAiJKAiEA3AuQrEdTkA/QAyywhcZtRO+mey65PehKRKGzDbt74dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92558},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.10.1_1779408698313_0.008775676510311747","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"unplugin-keywords","version":"2.11.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.11.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"67dfd860d66846be8df91441553f182d1ab67df1","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.11.0.tgz","fileCount":39,"integrity":"sha512-eCrgLdqbRF1hwdhWA2EnZxdpcwgfQI0CDo9fuPTgeUeATjgM/G0sWwKYp6WxFKQqVTBFHEu9FBtU8duomtidAg==","signatures":[{"sig":"MEQCIHpRKzs4XrRPae4Z6C03MIjIXPTG9sJ8cFlVPPkJaF2DAiA7gYR4iMlFEjbFI6NE60pp4+ruvvM3sAZR6CMeXgN9zQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136187},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@rollup/plugin-virtual":"^3.0.2","@mdn/browser-compat-data":"^7.3.16"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.11.0_1779482070171_0.5099030161817228","host":"s3://npm-registry-packages-npm-production"}},"2.11.1":{"name":"unplugin-keywords","version":"2.11.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.11.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"55b06abeff9e6a7b6a5b22a986e76e543d952880","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.11.1.tgz","fileCount":39,"integrity":"sha512-0I9Au+YNeD14edDmJPlgX0b4H2zZSsj3mzntt+FytyQP3hBTUZCowmyviOtuk64ePXazF4DRQf3tPfbsTgI4xA==","signatures":[{"sig":"MEYCIQCTLbJSoGwtbTTDvYqGYu2bY5EolDSabu3lFusLFUf9WgIhAJSJj8MUUP2SzqMQTHxJFjUetXRKcTnzbRjVX9RH7SQK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135885},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@rollup/plugin-virtual":"^3.0.2","@mdn/browser-compat-data":"^7.3.16"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.11.1_1779486495997_0.9580602719485127","host":"s3://npm-registry-packages-npm-production"}},"2.11.2":{"name":"unplugin-keywords","version":"2.11.2","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.11.2","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"7fa26e1b04f6d3785aee66da9e7f2b8a2d39825a","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.11.2.tgz","fileCount":39,"integrity":"sha512-IaDyr9/8DFEZVmfe0tAFPnqk5RR3Ud+XoVeXFEtCGr8IHlt0uNHZnTP0U+K4QOgE5Xq0+idhzRn76y2Aa3VeiQ==","signatures":[{"sig":"MEQCIHLJD04fTtIi8o/pygoYC3tgTU8vMJ9onZ97mqnwkZB+AiB16Jlnts+JNaTOQxfcfOfML9R36Oj36Kj7sNdlxMBynw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135865},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@rollup/plugin-virtual":"^3.0.2","@mdn/browser-compat-data":"^7.3.16"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.11.2_1779487814085_0.959127737641561","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"unplugin-keywords","version":"2.12.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.12.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"00f05777fe26ed1eaf9e7246bc9d6998c7199939","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.12.0.tgz","fileCount":39,"integrity":"sha512-/qeSipBP8kMvyGjotYRmUepjkGvNv3isqH/W2IEe82zw0A+Ff3ARO4BkX4MJANp7qitU9l2XMExld+k73Rqz9g==","signatures":[{"sig":"MEUCIQDSJ1vJ/k49lQ0z1epfc2cPNtGDzHP9S0qk6dux6Dp98wIgHxaGpADBTcvyUnDG8LW0qxXssdrZ9oNPNfAc0bisP/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136512},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./cli":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@mdn/browser-compat-data":"^7.3.16"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.12.0_1779550827134_0.8677299629146542","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"unplugin-keywords","version":"2.13.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.13.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"c0e2ba729fbfa155de41075cc5a61daa46c0021d","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.13.0.tgz","fileCount":39,"integrity":"sha512-Dpbj+vvAdG6TTle//j+UBYpWNbamlhll2Dc0e6WMKyvHHgKY0xP5R2galAcikrrQYc8LA53f2ZdDNN91sdOmAw==","signatures":[{"sig":"MEUCICDtplh0MaWflU1Slki9uCa4PKBpdtUr4Qe/7YTX6YW+AiEAoW6P5Um8TYbtGEGh1idnJwONiHkfc7po6yRFn1Gm7nY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143523},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@mdn/browser-compat-data":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.13.0_1779671247121_0.826284642563675","host":"s3://npm-registry-packages-npm-production"}},"2.13.1":{"name":"unplugin-keywords","version":"2.13.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.13.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"92fdc11135698de82d2e00b949b9e8f89ca3469d","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.13.1.tgz","fileCount":39,"integrity":"sha512-fU7u4of3jH9qUoLpT4/zReIhmASAn87kNWjdDDn/ap8tpJxx/Y4HGvxQmxufgwtrNr5Dv2GVvRyn+mqND++2zQ==","signatures":[{"sig":"MEYCIQDQ64Q7FokNCvpMx5/m2p0+y6+iYPN0ARhzwHqv8rrVHQIhAM6DV55WjCQxaAhvz+bhENxczVrbb4y6UxOxmPi3OBNT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144201},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@mdn/browser-compat-data":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.13.1_1779700255538_0.7855251605392077","host":"s3://npm-registry-packages-npm-production"}},"2.14.0":{"name":"unplugin-keywords","version":"2.14.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.14.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"1fda1f4b5fdc5e0f94a49f49be3b2598da3250c3","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.14.0.tgz","fileCount":39,"integrity":"sha512-InLfu5MzcVmpnA+5NOuBDFcz04B6FZ52NGrM6T4M3ZPXbXhUj/jgF1bALEtKyUq9UiQNF5grweYbo6ZX+rSmLQ==","signatures":[{"sig":"MEQCIAevsnFrxFG9Qd4RSk7tDkbbYku/51J1+lKb4ergMlmRAiA84tEkSKvCjs+2LzTUj9xURO8OeB9KcrrJhvMacNyOFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146134},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.55.9","tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@mdn/browser-compat-data":"^8.0.0"},"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.14.0_1779750590066_0.3895747975208723","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"unplugin-keywords","version":"2.15.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.15.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"e835c3e8cd305695bf6091b84846423782ad6598","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.15.0.tgz","fileCount":39,"integrity":"sha512-H+9RBvLUHJ2DRpCFnsGlBTbV2Av8isj5QPpxxaIvuXLmGPi/jKq1sLg8YFRf4DSlanTRJL81OhqpUTPenZvaaQ==","signatures":[{"sig":"MEUCIQDAnAtjmaGzwLnaCXg6Th35f+jezr5CsBrccL1B/21ZRwIgMLkkBoXwtCSDeyqzedfXfjCr5XV8adYO6Rdw+fRwVqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147637},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"globby":"^16.2.0","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.55.9","tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@mdn/browser-compat-data":"^8.0.0"},"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.15.0_1780036919698_0.8907928010297286","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"unplugin-keywords","version":"2.16.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.16.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"1c6d73f1e0333d3156261c902f9ebb0a528d4393","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.16.0.tgz","fileCount":39,"integrity":"sha512-T6btj1LrE3zMGmLBtChVM3RvmSCqlDY+it/yDCWyLKXq3TCQ5EcJT1nI805TdF5+G9HbrApINpCH5epbSwmNug==","signatures":[{"sig":"MEUCICIBMlV8+9NfGMJOH3l4B61Ukx/pCK+pBWklnRqe65qDAiEA/P6CUQsEbvsRgLBCkvT9iiBEtsBC22bWiNmp5IE1n7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159260},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","check":"tsc --build && biome check","format":"biome check --write","precheck":"pnpm --filter \"./demo/*\" typegen","test:demo":"pnpm --filter \"./demo/*\" test","build:demo":"pnpm --filter \"./demo/*\" build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ignore":"^7.0.5","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.55.9","tsdown":"^0.22.0","vitest":"^4.1.5","globals":"^17.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/bases":"^1.0.23","@mdn/browser-compat-data":"^8.0.0"},"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.16.0_1780134207010_0.23046537380555643","host":"s3://npm-registry-packages-npm-production"}},"2.16.1":{"name":"unplugin-keywords","version":"2.16.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.16.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"771085ff5a1f4f2b6395728af30f615a1577e298","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.16.1.tgz","fileCount":39,"integrity":"sha512-zPOoIrIrGVIqx7QWUtgTgSjPhoqOnaBUEFihsYBc3TYZwgP0H9S6quG8AHPtHvbQKoiYad5j1XGORyNke5xQrA==","signatures":[{"sig":"MEUCIQDRTTaDwRc5EkPnc0QTnZIRKr7jROq0P6aNPJL3gN9uRQIgepQMVFZHNdIlKTFrXj0eYXQ+4mWqcvbhcvciraQ9ItY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":158871},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ignore":"^7.0.5","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.16.1_1780285552679_0.016782275558915538","host":"s3://npm-registry-packages-npm-production"}},"2.16.2":{"name":"unplugin-keywords","version":"2.16.2","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.16.2","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"9a13e50ce9bdf53ff84bf81de1075cb776f7b623","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.16.2.tgz","fileCount":27,"integrity":"sha512-dmgugG1udbNW+K9VOov0YnsuMYOoZohKQpiYOAQvCDP52hq9KbBrHggtEhDlpsdm3UWMFz9nq03Rzv9beXwEHA==","signatures":[{"sig":"MEYCIQC08esxCbs9R9MBhDdfAHx12dsSNyb9nlNVyc9CXEJEYwIhAMJxi3ZC8D+3UCNrX4Wnm0ZJJ11rrRM7qyLpcIFYGl6f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.16.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94491},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ignore":"^7.0.5","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.16.2_1780286843352_0.8100915595818718","host":"s3://npm-registry-packages-npm-production"}},"2.16.3":{"name":"unplugin-keywords","version":"2.16.3","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.16.3","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"51a2112edae5424c891eef60b1f802acc07b1c25","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.16.3.tgz","fileCount":27,"integrity":"sha512-esRpbZE/C9egY3pCxphrE8EwW0VyGyrSNvrx4rD91IHNo94qVQF9Vv0AsGsDuUCbHXAEZAZ1zspFDQ3Dy+pNlg==","signatures":[{"sig":"MEUCIDvbIFrA2UtVmFgWOQhU3RhhO7DYKdLU+zZ9o1Fn1BzaAiEAqnVhL950fEMsClhMcnbfh4GtgLYKN456Q3y4AHbIFSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.16.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96665},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ignore":"^7.0.5","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.16.3_1780501469986_0.0029701147754124246","host":"s3://npm-registry-packages-npm-production"}},"2.16.4":{"name":"unplugin-keywords","version":"2.16.4","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.16.4","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"aa7d15558504c0f0ada4cc7e5a2802361634f0b5","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.16.4.tgz","fileCount":27,"integrity":"sha512-yPvhxLdhQbvoS428Z0TkY5fYN3XdsDgGBRDb1Taes+BpChvQOosUxLNMwu3SRuqhsMPPT9v5HTL7n/ze0LZtmA==","signatures":[{"sig":"MEUCIQDRIcBc7U2JWuueH+Vq+DMexfEYa/GysvOK1Ug7+mn4pgIgE5hQlWyghQI9wcq3ym89IM9SgPEbvLAY9fDWEDyBU4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.16.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96727},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ignore":"^7.0.5","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.16.4_1780505981085_0.8472380607037369","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"unplugin-keywords","version":"2.17.0","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.17.0","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"8de29558700e040b41683da39bf6bf49006cd602","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.17.0.tgz","fileCount":27,"integrity":"sha512-Sv71QoCQcpcnlXD3dvJH88ogkTZEycs2HuZqtJQSzutw0x6cpSOeyJGoy8dsRSsK1yqTDnUhCCGdJmwQ8llBfA==","signatures":[{"sig":"MEUCIQDMROO8BcdP4XxWOymuMq3/CBs1LzyTE1vi8gL30LYXHwIgToJaVtMDsB9JvfFZHa1WHYcR1MggFBWEVmMH6yGRIxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97677},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ignore":"^7.0.5","p-limit":"^7.3.0","unplugin":"^3.0.0","@babel/core":"^8.0.0-rc.5"},"_hasShrinkwrap":false,"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.17.0_1780591919000_0.09271570038426868","host":"s3://npm-registry-packages-npm-production"}},"2.17.1":{"name":"unplugin-keywords","version":"2.17.1","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"author":"cueaz","license":"MIT","_id":"unplugin-keywords@2.17.1","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"bin":{"keywords":"./bin/cli.js"},"dist":{"shasum":"8b11f9bc32635e739468aa8769935e4cb28d6d19","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.17.1.tgz","fileCount":27,"integrity":"sha512-1hv0+2gypvOETRZcpQW8yg9KJ8zwlrLlimlxYjSdFLFTfxfkXonNPV5BEQiK3AWd4wFW4It1Co/DkS/ZoxvsBA==","signatures":[{"sig":"MEUCIFRrl4scT1PiQNw6MrhyekHyUL7tvjmBcgEpGU3s/mvvAiEAzXZCmHifBqwSAHGWKNdXpft8sh3LODCKGjw+I/RwCQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97054},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"repository":{"url":"git+https://github.com/cueaz/unplugin-keywords.git","type":"git"},"description":"A build plugin for structural string literal minification and obfuscation (property mangling alternative)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ignore":"^7.0.6","p-limit":"^7.3.1","unplugin":"^3.3.0","@babel/core":"^8.0.1"},"_hasShrinkwrap":false,"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unplugin-keywords_2.17.1_1784694525814_0.8808952643732109","host":"s3://npm-registry-packages-npm-production"}},"2.18.0":{"name":"unplugin-keywords","version":"2.18.0","description":"A build plugin for structural string literal minification and obfuscation (property mangling alternative)","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"repository":{"type":"git","url":"git+https://github.com/cueaz/unplugin-keywords.git"},"license":"MIT","author":"cueaz","type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","default":"./dist/api.js"},"./bun":{"types":"./dist/bun.d.ts","default":"./dist/bun.js"},"./esbuild":{"types":"./dist/esbuild.d.ts","default":"./dist/esbuild.js"},"./farm":{"types":"./dist/farm.d.ts","default":"./dist/farm.js"},"./rolldown":{"types":"./dist/rolldown.d.ts","default":"./dist/rolldown.js"},"./rollup":{"types":"./dist/rollup.d.ts","default":"./dist/rollup.js"},"./rspack":{"types":"./dist/rspack.d.ts","default":"./dist/rspack.js"},"./vite":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"./webpack":{"types":"./dist/webpack.d.ts","default":"./dist/webpack.js"},"./package.json":"./package.json"},"bin":{"keywords":"./bin/cli.js"},"dependencies":{"@babel/core":"^8.0.1","ignore":"^7.0.6","p-limit":"^7.3.1","unplugin":"^3.3.0"},"peerDependencies":{"svelte":">=5.0.0"},"peerDependenciesMeta":{"svelte":{"optional":true}},"_nodeVersion":"24.18.0","_id":"unplugin-keywords@2.18.0","dist":{"integrity":"sha512-4FwVOQzjiW/mENJgQvfbEsSvSyhXBY9wTQHsgkWixHNYej5nT0/L4T/2wiKZovvGzIvcUsLedC0MszAe/It3qA==","shasum":"b44bc9c07faa0e35cfdf0a84697e381479d246fb","tarball":"https://registry.npmjs.org/unplugin-keywords/-/unplugin-keywords-2.18.0.tgz","fileCount":27,"unpackedSize":98477,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/unplugin-keywords@2.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDugO13GFSna9jZ3ylY3HTaPa04EefvCn8qyj5VLVp2HAiAXHXT2dYpm91lzhHxXhGRYF2TZeFH5eZepPzHGJoYfPg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e5c2c513-792d-45a5-bd20-81b020c0e05e"}},"directories":{},"maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unplugin-keywords_2.18.0_1784704690731_0.09091922079137849"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-04T15:59:59.849Z","modified":"2026-07-22T07:18:11.204Z","2.0.0":"2026-05-04T16:00:00.077Z","2.1.0":"2026-05-05T16:06:42.811Z","2.2.0":"2026-05-05T16:16:29.966Z","2.2.1":"2026-05-06T05:38:31.058Z","2.3.0":"2026-05-06T13:33:17.170Z","2.4.0":"2026-05-08T14:03:17.314Z","2.5.0":"2026-05-08T16:43:25.513Z","2.5.1":"2026-05-08T18:24:14.158Z","2.6.0":"2026-05-09T13:02:59.604Z","2.6.1":"2026-05-09T18:34:24.005Z","2.6.2":"2026-05-16T22:41:53.358Z","2.7.0":"2026-05-18T15:49:30.620Z","2.7.1":"2026-05-18T17:22:23.396Z","2.7.2":"2026-05-18T21:54:11.845Z","2.8.0":"2026-05-19T05:33:15.114Z","2.9.0":"2026-05-19T16:38:52.695Z","2.9.1":"2026-05-21T07:12:02.433Z","2.10.0":"2026-05-21T23:44:28.104Z","2.10.1":"2026-05-22T00:11:38.576Z","2.11.0":"2026-05-22T20:34:30.325Z","2.11.1":"2026-05-22T21:48:16.142Z","2.11.2":"2026-05-22T22:10:14.229Z","2.12.0":"2026-05-23T15:40:27.286Z","2.13.0":"2026-05-25T01:07:27.261Z","2.13.1":"2026-05-25T09:10:55.693Z","2.14.0":"2026-05-25T23:09:50.219Z","2.15.0":"2026-05-29T06:41:59.860Z","2.16.0":"2026-05-30T09:43:27.152Z","2.16.1":"2026-06-01T03:45:52.828Z","2.16.2":"2026-06-01T04:07:23.567Z","2.16.3":"2026-06-03T15:44:30.144Z","2.16.4":"2026-06-03T16:59:41.217Z","2.17.0":"2026-06-04T16:51:59.140Z","2.17.1":"2026-07-22T04:28:45.977Z","2.18.0":"2026-07-22T07:18:10.908Z"},"author":"cueaz","license":"MIT","keywords":["unplugin","rollup","rollup-plugin","vite","vite-plugin","minification","obfuscation"],"repository":{"type":"git","url":"git+https://github.com/cueaz/unplugin-keywords.git"},"description":"A build plugin for structural string literal minification and obfuscation (property mangling alternative)","maintainers":[{"name":"cueaz","email":"vcs@cueaz.com"}],"readme":"# unplugin-keywords\n\n[![NPM][npm-badge]][npm-url]\n[![Github CI][ci-badge]][ci-url]\n[![MIT licensed][license-badge]][license-url]\n\n[npm-badge]: https://img.shields.io/npm/v/unplugin-keywords.svg\n[npm-url]: https://www.npmjs.com/package/unplugin-keywords\n[ci-badge]: https://github.com/cueaz/unplugin-keywords/actions/workflows/check.yaml/badge.svg\n[ci-url]: https://github.com/cueaz/unplugin-keywords/actions/workflows/check.yaml\n[license-badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[license-url]: https://github.com/cueaz/unplugin-keywords/blob/main/LICENSE\n\nA build plugin for structural string literal minification and obfuscation (property mangling alternative)\n\n`unplugin-keywords` addresses a fundamental limitation in JavaScript minification: the inability to safely mangle string literals. Object keys, custom event types, and structural constants are left intact by standard minifiers, inflating bundle size and exposing internal architecture.\n\nBy explicitly importing these identifiers from a virtual module, the plugin extracts them at the AST level and maps them to short sequential identifiers or deterministic hashes during the build process. This explicit opt-in mechanism allows bundlers to inline and obfuscate application internals without breaking semantic contracts.\n\n## Motivation vs. Property Mangling\n\nTraditional JavaScript minifiers rely on property mangling (e.g., Terser's `mangle.properties`) to reduce structural identifiers. `unplugin-keywords` provides a module-based alternative that addresses the structural limitations of global mangling.\n\n- **Explicit Opt-In:**\n  Traditional property mangling requires maintaining complex, global exclusion rules (e.g., [`mangle.json`](https://github.com/preactjs/signals/blob/main/mangle.json)), which are fragile and hard to scale. `unplugin-keywords` utilizes explicit imports (`import * as K from '~keywords'`). Developers clearly state which identifiers are safe to obfuscate directly in the source code.\n- **Gradual Adoption:**\n  Unlike global mangling flags that affect the entire codebase simultaneously, installing this plugin alters nothing by default. It allows incremental adoption on a per-file or per-module basis.\n- **Cross-Boundary Consistency:**\n  Standard mangled properties cannot safely cross package boundaries; a property mangled to `a` in Package A will not map to `a` in Package B. With `unplugin-keywords`, libraries ship `import * as K from '~keywords'` statements intact (via `keywordified: true`), and the consumer's bundler synchronizes the dictionary at build time. For independently built applications where bundler-level synchronization is impossible (e.g., separately deployed services), `~keywords/public` provides deterministic hashing to preserve structural contracts.\n- **Universal Application:**\n  Standard minifiers only mangle object keys, leaving string literal values intact. This plugin processes both keys and values uniformly (e.g., `[K.type]: K.SET_USER`). It extends obfuscation to literal types (`const mode: typeof K.extract | typeof K.transform = K.extract`) and even arbitrary static strings (`throw new Error(K['Invalid State'])`).\n- **Trade-offs:**\n  This explicit approach sacrifices some source code readability. Furthermore, as demonstrated in the benchmarks below, standard gzip compression handles unmodified semantic strings highly effectively. If reducing the gzipped network payload is the sole objective, the effort of adopting this plugin may not justify the minimal payload reduction.\n\n## Visual Demo: `@preact/signals-core`\n\nA side-by-side comparison of minified bundles:\n\n|                                                                                                                                [Unmodified](https://github.com/cueaz/unplugin-keywords/blob/main/demo/signals/src/original.ts) (Standard Minification)                                                                                                                                |                                                                                                                                    [Keywordified](https://github.com/cueaz/unplugin-keywords/blob/main/demo/signals/src/keywordified.ts) (Literal Obfuscation)                                                                                                                                    |\n| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n| <picture><source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/cueaz/unplugin-keywords/refs/heads/main/demo/signals/dist_sample/original.min.js.light.png\" width=\"400\"><img src=\"https://raw.githubusercontent.com/cueaz/unplugin-keywords/refs/heads/main/demo/signals/dist_sample/original.min.js.dark.png\" width=\"400\" alt=\"Original\"></picture> | <picture><source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/cueaz/unplugin-keywords/refs/heads/main/demo/signals/dist_sample/keywordified.min.js.light.png\" width=\"400\"><img src=\"https://raw.githubusercontent.com/cueaz/unplugin-keywords/refs/heads/main/demo/signals/dist_sample/keywordified.min.js.dark.png\" width=\"400\" alt=\"Keywordified\"></picture> |\n|                                                                                                                                                                                6.86 kB │ gzip: 2.09 kB                                                                                                                                                                                |                                                                                                                                                                                      5.17 kB │ gzip: 2.01 kB                                                                                                                                                                                      |\n\n> [!NOTE]\n> **Baseline Metrics:** Both the \"Unmodified\" and \"Keywordified\" metrics represent standard `tsdown` minification. For comparison, the official [`@preact/signals-core@1.14.1`](https://bundlephobia.com/package/@preact/signals-core@1.14.1) release achieves a 5.4 kB Minified / 1.9 kB Gzipped footprint by employing a hand-crafted [`mangle.json`](https://github.com/preactjs/signals/blob/main/mangle.json) for manual property obfuscation.\n>\n> **Compression Efficiency:** While the uncompressed bundle size is reduced by 24.6%, the gzipped size is only 3.8% smaller. This demonstrates the effectiveness of standard gzip compression on unmodified code: if minimizing the gzipped network payload is the sole objective, adopting this plugin is unnecessary.\n\n_For more information, see the [demo documentation](https://github.com/cueaz/unplugin-keywords/blob/main/demo/signals/README.md)._\n\n## How It Works\n\nStandard minifiers leave structural strings untouched. `unplugin-keywords` makes them optimizable by treating them as imported module bindings.\n\n**1. Source Code (Development):**\nDevelopers reference strings via a virtual module. The strongly recommended pattern is to use a namespace import (`import * as K`), which clearly marks keyword usage throughout the file.\n\n```ts\nimport * as K from '~keywords';\n\nconst action = {\n  [K.type]: K.SET_USER,\n  [K.payload]: data,\n};\n```\n\n**2. AST Transformation:**\nDuring the build phase, the plugin traverses the AST, resolving bindings and statically resolving member expressions. It replaces valid identifier access with a generated AST node pointing to a minimal lexical sequence (or a deterministic hash, depending on the module).\n\n**3. Minified Output (Production):**\nThe bundler receives the transformed code and processes the obfuscated literals. Depending on the frequency of usage, the minifier will either inline the short strings directly or assign them to variables to save bytes.\n\n<!-- prettier-ignore-start -->\n```ts\nconst _=\"b\";const a={a:_,c:data};\n```\n<!-- prettier-ignore-end -->\n\n## Integration\n\nInstall the package:\n\n```bash\nnpm install -D unplugin-keywords\n```\n\nThe plugin is built on [unplugin](https://github.com/unjs/unplugin). Tested with Vite, Rollup, and Rolldown. Other unplugin-compatible bundlers (webpack, esbuild, Rspack, Farm, Bun) are supported via the common API.\n\nConfigure your bundler. Example for Vite:\n\n```ts\nimport { defineConfig } from 'vite';\nimport keywords from 'unplugin-keywords/vite';\n\nexport default defineConfig(({ mode }) => ({\n  optimizeDeps: {\n    exclude: ['~keywords'],\n  },\n  plugins: [\n    keywords({\n      isDev: mode !== 'production',\n      secret: 'my-secret-key',\n    }),\n  ],\n}));\n```\n\n**Plugin Options:**\n\n- **`isDev`** _(boolean)_: When `true`, preserves the original keyword as a suffix in the generated identifier (e.g., `\"zXpL21k.SET_USER\"` instead of `\"zXpL21k\"`). This makes keyword origins traceable during development without affecting runtime behavior.\n- **`secret`** _(string)_: Seed for the hashing and counter algorithms. Changing the secret rotates all generated identifiers globally—both the sequential counters (`~keywords`) and the deterministic hashes (`~keywords/public`).\n- **`exportMap`** _(boolean | string)_: Exports a JSON file containing the generated keyword mappings for each namespace. When `true`, defaults to `keywords.json` in the project root. When a `string` is provided, it uses that as the file path. Default is `false`.\n\nTo enable type checking and IDE auto-completion, execute the CLI. It will automatically generate type declarations and a `package.json` inside `node_modules/~keywords`, allowing your project to resolve the virtual modules:\n\n```bash\nnpx keywords\n```\n\n> [!TIP]\n> During development, the plugin automatically runs a background type generation process while the bundler is running. Manual CLI execution is only necessary for pre-flight type checking (e.g., in CI) before the bundler runs.\n\nWhen depending on a library that has `\"keywordified\": true` (where `import * as K from '~keywords'` remains intact), configure `paths` in your `tsconfig.json` to enable proper module resolution:\n\n```json\n{\n  \"compilerOptions\": {\n    \"paths\": {\n      \"~keywords\": [\"./node_modules/~keywords/index.d.ts\"],\n      \"~keywords/*\": [\"./node_modules/~keywords/*.d.ts\"]\n    }\n  }\n}\n```\n\n## Tri-Module System\n\n`unplugin-keywords` provides three virtual modules. In practice, `~keywords` alone covers the vast majority of use cases—including library exports (see [Library Integration](#library-integration)).\n\n- **`~keywords` (Lexical Counter):**\n  Generates the shortest safe sequential identifiers (min length: 1, e.g., `\"a\"`, `\"b\"`). This is the **default and recommended module** for all use cases: internal state, private members, public API surfaces, and library exports. When all packages pass through the same bundler—either directly or via the `keywordified: true` marker—the lexical dictionary is automatically synchronized.\\\n  _Convention:_ `import * as K from '~keywords';`\n\n- **`~keywords/public` (Stable Hash):**\n  Generates deterministic, key-derived hashes (e.g., `\"z2pL21k\"`). Reserved for contracts between **independently built applications** where dictionary synchronization is impossible—such as RPC schemas between separately deployed services, or `globalThis` variable sharing between isolated bundles. If both sides can pass through the same bundler, prefer `~keywords` instead.\\\n  _Convention:_ `import * as PK from '~keywords/public';`\n\n- **`~keywords/raw` (Literal String):**\n  Yields the exact, unobfuscated string literal (e.g., `\"function\"`, `\"click\"`). Provided for completeness. In practice, modern minifiers and gzip compression already handle string deduplication effectively, making this module unnecessary for most codebases.\\\n  _Convention:_ `import * as RK from '~keywords/raw';`\n\n**Choosing a Module:**\nUse `K` by default. The decision to reach for `PK` should be driven by a single question: _\"Can both sides of this contract pass through the same bundler?\"_ If yes, use `K`. If no (e.g., two separately deployed services communicating via RPC), use `PK`.\n\n## Library Integration\n\nWhen publishing libraries intended for consumers who also use `unplugin-keywords`, do not use the plugin during your library's build step. Instead, solely use the `keywords` CLI to generate types for development experience.\n\nPublish your `dist` code (.js & .d.ts) with the `import * as K from '~keywords'` statements intact, and add the `\"keywordified\": true` marker to your `package.json`:\n\n```json\n{\n  \"name\": \"my-keywordified-lib\",\n  \"keywordified\": true\n}\n```\n\nDuring the final app build, the consumer's bundler will automatically include your library and process both their app and your library simultaneously. This syncs the lexical dictionary across package boundaries without requiring stable hashes (`~keywords/public`).\n\n> [!NOTE]\n> **Declaration Emit:** When exporting object literals with computed property keys, TypeScript's declaration emitter resolves the keys to their inferred literal values. Without an explicit type annotation, `tsc` will flatten `[K.HTML]` into a hardcoded string (e.g., `\"==.HTML\"`) in the generated `.d.ts`. The resolved values are functionally identical, so this is unlikely to cause issues for consumers. However, if you want to preserve the `[K.HTML]` in computed property keys, provide an [explicit type annotation](https://github.com/cueaz/keywordify/blob/72db77cd4f0dd6aa4e291a168e054b708aba1d30/keywordify/html/src/directive-helpers.ts#L57-L66).\n\n_For a real-world example, see [keywordify](https://github.com/cueaz/keywordify)._\n\n## Example: Class-Based Architectures\n\nThe namespace import pattern is applicable in class-based architectures where structural symbols are heavily used for internal state and lifecycle methods.\n\n> [!IMPORTANT]\n> Overriding lifecycle methods (e.g., `[K.render]`) requires a modified base class—such as a custom build of Lit—compiled with `unplugin-keywords` to dispatch the hashed keys. Sharing this dictionary across the ecosystem enables consistent obfuscation.\n\n```ts\n// Source: https://github.com/lit/lit/blob/main/packages/lit-html/src/directives/async-replace.ts\n/**\n * @license\n * Copyright 2026-present cueaz (Modifications)\n * Copyright 2017 Google LLC (Original Work)\n *\n * This snippet has been modified from its original version.\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport * as K from '~keywords';\n\nimport {\n  AsyncDirective,\n  type DirectiveParameters,\n} from '../async-directive.js';\nimport { type ChildPart, noChange } from '../lit-html.js';\nimport { forAwaitOf, Pauser, PseudoWeakRef } from './private-async-helpers.js';\n\ntype Mapper<T> = (v: T, index?: number) => unknown;\n\nexport class AsyncReplaceDirective extends AsyncDirective {\n  private [K.__value]?: AsyncIterable<unknown>;\n  private [K.__weakThis] = new PseudoWeakRef(this);\n  private [K.__pauser] = new Pauser();\n\n  [K.render]<T>(_value: AsyncIterable<T>, _mapper?: Mapper<T>) {\n    return noChange;\n  }\n\n  override [K.update](\n    _part: ChildPart,\n    [value, mapper]: DirectiveParameters<this>,\n  ) {\n    if (!this[K.isConnected]) {\n      this[K.disconnected]();\n    }\n\n    if (value === this[K.__value]) {\n      return noChange;\n    }\n    this[K.__value] = value;\n    let i = 0;\n    const { [K.__weakThis]: weakThis, [K.__pauser]: pauser } = this;\n\n    forAwaitOf(value, async (v: unknown) => {\n      while (pauser[K.get]()) {\n        await pauser[K.get]();\n      }\n\n      const _this = weakThis[K.deref]();\n      if (_this !== undefined) {\n        if (_this[K.__value] !== value) {\n          return false;\n        }\n        if (mapper !== undefined) {\n          v = mapper(v, i);\n        }\n        _this[K.commitValue](v, i);\n        i++;\n      }\n      return true;\n    });\n\n    return noChange;\n  }\n\n  protected [K.commitValue](value: unknown, _index: number) {\n    this[K.setValue](value);\n  }\n\n  override [K.disconnected]() {\n    this[K.__weakThis][K.disconnect]();\n    this[K.__pauser][K.pause]();\n  }\n\n  override [K.reconnected]() {\n    this[K.__weakThis][K.reconnect](this);\n    this[K.__pauser][K.resume]();\n  }\n}\n```\n\n_In production, all internal properties (e.g., `__value`, `__pauser`) will be completely minified to short sequence identifiers (via `~keywords`), obfuscating internal property names from the bundled Lit component._\n\n> [!TIP]\n> Native ECMAScript private fields (`#prop`) are safely mangled by standard minifiers, eliminating the need for plugin obfuscation for internal class state.\n\n## Other Supported Patterns\n\n```ts\n// Modular Imports\nimport { type, 'kebab-case' as kebab } from '~keywords';\n\n// JSX Injection\nconst View = () => (\n  <K.Container>\n    <div />\n  </K.Container>\n);\n\n// Advanced TypeScript Inference\ninterface StateMachine {\n  [K.idle]: typeof K.active;\n  value: (typeof K)['kebab-case'];\n}\n\n// Module Re-exports\nexport { internalState as state } from '~keywords';\n\n// UNSUPPORTED: Export All (Lacks static traceability)\nexport * from '~keywords';\n```\n\n## License\n\nMIT\n","readmeFilename":""}