{"_id":"@arnonsang/utils","_rev":"2-1da0e94adf21826a879c2d6e9d553435","name":"@arnonsang/utils","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.2":{"name":"@arnonsang/utils","version":"0.0.2","author":{"name":"arnonsang"},"license":"MIT","_id":"@arnonsang/utils@0.0.2","maintainers":[{"name":"arnonsang","email":"arnon.sangn@gmail.com"}],"dist":{"shasum":"2de1f41a0b588801bbe25e6ecf54fca0f92f0992","tarball":"https://registry.npmjs.org/@arnonsang/utils/-/utils-0.0.2.tgz","fileCount":15,"integrity":"sha512-CDB4rO+rH2ljFwDKOPGwK1tpmlPUwJMI7rzJXqep40NL1JooLablv4z8xRXWhb6X8oriags/jc4rqR64IX7Uxw==","signatures":[{"sig":"MEYCIQCy7N9gssAjHbAd4PLvXa8aEQXPt4j5SFvyF8h0Uv3OQAIhAMIqVZMNULFrXdky723ynx6MhBMGQ/HaEaIzhgnUD5SE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11826},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","patch":"npm version patch && npm publish --access public ","prepare":"tsc"},"_npmUser":{"name":"arnonsang","email":"arnon.sangn@gmail.com"},"_npmVersion":"11.0.0","description":"A collection of utility functions","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.13.1"},"_npmOperationalInternal":{"tmp":"tmp/utils_0.0.2_1738827356623_0.2783475247370659","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@arnonsang/utils","version":"0.0.3","description":"A collection of utility functions","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","author":{"name":"arnonsang"},"repository":{"type":"git","url":"git+https://github.com/arnonsang/utils.git"},"homepage":"https://github.com/arnonsang/utils#readme","bugs":{"url":"https://github.com/arnonsang/utils/issues"},"scripts":{"prepare":"tsc","build":"tsc","patch":"npm version patch && npm publish --access public ","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.13.1","jest":"^30.0.3","ts-jest":"^29.4.0","typescript":"^5.7.3"},"_id":"@arnonsang/utils@0.0.3","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-LNJFT8hQG/l6IaUN3+4PEQkDG7kn8WWnPDAe2wI1TMDgidv4Vt8LbAKAriUFVdVXxerXCeGGDokDTRBwVEw4Vw==","shasum":"bbc042812edcdc57de1f32a7609e80b6fa7d15fd","tarball":"https://registry.npmjs.org/@arnonsang/utils/-/utils-0.0.3.tgz","fileCount":16,"unpackedSize":38582,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIENROQLA/lJHEK+lXXreLYA9sZrn74fqYiUMW2xwo/JiAiEAjexS7iuiEd94m7lvN5e2R203FTcPz6m0euKGfN+dCt4="}]},"_npmUser":{"name":"arnonsang","email":"arnon.sangn@gmail.com","actor":{"name":"arnonsang","email":"arnon.sangn@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"arnonsang","email":"arnon.sangn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/utils_0.0.3_1751008232487_0.9830352475404109"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-06T07:35:56.526Z","modified":"2025-06-27T07:10:32.878Z","0.0.2":"2025-02-06T07:35:56.867Z","0.0.3":"2025-06-27T07:10:32.715Z"},"author":{"name":"arnonsang"},"license":"MIT","description":"A collection of utility functions","maintainers":[{"name":"arnonsang","email":"arnon.sangn@gmail.com"}],"readme":"# My Utils Package\n\nUtils package focus on web development utilities.\n\n## Installation\n\n```sh\nnpm install @arnonsang/utils\n```\n\n## Usage\n\n### Importing Utilities\n\n```ts\nimport { \n  logger, \n  charAt, \n  charAtFrom,\n  capitalize,\n  toCamelCase,\n  unique,\n  chunk,\n  formatDate,\n  dateDiff,\n  clamp,\n  formatBytes\n} from \"@arnonsang/utils\";\n```\n\n### Logger Utility\n\n```ts\nlogger.info(\"This is an info message\");\nlogger.warn(\"This is a warning message\");\nlogger.error(\"An error occurred\");\nlogger.success(\"Operation successful\");\nlogger.debug(\"Debugging info\");\nlogger.table([{ name: \"Alice\" }, { name: \"Bob\" }], \"User Data\");\n```\n\n### Character Utilities\n\n```ts\nconsole.log(charAt(3, \"upper\")); // \"D\"\nconsole.log(charAtFrom(\"hello\", 1)); // \"e\"\n```\n\n### String Utilities\n\n```ts\ncapitalize(\"hello world\"); // \"Hello world\"\ntoCamelCase(\"hello world\"); // \"helloWorld\"\ntoKebabCase(\"Hello World\"); // \"hello-world\"\ntoSnakeCase(\"Hello World\"); // \"hello_world\"\ntruncate(\"This is a long string\", 10); // \"This is...\"\ncleanWhitespace(\"  hello   world  \"); // \"hello world\"\nisValidEmail(\"test@example.com\"); // true\nrandomString(8); // \"aB3xY9pQ\"\npluralize(\"item\", 5); // \"items\"\n```\n\n### Array Utilities\n\n```ts\nunique([1, 2, 2, 3, 3, 4]); // [1, 2, 3, 4]\nchunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]\nflatten([[1, 2], [3, 4]]); // [1, 2, 3, 4]\ngroupBy([{type: 'a'}, {type: 'b'}, {type: 'a'}], item => item.type);\nshuffle([1, 2, 3, 4, 5]); // [3, 1, 5, 2, 4] (random)\nsample([1, 2, 3, 4, 5]); // 3 (random)\nintersection([1, 2, 3], [2, 3, 4]); // [2, 3]\nsum([1, 2, 3, 4, 5]); // 15\naverage([1, 2, 3, 4, 5]); // 3\n```\n\n### Date Utilities\n\n```ts\nformatDate(new Date(), 'YYYY-MM-DD HH:mm:ss');\ndateDiff(date1, date2, 'days'); // 5\naddTime(new Date(), 5, 'days');\nsubtractTime(new Date(), 2, 'hours');\nisToday(new Date()); // true\nisPast(someDate); // true/false\ngetAge(new Date('1990-01-01')); // 34 (example)\n```\n\n### Number Utilities\n\n```ts\nclamp(15, 0, 10); // 10\nround(3.14159, 2); // 3.14\nrandomBetween(1, 10); // 7.234 (random)\nrandomInt(1, 10); // 7 (random)\nisEven(4); // true\npercentage(25, 100); // 25\nformatNumber(1234567); // \"1,234,567\"\nformatBytes(1024); // \"1 KB\"\nfactorial(5); // 120\n```\n\n## Contributing\n\nFeel free to open an issue or a pull request to contribute new utilities or improve existing ones.\n\n## License\n\nThis project is licensed under the MIT License.\n\n","readmeFilename":"README.md","homepage":"https://github.com/arnonsang/utils#readme","repository":{"type":"git","url":"git+https://github.com/arnonsang/utils.git"},"bugs":{"url":"https://github.com/arnonsang/utils/issues"}}