[{"data":1,"prerenderedAt":772},["ShallowReactive",2],{"navigation_docs":3,"-registries-npm":72,"-registries-npm-surround":767},[4,40],{"title":5,"path":6,"stem":7,"children":8,"icon":39},"Guide","\u002Fguide","1.guide\u002F1.index",[9,11,15,19,23,27,31,35],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"PURLs","\u002Fguide\u002Fpurl","1.guide\u002F2.purl",{"title":16,"path":17,"stem":18},"Lookups","\u002Fguide\u002Flookups","1.guide\u002F3.lookups",{"title":20,"path":21,"stem":22},"Caching","\u002Fguide\u002Fcache","1.guide\u002F4.cache",{"title":24,"path":25,"stem":26},"CLI","\u002Fguide\u002Fcli","1.guide\u002F5.cli",{"title":28,"path":29,"stem":30},"Agents","\u002Fguide\u002Fagents","1.guide\u002F6.agents",{"title":32,"path":33,"stem":34},"Custom Registries","\u002Fguide\u002Fcustom","1.guide\u002F7.custom",{"title":36,"path":37,"stem":38},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F8.explorer","i-lucide-book-open",{"title":41,"path":42,"stem":43,"children":44,"icon":71},"Registries","\u002Fregistries","2.registries\u002F0.index",[45,47,51,55,59,63,67],{"title":46,"path":42,"stem":43},"Overview",{"title":48,"path":49,"stem":50},"npm","\u002Fregistries\u002Fnpm","2.registries\u002F01.npm",{"title":52,"path":53,"stem":54},"crates.io","\u002Fregistries\u002Fcargo","2.registries\u002F02.cargo",{"title":56,"path":57,"stem":58},"PyPI","\u002Fregistries\u002Fpypi","2.registries\u002F03.pypi",{"title":60,"path":61,"stem":62},"RubyGems","\u002Fregistries\u002Frubygems","2.registries\u002F04.rubygems",{"title":64,"path":65,"stem":66},"Packagist","\u002Fregistries\u002Fpackagist","2.registries\u002F05.packagist",{"title":68,"path":69,"stem":70},"Arch Linux","\u002Fregistries\u002Falpm","2.registries\u002F06.alpm","i-lucide-library",{"id":73,"title":48,"body":74,"description":760,"extension":761,"links":762,"meta":763,"navigation":238,"path":49,"seo":765,"stem":50,"__hash__":766},"docs\u002F2.registries\u002F01.npm.md",{"type":75,"value":76,"toc":750},"minimark",[77,80,85,169,189,192,310,314,396,409,412,444,448,535,543,546,576,580,699,703,736,740,746],[78,79],"registry-facts",{"ecosystem":48},[81,82,84],"h2",{"id":83},"address-it","Address it",[86,87,92],"pre",{"className":88,"code":89,"language":90,"meta":91,"style":91},"language-ts shiki shiki-themes github-light github-light poimandres","await fetchPackageFromPURL(\"pkg:npm\u002Flodash\");\nawait fetchPackageFromPURL(\"pkg:npm\u002F%40vue\u002Fcore\"); \u002F\u002F scoped, encoded\nawait fetchPackageFromPURL(\"pkg:npm\u002F@vue\u002Fcore\"); \u002F\u002F scoped, as typed\n","ts","",[93,94,95,125,148],"code",{"__ignoreMap":91},[96,97,100,104,108,112,116,120,122],"span",{"class":98,"line":99},"line",1,[96,101,103],{"class":102},"sZW6a","await",[96,105,107],{"class":106},"sULi6"," fetchPackageFromPURL",[96,109,111],{"class":110},"sKlNE","(",[96,113,115],{"class":114},"scVjq","\"",[96,117,119],{"class":118},"sQ7BG","pkg:npm\u002Flodash",[96,121,115],{"class":114},[96,123,124],{"class":110},");\n",[96,126,128,130,132,134,136,139,141,144],{"class":98,"line":127},2,[96,129,103],{"class":102},[96,131,107],{"class":106},[96,133,111],{"class":110},[96,135,115],{"class":114},[96,137,138],{"class":118},"pkg:npm\u002F%40vue\u002Fcore",[96,140,115],{"class":114},[96,142,143],{"class":110},"); ",[96,145,147],{"class":146},"sjhu3","\u002F\u002F scoped, encoded\n",[96,149,151,153,155,157,159,162,164,166],{"class":98,"line":150},3,[96,152,103],{"class":102},[96,154,107],{"class":106},[96,156,111],{"class":110},[96,158,115],{"class":114},[96,160,161],{"class":118},"pkg:npm\u002F@vue\u002Fcore",[96,163,115],{"class":114},[96,165,143],{"class":110},[96,167,168],{"class":146},"\u002F\u002F scoped, as typed\n",[170,171,172,173,176,177,180,181,184,185,188],"p",{},"The scope is the PURL namespace, ",[93,174,175],{},"@"," included. ",[93,178,179],{},"fullName"," joins it back to ",[93,182,183],{},"@vue\u002Fcore",", which the adapter encodes as ",[93,186,187],{},"%40vue%2Fcore"," on the way to the registry.",[170,190,191],{},"Or construct the class yourself:",[86,193,195],{"className":88,"code":194,"language":90,"meta":91,"style":91},"import { Client, NpmRegistry } from \"@agntn\u002Fregistries\";\n\nconst npm = new NpmRegistry(\"https:\u002F\u002Fregistry.npmjs.org\", new Client());\nconst pkg = await npm.fetchPackage(\"@vue\u002Fcore\");\n",[93,196,197,234,240,278],{"__ignoreMap":91},[96,198,199,203,206,210,213,216,219,223,226,229,231],{"class":98,"line":99},[96,200,202],{"class":201},"sP0CR","import",[96,204,205],{"class":110}," {",[96,207,209],{"class":208},"snHMy"," Client",[96,211,212],{"class":110},",",[96,214,215],{"class":208}," NpmRegistry",[96,217,218],{"class":110}," }",[96,220,222],{"class":221},"stCPd"," from",[96,224,225],{"class":114}," \"",[96,227,228],{"class":118},"@agntn\u002Fregistries",[96,230,115],{"class":114},[96,232,233],{"class":110},";\n",[96,235,236],{"class":98,"line":127},[96,237,239],{"emptyLinePlaceholder":238},true,"\n",[96,241,242,246,250,253,256,258,260,262,265,267,270,273,275],{"class":98,"line":150},[96,243,245],{"class":244},"s1TYA","const",[96,247,249],{"class":248},"saoiD"," npm",[96,251,252],{"class":244}," =",[96,254,255],{"class":201}," new",[96,257,215],{"class":106},[96,259,111],{"class":110},[96,261,115],{"class":114},[96,263,264],{"class":118},"https:\u002F\u002Fregistry.npmjs.org",[96,266,115],{"class":114},[96,268,269],{"class":110},", ",[96,271,272],{"class":201},"new",[96,274,209],{"class":106},[96,276,277],{"class":110},"());\n",[96,279,281,283,286,288,291,294,297,300,302,304,306,308],{"class":98,"line":280},4,[96,282,245],{"class":244},[96,284,285],{"class":248}," pkg",[96,287,252],{"class":244},[96,289,290],{"class":102}," await",[96,292,249],{"class":293},"spVlQ",[96,295,296],{"class":110},".",[96,298,299],{"class":106},"fetchPackage",[96,301,111],{"class":110},[96,303,115],{"class":114},[96,305,183],{"class":118},[96,307,115],{"class":114},[96,309,124],{"class":110},[81,311,313],{"id":312},"what-it-reads","What it reads",[315,316,317,330],"table",{},[318,319,320],"thead",{},[321,322,323,327],"tr",{},[324,325,326],"th",{},"Call",[324,328,329],{},"Endpoint",[331,332,333,346,363,375],"tbody",{},[321,334,335,340],{},[336,337,338],"td",{},[93,339,299],{},[336,341,342,345],{},[93,343,344],{},"GET \u002F{name}",", the full package document",[321,347,348,353],{},[336,349,350],{},[93,351,352],{},"fetchVersions",[336,354,355,356,359,360],{},"the same document, ",[93,357,358],{},"versions"," joined with ",[93,361,362],{},"time",[321,364,365,370],{},[336,366,367],{},[93,368,369],{},"fetchDependencies",[336,371,372],{},[93,373,374],{},"GET \u002F{name}\u002F{version}",[321,376,377,382],{},[336,378,379],{},[93,380,381],{},"fetchMaintainers",[336,383,384,385,388,389,392,393],{},"the package document's ",[93,386,387],{},"maintainers",", plus the latest version's ",[93,390,391],{},"author"," and ",[93,394,395],{},"contributors",[170,397,398,401,402,405,406,296],{},[93,399,400],{},"latestVersion"," is ",[93,403,404],{},"dist-tags.latest",". The license comes from the package document, or the latest version when the document has none, and can be a string or an object with a ",[93,407,408],{},"type",[81,410,411],{"id":358},"Versions",[170,413,414,417,418,420,421,424,425,428,429,432,433,436,437,440,441,296],{},[93,415,416],{},"publishedAt"," comes from the ",[93,419,362],{}," map. ",[93,422,423],{},"integrity"," is the version's ",[93,426,427],{},"dist.integrity"," (",[93,430,431],{},"sha512-…","), falling back to ",[93,434,435],{},"sha1-"," plus the shasum. A version with a ",[93,438,439],{},"deprecated"," message has ",[93,442,443],{},"status: \"deprecated\"",[81,445,447],{"id":446},"dependencies","Dependencies",[315,449,450,467],{},[318,451,452],{},[321,453,454,457,462],{},[324,455,456],{},"npm field",[324,458,459],{},[93,460,461],{},"scope",[324,463,464],{},[93,465,466],{},"optional",[331,468,469,489,506,520],{},[321,470,471,475,480],{},[336,472,473],{},[93,474,446],{},[336,476,477],{},[93,478,479],{},"runtime",[336,481,482,485,486],{},[93,483,484],{},"true"," if the name also appears in ",[93,487,488],{},"optionalDependencies",[321,490,491,496,501],{},[336,492,493],{},[93,494,495],{},"devDependencies",[336,497,498],{},[93,499,500],{},"development",[336,502,503],{},[93,504,505],{},"false",[321,507,508,512,516],{},[336,509,510],{},[93,511,488],{},[336,513,514],{},[93,515,479],{},[336,517,518],{},[93,519,484],{},[321,521,522,527,531],{},[336,523,524],{},[93,525,526],{},"peerDependencies",[336,528,529],{},[93,530,479],{},[336,532,533],{},[93,534,505],{},[170,536,537,538,392,540,542],{},"A name listed under both ",[93,539,446],{},[93,541,488],{}," appears once, as optional.",[81,544,545],{"id":387},"Maintainers",[170,547,548,549,552,553,555,556,559,560,555,562,565,566,269,569,392,572,575],{},"Maintainers come first with an empty ",[93,550,551],{},"role",", then the latest version's ",[93,554,391],{}," with ",[93,557,558],{},"role: \"author\""," and its ",[93,561,395],{},[93,563,564],{},"role: \"contributor\"",", deduplicated by name and email. Each carries whatever ",[93,567,568],{},"name",[93,570,571],{},"email",[93,573,574],{},"url"," npm has.",[81,577,579],{"id":578},"urls","URLs",[86,581,583],{"className":88,"code":582,"language":90,"meta":91,"style":91},"urls.registry(\"lodash\"); \u002F\u002F https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash\nurls.registry(\"lodash\", \"4.18.1\"); \u002F\u002F https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash\u002Fv\u002F4.18.1\nurls.download(\"@vue\u002Fcore\", \"3.5.0\"); \u002F\u002F https:\u002F\u002Fregistry.npmjs.org\u002F@vue%2Fcore\u002F-\u002Fcore-3.5.0.tgz\nurls.readme(\"lodash\", \"4.18.1\"); \u002F\u002F https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Flodash@4.18.1\u002FREADME.md\n",[93,584,585,608,638,669],{"__ignoreMap":91},[96,586,587,589,591,594,596,598,601,603,605],{"class":98,"line":99},[96,588,578],{"class":293},[96,590,296],{"class":110},[96,592,593],{"class":106},"registry",[96,595,111],{"class":110},[96,597,115],{"class":114},[96,599,600],{"class":118},"lodash",[96,602,115],{"class":114},[96,604,143],{"class":110},[96,606,607],{"class":146},"\u002F\u002F https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash\n",[96,609,610,612,614,616,618,620,622,624,626,628,631,633,635],{"class":98,"line":127},[96,611,578],{"class":293},[96,613,296],{"class":110},[96,615,593],{"class":106},[96,617,111],{"class":110},[96,619,115],{"class":114},[96,621,600],{"class":118},[96,623,115],{"class":114},[96,625,269],{"class":110},[96,627,115],{"class":114},[96,629,630],{"class":118},"4.18.1",[96,632,115],{"class":114},[96,634,143],{"class":110},[96,636,637],{"class":146},"\u002F\u002F https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash\u002Fv\u002F4.18.1\n",[96,639,640,642,644,647,649,651,653,655,657,659,662,664,666],{"class":98,"line":150},[96,641,578],{"class":293},[96,643,296],{"class":110},[96,645,646],{"class":106},"download",[96,648,111],{"class":110},[96,650,115],{"class":114},[96,652,183],{"class":118},[96,654,115],{"class":114},[96,656,269],{"class":110},[96,658,115],{"class":114},[96,660,661],{"class":118},"3.5.0",[96,663,115],{"class":114},[96,665,143],{"class":110},[96,667,668],{"class":146},"\u002F\u002F https:\u002F\u002Fregistry.npmjs.org\u002F@vue%2Fcore\u002F-\u002Fcore-3.5.0.tgz\n",[96,670,671,673,675,678,680,682,684,686,688,690,692,694,696],{"class":98,"line":280},[96,672,578],{"class":293},[96,674,296],{"class":110},[96,676,677],{"class":106},"readme",[96,679,111],{"class":110},[96,681,115],{"class":114},[96,683,600],{"class":118},[96,685,115],{"class":114},[96,687,269],{"class":110},[96,689,115],{"class":114},[96,691,630],{"class":118},[96,693,115],{"class":114},[96,695,143],{"class":110},[96,697,698],{"class":146},"\u002F\u002F https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Flodash@4.18.1\u002FREADME.md\n",[81,700,702],{"id":701},"gotchas","Gotchas",[704,705,706,715,725],"ul",{},[707,708,709,710,392,712,714],"li",{},"The full package document for a package with thousands of versions is megabytes. ",[93,711,352],{},[93,713,381],{}," both read it; put a cache in front if you call them repeatedly.",[707,716,717,720,721,724],{},[93,718,719],{},"documentation"," is always empty; npm has no separate docs field. ",[93,722,723],{},"resolveDocsUrl"," falls back to the homepage, then to the npmjs.com page.",[707,726,727,728,731,732,735],{},"A mirror such as ",[93,729,730],{},"registry.npmmirror.com"," works through the ",[93,733,734],{},"repository_url"," qualifier, as long as it serves the same document shape.",[81,737,739],{"id":738},"where-it-lives","Where it lives",[170,741,742,745],{},[93,743,744],{},"src\u002Fregistries\u002Fnpm.ts",", the largest adapter and the template for new ones.",[747,748,749],"style",{},"html pre.shiki code .sZW6a, html code.shiki .sZW6a{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7C0}html pre.shiki code .sULi6, html code.shiki .sULi6{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#E4F0FBD0}html pre.shiki code .sKlNE, html code.shiki .sKlNE{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#A6ACCD}html pre.shiki code .scVjq, html code.shiki .scVjq{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#A6ACCD}html pre.shiki code .sQ7BG, html code.shiki .sQ7BG{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#5DE4C7}html pre.shiki code .sjhu3, html code.shiki .sjhu3{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#767C9DB0;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP0CR, html code.shiki .sP0CR{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7}html pre.shiki code .snHMy, html code.shiki .snHMy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#ADD7FF}html pre.shiki code .stCPd, html code.shiki .stCPd{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#A6ACCD}html pre.shiki code .s1TYA, html code.shiki .s1TYA{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#91B4D5}html pre.shiki code .saoiD, html code.shiki .saoiD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#E4F0FB}html pre.shiki code .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}",{"title":91,"searchDepth":127,"depth":127,"links":751},[752,753,754,755,756,757,758,759],{"id":83,"depth":127,"text":84},{"id":312,"depth":127,"text":313},{"id":358,"depth":127,"text":411},{"id":446,"depth":127,"text":447},{"id":387,"depth":127,"text":545},{"id":578,"depth":127,"text":579},{"id":701,"depth":127,"text":702},{"id":738,"depth":127,"text":739},"The npm registry API, one document per package, with scopes in the PURL namespace and deprecations as a version status.","md",null,{"icon":764},"i-simple-icons-npm",{"title":48,"description":760},"DE0tp0R1xc43mlI742flNNZpMO7iTx6SCulyUoF4Tzk",[768,770],{"title":46,"path":42,"stem":43,"description":769,"children":-1},"Six registries, one class shape. Pick one to see its endpoints, its name rules and the traps.",{"title":52,"path":53,"stem":54,"description":771,"children":-1},"The crates.io API across four endpoints, with yanked versions as a status and docs.rs as the documentation home.",1788462724332]