{"_id":"@alwaysmeticulous/recorder-plugin","_rev":"10-a4b6e44511fd0a6bda0327ff0bf9c1e4","name":"@alwaysmeticulous/recorder-plugin","dist-tags":{"latest":"2.338.0"},"versions":{"2.277.0":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.277.0","keywords":["meticulous","unplugin","vite","webpack","rspack","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.277.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"9f392645799f90dd1c3955c02efcdbb73c942d9a","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.277.0.tgz","fileCount":27,"integrity":"sha512-JC2DBAc2KuknrU3Fl9JS5C9ubENc3DBDxiI57QHUbhj1xz+B03GGzemf6VcHATJZ+tTmh4hN30vCwnQX9gn21Q==","signatures":[{"sig":"MEYCIQCWCfcNDbll2QDmwlZCAWzITBKuv//rPeKEQnrxjhnQ4wIhAJev+sbe0HLeABLtNcWysbO4mzniNOpgcOKxHntMUTi4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53144},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./webpack":"./dist/webpack.js","./package.json":"./package.json"},"gitHead":"aa7a108001cce1b7950d488de85b0a811ccf5549","scripts":{"dev":"tsdown --watch","lint":"eslint \"src/**/*.{js,ts,tsx}\"  --cache","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"eslint \"src/**/*.{js,ts,tsx}\"  --cache --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"meticulous.eng","email":"eng@meticulous.ai"},"repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.6.2","description":"Meticulous recorder plugin for Vite, Webpack, Rspack, and Nuxt that injects the recorder script into the HTML head.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"unplugin":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","tsdown":"^0.21.7","vitest":"catalog:","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.277.0_1777460305641_0.9838280651246165","host":"s3://npm-registry-packages-npm-production"}},"2.277.1":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.277.1","keywords":["meticulous","unplugin","vite","webpack","rspack","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.277.1","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"d1c9a35fc65d56e06ac6d1487d0fd0909dc90e15","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.277.1.tgz","fileCount":28,"integrity":"sha512-ivxY9XHcXzadCL1QB9bD5xr6GKgX7FzrA9XLyznkIryCWvfyV9QRMDnXpBk8uhFD+fOCQHdDkDyxuqTfN7BCVA==","signatures":[{"sig":"MEUCIQCSPMF5gcRdq8XvWskliajdpF2vxSqGhMZWCQjf1JxDHwIgGEgKQhKJZBHPH05ZmIWRgNQNT5m1MRH7OAhrq3eHpMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.277.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58025},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./webpack":"./dist/webpack.js","./package.json":"./package.json"},"gitHead":"bff1272801580735bbc9095895d9aebc198bc31f","scripts":{"dev":"tsdown --watch","lint":"eslint \"src/**/*.{js,ts,tsx}\"  --cache","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"eslint \"src/**/*.{js,ts,tsx}\"  --cache --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d06fdced-251c-4c14-a4d5-2ddc4d3538fa"}},"repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"lerna/9.0.7/node@v20.20.2+x64 (linux)","description":"Meticulous recorder plugin for Vite, Webpack, Rspack, and Nuxt that injects the recorder script into the HTML head.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"unplugin":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","tsdown":"^0.21.7","vitest":"catalog:","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.277.1_1777460548529_0.8950834293309509","host":"s3://npm-registry-packages-npm-production"}},"2.283.1":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.283.1","keywords":["meticulous","unplugin","vite","webpack","rspack","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.283.1","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"92facee453dc459980cca632768cb162f3de19e8","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.283.1.tgz","fileCount":28,"integrity":"sha512-4vdEYHnVk0/uFa/RaesIOm7gXk6zlhnei3tMXuMDU65VUq9Xxv1NvcVjYKBwJSfqYYOWQZ7SyZJAtpSYuL3zfw==","signatures":[{"sig":"MEQCIEkP9IZL/+jV01S8CsPV1smOYgE/0pJnGE3LE866G7ogAiAEOZPzJ4vTLNkaPrpiuZ6KaQYp2Ub6qexK3UDboZGrCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.283.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57965},"type":"module","_from":"file:alwaysmeticulous-recorder-plugin-2.283.1.tgz","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./webpack":"./dist/webpack.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint \"src/**/*.{js,ts,tsx}\"  --cache","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"eslint \"src/**/*.{js,ts,tsx}\"  --cache --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d06fdced-251c-4c14-a4d5-2ddc4d3538fa"}},"_resolved":"/tmp/1b75c7da1868f72ab63eaf37b5c3f0ee/alwaysmeticulous-recorder-plugin-2.283.1.tgz","_integrity":"sha512-4vdEYHnVk0/uFa/RaesIOm7gXk6zlhnei3tMXuMDU65VUq9Xxv1NvcVjYKBwJSfqYYOWQZ7SyZJAtpSYuL3zfw==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.11.0","description":"Meticulous recorder plugin for Vite, Webpack, Rspack, and Nuxt that injects the recorder script into the HTML head.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"unplugin":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","tsdown":"^0.21.7","vitest":"^4.1.4","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.283.1_1778751947180_0.5743345970727698","host":"s3://npm-registry-packages-npm-production"}},"2.285.0":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.285.0","keywords":["meticulous","unplugin","vite","webpack","rspack","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.285.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"efc8dbe76b4fe0ffba1156e560c8aeae02f34db7","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.285.0.tgz","fileCount":28,"integrity":"sha512-bvEQlKSP3Wycpj69wvkvUnNdAuZog4gfaLAsKvMrgHkYxT/MZtLEYJ+WxwaGvO1Hyz5R8QU4Us/LP9B6B4cBhw==","signatures":[{"sig":"MEUCIQDKMLabY05RFuQ6aKSnrfyjStZGZYVUVsDk+pKlORM8fAIgCgVl1KzFfjdsY5z68Jfe166gIbIslVMqC0JIHP4PSsA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.285.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57965},"type":"module","_from":"file:alwaysmeticulous-recorder-plugin-2.285.0.tgz","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./webpack":"./dist/webpack.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint \"src/**/*.{js,ts,tsx}\"  --cache","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"eslint \"src/**/*.{js,ts,tsx}\"  --cache --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d06fdced-251c-4c14-a4d5-2ddc4d3538fa"}},"_resolved":"/tmp/014f1170434c826aebfec536cb9c5540/alwaysmeticulous-recorder-plugin-2.285.0.tgz","_integrity":"sha512-bvEQlKSP3Wycpj69wvkvUnNdAuZog4gfaLAsKvMrgHkYxT/MZtLEYJ+WxwaGvO1Hyz5R8QU4Us/LP9B6B4cBhw==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.12.1","description":"Meticulous recorder plugin for Vite, Webpack, Rspack, and Nuxt that injects the recorder script into the HTML head.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"unplugin":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.2","tsdown":"^0.21.7","vitest":"^4.1.4","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.285.0_1779180583632_0.6137127274500609","host":"s3://npm-registry-packages-npm-production"}},"2.290.4":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.290.4","keywords":["meticulous","unplugin","vite","webpack","rspack","rsbuild","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.290.4","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"2d7e0d213ad89bd7a92bb49c80e083a7ca9a79d6","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.290.4.tgz","fileCount":33,"integrity":"sha512-Qcb1s1u5GlOJmxVqs6YTiiWb1Aug/0yM/uVh5mrJEvcviyqXg0rjF9gJxqwuMnHV5ATaGJRhTiR/ZsXmsstUEg==","signatures":[{"sig":"MEUCIQDN9SVNMLywHLZHYEW9e8Q+GhBUWyXvKXZWoveibPy11gIgIS99WjaZbCGYG2nYQj6HztP+76mNllZ7kbC3+CMX0uE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.290.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71584},"type":"module","_from":"file:alwaysmeticulous-recorder-plugin-2.290.4.tgz","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./rsbuild":"./dist/rsbuild.js","./webpack":"./dist/webpack.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint \"src/**/*.{js,ts,tsx}\"  --cache","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"eslint \"src/**/*.{js,ts,tsx}\"  --cache --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d06fdced-251c-4c14-a4d5-2ddc4d3538fa"}},"_resolved":"/tmp/abc535ead9e97a1ebed13afff3338ce9/alwaysmeticulous-recorder-plugin-2.290.4.tgz","_integrity":"sha512-Qcb1s1u5GlOJmxVqs6YTiiWb1Aug/0yM/uVh5mrJEvcviyqXg0rjF9gJxqwuMnHV5ATaGJRhTiR/ZsXmsstUEg==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.13.0","description":"Meticulous recorder plugin for Vite, Webpack, Rspack, Rsbuild, and Nuxt that injects the recorder script into the HTML head.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"unplugin":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.2","tsdown":"^0.21.7","vitest":"^4.1.4","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0","@rsbuild/core":"^1.7.0"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1","@rsbuild/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true},"@rsbuild/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.290.4_1780697664486_0.7228627474022007","host":"s3://npm-registry-packages-npm-production"}},"2.293.0":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.293.0","keywords":["meticulous","unplugin","vite","webpack","rspack","rsbuild","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.293.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"5ad78838297ee331e142521df6c989e98a9bedea","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.293.0.tgz","fileCount":33,"integrity":"sha512-9KSXa9WJydvlS7hiesi6hhMmtmLJ6OafxVfH0jrGikvAZKIvWKohuf1yIZlWVL47Zoh+wogJef2j1aGbhZm93g==","signatures":[{"sig":"MEUCIG2OdSVTmdPoLduPBwSGuHE8AwRKdWOe6QkVcwqRYCBBAiEAl+K3EitJCBS+M8MFB6ZhyHyQtIBcMxs/qJQUIEkhTvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.293.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71584},"type":"module","_from":"file:alwaysmeticulous-recorder-plugin-2.293.0.tgz","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./rsbuild":"./dist/rsbuild.js","./webpack":"./dist/webpack.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint \"src/**/*.{js,ts,tsx}\"  --cache","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"eslint \"src/**/*.{js,ts,tsx}\"  --cache --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d06fdced-251c-4c14-a4d5-2ddc4d3538fa"}},"_resolved":"/tmp/0c3cb76e2bc1ccae200afabe25cf59ef/alwaysmeticulous-recorder-plugin-2.293.0.tgz","_integrity":"sha512-9KSXa9WJydvlS7hiesi6hhMmtmLJ6OafxVfH0jrGikvAZKIvWKohuf1yIZlWVL47Zoh+wogJef2j1aGbhZm93g==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.13.0","description":"Meticulous recorder plugin for Vite, Webpack, Rspack, Rsbuild, and Nuxt that injects the recorder script into the HTML head.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"unplugin":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.2","tsdown":"^0.21.7","vitest":"^4.1.4","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0","@rsbuild/core":"^1.7.0"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1","@rsbuild/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true},"@rsbuild/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.293.0_1781295178809_0.9375570641608653","host":"s3://npm-registry-packages-npm-production"}},"2.333.1":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.333.1","keywords":["meticulous","unplugin","vite","webpack","rspack","rsbuild","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.333.1","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"c1856e3cb922b104d17e15772dfed3f389c02a7f","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.333.1.tgz","fileCount":33,"integrity":"sha512-xZIFyefW+eV8tIqxGlP9gyAWnhkE4MjE3DshvoDhtfw0lPrz3Sk9p4SbGfA8N38FWCCLG8No6ULXH+pzcj7wYQ==","signatures":[{"sig":"MEQCICCP4jyiZPAoxHjIuOmBHFE1uj0aaQAr3NUD7/UD9tNbAiBhFYTG4TMdThS44wYBogw3ZiERtvSmT+H6HMjvRksqLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.333.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67651},"type":"module","_from":"file:alwaysmeticulous-recorder-plugin-2.333.1.tgz","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./rsbuild":"./dist/rsbuild.js","./webpack":"./dist/webpack.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6cf85b72-c065-48ed-848d-56659968d798"}},"_resolved":"/tmp/49a637c1e0d00998ccabce0b7fa80682/alwaysmeticulous-recorder-plugin-2.333.1.tgz","_integrity":"sha512-xZIFyefW+eV8tIqxGlP9gyAWnhkE4MjE3DshvoDhtfw0lPrz3Sk9p4SbGfA8N38FWCCLG8No6ULXH+pzcj7wYQ==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.17.0","description":"Meticulous recorder plugin for Vite, Webpack, Rspack, Rsbuild, and Nuxt that injects the recorder script into the HTML head.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"unplugin":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.2","tsdown":"^0.21.7","vitest":"^4.1.4","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0","@rsbuild/core":"^1.7.0"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1","@rsbuild/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true},"@rsbuild/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.333.1_1787739822033_0.28803912456228575","host":"s3://npm-registry-packages-npm-production"}},"2.337.0":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.337.0","keywords":["meticulous","unplugin","vite","webpack","rspack","rsbuild","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.337.0","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"a6b9d866a897e9c97e798f43f4aceb4520054428","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.337.0.tgz","fileCount":43,"integrity":"sha512-yQzwrDKK8DlQ7wacFxu9fSLvJEeYZ6UWvvAa2zcwm0srAXhvMVZvuESxGU13Q8MYCsyXC/c0zMsfksC/tWg7CA==","signatures":[{"sig":"MEUCIQDkp2h2RKj3MrBQiWCjafwbrl/fuJKnvU1w7nAa1Cfi9AIgLtlKs8Z6kAF52K7ef59O5VhViB9EWTtmaIKq6LRRgS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.337.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125368},"type":"module","_from":"file:alwaysmeticulous-recorder-plugin-2.337.0.tgz","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./rsbuild":"./dist/rsbuild.js","./webpack":"./dist/webpack.js","./package.json":"./package.json","./css-sourcemap":"./dist/css-sourcemap.js"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6cf85b72-c065-48ed-848d-56659968d798"}},"_resolved":"/tmp/3069c2eeeff391b4b85a6a8275e35667/alwaysmeticulous-recorder-plugin-2.337.0.tgz","_integrity":"sha512-yQzwrDKK8DlQ7wacFxu9fSLvJEeYZ6UWvvAa2zcwm0srAXhvMVZvuESxGU13Q8MYCsyXC/c0zMsfksC/tWg7CA==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.19.0","description":"Meticulous plugin for Vite, Webpack, Rspack, Rsbuild, and Nuxt that injects the recorder script into the HTML head, plus a Vite plugin that emits CSS source maps for stylesheet coverage.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"unplugin":"^3.0.0","@jridgewell/sourcemap-codec":"^1.5.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.2","tsdown":"^0.21.7","vitest":"^4.1.4","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0","@rsbuild/core":"^1.7.0","@jridgewell/trace-mapping":"^0.3.25"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1","@rsbuild/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true},"@rsbuild/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.337.0_1788774139764_0.2672292032859842","host":"s3://npm-registry-packages-npm-production"}},"2.337.1":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.337.1","keywords":["meticulous","unplugin","vite","webpack","rspack","rsbuild","nuxt"],"author":{"url":"https://meticulous.ai","name":"The Meticulous Team","email":"eng@meticulous.ai"},"license":"ISC","_id":"@alwaysmeticulous/recorder-plugin@2.337.1","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"dist":{"shasum":"0b6b7b345a5b0ae4459380ca306934379ce31301","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.337.1.tgz","fileCount":45,"integrity":"sha512-+xwWszPaj9EL/etrcAKLyq0JzmJRcZwg3y83gk529m0lIr0p3ZcYasii6PlCJf8OspjXXkRIPa8Yje2W0RzGTg==","signatures":[{"sig":"MEQCIEE3HOzVWsfUcyZaKfWIDW7zwUdjnProG6D8QcyNQG0cAiAoY2qbqQrD7rJfvtRf0Jk5mJgKgZ+V9gVdF4e0bJaFdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.337.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141860},"type":"module","_from":"file:alwaysmeticulous-recorder-plugin-2.337.1.tgz","engines":{"node":">=20.19.0"},"exports":{".":"./dist/index.js","./nuxt":"./dist/nuxt.js","./vite":"./dist/vite.js","./types":"./dist/types.js","./rspack":"./dist/rspack.js","./rsbuild":"./dist/rsbuild.js","./webpack":"./dist/webpack.js","./package.json":"./package.json","./css-sourcemap":"./dist/css-sourcemap.js"},"scripts":{"dev":"tsdown --watch","lint":"oxlint --type-aware src","test":"vitest run --passWithNoTests","build":"tsdown","clean":"rimraf dist tsconfig.tsbuildinfo","format":"prettier --write src","depcheck":"depcheck --ignore-patterns=dist","lint:fix":"oxlint --type-aware src --fix","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6cf85b72-c065-48ed-848d-56659968d798"}},"_resolved":"/tmp/c1362fc794850a65c51abcd224c6cce4/alwaysmeticulous-recorder-plugin-2.337.1.tgz","_integrity":"sha512-+xwWszPaj9EL/etrcAKLyq0JzmJRcZwg3y83gk529m0lIr0p3ZcYasii6PlCJf8OspjXXkRIPa8Yje2W0RzGTg==","repository":{"url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","type":"git","directory":"packages/recorder-plugin"},"_npmVersion":"11.19.0","description":"Meticulous plugin for Vite, Webpack, Rspack, Rsbuild, and Nuxt that injects the recorder script into the HTML head, plus a Vite plugin that emits CSS source maps for stylesheet coverage.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"unplugin":"^3.0.0","@jridgewell/sourcemap-codec":"^1.5.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.2","tsdown":"^0.21.7","vitest":"^4.1.4","webpack":"^5.106.1","@nuxt/kit":"^3.13.0","@rspack/core":"^1.0.0","@rsbuild/core":"^1.7.0","@jridgewell/trace-mapping":"^0.3.25"},"peerDependencies":{"vite":">=5","webpack":"^5","@nuxt/kit":"^3","@rspack/core":"^1","@rsbuild/core":"^1"},"peerDependenciesMeta":{"vite":{"optional":true},"webpack":{"optional":true},"@nuxt/kit":{"optional":true},"@rspack/core":{"optional":true},"@rsbuild/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/recorder-plugin_2.337.1_1788861057701_0.14440988559062906","host":"s3://npm-registry-packages-npm-production"}},"2.338.0":{"name":"@alwaysmeticulous/recorder-plugin","version":"2.338.0","type":"module","description":"Meticulous plugin for Vite, Webpack, Rspack, Rsbuild, and Nuxt that injects the recorder script into the HTML head, plus a Vite plugin that emits CSS source maps for stylesheet coverage.","license":"ISC","exports":{".":"./dist/index.js","./css-sourcemap":"./dist/css-sourcemap.js","./vite":"./dist/vite.js","./webpack":"./dist/webpack.js","./rspack":"./dist/rspack.js","./rsbuild":"./dist/rsbuild.js","./nuxt":"./dist/nuxt.js","./types":"./dist/types.js","./package.json":"./package.json"},"keywords":["meticulous","unplugin","vite","webpack","rspack","rsbuild","nuxt"],"dependencies":{"@jridgewell/sourcemap-codec":"^1.5.0","unplugin":"^3.0.0"},"peerDependencies":{"@nuxt/kit":"^3","@rsbuild/core":"^1","@rspack/core":"^1","vite":">=5","webpack":"^5"},"peerDependenciesMeta":{"@nuxt/kit":{"optional":true},"@rsbuild/core":{"optional":true},"@rspack/core":{"optional":true},"vite":{"optional":true},"webpack":{"optional":true}},"devDependencies":{"@jridgewell/trace-mapping":"^0.3.25","@nuxt/kit":"^3.13.0","@rsbuild/core":"^1.7.0","@rspack/core":"^1.0.0","tsdown":"^0.21.7","vite":"^7.3.6","vitest":"^4.1.4","webpack":"^5.106.1"},"author":{"name":"The Meticulous Team","email":"eng@meticulous.ai","url":"https://meticulous.ai"},"engines":{"node":">=20.19.0"},"homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","repository":{"type":"git","url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","directory":"packages/recorder-plugin"},"bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"scripts":{"clean":"rimraf dist tsconfig.tsbuildinfo","build":"tsdown","dev":"tsdown --watch","format":"prettier --write src","lint":"oxlint --type-aware src","lint:commit":"eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep  -E \"(.js$|.ts$|.tsx$)\")","lint:fix":"oxlint --type-aware src --fix","depcheck":"depcheck --ignore-patterns=dist","test":"vitest run --passWithNoTests"},"_id":"@alwaysmeticulous/recorder-plugin@2.338.0","_integrity":"sha512-djCsQng5lUw6r/GBfp+9p/bx5FDf7hzVA4rEGrdDnz1bHy3ldfox7Co2EUhkaPAaCOX1nASQZ9H4OqHcs28lcQ==","_resolved":"/tmp/4180405e6991731882c56abf3f446ad4/alwaysmeticulous-recorder-plugin-2.338.0.tgz","_from":"file:alwaysmeticulous-recorder-plugin-2.338.0.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-djCsQng5lUw6r/GBfp+9p/bx5FDf7hzVA4rEGrdDnz1bHy3ldfox7Co2EUhkaPAaCOX1nASQZ9H4OqHcs28lcQ==","shasum":"e4b9a7bc7bd2042ea49c70b915b68e206bed839a","tarball":"https://registry.npmjs.org/@alwaysmeticulous/recorder-plugin/-/recorder-plugin-2.338.0.tgz","fileCount":47,"unpackedSize":171026,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alwaysmeticulous%2frecorder-plugin@2.338.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCbnSR8QJRsn1ADiN1jDmZBWEd5VLRVwsSn+IYb4L0IywIhAIb+nnKcY5tQ3VDkJp6yIGLiE/MOfxoMSwuTBzYP3VFs"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6cf85b72-c065-48ed-848d-56659968d798"}},"directories":{},"maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/recorder-plugin_2.338.0_1789123319999_0.04167811855074355"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-29T10:58:25.534Z","modified":"2026-09-11T10:42:00.509Z","2.277.0":"2026-04-29T10:58:25.807Z","2.277.1":"2026-04-29T11:02:28.676Z","2.283.1":"2026-05-14T09:45:47.303Z","2.285.0":"2026-05-19T08:49:43.779Z","2.290.4":"2026-06-05T22:14:24.629Z","2.293.0":"2026-06-12T20:12:58.959Z","2.333.1":"2026-08-26T10:23:42.210Z","2.337.0":"2026-09-07T09:42:19.903Z","2.337.1":"2026-09-08T09:50:57.831Z","2.338.0":"2026-09-11T10:42:00.164Z"},"bugs":{"url":"https://github.com/alwaysmeticulous/meticulous-sdk/issues"},"author":{"name":"The Meticulous Team","email":"eng@meticulous.ai","url":"https://meticulous.ai"},"license":"ISC","homepage":"https://github.com/alwaysmeticulous/meticulous-sdk","keywords":["meticulous","unplugin","vite","webpack","rspack","rsbuild","nuxt"],"repository":{"type":"git","url":"git+https://github.com/alwaysmeticulous/meticulous-sdk.git","directory":"packages/recorder-plugin"},"description":"Meticulous plugin for Vite, Webpack, Rspack, Rsbuild, and Nuxt that injects the recorder script into the HTML head, plus a Vite plugin that emits CSS source maps for stylesheet coverage.","maintainers":[{"name":"meticulous.eng","email":"eng@meticulous.ai"}],"readme":"# @alwaysmeticulous/recorder-plugin\n\nA bundler plugin that injects the [Meticulous recorder](https://app.meticulous.ai/docs/how-to/recorder-script)\nscript into the `<head>` of your app's HTML, with one entry point per\nsupported bundler/framework.\n\nBy default, the recorder is only injected during development builds —\nmatching Meticulous's recommendation to record real sessions in staging or\nproduction via an explicit opt-in.\n\n> Built on top of [`unplugin@3`](https://github.com/unjs/unplugin) and\n> [`tsdown`](https://tsdown.dev/). ESM-only. Requires Node.js 20.19+.\n\n## Installing\n\n```shell\nnpm install @alwaysmeticulous/recorder-plugin --save-dev\n# or with yarn\nyarn add -D @alwaysmeticulous/recorder-plugin\n# or with pnpm\npnpm add -D @alwaysmeticulous/recorder-plugin\n```\n\n## Usage\n\n<details open>\n<summary>Vite</summary>\n\n```ts\n// vite.config.ts\nimport meticulous from \"@alwaysmeticulous/recorder-plugin/vite\";\n\nexport default defineConfig({\n  plugins: [\n    meticulous({\n      recordingToken: \"<your-recording-token>\",\n    }),\n  ],\n});\n```\n\n</details>\n\n<details>\n<summary>Webpack</summary>\n\n```js\n// webpack.config.mjs\nimport meticulous from \"@alwaysmeticulous/recorder-plugin/webpack\";\n\nexport default {\n  plugins: [meticulous({ recordingToken: \"<your-recording-token>\" })],\n};\n```\n\nThe plugin integrates with\n[`html-webpack-plugin`](https://github.com/jantimon/html-webpack-plugin) when\npresent, and otherwise falls back to rewriting any emitted `.html` assets.\n\n</details>\n\n<details>\n<summary>Rspack</summary>\n\n```js\n// rspack.config.mjs\nimport meticulous from \"@alwaysmeticulous/recorder-plugin/rspack\";\n\nexport default {\n  plugins: [meticulous({ recordingToken: \"<your-recording-token>\" })],\n};\n```\n\n</details>\n\n<details>\n<summary>Rsbuild</summary>\n\nPrefer the dedicated Rsbuild entry, which hooks into Rsbuild's `modifyHTML` API:\n\n```ts\n// rsbuild.config.ts\nimport { defineConfig } from \"@rsbuild/core\";\nimport meticulous from \"@alwaysmeticulous/recorder-plugin/rsbuild\";\n\nexport default defineConfig({\n  plugins: [meticulous({ recordingToken: \"<your-recording-token>\" })],\n});\n```\n\nYou can also pass the rspack plugin through `tools.rspack` if you need to\ncompose it with other rspack-only plugins:\n\n```ts\n// rsbuild.config.ts\nimport { defineConfig } from \"@rsbuild/core\";\nimport meticulous from \"@alwaysmeticulous/recorder-plugin/rspack\";\n\nexport default defineConfig({\n  tools: {\n    rspack: {\n      plugins: [meticulous({ recordingToken: \"<your-recording-token>\" })],\n    },\n  },\n});\n```\n\n</details>\n\n<details>\n<summary>Nuxt</summary>\n\n```ts\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: [\n    [\n      \"@alwaysmeticulous/recorder-plugin/nuxt\",\n      { recordingToken: \"<your-recording-token>\" },\n    ],\n  ],\n});\n```\n\nThe Nuxt module injects the recorder script via `nuxt.options.app.head.script`,\nwhich feeds into Nitro's render pipeline and works correctly regardless of\nwhich bundler Nuxt is using.\n\n</details>\n\n## Options\n\n```ts\nimport type { Options } from \"@alwaysmeticulous/recorder-plugin\";\n```\n\n| Option                 | Type                                                       | Default                                            | Description                                                                                                                                                                                               |\n| ---------------------- | ---------------------------------------------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `recordingToken`       | `string` (required)                                        | —                                                  | Your Meticulous recording token. Emitted as `data-recording-token` on the injected `<script>`.                                                                                                            |\n| `enabled`              | `\"development\" \\| \"always\" \\| \"never\" \\| (ctx) => boolean` | `\"development\"`                                    | When to inject. `\"development\"` only injects during development builds (Vite `command === \"serve\"` or webpack/rspack `mode !== \"production\"`). Pass a function for full control.                          |\n| `inject`               | `\"auto\" \\| \"replace\"`                                      | `\"auto\"`                                           | `\"auto\"` prepends a new `<script>` as the first child of `<head>`. `\"replace\"` swaps a placeholder script tag (see below).                                                                                |\n| `placeholderAttribute` | `string`                                                   | `\"data-meticulous\"`                                | Attribute name used to find the placeholder when `inject: \"replace\"`.                                                                                                                                     |\n| `snippetUrl`           | `string`                                                   | `\"https://snippet.meticulous.ai/v1/meticulous.js\"` | Override the snippet URL.                                                                                                                                                                                 |\n| `attributes`           | `Record<string, string \\| boolean \\| null \\| undefined>`   | `{}`                                               | Extra attributes on the `<script>` tag (e.g. `nonce`). `true` emits a boolean attribute; `false`/`null`/`undefined` skip it. Overrides any default attribute, including `data-is-production-environment`. |\n\nThe plugin always emits `data-is-production-environment=\"true\"` or\n`data-is-production-environment=\"false\"` on the injected `<script>` based on\nthe bundler's detected mode (Vite `command === \"build\" && mode === \"production\"`,\nwebpack/rspack `mode === \"production\"`). Override it via `attributes` if you\nneed different behaviour:\n\n```ts\nmeticulous({\n  recordingToken: \"<your-recording-token>\",\n  attributes: {\n    \"data-is-production-environment\":\n      process.env.MY_ENV === \"prod\" ? \"true\" : \"false\",\n  },\n});\n```\n\n### Controlling when the recorder loads\n\n```ts\nmeticulous({\n  recordingToken: \"<your-recording-token>\",\n  // Always inject — useful in staging.\n  enabled: \"always\",\n});\n\nmeticulous({\n  recordingToken: \"<your-recording-token>\",\n  // Custom predicate.\n  enabled: (ctx) => ctx.framework === \"vite\" && ctx.mode !== \"test\",\n});\n```\n\nThe predicate receives an `EnabledContext`:\n\n```ts\ninterface EnabledContext {\n  framework: \"vite\" | \"webpack\" | \"rspack\";\n  mode?: string; // Vite mode / webpack mode / NODE_ENV fallback\n  command?: \"serve\" | \"build\"; // Vite-only\n  isProduction: boolean;\n}\n```\n\n### Replacing a manually-added placeholder\n\nIf you'd rather control where the script lives in your `index.html`, add a\nplaceholder and switch `inject` to `\"replace\"`:\n\n```html\n<!-- index.html -->\n<head>\n  <script data-meticulous></script>\n  <!-- ... -->\n</head>\n```\n\n```ts\nmeticulous({\n  recordingToken: \"<your-recording-token>\",\n  inject: \"replace\",\n  // placeholderAttribute defaults to \"data-meticulous\"\n});\n```\n\nIf the placeholder is not found, the plugin falls back to `\"auto\"` injection\nand emits a build warning.\n\n## CSS source maps (Vite)\n\nMeticulous reports which of your stylesheets each test covered. To do that it\nneeds to map the bundled CSS the browser loaded back to the stylesheets in your\nrepository, which requires a CSS source map. Vite does not emit one for\nproduction builds ([vitejs/vite#2830](https://github.com/vitejs/vite/issues/2830)),\nso without this plugin a bundled stylesheet is opaque and its coverage cannot be\nattributed to any file.\n\n```ts\n// vite.config.ts\nimport CssSourcemapPlugin from \"@alwaysmeticulous/recorder-plugin/css-sourcemap\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n  plugins: [CssSourcemapPlugin()],\n});\n```\n\nThis emits a `<asset>.css.map` next to each CSS asset and references it from the\nasset, alongside whatever JavaScript source maps you already produce.\n\nEvery stylesheet in the bundle is attributed to the file it came from, whether\nthat is plain CSS, a CSS module, Sass/SCSS, Less, or Tailwind. How precise that\nattribution is within a file depends on the stylesheet. CSS that reaches the\nbundle unchanged maps line for line. Anything a preprocessor rewrote maps\napproximately, because Vite discards preprocessor source maps in production\nbuilds. Tailwind `@import`s keep file- and line-level maps for rules the plugin can\nstill find in the compiled CSS: it reads the transform map\n`@tailwindcss/vite` already builds (Vite's combiner would otherwise drop it)\nand locates each named import's selectors inside that output. Generated\nutilities the map leaves blank still attribute to the Tailwind entry, not to\nthe `className` that produced them.\n\n> [!IMPORTANT]\n> The plugin disables Vite's CSS minification, which is what makes the emitted\n> maps accurate — Vite minifies a CSS asset after the plugin has recorded where\n> each stylesheet landed inside it. Enable the plugin on the build whose\n> coverage Meticulous collects rather than on every production build. If you\n> keep minification on via `disableCssMinify: false`, the plugin emits no map at\n> all and warns, rather than emitting a partial one that would attribute some\n> stylesheets' rules to their neighbours.\n\n### Options\n\n```ts\nimport type { CssSourcemapOptions } from \"@alwaysmeticulous/recorder-plugin/css-sourcemap\";\n```\n\n| Option             | Type      | Default       | Description                                                                                                                               |\n| ------------------ | --------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |\n| `enabled`          | `boolean` | `true`        | Whether to generate CSS source maps.                                                                                                      |\n| `root`             | `string`  | the Vite root | Directory that emitted source paths are made relative to. Set this to your repository root when the Vite project lives in a subdirectory. |\n| `disableCssMinify` | `boolean` | `true`        | Disable Vite's CSS minification while the plugin is active.                                                                               |\n\nIn a monorepo where the Vite project is not the repository root, point `root` at\nthe repository so the emitted paths match the ones Meticulous sees:\n\n```ts\nCssSourcemapPlugin({ root: path.resolve(__dirname, \"../..\") });\n```\n","readmeFilename":"README.md"}