[{"data":1,"prerenderedAt":1530},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-quick-start":60,"-getting-started-quick-start-surround":1527},[4,15,40,50],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10],{"title":11,"path":12,"stem":13,"icon":14},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start","i-lucide-rocket",{"title":16,"path":17,"stem":18,"children":19,"page":6},"Guide","\u002Fguide","2.guide",[20,25,30,35],{"title":21,"path":22,"stem":23,"icon":24},"Defining diagnostics","\u002Fguide\u002Fdefining-diagnostics","2.guide\u002F1.defining-diagnostics","i-lucide-list-tree",{"title":26,"path":27,"stem":28,"icon":29},"Reporters and formatters","\u002Fguide\u002Freporters-and-formatters","2.guide\u002F2.reporters-and-formatters","i-lucide-share-2",{"title":31,"path":32,"stem":33,"icon":34},"Production builds","\u002Fguide\u002Fproduction-builds","2.guide\u002F3.production-builds","i-lucide-scissors",{"title":36,"path":37,"stem":38,"icon":39},"Dev collector","\u002Fguide\u002Fdev-collector","2.guide\u002F4.dev-collector","i-lucide-terminal",{"title":41,"path":42,"stem":43,"children":44,"page":6},"Recipes","\u002Frecipes","3.recipes",[45],{"title":46,"path":47,"stem":48,"icon":49},"Diagnostic registry","\u002Frecipes\u002Fdiagnostic-registry","3.recipes\u002F1.diagnostic-registry","i-lucide-book-open",{"title":51,"path":52,"stem":53,"children":54,"page":6},"Api","\u002Fapi","4.api",[55],{"title":56,"path":57,"stem":58,"icon":59},"Reference","\u002Fapi\u002Freference","4.api\u002F1.reference","i-lucide-file-code",{"id":61,"title":11,"body":62,"description":1520,"extension":1521,"links":1522,"meta":1523,"navigation":1524,"path":12,"seo":1525,"stem":13,"__hash__":1526},"docs\u002F1.getting-started\u002F1.quick-start.md",{"type":63,"value":64,"toc":1512},"minimark",[65,73,76,81,138,141,145,148,754,761,765,1300,1307,1311,1315,1318,1322,1330,1489,1493,1508],[66,67,68,72],"p",{},[69,70,71],"code",{},"nostics"," is for library authors who want errors and warnings to be easy to recognize, document, and fix.",[66,74,75],{},"Instead of throwing anonymous strings from different places, you define a small catalog of diagnostic codes. Each code has a stable name, a message, an optional fix, and an optional docs URL.",[77,78,80],"h2",{"id":79},"install","Install",[82,83,84,109,124],"code-group",{},[85,86,92],"pre",{"className":87,"code":88,"filename":89,"language":90,"meta":91,"style":91},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add nostics\n","pnpm","bash","",[69,93,94],{"__ignoreMap":91},[95,96,99,102,106],"span",{"class":97,"line":98},"line",1,[95,100,89],{"class":101},"sBMFI",[95,103,105],{"class":104},"sfazB"," add",[95,107,108],{"class":104}," nostics\n",[85,110,113],{"className":87,"code":111,"filename":112,"language":90,"meta":91,"style":91},"npm install nostics\n","npm",[69,114,115],{"__ignoreMap":91},[95,116,117,119,122],{"class":97,"line":98},[95,118,112],{"class":101},[95,120,121],{"class":104}," install",[95,123,108],{"class":104},[85,125,128],{"className":87,"code":126,"filename":127,"language":90,"meta":91,"style":91},"yarn add nostics\n","yarn",[69,129,130],{"__ignoreMap":91},[95,131,132,134,136],{"class":97,"line":98},[95,133,127],{"class":101},[95,135,105],{"class":104},[95,137,108],{"class":104},[66,139,140],{},"The package is ESM only.",[77,142,144],{"id":143},"define-codes","Define codes",[66,146,147],{},"Create one or multiple diagnostics file(s) in your library.",[85,149,154],{"className":150,"code":151,"filename":152,"language":153,"meta":91,"style":91},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createConsoleReporter, defineDiagnostics } from 'nostics'\n\nexport const diagnostics = defineDiagnostics({\n  docsBase: code => `https:\u002F\u002Fnuxt.com\u002Fe\u002F${code.replace('NUXT_', '').toLowerCase()}`,\n  reporters: [createConsoleReporter()],\n  codes: {\n    NUXT_B2011: {\n      why: (p: { src: string, mode: 'client' | 'server' }) => {\n        const expected = p.mode === 'client' ? 'server' : 'client'\n        return `Plugin \"${p.src}\" is ${expected}-only but was registered with mode \"${p.mode}\".`\n      },\n      fix: (p: { mode: 'client' | 'server' }) => {\n        const expected = p.mode === 'client' ? 'server' : 'client'\n        return `Rename the file or register it with mode \"${expected}\".`\n      },\n    },\n    NUXT_B5001: {\n      why: (p: { value: string, configPath: string }) =>\n        `Invalid compatibilityDate \"${p.value}\" in ${p.configPath}.`,\n      fix: (p: { example: string }) => `Use an ISO date like \"${p.example}\", or \"latest\".`,\n    },\n  },\n})\n","src\u002Fdiagnostics.ts","ts",[69,155,156,190,197,222,287,307,318,328,384,431,483,489,529,568,588,593,599,609,645,686,735,740,746],{"__ignoreMap":91},[95,157,158,162,166,170,173,176,179,182,185,187],{"class":97,"line":98},[95,159,161],{"class":160},"s7zQu","import",[95,163,165],{"class":164},"sMK4o"," {",[95,167,169],{"class":168},"sTEyZ"," createConsoleReporter",[95,171,172],{"class":164},",",[95,174,175],{"class":168}," defineDiagnostics",[95,177,178],{"class":164}," }",[95,180,181],{"class":160}," from",[95,183,184],{"class":164}," '",[95,186,71],{"class":104},[95,188,189],{"class":164},"'\n",[95,191,193],{"class":97,"line":192},2,[95,194,196],{"emptyLinePlaceholder":195},true,"\n",[95,198,200,203,207,210,213,216,219],{"class":97,"line":199},3,[95,201,202],{"class":160},"export",[95,204,206],{"class":205},"spNyl"," const",[95,208,209],{"class":168}," diagnostics ",[95,211,212],{"class":164},"=",[95,214,175],{"class":215},"s2Zo4",[95,217,218],{"class":168},"(",[95,220,221],{"class":164},"{\n",[95,223,225,228,231,235,238,241,244,247,249,252,255,257,260,263,265,267,270,273,275,278,281,284],{"class":97,"line":224},4,[95,226,227],{"class":215},"  docsBase",[95,229,230],{"class":164},":",[95,232,234],{"class":233},"sHdIc"," code",[95,236,237],{"class":205}," =>",[95,239,240],{"class":164}," `",[95,242,243],{"class":104},"https:\u002F\u002Fnuxt.com\u002Fe\u002F",[95,245,246],{"class":164},"${",[95,248,69],{"class":168},[95,250,251],{"class":164},".",[95,253,254],{"class":215},"replace",[95,256,218],{"class":168},[95,258,259],{"class":164},"'",[95,261,262],{"class":104},"NUXT_",[95,264,259],{"class":164},[95,266,172],{"class":164},[95,268,269],{"class":164}," ''",[95,271,272],{"class":168},")",[95,274,251],{"class":164},[95,276,277],{"class":215},"toLowerCase",[95,279,280],{"class":168},"()",[95,282,283],{"class":164},"}`",[95,285,286],{"class":164},",\n",[95,288,290,294,296,299,302,305],{"class":97,"line":289},5,[95,291,293],{"class":292},"swJcz","  reporters",[95,295,230],{"class":164},[95,297,298],{"class":168}," [",[95,300,301],{"class":215},"createConsoleReporter",[95,303,304],{"class":168},"()]",[95,306,286],{"class":164},[95,308,310,313,315],{"class":97,"line":309},6,[95,311,312],{"class":292},"  codes",[95,314,230],{"class":164},[95,316,317],{"class":164}," {\n",[95,319,321,324,326],{"class":97,"line":320},7,[95,322,323],{"class":292},"    NUXT_B2011",[95,325,230],{"class":164},[95,327,317],{"class":164},[95,329,331,334,336,339,341,343,345,348,350,353,355,358,360,362,365,367,370,372,375,377,380,382],{"class":97,"line":330},8,[95,332,333],{"class":215},"      why",[95,335,230],{"class":164},[95,337,338],{"class":164}," (",[95,340,66],{"class":233},[95,342,230],{"class":164},[95,344,165],{"class":164},[95,346,347],{"class":292}," src",[95,349,230],{"class":164},[95,351,352],{"class":101}," string",[95,354,172],{"class":164},[95,356,357],{"class":292}," mode",[95,359,230],{"class":164},[95,361,184],{"class":164},[95,363,364],{"class":104},"client",[95,366,259],{"class":164},[95,368,369],{"class":164}," |",[95,371,184],{"class":164},[95,373,374],{"class":104},"server",[95,376,259],{"class":164},[95,378,379],{"class":164}," })",[95,381,237],{"class":205},[95,383,317],{"class":164},[95,385,387,390,393,396,399,401,404,407,409,411,413,416,418,420,422,425,427,429],{"class":97,"line":386},9,[95,388,389],{"class":205},"        const",[95,391,392],{"class":168}," expected",[95,394,395],{"class":164}," =",[95,397,398],{"class":168}," p",[95,400,251],{"class":164},[95,402,403],{"class":168},"mode",[95,405,406],{"class":164}," ===",[95,408,184],{"class":164},[95,410,364],{"class":104},[95,412,259],{"class":164},[95,414,415],{"class":164}," ?",[95,417,184],{"class":164},[95,419,374],{"class":104},[95,421,259],{"class":164},[95,423,424],{"class":164}," :",[95,426,184],{"class":164},[95,428,364],{"class":104},[95,430,189],{"class":164},[95,432,434,437,439,442,444,446,448,451,454,457,459,462,464,467,469,471,473,475,477,480],{"class":97,"line":433},10,[95,435,436],{"class":160},"        return",[95,438,240],{"class":164},[95,440,441],{"class":104},"Plugin \"",[95,443,246],{"class":164},[95,445,66],{"class":168},[95,447,251],{"class":164},[95,449,450],{"class":168},"src",[95,452,453],{"class":164},"}",[95,455,456],{"class":104},"\" is ",[95,458,246],{"class":164},[95,460,461],{"class":168},"expected",[95,463,453],{"class":164},[95,465,466],{"class":104},"-only but was registered with mode \"",[95,468,246],{"class":164},[95,470,66],{"class":168},[95,472,251],{"class":164},[95,474,403],{"class":168},[95,476,453],{"class":164},[95,478,479],{"class":104},"\".",[95,481,482],{"class":164},"`\n",[95,484,486],{"class":97,"line":485},11,[95,487,488],{"class":164},"      },\n",[95,490,492,495,497,499,501,503,505,507,509,511,513,515,517,519,521,523,525,527],{"class":97,"line":491},12,[95,493,494],{"class":215},"      fix",[95,496,230],{"class":164},[95,498,338],{"class":164},[95,500,66],{"class":233},[95,502,230],{"class":164},[95,504,165],{"class":164},[95,506,357],{"class":292},[95,508,230],{"class":164},[95,510,184],{"class":164},[95,512,364],{"class":104},[95,514,259],{"class":164},[95,516,369],{"class":164},[95,518,184],{"class":164},[95,520,374],{"class":104},[95,522,259],{"class":164},[95,524,379],{"class":164},[95,526,237],{"class":205},[95,528,317],{"class":164},[95,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566],{"class":97,"line":531},13,[95,533,389],{"class":205},[95,535,392],{"class":168},[95,537,395],{"class":164},[95,539,398],{"class":168},[95,541,251],{"class":164},[95,543,403],{"class":168},[95,545,406],{"class":164},[95,547,184],{"class":164},[95,549,364],{"class":104},[95,551,259],{"class":164},[95,553,415],{"class":164},[95,555,184],{"class":164},[95,557,374],{"class":104},[95,559,259],{"class":164},[95,561,424],{"class":164},[95,563,184],{"class":164},[95,565,364],{"class":104},[95,567,189],{"class":164},[95,569,571,573,575,578,580,582,584,586],{"class":97,"line":570},14,[95,572,436],{"class":160},[95,574,240],{"class":164},[95,576,577],{"class":104},"Rename the file or register it with mode \"",[95,579,246],{"class":164},[95,581,461],{"class":168},[95,583,453],{"class":164},[95,585,479],{"class":104},[95,587,482],{"class":164},[95,589,591],{"class":97,"line":590},15,[95,592,488],{"class":164},[95,594,596],{"class":97,"line":595},16,[95,597,598],{"class":164},"    },\n",[95,600,602,605,607],{"class":97,"line":601},17,[95,603,604],{"class":292},"    NUXT_B5001",[95,606,230],{"class":164},[95,608,317],{"class":164},[95,610,612,614,616,618,620,622,624,627,629,631,633,636,638,640,642],{"class":97,"line":611},18,[95,613,333],{"class":215},[95,615,230],{"class":164},[95,617,338],{"class":164},[95,619,66],{"class":233},[95,621,230],{"class":164},[95,623,165],{"class":164},[95,625,626],{"class":292}," value",[95,628,230],{"class":164},[95,630,352],{"class":101},[95,632,172],{"class":164},[95,634,635],{"class":292}," configPath",[95,637,230],{"class":164},[95,639,352],{"class":101},[95,641,379],{"class":164},[95,643,644],{"class":205}," =>\n",[95,646,648,651,654,656,658,660,663,665,668,670,672,674,677,679,681,684],{"class":97,"line":647},19,[95,649,650],{"class":164},"        `",[95,652,653],{"class":104},"Invalid compatibilityDate \"",[95,655,246],{"class":164},[95,657,66],{"class":168},[95,659,251],{"class":164},[95,661,662],{"class":168},"value",[95,664,453],{"class":164},[95,666,667],{"class":104},"\" in ",[95,669,246],{"class":164},[95,671,66],{"class":168},[95,673,251],{"class":164},[95,675,676],{"class":168},"configPath",[95,678,453],{"class":164},[95,680,251],{"class":104},[95,682,683],{"class":164},"`",[95,685,286],{"class":164},[95,687,689,691,693,695,697,699,701,704,706,708,710,712,714,717,719,721,723,726,728,731,733],{"class":97,"line":688},20,[95,690,494],{"class":215},[95,692,230],{"class":164},[95,694,338],{"class":164},[95,696,66],{"class":233},[95,698,230],{"class":164},[95,700,165],{"class":164},[95,702,703],{"class":292}," example",[95,705,230],{"class":164},[95,707,352],{"class":101},[95,709,379],{"class":164},[95,711,237],{"class":205},[95,713,240],{"class":164},[95,715,716],{"class":104},"Use an ISO date like \"",[95,718,246],{"class":164},[95,720,66],{"class":168},[95,722,251],{"class":164},[95,724,725],{"class":168},"example",[95,727,453],{"class":164},[95,729,730],{"class":104},"\", or \"latest\".",[95,732,683],{"class":164},[95,734,286],{"class":164},[95,736,738],{"class":97,"line":737},21,[95,739,598],{"class":164},[95,741,743],{"class":97,"line":742},22,[95,744,745],{"class":164},"  },\n",[95,747,749,751],{"class":97,"line":748},23,[95,750,453],{"class":164},[95,752,753],{"class":168},")\n",[66,755,756,757,760],{},"The returned ",[69,758,759],{},"diagnostics"," object has one function per code. TypeScript checks the params at the call site.",[77,762,764],{"id":763},"use-them","Use them",[85,766,769],{"className":150,"code":767,"filename":768,"language":153,"meta":91,"style":91},"import { diagnostics } from '.\u002Fdiagnostics'\n\ntype PluginMode = 'all' | 'client' | 'server'\n\nexport function addRuntimePlugin(plugin: { src: string, mode?: PluginMode }): void {\n  const suffix = plugin.src.match(\u002F\\.(client|server)\\.\u002F)?.[1] as 'client' | 'server' | undefined\n\n  if (suffix && plugin.mode && plugin.mode !== 'all' && plugin.mode !== suffix) {\n    throw diagnostics.NUXT_B2011({\n      src: plugin.src,\n      mode: plugin.mode,\n      sources: [plugin.src],\n    })\n  }\n\n  \u002F\u002F register plugin\n}\n\nexport function validateConfig(config: { compatibilityDate?: string, filepath: string }): void {\n  if (config.compatibilityDate && !\u002F^(\\d{4}-\\d{2}-\\d{2}|latest)$\u002F.test(config.compatibilityDate)) {\n    diagnostics.NUXT_B5001({\n      configPath: config.filepath,\n      value: config.compatibilityDate,\n      example: '2024-04-03',\n    })\n  }\n}\n","src\u002Fmodule.ts",[69,770,771,791,795,828,832,874,956,960,1013,1029,1044,1059,1079,1086,1091,1095,1101,1106,1110,1150,1220,1234,1251,1266,1283,1290,1295],{"__ignoreMap":91},[95,772,773,775,777,780,782,784,786,789],{"class":97,"line":98},[95,774,161],{"class":160},[95,776,165],{"class":164},[95,778,779],{"class":168}," diagnostics",[95,781,178],{"class":164},[95,783,181],{"class":160},[95,785,184],{"class":164},[95,787,788],{"class":104},".\u002Fdiagnostics",[95,790,189],{"class":164},[95,792,793],{"class":97,"line":192},[95,794,196],{"emptyLinePlaceholder":195},[95,796,797,800,803,805,807,810,812,814,816,818,820,822,824,826],{"class":97,"line":199},[95,798,799],{"class":205},"type",[95,801,802],{"class":101}," PluginMode",[95,804,395],{"class":164},[95,806,184],{"class":164},[95,808,809],{"class":104},"all",[95,811,259],{"class":164},[95,813,369],{"class":164},[95,815,184],{"class":164},[95,817,364],{"class":104},[95,819,259],{"class":164},[95,821,369],{"class":164},[95,823,184],{"class":164},[95,825,374],{"class":104},[95,827,189],{"class":164},[95,829,830],{"class":97,"line":224},[95,831,196],{"emptyLinePlaceholder":195},[95,833,834,836,839,842,844,847,849,851,853,855,857,859,861,864,866,869,872],{"class":97,"line":289},[95,835,202],{"class":160},[95,837,838],{"class":205}," function",[95,840,841],{"class":215}," addRuntimePlugin",[95,843,218],{"class":164},[95,845,846],{"class":233},"plugin",[95,848,230],{"class":164},[95,850,165],{"class":164},[95,852,347],{"class":292},[95,854,230],{"class":164},[95,856,352],{"class":101},[95,858,172],{"class":164},[95,860,357],{"class":292},[95,862,863],{"class":164},"?:",[95,865,802],{"class":101},[95,867,868],{"class":164}," }):",[95,870,871],{"class":101}," void",[95,873,317],{"class":164},[95,875,876,879,882,884,887,889,891,893,896,898,901,904,906,908,911,913,915,917,919,921,924,927,931,934,937,939,941,943,945,947,949,951,953],{"class":97,"line":309},[95,877,878],{"class":205},"  const",[95,880,881],{"class":168}," suffix",[95,883,395],{"class":164},[95,885,886],{"class":168}," plugin",[95,888,251],{"class":164},[95,890,450],{"class":168},[95,892,251],{"class":164},[95,894,895],{"class":215},"match",[95,897,218],{"class":292},[95,899,900],{"class":164},"\u002F",[95,902,903],{"class":168},"\\.",[95,905,218],{"class":164},[95,907,364],{"class":104},[95,909,910],{"class":164},"|",[95,912,374],{"class":104},[95,914,272],{"class":164},[95,916,903],{"class":168},[95,918,900],{"class":164},[95,920,272],{"class":292},[95,922,923],{"class":164},"?.",[95,925,926],{"class":292},"[",[95,928,930],{"class":929},"sbssI","1",[95,932,933],{"class":292},"] ",[95,935,936],{"class":160},"as",[95,938,184],{"class":164},[95,940,364],{"class":104},[95,942,259],{"class":164},[95,944,369],{"class":164},[95,946,184],{"class":164},[95,948,374],{"class":104},[95,950,259],{"class":164},[95,952,369],{"class":164},[95,954,955],{"class":101}," undefined\n",[95,957,958],{"class":97,"line":320},[95,959,196],{"emptyLinePlaceholder":195},[95,961,962,965,967,970,973,975,977,979,981,983,985,987,990,992,994,996,998,1000,1002,1004,1006,1008,1011],{"class":97,"line":330},[95,963,964],{"class":160},"  if",[95,966,338],{"class":292},[95,968,969],{"class":168},"suffix",[95,971,972],{"class":164}," &&",[95,974,886],{"class":168},[95,976,251],{"class":164},[95,978,403],{"class":168},[95,980,972],{"class":164},[95,982,886],{"class":168},[95,984,251],{"class":164},[95,986,403],{"class":168},[95,988,989],{"class":164}," !==",[95,991,184],{"class":164},[95,993,809],{"class":104},[95,995,259],{"class":164},[95,997,972],{"class":164},[95,999,886],{"class":168},[95,1001,251],{"class":164},[95,1003,403],{"class":168},[95,1005,989],{"class":164},[95,1007,881],{"class":168},[95,1009,1010],{"class":292},") ",[95,1012,221],{"class":164},[95,1014,1015,1018,1020,1022,1025,1027],{"class":97,"line":386},[95,1016,1017],{"class":160},"    throw",[95,1019,779],{"class":168},[95,1021,251],{"class":164},[95,1023,1024],{"class":215},"NUXT_B2011",[95,1026,218],{"class":292},[95,1028,221],{"class":164},[95,1030,1031,1034,1036,1038,1040,1042],{"class":97,"line":433},[95,1032,1033],{"class":292},"      src",[95,1035,230],{"class":164},[95,1037,886],{"class":168},[95,1039,251],{"class":164},[95,1041,450],{"class":168},[95,1043,286],{"class":164},[95,1045,1046,1049,1051,1053,1055,1057],{"class":97,"line":485},[95,1047,1048],{"class":292},"      mode",[95,1050,230],{"class":164},[95,1052,886],{"class":168},[95,1054,251],{"class":164},[95,1056,403],{"class":168},[95,1058,286],{"class":164},[95,1060,1061,1064,1066,1068,1070,1072,1074,1077],{"class":97,"line":491},[95,1062,1063],{"class":292},"      sources",[95,1065,230],{"class":164},[95,1067,298],{"class":292},[95,1069,846],{"class":168},[95,1071,251],{"class":164},[95,1073,450],{"class":168},[95,1075,1076],{"class":292},"]",[95,1078,286],{"class":164},[95,1080,1081,1084],{"class":97,"line":531},[95,1082,1083],{"class":164},"    }",[95,1085,753],{"class":292},[95,1087,1088],{"class":97,"line":570},[95,1089,1090],{"class":164},"  }\n",[95,1092,1093],{"class":97,"line":590},[95,1094,196],{"emptyLinePlaceholder":195},[95,1096,1097],{"class":97,"line":595},[95,1098,1100],{"class":1099},"sHwdD","  \u002F\u002F register plugin\n",[95,1102,1103],{"class":97,"line":601},[95,1104,1105],{"class":164},"}\n",[95,1107,1108],{"class":97,"line":611},[95,1109,196],{"emptyLinePlaceholder":195},[95,1111,1112,1114,1116,1119,1121,1124,1126,1128,1131,1133,1135,1137,1140,1142,1144,1146,1148],{"class":97,"line":647},[95,1113,202],{"class":160},[95,1115,838],{"class":205},[95,1117,1118],{"class":215}," validateConfig",[95,1120,218],{"class":164},[95,1122,1123],{"class":233},"config",[95,1125,230],{"class":164},[95,1127,165],{"class":164},[95,1129,1130],{"class":292}," compatibilityDate",[95,1132,863],{"class":164},[95,1134,352],{"class":101},[95,1136,172],{"class":164},[95,1138,1139],{"class":292}," filepath",[95,1141,230],{"class":164},[95,1143,352],{"class":101},[95,1145,868],{"class":164},[95,1147,871],{"class":101},[95,1149,317],{"class":164},[95,1151,1152,1154,1156,1158,1160,1163,1165,1168,1170,1173,1175,1178,1181,1184,1187,1189,1192,1195,1197,1200,1202,1204,1207,1209,1211,1213,1215,1218],{"class":97,"line":688},[95,1153,964],{"class":160},[95,1155,338],{"class":292},[95,1157,1123],{"class":168},[95,1159,251],{"class":164},[95,1161,1162],{"class":168},"compatibilityDate",[95,1164,972],{"class":164},[95,1166,1167],{"class":164}," !",[95,1169,900],{"class":164},[95,1171,1172],{"class":160},"^",[95,1174,218],{"class":164},[95,1176,1177],{"class":104},"\\d",[95,1179,1180],{"class":164},"{4}",[95,1182,1183],{"class":104},"-\\d",[95,1185,1186],{"class":164},"{2}",[95,1188,1183],{"class":104},[95,1190,1191],{"class":164},"{2}|",[95,1193,1194],{"class":104},"latest",[95,1196,272],{"class":164},[95,1198,1199],{"class":160},"$",[95,1201,900],{"class":164},[95,1203,251],{"class":164},[95,1205,1206],{"class":215},"test",[95,1208,218],{"class":292},[95,1210,1123],{"class":168},[95,1212,251],{"class":164},[95,1214,1162],{"class":168},[95,1216,1217],{"class":292},")) ",[95,1219,221],{"class":164},[95,1221,1222,1225,1227,1230,1232],{"class":97,"line":737},[95,1223,1224],{"class":168},"    diagnostics",[95,1226,251],{"class":164},[95,1228,1229],{"class":215},"NUXT_B5001",[95,1231,218],{"class":292},[95,1233,221],{"class":164},[95,1235,1236,1239,1241,1244,1246,1249],{"class":97,"line":742},[95,1237,1238],{"class":292},"      configPath",[95,1240,230],{"class":164},[95,1242,1243],{"class":168}," config",[95,1245,251],{"class":164},[95,1247,1248],{"class":168},"filepath",[95,1250,286],{"class":164},[95,1252,1253,1256,1258,1260,1262,1264],{"class":97,"line":748},[95,1254,1255],{"class":292},"      value",[95,1257,230],{"class":164},[95,1259,1243],{"class":168},[95,1261,251],{"class":164},[95,1263,1162],{"class":168},[95,1265,286],{"class":164},[95,1267,1269,1272,1274,1276,1279,1281],{"class":97,"line":1268},24,[95,1270,1271],{"class":292},"      example",[95,1273,230],{"class":164},[95,1275,184],{"class":164},[95,1277,1278],{"class":104},"2024-04-03",[95,1280,259],{"class":164},[95,1282,286],{"class":164},[95,1284,1286,1288],{"class":97,"line":1285},25,[95,1287,1083],{"class":164},[95,1289,753],{"class":292},[95,1291,1293],{"class":97,"line":1292},26,[95,1294,1090],{"class":164},[95,1296,1298],{"class":97,"line":1297},27,[95,1299,1105],{"class":164},[66,1301,1302,1303,1306],{},"Calling a diagnostic reports it and returns a ",[69,1304,1305],{},"Diagnostic",". Throwing the return value raises it.",[77,1308,1310],{"id":1309},"output","Output",[1312,1313],"diagnostic",{"log":1314},"[NUXT_B2011] Plugin `.\u002Fruntime\u002Fanalytics.server.ts` is server-only but was registered with mode `client`.\n├▶ fix: Rename the file or register it with mode `server`.\n├▶ sources: modules\u002Fanalytics.ts:18:5\n╰▶ see: https:\u002F\u002Fnuxt.com\u002Fe\u002Fb2011\n",[66,1316,1317],{},"The code is stable, the message is readable, and the fix is next to the error.",[77,1319,1321],{"id":1320},"catch-it","Catch it",[66,1323,1324,1326,1327,251],{},[69,1325,1305],{}," extends ",[69,1328,1329],{},"Error",[85,1331,1333],{"className":150,"code":1332,"language":153,"meta":91,"style":91},"import { Diagnostic } from 'nostics'\n\ntry {\n  const plugin = resolvePlugin()\n  addRuntimePlugin(plugin)\n}\ncatch (error) {\n  if (error instanceof Diagnostic) {\n    console.log(error.name)\n    console.log(error.fix)\n    console.log(error.docs)\n  }\n}\n",[69,1334,1335,1354,1358,1365,1379,1390,1394,1404,1422,1443,1462,1481,1485],{"__ignoreMap":91},[95,1336,1337,1339,1341,1344,1346,1348,1350,1352],{"class":97,"line":98},[95,1338,161],{"class":160},[95,1340,165],{"class":164},[95,1342,1343],{"class":168}," Diagnostic",[95,1345,178],{"class":164},[95,1347,181],{"class":160},[95,1349,184],{"class":164},[95,1351,71],{"class":104},[95,1353,189],{"class":164},[95,1355,1356],{"class":97,"line":192},[95,1357,196],{"emptyLinePlaceholder":195},[95,1359,1360,1363],{"class":97,"line":199},[95,1361,1362],{"class":160},"try",[95,1364,317],{"class":164},[95,1366,1367,1369,1371,1373,1376],{"class":97,"line":224},[95,1368,878],{"class":205},[95,1370,886],{"class":168},[95,1372,395],{"class":164},[95,1374,1375],{"class":215}," resolvePlugin",[95,1377,1378],{"class":292},"()\n",[95,1380,1381,1384,1386,1388],{"class":97,"line":289},[95,1382,1383],{"class":215},"  addRuntimePlugin",[95,1385,218],{"class":292},[95,1387,846],{"class":168},[95,1389,753],{"class":292},[95,1391,1392],{"class":97,"line":309},[95,1393,1105],{"class":164},[95,1395,1396,1399,1402],{"class":97,"line":320},[95,1397,1398],{"class":160},"catch",[95,1400,1401],{"class":168}," (error) ",[95,1403,221],{"class":164},[95,1405,1406,1408,1410,1413,1416,1418,1420],{"class":97,"line":330},[95,1407,964],{"class":160},[95,1409,338],{"class":292},[95,1411,1412],{"class":168},"error",[95,1414,1415],{"class":164}," instanceof",[95,1417,1343],{"class":101},[95,1419,1010],{"class":292},[95,1421,221],{"class":164},[95,1423,1424,1427,1429,1432,1434,1436,1438,1441],{"class":97,"line":386},[95,1425,1426],{"class":168},"    console",[95,1428,251],{"class":164},[95,1430,1431],{"class":215},"log",[95,1433,218],{"class":292},[95,1435,1412],{"class":168},[95,1437,251],{"class":164},[95,1439,1440],{"class":168},"name",[95,1442,753],{"class":292},[95,1444,1445,1447,1449,1451,1453,1455,1457,1460],{"class":97,"line":433},[95,1446,1426],{"class":168},[95,1448,251],{"class":164},[95,1450,1431],{"class":215},[95,1452,218],{"class":292},[95,1454,1412],{"class":168},[95,1456,251],{"class":164},[95,1458,1459],{"class":168},"fix",[95,1461,753],{"class":292},[95,1463,1464,1466,1468,1470,1472,1474,1476,1479],{"class":97,"line":485},[95,1465,1426],{"class":168},[95,1467,251],{"class":164},[95,1469,1431],{"class":215},[95,1471,218],{"class":292},[95,1473,1412],{"class":168},[95,1475,251],{"class":164},[95,1477,1478],{"class":168},"docs",[95,1480,753],{"class":292},[95,1482,1483],{"class":97,"line":491},[95,1484,1090],{"class":164},[95,1486,1487],{"class":97,"line":531},[95,1488,1105],{"class":164},[77,1490,1492],{"id":1491},"next","Next",[1494,1495,1496,1501,1504],"card-group",{},[1497,1498,1500],"card",{"icon":24,"title":1499,"to":22},"Define diagnostics","Parameters, docs URLs, sources, causes, and code naming.",[1497,1502,1503],{"icon":34,"title":31,"to":32},"Strip report-only diagnostics from production bundles.",[1497,1505,1507],{"icon":59,"title":1506,"to":57},"API reference","Imports, types, options, and built-ins.",[1509,1510,1511],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":91,"searchDepth":192,"depth":192,"links":1513},[1514,1515,1516,1517,1518,1519],{"id":79,"depth":192,"text":80},{"id":143,"depth":192,"text":144},{"id":763,"depth":192,"text":764},{"id":1309,"depth":192,"text":1310},{"id":1320,"depth":192,"text":1321},{"id":1491,"depth":192,"text":1492},"Install nostics and define your first diagnostic catalog.","md",null,{},{"icon":14},{"title":11,"description":1520},"9YX7JZLrDBExZt0oxh8lf90n9zraflwJrKFhzW1lrcc",[1522,1528],{"title":21,"path":22,"stem":23,"description":1529,"icon":24,"children":-1},"Declare stable codes, typed params, docs links, sources, and causes.",1781110593825]