[{"data":1,"prerenderedAt":1258},["ShallowReactive",2],{"page:\u002Fdocs\u002F5.x\u002Freference\u002Fregistry":3},{"id":4,"title":5,"body":6,"description":1241,"extension":1242,"frontmatter":1243,"heading":5,"meta":1249,"navigation":1251,"order":1246,"path":1252,"seo":1253,"sitemap":1254,"source":1255,"stem":1256,"__hash__":1257},"docs\u002Fdocs\u002F5.x\u002Freference\u002Fregistry.md","Extension registry",{"type":7,"value":8,"toc":1216},"minimark",[9,35,42,63,70,75,86,115,136,142,145,228,237,243,246,385,395,445,466,471,489,652,658,678,682,692,877,981,994,997,1130,1134,1156,1185,1205],[10,11,12,13,21,22,21,28,34],"p",{},"The Kubb extension registry lists reviewed plugins, adapters, and parsers. Each entry pins one npm version or one GitHub release. ",[14,15,17],"a",{"href":16},"\u002Fdocs\u002F5.x\u002Freference\u002Fcommands\u002Fadd",[18,19,20],"code",{},"kubb add",", ",[14,23,25],{"href":24},"\u002Fdocs\u002F5.x\u002Freference\u002Fcommands\u002Fupdate",[18,26,27],{},"kubb update",[14,29,31],{"href":30},"\u002Fdocs\u002F5.x\u002Freference\u002Fcommands\u002Flist",[18,32,33],{},"kubb list",", kubb.dev, and Kubb Studio read it.",[10,36,37,38,41],{},"The base URL is ",[18,39,40],{},"https:\u002F\u002Fkubb.dev\u002Fregistry",". The registry is a set of plain static JSON documents:",[43,44,45,53,56],"ul",{},[46,47,48,49,52],"li",{},"Served as ",[18,50,51],{},"application\u002Fjson",", with CORS allowed, so any site or tool can read them.",[46,54,55],{},"Answered directly, never through a redirect.",[46,57,58,59,62],{},"Cached for 10 minutes (",[18,60,61],{},"cache-control: public, max-age=600",").",[10,64,65,69],{},[14,66,68],{"href":67},"https:\u002F\u002Fgithub.com\u002Fkubb-labs\u002Fregistry","kubb-labs\u002Fregistry"," builds the documents on every merge and once a day.",[71,72,74],"h2",{"id":73},"registry-ids","Registry ids",[10,76,77,78,81,82,85],{},"An id is ",[18,79,80],{},"\u003Cowner>\u002F\u003Cslug>",", such as ",[18,83,84],{},"kubb-labs\u002Fplugin-zod",":",[43,87,88,94,108],{},[46,89,90,93],{},[18,91,92],{},"\u003Cowner>"," is the GitHub owner of the source repository, in lowercase.",[46,95,96,99,100,103,104,107],{},[18,97,98],{},"\u003Cslug>"," is the package name without its scope. ",[18,101,102],{},"@kubb\u002Fplugin-zod"," gives ",[18,105,106],{},"plugin-zod",".",[46,109,110,111,114],{},"Both parts match ",[18,112,113],{},"[a-z0-9]+(?:-[a-z0-9]+)*",": lowercase letters and digits joined by single hyphens.",[10,116,117,118,120,121,124,125,128,129,132,133,107],{},"The CLI accepts a bare ",[18,119,98],{}," and reads it as ",[18,122,123],{},"kubb-labs\u002F\u003Cslug>",". An entry owned by ",[18,126,127],{},"kubb-labs"," has ",[18,130,131],{},"type: \"official\"",". Every other entry is ",[18,134,135],{},"community",[71,137,139],{"id":138},"index",[18,140,141],{},"GET \u003Cbase>\u002Findex.json",[10,143,144],{},"Returns every extension in the registry:",[146,147,151],"pre",{"language":148,"code":149,"class":150},"typescript","type RegistryIndex = {\n  version: 1\n  generatedAt: string\n  extensions: Array\u003CRegistryEntry>\n}","highlights",[18,152,154,174,175,174,189,174,202,174,223],{"class":153},"language-typescript",[155,156,159,163,167,170],"span",{"class":157,"style":158},"line","display: inline",[155,160,162],{"style":161},"color:#d73a49;--hls-dark:#f97583","type ",[155,164,166],{"style":165},"color:#6f42c1;--hls-dark:#b392f0","RegistryIndex ",[155,168,169],{"style":161},"= ",[155,171,173],{"style":172},"color:#005cc5;--hls-dark:#79b8ff","{","\n",[155,176,177,180,183,186],{"class":157,"style":158},[155,178,179],{"style":172},"  ",[155,181,182],{"style":172},"version",[155,184,185],{"style":161},": ",[155,187,188],{"style":172},"1",[155,190,191,193,197,199],{"class":157,"style":158},[155,192,179],{"style":172},[155,194,196],{"style":195},"color:#24292e;--hls-dark:#e1e4e8","generatedAt",[155,198,185],{"style":195},[155,200,201],{"style":165},"string",[155,203,204,206,209,211,214,217,220],{"class":157,"style":158},[155,205,179],{"style":165},[155,207,208],{"style":195},"extensions",[155,210,185],{"style":195},[155,212,213],{"style":165},"Array",[155,215,216],{"style":161},"\u003C",[155,218,219],{"style":165},"RegistryEntry",[155,221,222],{"style":161},">",[155,224,225],{"class":157,"style":158},[155,226,227],{"style":172},"}",[10,229,230,231,233,234,236],{},"The CLI rejects an index whose ",[18,232,182],{}," is not ",[18,235,188],{},". It skips an entry that fails validation and keeps the rest.",[71,238,240],{"id":239},"detail",[18,241,242],{},"GET \u003Cbase>\u002F\u003Cowner>\u002F\u003Cslug>.json",[10,244,245],{},"Returns one extension and the docs its pinned version ships:",[146,247,249],{"language":148,"code":248,"class":150},"type RegistryDetail = RegistryEntry & {\n  overview: string | null\n  options?: string | null\n  guides?: Array\u003CRegistryGuide>\n}\n\ntype RegistryGuide = {\n  id: string\n  title: string\n  description: string\n  content: string\n}",[18,250,251,174,268,174,286,174,302,174,320,174,324,174,326,174,337,174,348,174,359,174,370,174,381],{"class":153},[155,252,253,255,258,260,263,266],{"class":157,"style":158},[155,254,162],{"style":161},[155,256,257],{"style":165},"RegistryDetail ",[155,259,169],{"style":161},[155,261,262],{"style":165},"RegistryEntry ",[155,264,265],{"style":161},"& ",[155,267,173],{"style":172},[155,269,270,272,275,277,280,283],{"class":157,"style":158},[155,271,179],{"style":172},[155,273,274],{"style":172},"overview",[155,276,185],{"style":195},[155,278,279],{"style":165},"string ",[155,281,282],{"style":161},"| ",[155,284,285],{"style":172},"null",[155,287,288,290,293,296,298,300],{"class":157,"style":158},[155,289,179],{"style":172},[155,291,292],{"style":195},"options",[155,294,295],{"style":195},"?: ",[155,297,279],{"style":165},[155,299,282],{"style":161},[155,301,285],{"style":172},[155,303,304,306,309,311,313,315,318],{"class":157,"style":158},[155,305,179],{"style":172},[155,307,308],{"style":195},"guides",[155,310,295],{"style":195},[155,312,213],{"style":165},[155,314,216],{"style":161},[155,316,317],{"style":165},"RegistryGuide",[155,319,222],{"style":161},[155,321,322],{"class":157,"style":158},[155,323,227],{"style":172},[155,325],{"class":157,"style":158},[155,327,328,330,333,335],{"class":157,"style":158},[155,329,162],{"style":161},[155,331,332],{"style":165},"RegistryGuide ",[155,334,169],{"style":161},[155,336,173],{"style":172},[155,338,339,341,344,346],{"class":157,"style":158},[155,340,179],{"style":172},[155,342,343],{"style":172},"id",[155,345,185],{"style":195},[155,347,201],{"style":165},[155,349,350,352,355,357],{"class":157,"style":158},[155,351,179],{"style":165},[155,353,354],{"style":195},"title",[155,356,185],{"style":195},[155,358,201],{"style":165},[155,360,361,363,366,368],{"class":157,"style":158},[155,362,179],{"style":165},[155,364,365],{"style":195},"description",[155,367,185],{"style":195},[155,369,201],{"style":165},[155,371,372,374,377,379],{"class":157,"style":158},[155,373,179],{"style":165},[155,375,376],{"style":195},"content",[155,378,185],{"style":195},[155,380,201],{"style":165},[155,382,383],{"class":157,"style":158},[155,384,227],{"style":172},[10,386,387,388,85],{},"The fields come from the package's ",[14,389,391,394],{"href":390},"\u002Fdocs\u002F5.x\u002Freference\u002Fkit\u002Fextension-docs",[18,392,393],{},"docs\u002F"," folder",[43,396,397,406,417],{},[46,398,399,401,402,405],{},[18,400,274],{}," is the Markdown of ",[18,403,404],{},"docs\u002Foverview.md",", or the overview the reviewer wrote.",[46,407,408,401,410,413,414,416],{},[18,409,292],{},[18,411,412],{},"docs\u002Foptions.md",", or ",[18,415,285],{}," when the package ships none.",[46,418,419,421,422,425,426,428,429,21,432,434,435,438,439,441,442,444],{},[18,420,308],{}," holds one entry per ",[18,423,424],{},"docs\u002Fguides\u002F\u003Cid>.md",", in file name order. ",[18,427,343],{}," is the file name without ",[18,430,431],{},".md",[18,433,354],{}," is the first ",[18,436,437],{},"#"," heading, ",[18,440,365],{}," is the first paragraph after it, and ",[18,443,376],{}," is the whole file.",[10,446,447,448,450,451,453,454,450,456,459,460,462,463],{},"Read a missing ",[18,449,292],{}," as ",[18,452,285],{}," and a missing ",[18,455,308],{},[18,457,458],{},"[]",". An unknown id answers 404, and ",[18,461,20],{}," reports ",[18,464,465],{},"\"\u003Cid>\" is not in the registry at \u003Cregistry>.",[71,467,469],{"id":468},"registry-entry",[18,470,219],{},[10,472,473,476,477,21,479,21,482,485,486,488],{},[18,474,475],{},"@kubb\u002Fcore"," exports the ",[18,478,219],{},[18,480,481],{},"RegistryIndex",[18,483,484],{},"RegistryDetail",", and ",[18,487,317],{}," types.",[490,491,492,497,504,509,516,521,533,538,591,596,600,605,616,621,625,631,634,640,643,649],"field-group",{},[493,494,495],"h3",{"id":343},[18,496,343],{},[498,499,501,502,107],"field",{"type":201,":required":500},"true","The registry id, such as ",[18,503,84],{},[493,505,507],{"id":506},"kind",[18,508,506],{},[498,510,512,513,107],{"type":511,":required":500},"'plugin' | 'adapter' | 'parser'","The extension kind. It always equals ",[18,514,515],{},"manifest.kind",[493,517,519],{"id":518},"type",[18,520,518],{},[498,522,524,527,528,530,531,107],{"type":523,":required":500},"'official' | 'community'",[18,525,526],{},"official"," when the owner is ",[18,529,127],{},", otherwise ",[18,532,135],{},[493,534,536],{"id":535},"artifact",[18,537,535],{},[498,539,541,544],{"type":540,":required":500},"RegistryArtifact",[10,542,543],{},"The install pin the registry approved. It has one of two kinds:",[43,545,546,560],{},[46,547,548,185,551,553,554,556,557,107],{},[18,549,550],{},"{ kind: 'npm', package, version }",[18,552,20],{}," and ",[18,555,27],{}," install ",[18,558,559],{},"\u003Cpackage>@\u003Cversion>",[46,561,562,565,566,553,568,556,570,573,574,577,578,581,582,485,585,588,589,107],{},[18,563,564],{},"{ kind: 'github', package, version, owner, repo, tag, commit }",": a release of a package at the repository root. ",[18,567,20],{},[18,569,27],{},[18,571,572],{},"github:\u003Cowner>\u002F\u003Crepo>#\u003Ccommit>",". ",[18,575,576],{},"package"," is the ",[18,579,580],{},"name"," in its ",[18,583,584],{},"package.json",[18,586,587],{},"tag"," names ",[18,590,182],{},[493,592,594],{"id":593},"repository",[18,595,593],{},[498,597,599],{"type":598},"{ url: string }","The source on GitHub. An npm artifact may point at the package folder. A GitHub artifact uses the repository root.",[493,601,603],{"id":602},"manifest",[18,604,602],{},[498,606,608,609,615],{"type":607,":required":500},"ExtensionManifest","The ",[14,610,612],{"href":611},"\u002Fdocs\u002F5.x\u002Freference\u002Fkit\u002Fmanifest",[18,613,614],{},"kubb-extension.json"," of the pinned version, with the reviewer's main category and listing overrides applied. An official version released before manifests ships none. The index leaves out that extension until a version that ships a manifest is pinned.",[493,617,619],{"id":618},"stats",[18,620,618],{},[498,622,624],{"type":623},"{ downloads?: number; weekly?: number; stars?: number }","Download and star counts, when known.",[493,626,628],{"id":627},"submittedat",[18,629,630],{},"submittedAt",[498,632,633],{"type":201,":required":500},"When the extension was submitted. It never changes.",[493,635,637],{"id":636},"publishedat",[18,638,639],{},"publishedAt",[498,641,642],{"type":201,":required":500},"When the first version was approved and listed. It never changes.",[493,644,646],{"id":645},"reviewedat",[18,647,648],{},"reviewedAt",[498,650,651],{"type":201,":required":500},"When the pinned version was approved. Every version bump moves it.",[10,653,654,655,107],{},"Timestamps are UTC, to the second, such as ",[18,656,657],{},"2026-10-12T20:00:00Z",[10,659,660,661,663,664,21,666,668,669,671,672,674,675,677],{},"The CLI skips an entry unless ",[18,662,343],{}," is a full ",[18,665,80],{},[18,667,535],{}," is an npm or GitHub pin with an exact semver version, and ",[18,670,602],{}," is valid with the entry's ",[18,673,506],{},". A detail document's ",[18,676,343],{}," must equal the id the CLI asked for.",[71,679,681],{"id":680},"records","Records",[10,683,684,685,687,688,691],{},"The reviewed records live in ",[14,686,68],{"href":67}," at ",[18,689,690],{},"extensions\u002F\u003Cowner>\u002F\u003Cslug>.json",". The registry's build turns them into the documents above. Merging a record approves its pinned version.",[146,693,697],{"language":694,"filename":695,"code":696,"class":150},"json","extensions\u002Fkubb-labs\u002Fplugin-zod.json","{\n  \"$schema\": \"https:\u002F\u002Fkubb.dev\u002Fschemas\u002Fregistry-record.json\",\n  \"id\": \"kubb-labs\u002Fplugin-zod\",\n  \"artifact\": { \"kind\": \"npm\", \"package\": \"@kubb\u002Fplugin-zod\", \"version\": \"5.4.4\" },\n  \"repository\": { \"url\": \"https:\u002F\u002Fgithub.com\u002Fkubb-labs\u002Fplugins\u002Ftree\u002Fmain\u002Fpackages\u002Fplugin-zod\" },\n  \"submittedAt\": \"2026-10-12T20:11:53Z\",\n  \"submittedBy\": \"stijnvanhulle\",\n  \"publishedAt\": \"2026-10-12T20:11:53Z\",\n  \"reviewedAt\": \"2026-10-12T20:11:53Z\",\n  \"categories\": [\"validation\"]\n}",[18,698,700,174,704,174,720,174,734,174,778,174,801,174,815,174,829,174,842,174,855,174,873],{"class":699},"language-json",[155,701,702],{"class":157,"style":158},[155,703,173],{"style":172},[155,705,706,708,711,713,717],{"class":157,"style":158},[155,707,179],{"style":172},[155,709,710],{"style":172},"\"$schema\"",[155,712,185],{"style":161},[155,714,716],{"style":715},"color:#032f62;--hls-dark:#9ecbff","\"https:\u002F\u002Fkubb.dev\u002Fschemas\u002Fregistry-record.json\"",[155,718,719],{"style":161},",",[155,721,722,724,727,729,732],{"class":157,"style":158},[155,723,179],{"style":161},[155,725,726],{"style":172},"\"id\"",[155,728,185],{"style":161},[155,730,731],{"style":715},"\"kubb-labs\u002Fplugin-zod\"",[155,733,719],{"style":161},[155,735,736,738,741,743,746,749,751,754,756,759,761,764,766,769,771,774,776],{"class":157,"style":158},[155,737,179],{"style":161},[155,739,740],{"style":172},"\"artifact\"",[155,742,185],{"style":161},[155,744,745],{"style":172},"{ ",[155,747,748],{"style":172},"\"kind\"",[155,750,185],{"style":161},[155,752,753],{"style":715},"\"npm\"",[155,755,21],{"style":161},[155,757,758],{"style":172},"\"package\"",[155,760,185],{"style":161},[155,762,763],{"style":715},"\"@kubb\u002Fplugin-zod\"",[155,765,21],{"style":161},[155,767,768],{"style":172},"\"version\"",[155,770,185],{"style":161},[155,772,773],{"style":715},"\"5.4.4\" ",[155,775,227],{"style":172},[155,777,719],{"style":161},[155,779,780,782,785,787,789,792,794,797,799],{"class":157,"style":158},[155,781,179],{"style":161},[155,783,784],{"style":172},"\"repository\"",[155,786,185],{"style":161},[155,788,745],{"style":172},[155,790,791],{"style":172},"\"url\"",[155,793,185],{"style":161},[155,795,796],{"style":715},"\"https:\u002F\u002Fgithub.com\u002Fkubb-labs\u002Fplugins\u002Ftree\u002Fmain\u002Fpackages\u002Fplugin-zod\" ",[155,798,227],{"style":172},[155,800,719],{"style":161},[155,802,803,805,808,810,813],{"class":157,"style":158},[155,804,179],{"style":161},[155,806,807],{"style":172},"\"submittedAt\"",[155,809,185],{"style":161},[155,811,812],{"style":715},"\"2026-10-12T20:11:53Z\"",[155,814,719],{"style":161},[155,816,817,819,822,824,827],{"class":157,"style":158},[155,818,179],{"style":161},[155,820,821],{"style":172},"\"submittedBy\"",[155,823,185],{"style":161},[155,825,826],{"style":715},"\"stijnvanhulle\"",[155,828,719],{"style":161},[155,830,831,833,836,838,840],{"class":157,"style":158},[155,832,179],{"style":161},[155,834,835],{"style":172},"\"publishedAt\"",[155,837,185],{"style":161},[155,839,812],{"style":715},[155,841,719],{"style":161},[155,843,844,846,849,851,853],{"class":157,"style":158},[155,845,179],{"style":161},[155,847,848],{"style":172},"\"reviewedAt\"",[155,850,185],{"style":161},[155,852,812],{"style":715},[155,854,719],{"style":161},[155,856,857,859,862,864,867,870],{"class":157,"style":158},[155,858,179],{"style":161},[155,860,861],{"style":172},"\"categories\"",[155,863,185],{"style":161},[155,865,866],{"style":172},"[",[155,868,869],{"style":715},"\"validation\"",[155,871,872],{"style":172},"]",[155,874,875],{"class":157,"style":158},[155,876,227],{"style":172},[878,879,880,896],"table",{},[881,882,883],"thead",{},[884,885,886,890,893],"tr",{},[887,888,889],"th",{},"Field",[887,891,892],{},"Written by",[887,894,895],{},"Meaning",[897,898,899,930,942,958],"tbody",{},[884,900,901,916,919],{},[902,903,904,21,906,21,908,21,910,21,912,21,914],"td",{},[18,905,343],{},[18,907,535],{},[18,909,593],{},[18,911,630],{},[18,913,639],{},[18,915,648],{},[902,917,918],{},"Bot",[902,920,921,922,573,927,929],{},"As in ",[14,923,925],{"href":924},"#registry-entry",[18,926,219],{},[18,928,343],{}," must equal the file path.",[884,931,932,937,939],{},[902,933,934],{},[18,935,936],{},"submittedBy",[902,938,918],{},[902,940,941],{},"The GitHub user who opened the submission.",[884,943,944,949,952],{},[902,945,946],{},[18,947,948],{},"categories",[902,950,951],{},"Reviewer",[902,953,954,955,107],{},"Category slugs. The first is the main one and replaces the manifest's ",[18,956,957],{},"category",[884,959,960,965,967],{},[902,961,962],{},[18,963,964],{},"listing",[902,966,951],{},[902,968,969,970,21,973,21,975,485,978,107],{},"Optional overrides for ",[18,971,972],{},"displayName",[18,974,365],{},[18,976,977],{},"tags",[18,979,980],{},"icon",[10,982,983,984,989,990,107],{},"The record JSON Schema is ",[14,985,987],{"href":986},"https:\u002F\u002Fkubb.dev\u002Fschemas\u002Fregistry-record.json",[18,988,986],{},". To add a record, follow ",[14,991,993],{"href":992},"\u002Fdocs\u002F5.x\u002Fhow-to\u002Fsubmit-to-the-registry","Submit to the registry",[493,995,996],{"id":948},"Categories",[878,998,999,1009],{},[881,1000,1001],{},[884,1002,1003,1006],{},[887,1004,1005],{},"Slug",[887,1007,1008],{},"Use for",[897,1010,1011,1021,1031,1041,1051,1061,1071,1081,1091,1101,1111,1120],{},[884,1012,1013,1018],{},[902,1014,1015],{},[18,1016,1017],{},"types",[902,1019,1020],{},"Generate TypeScript types and interfaces.",[884,1022,1023,1028],{},[902,1024,1025],{},[18,1026,1027],{},"validation",[902,1029,1030],{},"Validate data at runtime with schemas.",[884,1032,1033,1038],{},[902,1034,1035],{},[18,1036,1037],{},"client",[902,1039,1040],{},"Generate HTTP clients that call the API.",[884,1042,1043,1048],{},[902,1044,1045],{},[18,1046,1047],{},"framework",[902,1049,1050],{},"Generate hooks and composables for UI frameworks.",[884,1052,1053,1058],{},[902,1054,1055],{},[18,1056,1057],{},"mocks",[902,1059,1060],{},"Generate mock data and mock servers.",[884,1062,1063,1068],{},[902,1064,1065],{},[18,1066,1067],{},"testing",[902,1069,1070],{},"Generate tests and test helpers.",[884,1072,1073,1078],{},[902,1074,1075],{},[18,1076,1077],{},"documentation",[902,1079,1080],{},"Generate API documentation.",[884,1082,1083,1088],{},[902,1084,1085],{},[18,1086,1087],{},"ai",[902,1089,1090],{},"Expose the API to AI agents and tools.",[884,1092,1093,1098],{},[902,1094,1095],{},[18,1096,1097],{},"output",[902,1099,1100],{},"Shape the generated files, such as barrel files.",[884,1102,1103,1108],{},[902,1104,1105],{},[18,1106,1107],{},"openapi",[902,1109,1110],{},"Read OpenAPI and Swagger specs.",[884,1112,1113,1117],{},[902,1114,1115],{},[18,1116,148],{},[902,1118,1119],{},"Print generated code as TypeScript.",[884,1121,1122,1127],{},[902,1123,1124],{},[18,1125,1126],{},"docs",[902,1128,1129],{},"Print generated code as Markdown.",[71,1131,1133],{"id":1132},"host-your-own-registry","Host your own registry",[10,1135,1136,1137,1140,1141,1143,1144,1147,1148,1151,1152,1155],{},"Serve the same two documents from any static host, then point the CLI at it with ",[18,1138,1139],{},"KUBB_REGISTRY",". To build them from your own records, fork ",[14,1142,68],{"href":67},", replace ",[18,1145,1146],{},"extensions\u002F",", and run ",[18,1149,1150],{},"pnpm build",". The ",[18,1153,1154],{},"dist\u002F"," folder is the whole registry.",[146,1157,1161],{"language":1158,"filename":1159,"code":1160,"class":150},"shell","Terminal","KUBB_REGISTRY=https:\u002F\u002Fregistry.example.com kubb add acme\u002Fplugin-graphql",[18,1162,1164],{"class":1163},"language-shell",[155,1165,1166,1168,1171,1174,1176,1179,1182],{"class":157,"style":158},[155,1167,1139],{"style":195},[155,1169,1170],{"style":161},"=",[155,1172,1173],{"style":195},"https",[155,1175,85],{"style":195},[155,1177,1178],{"style":195},"\u002F\u002Fregistry.example.com ",[155,1180,1181],{"style":165},"kubb ",[155,1183,1184],{"style":195},"add acme\u002Fplugin-graphql",[10,1186,1187,1188,553,1191,573,1194,1196,1197,1200,1201,1204],{},"With that base URL, the CLI reads ",[18,1189,1190],{},"https:\u002F\u002Fregistry.example.com\u002Findex.json",[18,1192,1193],{},"https:\u002F\u002Fregistry.example.com\u002Facme\u002Fplugin-graphql.json",[18,1195,1139],{}," must start with ",[18,1198,1199],{},"http:\u002F\u002F"," or ",[18,1202,1203],{},"https:\u002F\u002F",", and trailing slashes are removed.",[10,1206,1207,1208,1211,1212,1215],{},"Your documents must follow the shapes on this page, and ",[18,1209,1210],{},"index.json"," must set ",[18,1213,1214],{},"version: 1",". Answer 404 for an unknown id. Studio always reads the kubb.dev index, so a private registry changes what the CLI installs, not what Studio lists.",{"title":1217,"searchDepth":1218,"depth":1218,"links":1219},"",5,[1220,1222,1223,1224,1237,1240],{"id":73,"depth":1221,"text":74},2,{"id":138,"depth":1221,"text":141},{"id":239,"depth":1221,"text":242},{"id":468,"depth":1221,"text":219,"children":1225},[1226,1228,1229,1230,1231,1232,1233,1234,1235,1236],{"id":343,"depth":1227,"text":343},3,{"id":506,"depth":1227,"text":506},{"id":518,"depth":1227,"text":518},{"id":535,"depth":1227,"text":535},{"id":593,"depth":1227,"text":593},{"id":602,"depth":1227,"text":602},{"id":618,"depth":1227,"text":618},{"id":627,"depth":1227,"text":630},{"id":636,"depth":1227,"text":639},{"id":645,"depth":1227,"text":648},{"id":680,"depth":1221,"text":681,"children":1238},[1239],{"id":948,"depth":1227,"text":996},{"id":1132,"depth":1221,"text":1133},"Reference for the Kubb extension registry protocol at kubb.dev\u002Fregistry, its index and detail documents, registry ids, records that pin one npm version or GitHub release, and how to host your own registry.","md",{"layout":1244,"title":5,"description":1241,"outline":1245,"order":1246,"navigation":1247},"doc",[1221,1227],10,{"title":5,"icon":1248},"i-iconoir-database",{"layout":1244,"outline":1250},[1221,1227],{"title":5,"icon":1248},"\u002Fdocs\u002F5.x\u002Freference\u002Fregistry",{"title":5,"description":1241},{"loc":1252},"kubb-labs\u002Fkubb\u002Fdocs\u002F5.x\u002Freference\u002Fregistry.md","docs\u002F5.x\u002Freference\u002Fregistry","mgfnrB2H7EFaMYMAERnu1w0VsUt97_DBfVkYcQ6atpQ",1793615939669]