[{"data":1,"prerenderedAt":3229},["ShallowReactive",2],{"navigation":3,"docs-\u002Fmodule\u002Futils-kit":56,"docs-\u002Fmodule\u002Futils-kit-surround":3224},[4,26,47],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Guide","\u002Fguide","1.guide",[9,13,17,21],{"title":10,"path":11,"stem":12},"Getting Started","\u002Fguide\u002Fgetting-started","1.guide\u002F0.getting-started",{"title":14,"path":15,"stem":16},"Features","\u002Fguide\u002Ffeatures","1.guide\u002F1.features",{"title":18,"path":19,"stem":20},"Composables","\u002Fguide\u002Fcomposables","1.guide\u002F2.composables",{"title":22,"path":23,"stem":24},"Upgrading to v4","\u002Fguide\u002Fupgrading-to-v4","1.guide\u002F3.upgrading-to-v4",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"Module","\u002Fmodule","2.module",[31,35,39,43],{"title":32,"path":33,"stem":34},"Module Authors","\u002Fmodule\u002Fguide","2.module\u002F0.guide",{"title":36,"path":37,"stem":38},"Utility Kit","\u002Fmodule\u002Futils-kit","2.module\u002F1.utils-kit",{"title":40,"path":41,"stem":42},"UI Kit","\u002Fmodule\u002Fui-kit","2.module\u002F2.ui-kit",{"title":44,"path":45,"stem":46},"Migration to v4","\u002Fmodule\u002Fmigration-v4","2.module\u002F3.migration-v4",{"title":48,"path":49,"stem":50,"children":51,"page":25},"Development","\u002Fdevelopment","3.development",[52],{"title":53,"path":54,"stem":55},"Contribution Guide","\u002Fdevelopment\u002Fcontributing","3.development\u002F0.contributing",{"id":57,"title":36,"body":58,"description":3219,"extension":3220,"meta":3221,"navigation":199,"path":37,"seo":3222,"stem":38,"__hash__":3223},"docs\u002F2.module\u002F1.utils-kit.md",{"type":59,"value":60,"toc":3195},"minimark",[61,70,95,131,141,147,156,170,370,376,406,412,577,580,612,715,721,740,747,751,771,1024,1041,1047,1083,1089,1251,1257,1272,1275,1360,1368,1561,1568,1573,1583,1941,1948,1993,2005,2072,2083,2090,2094,2116,2123,2136,2238,2265,2271,2274,2452,2455,2499,2509,2514,2530,2663,2668,2679,2684,2698,2703,2706,2766,2779,2883,2889,2895,2901,2996,3002,3008,3014,3022,3124,3130,3134,3191],[62,63,64,65,69],"p",{},"Since v0.3.0, we are now providing a utility kit for easier DevTools integrations, similar to ",[66,67,68],"code",{},"@nuxt\u002Fkit",".",[71,72,77],"pre",{"className":73,"code":74,"language":75,"meta":76,"style":76},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm i @nuxt\u002Fdevtools-kit\n","bash","",[66,78,79],{"__ignoreMap":76},[80,81,84,88,92],"span",{"class":82,"line":83},"line",1,[80,85,87],{"class":86},"sBMFI","npm",[80,89,91],{"class":90},"sfazB"," i",[80,93,94],{"class":90}," @nuxt\u002Fdevtools-kit\n",[71,96,100],{"className":97,"code":98,"language":99,"meta":76,"style":76},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { addCustomTab } from '@nuxt\u002Fdevtools-kit'\n","ts",[66,101,102],{"__ignoreMap":76},[80,103,104,108,112,116,119,122,125,128],{"class":82,"line":83},[80,105,107],{"class":106},"s7zQu","import",[80,109,111],{"class":110},"sMK4o"," {",[80,113,115],{"class":114},"sTEyZ"," addCustomTab",[80,117,118],{"class":110}," }",[80,120,121],{"class":106}," from",[80,123,124],{"class":110}," '",[80,126,127],{"class":90},"@nuxt\u002Fdevtools-kit",[80,129,130],{"class":110},"'\n",[62,132,133,134,136,137,140],{},"We recommend module authors to install ",[66,135,127],{}," as a dependency and ",[66,138,139],{},"@nuxt\u002Fdevtools"," as a dev dependency.",[142,143,145],"h2",{"id":144},"nuxtdevtools-kit",[66,146,127],{},[148,149,151,152,155],"h3",{"id":150},"joining-the-nuxt-dock-group","Joining the ",[66,153,154],{},"Nuxt"," Dock Group",[62,157,158,159,161,162,165,166,169],{},"Vite DevTools registers a public ",[66,160,154],{}," dock group (id ",[66,163,164],{},"nuxt",") on the\nframework category, with ",[66,167,168],{},"nuxt:devtools"," as its default member. Module\nauthors join the group natively by pointing their own dock entries at it —\nno special Nuxt API required:",[71,171,173],{"className":97,"code":172,"language":99,"meta":76,"style":76},"import { onDevtoolsReady } from '@nuxt\u002Fdevtools-kit'\n\nonDevtoolsReady((ctx) => {\n  ctx.docks.register({\n    id: 'my-module',\n    type: 'iframe',\n    title: 'My Module',\n    icon: 'i-ph-puzzle-piece',\n    url: '\u002Fmy-module\u002F',\n    groupId: 'nuxt',\n  })\n})\n",[66,174,175,194,201,227,249,269,286,303,320,337,353,362],{"__ignoreMap":76},[80,176,177,179,181,184,186,188,190,192],{"class":82,"line":83},[80,178,107],{"class":106},[80,180,111],{"class":110},[80,182,183],{"class":114}," onDevtoolsReady",[80,185,118],{"class":110},[80,187,121],{"class":106},[80,189,124],{"class":110},[80,191,127],{"class":90},[80,193,130],{"class":110},[80,195,197],{"class":82,"line":196},2,[80,198,200],{"emptyLinePlaceholder":199},true,"\n",[80,202,204,208,211,213,217,220,224],{"class":82,"line":203},3,[80,205,207],{"class":206},"s2Zo4","onDevtoolsReady",[80,209,210],{"class":114},"(",[80,212,210],{"class":110},[80,214,216],{"class":215},"sHdIc","ctx",[80,218,219],{"class":110},")",[80,221,223],{"class":222},"spNyl"," =>",[80,225,226],{"class":110}," {\n",[80,228,230,233,235,238,240,243,246],{"class":82,"line":229},4,[80,231,232],{"class":114},"  ctx",[80,234,69],{"class":110},[80,236,237],{"class":114},"docks",[80,239,69],{"class":110},[80,241,242],{"class":206},"register",[80,244,210],{"class":245},"swJcz",[80,247,248],{"class":110},"{\n",[80,250,252,255,258,260,263,266],{"class":82,"line":251},5,[80,253,254],{"class":245},"    id",[80,256,257],{"class":110},":",[80,259,124],{"class":110},[80,261,262],{"class":90},"my-module",[80,264,265],{"class":110},"'",[80,267,268],{"class":110},",\n",[80,270,272,275,277,279,282,284],{"class":82,"line":271},6,[80,273,274],{"class":245},"    type",[80,276,257],{"class":110},[80,278,124],{"class":110},[80,280,281],{"class":90},"iframe",[80,283,265],{"class":110},[80,285,268],{"class":110},[80,287,289,292,294,296,299,301],{"class":82,"line":288},7,[80,290,291],{"class":245},"    title",[80,293,257],{"class":110},[80,295,124],{"class":110},[80,297,298],{"class":90},"My Module",[80,300,265],{"class":110},[80,302,268],{"class":110},[80,304,306,309,311,313,316,318],{"class":82,"line":305},8,[80,307,308],{"class":245},"    icon",[80,310,257],{"class":110},[80,312,124],{"class":110},[80,314,315],{"class":90},"i-ph-puzzle-piece",[80,317,265],{"class":110},[80,319,268],{"class":110},[80,321,323,326,328,330,333,335],{"class":82,"line":322},9,[80,324,325],{"class":245},"    url",[80,327,257],{"class":110},[80,329,124],{"class":110},[80,331,332],{"class":90},"\u002Fmy-module\u002F",[80,334,265],{"class":110},[80,336,268],{"class":110},[80,338,340,343,345,347,349,351],{"class":82,"line":339},10,[80,341,342],{"class":245},"    groupId",[80,344,257],{"class":110},[80,346,124],{"class":110},[80,348,164],{"class":90},[80,350,265],{"class":110},[80,352,268],{"class":110},[80,354,356,359],{"class":82,"line":355},11,[80,357,358],{"class":110},"  }",[80,360,361],{"class":245},")\n",[80,363,365,368],{"class":82,"line":364},12,[80,366,367],{"class":110},"}",[80,369,361],{"class":114},[148,371,373],{"id":372},"addcustomtab",[66,374,375],{},"addCustomTab()",[377,378,379],"warning",{},[62,380,381,385,386,388,389,392,393,396,397,400,401,69],{},[382,383,384],"strong",{},"Deprecated."," ",[66,387,375],{}," is soft-deprecated (",[66,390,391],{},"NDT_DEP_0005",") in favour of\nregistering a dock entry on the Vite DevTools docks host\n(",[66,394,395],{},"onDevtoolsReady((ctx) => ctx.docks.register(...))","). It still works as a shim. Note the docks\nhost does not yet cover ",[66,398,399],{},"vnode"," views or tab categories. See the\n",[402,403,405],"a",{"href":404},"\u002Fmodule\u002Fmigration-v4#ndt_dep_0005","migration guide",[62,407,408,409,69],{},"A shorthand for calling the hook ",[66,410,411],{},"devtools:customTabs",[71,413,415],{"className":97,"code":414,"language":99,"meta":76,"style":76},"import { addCustomTab } from '@nuxt\u002Fdevtools-kit'\n\naddCustomTab(() => ({\n  \u002F\u002F unique identifier\n  name: 'my-module',\n  \u002F\u002F title to display in the tab\n  title: 'My Module',\n  \u002F\u002F any icon from Iconify, or a URL to an image\n  icon: 'carbon:apps',\n  \u002F\u002F iframe view\n  view: {\n    type: 'iframe',\n    src: '\u002Furl-to-your-module-view',\n  },\n}))\n",[66,416,417,435,439,456,462,477,482,497,502,518,523,532,546,563,569],{"__ignoreMap":76},[80,418,419,421,423,425,427,429,431,433],{"class":82,"line":83},[80,420,107],{"class":106},[80,422,111],{"class":110},[80,424,115],{"class":114},[80,426,118],{"class":110},[80,428,121],{"class":106},[80,430,124],{"class":110},[80,432,127],{"class":90},[80,434,130],{"class":110},[80,436,437],{"class":82,"line":196},[80,438,200],{"emptyLinePlaceholder":199},[80,440,441,444,446,449,451,454],{"class":82,"line":203},[80,442,443],{"class":206},"addCustomTab",[80,445,210],{"class":114},[80,447,448],{"class":110},"()",[80,450,223],{"class":222},[80,452,453],{"class":114}," (",[80,455,248],{"class":110},[80,457,458],{"class":82,"line":229},[80,459,461],{"class":460},"sHwdD","  \u002F\u002F unique identifier\n",[80,463,464,467,469,471,473,475],{"class":82,"line":251},[80,465,466],{"class":245},"  name",[80,468,257],{"class":110},[80,470,124],{"class":110},[80,472,262],{"class":90},[80,474,265],{"class":110},[80,476,268],{"class":110},[80,478,479],{"class":82,"line":271},[80,480,481],{"class":460},"  \u002F\u002F title to display in the tab\n",[80,483,484,487,489,491,493,495],{"class":82,"line":288},[80,485,486],{"class":245},"  title",[80,488,257],{"class":110},[80,490,124],{"class":110},[80,492,298],{"class":90},[80,494,265],{"class":110},[80,496,268],{"class":110},[80,498,499],{"class":82,"line":305},[80,500,501],{"class":460},"  \u002F\u002F any icon from Iconify, or a URL to an image\n",[80,503,504,507,509,511,514,516],{"class":82,"line":322},[80,505,506],{"class":245},"  icon",[80,508,257],{"class":110},[80,510,124],{"class":110},[80,512,513],{"class":90},"carbon:apps",[80,515,265],{"class":110},[80,517,268],{"class":110},[80,519,520],{"class":82,"line":339},[80,521,522],{"class":460},"  \u002F\u002F iframe view\n",[80,524,525,528,530],{"class":82,"line":355},[80,526,527],{"class":245},"  view",[80,529,257],{"class":110},[80,531,226],{"class":110},[80,533,534,536,538,540,542,544],{"class":82,"line":364},[80,535,274],{"class":245},[80,537,257],{"class":110},[80,539,124],{"class":110},[80,541,281],{"class":90},[80,543,265],{"class":110},[80,545,268],{"class":110},[80,547,549,552,554,556,559,561],{"class":82,"line":548},13,[80,550,551],{"class":245},"    src",[80,553,257],{"class":110},[80,555,124],{"class":110},[80,557,558],{"class":90},"\u002Furl-to-your-module-view",[80,560,265],{"class":110},[80,562,268],{"class":110},[80,564,566],{"class":82,"line":565},14,[80,567,568],{"class":110},"  },\n",[80,570,572,574],{"class":82,"line":571},15,[80,573,367],{"class":110},[80,575,576],{"class":114},"))\n",[62,578,579],{},"The iframe view supports the following options:",[581,582,583,590,599],"ul",{},[584,585,586,589],"li",{},[66,587,588],{},"src",": URL of the iframe",[584,591,592,595,596,219],{},[66,593,594],{},"persistent",": Whether to persist the iframe instance when switching tabs (default: ",[66,597,598],{},"true",[584,600,601,604,605,608,609,219],{},[66,602,603],{},"permissions",": Additional permissions to allow in the iframe (merged with default ",[66,606,607],{},"clipboard-write"," and ",[66,610,611],{},"clipboard-read",[71,613,615],{"className":97,"code":614,"language":99,"meta":76,"style":76},"const view: ModuleIframeView = {\n  type: 'iframe',\n  src: '\u002Furl-to-your-module-view',\n  persistent: true,\n  permissions: ['camera', 'microphone'],\n}\n",[66,616,617,635,650,665,678,710],{"__ignoreMap":76},[80,618,619,622,625,627,630,633],{"class":82,"line":83},[80,620,621],{"class":222},"const",[80,623,624],{"class":114}," view",[80,626,257],{"class":110},[80,628,629],{"class":86}," ModuleIframeView",[80,631,632],{"class":110}," =",[80,634,226],{"class":110},[80,636,637,640,642,644,646,648],{"class":82,"line":196},[80,638,639],{"class":245},"  type",[80,641,257],{"class":110},[80,643,124],{"class":110},[80,645,281],{"class":90},[80,647,265],{"class":110},[80,649,268],{"class":110},[80,651,652,655,657,659,661,663],{"class":82,"line":203},[80,653,654],{"class":245},"  src",[80,656,257],{"class":110},[80,658,124],{"class":110},[80,660,558],{"class":90},[80,662,265],{"class":110},[80,664,268],{"class":110},[80,666,667,670,672,676],{"class":82,"line":229},[80,668,669],{"class":245},"  persistent",[80,671,257],{"class":110},[80,673,675],{"class":674},"sfNiH"," true",[80,677,268],{"class":110},[80,679,680,683,685,688,690,693,695,698,700,703,705,708],{"class":82,"line":251},[80,681,682],{"class":245},"  permissions",[80,684,257],{"class":110},[80,686,687],{"class":114}," [",[80,689,265],{"class":110},[80,691,692],{"class":90},"camera",[80,694,265],{"class":110},[80,696,697],{"class":110},",",[80,699,124],{"class":110},[80,701,702],{"class":90},"microphone",[80,704,265],{"class":110},[80,706,707],{"class":114},"]",[80,709,268],{"class":110},[80,711,712],{"class":82,"line":271},[80,713,714],{"class":110},"}\n",[148,716,718],{"id":717},"refreshcustomtabs",[66,719,720],{},"refreshCustomTabs()",[377,722,723],{},[62,724,725,385,727,388,729,732,733,736,737,69],{},[382,726,384],{},[66,728,720],{},[66,730,731],{},"NDT_DEP_0006","). Update\ndock entries directly via the handle returned by\n",[66,734,735],{},"ctx.docks.register(...)",". It still works as a shim. See the\n",[402,738,405],{"href":739},"\u002Fmodule\u002Fmigration-v4#ndt_dep_0006",[62,741,742,743,746],{},"A shorthand for call hook ",[66,744,745],{},"devtools:customTabs:refresh",". It will refresh all custom tabs.",[148,748,750],{"id":749},"spawning-terminals","Spawning terminals",[62,752,753,453,756,759,760,766,767,770],{},[382,754,755],{},"Use Vite DevTools' own terminals host",[66,757,758],{},"ctx.terminals","), reached through the\nconnected context from ",[402,761,763],{"href":762},"#ondevtoolsready",[66,764,765],{},"onDevtoolsReady()",". It spawns and\nowns the process and surfaces it in the built-in ",[382,768,769],{},"Terminals"," dock — no\nNuxt-specific wrapper needed:",[71,772,774],{"className":97,"code":773,"language":99,"meta":76,"style":76},"import { onDevtoolsReady } from '@nuxt\u002Fdevtools-kit'\n\nonDevtoolsReady((ctx) => {\n  \u002F\u002F Output-only child process\n  ctx.terminals.startChildProcess(\n    { command: 'npm', args: ['run', 'dev'] },\n    { id: 'my-module:dev', title: 'Dev Server', icon: 'logos-npm-icon' },\n  )\n\n  \u002F\u002F Fully interactive PTY (powered by `zigpty`, with a graceful pipe fallback)\n  ctx.terminals.startPtySession(\n    { command: 'bash' },\n    { id: 'my-module:shell', title: 'Shell', interactive: true },\n  )\n})\n",[66,775,776,794,798,814,819,836,883,930,935,939,944,959,975,1014,1018],{"__ignoreMap":76},[80,777,778,780,782,784,786,788,790,792],{"class":82,"line":83},[80,779,107],{"class":106},[80,781,111],{"class":110},[80,783,183],{"class":114},[80,785,118],{"class":110},[80,787,121],{"class":106},[80,789,124],{"class":110},[80,791,127],{"class":90},[80,793,130],{"class":110},[80,795,796],{"class":82,"line":196},[80,797,200],{"emptyLinePlaceholder":199},[80,799,800,802,804,806,808,810,812],{"class":82,"line":203},[80,801,207],{"class":206},[80,803,210],{"class":114},[80,805,210],{"class":110},[80,807,216],{"class":215},[80,809,219],{"class":110},[80,811,223],{"class":222},[80,813,226],{"class":110},[80,815,816],{"class":82,"line":229},[80,817,818],{"class":460},"  \u002F\u002F Output-only child process\n",[80,820,821,823,825,828,830,833],{"class":82,"line":251},[80,822,232],{"class":114},[80,824,69],{"class":110},[80,826,827],{"class":114},"terminals",[80,829,69],{"class":110},[80,831,832],{"class":206},"startChildProcess",[80,834,835],{"class":245},"(\n",[80,837,838,841,844,846,848,850,852,854,857,859,861,863,866,868,870,872,875,877,880],{"class":82,"line":271},[80,839,840],{"class":110},"    {",[80,842,843],{"class":245}," command",[80,845,257],{"class":110},[80,847,124],{"class":110},[80,849,87],{"class":90},[80,851,265],{"class":110},[80,853,697],{"class":110},[80,855,856],{"class":245}," args",[80,858,257],{"class":110},[80,860,687],{"class":245},[80,862,265],{"class":110},[80,864,865],{"class":90},"run",[80,867,265],{"class":110},[80,869,697],{"class":110},[80,871,124],{"class":110},[80,873,874],{"class":90},"dev",[80,876,265],{"class":110},[80,878,879],{"class":245},"] ",[80,881,882],{"class":110},"},\n",[80,884,885,887,890,892,894,897,899,901,904,906,908,911,913,915,918,920,922,925,927],{"class":82,"line":288},[80,886,840],{"class":110},[80,888,889],{"class":245}," id",[80,891,257],{"class":110},[80,893,124],{"class":110},[80,895,896],{"class":90},"my-module:dev",[80,898,265],{"class":110},[80,900,697],{"class":110},[80,902,903],{"class":245}," title",[80,905,257],{"class":110},[80,907,124],{"class":110},[80,909,910],{"class":90},"Dev Server",[80,912,265],{"class":110},[80,914,697],{"class":110},[80,916,917],{"class":245}," icon",[80,919,257],{"class":110},[80,921,124],{"class":110},[80,923,924],{"class":90},"logos-npm-icon",[80,926,265],{"class":110},[80,928,929],{"class":110}," },\n",[80,931,932],{"class":82,"line":305},[80,933,934],{"class":245},"  )\n",[80,936,937],{"class":82,"line":322},[80,938,200],{"emptyLinePlaceholder":199},[80,940,941],{"class":82,"line":339},[80,942,943],{"class":460},"  \u002F\u002F Fully interactive PTY (powered by `zigpty`, with a graceful pipe fallback)\n",[80,945,946,948,950,952,954,957],{"class":82,"line":355},[80,947,232],{"class":114},[80,949,69],{"class":110},[80,951,827],{"class":114},[80,953,69],{"class":110},[80,955,956],{"class":206},"startPtySession",[80,958,835],{"class":245},[80,960,961,963,965,967,969,971,973],{"class":82,"line":364},[80,962,840],{"class":110},[80,964,843],{"class":245},[80,966,257],{"class":110},[80,968,124],{"class":110},[80,970,75],{"class":90},[80,972,265],{"class":110},[80,974,929],{"class":110},[80,976,977,979,981,983,985,988,990,992,994,996,998,1001,1003,1005,1008,1010,1012],{"class":82,"line":548},[80,978,840],{"class":110},[80,980,889],{"class":245},[80,982,257],{"class":110},[80,984,124],{"class":110},[80,986,987],{"class":90},"my-module:shell",[80,989,265],{"class":110},[80,991,697],{"class":110},[80,993,903],{"class":245},[80,995,257],{"class":110},[80,997,124],{"class":110},[80,999,1000],{"class":90},"Shell",[80,1002,265],{"class":110},[80,1004,697],{"class":110},[80,1006,1007],{"class":245}," interactive",[80,1009,257],{"class":110},[80,1011,675],{"class":674},[80,1013,929],{"class":110},[80,1015,1016],{"class":82,"line":565},[80,1017,934],{"class":245},[80,1019,1020,1022],{"class":82,"line":571},[80,1021,367],{"class":110},[80,1023,361],{"class":114},[62,1025,1026,1027,1030,1031,1037,1038,1040],{},"If your module needs to keep owning the process itself and merely stream output,\nregister a read-only session with ",[66,1028,1029],{},"ctx.terminals.register({ id, title, status, stream })",".\nSee the ",[402,1032,1036],{"href":1033,"rel":1034},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools",[1035],"nofollow","Vite DevTools Kit"," docs for the full\n",[66,1039,758],{}," API.",[148,1042,1044],{"id":1043},"startsubprocess",[66,1045,1046],{},"startSubprocess()",[377,1048,1049],{},[62,1050,1051,385,1054,1056,1057,1060,1061,1065,1066,1069,1070,1073,1074,1076,1077,1079,1080,69],{},[382,1052,1053],{},"Deprecated — do not use in new code.",[66,1055,1046],{}," is soft-deprecated\n(",[66,1058,1059],{},"NDT_DEP_0004",") in favour of the Vite DevTools terminals host, used from the\n",[402,1062,1063],{"href":762},[66,1064,207],{}," hook\n(",[66,1067,1068],{},"onDevtoolsReady((ctx) => ctx.terminals.startChildProcess(...))"," — see\n",[402,1071,750],{"href":1072},"#spawning-terminals"," above). It still works as a shim\n(bridged onto ",[66,1075,758],{},"), so existing modules keep working, but it emits\nthe ",[66,1078,1059],{}," deprecation diagnostic and will be removed in a future major.\nSee the ",[402,1081,405],{"href":1082},"\u002Fmodule\u002Fmigration-v4#ndt_dep_0004",[62,1084,1085,1086,1088],{},"Legacy usage (module owns the process; output is surfaced as a read-only session\nin the built-in ",[382,1087,769],{}," dock):",[71,1090,1092],{"className":97,"code":1091,"language":99,"meta":76,"style":76},"import { startSubprocess } from '@nuxt\u002Fdevtools-kit'\n\nconst subprocess = startSubprocess(\n  { command: 'vite', args: ['build', '--watch'] },\n  { id: 'my-module:build', name: 'Build', icon: 'ph:terminal-duotone' },\n)\n\nsubprocess.restart()\nsubprocess.terminate()\n",[66,1093,1094,1113,1117,1131,1175,1219,1223,1227,1240],{"__ignoreMap":76},[80,1095,1096,1098,1100,1103,1105,1107,1109,1111],{"class":82,"line":83},[80,1097,107],{"class":106},[80,1099,111],{"class":110},[80,1101,1102],{"class":114}," startSubprocess",[80,1104,118],{"class":110},[80,1106,121],{"class":106},[80,1108,124],{"class":110},[80,1110,127],{"class":90},[80,1112,130],{"class":110},[80,1114,1115],{"class":82,"line":196},[80,1116,200],{"emptyLinePlaceholder":199},[80,1118,1119,1121,1124,1127,1129],{"class":82,"line":203},[80,1120,621],{"class":222},[80,1122,1123],{"class":114}," subprocess ",[80,1125,1126],{"class":110},"=",[80,1128,1102],{"class":206},[80,1130,835],{"class":114},[80,1132,1133,1136,1138,1140,1142,1145,1147,1149,1151,1153,1155,1157,1160,1162,1164,1166,1169,1171,1173],{"class":82,"line":229},[80,1134,1135],{"class":110},"  {",[80,1137,843],{"class":245},[80,1139,257],{"class":110},[80,1141,124],{"class":110},[80,1143,1144],{"class":90},"vite",[80,1146,265],{"class":110},[80,1148,697],{"class":110},[80,1150,856],{"class":245},[80,1152,257],{"class":110},[80,1154,687],{"class":114},[80,1156,265],{"class":110},[80,1158,1159],{"class":90},"build",[80,1161,265],{"class":110},[80,1163,697],{"class":110},[80,1165,124],{"class":110},[80,1167,1168],{"class":90},"--watch",[80,1170,265],{"class":110},[80,1172,879],{"class":114},[80,1174,882],{"class":110},[80,1176,1177,1179,1181,1183,1185,1188,1190,1192,1195,1197,1199,1202,1204,1206,1208,1210,1212,1215,1217],{"class":82,"line":251},[80,1178,1135],{"class":110},[80,1180,889],{"class":245},[80,1182,257],{"class":110},[80,1184,124],{"class":110},[80,1186,1187],{"class":90},"my-module:build",[80,1189,265],{"class":110},[80,1191,697],{"class":110},[80,1193,1194],{"class":245}," name",[80,1196,257],{"class":110},[80,1198,124],{"class":110},[80,1200,1201],{"class":90},"Build",[80,1203,265],{"class":110},[80,1205,697],{"class":110},[80,1207,917],{"class":245},[80,1209,257],{"class":110},[80,1211,124],{"class":110},[80,1213,1214],{"class":90},"ph:terminal-duotone",[80,1216,265],{"class":110},[80,1218,929],{"class":110},[80,1220,1221],{"class":82,"line":271},[80,1222,361],{"class":114},[80,1224,1225],{"class":82,"line":288},[80,1226,200],{"emptyLinePlaceholder":199},[80,1228,1229,1232,1234,1237],{"class":82,"line":305},[80,1230,1231],{"class":114},"subprocess",[80,1233,69],{"class":110},[80,1235,1236],{"class":206},"restart",[80,1238,1239],{"class":114},"()\n",[80,1241,1242,1244,1246,1249],{"class":82,"line":322},[80,1243,1231],{"class":114},[80,1245,69],{"class":110},[80,1247,1248],{"class":206},"terminate",[80,1250,1239],{"class":114},[148,1252,1254],{"id":1253},"extendserverrpc",[66,1255,1256],{},"extendServerRpc()",[377,1258,1259],{},[62,1260,1261,385,1263,388,1265,1268,1269,69],{},[382,1262,384],{},[66,1264,1256],{},[66,1266,1267],{},"NDT_DEP_0003",") in favour\nof the Vite DevTools RPC registration. It still works as a shim. See the\n",[402,1270,405],{"href":1271},"\u002Fmodule\u002Fmigration-v4#ndt_dep_0003",[62,1273,1274],{},"Extend the server RPC with your own methods.",[71,1276,1278],{"className":97,"code":1277,"language":99,"meta":76,"style":76},"import { extendServerRpc } from '@nuxt\u002Fdevtools-kit'\n\nconst rpc = extendServerRpc('my-module', {\n  async myMethod() {\n    return 'hello'\n  },\n})\n",[66,1279,1280,1299,1303,1326,1338,1350,1354],{"__ignoreMap":76},[80,1281,1282,1284,1286,1289,1291,1293,1295,1297],{"class":82,"line":83},[80,1283,107],{"class":106},[80,1285,111],{"class":110},[80,1287,1288],{"class":114}," extendServerRpc",[80,1290,118],{"class":110},[80,1292,121],{"class":106},[80,1294,124],{"class":110},[80,1296,127],{"class":90},[80,1298,130],{"class":110},[80,1300,1301],{"class":82,"line":196},[80,1302,200],{"emptyLinePlaceholder":199},[80,1304,1305,1307,1310,1312,1314,1316,1318,1320,1322,1324],{"class":82,"line":203},[80,1306,621],{"class":222},[80,1308,1309],{"class":114}," rpc ",[80,1311,1126],{"class":110},[80,1313,1288],{"class":206},[80,1315,210],{"class":114},[80,1317,265],{"class":110},[80,1319,262],{"class":90},[80,1321,265],{"class":110},[80,1323,697],{"class":110},[80,1325,226],{"class":110},[80,1327,1328,1331,1334,1336],{"class":82,"line":229},[80,1329,1330],{"class":222},"  async",[80,1332,1333],{"class":245}," myMethod",[80,1335,448],{"class":110},[80,1337,226],{"class":110},[80,1339,1340,1343,1345,1348],{"class":82,"line":251},[80,1341,1342],{"class":106},"    return",[80,1344,124],{"class":110},[80,1346,1347],{"class":90},"hello",[80,1349,130],{"class":110},[80,1351,1352],{"class":82,"line":271},[80,1353,568],{"class":110},[80,1355,1356,1358],{"class":82,"line":288},[80,1357,367],{"class":110},[80,1359,361],{"class":114},[62,1361,1362,1363,1367],{},"The forward path registers functions on the Vite DevTools RPC host from the\n",[402,1364,1365],{"href":762},[66,1366,765],{}," hook, scoped to your module's namespace:",[71,1369,1371],{"className":97,"code":1370,"language":99,"meta":76,"style":76},"import { onDevtoolsReady } from '@nuxt\u002Fdevtools-kit'\n\nexport default defineNuxtModule({\n  setup(_options, nuxt) {\n    onDevtoolsReady((ctx) => {\n      ctx.scope('my-module').rpc.register({\n        name: 'my-method', \u002F\u002F registered as `my-module:my-method`\n        type: 'query',\n        handler: async () => 'hello',\n      })\n    })\n  },\n})\n",[66,1372,1373,1391,1395,1410,1429,1446,1479,1498,1514,1537,1544,1551,1555],{"__ignoreMap":76},[80,1374,1375,1377,1379,1381,1383,1385,1387,1389],{"class":82,"line":83},[80,1376,107],{"class":106},[80,1378,111],{"class":110},[80,1380,183],{"class":114},[80,1382,118],{"class":110},[80,1384,121],{"class":106},[80,1386,124],{"class":110},[80,1388,127],{"class":90},[80,1390,130],{"class":110},[80,1392,1393],{"class":82,"line":196},[80,1394,200],{"emptyLinePlaceholder":199},[80,1396,1397,1400,1403,1406,1408],{"class":82,"line":203},[80,1398,1399],{"class":106},"export",[80,1401,1402],{"class":106}," default",[80,1404,1405],{"class":206}," defineNuxtModule",[80,1407,210],{"class":114},[80,1409,248],{"class":110},[80,1411,1412,1415,1417,1420,1422,1425,1427],{"class":82,"line":229},[80,1413,1414],{"class":245},"  setup",[80,1416,210],{"class":110},[80,1418,1419],{"class":215},"_options",[80,1421,697],{"class":110},[80,1423,1424],{"class":215}," nuxt",[80,1426,219],{"class":110},[80,1428,226],{"class":110},[80,1430,1431,1434,1436,1438,1440,1442,1444],{"class":82,"line":251},[80,1432,1433],{"class":206},"    onDevtoolsReady",[80,1435,210],{"class":245},[80,1437,210],{"class":110},[80,1439,216],{"class":215},[80,1441,219],{"class":110},[80,1443,223],{"class":222},[80,1445,226],{"class":110},[80,1447,1448,1451,1453,1456,1458,1460,1462,1464,1466,1468,1471,1473,1475,1477],{"class":82,"line":271},[80,1449,1450],{"class":114},"      ctx",[80,1452,69],{"class":110},[80,1454,1455],{"class":206},"scope",[80,1457,210],{"class":245},[80,1459,265],{"class":110},[80,1461,262],{"class":90},[80,1463,265],{"class":110},[80,1465,219],{"class":245},[80,1467,69],{"class":110},[80,1469,1470],{"class":114},"rpc",[80,1472,69],{"class":110},[80,1474,242],{"class":206},[80,1476,210],{"class":245},[80,1478,248],{"class":110},[80,1480,1481,1484,1486,1488,1491,1493,1495],{"class":82,"line":288},[80,1482,1483],{"class":245},"        name",[80,1485,257],{"class":110},[80,1487,124],{"class":110},[80,1489,1490],{"class":90},"my-method",[80,1492,265],{"class":110},[80,1494,697],{"class":110},[80,1496,1497],{"class":460}," \u002F\u002F registered as `my-module:my-method`\n",[80,1499,1500,1503,1505,1507,1510,1512],{"class":82,"line":305},[80,1501,1502],{"class":245},"        type",[80,1504,257],{"class":110},[80,1506,124],{"class":110},[80,1508,1509],{"class":90},"query",[80,1511,265],{"class":110},[80,1513,268],{"class":110},[80,1515,1516,1519,1521,1524,1527,1529,1531,1533,1535],{"class":82,"line":322},[80,1517,1518],{"class":206},"        handler",[80,1520,257],{"class":110},[80,1522,1523],{"class":222}," async",[80,1525,1526],{"class":110}," ()",[80,1528,223],{"class":222},[80,1530,124],{"class":110},[80,1532,1347],{"class":90},[80,1534,265],{"class":110},[80,1536,268],{"class":110},[80,1538,1539,1542],{"class":82,"line":339},[80,1540,1541],{"class":110},"      }",[80,1543,361],{"class":245},[80,1545,1546,1549],{"class":82,"line":355},[80,1547,1548],{"class":110},"    }",[80,1550,361],{"class":245},[80,1552,1553],{"class":82,"line":364},[80,1554,568],{"class":110},[80,1556,1557,1559],{"class":82,"line":548},[80,1558,367],{"class":110},[80,1560,361],{"class":114},[62,1562,1563,1564,69],{},"Learn more about ",[402,1565,1567],{"href":1566},"\u002Fmodule\u002Fguide#custom-rpc-functions","Custom RPC functions",[148,1569,1571],{"id":1570},"ondevtoolsready",[66,1572,765],{},[62,1574,1575,1578,1579,1582],{},[382,1576,1577],{},"The recommended entry point for DevTools integration."," The callback runs once\nthe Vite DevTools kit has connected and receives the connected\n",[66,1580,1581],{},"ViteDevToolsNodeContext",", so the full devframe surface is guaranteed to be\navailable — no connect-safe buffering needed. Do all your DevTools integration here:",[71,1584,1586],{"className":97,"code":1585,"language":99,"meta":76,"style":76},"import { NUXT_DEVTOOLS_GROUP_ID, onDevtoolsReady } from '@nuxt\u002Fdevtools-kit'\n\nexport default defineNuxtModule({\n  setup(_options, nuxt) {\n    onDevtoolsReady((ctx) => {\n      \u002F\u002F `ctx` is the connected ViteDevToolsNodeContext\n      ctx.docks.register({\n        id: 'my-module',\n        title: 'My Module',\n        icon: 'carbon:apps',\n        type: 'iframe',\n        url: '\u002F__my-module__\u002F',\n        groupId: NUXT_DEVTOOLS_GROUP_ID,\n      })\n\n      ctx.scope('my-module').rpc.register({\n        name: 'my-method', \u002F\u002F registered as `my-module:my-method`\n        type: 'query',\n        handler: async () => 'hello',\n      })\n\n      ctx.messages.add({ message: 'My module is ready', level: 'info' })\n    })\n  },\n})\n",[66,1587,1588,1611,1615,1627,1643,1659,1664,1680,1695,1710,1725,1739,1755,1766,1772,1776,1807,1824,1839,1860,1867,1872,1922,1929,1934],{"__ignoreMap":76},[80,1589,1590,1592,1594,1597,1599,1601,1603,1605,1607,1609],{"class":82,"line":83},[80,1591,107],{"class":106},[80,1593,111],{"class":110},[80,1595,1596],{"class":114}," NUXT_DEVTOOLS_GROUP_ID",[80,1598,697],{"class":110},[80,1600,183],{"class":114},[80,1602,118],{"class":110},[80,1604,121],{"class":106},[80,1606,124],{"class":110},[80,1608,127],{"class":90},[80,1610,130],{"class":110},[80,1612,1613],{"class":82,"line":196},[80,1614,200],{"emptyLinePlaceholder":199},[80,1616,1617,1619,1621,1623,1625],{"class":82,"line":203},[80,1618,1399],{"class":106},[80,1620,1402],{"class":106},[80,1622,1405],{"class":206},[80,1624,210],{"class":114},[80,1626,248],{"class":110},[80,1628,1629,1631,1633,1635,1637,1639,1641],{"class":82,"line":229},[80,1630,1414],{"class":245},[80,1632,210],{"class":110},[80,1634,1419],{"class":215},[80,1636,697],{"class":110},[80,1638,1424],{"class":215},[80,1640,219],{"class":110},[80,1642,226],{"class":110},[80,1644,1645,1647,1649,1651,1653,1655,1657],{"class":82,"line":251},[80,1646,1433],{"class":206},[80,1648,210],{"class":245},[80,1650,210],{"class":110},[80,1652,216],{"class":215},[80,1654,219],{"class":110},[80,1656,223],{"class":222},[80,1658,226],{"class":110},[80,1660,1661],{"class":82,"line":271},[80,1662,1663],{"class":460},"      \u002F\u002F `ctx` is the connected ViteDevToolsNodeContext\n",[80,1665,1666,1668,1670,1672,1674,1676,1678],{"class":82,"line":288},[80,1667,1450],{"class":114},[80,1669,69],{"class":110},[80,1671,237],{"class":114},[80,1673,69],{"class":110},[80,1675,242],{"class":206},[80,1677,210],{"class":245},[80,1679,248],{"class":110},[80,1681,1682,1685,1687,1689,1691,1693],{"class":82,"line":305},[80,1683,1684],{"class":245},"        id",[80,1686,257],{"class":110},[80,1688,124],{"class":110},[80,1690,262],{"class":90},[80,1692,265],{"class":110},[80,1694,268],{"class":110},[80,1696,1697,1700,1702,1704,1706,1708],{"class":82,"line":322},[80,1698,1699],{"class":245},"        title",[80,1701,257],{"class":110},[80,1703,124],{"class":110},[80,1705,298],{"class":90},[80,1707,265],{"class":110},[80,1709,268],{"class":110},[80,1711,1712,1715,1717,1719,1721,1723],{"class":82,"line":339},[80,1713,1714],{"class":245},"        icon",[80,1716,257],{"class":110},[80,1718,124],{"class":110},[80,1720,513],{"class":90},[80,1722,265],{"class":110},[80,1724,268],{"class":110},[80,1726,1727,1729,1731,1733,1735,1737],{"class":82,"line":355},[80,1728,1502],{"class":245},[80,1730,257],{"class":110},[80,1732,124],{"class":110},[80,1734,281],{"class":90},[80,1736,265],{"class":110},[80,1738,268],{"class":110},[80,1740,1741,1744,1746,1748,1751,1753],{"class":82,"line":364},[80,1742,1743],{"class":245},"        url",[80,1745,257],{"class":110},[80,1747,124],{"class":110},[80,1749,1750],{"class":90},"\u002F__my-module__\u002F",[80,1752,265],{"class":110},[80,1754,268],{"class":110},[80,1756,1757,1760,1762,1764],{"class":82,"line":548},[80,1758,1759],{"class":245},"        groupId",[80,1761,257],{"class":110},[80,1763,1596],{"class":114},[80,1765,268],{"class":110},[80,1767,1768,1770],{"class":82,"line":565},[80,1769,1541],{"class":110},[80,1771,361],{"class":245},[80,1773,1774],{"class":82,"line":571},[80,1775,200],{"emptyLinePlaceholder":199},[80,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1805],{"class":82,"line":1778},16,[80,1780,1450],{"class":114},[80,1782,69],{"class":110},[80,1784,1455],{"class":206},[80,1786,210],{"class":245},[80,1788,265],{"class":110},[80,1790,262],{"class":90},[80,1792,265],{"class":110},[80,1794,219],{"class":245},[80,1796,69],{"class":110},[80,1798,1470],{"class":114},[80,1800,69],{"class":110},[80,1802,242],{"class":206},[80,1804,210],{"class":245},[80,1806,248],{"class":110},[80,1808,1810,1812,1814,1816,1818,1820,1822],{"class":82,"line":1809},17,[80,1811,1483],{"class":245},[80,1813,257],{"class":110},[80,1815,124],{"class":110},[80,1817,1490],{"class":90},[80,1819,265],{"class":110},[80,1821,697],{"class":110},[80,1823,1497],{"class":460},[80,1825,1827,1829,1831,1833,1835,1837],{"class":82,"line":1826},18,[80,1828,1502],{"class":245},[80,1830,257],{"class":110},[80,1832,124],{"class":110},[80,1834,1509],{"class":90},[80,1836,265],{"class":110},[80,1838,268],{"class":110},[80,1840,1842,1844,1846,1848,1850,1852,1854,1856,1858],{"class":82,"line":1841},19,[80,1843,1518],{"class":206},[80,1845,257],{"class":110},[80,1847,1523],{"class":222},[80,1849,1526],{"class":110},[80,1851,223],{"class":222},[80,1853,124],{"class":110},[80,1855,1347],{"class":90},[80,1857,265],{"class":110},[80,1859,268],{"class":110},[80,1861,1863,1865],{"class":82,"line":1862},20,[80,1864,1541],{"class":110},[80,1866,361],{"class":245},[80,1868,1870],{"class":82,"line":1869},21,[80,1871,200],{"emptyLinePlaceholder":199},[80,1873,1875,1877,1879,1882,1884,1887,1889,1892,1895,1897,1899,1902,1904,1906,1909,1911,1913,1916,1918,1920],{"class":82,"line":1874},22,[80,1876,1450],{"class":114},[80,1878,69],{"class":110},[80,1880,1881],{"class":114},"messages",[80,1883,69],{"class":110},[80,1885,1886],{"class":206},"add",[80,1888,210],{"class":245},[80,1890,1891],{"class":110},"{",[80,1893,1894],{"class":245}," message",[80,1896,257],{"class":110},[80,1898,124],{"class":110},[80,1900,1901],{"class":90},"My module is ready",[80,1903,265],{"class":110},[80,1905,697],{"class":110},[80,1907,1908],{"class":245}," level",[80,1910,257],{"class":110},[80,1912,124],{"class":110},[80,1914,1915],{"class":90},"info",[80,1917,265],{"class":110},[80,1919,118],{"class":110},[80,1921,361],{"class":245},[80,1923,1925,1927],{"class":82,"line":1924},23,[80,1926,1548],{"class":110},[80,1928,361],{"class":245},[80,1930,1932],{"class":82,"line":1931},24,[80,1933,568],{"class":110},[80,1935,1937,1939],{"class":82,"line":1936},25,[80,1938,367],{"class":110},[80,1940,361],{"class":114},[62,1942,1943,1944,1947],{},"It is backed by the ",[66,1945,1946],{},"devtools:ready"," Nuxt hook:",[71,1949,1951],{"className":97,"code":1950,"language":99,"meta":76,"style":76},"nuxt.hook('devtools:ready', (ctx) => {\n  \u002F\u002F ...\n})\n",[66,1952,1953,1982,1987],{"__ignoreMap":76},[80,1954,1955,1957,1959,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980],{"class":82,"line":83},[80,1956,164],{"class":114},[80,1958,69],{"class":110},[80,1960,1961],{"class":206},"hook",[80,1963,210],{"class":114},[80,1965,265],{"class":110},[80,1967,1946],{"class":90},[80,1969,265],{"class":110},[80,1971,697],{"class":110},[80,1973,453],{"class":110},[80,1975,216],{"class":215},[80,1977,219],{"class":110},[80,1979,223],{"class":222},[80,1981,226],{"class":110},[80,1983,1984],{"class":82,"line":196},[80,1985,1986],{"class":460},"  \u002F\u002F ...\n",[80,1988,1989,1991],{"class":82,"line":203},[80,1990,367],{"class":110},[80,1992,361],{"class":114},[62,1994,1995,1996,1998,1999,2001,2002,2004],{},"Inside ",[66,1997,765],{},", the ",[66,2000,216],{}," is the connected ",[66,2003,1581],{},",\nwhich exposes the full devframe-native surface:",[581,2006,2007,2013,2018,2024,2030,2041,2063],{},[584,2008,2009,2012],{},[66,2010,2011],{},"ctx.docks"," — register dock entries (iframe \u002F action \u002F json-render \u002F launcher)",[584,2014,2015,2017],{},[66,2016,758],{}," — spawn and manage child processes \u002F PTY sessions",[584,2019,2020,2023],{},[66,2021,2022],{},"ctx.messages"," — structured messages and toast notifications",[584,2025,2026,2029],{},[66,2027,2028],{},"ctx.commands"," — command-palette entries",[584,2031,2032,2035,2036,219],{},[66,2033,2034],{},"ctx.diagnostics"," — structured, coded diagnostics (powered by ",[402,2037,2040],{"href":2038,"rel":2039},"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fnostics",[1035],"nostics",[584,2042,2043,2046,2047,2049,2050,2049,2053,2049,2056,2049,2059,2062],{},[66,2044,2045],{},"ctx.rpc"," — the devframe RPC host (",[66,2048,242],{},"\u002F",[66,2051,2052],{},"invokeLocal",[66,2054,2055],{},"broadcast",[66,2057,2058],{},"sharedState",[66,2060,2061],{},"streaming","\u002F…)",[584,2064,2065,2068,2069],{},[66,2066,2067],{},"ctx.scope(namespace)"," — the same RPC host with every name prefixed by ",[66,2070,2071],{},"namespace:",[62,2073,2074,2075,2078,2079,2082],{},"If you need the raw context outside the hook, ",[66,2076,2077],{},"nuxt.devtools.devtoolsKit"," is\navailable as an escape hatch (it is ",[66,2080,2081],{},"undefined"," until the kit connects).",[62,2084,2085,2086,2089],{},"See the ",[402,2087,1036],{"href":1033,"rel":2088},[1035]," docs for the\nfull host API.",[148,2091,2093],{"id":2092},"deprecation-diagnostics","Deprecation diagnostics",[62,2095,2096,2097,2100,2101,2103,2104,2106,2107,2111,2112,69],{},"Nuxt DevTools emits coded deprecation diagnostics (",[66,2098,2099],{},"NDT_DEP_xxxx",") through\n",[66,2102,2040],{},". They print to the terminal and, once the Vite DevTools kit connects,\nalso surface in the DevTools diagnostics UI, each with a code, a fix, and a link\nto the ",[402,2105,405],{"href":45},". See\n",[402,2108,2109],{"href":1271},[66,2110,1256],{}," and\n",[402,2113,2114],{"href":1082},[66,2115,1046],{},[148,2117,2119,2122],{"id":2118},"devtoolsnotify-hook",[66,2120,2121],{},"devtools:notify"," hook",[62,2124,2125,2126,2129,2130,2132,2133,2135],{},"Push a notification into the unified devframe ",[382,2127,2128],{},"Messages"," system — the same\nsystem that powers the Vite DevTools ",[382,2131,2128],{}," dock and its toast overlay.\nThe notification is forwarded to ",[66,2134,2022],{},", so no direct kit access is\nneeded, and calls made before the kit connects are buffered and replayed once\nit does:",[71,2137,2139],{"className":97,"code":2138,"language":99,"meta":76,"style":76},"\u002F\u002F server-side (module setup)\nnuxt.callHook('devtools:notify', {\n  message: 'Something happened',\n  level: 'error', \u002F\u002F 'info' | 'warn' | 'error' | 'success' | 'debug' (default 'info')\n  description: 'More details about what happened.',\n  notify: true, \u002F\u002F also show a transient toast\n})\n",[66,2140,2141,2146,2167,2183,2202,2218,2232],{"__ignoreMap":76},[80,2142,2143],{"class":82,"line":83},[80,2144,2145],{"class":460},"\u002F\u002F server-side (module setup)\n",[80,2147,2148,2150,2152,2155,2157,2159,2161,2163,2165],{"class":82,"line":196},[80,2149,164],{"class":114},[80,2151,69],{"class":110},[80,2153,2154],{"class":206},"callHook",[80,2156,210],{"class":114},[80,2158,265],{"class":110},[80,2160,2121],{"class":90},[80,2162,265],{"class":110},[80,2164,697],{"class":110},[80,2166,226],{"class":110},[80,2168,2169,2172,2174,2176,2179,2181],{"class":82,"line":203},[80,2170,2171],{"class":245},"  message",[80,2173,257],{"class":110},[80,2175,124],{"class":110},[80,2177,2178],{"class":90},"Something happened",[80,2180,265],{"class":110},[80,2182,268],{"class":110},[80,2184,2185,2188,2190,2192,2195,2197,2199],{"class":82,"line":229},[80,2186,2187],{"class":245},"  level",[80,2189,257],{"class":110},[80,2191,124],{"class":110},[80,2193,2194],{"class":90},"error",[80,2196,265],{"class":110},[80,2198,697],{"class":110},[80,2200,2201],{"class":460}," \u002F\u002F 'info' | 'warn' | 'error' | 'success' | 'debug' (default 'info')\n",[80,2203,2204,2207,2209,2211,2214,2216],{"class":82,"line":251},[80,2205,2206],{"class":245},"  description",[80,2208,257],{"class":110},[80,2210,124],{"class":110},[80,2212,2213],{"class":90},"More details about what happened.",[80,2215,265],{"class":110},[80,2217,268],{"class":110},[80,2219,2220,2223,2225,2227,2229],{"class":82,"line":271},[80,2221,2222],{"class":245},"  notify",[80,2224,257],{"class":110},[80,2226,675],{"class":674},[80,2228,697],{"class":110},[80,2230,2231],{"class":460}," \u002F\u002F also show a transient toast\n",[80,2233,2234,2236],{"class":82,"line":288},[80,2235,367],{"class":110},[80,2237,361],{"class":114},[62,2239,2240,2241,2244,2245,2247,2248,2251,2252,2251,2255,2257,2258,2261,2262,69],{},"Omit ",[66,2242,2243],{},"autoDelete"," for a ",[382,2246,594],{},", leveled entry that builds history in the\nMessages dock; set ",[66,2249,2250],{},"notify"," + ",[66,2253,2254],{},"autoDismiss",[66,2256,2243],{}," for an ",[382,2259,2260],{},"ephemeral",",\ntoast-only notification. From the client, the same input is available on the\ninjected client as ",[66,2263,2264],{},"client.devtools.notify(...)",[142,2266,2268],{"id":2267},"nuxtdevtools-kitiframe-client",[66,2269,2270],{},"@nuxt\u002Fdevtools-kit\u002Fiframe-client",[62,2272,2273],{},"To provide complex interactions for your module integrations, we recommend to host your own view and display it in devtools via iframe.",[377,2275,2276,2294,2445],{},[62,2277,2278,2279,2282,2283,2286,2287,2289,2290,2293],{},"The helpers below depend on the ",[66,2280,2281],{},"__NUXT_DEVTOOLS__"," object that the Nuxt client injects into ",[382,2284,2285],{},"legacy"," custom tabs (",[66,2288,375],{},"). A dock entry registered with ",[66,2291,2292],{},"ctx.docks.register()"," is rendered by Vite DevTools itself and does not receive it. In a native dock, connect to Vite DevTools directly and read the host client from the parent window:",[71,2295,2297],{"className":97,"code":2296,"language":99,"meta":76,"style":76},"import type { NuxtDevtoolsHostClient } from '@nuxt\u002Fdevtools-kit\u002Ftypes'\nimport { getDevToolsRpcClient } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nconst kit = await getDevToolsRpcClient()\nconst { rpc } = kit.scope('my-module')\n\n\u002F\u002F the user's app is the parent window of every dock iframe (same origin only)\nconst host = (window.parent as Window & { __NUXT_DEVTOOLS_HOST__?: NuxtDevtoolsHostClient }).__NUXT_DEVTOOLS_HOST__\n",[66,2298,2299,2322,2342,2346,2362,2391,2395,2400],{"__ignoreMap":76},[80,2300,2301,2303,2306,2308,2311,2313,2315,2317,2320],{"class":82,"line":83},[80,2302,107],{"class":106},[80,2304,2305],{"class":106}," type",[80,2307,111],{"class":110},[80,2309,2310],{"class":114}," NuxtDevtoolsHostClient",[80,2312,118],{"class":110},[80,2314,121],{"class":106},[80,2316,124],{"class":110},[80,2318,2319],{"class":90},"@nuxt\u002Fdevtools-kit\u002Ftypes",[80,2321,130],{"class":110},[80,2323,2324,2326,2328,2331,2333,2335,2337,2340],{"class":82,"line":196},[80,2325,107],{"class":106},[80,2327,111],{"class":110},[80,2329,2330],{"class":114}," getDevToolsRpcClient",[80,2332,118],{"class":110},[80,2334,121],{"class":106},[80,2336,124],{"class":110},[80,2338,2339],{"class":90},"@vitejs\u002Fdevtools-kit\u002Fclient",[80,2341,130],{"class":110},[80,2343,2344],{"class":82,"line":203},[80,2345,200],{"emptyLinePlaceholder":199},[80,2347,2348,2350,2353,2355,2358,2360],{"class":82,"line":229},[80,2349,621],{"class":222},[80,2351,2352],{"class":114}," kit ",[80,2354,1126],{"class":110},[80,2356,2357],{"class":106}," await",[80,2359,2330],{"class":206},[80,2361,1239],{"class":114},[80,2363,2364,2366,2368,2370,2372,2374,2377,2379,2381,2383,2385,2387,2389],{"class":82,"line":251},[80,2365,621],{"class":222},[80,2367,111],{"class":110},[80,2369,1309],{"class":114},[80,2371,367],{"class":110},[80,2373,632],{"class":110},[80,2375,2376],{"class":114}," kit",[80,2378,69],{"class":110},[80,2380,1455],{"class":206},[80,2382,210],{"class":114},[80,2384,265],{"class":110},[80,2386,262],{"class":90},[80,2388,265],{"class":110},[80,2390,361],{"class":114},[80,2392,2393],{"class":82,"line":271},[80,2394,200],{"emptyLinePlaceholder":199},[80,2396,2397],{"class":82,"line":288},[80,2398,2399],{"class":460},"\u002F\u002F the user's app is the parent window of every dock iframe (same origin only)\n",[80,2401,2402,2404,2407,2409,2412,2414,2417,2420,2423,2426,2428,2431,2434,2436,2438,2440,2442],{"class":82,"line":305},[80,2403,621],{"class":222},[80,2405,2406],{"class":114}," host ",[80,2408,1126],{"class":110},[80,2410,2411],{"class":114}," (window",[80,2413,69],{"class":110},[80,2415,2416],{"class":114},"parent ",[80,2418,2419],{"class":106},"as",[80,2421,2422],{"class":86}," Window",[80,2424,2425],{"class":110}," &",[80,2427,111],{"class":110},[80,2429,2430],{"class":245}," __NUXT_DEVTOOLS_HOST__",[80,2432,2433],{"class":110},"?:",[80,2435,2310],{"class":86},[80,2437,118],{"class":110},[80,2439,219],{"class":114},[80,2441,69],{"class":110},[80,2443,2444],{"class":114},"__NUXT_DEVTOOLS_HOST__\n",[62,2446,2447,2448,2451],{},"See ",[402,2449,2450],{"href":1566},"Custom RPC Functions"," for the full flow.",[62,2453,2454],{},"To get the information from the devtools and the client app in a legacy custom tab, you can do this in your client app:",[71,2456,2458],{"className":97,"code":2457,"language":99,"meta":76,"style":76},"import { useDevtoolsClient } from '@nuxt\u002Fdevtools-kit\u002Fiframe-client'\n\nexport const devtoolsClient = useDevtoolsClient()\n",[66,2459,2460,2479,2483],{"__ignoreMap":76},[80,2461,2462,2464,2466,2469,2471,2473,2475,2477],{"class":82,"line":83},[80,2463,107],{"class":106},[80,2465,111],{"class":110},[80,2467,2468],{"class":114}," useDevtoolsClient",[80,2470,118],{"class":110},[80,2472,121],{"class":106},[80,2474,124],{"class":110},[80,2476,2270],{"class":90},[80,2478,130],{"class":110},[80,2480,2481],{"class":82,"line":196},[80,2482,200],{"emptyLinePlaceholder":199},[80,2484,2485,2487,2490,2493,2495,2497],{"class":82,"line":203},[80,2486,1399],{"class":106},[80,2488,2489],{"class":222}," const",[80,2491,2492],{"class":114}," devtoolsClient ",[80,2494,1126],{"class":110},[80,2496,2468],{"class":206},[80,2498,1239],{"class":114},[62,2500,2501,2502,2504,2505,2508],{},"When the iframe been served with the same origin (CORS limitation), devtools will automatically inject ",[66,2503,2281],{}," to the iframe's window object. You can access it as a ref using ",[66,2506,2507],{},"useDevtoolsClient()"," utility.",[148,2510,2512],{"id":2511},"ondevtoolsready-1",[66,2513,765],{},[62,2515,2516,2517,2521,2522,2525,2526,2529],{},"The client-side mirror of the server's ",[402,2518,2519],{"href":762},[66,2520,207],{},". The\ncallback runs once the Vite DevTools client is connected and receives the\n",[66,2523,2524],{},"DevToolsRpcClient"," (the same object as ",[66,2527,2528],{},"client.devtools.devtoolsKit","), giving\nfull devframe-native access. This is the recommended way to register client RPC\nfunctions:",[71,2531,2533],{"className":97,"code":2532,"language":99,"meta":76,"style":76},"import { onDevtoolsReady } from '@nuxt\u002Fdevtools-kit\u002Fiframe-client'\n\nonDevtoolsReady((kit) => {\n  kit.client.register({\n    name: 'my-module:on-update',\n    type: 'event',\n    handler: (payload) => {\n      \u002F\u002F ...\n    },\n  })\n})\n",[66,2534,2535,2553,2557,2574,2592,2608,2623,2641,2646,2651,2657],{"__ignoreMap":76},[80,2536,2537,2539,2541,2543,2545,2547,2549,2551],{"class":82,"line":83},[80,2538,107],{"class":106},[80,2540,111],{"class":110},[80,2542,183],{"class":114},[80,2544,118],{"class":110},[80,2546,121],{"class":106},[80,2548,124],{"class":110},[80,2550,2270],{"class":90},[80,2552,130],{"class":110},[80,2554,2555],{"class":82,"line":196},[80,2556,200],{"emptyLinePlaceholder":199},[80,2558,2559,2561,2563,2565,2568,2570,2572],{"class":82,"line":203},[80,2560,207],{"class":206},[80,2562,210],{"class":114},[80,2564,210],{"class":110},[80,2566,2567],{"class":215},"kit",[80,2569,219],{"class":110},[80,2571,223],{"class":222},[80,2573,226],{"class":110},[80,2575,2576,2579,2581,2584,2586,2588,2590],{"class":82,"line":229},[80,2577,2578],{"class":114},"  kit",[80,2580,69],{"class":110},[80,2582,2583],{"class":114},"client",[80,2585,69],{"class":110},[80,2587,242],{"class":206},[80,2589,210],{"class":245},[80,2591,248],{"class":110},[80,2593,2594,2597,2599,2601,2604,2606],{"class":82,"line":251},[80,2595,2596],{"class":245},"    name",[80,2598,257],{"class":110},[80,2600,124],{"class":110},[80,2602,2603],{"class":90},"my-module:on-update",[80,2605,265],{"class":110},[80,2607,268],{"class":110},[80,2609,2610,2612,2614,2616,2619,2621],{"class":82,"line":271},[80,2611,274],{"class":245},[80,2613,257],{"class":110},[80,2615,124],{"class":110},[80,2617,2618],{"class":90},"event",[80,2620,265],{"class":110},[80,2622,268],{"class":110},[80,2624,2625,2628,2630,2632,2635,2637,2639],{"class":82,"line":288},[80,2626,2627],{"class":206},"    handler",[80,2629,257],{"class":110},[80,2631,453],{"class":110},[80,2633,2634],{"class":215},"payload",[80,2636,219],{"class":110},[80,2638,223],{"class":222},[80,2640,226],{"class":110},[80,2642,2643],{"class":82,"line":305},[80,2644,2645],{"class":460},"      \u002F\u002F ...\n",[80,2647,2648],{"class":82,"line":322},[80,2649,2650],{"class":110},"    },\n",[80,2652,2653,2655],{"class":82,"line":339},[80,2654,358],{"class":110},[80,2656,361],{"class":245},[80,2658,2659,2661],{"class":82,"line":355},[80,2660,367],{"class":110},[80,2662,361],{"class":114},[148,2664,2666],{"id":2665},"usedevtoolsclient",[66,2667,2507],{},[62,2669,2670,2671,2674,2675,2678],{},"It will return a ref of ",[66,2672,2673],{},"NuxtDevtoolsIframeClient"," object that are intially ",[66,2676,2677],{},"null"," and will be updated when the connection is ready.",[62,2680,2681,2683],{},[66,2682,2673],{}," contains two properties:",[581,2685,2686,2692],{},[584,2687,2688,2691],{},[66,2689,2690],{},"host",": APIs to communicate with the main app in browser",[584,2693,2694,2697],{},[66,2695,2696],{},"devtools",": APIs to communicate with the devtools",[62,2699,2700,2702],{},[66,2701,2690],{}," can be undefined when devtools are accessed standalone or from a different origin.",[62,2704,2705],{},"For example, you can get the router instance from the client app:",[71,2707,2709],{"className":97,"code":2708,"language":99,"meta":76,"style":76},"const router = computed(() => devtoolsClient.value?.host?.nuxt.vueApp.config.globalProperties?.$router)\n",[66,2710,2711],{"__ignoreMap":76},[80,2712,2713,2715,2718,2720,2723,2725,2727,2729,2732,2734,2737,2740,2742,2744,2746,2748,2751,2753,2756,2758,2761,2763],{"class":82,"line":83},[80,2714,621],{"class":222},[80,2716,2717],{"class":114}," router ",[80,2719,1126],{"class":110},[80,2721,2722],{"class":206}," computed",[80,2724,210],{"class":114},[80,2726,448],{"class":110},[80,2728,223],{"class":222},[80,2730,2731],{"class":114}," devtoolsClient",[80,2733,69],{"class":110},[80,2735,2736],{"class":114},"value",[80,2738,2739],{"class":110},"?.",[80,2741,2690],{"class":114},[80,2743,2739],{"class":110},[80,2745,164],{"class":114},[80,2747,69],{"class":110},[80,2749,2750],{"class":114},"vueApp",[80,2752,69],{"class":110},[80,2754,2755],{"class":114},"config",[80,2757,69],{"class":110},[80,2759,2760],{"class":114},"globalProperties",[80,2762,2739],{"class":110},[80,2764,2765],{"class":114},"$router)\n",[62,2767,2768,2769,2771,2772,2775,2776,2778],{},"The ",[66,2770,2696],{}," object also exposes ",[66,2773,2774],{},"devtoolsKit"," — the connected Vite DevTools\nRPC client (mirroring ",[66,2777,2077],{}," on the server) — for full\ndevframe-native access. Use it to register client RPC functions, call server\nfunctions, and more:",[71,2780,2782],{"className":97,"code":2781,"language":99,"meta":76,"style":76},"const kit = devtoolsClient.value?.devtools.devtoolsKit\nkit?.client.register({\n  name: 'my-module:on-update',\n  type: 'event',\n  handler: (payload) => {\n    \u002F\u002F ...\n  },\n})\n",[66,2783,2784,2807,2823,2837,2851,2868,2873,2877],{"__ignoreMap":76},[80,2785,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804],{"class":82,"line":83},[80,2787,621],{"class":222},[80,2789,2352],{"class":114},[80,2791,1126],{"class":110},[80,2793,2731],{"class":114},[80,2795,69],{"class":110},[80,2797,2736],{"class":114},[80,2799,2739],{"class":110},[80,2801,2696],{"class":114},[80,2803,69],{"class":110},[80,2805,2806],{"class":114},"devtoolsKit\n",[80,2808,2809,2811,2813,2815,2817,2819,2821],{"class":82,"line":196},[80,2810,2567],{"class":114},[80,2812,2739],{"class":110},[80,2814,2583],{"class":114},[80,2816,69],{"class":110},[80,2818,242],{"class":206},[80,2820,210],{"class":114},[80,2822,248],{"class":110},[80,2824,2825,2827,2829,2831,2833,2835],{"class":82,"line":203},[80,2826,466],{"class":245},[80,2828,257],{"class":110},[80,2830,124],{"class":110},[80,2832,2603],{"class":90},[80,2834,265],{"class":110},[80,2836,268],{"class":110},[80,2838,2839,2841,2843,2845,2847,2849],{"class":82,"line":229},[80,2840,639],{"class":245},[80,2842,257],{"class":110},[80,2844,124],{"class":110},[80,2846,2618],{"class":90},[80,2848,265],{"class":110},[80,2850,268],{"class":110},[80,2852,2853,2856,2858,2860,2862,2864,2866],{"class":82,"line":251},[80,2854,2855],{"class":206},"  handler",[80,2857,257],{"class":110},[80,2859,453],{"class":110},[80,2861,2634],{"class":215},[80,2863,219],{"class":110},[80,2865,223],{"class":222},[80,2867,226],{"class":110},[80,2869,2870],{"class":82,"line":271},[80,2871,2872],{"class":460},"    \u002F\u002F ...\n",[80,2874,2875],{"class":82,"line":288},[80,2876,568],{"class":110},[80,2878,2879,2881],{"class":82,"line":305},[80,2880,367],{"class":110},[80,2882,361],{"class":114},[62,2884,2885,2886,69],{},"This replaces the deprecated ",[66,2887,2888],{},"devtools.extendClientRpc()",[148,2890,2892],{"id":2891},"ondevtoolsclientconnected",[66,2893,2894],{},"onDevtoolsClientConnected()",[62,2896,2897,2898,2900],{},"Similiar to ",[66,2899,2507],{}," but as a callback style:",[71,2902,2904],{"className":97,"code":2903,"language":99,"meta":76,"style":76},"import { onDevtoolsClientConnected } from '@nuxt\u002Fdevtools-kit\u002Fiframe-client'\n\nonDevtoolsClientConnected(async (client) => {\n  \u002F\u002F client is NuxtDevtoolsIframeClient\n\n  const config = client.devtools.rpc.getServerConfig()\n  \u002F\u002F ...\n})\n",[66,2905,2906,2925,2929,2949,2954,2958,2986,2990],{"__ignoreMap":76},[80,2907,2908,2910,2912,2915,2917,2919,2921,2923],{"class":82,"line":83},[80,2909,107],{"class":106},[80,2911,111],{"class":110},[80,2913,2914],{"class":114}," onDevtoolsClientConnected",[80,2916,118],{"class":110},[80,2918,121],{"class":106},[80,2920,124],{"class":110},[80,2922,2270],{"class":90},[80,2924,130],{"class":110},[80,2926,2927],{"class":82,"line":196},[80,2928,200],{"emptyLinePlaceholder":199},[80,2930,2931,2934,2936,2939,2941,2943,2945,2947],{"class":82,"line":203},[80,2932,2933],{"class":206},"onDevtoolsClientConnected",[80,2935,210],{"class":114},[80,2937,2938],{"class":222},"async",[80,2940,453],{"class":110},[80,2942,2583],{"class":215},[80,2944,219],{"class":110},[80,2946,223],{"class":222},[80,2948,226],{"class":110},[80,2950,2951],{"class":82,"line":229},[80,2952,2953],{"class":460},"  \u002F\u002F client is NuxtDevtoolsIframeClient\n",[80,2955,2956],{"class":82,"line":251},[80,2957,200],{"emptyLinePlaceholder":199},[80,2959,2960,2963,2966,2968,2971,2973,2975,2977,2979,2981,2984],{"class":82,"line":271},[80,2961,2962],{"class":222},"  const",[80,2964,2965],{"class":114}," config",[80,2967,632],{"class":110},[80,2969,2970],{"class":114}," client",[80,2972,69],{"class":110},[80,2974,2696],{"class":114},[80,2976,69],{"class":110},[80,2978,1470],{"class":114},[80,2980,69],{"class":110},[80,2982,2983],{"class":206},"getServerConfig",[80,2985,1239],{"class":245},[80,2987,2988],{"class":82,"line":288},[80,2989,1986],{"class":460},[80,2991,2992,2994],{"class":82,"line":305},[80,2993,367],{"class":110},[80,2995,361],{"class":114},[142,2997,2999],{"id":2998},"nuxtdevtools-kithost-client",[66,3000,3001],{},"@nuxt\u002Fdevtools-kit\u002Fhost-client",[62,3003,3004,3005,3007],{},"When you have iframe for your devtools view, sometimes you need to communicate with the devtools host (the main app in browser) with a runtime plugin. You can use ",[66,3006,3001],{}," to do that.",[148,3009,3011],{"id":3010},"usedevtoolshostclient",[66,3012,3013],{},"useDevtoolsHostClient()",[62,3015,2670,3016,2674,3019,3021],{},[66,3017,3018],{},"NuxtDevtoolsHostClient",[66,3020,2677],{}," and will be updated when the host is initialized by NuxtDevtools.",[71,3023,3025],{"className":97,"code":3024,"language":99,"meta":76,"style":76},"import { useDevtoolsHostClient } from '@nuxt\u002Fdevtools-kit\u002Fhost-client'\n\nexport default defineNuxtPlugin({\n  name: 'my-module:devtools',\n  setup(nuxtApp) {\n    const devtoolsHost = useDevtoolsHostClient()\n\n    \u002F\u002F ...\n  }\n})\n",[66,3026,3027,3046,3050,3063,3078,3091,3105,3109,3113,3118],{"__ignoreMap":76},[80,3028,3029,3031,3033,3036,3038,3040,3042,3044],{"class":82,"line":83},[80,3030,107],{"class":106},[80,3032,111],{"class":110},[80,3034,3035],{"class":114}," useDevtoolsHostClient",[80,3037,118],{"class":110},[80,3039,121],{"class":106},[80,3041,124],{"class":110},[80,3043,3001],{"class":90},[80,3045,130],{"class":110},[80,3047,3048],{"class":82,"line":196},[80,3049,200],{"emptyLinePlaceholder":199},[80,3051,3052,3054,3056,3059,3061],{"class":82,"line":203},[80,3053,1399],{"class":106},[80,3055,1402],{"class":106},[80,3057,3058],{"class":206}," defineNuxtPlugin",[80,3060,210],{"class":114},[80,3062,248],{"class":110},[80,3064,3065,3067,3069,3071,3074,3076],{"class":82,"line":229},[80,3066,466],{"class":245},[80,3068,257],{"class":110},[80,3070,124],{"class":110},[80,3072,3073],{"class":90},"my-module:devtools",[80,3075,265],{"class":110},[80,3077,268],{"class":110},[80,3079,3080,3082,3084,3087,3089],{"class":82,"line":251},[80,3081,1414],{"class":245},[80,3083,210],{"class":110},[80,3085,3086],{"class":215},"nuxtApp",[80,3088,219],{"class":110},[80,3090,226],{"class":110},[80,3092,3093,3096,3099,3101,3103],{"class":82,"line":271},[80,3094,3095],{"class":222},"    const",[80,3097,3098],{"class":114}," devtoolsHost",[80,3100,632],{"class":110},[80,3102,3035],{"class":206},[80,3104,1239],{"class":245},[80,3106,3107],{"class":82,"line":288},[80,3108,200],{"emptyLinePlaceholder":199},[80,3110,3111],{"class":82,"line":305},[80,3112,2872],{"class":460},[80,3114,3115],{"class":82,"line":322},[80,3116,3117],{"class":110},"  }\n",[80,3119,3120,3122],{"class":82,"line":339},[80,3121,367],{"class":110},[80,3123,361],{"class":114},[148,3125,3127],{"id":3126},"ondevtoolshostclientconnected",[66,3128,3129],{},"onDevtoolsHostClientConnected()",[62,3131,2897,3132,2900],{},[66,3133,3013],{},[71,3135,3137],{"className":97,"code":3136,"language":99,"meta":76,"style":76},"import { onDevtoolsHostClientConnected } from '@nuxt\u002Fdevtools-kit\u002Fhost-client'\n\nonDevtoolsHostClientConnected(async (host) => {\n\n})\n",[66,3138,3139,3158,3162,3181,3185],{"__ignoreMap":76},[80,3140,3141,3143,3145,3148,3150,3152,3154,3156],{"class":82,"line":83},[80,3142,107],{"class":106},[80,3144,111],{"class":110},[80,3146,3147],{"class":114}," onDevtoolsHostClientConnected",[80,3149,118],{"class":110},[80,3151,121],{"class":106},[80,3153,124],{"class":110},[80,3155,3001],{"class":90},[80,3157,130],{"class":110},[80,3159,3160],{"class":82,"line":196},[80,3161,200],{"emptyLinePlaceholder":199},[80,3163,3164,3167,3169,3171,3173,3175,3177,3179],{"class":82,"line":203},[80,3165,3166],{"class":206},"onDevtoolsHostClientConnected",[80,3168,210],{"class":114},[80,3170,2938],{"class":222},[80,3172,453],{"class":110},[80,3174,2690],{"class":215},[80,3176,219],{"class":110},[80,3178,223],{"class":222},[80,3180,226],{"class":110},[80,3182,3183],{"class":82,"line":229},[80,3184,200],{"emptyLinePlaceholder":199},[80,3186,3187,3189],{"class":82,"line":251},[80,3188,367],{"class":110},[80,3190,361],{"class":114},[3192,3193,3194],"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 .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":76,"searchDepth":196,"depth":196,"links":3196},[3197,3210,3215],{"id":144,"depth":196,"text":127,"children":3198},[3199,3201,3202,3203,3204,3205,3206,3207,3208],{"id":150,"depth":203,"text":3200},"Joining the Nuxt Dock Group",{"id":372,"depth":203,"text":375},{"id":717,"depth":203,"text":720},{"id":749,"depth":203,"text":750},{"id":1043,"depth":203,"text":1046},{"id":1253,"depth":203,"text":1256},{"id":1570,"depth":203,"text":765},{"id":2092,"depth":203,"text":2093},{"id":2118,"depth":203,"text":3209},"devtools:notify hook",{"id":2267,"depth":196,"text":2270,"children":3211},[3212,3213,3214],{"id":2511,"depth":203,"text":765},{"id":2665,"depth":203,"text":2507},{"id":2891,"depth":203,"text":2894},{"id":2998,"depth":196,"text":3001,"children":3216},[3217,3218],{"id":3010,"depth":203,"text":3013},{"id":3126,"depth":203,"text":3129},"Utility kit for easier DevTools integrations.","md",{},{"title":36,"description":3219},"DBZAcunDdByB--9KUGsWck3IEl1ftYClTiyzIJiIFOw",[3225,3227],{"title":32,"path":33,"stem":34,"description":3226,"children":-1},"Add your own modules integration to the Nuxt DevTools.",{"title":40,"path":41,"stem":42,"description":3228,"children":-1},"UI Kit is for module authors to build a custom view.",1791531658812]