{"_id":"@avixiii/bundle-size-tracker","_rev":"4-b54fd531bb0eb751b30fdb9bf27d56f2","name":"@avixiii/bundle-size-tracker","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@avixiii/bundle-size-tracker","version":"0.1.0","keywords":["bundle","size","tracker","webpack","rollup","vite","analysis","performance"],"author":{"name":"avixiii-dev"},"license":"MIT","_id":"@avixiii/bundle-size-tracker@0.1.0","maintainers":[{"name":"avixiii","email":"avixiii@proton.me"}],"homepage":"https://github.com/avixiii-dev/bundle-size-tracker#readme","bugs":{"url":"https://github.com/avixiii-dev/bundle-size-tracker/issues"},"bin":{"bundle-size-tracker":"dist/cli.js"},"dist":{"shasum":"13e532b6f5ec25c24e91cefab2f7620237dbd5e2","tarball":"https://registry.npmjs.org/@avixiii/bundle-size-tracker/-/bundle-size-tracker-0.1.0.tgz","fileCount":31,"integrity":"sha512-xWVh+KqjHnhUIU6ApH6p+ZlJhevffFX+Ag272ifMlkc33r2Mn9RThpV1pABEAw8kNgdtCG+Yge3oKS5YCe756A==","signatures":[{"sig":"MEYCIQDKdVUCOVsrwmxodNvBLzB41z79zYrPdtL41HPflJMmRAIhAJr2TtLNyBb3KipVHU0Og4CxRGVC0SgrgXo4IhcY4doF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30421},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"cb0e037a5fbdf164dbc557ef1f29a643cc3018eb","scripts":{"lint":"eslint \"src/**/*.{js,ts}\" --fix","test":"echo \"No tests specified yet\" && exit 0","build":"tsc","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"avixiii","email":"avixiii@proton.me"},"repository":{"url":"git+https://github.com/avixiii-dev/bundle-size-tracker.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful and flexible tool to track and analyze JavaScript bundle sizes across different build tools","directories":{},"_nodeVersion":"18.20.5","dependencies":{"glob":"^10.0.0","chalk":"^4.1.2","filesize":"^10.0.0","commander":"^11.0.0","@types/glob":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^4.5.1","eslint":"^8.56.0","rollup":"^3.29.4","ts-jest":"^29.1.1","webpack":"^5.89.0","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{"vite":"^4.0.0","rollup":"^3.0.0","webpack":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bundle-size-tracker_0.1.0_1735448596728_0.7525786357621262","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@avixiii/bundle-size-tracker","version":"0.1.1","keywords":["bundle","size","tracker","webpack","rollup","vite","analysis","performance"],"author":{"name":"avixiii-dev"},"license":"MIT","_id":"@avixiii/bundle-size-tracker@0.1.1","maintainers":[{"name":"avixiii","email":"avixiii@proton.me"}],"homepage":"https://github.com/avixiii-dev/bundle-size-tracker#readme","bugs":{"url":"https://github.com/avixiii-dev/bundle-size-tracker/issues"},"bin":{"bundle-size-tracker":"dist/cli.js"},"dist":{"shasum":"1d81c0363e2e0a21350b3735e3443bb9f5316673","tarball":"https://registry.npmjs.org/@avixiii/bundle-size-tracker/-/bundle-size-tracker-0.1.1.tgz","fileCount":31,"integrity":"sha512-IRgRvhytLO5B7qRxRQneipAMJBs2KtqwiPrWG5dFEmV/OwRpVz/KwcTalFU0L5WpaqQhMYfkxe7ptB4vNINVJA==","signatures":[{"sig":"MEUCIHmhomyxT6ylAY4AV1HPeoKr7Q12ABQHCLFioKxyKdzOAiEAkqI4eb4v/B7vPvZjEcR/5pUsJyIw3jMzd+zMc2/pc3E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36066},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"7b53fa0c890a7b1fbf7ac5f0d1c93b48c40bf950","scripts":{"lint":"eslint \"src/**/*.{js,ts}\" --fix","test":"echo \"No tests specified yet\" && exit 0","build":"tsc","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"avixiii","email":"avixiii@proton.me"},"repository":{"url":"git+https://github.com/avixiii-dev/bundle-size-tracker.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful and flexible tool to track and analyze JavaScript bundle sizes across different build tools","directories":{},"_nodeVersion":"18.20.5","dependencies":{"glob":"^10.0.0","chalk":"^4.1.2","filesize":"^10.0.0","commander":"^11.0.0","@types/glob":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^4.5.1","eslint":"^8.56.0","rollup":"^3.29.4","ts-jest":"^29.1.1","webpack":"^5.89.0","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{"vite":"^4.0.0","rollup":"^3.0.0","webpack":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bundle-size-tracker_0.1.1_1735460535716_0.257064756430766","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@avixiii/bundle-size-tracker","version":"0.1.2","keywords":["bundle","size","tracker","webpack","optimization","ai","analysis","performance"],"author":{"name":"Tuan","email":"avixiii@proton.me"},"license":"MIT","_id":"@avixiii/bundle-size-tracker@0.1.2","maintainers":[{"name":"avixiii","email":"avixiii@proton.me"}],"homepage":"https://github.com/avixiii-dev/bundle-size-tracker#readme","bugs":{"url":"https://github.com/avixiii-dev/bundle-size-tracker/issues"},"bin":{"bundle-size-tracker":"dist/cli.js"},"dist":{"shasum":"4e06901bc7f83cd8d8b14da22abe5152d4a10518","tarball":"https://registry.npmjs.org/@avixiii/bundle-size-tracker/-/bundle-size-tracker-0.1.2.tgz","fileCount":39,"integrity":"sha512-h1joiht2kidDBRWyQNl9AwfAn5W1MBBzV1mrQgyT8JaSBDRcgY0yR3lm+Fe+zmuMGOdjJXAJI/aSvcDeKokQaQ==","signatures":[{"sig":"MEUCIFutOflEGBvsgy+NZfR5KUqy5W9MR5oix5tnz66azMv9AiEAw0Sz04D9MHymSNwmvJb5TZy5QoljfQj/aAEUtuLQNd4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63042},"jest":{"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"testEnvironment":"node","moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"85ff50dfeaaaf52a89a747bb99938f030a5fb457","scripts":{"lint":"eslint \"src/**/*.{js,ts}\" --fix","test":"jest --passWithNoTests","build":"tsc","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"avixiii","email":"avixiii@proton.me"},"repository":{"url":"git+https://github.com/avixiii-dev/bundle-size-tracker.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful tool to track and optimize your JavaScript bundle sizes with AI-powered suggestions","directories":{},"_nodeVersion":"18.20.5","dependencies":{"glob":"^10.0.0","chalk":"^4.1.2","dotenv":"^16.3.1","openai":"^4.24.1","filesize":"^10.0.0","commander":"^11.0.0","@types/glob":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^4.5.1","eslint":"^8.56.0","rollup":"^3.29.4","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.5","@types/rollup":"^0.54.0","@typescript-eslint/parser":"^6.15.0","@typescript-eslint/eslint-plugin":"^6.15.0"},"peerDependencies":{"vite":"^4.0.0","rollup":"^3.0.0","webpack":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bundle-size-tracker_0.1.2_1735818710811_0.6985559432153148","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@avixiii/bundle-size-tracker","version":"0.1.3","keywords":["bundle","size","tracker","webpack","optimization","ai","analysis","performance"],"author":{"name":"Tuan","email":"avixiii@proton.me"},"license":"MIT","_id":"@avixiii/bundle-size-tracker@0.1.3","maintainers":[{"name":"avixiii","email":"avixiii@proton.me"}],"homepage":"https://github.com/avixiii-dev/bundle-size-tracker#readme","bugs":{"url":"https://github.com/avixiii-dev/bundle-size-tracker/issues"},"bin":{"bundle-size-tracker":"dist/cli.js"},"dist":{"shasum":"2cae9d5c2cb7b8c3f02893736f5e75935591cf62","tarball":"https://registry.npmjs.org/@avixiii/bundle-size-tracker/-/bundle-size-tracker-0.1.3.tgz","fileCount":55,"integrity":"sha512-V2Q1yoDN7V173Z+tmfWJOC+15TcH3t+MK288MpCar3YlHBXitDV5NZ6kHU+vkR6JNE0cLiIPuO++VtwcLrbm4Q==","signatures":[{"sig":"MEUCIFUSKRRy8r6sSwtUgfb8YcvCjVACH4jCGLyfjs2Zwa4ZAiEA7lqNif02yOlM08zV2R31ymqL95oBIRE/Tl02XuuAqJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132322},"jest":{"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"testEnvironment":"node","moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"c7911800538bb0ccf78eb71a703c206c75c5e7da","scripts":{"lint":"eslint \"src/**/*.{js,ts}\" --fix","test":"jest --passWithNoTests","build":"tsc","prepare":"npm run build","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"avixiii","email":"avixiii@proton.me"},"repository":{"url":"git+https://github.com/avixiii-dev/bundle-size-tracker.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful tool to track and optimize your JavaScript bundle sizes with AI-powered suggestions","directories":{},"_nodeVersion":"18.20.5","dependencies":{"glob":"^10.0.0","chalk":"^4.1.2","dotenv":"^16.3.1","openai":"^4.24.1","filesize":"^10.0.0","commander":"^11.0.0","@types/glob":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^4.5.1","eslint":"^8.56.0","rollup":"^3.29.4","ts-jest":"^29.2.5","typescript":"^5.3.3","@types/jest":"^29.5.14","@types/node":"^20.10.5","@types/rollup":"^0.54.0","@typescript-eslint/parser":"^6.15.0","@typescript-eslint/eslint-plugin":"^6.15.0"},"peerDependencies":{"vite":"^4.0.0","rollup":"^3.0.0","webpack":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bundle-size-tracker_0.1.3_1736660736524_0.3563451714330583","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@avixiii/bundle-size-tracker","version":"0.1.4","description":"A powerful tool to track and optimize your JavaScript bundle sizes with AI-powered suggestions","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"bundle-size-tracker":"dist/cli.js"},"scripts":{"build":"tsc","test":"jest --passWithNoTests","test:coverage":"jest --coverage","lint":"eslint \"src/**/*.{js,ts}\" --fix","prepublishOnly":"npm run build","prepare":"npm run build"},"jest":{"preset":"ts-jest","testEnvironment":"node","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"keywords":["bundle","size","tracker","webpack","optimization","ai","analysis","performance"],"author":{"name":"Tuan","email":"avixiii@proton.me"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/avixiii-dev/bundle-size-tracker.git"},"bugs":{"url":"https://github.com/avixiii-dev/bundle-size-tracker/issues"},"homepage":"https://github.com/avixiii-dev/bundle-size-tracker#readme","dependencies":{"@types/glob":"^8.0.0","chalk":"^4.1.2","commander":"^11.0.0","dotenv":"^16.3.1","filesize":"^10.0.0","glob":"^10.0.0","openai":"^4.24.1"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^20.17.12","@types/rollup":"^0.54.0","@types/web":"^0.0.193","@typescript-eslint/eslint-plugin":"^6.15.0","@typescript-eslint/parser":"^6.15.0","eslint":"^8.56.0","jest":"^29.7.0","rollup":"^3.29.4","ts-jest":"^29.2.5","typescript":"^5.3.3","vite":"^4.5.1"},"peerDependencies":{"rollup":"^3.0.0","vite":"^4.0.0","webpack":"^5.0.0"},"engines":{"node":">=16.0.0"},"_id":"@avixiii/bundle-size-tracker@0.1.4","gitHead":"2054d34d4a70454878f038eac226fcfff3cfc737","_nodeVersion":"18.20.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-wQuFW0Vfl8v2uN4V3oTWbfVFgspGO1egjBrMLPuN/SeFr3zDX6Zw+aYdohL5Bh6uWKiuGuvYlQNfsDBayA+Dmg==","shasum":"a3d9023ccea524a7dc647968517e3e6fa962d6ab","tarball":"https://registry.npmjs.org/@avixiii/bundle-size-tracker/-/bundle-size-tracker-0.1.4.tgz","fileCount":75,"unpackedSize":161440,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDL1islFLXvZ+KUs2MGbKkjbkhcbyR07KwL2aSr2XNBPwIhAM7Z1tTSLYLyEuoI0tnGMFMmFJZ8imznNImsgtna7bzR"}]},"_npmUser":{"name":"avixiii","email":"avixiii@proton.me"},"directories":{},"maintainers":[{"name":"avixiii","email":"avixiii@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bundle-size-tracker_0.1.4_1736759005978_0.4067359881111774"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-29T05:03:16.598Z","modified":"2025-01-13T09:03:26.369Z","0.1.0":"2024-12-29T05:03:16.908Z","0.1.1":"2024-12-29T08:22:15.900Z","0.1.2":"2025-01-02T11:51:50.996Z","0.1.3":"2025-01-12T05:45:36.749Z","0.1.4":"2025-01-13T09:03:26.188Z"},"bugs":{"url":"https://github.com/avixiii-dev/bundle-size-tracker/issues"},"author":{"name":"Tuan","email":"avixiii@proton.me"},"license":"MIT","homepage":"https://github.com/avixiii-dev/bundle-size-tracker#readme","keywords":["bundle","size","tracker","webpack","optimization","ai","analysis","performance"],"repository":{"type":"git","url":"git+https://github.com/avixiii-dev/bundle-size-tracker.git"},"description":"A powerful tool to track and optimize your JavaScript bundle sizes with AI-powered suggestions","maintainers":[{"name":"avixiii","email":"avixiii@proton.me"}],"readme":"# Bundle Size Tracker\n\n[![NPM VERSION](https://img.shields.io/npm/v/@avixiii/bundle-size-tracker)](https://www.npmjs.com/package/@avixiii/bundle-size-tracker)\n![NPM TOTAL DOWNLOADS](https://img.shields.io/npm/dt/@avixiii/bundle-size-tracker)\n[![LICENSE: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TYPESCRIPT READY](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)\n\n\nA powerful and flexible tool to track and analyze JavaScript bundle sizes across different build tools. Monitor your bundle sizes, set size limits, and get detailed reports with AI-powered optimization suggestions.\n\n## Features\n\n### Core Features 🎯\n- Track bundle sizes during build process\n- Support for multiple build tools:\n  - Webpack\n  - Rollup\n  - Vite\n- Multiple report formats:\n  - Console output\n  - JSON reports\n  - HTML reports with visualizations\n- File compression analysis:\n  - Gzip compression\n  - Brotli compression\n- Custom size limits per bundle\n- Easy CI/CD integration\n- Full TypeScript support\n- Configurable alerts and warnings\n\n### AI-Powered Optimization 🤖 (New in v0.1.2)\n- Intelligent bundle analysis using OpenAI GPT models\n- Smart code splitting suggestions\n- Tree shaking opportunities detection\n- Dependency analysis and recommendations\n- Performance impact predictions\n- Automated optimization suggestions\n\n### History and Alerts 📊 (New in v0.1.3)\n- Track bundle size changes over time\n- Export and import history data\n- Interactive size visualizations\n- Configurable alerts for:\n  - Total size increases\n  - Individual chunk size changes\n  - Maximum size thresholds\n- Beautiful HTML reports with charts\n- Historical trend analysis\n- Size comparison across builds\n\n### Real User Monitoring 📈 (New in v0.1.4)\n- Track real-world performance metrics:\n  - Load time\n  - First Contentful Paint (FCP)\n  - Largest Contentful Paint (LCP)\n  - First Input Delay (FID)\n  - Cumulative Layout Shift (CLS)\n  - Time to Interactive (TTI)\n  - Total Blocking Time (TBT)\n- Device and network analysis:\n  - Device type detection\n  - Network connection speed\n  - Hardware capabilities\n- Performance recommendations:\n  - Automated performance insights\n  - Device-specific optimizations\n  - Network-based suggestions\n- Customizable data collection:\n  - Configurable sampling rate\n  - Pattern-based URL filtering\n  - Custom endpoint support\n\n## Installation\n\n```bash\nnpm install @avixiii/bundle-size-tracker --save-dev\n# or\nyarn add -D @avixiii/bundle-size-tracker\n# or\npnpm add -D @avixiii/bundle-size-tracker\n```\n\n## Quick Start\n\n### Webpack\n\n```javascript\n// webpack.config.js\nconst { BundleSizeTrackerPlugin } = require('@avixiii/bundle-size-tracker');\n\nmodule.exports = {\n  // ... other config\n  plugins: [\n    new BundleSizeTrackerPlugin({\n      maxSize: 500, // 500KB limit\n      outputFormat: 'html',\n      outputPath: './reports',\n      history: {\n        enabled: true,\n        thresholds: {\n          totalSizeIncreaseThreshold: 10, // 10% increase warning\n          maxTotalSize: 5 * 1024 * 1024 // 5MB limit\n        }\n      },\n      rum: {\n        enabled: true,\n        sampleRate: 0.1, // Sample 10% of users\n        endpoint: '/api/rum', // Optional custom endpoint\n        excludePatterns: ['/api/*', '/static/*'] // Optional URL patterns to exclude\n      }\n    })\n  ]\n};\n```\n\n### Rollup\n\n```javascript\n// rollup.config.js\nimport { bundleSizeTracker } from '@avixiii/bundle-size-tracker';\n\nexport default {\n  // ... other config\n  plugins: [\n    bundleSizeTracker({\n      maxSize: 300,\n      outputFormat: 'json',\n      history: {\n        enabled: true,\n        thresholds: {\n          chunkSizeIncreaseThreshold: 15 // 15% chunk size increase warning\n        }\n      },\n      rum: {\n        enabled: true,\n        sampleRate: 0.5 // Sample 50% of users\n      }\n    })\n  ]\n};\n```\n\n### Vite\n\n```javascript\n// vite.config.js\nimport { bundleSizeTrackerVite } from '@avixiii/bundle-size-tracker';\n\nexport default {\n  plugins: [\n    bundleSizeTrackerVite({\n      maxSize: 400,\n      history: {\n        enabled: true,\n        exportPath: './bundle-history'\n      },\n      rum: {\n        enabled: true,\n        sampleRate: 1, // Monitor all users\n        excludePatterns: ['/admin/*'] // Exclude admin pages\n      }\n    })\n  ]\n};\n```\n\n## Configuration\n\n### History Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `history.enabled` | boolean | `false` | Enable history tracking |\n| `history.maxEntries` | number | `100` | Maximum number of history entries to keep |\n| `history.thresholds.totalSizeIncreaseThreshold` | number | `10` | Percentage threshold for total size increase warning |\n| `history.thresholds.chunkSizeIncreaseThreshold` | number | `15` | Percentage threshold for chunk size increase warning |\n| `history.thresholds.maxTotalSize` | number | `5242880` | Maximum allowed total size in bytes (5MB) |\n| `history.thresholds.maxChunkSize` | number | `2097152` | Maximum allowed chunk size in bytes (2MB) |\n\n### RUM Configuration\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `rum.enabled` | boolean | `false` | Enable Real User Monitoring |\n| `rum.sampleRate` | number | `1` | Percentage of users to monitor (0 to 1) |\n| `rum.endpoint` | string | undefined | Custom endpoint for sending RUM data |\n| `rum.excludePatterns` | string[] | `[]` | URL patterns to exclude from monitoring |\n\n### AI Configuration\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `ai.enabled` | boolean | `false` | Enable AI analysis |\n| `ai.model` | string | `'gpt-3.5-turbo'` | OpenAI model to use |\n| `ai.temperature` | number | `0.7` | Model temperature |\n\n### Compression Options\n\n```javascript\n{\n  compression: {\n    gzip: true,\n    brotli: true,\n    raw: true\n  },\n  reportFormats: ['json', 'html', 'console']\n}\n```\n\n### Custom Rules\n\nYou can set specific size limits for different bundles:\n\n```javascript\n{\n  rules: [\n    {\n      pattern: 'vendor', // or /vendor\\..*\\.js$/\n      maxSize: 800 // 800KB limit for vendor bundles\n    },\n    {\n      pattern: 'main',\n      maxSize: 200 // 200KB limit for main bundle\n    }\n  ]\n}\n```\n\n## Report Examples\n\n### Console Output\n```\nBundle Size Report\n\nGenerated: 2025-01-13T15:52:18+07:00\nStatus: PASS \nTotal Size: 264.09 KB\n\nmain.js\n  Raw: 120.5 KB\n  Gzip: 45.2 KB\n  Brotli: 40.1 KB\n  Status: PASS \n\nvendor.js\n  Raw: 143.59 KB\n  Gzip: 52.8 KB\n  Brotli: 48.3 KB\n  Status: PASS \n\nPerformance Metrics (RUM):\n  Load Time (median): 1.2s\n  First Contentful Paint: 0.8s\n  Largest Contentful Paint: 2.1s\n  First Input Delay: 45ms\n  Cumulative Layout Shift: 0.05\n```\n\n## License\n\nMIT  [avixiii](https://github.com/avixiii-dev)\n","readmeFilename":"README.md"}