# Elva rader JavaScript bröt internet. En avpublicering.

Published: 2026-09-13

22 mars 2016, 21:30 UTC: en utvecklare avpublicerar alla 273 av sina npm-paket efter att npm överlämnar paketnamnet "kik" till Kik, meddelandeappen, vars patentombud hade lovat "advokater som bankar på din dörr". Ett av de 273 är left-pad: elva rader som sätter mellanslag framför en sträng, nedladdad 2,5 miljoner gånger i månaden. Inom några minuter misslyckas Babel-, React- och Node-byggen över hela världen, hundratals per minut. En förgrening dyker upp på tio minuter och ändrar ingenting, eftersom Babel hämtar left-pad via radnummer, vilket exakt låser 0.0.3. Klockan 23:55 återställer npm den borttagna versionen från en backup – den första "un-un-publish" i registrets historia – och en vecka senare implementeras 24-timmarsregeln för avpublicering. Postmortem, från npm:s egen redogörelse och e-posttråden Kik publicerade: registret som lät varje författare radera vilken version som helst utan beroendekontroll, det transitiva trädet löstes live vid varje installation, ingen lockfile som standard. Git blame: 60 npm / 25 Kik / 15 beroendesvanan. Dom om fixen: SHIP IT.

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

## Vad den här videon täcker

- 11 mars: Kiks patentombud ber Azer Koçulu att döpa om \`kik\`; en timme senare: advokater "bankar på din dörr och stänger ner dina konton"; Azer: $30 000; Kik e-postar npm-supporten
- 18–20 mars: npm:s VD överför namnet till Kik ("skulle rimligen förvänta sig att det är relaterat till kik.com"); Azer ber att alla hans moduler raderas
- 22 mars, 21:30–23:55 UTC: 273 paket avpubliceras; left-pad@0.0.3 404:ar i Babel-, Atom- och Node-projekt; förgrening 1.0.0 klockan 21:42; npm:s CTO twittrar "un-un-publishing" klockan 23:03; 0.0.3 tillbaka från backup klockan 23:55 – 2,5 timmar
- 23 mars och 29 mars: npm:s postmortem ("vi missade bollen") och den nya policyn: avpublicera endast inom 24 timmar, säkerhetsplatshållare för borttagna namn (72 timmar sedan 2020)

## Översatt transkription

Översatt från den ursprungliga engelska berättelsen. Tillgängligt ljud och undertexter styrs av YouTube.

0:00 En utvecklare raderar elva rader JavaScript, och inom några minuter misslyckas Babel, React- och Node-byggen över hela världen, hundratals i minuten. Funktionen är left-pad. Den fyller en sträng med mellanslag, och vid slutet av kvällen gör npm det enda den säger att den inte kan göra: återpublicera en borttagen version. Hur det händer, varför det är möjligt och vem som får skulden. Det här är The Daily Diff, postmortem. 11 mars. Ett patentombud på Kik, meddelandeappen,

0:26 e-postar Azer Koçulu: döp om ditt npm-paket, kik är vårt varumärke. Azer säger nej. En timme senare: våra varumärkesadvokater kommer att banka på din dörr och stänga ner dina konton. Azer nämner ett pris, trettio tusen dollar, och Kik vidarebefordrar tråden till npm support. 18 mars. npm:s VD beslutar att alla som skriver npm install kik förväntar sig meddelandeappen,

0:48 och överlämnar namnet. Azer ber att allt han har raderas. Två dagar senare gör han det själv: tvåhundrasjuttio-tre paket. 22 mars, 21:30 UTC. Varje bygge som når efter left-pad får en 404. Tio minuter senare återpublicerar en främling det som 1.0.0, och ingenting ändras, eftersom Babel och Atom laddar det via ett paket som heter line-numbers, som vill ha exakt 0.0.3.

1:13 Klockan 23:03 twittrar npm:s CTO: un-un-publishing. Klockan 23:55 är 0.0.3 tillbaka från en backup. Två och en halv timme. Varför kan en person göra detta? Tre skäl. Varje version på npm kan raderas av sin författare, omedelbart, utan kontroll av vem som är beroende av den. För det andra är beroenden transitiva: Babel vet inte att left-pad existerar, det vet line-numbers, och hela trädet löses live vid varje installation.

1:36 För det tredje, år 2016 låser inget det trädet som standard; lockfiles är opt-in, så varje CI-körning frågar internet igen hur elva rader kod ser ut. Ett register, som drivs av ingen som är beroende av det. git blame. npm, sextio procent: dess egen postmortem säger att obegränsad avpublicering orsakade smärtan, och, citat, vi missade bollen. Kik, tjugofem: ett patentombud, inte en advokat, som lovar advokater vid dörren över ett namn Kik redan hade beslutat att inte använda. Beroendesvanan, femton: alla som npm-installerade elva rader istället

2:06 för att skriva dem. Inklusive Kik, vars byggen också går sönder. Spridningsradie: tvåhundrasjuttio-tre paket drogs in, ett av dem nedladdades två och en halv miljon gånger i månaden. Fixen tar två och en halv timme; funktionen tar elva rader. På Hacker News får ett inlägg som frågar om vi har glömt hur man programmerar sjutton hundra poäng, mestadels från folk vars byggen fortfarande är röda. Dom, postmortem: SHIP IT.

2:26 npm återställer från backup, publicerar postmortem nästa dag, och inom en vecka implementeras regeln som fortfarande gäller: du kan avpublicera i tjugofyra timmar, efter det pratar du med en människa. Måndag: committa din lockfile, och om en funktion är elva rader, är det ett stycke, inte ett beroende. Skicka mig händelsen du fortfarande inte får prata om, i kommentarerna, eller på the daily diff dot dev. Och det var dagens diff.

2:48 Jag är Niko från Axrisi. Merge responsibly.

## Källor

- [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
