{"_id":"@awaisbaig/age-calculator","_rev":"3-47c70fc761df9e86e41b1f1a21faa672","name":"@awaisbaig/age-calculator","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@awaisbaig/age-calculator","version":"1.0.0","keywords":["age-calculator","date","age","calculator","typescript","esm","react","angular","vue","svelte","framework-agnostic"],"author":{"name":"Awais Baig","email":"awaisbaig1711@gmail.com"},"license":"MIT","_id":"@awaisbaig/age-calculator@1.0.0","maintainers":[{"name":"awaisbaig","email":"awaisbaig1711@gmail.com"}],"homepage":"https://github.com/AwaisBaig17/age-calculator#readme","bugs":{"url":"https://github.com/AwaisBaig17/age-calculator/issues"},"dist":{"shasum":"b2ec008606031f0041fcfe9e170e8355e125795f","tarball":"https://registry.npmjs.org/@awaisbaig/age-calculator/-/age-calculator-1.0.0.tgz","fileCount":7,"integrity":"sha512-Z4UXLrvbrVO9CGFl1mwdfRZsj2XSbvtxsQpUQs6LRJtodCg0ksQWLVW+X0pOLSUWjgdMxWEMLczPmSGbJ5keMw==","signatures":[{"sig":"MEYCIQC64sAKO0+G6LFmP++UcsEtv5Ld2UvVHklCUzW2EFTKBAIhAMnnU4CFov0DHYHnR9qhLyO7VsSq8SgD+jmv93cfFTyE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24215},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=16"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"93c08bc4d4f061311a02e5e0d49d342ab4f79ce5","scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"awaisbaig","email":"awaisbaig1711@gmail.com"},"repository":{"url":"git+https://github.com/AwaisBaig17/age-calculator.git","type":"git"},"_npmVersion":"11.6.1","description":"Universal age calculator library for JavaScript/TypeScript - works with React, Angular, Vue, and all JS frameworks","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.6.2","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/age-calculator_1.0.0_1763458183742_0.6628856505636016","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@awaisbaig/age-calculator","version":"1.0.1","keywords":["age-calculator","date","age","calculator","typescript","esm","react","angular","vue","svelte","framework-agnostic"],"author":{"name":"Awais Baig","email":"awaisbaig1711@gmail.com"},"license":"MIT","_id":"@awaisbaig/age-calculator@1.0.1","maintainers":[{"name":"awaisbaig","email":"awaisbaig1711@gmail.com"}],"homepage":"https://github.com/AwaisBaig17/age-calculator#readme","bugs":{"url":"https://github.com/AwaisBaig17/age-calculator/issues"},"dist":{"shasum":"98ff01c3a337df0efea4d84eca531c18a2e6245d","tarball":"https://registry.npmjs.org/@awaisbaig/age-calculator/-/age-calculator-1.0.1.tgz","fileCount":7,"integrity":"sha512-JsC26encaLYOEbLzQGAkgQYLV6ijRjI6KyQ1/mtqBwA2d5ky5+TVuXtzs/sxasch7iV1JW3USf69WY8OTmUoIA==","signatures":[{"sig":"MEUCIQCSEk5cHMC3cioCvmoEHpXYd7PkSkEpuB/NHFqIpfBq1gIgNSE/i055y6ZJVOvOV3TID+gLMrplq8thp6gnBiFfnE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24215},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=16"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"e0b46ab58142159a5c5d2484a25abd1c84a9d96e","scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"awaisbaig","email":"awaisbaig1711@gmail.com"},"repository":{"url":"git+https://github.com/AwaisBaig17/age-calculator.git","type":"git"},"_npmVersion":"11.6.1","description":"Universal age calculator library for JavaScript/TypeScript - works with React, Angular, Vue, and all JS frameworks","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.6.2","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/age-calculator_1.0.1_1763460803095_0.6235291819755242","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@awaisbaig/age-calculator","version":"1.0.3","description":"Universal age calculator library for JavaScript/TypeScript - works with React, Angular, Vue, and all JS frameworks","keywords":["age-calculator","date","age","calculator","typescript","esm","react","angular","vue","svelte","framework-agnostic"],"author":{"name":"Awais Baig","email":"awaisbaig1711@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/AwaisBaig17/age-calculator.git"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.2","vitest":"^2.0.0","tsup":"^8.0.0"},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run build"},"sideEffects":false,"engines":{"node":">=16"},"_id":"@awaisbaig/age-calculator@1.0.3","gitHead":"c0032c1ea6e54cb85eebae3341e61b120bb26f97","bugs":{"url":"https://github.com/AwaisBaig17/age-calculator/issues"},"homepage":"https://github.com/AwaisBaig17/age-calculator#readme","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-lKpQxUZOnkNjCQB97xalxuuETcdAFT82vdzbrpG25vemFnn6sNCc2xWqjnzWmHjW32a5deYlk9AvXeznW0/m3g==","shasum":"6b1dc44c072e9703ed62ad3edb214b4349284a4d","tarball":"https://registry.npmjs.org/@awaisbaig/age-calculator/-/age-calculator-1.0.3.tgz","fileCount":7,"unpackedSize":24215,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDexx6ql449SkMNxU8AnA6AjRLR07CmuIrUDuk88lGcQgIhAOJO8EBuUVhKyoEkN4vsVcX275poCupy1rIRyC2Rx4/e"}]},"_npmUser":{"name":"awaisbaig","email":"awaisbaig1711@gmail.com"},"directories":{},"maintainers":[{"name":"awaisbaig","email":"awaisbaig1711@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/age-calculator_1.0.3_1763971512559_0.1624873148402628"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-18T09:29:43.623Z","modified":"2025-11-24T08:05:12.935Z","1.0.0":"2025-11-18T09:29:43.937Z","1.0.1":"2025-11-18T10:13:23.280Z","1.0.3":"2025-11-24T08:05:12.757Z"},"bugs":{"url":"https://github.com/AwaisBaig17/age-calculator/issues"},"author":{"name":"Awais Baig","email":"awaisbaig1711@gmail.com"},"license":"MIT","homepage":"https://github.com/AwaisBaig17/age-calculator#readme","keywords":["age-calculator","date","age","calculator","typescript","esm","react","angular","vue","svelte","framework-agnostic"],"repository":{"type":"git","url":"git+https://github.com/AwaisBaig17/age-calculator.git"},"description":"Universal age calculator library for JavaScript/TypeScript - works with React, Angular, Vue, and all JS frameworks","maintainers":[{"name":"awaisbaig","email":"awaisbaig1711@gmail.com"}],"readme":"# Universal Age Calculator\n\n[![npm version](https://badge.fury.io/js/%40awaisbaig%2Fage-calculator.svg)](https://badge.fury.io/js/%40awaisbaig%2Fage-calculator)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA modern, **framework-agnostic** age calculator library for JavaScript and TypeScript. Works seamlessly with **React**, **Angular**, **Vue**, **Svelte**, and vanilla JavaScript. This is an enhanced version of the original [@dipaktelangre/age-calculator](https://www.npmjs.com/package/@dipaktelangre/age-calculator) package, rebuilt from the ground up with modern ESM support.\n\n## Features\n\n🌐 **Framework Agnostic** - Works with React, Angular, Vue, Svelte, and vanilla JS  \n🎯 **TypeScript First** - Full TypeScript support with type definitions  \n📦 **Tree-shakeable** - Optimized bundle size with ES modules  \n🧪 **Well Tested** - Comprehensive unit tests with Vitest  \n🚀 **Easy to Use** - Simple and intuitive static API  \n⚡ **Zero Dependencies** - Lightweight with no external dependencies  \n📱 **Modern Build** - ESM and CommonJS support via tsup  \n\n## Installation\n\n```bash\nnpm install @awaisbaig/age-calculator\n```\n\n## Quick Start\n\n### Vanilla JavaScript / TypeScript\n\n```typescript\nimport { AgeCalculator } from '@awaisbaig/age-calculator';\n\n// Get age breakdown\nconst age = AgeCalculator.getAge(new Date('1990-01-01'));\nconsole.log(age); // { years: 34, months: 6, days: 3 }\n\n// Get age in specific unit\nconst years = AgeCalculator.getAgeIn(new Date('1990-01-01'), 'years');\nconsole.log(years); // 34\n\n// Check if adult\nconst isAdult = AgeCalculator.isAdult(new Date('1990-01-01'));\nconsole.log(isAdult); // true\n```\n## API Reference\n\n### `AgeCalculator.getAge(dateOfBirth: Date, currentDate?: Date): AgeResult`\n\nCalculate age breakdown in years, months, and days.\n\n```typescript\nconst age = AgeCalculator.getAge(new Date('1990-01-01'));\n// Returns: { years: 34, months: 6, days: 3 }\n```\n\n**Parameters:**\n- `dateOfBirth` - Date of birth\n- `currentDate` - Optional. Current date (defaults to today)\n\n**Returns:** `AgeResult` object with `years`, `months`, and `days`\n\n---\n\n### `AgeCalculator.getAgeIn(dateOfBirth: Date, unit: AgeUnit, currentDate?: Date): number`\n\nCalculate age in a specific unit.\n\n```typescript\nconst years = AgeCalculator.getAgeIn(new Date('1990-01-01'), 'years');\n// Returns: 34\n\nconst months = AgeCalculator.getAgeIn(new Date('1990-01-01'), 'months');\n// Returns: 414\n\nconst weeks = AgeCalculator.getAgeIn(new Date('1990-01-01'), 'weeks');\n// Returns: 1800\n\nconst days = AgeCalculator.getAgeIn(new Date('1990-01-01'), 'days');\n// Returns: 12600\n```\n\n**Parameters:**\n- `dateOfBirth` - Date of birth\n- `unit` - Unit to calculate: `'years'` | `'months'` | `'weeks'` | `'days'` | `'hours'` | `'minutes'` | `'seconds'`\n- `currentDate` - Optional. Current date (defaults to today)\n\n**Returns:** Age as a number in the specified unit\n\n---\n\n### `AgeCalculator.isAdult(dateOfBirth: Date, currentDate?: Date): boolean`\n\nCheck if a person is an adult (18 years or older).\n\n```typescript\nconst adult = AgeCalculator.isAdult(new Date('2000-01-01'));\n// Returns: true\n```\n\n---\n\n### `AgeCalculator.getNextBirthday(dateOfBirth: Date, currentDate?: Date): Date`\n\nGet the date of the next birthday.\n\n```typescript\nconst nextBirthday = AgeCalculator.getNextBirthday(new Date('1990-12-25'));\n// Returns: Date object for next December 25th\n```\n\n---\n\n### `AgeCalculator.getDaysUntilNextBirthday(dateOfBirth: Date, currentDate?: Date): number`\n\nGet the number of days until the next birthday.\n\n```typescript\nconst daysUntil = AgeCalculator.getDaysUntilNextBirthday(new Date('1990-12-25'));\n// Returns: number of days\n```\n\n---\n\n### `AgeCalculator.getZodiacSign(dateOfBirth: Date): string`\n\nGet the zodiac sign based on date of birth.\n\n```typescript\nconst sign = AgeCalculator.getZodiacSign(new Date('1990-04-15'));\n// Returns: 'Aries'\n```\n\n## Development\n\n### Build the Library\n\n```bash\nnpm run build\n```\n\n### Run Tests\n\n```bash\nnpm test\n```\n\n### Watch Mode\n\n```bash\nnpm run test:watch\n```\n\n## TypeScript Support\n\nFull TypeScript support with exported types:\n\n```typescript\nimport { AgeCalculator, AgeResult, AgeUnit } from '@awaisbaig/age-calculator';\n\nconst age: AgeResult = AgeCalculator.getAge(new Date('1990-01-01'));\nconst unit: AgeUnit = 'years';\n```\n\n## Bundle Size\n\n- **ESM**: ~2KB (minified + gzipped)\n- **CJS**: ~2KB (minified + gzipped)\n- **Zero dependencies**\n\n## Browser Support\n\nWorks in all modern browsers and Node.js 16+:\n- Chrome (latest)\n- Firefox (latest)\n- Safari (latest)\n- Edge (latest)\n- Node.js 16+\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nMIT © Awais Baig\n\n## Credits\n\nInspired by the original [@dipaktelangre/age-calculator](https://github.com/dipaktelangre/age-calculator) package by Dipak Telangre.\n\n## Changelog\n\n### 1.0.0\n- Initial release\n- Framework-agnostic design\n- Full TypeScript support\n- ESM and CommonJS support\n- Enhanced API with additional methods\n- Comprehensive test coverage with Vitest\n- Zero dependencies\n- Modern build system with tsup\n","readmeFilename":"README.md"}