# Elf reëls JavaScript het die internet gebreek. Een ontpubliseer.

Published: 2026-09-13

22 Maart 2016, 21:30 UTC: 'n ontwikkelaar ontpubliseer al 273 van sy npm-pakkette nadat npm die pakketnaam "kik" aan Kik, die boodskaptoepassing, oorhandig het, wie se patentagent "prokureurs wat aan jou deur hamer" belowe het. Een van die 273 is left-pad: elf reëls wat spasies voor 'n string plaas, 2.5 miljoen keer per maand afgelaai. Binne minute misluk Babel-, React- en Node-bouwerk wêreldwyd, honderde per minuut. 'n Fork verskyn binne tien minute en verander niks, want Babel trek left-pad deur lynnommers, wat 0.0.3 presies vaspen. Om 23:55 herstel npm die geskrapte weergawe vanaf 'n rugsteun – die eerste "ont-ontpublisering" in die register se geskiedenis – en 'n week later stuur dit die 24-uur ontpubliseer-reël. Nadoodse ondersoek, vanuit npm se eie rekening en die e-posdraad wat Kik gepubliseer het: die register wat enige outeur toegelaat het om enige weergawe sonder afhanklikes-kontrole te skrap, die transitiese boom is lewendig op elke installasie opgelos, geen slotlêer by verstek. Git blame: 60 npm / 25 Kik / 15 die afhanklikheidsgewoonte. Uitspraak oor die oplossing: SHIP IT.

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

## Wat hierdie video dek

- 11 Mrt: Kik se patentagent vra Azer Koçulu om \`kik\` te hernoem; 'n uur later: prokureurs "aan jou deur hamer en jou rekeninge afneem"; Azer: $30,000; Kik e-pos npm-ondersteuning
- 18–20 Mrt: npm se HUB dra die naam aan Kik oor ("sou redelikerwys verwag dat dit met kik.com verband hou"); Azer vra dat al sy modules geskrap word
- 22 Mrt, 21:30–23:55 UTC: 273 pakkette ontpubliseer; left-pad@0.0.3 404s in Babel-, Atom-, Node-projekte; fork 1.0.0 om 21:42; npm se CTO twiet "un-un-publishing" om 23:03; 0.0.3 terug vanaf rugsteun om 23:55 — 2.5 ure
- 23 Mrt en 29 Mrt: npm se nadoodse ondersoek ("ons het die bal laat val") en die nuwe beleid: ontpubliseer slegs binne 24 uur, sekuriteitsplekhouers vir verwyderde name (72 u sedert 2020)

## Vertaalde transkripsie

Vertaal uit die oorspronklike Engelse vertelling. Beskikbare klank en onderskrifte word deur YouTube beheer.

0:00 'n Ontwikkelaar skrap elf reëls JavaScript, en binne minute faal Babel-, React- en Node-bouwerk wêreldwyd, honderde per minuut. Die funksie is left-pad. Dit vul 'n string met spasies, en teen die einde van die aand doen npm die een ding wat dit sê dit nie kan doen nie: herpubliseer 'n geskrapte weergawe. Hoe dit gebeur, waarom dit moontlik is, en wie die skuld kry. Dit is The Daily Diff, nadoodse ondersoek. 11 Maart. 'n Patentagent by Kik, die boodskaptoepassing,

0:26 e-pos Azer Koçulu: hernoem jou npm-pakket, kik is ons handelsmerk. Azer sê nee. 'n Uur later: ons handelsmerkprokureurs gaan aan jou deur hamer en jou rekeninge afneem. Azer noem 'n prys, dertigduisend dollar, en Kik stuur die draad aan npm-ondersteuning. 18 Maart. npm se HUB besluit dat enigiemand wat npm install kik tik, die boodskaptoepassing

0:48 verwag, en gee die naam oor. Azer vra dat alles van hom geskrap word. Twee dae later doen hy dit self: tweehonderd-sewentig-drie pakkette. 22 Maart, 21:30 UTC. Elke bouwerk wat left-pad soek, kry 'n 404. Tien minute later herpubliseer 'n vreemdeling dit as 1.0.0, en niks verander nie, want Babel en Atom laai dit deur 'n pakket genaamd line-numbers, wat presies 0.0.3 wil hê.

1:13 Om 23:03 twiet npm se CTO: un-un-publishing. Om 23:55 is 0.0.3 terug vanaf 'n rugsteun. Twee en 'n half uur. Waarom kan een persoon dit doen? Drie redes. Enige weergawe op npm kan deur sy outeur onmiddellik geskrap word, sonder om te kyk wie daarvan afhanklik is. Tweedens is afhanklikhede transitief: Babel weet nie left-pad bestaan nie, dit ken line-numbers, en die hele boom word lewendig op elke installasie opgelos.

1:36 Derdens, in 2016, pen niks daardie boom by verstek vas nie; slotlêers is opt-in, so elke CI-loop vra die internet weer hoe elf reëls kode lyk. 'n Enkele register, bestuur deur niemand wat daarvan afhanklik is nie. git blame. npm, sestig persent: sy eie nadoodse ondersoek sê onbeperkte ontpublisering het die pyn veroorsaak, en, aanhaling, ons het die bal laat val. Kik, vyf-en-twintig: 'n patentagent, nie 'n prokureur nie, wat prokureurs by die deur belowe oor 'n naam wat Kik reeds besluit het om nie te gebruik nie. Die afhanklikheidsgewoonte, vyftien: almal wat elf reëls met npm-install geïnstalleer het

2:06 in plaas daarvan om dit te tik. Insluitend Kik, wie se bouwerk ook breek. Ontploffingsradius: tweehonderd-sewentig-drie pakkette getrek, een van hulle is twee en 'n half miljoen keer per maand afgelaai. Die oplossing neem twee en 'n half uur; die funksie neem elf reëls. Op Hacker News bereik 'n pos wat vra of ons vergeet het hoe om te programmeer sewentienhonderd punte, meestal van mense wie se bouwerk nog rooi is. Uitspraak, nadoodse ondersoek: SHIP IT.

2:26 npm herstel vanaf rugsteun, plaas die nadoodse ondersoek die volgende dag, en binne 'n week word die reël gestuur wat steeds geld: jy kan ontpubliseer vir vier-en-twintig uur, daarna praat jy met 'n mens. Maandag: commit jou slotlêer, en as 'n funksie elf reëls is, is dit 'n paragraaf, nie 'n afhanklikheid nie. Stuur vir my die insident waaroor jy nog nie mag praat nie, in die kommentaar, of by the daily diff dot dev. En dit is die verskil vir vandag.

2:48 Ek is Niko van Axrisi. Voeg verantwoordelik saam.

## Bronne

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