[{"data":1,"prerenderedAt":1313},["ShallowReactive",2],{"navigation_docs_en":3,"\u002Fen\u002Freference\u002Fcheckers":85,"\u002Fen\u002Freference\u002Fcheckers-surround":1308},[4,19,41,75],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":18},"Getting started","i-lucide-book-open","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,14],{"title":11,"path":12,"stem":13},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F1.installation",{"title":15,"path":16,"stem":17},"Your first Pin","\u002Fen\u002Fgetting-started\u002Ffirst-pin","en\u002F1.getting-started\u002F2.first-pin",false,{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":18},"Guides","i-lucide-route","\u002Fen\u002Fguides","en\u002F2.guides",[25,29,33,37],{"title":26,"path":27,"stem":28},"Updating and selecting Pins","\u002Fen\u002Fguides\u002Fupdating","en\u002F2.guides\u002F1.updating",{"title":30,"path":31,"stem":32},"Combining Checkers and Fetchers","\u002Fen\u002Fguides\u002Fcombinations","en\u002F2.guides\u002F2.combinations",{"title":34,"path":35,"stem":36},"Multiple Sources and patches","\u002Fen\u002Fguides\u002Fmulti-source","en\u002F2.guides\u002F3.multi-source",{"title":38,"path":39,"stem":40},"Packages and dependency hashes","\u002Fen\u002Fguides\u002Fdependencies","en\u002F2.guides\u002F4.dependencies",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":18},"Reference","i-lucide-code","\u002Fen\u002Freference","en\u002F3.reference",[47,51,55,59,63,67,71],{"title":48,"path":49,"stem":50},"CLI","\u002Fen\u002Freference\u002Fcli","en\u002F3.reference\u002F1.cli",{"title":52,"path":53,"stem":54},"Runtime configuration","\u002Fen\u002Freference\u002Fconfiguration","en\u002F3.reference\u002F2.configuration",{"title":56,"path":57,"stem":58},"Pin declarations","\u002Fen\u002Freference\u002Fpins","en\u002F3.reference\u002F3.pins",{"title":60,"path":61,"stem":62},"Checkers","\u002Fen\u002Freference\u002Fcheckers","en\u002F3.reference\u002F4.checkers",{"title":64,"path":65,"stem":66},"Fetchers","\u002Fen\u002Freference\u002Ffetchers","en\u002F3.reference\u002F5.fetchers",{"title":68,"path":69,"stem":70},"Package Builders","\u002Fen\u002Freference\u002Fbuilders","en\u002F3.reference\u002F6.builders",{"title":72,"path":73,"stem":74},"Reader and Pins File","\u002Fen\u002Freference\u002Freader","en\u002F3.reference\u002F7.reader",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":18},"Troubleshooting","i-lucide-wrench","\u002Fen\u002Ftroubleshooting","en\u002F4.troubleshooting",[81],{"title":82,"path":83,"stem":84},"Common errors","\u002Fen\u002Ftroubleshooting\u002Fcommon-errors","en\u002F4.troubleshooting\u002F1.common-errors",{"id":86,"title":60,"body":87,"description":1301,"extension":1302,"links":1303,"meta":1304,"navigation":1305,"path":61,"seo":1306,"stem":62,"__hash__":1307},"docs_en\u002Fen\u002F3.reference\u002F4.checkers.md",{"type":88,"value":89,"toc":1285},"minimark",[90,107,115,138,276,283,292,383,407,568,576,583,599,727,734,745,868,875,897,1032,1039,1050,1174,1181,1184,1278,1281],[91,92,93,94,97,98,102,103,106],"p",{},"A Checker only selects a Pin's Version. ",[95,96,64],"a",{"href":65}," obtain source code. Except for ",[99,100,101],"code",{},"cmd",", the constructors below accept attribute sets, not the string shorthand supported by ",[99,104,105],{},"pin.github",".",[108,109,111,112],"h2",{"id":110},"github-pincheckergithub","GitHub — ",[99,113,114],{},"pin.checker.github",[91,116,117,118,121,122,125,126,129,130,133,134,137],{},"Use ",[99,119,120],{},"target = \"owner\u002Frepo\""," or ",[99,123,124],{},"owner"," and ",[99,127,128],{},"repo",", without mixing them. Reads GitHub's ",[99,131,132],{},"\u002Freleases\u002Flatest"," and uses the original ",[99,135,136],{},"tag_name"," string. This differs from sorting Git tags.",[139,140,145],"pre",{"className":141,"code":142,"language":143,"meta":144,"style":144},"language-nix shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ pin }: {\n  patchelf = pin.mk {\n    checker = pin.checker.github { target = \"NixOS\u002Fpatchelf\"; };\n    fetcher = pin.fetcher.github { target = \"NixOS\u002Fpatchelf\"; };\n  };\n}\n","nix","",[99,146,147,166,185,229,264,270],{"__ignoreMap":144},[148,149,152,156,160,163],"span",{"class":150,"line":151},"line",1,[148,153,155],{"class":154},"sMK4o","{",[148,157,159],{"class":158},"sHdIc"," pin",[148,161,162],{"class":154}," }:",[148,164,165],{"class":154}," {\n",[148,167,169,173,176,178,180,183],{"class":150,"line":168},2,[148,170,172],{"class":171},"spNyl","  patchelf",[148,174,175],{"class":154}," =",[148,177,159],{"class":158},[148,179,106],{"class":154},[148,181,182],{"class":158},"mk",[148,184,165],{"class":154},[148,186,188,191,193,195,197,200,202,205,208,211,213,216,220,223,226],{"class":150,"line":187},3,[148,189,190],{"class":171},"    checker",[148,192,175],{"class":154},[148,194,159],{"class":158},[148,196,106],{"class":154},[148,198,199],{"class":158},"checker",[148,201,106],{"class":154},[148,203,204],{"class":158},"github",[148,206,207],{"class":154}," {",[148,209,210],{"class":171}," target",[148,212,175],{"class":154},[148,214,215],{"class":154}," \"",[148,217,219],{"class":218},"sfazB","NixOS\u002Fpatchelf",[148,221,222],{"class":154},"\"",[148,224,225],{"class":154},";",[148,227,228],{"class":154}," };\n",[148,230,232,235,237,239,241,244,246,248,250,252,254,256,258,260,262],{"class":150,"line":231},4,[148,233,234],{"class":171},"    fetcher",[148,236,175],{"class":154},[148,238,159],{"class":158},[148,240,106],{"class":154},[148,242,243],{"class":158},"fetcher",[148,245,106],{"class":154},[148,247,204],{"class":158},[148,249,207],{"class":154},[148,251,210],{"class":171},[148,253,175],{"class":154},[148,255,215],{"class":154},[148,257,219],{"class":218},[148,259,222],{"class":154},[148,261,225],{"class":154},[148,263,228],{"class":154},[148,265,267],{"class":150,"line":266},5,[148,268,269],{"class":154},"  };\n",[148,271,273],{"class":150,"line":272},6,[148,274,275],{"class":154},"}\n",[108,277,279,280],{"id":278},"git-pincheckergit","Git — ",[99,281,282],{},"pin.checker.git",[91,284,117,285,121,288,291],{},[99,286,287],{},"target",[99,289,290],{},"url",", without mixing them. Supported modes:",[293,294,295,313],"table",{},[296,297,298],"thead",{},[299,300,301,307,310],"tr",{},[302,303,304],"th",{},[99,305,306],{},"mode",[302,308,309],{},"Additional fields",[302,311,312],{},"Version",[314,315,316,331,346,360],"tbody",{},[299,317,318,325,328],{},[319,320,321,324],"td",{},[99,322,323],{},"head"," (default)",[319,326,327],{},"None",[319,329,330],{},"HEAD commit ID",[299,332,333,338,343],{},[319,334,335],{},[99,336,337],{},"branch",[319,339,340,341],{},"Required ",[99,342,337],{},[319,344,345],{},"Branch commit ID",[299,347,348,353,357],{},[319,349,350],{},[99,351,352],{},"ref",[319,354,340,355],{},[99,356,352],{},[319,358,359],{},"Commit ID for the ref; prefers the peeled commit of an annotated tag",[299,361,362,367,380],{},[319,363,364],{},[99,365,366],{},"tag",[319,368,369,370,373,374,373,377],{},"Optional ",[99,371,372],{},"include",", ",[99,375,376],{},"exclude",[99,378,379],{},"sort",[319,381,382],{},"Original tag selected after sorting",[91,384,385,125,387,389,390,392,393,396,397,400,401,125,404,106],{},[99,386,372],{},[99,388,376],{}," are Rust regular expressions filtering tag names. ",[99,391,379],{}," defaults to ",[99,394,395],{},"semver","; ",[99,398,399],{},"lexicographic"," is also available. Do not use lexical ordering in place of semantic version comparison for versions such as ",[99,402,403],{},"1.9",[99,405,406],{},"1.10",[139,408,410],{"className":141,"code":409,"language":143,"meta":144,"style":144},"{ pin }: {\n  patchelf = pin.mk {\n    checker = pin.checker.git {\n      target = \"https:\u002F\u002Fgithub.com\u002FNixOS\u002Fpatchelf.git\";\n      mode = \"tag\";\n      include = \"^[0-9]+[.][0-9]+[.][0-9]+$\";\n      sort = \"semver\";\n    };\n    fetcher = pin.fetcher.git { target = \"https:\u002F\u002Fgithub.com\u002FNixOS\u002Fpatchelf.git\"; };\n  };\n}\n",[99,411,412,422,436,455,472,487,503,519,525,558,563],{"__ignoreMap":144},[148,413,414,416,418,420],{"class":150,"line":151},[148,415,155],{"class":154},[148,417,159],{"class":158},[148,419,162],{"class":154},[148,421,165],{"class":154},[148,423,424,426,428,430,432,434],{"class":150,"line":168},[148,425,172],{"class":171},[148,427,175],{"class":154},[148,429,159],{"class":158},[148,431,106],{"class":154},[148,433,182],{"class":158},[148,435,165],{"class":154},[148,437,438,440,442,444,446,448,450,453],{"class":150,"line":187},[148,439,190],{"class":171},[148,441,175],{"class":154},[148,443,159],{"class":158},[148,445,106],{"class":154},[148,447,199],{"class":158},[148,449,106],{"class":154},[148,451,452],{"class":158},"git",[148,454,165],{"class":154},[148,456,457,460,462,464,467,469],{"class":150,"line":231},[148,458,459],{"class":171},"      target",[148,461,175],{"class":154},[148,463,215],{"class":154},[148,465,466],{"class":218},"https:\u002F\u002Fgithub.com\u002FNixOS\u002Fpatchelf.git",[148,468,222],{"class":154},[148,470,471],{"class":154},";\n",[148,473,474,477,479,481,483,485],{"class":150,"line":266},[148,475,476],{"class":171},"      mode",[148,478,175],{"class":154},[148,480,215],{"class":154},[148,482,366],{"class":218},[148,484,222],{"class":154},[148,486,471],{"class":154},[148,488,489,492,494,496,499,501],{"class":150,"line":272},[148,490,491],{"class":171},"      include",[148,493,175],{"class":154},[148,495,215],{"class":154},[148,497,498],{"class":218},"^[0-9]+[.][0-9]+[.][0-9]+$",[148,500,222],{"class":154},[148,502,471],{"class":154},[148,504,506,509,511,513,515,517],{"class":150,"line":505},7,[148,507,508],{"class":171},"      sort",[148,510,175],{"class":154},[148,512,215],{"class":154},[148,514,395],{"class":218},[148,516,222],{"class":154},[148,518,471],{"class":154},[148,520,522],{"class":150,"line":521},8,[148,523,524],{"class":154},"    };\n",[148,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556],{"class":150,"line":527},9,[148,529,234],{"class":171},[148,531,175],{"class":154},[148,533,159],{"class":158},[148,535,106],{"class":154},[148,537,243],{"class":158},[148,539,106],{"class":154},[148,541,452],{"class":158},[148,543,207],{"class":154},[148,545,210],{"class":171},[148,547,175],{"class":154},[148,549,215],{"class":154},[148,551,466],{"class":218},[148,553,222],{"class":154},[148,555,225],{"class":154},[148,557,228],{"class":154},[148,559,561],{"class":150,"line":560},10,[148,562,269],{"class":154},[148,564,566],{"class":150,"line":565},11,[148,567,275],{"class":154},[91,569,570,572,573,575],{},[99,571,337],{}," is only valid in branch mode, and ",[99,574,352],{}," only in ref mode. No matching tags or an unresolvable ref causes the Pin to fail.",[108,577,579,580],{"id":578},"cratesio-pincheckercrate","crates.io — ",[99,581,582],{},"pin.checker.crate",[91,584,117,585,121,587,590,591,594,595,598],{},[99,586,287],{},[99,588,589],{},"name"," for the crate name. Reads ",[99,592,593],{},"newest_version"," from crates.io, falling back to ",[99,596,597],{},"max_version"," if absent. It does not filter exclusively for stable releases.",[139,600,602],{"className":141,"code":601,"language":143,"meta":144,"style":144},"{ pin }: {\n  ripgrep = pin.mk {\n    checker = pin.checker.crate { target = \"ripgrep\"; };\n    fetcher = pin.fetcher.url {\n      url = version: \"https:\u002F\u002Fcrates.io\u002Fapi\u002Fv1\u002Fcrates\u002Fripgrep\u002F${version}\u002Fdownload\";\n    };\n  };\n}\n",[99,603,604,614,629,663,681,715,719,723],{"__ignoreMap":144},[148,605,606,608,610,612],{"class":150,"line":151},[148,607,155],{"class":154},[148,609,159],{"class":158},[148,611,162],{"class":154},[148,613,165],{"class":154},[148,615,616,619,621,623,625,627],{"class":150,"line":168},[148,617,618],{"class":171},"  ripgrep",[148,620,175],{"class":154},[148,622,159],{"class":158},[148,624,106],{"class":154},[148,626,182],{"class":158},[148,628,165],{"class":154},[148,630,631,633,635,637,639,641,643,646,648,650,652,654,657,659,661],{"class":150,"line":187},[148,632,190],{"class":171},[148,634,175],{"class":154},[148,636,159],{"class":158},[148,638,106],{"class":154},[148,640,199],{"class":158},[148,642,106],{"class":154},[148,644,645],{"class":158},"crate",[148,647,207],{"class":154},[148,649,210],{"class":171},[148,651,175],{"class":154},[148,653,215],{"class":154},[148,655,656],{"class":218},"ripgrep",[148,658,222],{"class":154},[148,660,225],{"class":154},[148,662,228],{"class":154},[148,664,665,667,669,671,673,675,677,679],{"class":150,"line":231},[148,666,234],{"class":171},[148,668,175],{"class":154},[148,670,159],{"class":158},[148,672,106],{"class":154},[148,674,243],{"class":158},[148,676,106],{"class":154},[148,678,290],{"class":158},[148,680,165],{"class":154},[148,682,683,686,688,691,694,696,699,702,705,708,711,713],{"class":150,"line":266},[148,684,685],{"class":171},"      url",[148,687,175],{"class":154},[148,689,690],{"class":158}," version",[148,692,693],{"class":154},":",[148,695,215],{"class":154},[148,697,698],{"class":218},"https:\u002F\u002Fcrates.io\u002Fapi\u002Fv1\u002Fcrates\u002Fripgrep\u002F",[148,700,701],{"class":154},"${",[148,703,704],{"class":158},"version",[148,706,707],{"class":154},"}",[148,709,710],{"class":218},"\u002Fdownload",[148,712,222],{"class":154},[148,714,471],{"class":154},[148,716,717],{"class":150,"line":272},[148,718,524],{"class":154},[148,720,721],{"class":150,"line":505},[148,722,269],{"class":154},[148,724,725],{"class":150,"line":521},[148,726,275],{"class":154},[108,728,730,731],{"id":729},"pypi-pincheckerpypi","PyPI — ",[99,732,733],{},"pin.checker.pypi",[91,735,117,736,121,738,740,741,744],{},[99,737,287],{},[99,739,589],{}," for the PyPI project name. Reads ",[99,742,743],{},"info.version"," from the project's JSON response. Choose the download independently with a version mapping:",[139,746,748],{"className":141,"code":747,"language":143,"meta":144,"style":144},"{ pin }: {\n  requests = pin.mk {\n    checker = pin.checker.pypi { target = \"requests\"; };\n    fetcher = pin.fetcher.zip {\n      url = version: \"https:\u002F\u002Ffiles.pythonhosted.org\u002Fpackages\u002Fsource\u002Fr\u002Frequests\u002Frequests-${version}.tar.gz\";\n    };\n  };\n}\n",[99,749,750,760,775,809,828,856,860,864],{"__ignoreMap":144},[148,751,752,754,756,758],{"class":150,"line":151},[148,753,155],{"class":154},[148,755,159],{"class":158},[148,757,162],{"class":154},[148,759,165],{"class":154},[148,761,762,765,767,769,771,773],{"class":150,"line":168},[148,763,764],{"class":171},"  requests",[148,766,175],{"class":154},[148,768,159],{"class":158},[148,770,106],{"class":154},[148,772,182],{"class":158},[148,774,165],{"class":154},[148,776,777,779,781,783,785,787,789,792,794,796,798,800,803,805,807],{"class":150,"line":187},[148,778,190],{"class":171},[148,780,175],{"class":154},[148,782,159],{"class":158},[148,784,106],{"class":154},[148,786,199],{"class":158},[148,788,106],{"class":154},[148,790,791],{"class":158},"pypi",[148,793,207],{"class":154},[148,795,210],{"class":171},[148,797,175],{"class":154},[148,799,215],{"class":154},[148,801,802],{"class":218},"requests",[148,804,222],{"class":154},[148,806,225],{"class":154},[148,808,228],{"class":154},[148,810,811,813,815,817,819,821,823,826],{"class":150,"line":231},[148,812,234],{"class":171},[148,814,175],{"class":154},[148,816,159],{"class":158},[148,818,106],{"class":154},[148,820,243],{"class":158},[148,822,106],{"class":154},[148,824,825],{"class":158},"zip",[148,827,165],{"class":154},[148,829,830,832,834,836,838,840,843,845,847,849,852,854],{"class":150,"line":266},[148,831,685],{"class":171},[148,833,175],{"class":154},[148,835,690],{"class":158},[148,837,693],{"class":154},[148,839,215],{"class":154},[148,841,842],{"class":218},"https:\u002F\u002Ffiles.pythonhosted.org\u002Fpackages\u002Fsource\u002Fr\u002Frequests\u002Frequests-",[148,844,701],{"class":154},[148,846,704],{"class":158},[148,848,707],{"class":154},[148,850,851],{"class":218},".tar.gz",[148,853,222],{"class":154},[148,855,471],{"class":154},[148,857,858],{"class":150,"line":272},[148,859,524],{"class":154},[148,861,862],{"class":150,"line":505},[148,863,269],{"class":154},[148,865,866],{"class":150,"line":521},[148,867,275],{"class":154},[108,869,871,872],{"id":870},"npm-pincheckernpm","npm — ",[99,873,874],{},"pin.checker.npm",[91,876,117,877,121,879,881,882,392,885,888,889,892,893,896],{},[99,878,287],{},[99,880,589],{},"; scoped package names are supported. ",[99,883,884],{},"distTag",[99,886,887],{},"latest"," and selects an entry from the registry's ",[99,890,891],{},"dist-tags",". Set another tag such as ",[99,894,895],{},"next"," as needed. The Checker does not scan and sort all published versions.",[139,898,900],{"className":141,"code":899,"language":143,"meta":144,"style":144},"{ pin }: {\n  vite = pin.mk {\n    checker = pin.checker.npm { target = \"vite\"; distTag = \"latest\"; };\n    fetcher = pin.fetcher.url {\n      url = version: \"https:\u002F\u002Fregistry.npmjs.org\u002Fvite\u002F-\u002Fvite-${version}.tgz\";\n    };\n  };\n}\n",[99,901,902,912,927,974,992,1020,1024,1028],{"__ignoreMap":144},[148,903,904,906,908,910],{"class":150,"line":151},[148,905,155],{"class":154},[148,907,159],{"class":158},[148,909,162],{"class":154},[148,911,165],{"class":154},[148,913,914,917,919,921,923,925],{"class":150,"line":168},[148,915,916],{"class":171},"  vite",[148,918,175],{"class":154},[148,920,159],{"class":158},[148,922,106],{"class":154},[148,924,182],{"class":158},[148,926,165],{"class":154},[148,928,929,931,933,935,937,939,941,944,946,948,950,952,955,957,959,962,964,966,968,970,972],{"class":150,"line":187},[148,930,190],{"class":171},[148,932,175],{"class":154},[148,934,159],{"class":158},[148,936,106],{"class":154},[148,938,199],{"class":158},[148,940,106],{"class":154},[148,942,943],{"class":158},"npm",[148,945,207],{"class":154},[148,947,210],{"class":171},[148,949,175],{"class":154},[148,951,215],{"class":154},[148,953,954],{"class":218},"vite",[148,956,222],{"class":154},[148,958,225],{"class":154},[148,960,961],{"class":171}," distTag",[148,963,175],{"class":154},[148,965,215],{"class":154},[148,967,887],{"class":218},[148,969,222],{"class":154},[148,971,225],{"class":154},[148,973,228],{"class":154},[148,975,976,978,980,982,984,986,988,990],{"class":150,"line":231},[148,977,234],{"class":171},[148,979,175],{"class":154},[148,981,159],{"class":158},[148,983,106],{"class":154},[148,985,243],{"class":158},[148,987,106],{"class":154},[148,989,290],{"class":158},[148,991,165],{"class":154},[148,993,994,996,998,1000,1002,1004,1007,1009,1011,1013,1016,1018],{"class":150,"line":266},[148,995,685],{"class":171},[148,997,175],{"class":154},[148,999,690],{"class":158},[148,1001,693],{"class":154},[148,1003,215],{"class":154},[148,1005,1006],{"class":218},"https:\u002F\u002Fregistry.npmjs.org\u002Fvite\u002F-\u002Fvite-",[148,1008,701],{"class":154},[148,1010,704],{"class":158},[148,1012,707],{"class":154},[148,1014,1015],{"class":218},".tgz",[148,1017,222],{"class":154},[148,1019,471],{"class":154},[148,1021,1022],{"class":150,"line":272},[148,1023,524],{"class":154},[148,1025,1026],{"class":150,"line":505},[148,1027,269],{"class":154},[148,1029,1030],{"class":150,"line":521},[148,1031,275],{"class":154},[108,1033,1035,1036],{"id":1034},"url-pincheckerurl","URL — ",[99,1037,1038],{},"pin.checker.url",[91,1040,117,1041,121,1043,1045,1046,1049],{},[99,1042,287],{},[99,1044,290],{},", with a required ",[99,1047,1048],{},"regex",". Fetches the URL and matches its text. Uses the first capture group if present, otherwise the entire match. The result must not be empty.",[139,1051,1053],{"className":141,"code":1052,"language":143,"meta":144,"style":144},"{ pin }: {\n  patchelf = pin.mk {\n    checker = pin.checker.url {\n      target = \"https:\u002F\u002Fapi.github.com\u002Frepos\u002FNixOS\u002Fpatchelf\u002Freleases\u002Flatest\";\n      regex = ''\"tag_name\"[[:space:]]*:[[:space:]]*\"([^\"]+)\"'';\n    };\n    fetcher = pin.fetcher.github { target = \"NixOS\u002Fpatchelf\"; };\n  };\n}\n",[99,1054,1055,1065,1079,1097,1112,1130,1134,1166,1170],{"__ignoreMap":144},[148,1056,1057,1059,1061,1063],{"class":150,"line":151},[148,1058,155],{"class":154},[148,1060,159],{"class":158},[148,1062,162],{"class":154},[148,1064,165],{"class":154},[148,1066,1067,1069,1071,1073,1075,1077],{"class":150,"line":168},[148,1068,172],{"class":171},[148,1070,175],{"class":154},[148,1072,159],{"class":158},[148,1074,106],{"class":154},[148,1076,182],{"class":158},[148,1078,165],{"class":154},[148,1080,1081,1083,1085,1087,1089,1091,1093,1095],{"class":150,"line":187},[148,1082,190],{"class":171},[148,1084,175],{"class":154},[148,1086,159],{"class":158},[148,1088,106],{"class":154},[148,1090,199],{"class":158},[148,1092,106],{"class":154},[148,1094,290],{"class":158},[148,1096,165],{"class":154},[148,1098,1099,1101,1103,1105,1108,1110],{"class":150,"line":231},[148,1100,459],{"class":171},[148,1102,175],{"class":154},[148,1104,215],{"class":154},[148,1106,1107],{"class":218},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FNixOS\u002Fpatchelf\u002Freleases\u002Flatest",[148,1109,222],{"class":154},[148,1111,471],{"class":154},[148,1113,1114,1117,1119,1122,1125,1128],{"class":150,"line":266},[148,1115,1116],{"class":171},"      regex",[148,1118,175],{"class":154},[148,1120,1121],{"class":154}," ''",[148,1123,1124],{"class":218},"\"tag_name\"[[:space:]]*:[[:space:]]*\"([^\"]+)\"",[148,1126,1127],{"class":154},"''",[148,1129,471],{"class":154},[148,1131,1132],{"class":150,"line":272},[148,1133,524],{"class":154},[148,1135,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164],{"class":150,"line":505},[148,1137,234],{"class":171},[148,1139,175],{"class":154},[148,1141,159],{"class":158},[148,1143,106],{"class":154},[148,1145,243],{"class":158},[148,1147,106],{"class":154},[148,1149,204],{"class":158},[148,1151,207],{"class":154},[148,1153,210],{"class":171},[148,1155,175],{"class":154},[148,1157,215],{"class":154},[148,1159,219],{"class":218},[148,1161,222],{"class":154},[148,1163,225],{"class":154},[148,1165,228],{"class":154},[148,1167,1168],{"class":150,"line":521},[148,1169,269],{"class":154},[148,1171,1172],{"class":150,"line":527},[148,1173,275],{"class":154},[108,1175,1177,1178],{"id":1176},"command-pincheckercmd","Command — ",[99,1179,1180],{},"pin.checker.cmd",[91,1182,1183],{},"Accepts a command string. The command must exit successfully and print a nonempty Version to stdout after trimming leading and trailing whitespace. Useful for fixed versions or upstream sources not covered by built-in Checkers.",[139,1185,1187],{"className":141,"code":1186,"language":143,"meta":144,"style":144},"{ pin }: {\n  patchelf = pin.mk {\n    checker = pin.checker.cmd \"printf '0.18.0'\";\n    fetcher = pin.fetcher.github { target = \"NixOS\u002Fpatchelf\"; };\n  };\n}\n",[99,1188,1189,1199,1213,1238,1270,1274],{"__ignoreMap":144},[148,1190,1191,1193,1195,1197],{"class":150,"line":151},[148,1192,155],{"class":154},[148,1194,159],{"class":158},[148,1196,162],{"class":154},[148,1198,165],{"class":154},[148,1200,1201,1203,1205,1207,1209,1211],{"class":150,"line":168},[148,1202,172],{"class":171},[148,1204,175],{"class":154},[148,1206,159],{"class":158},[148,1208,106],{"class":154},[148,1210,182],{"class":158},[148,1212,165],{"class":154},[148,1214,1215,1217,1219,1221,1223,1225,1227,1229,1231,1234,1236],{"class":150,"line":187},[148,1216,190],{"class":171},[148,1218,175],{"class":154},[148,1220,159],{"class":158},[148,1222,106],{"class":154},[148,1224,199],{"class":158},[148,1226,106],{"class":154},[148,1228,101],{"class":158},[148,1230,215],{"class":154},[148,1232,1233],{"class":218},"printf '0.18.0'",[148,1235,222],{"class":154},[148,1237,471],{"class":154},[148,1239,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268],{"class":150,"line":231},[148,1241,234],{"class":171},[148,1243,175],{"class":154},[148,1245,159],{"class":158},[148,1247,106],{"class":154},[148,1249,243],{"class":158},[148,1251,106],{"class":154},[148,1253,204],{"class":158},[148,1255,207],{"class":154},[148,1257,210],{"class":171},[148,1259,175],{"class":154},[148,1261,215],{"class":154},[148,1263,219],{"class":218},[148,1265,222],{"class":154},[148,1267,225],{"class":154},[148,1269,228],{"class":154},[148,1271,1272],{"class":150,"line":266},[148,1273,269],{"class":154},[148,1275,1276],{"class":150,"line":272},[148,1277,275],{"class":154},[91,1279,1280],{},"Command configuration is trusted executable input, not a sandbox. Print only the version to stdout and send diagnostics to stderr.",[1282,1283,1284],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}",{"title":144,"searchDepth":168,"depth":168,"links":1286},[1287,1289,1291,1293,1295,1297,1299],{"id":110,"depth":168,"text":1288},"GitHub — pin.checker.github",{"id":278,"depth":168,"text":1290},"Git — pin.checker.git",{"id":578,"depth":168,"text":1292},"crates.io — pin.checker.crate",{"id":729,"depth":168,"text":1294},"PyPI — pin.checker.pypi",{"id":870,"depth":168,"text":1296},"npm — pin.checker.npm",{"id":1034,"depth":168,"text":1298},"URL — pin.checker.url",{"id":1176,"depth":168,"text":1300},"Command — pin.checker.cmd","Arguments, version selection rules, and examples for all built-in version checkers.","md",null,{},true,{"title":60,"description":1301},"H5vYzU6lHmqFsRrU1-gjaxFnLLSgfoEw-j8WXdN8SL0",[1309,1311],{"title":56,"path":57,"stem":58,"description":1310,"children":-1},"pin.mk, pin.github, pin.git, and the relationship between Pins, Sources, and Packages.",{"title":64,"path":65,"stem":66,"description":1312,"children":-1},"Fields and version mappings for GitHub, Git, Hugging Face, URL, and archive fetchers.",1791031184762]