{"_id":"@atom63/resume","_rev":"6-c77b31ebaa0b7dac09a338d01c5a2973","name":"@atom63/resume","dist-tags":{"latest":"0.2.4"},"versions":{"0.1.0":{"name":"@atom63/resume","version":"0.1.0","keywords":["resume","cv","mdx","react","pdf","pagination","ai","agent","coding-agent","claude"],"license":"MIT","_id":"@atom63/resume@0.1.0","maintainers":[{"name":"atom63","email":"yz.atom63@gmail.com"}],"homepage":"https://github.com/atom63/resume/tree/main/packages/resume#readme","bugs":{"url":"https://github.com/atom63/resume/issues"},"dist":{"shasum":"bdd705f6b16e8010f802ee4a61bf307ada403bbf","tarball":"https://registry.npmjs.org/@atom63/resume/-/resume-0.1.0.tgz","fileCount":23,"integrity":"sha512-b3SxQBOfG+l7hlr03/glFP79T1IrpLqPDWNuFeHghic+/4FaYUDrj+xGbyz0iuDQgAXj2qdLr9IHf5yiDT1DIQ==","signatures":[{"sig":"MEQCIBg6FlxIkqM/MWM0Q1/zua534702OSl1vcMjZ6mFfln7AiASBwjZSGrK147UFFuU+hYSZSbVQFkl62TH8yClP0ORNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207355},"main":"./dist/index.js","type":"module","_from":"file:atom63-resume-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","typescript":"./src/index.ts"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js","typescript":"./src/vite/index.ts"},"./editor":{"types":"./dist/editor/index.d.ts","import":"./dist/editor/index.js","typescript":"./src/editor/index.ts"},"./styles":{"types":"./src/styles/styles.d.ts","default":"./src/styles/styles.css"},"./tokens":{"types":"./src/styles/tokens.d.ts","default":"./src/styles/tokens.css"}},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atom63","email":"yz.atom63@gmail.com"},"_resolved":"/private/var/folders/gg/f42j2fvn1zg1rx4rd_xvyh6w0000gn/T/35d39c88f7c44130c298adb047373b8c/atom63-resume-0.1.0.tgz","_integrity":"sha512-b3SxQBOfG+l7hlr03/glFP79T1IrpLqPDWNuFeHghic+/4FaYUDrj+xGbyz0iuDQgAXj2qdLr9IHf5yiDT1DIQ==","repository":{"url":"git+https://github.com/atom63/resume.git","type":"git","directory":"packages/resume"},"_npmVersion":"11.8.0","description":"Write resumes and CVs as MDX — a paginated, print-ready document engine + viewer for React, styled with a self-contained paper/document token system.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"25.6.0","dependencies":{"clsx":"^2.1.1","@mdx-js/mdx":"^3.1.1","lucide-react":"^1.18.0","@mdx-js/react":"^3.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"29.1.1","react":"^19.1.1","vitest":"^4.1.8","react-dom":"^19.1.1","typescript":"~5.8.3","@types/node":"^22.10.0","@types/react":"^19.1.13","@biomejs/biome":"2.4.6","@atom63/tsconfig":"0.1.0","@types/react-dom":"^19.1.9","@atom63/biome-config":"0.1.0","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@testing-library/jest-dom":"6.9.1"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^19.1.0","react-dom":"^19.1.0"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/resume_0.1.0_1782851160505_0.07041532742635592","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@atom63/resume","version":"0.2.0","keywords":["resume","cv","mdx","react","pdf","pagination","ai","agent","coding-agent","claude"],"license":"MIT","_id":"@atom63/resume@0.2.0","maintainers":[{"name":"atom63","email":"yz.atom63@gmail.com"}],"homepage":"https://github.com/atom63/resume/tree/main/packages/resume#readme","bugs":{"url":"https://github.com/atom63/resume/issues"},"dist":{"shasum":"48c096127f0903b29ed43753076204f361923bfc","tarball":"https://registry.npmjs.org/@atom63/resume/-/resume-0.2.0.tgz","fileCount":23,"integrity":"sha512-ZjvECKI+Rzo51z+Ko+Ax6qX05q6mR9MXTGH2LaTZkRH3kWGhBPq65P3Zg9kjfxVG6wUXFIBTEvlu3Am5eVpmzA==","signatures":[{"sig":"MEUCIQD4CVv3tfniUQWqy+3ltlgit3GFnMN3jTi1eS9jognp7QIgH/uRjIiZDe7ZBSNewSFCLoHbizAWm5i4nQECp9bnCdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211995},"main":"./dist/index.js","type":"module","_from":"file:atom63-resume-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","typescript":"./src/index.ts"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js","typescript":"./src/vite/index.ts"},"./editor":{"types":"./dist/editor/index.d.ts","import":"./dist/editor/index.js","typescript":"./src/editor/index.ts"},"./styles":{"types":"./src/styles/styles.d.ts","default":"./src/styles/styles.css"},"./tokens":{"types":"./src/styles/tokens.d.ts","default":"./src/styles/tokens.css"}},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atom63","email":"yz.atom63@gmail.com"},"_resolved":"/private/var/folders/gg/f42j2fvn1zg1rx4rd_xvyh6w0000gn/T/6aa52915e1123f22bc64e0f753773ba0/atom63-resume-0.2.0.tgz","_integrity":"sha512-ZjvECKI+Rzo51z+Ko+Ax6qX05q6mR9MXTGH2LaTZkRH3kWGhBPq65P3Zg9kjfxVG6wUXFIBTEvlu3Am5eVpmzA==","repository":{"url":"git+https://github.com/atom63/resume.git","type":"git","directory":"packages/resume"},"_npmVersion":"11.8.0","description":"Write resumes and CVs as MDX — a paginated, print-ready document engine + viewer for React, styled with a self-contained paper/document token system.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"25.6.0","dependencies":{"clsx":"^2.1.1","@mdx-js/mdx":"^3.1.1","lucide-react":"^1.18.0","@mdx-js/react":"^3.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"29.1.1","react":"^19.1.1","vitest":"^4.1.8","react-dom":"^19.1.1","typescript":"~5.8.3","@types/node":"^22.10.0","@types/react":"^19.1.13","@biomejs/biome":"2.4.6","@atom63/tsconfig":"0.1.0","@types/react-dom":"^19.1.9","@atom63/biome-config":"0.1.0","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@testing-library/jest-dom":"6.9.1"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^19.1.0","react-dom":"^19.1.0"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/resume_0.2.0_1782854828676_0.7235883987478511","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@atom63/resume","version":"0.2.1","keywords":["resume","cv","mdx","react","pdf","pagination","ai","agent","coding-agent","claude"],"license":"MIT","_id":"@atom63/resume@0.2.1","maintainers":[{"name":"atom63","email":"yz.atom63@gmail.com"}],"homepage":"https://github.com/atom63/resume/tree/main/packages/resume#readme","bugs":{"url":"https://github.com/atom63/resume/issues"},"dist":{"shasum":"b71bab6877205e940581e1bc8cc1f7b36189b1c2","tarball":"https://registry.npmjs.org/@atom63/resume/-/resume-0.2.1.tgz","fileCount":23,"integrity":"sha512-P/9mg5YToip6CLps20khi24wgwrECciQDyZlOumJptho43Gvzubp9Un1x4ADcHqEtN6bt+jdzGV32/H1BbHxeA==","signatures":[{"sig":"MEYCIQDrdKfb8A9nMNp3s2x1JqXJqBZiIHPMCaH4f33GIl/VxAIhAKcpn4CChg+QN81TAUmSTwZVoQprOLQ2EQ/c8DH7xIWm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190702},"main":"./dist/index.js","type":"module","_from":"file:atom63-resume-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","typescript":"./src/index.ts"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js","typescript":"./src/vite/index.ts"},"./editor":{"types":"./dist/editor/index.d.ts","import":"./dist/editor/index.js","typescript":"./src/editor/index.ts"},"./styles":{"types":"./src/styles/styles.d.ts","default":"./src/styles/styles.css"},"./tokens":{"types":"./src/styles/tokens.d.ts","default":"./src/styles/tokens.css"}},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atom63","email":"yz.atom63@gmail.com"},"_resolved":"/private/var/folders/gg/f42j2fvn1zg1rx4rd_xvyh6w0000gn/T/d52916d632c54e9d0f197c57b9d56dac/atom63-resume-0.2.1.tgz","_integrity":"sha512-P/9mg5YToip6CLps20khi24wgwrECciQDyZlOumJptho43Gvzubp9Un1x4ADcHqEtN6bt+jdzGV32/H1BbHxeA==","repository":{"url":"git+https://github.com/atom63/resume.git","type":"git","directory":"packages/resume"},"_npmVersion":"11.8.0","description":"Write resumes and CVs as MDX — a paginated, print-ready document engine + viewer for React, styled with a self-contained paper/document token system.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"25.6.0","dependencies":{"clsx":"^2.1.1","@mdx-js/mdx":"^3.1.1","lucide-react":"^1.18.0","@mdx-js/react":"^3.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"29.1.1","react":"^19.1.1","vitest":"^4.1.8","react-dom":"^19.1.1","typescript":"~5.8.3","@types/node":"^22.10.0","@types/react":"^19.1.13","@biomejs/biome":"2.4.6","@atom63/tsconfig":"0.1.0","@types/react-dom":"^19.1.9","@atom63/biome-config":"0.1.0","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@testing-library/jest-dom":"6.9.1"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^19.1.0","react-dom":"^19.1.0"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/resume_0.2.1_1782860555334_0.4552535743114112","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@atom63/resume","version":"0.2.2","keywords":["resume","cv","mdx","react","pdf","pagination","ai","agent","coding-agent","claude"],"license":"MIT","_id":"@atom63/resume@0.2.2","maintainers":[{"name":"atom63","email":"yz.atom63@gmail.com"}],"homepage":"https://github.com/atom63/resume/tree/main/packages/resume#readme","bugs":{"url":"https://github.com/atom63/resume/issues"},"dist":{"shasum":"e44ffcfa53bbecaba6a2772c38c0706468b0167e","tarball":"https://registry.npmjs.org/@atom63/resume/-/resume-0.2.2.tgz","fileCount":23,"integrity":"sha512-CgzwmsEGKgzIoBxV/whuozOSqmD5SIf4r5ShvF+A4B7eq8TzKBryEpoInw9ApMjJxPPLo0MfhxyFVp/yZmMQZQ==","signatures":[{"sig":"MEYCIQCJ0Nz6NuRvZ7EQGkIMrFaUDcMWIdYSbYQl/vLhvwS3zQIhAJj/SJqj3jzNlBuQkXG04MrtWKTyOZ9tXDRdWUVvRLfN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192494},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","typescript":"./src/index.ts"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js","typescript":"./src/vite/index.ts"},"./editor":{"types":"./dist/editor/index.d.ts","import":"./dist/editor/index.js","typescript":"./src/editor/index.ts"},"./styles":{"types":"./src/styles/styles.d.ts","default":"./src/styles/styles.css"},"./tokens":{"types":"./src/styles/tokens.d.ts","default":"./src/styles/tokens.css"}},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atom63","email":"yz.atom63@gmail.com"},"repository":{"url":"git+https://github.com/atom63/resume.git","type":"git","directory":"packages/resume"},"_npmVersion":"11.8.0","description":"Write resumes and CVs as MDX — a paginated, print-ready document engine + viewer for React, styled with a self-contained paper/document token system.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"25.6.0","dependencies":{"clsx":"^2.1.1","@mdx-js/mdx":"^3.1.1","lucide-react":"^1.18.0","@mdx-js/react":"^3.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"29.1.1","react":"^19.1.1","vitest":"^4.1.8","react-dom":"^19.1.1","typescript":"~5.8.3","@types/node":"^22.10.0","@types/react":"^19.1.13","@biomejs/biome":"2.4.6","@atom63/tsconfig":"workspace:*","@types/react-dom":"^19.1.9","@atom63/biome-config":"workspace:*","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@testing-library/jest-dom":"6.9.1"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^19.1.0","react-dom":"^19.1.0"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/resume_0.2.2_1782874300949_0.9639561209322451","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@atom63/resume","version":"0.2.3","keywords":["resume","cv","mdx","react","pdf","pagination","ai","agent","coding-agent","claude"],"license":"MIT","_id":"@atom63/resume@0.2.3","maintainers":[{"name":"atom63","email":"yz.atom63@gmail.com"}],"homepage":"https://github.com/atom63/resume/tree/main/packages/resume#readme","bugs":{"url":"https://github.com/atom63/resume/issues"},"dist":{"shasum":"1d9349881eb0c9a39a920e1efcb7bfa443ee37ea","tarball":"https://registry.npmjs.org/@atom63/resume/-/resume-0.2.3.tgz","fileCount":23,"integrity":"sha512-bdd0IXWHWrUavHdbEigNZPBSQSjeu98Hq3sVkWE6saopwI6b38kDxJf4WbRZREaEGpilvPZJ7hZ68PhLzYxNXQ==","signatures":[{"sig":"MEUCIQCmIshIYE9FLEmykQyLCUGj84uijaBys7uIUk97FcMPYwIgX/glE/+d0W6LExYmQqIJT20R+XMcSzCsaesabAuvlPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195044},"main":"./dist/index.js","type":"module","_from":"file:atom63-resume-0.2.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","typescript":"./src/index.ts"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js","typescript":"./src/vite/index.ts"},"./editor":{"types":"./dist/editor/index.d.ts","import":"./dist/editor/index.js","typescript":"./src/editor/index.ts"},"./styles":{"types":"./src/styles/styles.d.ts","default":"./src/styles/styles.css"},"./tokens":{"types":"./src/styles/tokens.d.ts","default":"./src/styles/tokens.css"}},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atom63","email":"yz.atom63@gmail.com"},"_resolved":"/private/var/folders/gg/f42j2fvn1zg1rx4rd_xvyh6w0000gn/T/26c5bc698bcd478cfc8f8b2745ee5ef8/atom63-resume-0.2.3.tgz","_integrity":"sha512-bdd0IXWHWrUavHdbEigNZPBSQSjeu98Hq3sVkWE6saopwI6b38kDxJf4WbRZREaEGpilvPZJ7hZ68PhLzYxNXQ==","repository":{"url":"git+https://github.com/atom63/resume.git","type":"git","directory":"packages/resume"},"_npmVersion":"11.8.0","description":"Write resumes and CVs as MDX — a paginated, print-ready document engine + viewer for React, styled with a self-contained paper/document token system.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"25.6.0","dependencies":{"clsx":"^2.1.1","@mdx-js/mdx":"^3.1.1","lucide-react":"^1.18.0","@mdx-js/react":"^3.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"29.1.1","react":"^19.1.1","vitest":"^4.1.8","react-dom":"^19.1.1","typescript":"~5.8.3","@types/node":"^22.10.0","@types/react":"^19.1.13","@biomejs/biome":"2.4.6","@atom63/tsconfig":"0.1.0","@types/react-dom":"^19.1.9","@atom63/biome-config":"0.1.0","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@testing-library/jest-dom":"6.9.1"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^19.1.0","react-dom":"^19.1.0"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/resume_0.2.3_1782922163480_0.7884231653634826","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@atom63/resume","version":"0.2.4","license":"MIT","type":"module","description":"Write resumes and CVs as MDX — a paginated, print-ready document engine + viewer for React, styled with a self-contained paper/document token system.","keywords":["resume","cv","mdx","react","pdf","pagination","ai","agent","coding-agent","claude"],"repository":{"type":"git","url":"git+https://github.com/atom63/resume.git","directory":"packages/resume"},"bugs":{"url":"https://github.com/atom63/resume/issues"},"homepage":"https://github.com/atom63/resume/tree/main/packages/resume#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"typescript":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./editor":{"typescript":"./src/editor/index.ts","types":"./dist/editor/index.d.ts","import":"./dist/editor/index.js"},"./vite":{"typescript":"./src/vite/index.ts","types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./styles":{"types":"./src/styles/styles.d.ts","default":"./src/styles/styles.css"},"./tokens":{"types":"./src/styles/tokens.d.ts","default":"./src/styles/tokens.css"}},"sideEffects":["*.css"],"dependencies":{"@mdx-js/mdx":"^3.1.1","@mdx-js/react":"^3.1.1","clsx":"^2.1.1","lucide-react":"^1.18.0"},"peerDependencies":{"react":"^19.1.0","react-dom":"^19.1.0","vite":"^5 || ^6 || ^7"},"peerDependenciesMeta":{"vite":{"optional":true}},"devDependencies":{"@biomejs/biome":"2.4.6","@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"^22.10.0","@types/react":"^19.1.13","@types/react-dom":"^19.1.9","@vitejs/plugin-react":"5.1.4","jsdom":"29.1.1","react":"^19.1.1","react-dom":"^19.1.1","tsup":"^8.3.5","typescript":"~5.8.3","vitest":"^4.1.8","@atom63/biome-config":"0.1.0","@atom63/tsconfig":"0.1.0"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","typecheck":"tsc --noEmit","lint":"biome check ."},"_id":"@atom63/resume@0.2.4","_integrity":"sha512-JX16E1Qn82z+wKUPR2wYm38f0DwC9Ryx3OdAPLoqVKGn9DLhJqb46AvOLqTO3V+2nRZIzT80GlL8V63ZppBPxg==","_resolved":"/private/var/folders/gg/f42j2fvn1zg1rx4rd_xvyh6w0000gn/T/c759389178bb19394a40a6a91d120224/atom63-resume-0.2.4.tgz","_from":"file:atom63-resume-0.2.4.tgz","_nodeVersion":"25.6.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-JX16E1Qn82z+wKUPR2wYm38f0DwC9Ryx3OdAPLoqVKGn9DLhJqb46AvOLqTO3V+2nRZIzT80GlL8V63ZppBPxg==","shasum":"14e55480256988737ed462e8c55d5224eff7ce36","tarball":"https://registry.npmjs.org/@atom63/resume/-/resume-0.2.4.tgz","fileCount":23,"unpackedSize":197046,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGNvvnCyhbCjvAp7IX3HaM2WipA1sBaGyNmmoHrVSBHbAiEAscQqoMx/2FFFb9TPbBZxAJGDM5wCiJL6jdr9vHYKJjU="}]},"_npmUser":{"name":"atom63","email":"yz.atom63@gmail.com"},"directories":{},"maintainers":[{"name":"atom63","email":"yz.atom63@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/resume_0.2.4_1782939932329_0.42687457525197914"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-30T20:26:00.342Z","modified":"2026-07-01T21:05:32.656Z","0.1.0":"2026-06-30T20:26:00.627Z","0.2.0":"2026-06-30T21:27:08.814Z","0.2.1":"2026-06-30T23:02:35.483Z","0.2.2":"2026-07-01T02:51:41.433Z","0.2.3":"2026-07-01T16:09:23.607Z","0.2.4":"2026-07-01T21:05:32.471Z"},"bugs":{"url":"https://github.com/atom63/resume/issues"},"license":"MIT","homepage":"https://github.com/atom63/resume/tree/main/packages/resume#readme","keywords":["resume","cv","mdx","react","pdf","pagination","ai","agent","coding-agent","claude"],"repository":{"type":"git","url":"git+https://github.com/atom63/resume.git","directory":"packages/resume"},"description":"Write resumes and CVs as MDX — a paginated, print-ready document engine + viewer for React, styled with a self-contained paper/document token system.","maintainers":[{"name":"atom63","email":"yz.atom63@gmail.com"}],"readme":"<!--\n  MAINTAINER / AGENT NOTE — this README lives in TWO places that are NOT auto-synced:\n    1. packages/resume/README.md (THIS file) — the npm package README and the\n       monorepo source of truth. Synced verbatim into the public mirror by\n       scripts/release-resume-public.sh (under packages/resume/).\n    2. github.com/atom63/resume → /README.md — the mirror's ROOT landing page,\n       a SEPARATE hand-maintained file that the sync script does NOT overwrite.\n  When you change the messaging here, update the mirror's landing README too.\n  See scripts/release-resume-public.sh (SYNC_PATHS note) for the full picture.\n-->\n\n# @atom63/resume\n\n**A render utility for resumes and CVs — you bring the content (from any LLM or coding agent), it makes the paginated, ATS-friendly PDF.**\n\n**▸ Try it live — [resume.atom63.io](https://resume.atom63.io/)** — edit MDX in the browser (by hand or with any LLM) and export a print-ready PDF.\n\n[![The ResumeViewer rendering a resume](https://raw.githubusercontent.com/atom63/resume/main/packages/resume/media/demo.png)](https://resume.atom63.io/)\n\n## What it is\n\n- **A render utility, not a resume maker.** You bring the words — write them yourself or with any LLM / coding agent — and it typesets your MDX into real 8.5×11″ (or A4) pages, a zoom/pan viewer, and a clean, **selectable-text (ATS-friendly)** PDF.\n- **Made for the coding-agent workflow.** The document is *code* built from a small grammar of primitives, so an agent can draft and revise it from your notes — and the `.mdx` stays your source of truth.\n- **Tailwind-free and token-themeable.** Restyle the whole document — resume and CV together — by overriding the `--doc-*` design tokens.\n\n## What it's not\n\n- **Not a resume writer or reviewer.** It doesn't generate, score, critique, or proofread your content — that's on you and the LLM of your choice. It owns the render, not the resume.\n- **Not a WYSIWYG builder.** You (or your agent) write MDX; there's no drag-and-drop canvas. An optional live-preview editor ships in `@atom63/resume/editor` — the source is still MDX.\n- **Not a hosted app.** No account, backend, or template marketplace; it's a library you run in your own React/Vite project.\n- **Not a general page-layout engine.** It paginates the resume/CV grammar (`<Header>`, `<Columns>`, `<Section>`…), not arbitrary HTML.\n\n> Status: `0.2.x`. The API may shift before `1.0`. See [CHANGELOG](./CHANGELOG.md).\n\n## Two ways to use it\n\n### 1. Scaffold a project\n\n```bash\nnpm create @atom63/resume@latest my-resume\ncd my-resume && npm install && npm run dev\n```\n\nYou get a standalone Vite app with starter `src/resume.mdx` (two-column) and\n`src/cv.mdx` (single-column). Point a coding agent at those files to write the\ncontent; Save to PDF from the viewer toolbar.\n\n### 2. Add the module to a React app\n\n```bash\nnpm i @atom63/resume\n```\n\n```tsx\nimport { ResumeViewer } from '@atom63/resume'\nimport '@atom63/resume/styles' // import the styles ONCE in your app\nimport Resume from './resume.mdx'\n\nexport default () => <ResumeViewer Content={Resume} pdfFilename=\"Resume\" pageSize=\"letter\" />\n```\n\nYour app needs the MDX + raw-import Vite wiring shown in the scaffolded\n`vite.config.ts` (`@mdx-js/rollup` + `mdxRawPlugin` from `@atom63/resume/vite`).\n\n## Exports\n\n| Export | What it is |\n|---|---|\n| `@atom63/resume` | `ResumeViewer`, the `PaginatedResume` engine + MDX primitives, `packIntoPages`, `useResumeViewport`, `getPageGeometry` |\n| `@atom63/resume/editor` | `ResumeEditor` + `MdxLivePreview` — optional in-app live MDX editor |\n| `@atom63/resume/vite` | `mdxRawPlugin` (so `import src from './resume.mdx?raw'` works) + `resumeWriteBackPlugin` |\n| `@atom63/resume/styles` | import-and-done stylesheet (tokens + document + viewer chrome) |\n| `@atom63/resume/tokens` | just the `--doc-*` design tokens |\n\n## The MDX grammar\n\n```mdx\n<ResumeDocument>\n  <Header>\n    <HeaderLeft># Jane Doe</HeaderLeft>\n    <HeaderRight>Senior Product Engineer</HeaderRight>\n  </Header>\n  <Columns>\n    <Sidebar>\n      ### Skills\n      - TypeScript, React\n    </Sidebar>\n    <Main>\n      ### Experience\n      <Group>\n        #### Engineer @ Acme\n        _2022 – Present_\n        - Built things.\n      </Group>\n    </Main>\n  </Columns>\n  <Footer>jane@example.com</Footer>\n</ResumeDocument>\n```\n\nSingle-column CVs put everything in `<Main>` and use `<Section label=\"…\">` +\n`<Entry year role>` record rows.\n\n## Restyle (modify)\n\nThe look is a **Tailwind-free** token system. Override any token, scoped to\n`[data-resume-document]` (in your app's CSS, loaded after `@atom63/resume/styles`):\n\n```css\n[data-resume-document] {\n  --doc-text: 11px; /* body size */\n  --doc-ink: #111; /* headings + bold */\n  --doc-ink-body: #404040; /* body copy */\n  --doc-resume-cols: 1fr 2fr; /* sidebar : main ratio */\n  --doc-font: 'Charter', Georgia, serif; /* or `inherit` to follow the host font */\n}\n```\n\n- **Paper size** is the `pageSize` prop (`'letter' | 'a4'`), not a token — it drives\n  pagination, the on-screen page, and the PDF.\n\n## Extend\n\nAdd your own section types by passing a custom MDX component map to\n`ResumeViewer` (it merges over the defaults):\n\n```tsx\nimport { ResumeViewer, resumeMdxComponents } from '@atom63/resume'\n\nfunction SkillBar({ label, level }: { label: string; level: number }) {\n  return (\n    <div className=\"doc-meta-grid\">\n      <span className=\"doc-meta\">{label}</span>\n      <div style={{ background: '#eee', height: 4 }}>\n        <div style={{ width: `${level}%`, height: 4, background: '#111' }} />\n      </div>\n    </div>\n  )\n}\n\n<ResumeViewer\n  Content={Resume}\n  components={{ ...resumeMdxComponents, SkillBar }}\n/>\n```\n\nThen use `<SkillBar label=\"React\" level={90} />` in your MDX. The `.doc-*` classes\n(`doc-meta-grid`, `doc-meta`, `doc-body`, `doc-heading`, …) compose with the token\nsystem, so custom components stay on-brand. Each top-level child of a `<Sidebar>`\n/ `<Main>` is one pagination block, so pages can break between them.\n\n## Limitations\n\n- Markdown tables render unstyled (the engine ships no table styling).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}