{"_id":"fe-utils-core","_rev":"6-c699f8184d1ea332b654ff25471168e0","name":"fe-utils-core","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.0":{"name":"fe-utils-core","version":"1.0.0","keywords":["react","utils","node"],"author":{"name":"jomartedev"},"license":"ISC","_id":"fe-utils-core@1.0.0","maintainers":[{"name":"jomarte","email":"jomarte561@gmail.com"}],"dist":{"shasum":"f47f10afcdc734d258b36c502ce165c43cbe1c59","tarball":"https://registry.npmjs.org/fe-utils-core/-/fe-utils-core-1.0.0.tgz","fileCount":5,"integrity":"sha512-ARbzwC41tjGBpFTpCKJxmvjLAu7wx6RfhDn/0DFbbjjBQKWXVgd5JoC2mwJh3SKEzdtYO1LZXTabLDS+3yaIpQ==","signatures":[{"sig":"MEUCIQDkfwwcHVwXNWYJY7Nln3/OeuJiUoSP+t08x56StaLwNAIgNjhxjsUaUvtIIsGNLG2o47kie960gfujlsrJxY1jonY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10317},"main":"src/index.js","type":"module","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"echo 'No build step needed'"},"_npmUser":{"name":"jomarte","email":"jomarte561@gmail.com"},"_npmVersion":"10.9.2","description":"Generic frontend utilities for Node.js and browser environments","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","axios":"^1.11.0","express":"^4.21.2","request":"^2.88.2","sqlite3":"^5.1.7","@primno/dpapi":"^2.0.1","module-to-cdn":"^3.1.5","better-sqlite3":"^12.2.0","node-machine-id":"^1.1.12","socket.io-client":"^4.8.1"},"_npmOperationalInternal":{"tmp":"tmp/fe-utils-core_1.0.0_1775012788104_0.5237562108410063","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"fe-utils-core","version":"1.0.2","keywords":["react","utils","node"],"author":{"name":"jomartedev"},"license":"ISC","_id":"fe-utils-core@1.0.2","maintainers":[{"name":"jomarte","email":"jomarte561@gmail.com"}],"dist":{"shasum":"df47c703580c12bff787ebfc9de57149ec45318a","tarball":"https://registry.npmjs.org/fe-utils-core/-/fe-utils-core-1.0.2.tgz","fileCount":5,"integrity":"sha512-PyDKAuEzDiQB2Vt3Z+bBcLPfGczPj8YR/4MMKusyHqNimPwJlu4rRwuD86DCDonNdcZQj6Zk7NHEq9c828PkAg==","signatures":[{"sig":"MEUCIQDnf472MTcGBc848KIG39gKEuFfegR+gl9+OZ0EQasa9gIgfTWTgv1tkys0KgUo4zH/U8Fw35wjXme59Xw4Come37s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10152},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jomarte","email":"jomarte561@gmail.com"},"_npmVersion":"10.9.2","description":"Generic frontend utilities for Node.js and browser environments","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","axios":"^1.11.0","express":"^4.21.2","request":"^2.88.2","sqlite3":"^5.1.7","@primno/dpapi":"^2.0.1","module-to-cdn":"^3.1.5","better-sqlite3":"^12.2.0","node-machine-id":"^1.1.12","socket.io-client":"^4.8.1"},"_npmOperationalInternal":{"tmp":"tmp/fe-utils-core_1.0.2_1775035033702_0.3697143317406535","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"fe-utils-core","version":"1.0.3","keywords":["react","utils","node"],"author":{"name":"jomartedev"},"license":"ISC","_id":"fe-utils-core@1.0.3","maintainers":[{"name":"jomarte","email":"jomarte561@gmail.com"}],"dist":{"shasum":"fdcc9d59db180da3a01dd29fb0ecc849ab9fad87","tarball":"https://registry.npmjs.org/fe-utils-core/-/fe-utils-core-1.0.3.tgz","fileCount":5,"integrity":"sha512-Ukdz/8cnFjXNcuIJqZNXOb0w9oXfQ2wCaVx2Z5tKxVLbA9aLcda6ikgf+Dus8UuvJhK8Skvj03sAja+nN7WBnA==","signatures":[{"sig":"MEYCIQCknK0NKEFvwWgih7jNIVkM7Jn3dpleEU/GT/qu7+yvLgIhAPWbSyKqMzHQBd+XlTPXxDckshFkNjRReyQekrsUiiah","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10106},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jomarte","email":"jomarte561@gmail.com"},"_npmVersion":"10.9.2","description":"Generic frontend utilities for Node.js and browser environments","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"axios":"^1.11.0","express":"^4.21.2","request":"^2.88.2","sqlite3":"^5.1.7","@primno/dpapi":"^2.0.1","module-to-cdn":"^3.1.5","better-sqlite3":"^12.2.0","node-machine-id":"^1.1.12","socket.io-client":"^4.8.1"},"_npmOperationalInternal":{"tmp":"tmp/fe-utils-core_1.0.3_1775039159667_0.9997133321583247","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"fe-utils-core","version":"1.0.4","keywords":["react","helper","utils","node","svg"],"author":{"name":"copperadev"},"license":"ISC","_id":"fe-utils-core@1.0.4","maintainers":[{"name":"jomarte","email":"jomarte561@gmail.com"}],"dist":{"shasum":"4257255756b1e93c48944b1a66f4090a59e743d9","tarball":"https://registry.npmjs.org/fe-utils-core/-/fe-utils-core-1.0.4.tgz","fileCount":5,"integrity":"sha512-ODxrQ4W6oCtvOSjLrZ6wWjVuUOQQnXUgBv4P/ceO1izfPAFPn/+iuK3YnYm5bQRqdORQF87oBpJ7wi6YENe1nA==","signatures":[{"sig":"MEUCICv6uufF7f0t/fvmF5LPscEb1TmcXD68tAWaWrZQWv9AAiEApcmKkUp/62TQ2KL+y7ylW0h9o2uFl81zey9pseMEtx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9872},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jomarte","email":"jomarte561@gmail.com"},"_npmVersion":"10.9.2","description":"Generic frontend utilities for Node.js and browser environments","directories":{},"_nodeVersion":"22.15.0","dependencies":{"axios":"^1.11.0","express":"^4.21.2","request":"^2.88.2","sqlite3":"^5.1.7","@primno/dpapi":"^2.0.1","module-to-cdn":"^3.1.5","better-sqlite3":"^12.2.0","node-machine-id":"^1.1.12","socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fe-utils-core_1.0.4_1779754776207_0.8243321653065023","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"fe-utils-core","version":"1.0.5","keywords":["react","helper","utils","node","svg"],"author":{"name":"copperadev"},"license":"ISC","_id":"fe-utils-core@1.0.5","maintainers":[{"name":"jomarte","email":"jomarte561@gmail.com"}],"dist":{"shasum":"d9d3546599838f1ff29c609891cb708800950707","tarball":"https://registry.npmjs.org/fe-utils-core/-/fe-utils-core-1.0.5.tgz","fileCount":5,"integrity":"sha512-QSBz337d7LjJBUtMzCvbpxl5ZgK9936mrYYOFuTCFAEmdUKS2U8Ms9j6H444pW9/AkW6xlvkQrYOGEV183Retw==","signatures":[{"sig":"MEYCIQCZD8RAXDfk++U7Y0IKB0/S/UNBEnp4CyOVWh+npEbA9gIhAPuDQJyXKXBXkff8w7lubwth65oHzpx+eukdTIhbf7RQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9872},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jomarte","email":"jomarte561@gmail.com"},"_npmVersion":"10.9.2","description":"Generic frontend utilities for Node.js and browser environments","directories":{},"_nodeVersion":"22.15.0","dependencies":{"axios":"^1.11.0","express":"^4.21.2","request":"^2.88.2","sqlite3":"^5.1.7","@primno/dpapi":"^2.0.1","module-to-cdn":"^3.1.5","better-sqlite3":"^12.2.0","node-machine-id":"^1.1.12","socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fe-utils-core_1.0.5_1779795455612_0.026608378428019996","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"fe-utils-core","version":"1.0.6","description":"Generic frontend utilities for Node.js and browser environments","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["react","helper","utils","node","svg"],"author":{"name":"copperadev"},"license":"ISC","dependencies":{"@primno/dpapi":"^2.0.1","axios":"^1.11.0","better-sqlite3":"^12.2.0","express":"^4.21.2","module-to-cdn":"^3.1.5","node-machine-id":"^1.1.12","request":"^2.88.2","sqlite3":"^5.1.7","socket.io-client":"^4.8.1"},"_id":"fe-utils-core@1.0.6","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-+7i/FpsJTfNUXvygd0WjM0cc68NLtOQHqDtI1/Qc+wfiV2jKz5d31sMkdf+RPOkSBL2+Esm0LWXdOjeqX+Lw4Q==","shasum":"904851f9d844609886eb3c659b851bfdf3dbeb17","tarball":"https://registry.npmjs.org/fe-utils-core/-/fe-utils-core-1.0.6.tgz","fileCount":5,"unpackedSize":9881,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDjJEWJJREGQ7Ws56/bPxqmU/d3lJ6UDhHEN/fmPS+0DwIgIw8bEshoRJqs6YHkz8IJL3CRcLz8CHHfu0KXnq3Gvcc="}]},"_npmUser":{"name":"jomarte","email":"jomarte561@gmail.com"},"directories":{},"maintainers":[{"name":"jomarte","email":"jomarte561@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fe-utils-core_1.0.6_1779796072733_0.2524312588762718"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-01T03:06:27.951Z","modified":"2026-05-26T11:47:52.980Z","1.0.0":"2026-04-01T03:06:28.267Z","1.0.2":"2026-04-01T09:17:13.836Z","1.0.3":"2026-04-01T10:25:59.830Z","1.0.4":"2026-05-26T00:19:36.352Z","1.0.5":"2026-05-26T11:37:35.763Z","1.0.6":"2026-05-26T11:47:52.880Z"},"author":{"name":"copperadev"},"license":"ISC","keywords":["react","helper","utils","node","svg"],"description":"Generic frontend utilities for Node.js and browser environments","maintainers":[{"name":"jomarte","email":"jomarte561@gmail.com"}],"readme":"# fe-utils-core\r\n\r\nGeneric frontend utilities for Node.js projects and browser environments. Share common helpers across your frontend applications.\r\n\r\n## Features\r\n\r\n- Debounce & throttle functions\r\n- Object/array checks (isEmpty)\r\n- Number clamping & formatting\r\n- Browser storage helpers (localStorage/sessionStorage)\r\n- Dual Node.js/browser compatible\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install fe-utils-core\r\n```\r\n\r\n## Usage\r\n\r\n```javascript\r\nimport { debounce, isEmpty, formatNumber , getPlugin } from 'fe-utils-core';\r\nimport storage from 'fe-utils-core/storage.js';\r\n\r\n// Debounce\r\nconst debouncedSearch = debounce((query) => {\r\n  console.log('Searching:', query);\r\n}, 300);\r\n\r\n// Storage\r\nstorage.set('user', { name: 'John' });\r\nconst user = storage.get('user');\r\n\r\n// Formatting\r\nconst price = formatNumber(1234.567, 2); // \"1,234.57\"\r\n```\r\n\r\n## API\r\n\r\n### `debounce(func, wait)`\r\nReturns debounced version of function.\r\n\r\n### `throttle(func, limit)`\r\nReturns throttled version.\r\n\r\n### `isEmpty(obj)`\r\nChecks if value is empty.\r\n\r\n### `clamp(num, min, max)`\r\nClamps number between min/max.\r\n\r\n### `formatNumber(num, decimals)`\r\nFormats number with Intl.\r\n\r\n### `storage` object\r\n- `set(key, value)`\r\n- `get(key, defaultValue)`\r\n- `remove(key)`\r\n- `clear()`\r\n\r\n## Development\r\n\r\n```bash\r\nnpm install\r\nnpm test\r\nnpm publish  # after login\r\n```\r\n\r\n## License\r\n\r\nISC","readmeFilename":"README.md"}