Open sindresorhus opened 1 month ago
I was just pointed to this thread and I want to say that all that code looks to me like it falls outside the realm of what is possible to copyright thanks to the legal principle of "convergence", which is the same principle that prevents things like equations for mathematical laws of the universe from being under copyright.
Your argument is flawed. The principle of "convergence" you're referencing applies to facts, not creative expression or unique implementation choices. The copied code isn’t a natural law or mathematical equation—it’s original, authored code that reflects specific decisions. Those decisions, whether it's the exact structure or even minor implementation details, are subject to copyright. Just because the functionality could be re-implemented doesn't mean this specific code isn't protected.
What you’ve cited isn't an example of unprotectable facts—it’s directly copying someone else’s authored work.
Correct. I am making the argument that the copied code does not contain sufficiently much original creative content.
The code that checks for particular values in process.env
seems impossible to copyright, as process.env
is how everyone checks environment variables. Anyone attempting to achieve the same integrations would be forced to end up with nearly identical code.
I'm sure you didn't originate the practice of using the characters -
\
|
/
as a spinner, so that definitely isn't a creative effort. Anyone who wanted to use that idea (that you don't own) would naturally end up writing the exact expression ['-', '\\', '|', '/']
in idiomatic Javascript.
You've argued that ['â ‹', 'â ™', 'â ą', 'â ¸', 'â Ľ', 'â ´', 'â ¦', 'â §', 'â ‡', 'â Ź']
falls under copyright and I agree that there is some creativity to using braille code points to make a snake chase its tail, but I'd argue that while cool and maybe original (I don't know) it's still simply too small to be copyrighted. You can't claim copyright to a single word you made up, for example.
Also RE the originality of your spinners, I can't find earlier usage of those exact braille code points, but the idea of using braille code points to create the effect of a snake chasing its tail predates the first code for your library: https://stackoverflow.com/a/2685827
Anyone attempting to achieve the same integrations would be forced to end up with nearly identical code.
The exact environment variables (no more, no less) and the exact order is highly unlikely to happen by coincidence.
Anyway. I have no interest in wasting time here arguing. The owner does what they want with this.
I'm not saying they did, I'm saying they were copied. I'm saying that as far as I understand the law it was 100% legal to copy them because the original was not possible to copyright because of the principle of convergence which, as I mentioned, allows mathematical equations to be copied verbatim.
https://github.com/usmanyunusov/nanospinner/blob/b53e875f28571225cf7fd0fcec1f2e7a90bbda5c/consts.js#L4-L9 is clearly directly copied from: https://github.com/sindresorhus/is-unicode-supported/blob/8f123916d5c25a87c4f966dcc248b7ca5df2b4ca/index.js
https://github.com/usmanyunusov/nanospinner/blob/b53e875f28571225cf7fd0fcec1f2e7a90bbda5c/consts.js#L15-L16 is copied from https://github.com/sindresorhus/cli-spinners
And https://github.com/usmanyunusov/nanospinner/blob/b53e875f28571225cf7fd0fcec1f2e7a90bbda5c/consts.js#L18-L20 is copied from https://github.com/sindresorhus/log-symbols/blob/main/index.js