[{"data":1,"prerenderedAt":474},["ShallowReactive",2],{"navigation_docs":3,"-registries-packagist":72,"-registries-packagist-surround":469},[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":64,"body":74,"description":461,"extension":462,"links":463,"meta":464,"navigation":466,"path":65,"seo":467,"stem":66,"__hash__":468},"docs\u002F2.registries\u002F05.packagist.md",{"type":75,"value":76,"toc":451},"minimark",[77,81,86,145,161,165,172,196,200,227,231,255,259,274,278,393,397,438,442,447],[78,79],"registry-facts",{"ecosystem":80},"composer",[82,83,85],"h2",{"id":84},"address-it","Address it",[87,88,93],"pre",{"className":89,"code":90,"language":91,"meta":92,"style":92},"language-ts shiki shiki-themes github-light github-light poimandres","await fetchPackageFromPURL(\"pkg:composer\u002Flaravel\u002Fframework\");\nawait fetchDependenciesFromPURL(\"pkg:composer\u002Flaravel\u002Fframework@v13.30.1\");\n","ts","",[94,95,96,126],"code",{"__ignoreMap":92},[97,98,101,105,109,113,117,121,123],"span",{"class":99,"line":100},"line",1,[97,102,104],{"class":103},"sZW6a","await",[97,106,108],{"class":107},"sULi6"," fetchPackageFromPURL",[97,110,112],{"class":111},"sKlNE","(",[97,114,116],{"class":115},"scVjq","\"",[97,118,120],{"class":119},"sQ7BG","pkg:composer\u002Flaravel\u002Fframework",[97,122,116],{"class":115},[97,124,125],{"class":111},");\n",[97,127,129,131,134,136,138,141,143],{"class":99,"line":128},2,[97,130,104],{"class":103},[97,132,133],{"class":107}," fetchDependenciesFromPURL",[97,135,112],{"class":111},[97,137,116],{"class":115},[97,139,140],{"class":119},"pkg:composer\u002Flaravel\u002Fframework@v13.30.1",[97,142,116],{"class":115},[97,144,125],{"class":111},[146,147,148,149,152,153,156,157,160],"p",{},"The vendor is the PURL namespace and it is required: ",[94,150,151],{},"pkg:composer\u002Fframework"," throws ",[94,154,155],{},"InvalidPURLError"," from the adapter, because Packagist has no package without a vendor. Versions keep their ",[94,158,159],{},"v"," prefix, since that is the tag name Packagist knows.",[82,162,164],{"id":163},"what-it-reads","What it reads",[146,166,167,168,171],{},"Every call reads the same document, ",[94,169,170],{},"GET \u002Fpackages\u002F{vendor}\u002F{name}.json",", and picks a different part of it.",[146,173,174,177,178,181,182,185,186,188,189,192,193,195],{},[94,175,176],{},"latestVersion"," is chosen by the adapter: ",[94,179,180],{},"dev-*"," and ",[94,183,184],{},"*-dev"," versions are dropped, the rest are sorted by their numeric parts with the ",[94,187,159],{}," prefix ignored, and the highest wins. The license, keywords and dates come from that version. ",[94,190,191],{},"repository"," is the package's ",[94,194,191],{}," field, normalized.",[82,197,199],{"id":198},"versions","Versions",[146,201,202,203,206,207,210,211,214,215,218,219,222,223,226],{},"One entry per version key in the document, with ",[94,204,205],{},"publishedAt"," from ",[94,208,209],{},"time",", the version's own licenses combined with ",[94,212,213],{},"OR",", and ",[94,216,217],{},"integrity"," as ",[94,220,221],{},"sha1-"," plus the dist shasum when there is one. Packagist has no yank flag, so ",[94,224,225],{},"status"," is always empty.",[82,228,230],{"id":229},"dependencies","Dependencies",[146,232,233,236,237,240,241,236,244,247,248,181,251,254],{},[94,234,235],{},"require"," becomes ",[94,238,239],{},"runtime",", ",[94,242,243],{},"require-dev",[94,245,246],{},"development",". Platform requirements, ",[94,249,250],{},"php",[94,252,253],{},"ext-*",", are skipped; they are not packages.",[82,256,258],{"id":257},"maintainers","Maintainers",[146,260,261,262,265,266,269,270,273],{},"The ",[94,263,264],{},"authors"," declared across versions, deduplicated by name and email, each with the ",[94,267,268],{},"role"," the author wrote in ",[94,271,272],{},"composer.json",", when any.",[82,275,277],{"id":276},"urls","URLs",[87,279,281],{"className":89,"code":280,"language":91,"meta":92,"style":92},"urls.registry(\"laravel\u002Fframework\"); \u002F\u002F https:\u002F\u002Fpackagist.org\u002Fpackages\u002Flaravel\u002Fframework\nurls.registry(\"laravel\u002Fframework\", \"v13.30.1\"); \u002F\u002F …\u002Flaravel\u002Fframework#v13.30.1\nurls.download(\"laravel\u002Fframework\", \"v13.30.1\"); \u002F\u002F https:\u002F\u002Frepo.packagist.org\u002Fp\u002Flaravel\u002Fframework\u002Fv13.30.1.json\nurls.documentation(\"laravel\u002Fframework\"); \u002F\u002F https:\u002F\u002Fpackagist.org\u002Fpackages\u002Flaravel\u002Fframework\n",[94,282,283,310,340,371],{"__ignoreMap":92},[97,284,285,288,291,294,296,298,301,303,306],{"class":99,"line":100},[97,286,276],{"class":287},"spVlQ",[97,289,290],{"class":111},".",[97,292,293],{"class":107},"registry",[97,295,112],{"class":111},[97,297,116],{"class":115},[97,299,300],{"class":119},"laravel\u002Fframework",[97,302,116],{"class":115},[97,304,305],{"class":111},"); ",[97,307,309],{"class":308},"sjhu3","\u002F\u002F https:\u002F\u002Fpackagist.org\u002Fpackages\u002Flaravel\u002Fframework\n",[97,311,312,314,316,318,320,322,324,326,328,330,333,335,337],{"class":99,"line":128},[97,313,276],{"class":287},[97,315,290],{"class":111},[97,317,293],{"class":107},[97,319,112],{"class":111},[97,321,116],{"class":115},[97,323,300],{"class":119},[97,325,116],{"class":115},[97,327,240],{"class":111},[97,329,116],{"class":115},[97,331,332],{"class":119},"v13.30.1",[97,334,116],{"class":115},[97,336,305],{"class":111},[97,338,339],{"class":308},"\u002F\u002F …\u002Flaravel\u002Fframework#v13.30.1\n",[97,341,343,345,347,350,352,354,356,358,360,362,364,366,368],{"class":99,"line":342},3,[97,344,276],{"class":287},[97,346,290],{"class":111},[97,348,349],{"class":107},"download",[97,351,112],{"class":111},[97,353,116],{"class":115},[97,355,300],{"class":119},[97,357,116],{"class":115},[97,359,240],{"class":111},[97,361,116],{"class":115},[97,363,332],{"class":119},[97,365,116],{"class":115},[97,367,305],{"class":111},[97,369,370],{"class":308},"\u002F\u002F https:\u002F\u002Frepo.packagist.org\u002Fp\u002Flaravel\u002Fframework\u002Fv13.30.1.json\n",[97,372,374,376,378,381,383,385,387,389,391],{"class":99,"line":373},4,[97,375,276],{"class":287},[97,377,290],{"class":111},[97,379,380],{"class":107},"documentation",[97,382,112],{"class":111},[97,384,116],{"class":115},[97,386,300],{"class":119},[97,388,116],{"class":115},[97,390,305],{"class":111},[97,392,309],{"class":308},[82,394,396],{"id":395},"gotchas","Gotchas",[398,399,400,411,424],"ul",{},[401,402,403,404,407,408,410],"li",{},"A document for a package with a thousand tags is large, and every call reads it. ",[94,405,406],{},"fetchVersions"," on ",[94,409,300],{}," returns over a thousand entries.",[401,412,413,414,240,417,420,421,423],{},"Packagist's own idea of the default branch (",[94,415,416],{},"dev-master",[94,418,419],{},"dev-main",") never becomes ",[94,422,176],{}," unless no tagged version exists.",[401,425,426,427,430,431,181,434,437],{},"The version sort is numeric per segment; a pre-release suffix such as ",[94,428,429],{},"-beta1"," sorts by its numbers too, so ",[94,432,433],{},"v2.0.0-beta1",[94,435,436],{},"v2.0.0"," can compare as equal.",[82,439,441],{"id":440},"where-it-lives","Where it lives",[146,443,444,290],{},[94,445,446],{},"src\u002Fregistries\u002Fpackagist.ts",[448,449,450],"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 .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 .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}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}",{"title":92,"searchDepth":128,"depth":128,"links":452},[453,454,455,456,457,458,459,460],{"id":84,"depth":128,"text":85},{"id":163,"depth":128,"text":164},{"id":198,"depth":128,"text":199},{"id":229,"depth":128,"text":230},{"id":257,"depth":128,"text":258},{"id":276,"depth":128,"text":277},{"id":395,"depth":128,"text":396},{"id":440,"depth":128,"text":441},"Packagist's package document, one per vendor\u002Fname with every version inside, and the rules for what counts as latest.","md",null,{"icon":465},"i-simple-icons-composer",true,{"title":64,"description":461},"3sWbCpTbsqrcFuk53je4uMqE5Nj9UwnXoDP3AIdDIK4",[470,472],{"title":60,"path":61,"stem":62,"description":471,"children":-1},"The rubygems.org API for gems, versions, dependencies of each version and owners, with yanked versions as a status.",{"title":68,"path":69,"stem":70,"description":473,"children":-1},"The official repositories and the AUR behind one PURL type, routed by namespace, with one version per package and the out of date flag as a status.",1788462724332]