is-odd
ua-parser-js
is-odd | ua-parser-js | |
---|---|---|
19 | 29 | |
155 | 8,614 | |
- | - | |
0.0 | 8.4 | |
about 5 years ago | about 1 month ago | |
JavaScript | JavaScript | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
is-odd
-
Why Does 'Is-Number' Package Have 59M Weekly Downloads?
Ridiculous as it may be, my guess is that provides a unified way of number checking while avoiding the pitfalls or crazy consequences which could arise from divide-by-zero[1], which I guess might prevent less-experienced folks from tripping up on some of the Javascript gotchas? I'm not really sure. That being said, I have seen those package dependencies in some serious stuff.
Do I agree? I'm not really sure to be honest. Probably not.
[0] https://github.com/i-voted-for-trump/is-odd/blob/master/READ...
[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
-
Weekly downloads of npm is-odd package
it gets worse: https://github.com/i-voted-for-trump/is-odd/blob/master/index.js
-
my first pull request got merged in a 2k stars project
So it disappeared and node apps stop building and it was a huge fiasco getting it restored. Just for reference, https://github.com/i-voted-for-trump/is-odd is a current fork of it and it has 34M downloads.
-
/* This post is a dig at Elon Musk who allegedly ranked employees by the number of lines they wrote. I then added some obviously made up code to hammer home the point that line counts don't always indicate good employees. I also added this 300 character title in case Reddit ranks by title length. */
Checks of this extensiveness would be mad for such a simple library. I mean, who would use a library with that extensive checks?
-
Vendor by Default (2021)
I think that this approach would cut down the amount of JS dependencies significantly. Things like is-even and is-odd come to mind. You don't want another leftpad or colors.js to happen to you and minimising dependencies is the most effective strategy to accomplish that.
So many leaf dependencies I've looked into are no more than a Stackoverflow answer in a JS file accompanied by six or seven metadata files (package.json + typescript files + linter config + readme + git config + ...). This file: https://github.com/i-voted-for-trump/is-odd/blob/master/inde... is downloaded over 400000 times per week (https://www.npmjs.com/package/is-odd) and while I don't have anythimg against the author for publishing a helpers function, I don't see why I would expose my project to risking a supply chain attack for something so minor. Here's another, with millions of downloads: https://github.com/inspect-js/is-date-object/blob/main/index...
I know that these are all downloaded so ofyen because theyre dependencies of dependencies but I'd appreciate it if bigger libraries would provide a vendored version of their packages that just collects these microdependencies instead of wasting npm's time by making it manage these tiny helper files. Don't vendor stuff like React or Vue or whatever framework you prefer but for the love of God don't add a dependency for 50 lines of code. Sometimes copy/paste is the right solution.
- GLIBC update broke EAC for most games that use it
- Javascript libraries be like
-
Code Smell 138 - Packages Dependency
$ npm install --save is-odd // https://www.npmjs.com/package/is-odd // This package has about 500k weekly downloads // https://github.com/i-voted-for-trump/is-odd/blob/master/index.js module.exports = function isOdd(value) { const n = Math.abs(value); return (n % 2) === 1; };
-
Oops!
I started reading your comment curious about the source code. But I finished reading your comment only more curious. So I went to GitHub's "is-odd" and I've come back to give everyone *is-odd'*s source code in it's entirety. And here it is:
- I made a Chrome extension to understand code in plain English
ua-parser-js
-
Tell HN: Microsoft Teams is blocking Firefox Nightly
Just look at all the big companies doing it
https://faisalman.github.io/ua-parser-js/
-
Liguard - The Linode Guard
This project is backed under MIT License, special shout out to project UA-Parser, as liguard uses a piece of its source-code.
-
Modern PHP
With NPM, what's actually published is not what's in the git repo, so it's harder to inspect/review vulnerabilities or hijacking. With composer, what's in git _is_ what composer pulls (with the exception of rules in .gitattributes to exclude files etc), making it much easier to trace. One such example: https://github.com/faisalman/ua-parser-js/issues/536
Composer packages are vendor namespaced, so hijacking an abandoned package is not possible (and it is with NPM), some examples like https://www.theregister.com/2021/08/10/github_npm_package/
-
Some developers are fouling up open-source software
Sure, I suppose in theory it could happen with other ecosystems, but for some reason it doesn't. It sure seems to just keep happening in NPM though.
-
Vulnerable and Outdated Components
From the other side, npm package may be hijacked(as it happened recently for ua-parser-js and to other packages earlier). To mitigate that, I don't know, probably, subscribing to some security digest would be the most helpful.
- Red Hat response to Java release cadence change
-
Secure software supply chain: why every link matters
On Oct. 22, 2021, developers of a very common NPM package, ua-parser-js, discovered that some attackers uploaded a compromised version of the package containing malware for Linux and Windows, and were capable of stealing data (at least passwords and cookies from the browser).
-
Thoughts on improving security of Neovim plugins
Since Neovim 0.5 release (which has full Lua support) I see more and more amazing Lua plugins being developed, and I think this trend will likely to continue. But I recently got more concerned about security risks associated with the way Neovim plugins being installed and used (especially after seeing recent compromises like ua-parser-js or coa). Installing typical Neovim plugin is basically downloading and executing random code from the internet on your machine with your user privileges, so hijacked or deliberately malicious plugin could potentially do a lot of damage (like stealing keys/passwords, installing keylogger or just rm -rf / for fun).
-
Hidden XMRig miner malware discovered in hijacked versions of popular ua-parser-js npm library
thread about compromise https://github.com/faisalman/ua-parser-js/issues/536
- Malware Discovered in Popular NPM Package, ua-parser-js
What are some alternatives?
FizzBuzz Enterprise Edition - FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.
react-device-detect - Detect device, and render view according to detected device type.
deno-puppeteer - A port of puppeteer running on Deno
bowser - a browser detector
is-even - I created this in 2014, when I was learning how to program.
remarkable - Markdown parser, done right. Commonmark support, extensions, syntax plugins, high speed - all in one. Gulp and metalsmith plugins available. Used by Facebook, Docusaurus and many others! Use https://github.com/breakdance/breakdance for HTML-to-markdown conversion. Use https://github.com/jonschlinkert/markdown-toc to generate a table of contents.
is-number - JavaScript/Node.js utility. Returns `true` if the value is a number or string number. Useful for checking regex match results, user input, parsed strings, etc.
enquirer - Stylish, intuitive and user-friendly prompts, for Node.js. Used by eslint, webpack, yarn, pm2, pnpm, RedwoodJS, FactorJS, salesforce, Cypress, Google Lighthouse, Generate, tencent cloudbase, lint-staged, gluegun, hygen, hardhat, AWS Amplify, GitHub Actions Toolkit, @airbnb/nimbus, and many others! Please follow Enquirer's author: https://github.com/jonschlinkert
guix - Read-only mirror of GNU Guix — pull requests are ignored, see https://guix.gnu.org/en/manual/en/guix.html#Submitting-Patches instead
Serilog - Simple .NET logging with fully-structured events
micromatch - Highly optimized wildcard and glob matching library. Faster, drop-in replacement to minimatch and multimatch. Used by square, webpack, babel core, yarn, jest, ract-native, taro, bulma, browser-sync, stylelint, nyc, ava, and many others! Follow micromatch's author: https://github.com/jonschlinkert
pnpm - Fast, disk space efficient package manager