# పదకొండు లైన్ల జావాస్క్రిప్ట్ ఇంటర్నెట్‌ను క్రాష్ చేసింది. ఒక్క అన్‌పబ్లిష్.

Published: 2026-09-13

మార్చి 22, 2016, 21:30 UTC: ఒక డెవలపర్ తన 273 npm ప్యాకేజీలన్నింటినీ అన్‌పబ్లిష్ చేశాడు, ఎందుకంటే npm "kik" అనే ప్యాకేజీ పేరును Kik మెసేజింగ్ యాప్‌కు అప్పగించింది, దాని పేటెంట్ ఏజెంట్ "మీ తలుపు తట్టి న్యాయవాదులు వస్తారు" అని బెదిరించాడు. ఆ 273 ప్యాకేజీలలో ఒకటి left-pad: ఒక స్ట్రింగ్ ముందు ఖాళీలను ఉంచే పదకొండు లైన్లు, నెలకు 2.5 మిలియన్ సార్లు డౌన్‌లోడ్ చేయబడింది. నిమిషాల్లోనే ప్రపంచవ్యాప్తంగా బాబెల్, రియాక్ట్ మరియు నోడ్ బిల్డ్‌లు విఫలమయ్యాయి, నిమిషానికి వందల సంఖ్యలో. పది నిమిషాల్లో ఒక ఫోర్క్ కనిపించింది, మరియు ఏమీ మారలేదు, ఎందుకంటే బాబెల్ left-padని లైన్-నెంబర్‌ల ద్వారా లాగుతుంది, ఇది 0.0.3ని ఖచ్చితంగా పిన్ చేస్తుంది. 23:55కి npm బ్యాకప్ నుండి తొలగించబడిన వెర్షన్‌ను పునరుద్ధరించింది — రిజిస్ట్రీ చరిత్రలో మొదటి "అన్‌-అన్‌-పబ్లిష్" — మరియు ఒక వారం తర్వాత 24-గంటల అన్‌పబ్లిష్ నిబంధనను విడుదల చేసింది. పోస్ట్‌మార్టమ్, npm యొక్క స్వంత ఖాతా మరియు Kik ప్రచురించిన ఇ-మెయిల్ థ్రెడ్ నుండి: ఏ రచయిత అయినా ఆధారపడిన వారి తనిఖీ లేకుండా ఏ వెర్షన్‌ను అయినా తొలగించడానికి అనుమతించిన రిజిస్ట్రీ, ప్రతి ఇన్‌స్టాల్‌లో ట్రాన్సిటివ్ ట్రీ ప్రత్యక్షంగా పరిష్కరించబడింది, డిఫాల్ట్‌గా లాక్‌ఫైల్ లేదు. Git తప్పు: 60 npm / 25 Kik / 15 డిపెండెన్సీ అలవాటు. పరిష్కారంపై తీర్పు: SHIP IT.

Canonical: https://thedailydiff.dev/te/video/2026-09-13-left-pad/

## ఈ వీడియో ఏమి కవర్ చేస్తుంది

- మార్చి 11: Kik యొక్క పేటెంట్ ఏజెంట్ Azer Koçuluని \`kik\` పేరు మార్చమని అడిగాడు; ఒక గంట తర్వాత: న్యాయవాదులు "మీ తలుపు తట్టి మీ ఖాతాలను తొలగిస్తారు"; Azer: $30,000; Kik npm సపోర్ట్‌కు ఇ-మెయిల్ చేస్తుంది
- మార్చి 18–20: npm CEO పేరును Kikకి బదిలీ చేస్తారు ("kik.comకు సంబంధించినది అని సహేతుకంగా ఆశిస్తారు"); Azer తన అన్ని మాడ్యూల్స్‌ను తొలగించమని అడుగుతాడు
- మార్చి 22, 21:30–23:55 UTC: 273 ప్యాకేజీలు అన్‌పబ్లిష్ చేయబడ్డాయి; left-pad@0.0.3 బాబెల్, ఆటమ్, నోడ్ ప్రాజెక్ట్‌లలో 404s; 21:42కి ఫోర్క్ 1.0.0; npm CTO 23:03కి "అన్‌-అన్‌-పబ్లిషింగ్" అని ట్వీట్ చేస్తారు; 23:55కి బ్యాకప్ నుండి 0.0.3 తిరిగి వచ్చింది — 2.5 గంటలు
- మార్చి 23 మరియు మార్చి 29: npm యొక్క పోస్ట్‌మార్టమ్ ("మేము తప్పు చేశాము") మరియు కొత్త విధానం: 24 గంటలలోపు మాత్రమే అన్‌పబ్లిష్ చేయండి, తీసివేసిన పేర్ల కోసం భద్రతా ప్లేస్‌హోల్డర్‌లు (2020 నుండి 72 గంటలు)

## అనువదించబడిన ట్రాన్స్క్రిప్ట్

అసలైన ఆంగ్ల కథనం నుండి అనువదించబడింది. అందుబాటులో ఉన్న ఆడియో మరియు క్యాప్షన్లు YouTube ద్వారా నియంత్రించబడతాయి.

0:00 ఒక డెవలపర్ పదకొండు లైన్ల జావాస్క్రిప్ట్‌ను తొలగించాడు, మరియు నిమిషాల్లో బాబెల్, రియాక్ట్ మరియు నోడ్ బిల్డ్‌లు ప్రపంచవ్యాప్తంగా విఫలమవుతున్నాయి, నిమిషానికి వందల సంఖ్యలో. ఆ ఫంక్షన్ left-pad. ఇది ఒక స్ట్రింగ్‌కు ఖాళీలను జతచేస్తుంది, మరియు సాయంత్రం చివరినాటికి npm తాను చేయలేనని చెప్పిన ఒక పనిని చేస్తుంది: తొలగించబడిన వెర్షన్‌ను మళ్ళీ ప్రచురించడం. అది ఎలా జరుగుతుంది, ఎందుకు సాధ్యమవుతుంది, మరియు ఎవరు నిందించబడతారు. ఇది The Daily Diff, పోస్ట్‌మార్టమ్. మార్చి 11. Kik, మెసేజింగ్ యాప్ యొక్క పేటెంట్ ఏజెంట్,

0:26 అజర్‌ కోచులకు ఇమెయిల్ చేస్తాడు: మీ npm ప్యాకేజీని పేరు మార్చండి, kik మా బ్రాండ్. అజర్ వద్దు అంటాడు. ఒక గంట తర్వాత: మా ట్రేడ్‌మార్క్ న్యాయవాదులు మీ తలుపు తట్టి మీ ఖాతాలను తొలగిస్తారు. అజర్ ఒక ధరను చెబుతాడు, ముప్పై వేల డాలర్లు, మరియు Kik ఈ థ్రెడ్‌ను npmకు ఫార్వార్డ్ చేస్తుంది సపోర్ట్. మార్చి 18. npm CEO npm install kik అని టైప్ చేసే ఎవరైనా మెసేజింగ్

0:48 యాప్‌ను ఆశిస్తారని తీర్పునిచ్చారు, మరియు పేరును అప్పగిస్తారు. అజర్ తనదైన ప్రతిదాన్ని తొలగించమని అడుగుతాడు. రెండు రోజుల తర్వాత అతను స్వయంగా చేస్తాడు: రెండు వందల డెబ్బై మూడు ప్యాకేజీలు. మార్చి 22, 21:30 UTC. left-pad కోసం చేరే ప్రతి బిల్డ్ 404ని పొందుతుంది. పది నిమిషాల తర్వాత ఒక అపరిచితుడు దానిని 1.0.0గా మళ్ళీ ప్రచురిస్తాడు, మరియు ఏమీ మారదు, ఎందుకంటే బాబెల్ మరియు ఆటమ్ దానిని line-numbers అనే ప్యాకేజీ ద్వారా లోడ్ చేస్తాయి, అది ఖచ్చితంగా 0.0.3ని కోరుకుంటుంది.

1:13 23:03కి npm CTO ట్వీట్ చేస్తారు: అన్‌-అన్‌-పబ్లిషింగ్. 23:55కి, 0.0.3 బ్యాకప్ నుండి తిరిగి వస్తుంది. రెండున్నర గంటలు. ఒక వ్యక్తి ఇది ఎందుకు చేయగలడు? మూడు కారణాలు. npmలో ఏ వెర్షన్ అయినా దాని రచయిత ద్వారా తొలగించబడుతుంది, తక్షణమే, దానిపై ఎవరు ఆధారపడి ఉన్నారో తనిఖీ చేయకుండా. రెండవది, డిపెండెన్సీలు ట్రాన్సిటివ్: బాబెల్‌కు left-pad ఉనికి తెలుసు కాదు, దానికి line-numbers తెలుసు, మరియు మొత్తం ట్రీ ప్రతి ఇన్‌స్టాల్‌లో ప్రత్యక్షంగా పరిష్కరించబడుతుంది.

1:36 మూడవది, 2016లో ఏదీ ఆ ట్రీని డిఫాల్ట్‌గా పిన్ చేయదు; లాక్‌ఫైల్స్ ఐచ్ఛికం, కాబట్టి ప్రతి CI రన్ పదకొండు లైన్ల కోడ్ ఎలా ఉంటుందో ఇంటర్నెట్‌ను మళ్ళీ అడుగుతుంది. ఒక రిజిస్ట్రీ, దానిపై ఎవరూ ఆధారపడకుండా నడుపబడుతుంది. git blame. npm, అరవై శాతం: దాని స్వంత పోస్ట్‌మార్టమ్ అనియంత్రిత అన్‌పబ్లిషింగ్ నొప్పికి కారణమైందని చెబుతుంది, మరియు, కోట్, మేము తప్పు చేశాము. Kik, ఇరవై ఐదు: ఒక పేటెంట్ ఏజెంట్, న్యాయవాది కాదు, Kik ఇప్పటికే ఉపయోగించకూడదని నిర్ణయించుకున్న పేరు విషయంలో న్యాయవాదులు తలుపు దగ్గర ఉన్నారని బెదిరించాడు. డిపెండెన్సీ అలవాటు, పదిహేను: పదకొండు లైన్లను టైప్ చేయకుండా npm-install చేసిన ప్రతి ఒక్కరూ.

2:06 వాటిని టైప్ చేయకుండా. Kikతో సహా, దాని బిల్డ్‌లు కూడా క్రాష్ అవుతాయి. బ్లాస్ట్ రేడియస్: రెండు వందల డెబ్బై మూడు ప్యాకేజీలు లాగబడ్డాయి, వాటిలో ఒకటి నెలకు రెండున్నర మిలియన్ సార్లు డౌన్‌లోడ్ చేయబడింది. పరిష్కారం రెండున్నర గంటలు పడుతుంది; ఫంక్షన్ పదకొండు లైన్లు పడుతుంది. హ్యాకర్ న్యూస్‌లో, మనం ప్రోగ్రామ్ చేయడం మర్చిపోయామా అని అడిగే ఒక పోస్ట్ పదిహేడు వందల పాయింట్లు పొందుతుంది, ఎక్కువగా వారి బిల్డ్‌లు ఇంకా ఎరుపు రంగులో ఉన్న వ్యక్తుల నుండి. తీర్పు, పోస్ట్‌మార్టమ్: SHIP IT.

2:26 npm బ్యాకప్ నుండి పునరుద్ధరిస్తుంది, మరుసటి రోజు పోస్ట్‌మార్టమ్‌ను పోస్ట్ చేస్తుంది, మరియు ఒక వారం లోపల ఇప్పటికీ నిలిచి ఉన్న నియమాన్ని విడుదల చేస్తుంది: మీరు ఇరవై నాలుగు గంటల పాటు అన్‌పబ్లిష్ చేయవచ్చు, ఆ తర్వాత మీరు ఒక మనిషితో మాట్లాడాలి. సోమవారం: మీ లాక్‌ఫైల్‌ను కమిట్ చేయండి, మరియు ఒక ఫంక్షన్ పదకొండు లైన్లు ఉంటే, అది ఒక పేరా, డిపెండెన్సీ కాదు. మీరు ఇంకా మాట్లాడటానికి అనుమతించబడని సంఘటనను నాకు పంపండి, కామెంట్లలో, లేదా the daily diff dot dev వద్ద. మరియు ఇది నేటి డిఫ్.

2:48 నేను Axrisi నుండి నికో. బాధ్యతాయుతంగా విలీనం చేయండి.

## మూలాలు

- [npm, Inc., "kik, left-pad, and npm" (Mar 23, 2016)](https://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm) — blog.npmjs.org
- [npm, Inc., "changes to npm's unpublish policy" (Mar 29, 2016)](https://blog.npmjs.org/post/141905368000/changes-to-npms-unpublish-policy) — blog.npmjs.org
- [Azer Koçulu, "I've Just Liberated My Modules" (Mar 22, 2016; archive copy)](https://web.archive.org/web/20160323201305/https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c) — web.archive.org
- [Mike Roberts (Kik), "A discussion about the breaking of the Internet" — the full e-mail thread (Mar 23, 2016; archive copy)](https://web.archive.org/web/20170112194445/https://medium.com/@mproberts/a-discussion-about-the-breaking-of-the-internet-3d4d2a83aa4d) — web.archive.org
- [Laurie Voss (npm CTO) on X, Mar 22, 2016, 23:03 UTC](https://x.com/seldo/status/712414400808755200) — x.com
- [left-pad 0.0.3 on the npm registry (the eleven lines)](https://registry.npmjs.org/left-pad/0.0.3) — registry.npmjs.org
- [Hacker News, Mar 22, 2016 — "I've Just Liberated My Modules" (1,573 points)](https://news.ycombinator.com/item?id=11340510) — news.ycombinator.com
- [Hacker News, Mar 23, 2016 — "NPM and Left-Pad: Have We Forgotten How to Program?" (1,725 points)](https://news.ycombinator.com/item?id=11348798) — news.ycombinator.com
- [Hacker News, Mar 29, 2016 — "Changes to Npm's unpublish policy" (320 points)](https://news.ycombinator.com/item?id=11382885) — news.ycombinator.com
- [The Register, Mar 23, 2016 — "How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript"](https://www.theregister.com/2016/03/23/npm_left_pad_chaos/) — www.theregister.com
