{"_id":"@boopathidev/easy-utils-ts","_rev":"2-638bfb8a3db0191a3b247c2f38971790","name":"@boopathidev/easy-utils-ts","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@boopathidev/easy-utils-ts","version":"1.0.0","keywords":["typescript","utils","helpers","crypto","otp","validation"],"license":"MIT","_id":"@boopathidev/easy-utils-ts@1.0.0","maintainers":[{"name":"boopathidev","email":"boopathit98@gmail.com"}],"dist":{"shasum":"7bfd8d93dfb9bf0c5fb435930dad08bc9720cd94","tarball":"https://registry.npmjs.org/@boopathidev/easy-utils-ts/-/easy-utils-ts-1.0.0.tgz","fileCount":7,"integrity":"sha512-WxtTfw4HPRZQub63Oozfx3q8/MQlsHM9YwOoPRgKbXbIt/d2PNjuIIJyk0N4DVEmiyyzjDJo2aeHdGQFodJqhQ==","signatures":[{"sig":"MEYCIQDtlmsXcjekIjeeNHv3Nt2nJLaywuP3mn8twohgCzjZSAIhAKKuYIV4iM3K6j8GTsA2GKueeHBGognlvJkLlVXtjRx/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102944},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"boopathidev","email":"boopathit98@gmail.com"},"_npmVersion":"10.9.4","description":"Lightweight TypeScript utility library","directories":{},"_nodeVersion":"22.21.1","dependencies":{"crypto-js":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0","@types/node":"^24.0.0","@types/crypto-js":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/easy-utils-ts_1.0.0_1781359410440_0.5184573064007354","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@boopathidev/easy-utils-ts","version":"1.0.1","description":"Lightweight TypeScript utility library","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist"},"keywords":["typescript","utils","helpers","crypto","otp","validation"],"license":"MIT","dependencies":{"crypto-js":"^4.2.0"},"devDependencies":{"@types/crypto-js":"^4.2.2","@types/node":"^24.0.0","tsup":"^8.0.0","typescript":"^5.0.0"},"_id":"@boopathidev/easy-utils-ts@1.0.1","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-ZsVo39EFxe8QeyHg5DFmPL97WMbX9YCFWcsCPezMgl6EN5W3CxMKTHUQl3xYvfhNUyVgmrGiopxgPKjn9cG0Mg==","shasum":"2063739d0ee5e290c600ee156a4a9647fb8310ad","tarball":"https://registry.npmjs.org/@boopathidev/easy-utils-ts/-/easy-utils-ts-1.0.1.tgz","fileCount":8,"unpackedSize":107300,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCSkFE6xPYNcmZHkFmM2W49/GKV1Dad+jNuTlsdAWdIhgIgONKnTpT9EmyTRdDS3wmZGrwf261rKzC6TnJalD2bFn8="}]},"_npmUser":{"name":"boopathidev","email":"boopathit98@gmail.com"},"directories":{},"maintainers":[{"name":"boopathidev","email":"boopathit98@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/easy-utils-ts_1.0.1_1781359562950_0.6393732671123724"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-13T14:03:30.322Z","modified":"2026-06-13T14:06:03.205Z","1.0.0":"2026-06-13T14:03:30.583Z","1.0.1":"2026-06-13T14:06:03.081Z"},"license":"MIT","keywords":["typescript","utils","helpers","crypto","otp","validation"],"description":"Lightweight TypeScript utility library","maintainers":[{"name":"boopathidev","email":"boopathit98@gmail.com"}],"readme":"# easy-utils-ts\n\nA lightweight and easy-to-use TypeScript utility library with common helper functions for string, array, object, date, crypto, OTP, validation, and number operations.\n\n## Features\n\n- ✅ String Utilities\n- ✅ Array Utilities\n- ✅ Object Utilities\n- ✅ Multi-Dimensional Object Search\n- ✅ Date & Time Utilities\n- ✅ OTP Generator\n- ✅ MD5 Hash\n- ✅ AES Encrypt / Decrypt\n- ✅ Number to Words (Indian Format)\n- ✅ Currency Formatter\n- ✅ Email Validation\n- ✅ Mobile Validation\n- ✅ PAN Validation\n- ✅ Aadhaar Validation\n- ✅ GST Validation\n- ✅ Random ID Generator\n- ✅ UUID Generator\n- ✅ Debounce & Throttle\n- ✅ TypeScript Support\n\n---\n\n## Installation\n\n### npm\n\n```bash\nnpm install easy-utils-ts\n```\n\n### Scoped Package\n\n```bash\nnpm install @boopathidev/easy-utils-ts\n```\n\n---\n\n## Import\n\n### Individual Functions\n\n```typescript\nimport {\n    capitalize,\n    generateOTP,\n    numberToWords\n} from \"easy-utils-ts\";\n```\n\n### Utils Object\n\n```typescript\nimport { Utils } from \"easy-utils-ts\";\n\nUtils.capitalize(\"hello world\");\n```\n\n---\n\n# String Utilities\n\n```typescript\ncapitalize(\"hello world\");\n// Hello world\n\ntitleCase(\"hello world\");\n// Hello World\n\nupper(\"hello\");\n// HELLO\n\nlower(\"HELLO\");\n// hello\n\nfirstLetter(\"Boopathi\");\n// B\n\ninitials(\"Boopathi Thangarasu\");\n// BT\n```\n\n---\n\n# Array Utilities\n\n```typescript\narrayEquals([1,2],[1,2]);\n\ndeepArrayEquals(\n    [{id:1}],\n    [{id:1}]\n);\n\nunique([1,2,2,3]);\n// [1,2,3]\n\nintersection(\n    [1,2,3],\n    [2,3,4]\n);\n// [2,3]\n```\n\n---\n\n# Object Utilities\n\n```typescript\ngetNestedValue(\n    obj,\n    \"user.profile.name\"\n);\n\nsetNestedValue(\n    obj,\n    \"user.profile.name\",\n    \"Boopathi\"\n);\n\ndeepClone(obj);\n```\n\n---\n\n# Multi-Dimensional Search\n\n```typescript\nfindValueByKey(\n    data,\n    \"city\"\n);\n\nfindByKeyValue(\n    data,\n    \"id\",\n    100\n);\n\nremoveByKeyValue(\n    data,\n    \"status\",\n    \"Deleted\"\n);\n\nupdateByKeyValue(\n    data,\n    \"id\",\n    1,\n    {\n        name: \"John\"\n    }\n);\n```\n\n---\n\n# Date Utilities\n\n```typescript\nformatDate(new Date());\n\nformatDateTime(new Date());\n\nformatTime(new Date());\n\nisToday(new Date());\n\naddDays(\n    new Date(),\n    10\n);\n\nsubtractDays(\n    new Date(),\n    5\n);\n\ngetAge(\n    \"1998-12-10\"\n);\n```\n\n---\n\n# Number Utilities\n\n```typescript\nformatCurrency(\n    100000\n);\n\n// ₹1,00,000.00\n\nformatNumber(\n    123456789\n);\n\n// 12,34,56,789\n```\n\n---\n\n# Number To Words\n\n```typescript\nnumberToWords(\n    1250.50\n);\n\n// One Thousand Two Hundred Fifty Rupees and Fifty Paise Only\n\namountToWords(\n    100000\n);\n\n// One Lakh Rupees Only\n```\n\n---\n\n# OTP Generator\n\n```typescript\ngenerateOTP();\n\n// 482915\n\ngenerateOTP(4);\n\n// 7294\n\ngenerateOTP(\n    8,\n    \"alphanumeric\"\n);\n\n// A92XK7LQ\n```\n\n---\n\n# Crypto\n\n## MD5\n\n```typescript\nmd5(\"Admin@123\");\n```\n\n## Verify\n\n```typescript\nverifyMD5(\n    \"Admin@123\",\n    hash\n);\n```\n\n## AES Encrypt\n\n```typescript\nencrypt(\n    \"Hello World\",\n    \"secret\"\n);\n```\n\n## AES Decrypt\n\n```typescript\ndecrypt(\n    cipher,\n    \"secret\"\n);\n```\n\n---\n\n# Validation\n\n```typescript\nisEmail(\n    \"test@gmail.com\"\n);\n\nisMobile(\n    \"9876543210\"\n);\n\nisPAN(\n    \"ABCDE1234F\"\n);\n\nisAadhaar(\n    \"123412341234\"\n);\n\nisGST(\n    \"22AAAAA0000A1Z5\"\n);\n\nisURL(\n    \"https://example.com\"\n);\n\nisStrongPassword(\n    \"Admin@123\"\n);\n```\n\n---\n\n# Misc Utilities\n\n## Random ID\n\n```typescript\nrandomId();\n\n// ax83md29\n```\n\n## UUID\n\n```typescript\nuuid();\n```\n\n## Sleep\n\n```typescript\nawait sleep(1000);\n```\n\n## Debounce\n\n```typescript\nconst save = debounce(\n    () => {\n        console.log(\"Saved\");\n    },\n    500\n);\n```\n\n## Throttle\n\n```typescript\nconst scroll = throttle(\n    () => {\n        console.log(\"Scrolling\");\n    },\n    1000\n);\n```\n\n---\n\n# Example\n\n```typescript\nimport { Utils } from \"easy-utils-ts\";\n\nconst otp =\n    Utils.generateOTP(6);\n\nconst hash =\n    Utils.md5(\"Admin@123\");\n\nconst amount =\n    Utils.numberToWords(\n        25000.75\n    );\n\nconsole.log(otp);\nconsole.log(hash);\nconsole.log(amount);\n```\n\n\n\n\n\n---\n\n# Requirements\n\n- Node.js >= 18\n- TypeScript >= 5\n\n---\n\n# Author\n\n**Boopathi Dev**\n\nGitHub: https://github.com/boopathidev\n\nnpm: https://www.npmjs.com/~boopathidev\n\n---\n\n# License\n\nMIT License\n\nCopyright (c) 2026 Boopathi Dev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files, to deal in the Software without restriction.","readmeFilename":"readme.md"}