[{"data":1,"prerenderedAt":513},["ShallowReactive",2],{"navigation_docs":3,"-registries-rubygems":72,"-registries-rubygems-surround":508},[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":60,"body":74,"description":500,"extension":501,"links":502,"meta":503,"navigation":505,"path":61,"seo":506,"stem":62,"__hash__":507},"docs\u002F2.registries\u002F04.rubygems.md",{"type":75,"value":76,"toc":490},"minimark",[77,81,86,145,156,160,228,264,268,295,299,314,318,329,333,456,460,477,481,486],[78,79],"registry-facts",{"ecosystem":80},"gem",[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:gem\u002Frails\");\nawait fetchDependenciesFromPURL(\"pkg:gem\u002Frails@8.1.3.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:gem\u002Frails",[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:gem\u002Frails@8.1.3.1",[97,142,116],{"class":115},[97,144,125],{"class":111},[146,147,148,149,151,152,155],"p",{},"Gems have no namespace. The PURL type is ",[94,150,80],{},", and so is ",[94,153,154],{},"ecosystem()",".",[82,157,159],{"id":158},"what-it-reads","What it reads",[161,162,163,176],"table",{},[164,165,166],"thead",{},[167,168,169,173],"tr",{},[170,171,172],"th",{},"Call",[170,174,175],{},"Endpoint",[177,178,179,192,204,216],"tbody",{},[167,180,181,187],{},[182,183,184],"td",{},[94,185,186],{},"fetchPackage",[182,188,189],{},[94,190,191],{},"GET \u002Fapi\u002Fv1\u002Fgems\u002F{name}.json",[167,193,194,199],{},[182,195,196],{},[94,197,198],{},"fetchVersions",[182,200,201],{},[94,202,203],{},"GET \u002Fapi\u002Fv1\u002Fversions\u002F{name}.json",[167,205,206,211],{},[182,207,208],{},[94,209,210],{},"fetchDependencies",[182,212,213],{},[94,214,215],{},"GET \u002Fapi\u002Fv2\u002Frubygems\u002F{name}\u002Fversions\u002F{version}.json",[167,217,218,223],{},[182,219,220],{},[94,221,222],{},"fetchMaintainers",[182,224,225],{},[94,226,227],{},"GET \u002Fapi\u002Fv1\u002Fgems\u002F{name}\u002Fowners.json",[146,229,230,233,234,237,238,241,242,245,246,249,250,241,253,256,257,260,261,155],{},[94,231,232],{},"latestVersion"," is the gem's current ",[94,235,236],{},"version",". ",[94,239,240],{},"repository"," is ",[94,243,244],{},"source_code_uri",", then ",[94,247,248],{},"metadata.source_code_uri",", then the homepage, normalized. ",[94,251,252],{},"documentation",[94,254,255],{},"documentation_uri",". Licenses are the gem's ",[94,258,259],{},"licenses"," array joined with ",[94,262,263],{},"OR",[82,265,267],{"id":266},"versions","Versions",[146,269,270,271,274,275,278,279,282,283,286,287,290,291,294],{},"Each version has ",[94,272,273],{},"publishedAt"," from ",[94,276,277],{},"created_at",", ",[94,280,281],{},"integrity"," as ",[94,284,285],{},"sha256-"," plus the gem's ",[94,288,289],{},"sha",", and ",[94,292,293],{},"status: \"yanked\""," when yanked. Licenses per version are not listed by this endpoint and stay empty.",[82,296,298],{"id":297},"dependencies","Dependencies",[146,300,301,302,305,306,309,310,313],{},"The v2 version document lists ",[94,303,304],{},"runtime"," and ",[94,307,308],{},"development"," dependencies, each with a requirement string such as ",[94,311,312],{},">= 1.0, \u003C 3",". Scopes map one to one; nothing is optional.",[82,315,317],{"id":316},"maintainers","Maintainers",[146,319,320,321,324,325,328],{},"Owners, each with a ",[94,322,323],{},"login"," from the handle and an ",[94,326,327],{},"email"," when rubygems.org exposes it. No role.",[82,330,332],{"id":331},"urls","URLs",[87,334,336],{"className":89,"code":335,"language":91,"meta":92,"style":92},"urls.registry(\"rails\"); \u002F\u002F https:\u002F\u002Frubygems.org\u002Fgems\u002Frails\nurls.download(\"rails\", \"8.1.3.1\"); \u002F\u002F https:\u002F\u002Frubygems.org\u002Fdownloads\u002Frails-8.1.3.1.gem\nurls.documentation(\"rails\", \"8.1.3.1\"); \u002F\u002F https:\u002F\u002Fwww.rubydoc.info\u002Fgems\u002Frails\u002F8.1.3.1\nurls.readme(\"rails\", \"8.1.3.1\"); \u002F\u002F https:\u002F\u002Frubygems.org\u002Fgems\u002Frails\u002Fversions\u002F8.1.3.1\n",[94,337,338,364,395,425],{"__ignoreMap":92},[97,339,340,343,345,348,350,352,355,357,360],{"class":99,"line":100},[97,341,331],{"class":342},"spVlQ",[97,344,155],{"class":111},[97,346,347],{"class":107},"registry",[97,349,112],{"class":111},[97,351,116],{"class":115},[97,353,354],{"class":119},"rails",[97,356,116],{"class":115},[97,358,359],{"class":111},"); ",[97,361,363],{"class":362},"sjhu3","\u002F\u002F https:\u002F\u002Frubygems.org\u002Fgems\u002Frails\n",[97,365,366,368,370,373,375,377,379,381,383,385,388,390,392],{"class":99,"line":128},[97,367,331],{"class":342},[97,369,155],{"class":111},[97,371,372],{"class":107},"download",[97,374,112],{"class":111},[97,376,116],{"class":115},[97,378,354],{"class":119},[97,380,116],{"class":115},[97,382,278],{"class":111},[97,384,116],{"class":115},[97,386,387],{"class":119},"8.1.3.1",[97,389,116],{"class":115},[97,391,359],{"class":111},[97,393,394],{"class":362},"\u002F\u002F https:\u002F\u002Frubygems.org\u002Fdownloads\u002Frails-8.1.3.1.gem\n",[97,396,398,400,402,404,406,408,410,412,414,416,418,420,422],{"class":99,"line":397},3,[97,399,331],{"class":342},[97,401,155],{"class":111},[97,403,252],{"class":107},[97,405,112],{"class":111},[97,407,116],{"class":115},[97,409,354],{"class":119},[97,411,116],{"class":115},[97,413,278],{"class":111},[97,415,116],{"class":115},[97,417,387],{"class":119},[97,419,116],{"class":115},[97,421,359],{"class":111},[97,423,424],{"class":362},"\u002F\u002F https:\u002F\u002Fwww.rubydoc.info\u002Fgems\u002Frails\u002F8.1.3.1\n",[97,426,428,430,432,435,437,439,441,443,445,447,449,451,453],{"class":99,"line":427},4,[97,429,331],{"class":342},[97,431,155],{"class":111},[97,433,434],{"class":107},"readme",[97,436,112],{"class":111},[97,438,116],{"class":115},[97,440,354],{"class":119},[97,442,116],{"class":115},[97,444,278],{"class":111},[97,446,116],{"class":115},[97,448,387],{"class":119},[97,450,116],{"class":115},[97,452,359],{"class":111},[97,454,455],{"class":362},"\u002F\u002F https:\u002F\u002Frubygems.org\u002Fgems\u002Frails\u002Fversions\u002F8.1.3.1\n",[82,457,459],{"id":458},"gotchas","Gotchas",[461,462,463,467,474],"ul",{},[464,465,466],"li",{},"The versions endpoint answers every version of a gem with a long history in one document; rails has hundreds. Cache it.",[464,468,469,470,473],{},"Versions built for one platform (",[94,471,472],{},"-x86_64-linux",") appear as separate entries with the same number prefix.",[464,475,476],{},"Owner emails are only present when the owner made them public.",[82,478,480],{"id":479},"where-it-lives","Where it lives",[146,482,483,155],{},[94,484,485],{},"src\u002Fregistries\u002Frubygems.ts",[487,488,489],"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":491},[492,493,494,495,496,497,498,499],{"id":84,"depth":128,"text":85},{"id":158,"depth":128,"text":159},{"id":266,"depth":128,"text":267},{"id":297,"depth":128,"text":298},{"id":316,"depth":128,"text":317},{"id":331,"depth":128,"text":332},{"id":458,"depth":128,"text":459},{"id":479,"depth":128,"text":480},"The rubygems.org API for gems, versions, dependencies of each version and owners, with yanked versions as a status.","md",null,{"icon":504},"i-simple-icons-rubygems",true,{"title":60,"description":500},"SqWG7eIPWHOTlp9JRRmE62yiYjJcYd3zMJs3cUsLUg0",[509,511],{"title":56,"path":57,"stem":58,"description":510,"children":-1},"PyPI's JSON API for metadata and the Simple API for versions, with PEP 503 name normalization and extras turned into dependency scopes.",{"title":64,"path":65,"stem":66,"description":512,"children":-1},"Packagist's package document, one per vendor\u002Fname with every version inside, and the rules for what counts as latest.",1788462724332]