[{"data":1,"prerenderedAt":2329},["ShallowReactive",2],{"navigation":3,"v3-navigation":406,"\u002Fcontributing\u002Fmaintenance-commands":733,"\u002Fcontributing\u002Fmaintenance-commands-surround":2324},[4,130,180,277,298,319,346],{"title":5,"order":6,"path":7,"stem":8,"children":9,"page":129},"Guide",10,"\u002Fguide","guide",[10,14,19,24,29,35,40,45,50,56,61,66,71,76,82,87,93,98,103,109,114,119,124],{"title":11,"path":12,"stem":13,"order":6,"group":11},"Getting started","\u002Fguide\u002Fgetting-started","guide\u002Fgetting-started",{"title":15,"path":16,"stem":17,"order":18,"group":11},"Migrating from @nuxtjs\u002Fi18n","\u002Fguide\u002Fmigration","guide\u002Fmigration",20,{"title":20,"path":21,"stem":22,"order":23,"group":11},"Upgrading","\u002Fguide\u002Fupgrade","guide\u002Fupgrade",30,{"title":25,"path":26,"stem":27,"order":28,"group":11},"FAQ","\u002Fguide\u002Ffaq","guide\u002Ffaq",40,{"title":30,"path":31,"stem":32,"order":33,"group":34},"Translation files","\u002Fguide\u002Ftranslations","guide\u002Ftranslations",50,"Core concepts",{"title":36,"path":37,"stem":38,"order":39,"group":34},"Page config","\u002Fguide\u002Fper-component-translations","guide\u002Fper-component-translations",60,{"title":41,"path":42,"stem":43,"order":44,"group":34},"Runtime overrides","\u002Fguide\u002Fruntime-overrides","guide\u002Fruntime-overrides",70,{"title":46,"path":47,"stem":48,"order":49,"group":34},"Server routes and API","\u002Fguide\u002Fserver-side-translations","guide\u002Fserver-side-translations",80,{"title":51,"path":52,"stem":53,"order":54,"group":55},"Routing strategies","\u002Fguide\u002Fstrategy","guide\u002Fstrategy",90,"Routing",{"title":57,"path":58,"stem":59,"order":60,"group":55},"Locale detection","\u002Fguide\u002Flocale-detection","guide\u002Flocale-detection",100,{"title":62,"path":63,"stem":64,"order":65,"group":55},"Localized paths","\u002Fguide\u002Fcustom-locale-routes","guide\u002Fcustom-locale-routes",110,{"title":67,"path":68,"stem":69,"order":70,"group":55},"Custom locale detection","\u002Fguide\u002Fcustom-auto-detect","guide\u002Fcustom-auto-detect",120,{"title":72,"path":73,"stem":74,"order":75,"group":55},"Excluding paths","\u002Fguide\u002Fexcluding-static-files","guide\u002Fexcluding-static-files",130,{"title":77,"path":78,"stem":79,"order":80,"group":81},"SEO","\u002Fguide\u002Fseo","guide\u002Fseo",140,"SEO and domains",{"title":83,"path":84,"stem":85,"order":86,"group":81},"Layers and domains","\u002Fguide\u002Flayers","guide\u002Flayers",150,{"title":88,"path":89,"stem":90,"order":91,"group":92},"Deployment","\u002Fguide\u002Fdeployment","guide\u002Fdeployment",160,"Production",{"title":94,"path":95,"stem":96,"order":97,"group":92},"Performance tuning","\u002Fguide\u002Fperformance","guide\u002Fperformance",170,{"title":99,"path":100,"stem":101,"order":102,"group":92},"Performance Test Results","\u002Fguide\u002Fperformance-results","guide\u002Fperformance-results",180,{"title":104,"path":105,"stem":106,"order":107,"group":108},"DevTools","\u002Fguide\u002Fdevtools","guide\u002Fdevtools",190,"Tooling",{"title":110,"path":111,"stem":112,"order":113,"group":108},"CLI","\u002Fguide\u002Fcli","guide\u002Fcli",200,{"title":115,"path":116,"stem":117,"order":118,"group":108},"Testing your app","\u002Fguide\u002Ftesting","guide\u002Ftesting",210,{"title":120,"path":121,"stem":122,"order":123,"group":108},"Storybook","\u002Fguide\u002Fstorybook","guide\u002Fstorybook",220,{"title":125,"path":126,"stem":127,"order":128,"group":108},"Crowdin","\u002Fguide\u002Fcrowdin","guide\u002Fcrowdin",230,false,{"title":131,"order":18,"path":132,"stem":133,"children":134},"Frameworks","\u002Fintegrations","integrations",[135,138,143,147,151,155,159,163,168,172,176],{"title":136,"path":132,"stem":137,"order":6},"Overview","integrations\u002Findex",{"title":139,"path":140,"stem":141,"order":18,"group":142},"Vue","\u002Fintegrations\u002Fvue-package","integrations\u002Fvue-package","UI frameworks",{"title":144,"path":145,"stem":146,"order":23,"group":142},"React and Preact","\u002Fintegrations\u002Freact-package","integrations\u002Freact-package",{"title":148,"path":149,"stem":150,"order":28,"group":142},"Solid","\u002Fintegrations\u002Fsolid-package","integrations\u002Fsolid-package",{"title":152,"path":153,"stem":154,"order":33,"group":142},"Astro","\u002Fintegrations\u002Fastro-package","integrations\u002Fastro-package",{"title":156,"path":157,"stem":158,"order":39,"group":142},"Astro islands","\u002Fintegrations\u002Fastro-islands","integrations\u002Fastro-islands",{"title":160,"path":161,"stem":162,"order":44,"group":142},"VitePress","\u002Fintegrations\u002Fvitepress-package","integrations\u002Fvitepress-package",{"title":164,"path":165,"stem":166,"order":49,"group":167},"Runtime","\u002Fintegrations\u002Fruntime-package","integrations\u002Fruntime-package","Runtimes",{"title":169,"path":170,"stem":171,"order":54,"group":167},"Node.js","\u002Fintegrations\u002Fnodejs-package","integrations\u002Fnodejs-package",{"title":173,"path":174,"stem":175,"order":60,"group":108},"Types generator","\u002Fintegrations\u002Ftypes-generator","integrations\u002Ftypes-generator",{"title":177,"path":178,"stem":179,"order":65,"group":108},"DevTools UI","\u002Fintegrations\u002Fdevtools-ui-package","integrations\u002Fdevtools-ui-package",{"title":181,"order":23,"path":182,"stem":183,"children":184},"API","\u002Fapi","api",[185,188,192,196,200,204],{"title":186,"path":182,"stem":187,"order":6},"API reference","api\u002Findex",{"title":189,"path":190,"stem":191,"order":18},"Module options","\u002Fapi\u002Fmodule-options","api\u002Fmodule-options",{"title":193,"path":194,"stem":195,"order":23},"CLI commands","\u002Fapi\u002Fcli","api\u002Fcli",{"title":197,"path":198,"stem":199,"order":28},"Helpers","\u002Fapi\u002Fmethods","api\u002Fmethods",{"title":201,"path":202,"stem":203,"order":33},"Hooks","\u002Fapi\u002Fevents","api\u002Fevents",{"title":205,"path":206,"stem":207,"children":208,"order":39},"Package APIs","\u002Fapi\u002Fpackages","api\u002Fpackages",[209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273],{"title":210,"path":211,"stem":212},"astro","\u002Fapi\u002Fpackages\u002Fastro","api\u002Fpackages\u002Fastro",{"title":214,"path":215,"stem":216},"cli","\u002Fapi\u002Fpackages\u002Fcli","api\u002Fpackages\u002Fcli",{"title":218,"path":219,"stem":220},"core","\u002Fapi\u002Fpackages\u002Fcore","api\u002Fpackages\u002Fcore",{"title":222,"path":223,"stem":224},"devtools-ui","\u002Fapi\u002Fpackages\u002Fdevtools-ui","api\u002Fpackages\u002Fdevtools-ui",{"title":226,"path":227,"stem":228},"node","\u002Fapi\u002Fpackages\u002Fnode","api\u002Fpackages\u002Fnode",{"title":230,"path":231,"stem":232},"path-strategy","\u002Fapi\u002Fpackages\u002Fpath-strategy","api\u002Fpackages\u002Fpath-strategy",{"title":234,"path":235,"stem":236},"preact","\u002Fapi\u002Fpackages\u002Fpreact","api\u002Fpackages\u002Fpreact",{"title":238,"path":239,"stem":240},"react","\u002Fapi\u002Fpackages\u002Freact","api\u002Fpackages\u002Freact",{"title":242,"path":243,"stem":244},"route-strategy","\u002Fapi\u002Fpackages\u002Froute-strategy","api\u002Fpackages\u002Froute-strategy",{"title":246,"path":247,"stem":248},"runtime","\u002Fapi\u002Fpackages\u002Fruntime","api\u002Fpackages\u002Fruntime",{"title":250,"path":251,"stem":252},"solid","\u002Fapi\u002Fpackages\u002Fsolid","api\u002Fpackages\u002Fsolid",{"title":254,"path":255,"stem":256},"test-utils","\u002Fapi\u002Fpackages\u002Ftest-utils","api\u002Fpackages\u002Ftest-utils",{"title":258,"path":259,"stem":260},"types","\u002Fapi\u002Fpackages\u002Ftypes","api\u002Fpackages\u002Ftypes",{"title":262,"path":263,"stem":264},"types-generator","\u002Fapi\u002Fpackages\u002Ftypes-generator","api\u002Fpackages\u002Ftypes-generator",{"title":266,"path":267,"stem":268},"utils","\u002Fapi\u002Fpackages\u002Futils","api\u002Fpackages\u002Futils",{"title":270,"path":271,"stem":272},"vitepress","\u002Fapi\u002Fpackages\u002Fvitepress","api\u002Fpackages\u002Fvitepress",{"title":274,"path":275,"stem":276},"vue","\u002Fapi\u002Fpackages\u002Fvue","api\u002Fpackages\u002Fvue",{"title":278,"order":28,"path":279,"stem":280,"children":281,"page":129},"Composables","\u002Fcomposables","composables",[282,286,290,294],{"title":283,"path":284,"stem":285,"order":6},"useI18n","\u002Fcomposables\u002FuseI18n","composables\u002FuseI18n",{"title":287,"path":288,"stem":289,"order":18},"useI18nLocale","\u002Fcomposables\u002FuseI18nLocale","composables\u002FuseI18nLocale",{"title":291,"path":292,"stem":293,"order":23},"useI18nHead","\u002Fcomposables\u002FuseI18nHead","composables\u002FuseI18nHead",{"title":295,"path":296,"stem":297,"order":28},"useLocaleHead","\u002Fcomposables\u002FuseLocaleHead","composables\u002FuseLocaleHead",{"title":299,"order":33,"path":300,"stem":301,"children":302,"page":129},"Components","\u002Fcomponents","components",[303,307,311,315],{"title":304,"path":305,"stem":306,"order":6},"\u003Ci18n-t>","\u002Fcomponents\u002Fi18n-t","components\u002Fi18n-t",{"title":308,"path":309,"stem":310,"order":18},"\u003Ci18n-link>","\u002Fcomponents\u002Fi18n-link","components\u002Fi18n-link",{"title":312,"path":313,"stem":314,"order":23},"\u003Ci18n-switcher>","\u002Fcomponents\u002Fi18n-switcher","components\u002Fi18n-switcher",{"title":316,"path":317,"stem":318,"order":28},"\u003Ci18n-group>","\u002Fcomponents\u002Fi18n-group","components\u002Fi18n-group",{"title":320,"order":39,"path":321,"stem":322,"children":323},"Contributing","\u002Fcontributing","contributing",[324,326,330,334,338,342],{"title":320,"path":321,"stem":325,"order":6},"contributing\u002Findex",{"title":327,"path":328,"stem":329,"order":18},"Architecture","\u002Fcontributing\u002Farchitecture","contributing\u002Farchitecture",{"title":331,"path":332,"stem":333,"order":23},"Testing the module","\u002Fcontributing\u002Ftesting","contributing\u002Ftesting",{"title":335,"path":336,"stem":337,"order":28},"Maintenance commands","\u002Fcontributing\u002Fmaintenance-commands","contributing\u002Fmaintenance-commands",{"title":339,"path":340,"stem":341,"order":33},"Release smoke checks","\u002Fcontributing\u002Frelease-smoke","contributing\u002Frelease-smoke",{"title":343,"path":344,"stem":345,"order":39},"Benchmark methodology","\u002Fcontributing\u002Fperformance-methodology","contributing\u002Fperformance-methodology",{"title":347,"path":348,"stem":349,"children":350,"order":44},"News","\u002Fnews","news\u002Findex",[351,354,358,362,366,370,374,378,382,386,390,394,398,402],{"title":352,"path":348,"stem":349,"order":353},"News & Releases",1,{"title":355,"path":356,"stem":357,"order":6},"v4.0.0","\u002Fnews\u002Fv4.0.0","news\u002Fv4.0.0",{"title":359,"path":360,"stem":361,"order":18},"v3.24.0","\u002Fnews\u002Fv3.24.0","news\u002Fv3.24.0",{"title":363,"path":364,"stem":365,"order":23},"v3.22.0","\u002Fnews\u002Fv3.22.0","news\u002Fv3.22.0",{"title":367,"path":368,"stem":369,"order":28},"v3.21.0","\u002Fnews\u002Fv3.21.0","news\u002Fv3.21.0",{"title":371,"path":372,"stem":373,"order":33},"v3.20.0","\u002Fnews\u002Fv3.20.0","news\u002Fv3.20.0",{"title":375,"path":376,"stem":377,"order":39},"v3.19.0","\u002Fnews\u002Fv3.19.0","news\u002Fv3.19.0",{"title":379,"path":380,"stem":381,"order":44},"v3.0.0","\u002Fnews\u002Fv3.0.0","news\u002Fv3.0.0",{"title":383,"path":384,"stem":385,"order":49},"v2.14.1","\u002Fnews\u002Fv2.14.1","news\u002Fv2.14.1",{"title":387,"path":388,"stem":389,"order":54},"v2.0.0","\u002Fnews\u002Fv2.0.0","news\u002Fv2.0.0",{"title":391,"path":392,"stem":393,"order":60},"v1.73.0","\u002Fnews\u002Fv1.73.0","news\u002Fv1.73.0",{"title":395,"path":396,"stem":397,"order":65},"v1.65.0","\u002Fnews\u002Fv1.65.0","news\u002Fv1.65.0",{"title":399,"path":400,"stem":401,"order":70},"v1.58.0","\u002Fnews\u002Fv1.58.0","news\u002Fv1.58.0",{"title":403,"path":404,"stem":405,"order":75},"v1.1.0","\u002Fnews\u002Fv1.1.0","news\u002Fv1.1.0",[407],{"title":408,"path":409,"stem":410,"children":411},"V3","\u002Fv3","v3",[412,415,552,598,691,712,729],{"title":136,"path":409,"stem":413,"order":414},"v3\u002Findex",0,{"title":5,"order":6,"path":416,"stem":417,"children":418,"page":129},"\u002Fv3\u002Fguide","v3\u002Fguide",[419,424,428,432,436,441,445,449,453,457,461,465,469,473,478,482,487,491,495,499,503,507,511,514,518,522,527,533,538,542,547],{"title":420,"path":421,"stem":422,"order":6,"group":423},"Getting Started","\u002Fv3\u002Fguide\u002Fgetting-started","v3\u002Fguide\u002Fgetting-started","Basics",{"title":425,"path":426,"stem":427,"order":18,"group":423},"Configuration","\u002Fv3\u002Fguide\u002Fconfiguration","v3\u002Fguide\u002Fconfiguration",{"title":429,"path":430,"stem":431,"order":23,"group":423},"Folder Structure","\u002Fv3\u002Fguide\u002Ffolder-structure","v3\u002Fguide\u002Ffolder-structure",{"title":433,"path":434,"stem":435,"order":28,"group":423},"Routing Strategy","\u002Fv3\u002Fguide\u002Fstrategy","v3\u002Fguide\u002Fstrategy",{"title":437,"path":438,"stem":439,"order":33,"group":440},"Translating Content","\u002Fv3\u002Fguide\u002Fusing","v3\u002Fguide\u002Fusing","Usage",{"title":442,"path":443,"stem":444,"order":39,"group":440},"Per Component Translations","\u002Fv3\u002Fguide\u002Fper-component-translations","v3\u002Fguide\u002Fper-component-translations",{"title":446,"path":447,"stem":448,"order":44,"group":440},"Custom Localized Routes","\u002Fv3\u002Fguide\u002Fcustom-locale-routes","v3\u002Fguide\u002Fcustom-locale-routes",{"title":450,"path":451,"stem":452,"order":49,"group":440},"Custom Auto Detect","\u002Fv3\u002Fguide\u002Fcustom-auto-detect","v3\u002Fguide\u002Fcustom-auto-detect",{"title":454,"path":455,"stem":456,"order":54,"group":440},"Runtime Overrides","\u002Fv3\u002Fguide\u002Fruntime-overrides","v3\u002Fguide\u002Fruntime-overrides",{"title":458,"path":459,"stem":460,"order":60,"group":440},"Layers","\u002Fv3\u002Fguide\u002Flayers","v3\u002Fguide\u002Flayers",{"title":77,"path":462,"stem":463,"order":65,"group":464},"\u002Fv3\u002Fguide\u002Fseo","v3\u002Fguide\u002Fseo","SEO & URLs",{"title":466,"path":467,"stem":468,"order":70,"group":464},"Multi Domain Locales","\u002Fv3\u002Fguide\u002Fmulti-domain-locales","v3\u002Fguide\u002Fmulti-domain-locales",{"title":470,"path":471,"stem":472,"order":75,"group":464},"Excluding Static Files","\u002Fv3\u002Fguide\u002Fexcluding-static-files","v3\u002Fguide\u002Fexcluding-static-files",{"title":474,"path":475,"stem":476,"order":80,"group":477},"Performance","\u002Fv3\u002Fguide\u002Fperformance","v3\u002Fguide\u002Fperformance","Performance & Deployment",{"title":479,"path":480,"stem":481,"order":86,"group":477},"Benchmark Results","\u002Fv3\u002Fguide\u002Fperformance-results","v3\u002Fguide\u002Fperformance-results",{"title":483,"path":484,"stem":485,"order":486,"group":477},"Performance methodology","\u002Fv3\u002Fguide\u002Fperformance-methodology","v3\u002Fguide\u002Fperformance-methodology",155,{"title":488,"path":489,"stem":490,"order":91,"group":477},"Server Side Translations","\u002Fv3\u002Fguide\u002Fserver-side-translations","v3\u002Fguide\u002Fserver-side-translations",{"title":492,"path":493,"stem":494,"order":97,"group":477},"Firebase Deployment","\u002Fv3\u002Fguide\u002Ffirebase","v3\u002Fguide\u002Ffirebase",{"title":496,"path":497,"stem":498,"order":102,"group":477},"Release Smoke Checks","\u002Fv3\u002Fguide\u002Frelease-smoke","v3\u002Fguide\u002Frelease-smoke",{"title":500,"path":501,"stem":502,"order":107,"group":477},"Preset local testing","\u002Fv3\u002Fguide\u002Fpreset-local-testing","v3\u002Fguide\u002Fpreset-local-testing",{"title":504,"path":505,"stem":506,"order":113,"group":477},"Maintenance Commands","\u002Fv3\u002Fguide\u002Fmaintenance-commands","v3\u002Fguide\u002Fmaintenance-commands",{"title":508,"path":509,"stem":510,"order":118,"group":108},"CLI Tool","\u002Fv3\u002Fguide\u002Fcli","v3\u002Fguide\u002Fcli",{"title":104,"path":512,"stem":513,"order":123,"group":108},"\u002Fv3\u002Fguide\u002Fdevtools","v3\u002Fguide\u002Fdevtools",{"title":515,"path":516,"stem":517,"order":128,"group":108},"Testing Your App","\u002Fv3\u002Fguide\u002Ftesting","v3\u002Fguide\u002Ftesting",{"title":120,"path":519,"stem":520,"order":521,"group":108},"\u002Fv3\u002Fguide\u002Fstorybook","v3\u002Fguide\u002Fstorybook",240,{"title":523,"path":524,"stem":525,"order":526,"group":108},"Crowdin Integration","\u002Fv3\u002Fguide\u002Fcrowdin","v3\u002Fguide\u002Fcrowdin",250,{"title":528,"path":529,"stem":530,"order":531,"group":532},"Migration from nuxt-i18n","\u002Fv3\u002Fguide\u002Fmigration","v3\u002Fguide\u002Fmigration",260,"Migration & Help",{"title":534,"path":535,"stem":536,"order":537,"group":532},"Upgrade to v3","\u002Fv3\u002Fguide\u002Fv3-upgrade","v3\u002Fguide\u002Fv3-upgrade",270,{"title":25,"path":539,"stem":540,"order":541,"group":532},"\u002Fv3\u002Fguide\u002Ffaq","v3\u002Fguide\u002Ffaq",280,{"title":543,"path":544,"stem":545,"order":546,"group":532},"Contribution","\u002Fv3\u002Fguide\u002Fcontribution","v3\u002Fguide\u002Fcontribution",290,{"title":548,"path":549,"stem":550,"order":551,"group":532},"Testing the Module","\u002Fv3\u002Fguide\u002Ftesting-strategies","v3\u002Fguide\u002Ftesting-strategies",300,{"title":553,"order":18,"path":554,"stem":555,"children":556},"Integrations","\u002Fv3\u002Fintegrations","v3\u002Fintegrations\u002Findex",[557,558,562,566,570,574,578,582,586,590,594],{"title":136,"path":554,"stem":555,"order":6},{"title":559,"path":560,"stem":561,"order":18},"Vue Package","\u002Fv3\u002Fintegrations\u002Fvue-package","v3\u002Fintegrations\u002Fvue-package",{"title":563,"path":564,"stem":565,"order":23},"React Package","\u002Fv3\u002Fintegrations\u002Freact-package","v3\u002Fintegrations\u002Freact-package",{"title":567,"path":568,"stem":569,"order":28},"Preact Package","\u002Fv3\u002Fintegrations\u002Fpreact-package","v3\u002Fintegrations\u002Fpreact-package",{"title":571,"path":572,"stem":573,"order":33},"Solid Package","\u002Fv3\u002Fintegrations\u002Fsolid-package","v3\u002Fintegrations\u002Fsolid-package",{"title":575,"path":576,"stem":577,"order":39},"Astro Package","\u002Fv3\u002Fintegrations\u002Fastro-package","v3\u002Fintegrations\u002Fastro-package",{"title":579,"path":580,"stem":581,"order":44},"VitePress Package","\u002Fv3\u002Fintegrations\u002Fvitepress-package","v3\u002Fintegrations\u002Fvitepress-package",{"title":583,"path":584,"stem":585,"order":49},"Runtime Package","\u002Fv3\u002Fintegrations\u002Fruntime-package","v3\u002Fintegrations\u002Fruntime-package",{"title":587,"path":588,"stem":589,"order":54},"Node.js Package","\u002Fv3\u002Fintegrations\u002Fnodejs-package","v3\u002Fintegrations\u002Fnodejs-package",{"title":591,"path":592,"stem":593,"order":60},"Types Generator","\u002Fv3\u002Fintegrations\u002Ftypes-generator","v3\u002Fintegrations\u002Ftypes-generator",{"title":595,"path":596,"stem":597,"order":65},"Devtools Package","\u002Fv3\u002Fintegrations\u002Fdevtools-ui-package","v3\u002Fintegrations\u002Fdevtools-ui-package",{"title":181,"order":23,"path":599,"stem":600,"children":601},"\u002Fv3\u002Fapi","v3\u002Fapi\u002Findex",[602,603,607,611,615,619],{"title":136,"path":599,"stem":600,"order":6},{"title":604,"path":605,"stem":606,"order":18},"Methods","\u002Fv3\u002Fapi\u002Fmethods","v3\u002Fapi\u002Fmethods",{"title":608,"path":609,"stem":610,"order":23},"Events","\u002Fv3\u002Fapi\u002Fevents","v3\u002Fapi\u002Fevents",{"title":612,"path":613,"stem":614,"order":28},"Translations and Cache","\u002Fv3\u002Fapi\u002Fi18n-cache-api","v3\u002Fapi\u002Fi18n-cache-api",{"title":616,"path":617,"stem":618,"order":33},"Module Options","\u002Fv3\u002Fapi\u002Fmodule-options","v3\u002Fapi\u002Fmodule-options",{"title":205,"path":620,"stem":621,"children":622,"order":39},"\u002Fv3\u002Fapi\u002Fpackages","v3\u002Fapi\u002Fpackages",[623,627,631,635,639,643,647,651,655,659,663,667,671,675,679,683,687],{"title":624,"path":625,"stem":626},"@i18n-micro\u002Fastro","\u002Fv3\u002Fapi\u002Fpackages\u002Fastro","v3\u002Fapi\u002Fpackages\u002Fastro",{"title":628,"path":629,"stem":630},"@i18n-micro\u002Fcore","\u002Fv3\u002Fapi\u002Fpackages\u002Fcore","v3\u002Fapi\u002Fpackages\u002Fcore",{"title":632,"path":633,"stem":634},"@i18n-micro\u002Fdevtools-ui","\u002Fv3\u002Fapi\u002Fpackages\u002Fdevtools-ui","v3\u002Fapi\u002Fpackages\u002Fdevtools-ui",{"title":636,"path":637,"stem":638},"@i18n-micro\u002Fhmr","\u002Fv3\u002Fapi\u002Fpackages\u002Fhmr","v3\u002Fapi\u002Fpackages\u002Fhmr",{"title":640,"path":641,"stem":642},"@i18n-micro\u002Fnode","\u002Fv3\u002Fapi\u002Fpackages\u002Fnode","v3\u002Fapi\u002Fpackages\u002Fnode",{"title":644,"path":645,"stem":646},"@i18n-micro\u002Fpath-strategy","\u002Fv3\u002Fapi\u002Fpackages\u002Fpath-strategy","v3\u002Fapi\u002Fpackages\u002Fpath-strategy",{"title":648,"path":649,"stem":650},"@i18n-micro\u002Fpreact","\u002Fv3\u002Fapi\u002Fpackages\u002Fpreact","v3\u002Fapi\u002Fpackages\u002Fpreact",{"title":652,"path":653,"stem":654},"@i18n-micro\u002Freact","\u002Fv3\u002Fapi\u002Fpackages\u002Freact","v3\u002Fapi\u002Fpackages\u002Freact",{"title":656,"path":657,"stem":658},"@i18n-micro\u002Froute-strategy","\u002Fv3\u002Fapi\u002Fpackages\u002Froute-strategy","v3\u002Fapi\u002Fpackages\u002Froute-strategy",{"title":660,"path":661,"stem":662},"@i18n-micro\u002Fruntime","\u002Fv3\u002Fapi\u002Fpackages\u002Fruntime","v3\u002Fapi\u002Fpackages\u002Fruntime",{"title":664,"path":665,"stem":666},"@i18n-micro\u002Fsolid","\u002Fv3\u002Fapi\u002Fpackages\u002Fsolid","v3\u002Fapi\u002Fpackages\u002Fsolid",{"title":668,"path":669,"stem":670},"@i18n-micro\u002Ftest-utils","\u002Fv3\u002Fapi\u002Fpackages\u002Ftest-utils","v3\u002Fapi\u002Fpackages\u002Ftest-utils",{"title":672,"path":673,"stem":674},"@i18n-micro\u002Ftypes","\u002Fv3\u002Fapi\u002Fpackages\u002Ftypes","v3\u002Fapi\u002Fpackages\u002Ftypes",{"title":676,"path":677,"stem":678},"@i18n-micro\u002Ftypes-generator","\u002Fv3\u002Fapi\u002Fpackages\u002Ftypes-generator","v3\u002Fapi\u002Fpackages\u002Ftypes-generator",{"title":680,"path":681,"stem":682},"@i18n-micro\u002Futils","\u002Fv3\u002Fapi\u002Fpackages\u002Futils","v3\u002Fapi\u002Fpackages\u002Futils",{"title":684,"path":685,"stem":686},"@i18n-micro\u002Fvitepress","\u002Fv3\u002Fapi\u002Fpackages\u002Fvitepress","v3\u002Fapi\u002Fpackages\u002Fvitepress",{"title":688,"path":689,"stem":690},"@i18n-micro\u002Fvue","\u002Fv3\u002Fapi\u002Fpackages\u002Fvue","v3\u002Fapi\u002Fpackages\u002Fvue",{"title":299,"order":28,"path":692,"stem":693,"children":694},"\u002Fv3\u002Fcomponents","v3\u002Fcomponents\u002Findex",[695,696,700,704,708],{"title":136,"path":692,"stem":693,"order":6},{"title":697,"path":698,"stem":699,"order":18},"i18n-t","\u002Fv3\u002Fcomponents\u002Fi18n-t","v3\u002Fcomponents\u002Fi18n-t",{"title":701,"path":702,"stem":703,"order":23},"i18n-switcher","\u002Fv3\u002Fcomponents\u002Fi18n-switcher","v3\u002Fcomponents\u002Fi18n-switcher",{"title":705,"path":706,"stem":707,"order":28},"i18n-link","\u002Fv3\u002Fcomponents\u002Fi18n-link","v3\u002Fcomponents\u002Fi18n-link",{"title":709,"path":710,"stem":711,"order":33},"i18n-group","\u002Fv3\u002Fcomponents\u002Fi18n-group","v3\u002Fcomponents\u002Fi18n-group",{"title":278,"path":713,"stem":714,"children":715,"order":33},"\u002Fv3\u002Fcomposables","v3\u002Fcomposables\u002Findex",[716,717,720,723,726],{"title":136,"path":713,"stem":714,"order":6},{"title":283,"path":718,"stem":719,"order":18},"\u002Fv3\u002Fcomposables\u002FuseI18n","v3\u002Fcomposables\u002FuseI18n",{"title":295,"path":721,"stem":722,"order":23},"\u002Fv3\u002Fcomposables\u002FuseLocaleHead","v3\u002Fcomposables\u002FuseLocaleHead",{"title":291,"path":724,"stem":725,"order":28},"\u002Fv3\u002Fcomposables\u002FuseI18nHead","v3\u002Fcomposables\u002FuseI18nHead",{"title":287,"path":727,"stem":728,"order":33},"\u002Fv3\u002Fcomposables\u002FuseI18nLocale","v3\u002Fcomposables\u002FuseI18nLocale",{"title":730,"path":731,"stem":732,"order":39},"Examples","\u002Fv3\u002Fexamples","v3\u002Fexamples",{"id":734,"title":335,"body":735,"description":2316,"extension":1286,"lastUpdated":2317,"links":2318,"meta":2319,"navigation":2321,"path":336,"seo":2322,"stem":337,"__hash__":2323},"docs\u002Fcontributing\u002Fmaintenance-commands.md",{"type":736,"value":737,"toc":2299},"minimark",[738,742,746,758,802,807,1119,1149,1151,1168,1279,1282,1301,1315,1317,1327,1374,1383,1385,1403,1433,1435,1450,1479,1481,1529,1559,1561,1570,1615,1617,1660,1730,1768,1771,1774,1834,1845,1849,1864,1925,1930,1933,1952,2041,2053,2058,2061,2073,2106,2129,2147,2155,2164,2181,2185,2278,2282,2295],[739,740,335],"h1",{"id":741},"maintenance-commands",[743,744,745],"p",{},"These commands check the repository itself, not apps that use the module. Run them when you change exports, docs, dependencies or fixtures, and before a release. Each catches a drift that builds and tests do not notice.",[743,747,748,749,753,754,757],{},"All of them live in the ",[750,751,752],"code",{},"scripts\u002F"," workspace package and run through one CLI; ",[750,755,756],{},"--help"," prints every flag:",[759,760,765],"pre",{"className":761,"code":762,"language":763,"meta":764,"style":764},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm -C scripts cli \u003Ccommand> --help\n","bash","",[750,766,767],{"__ignoreMap":764},[768,769,771,775,779,782,785,789,792,796,799],"span",{"class":770,"line":353},"line",[768,772,774],{"class":773},"sBMFI","pnpm",[768,776,778],{"class":777},"sfazB"," -C",[768,780,781],{"class":777}," scripts",[768,783,784],{"class":777}," cli",[768,786,788],{"class":787},"sMK4o"," \u003C",[768,790,791],{"class":777},"comman",[768,793,795],{"class":794},"sTEyZ","d",[768,797,798],{"class":787},">",[768,800,801],{"class":777}," --help\n",[803,804,806],"h2",{"id":805},"commands","Commands",[808,809,810,826],"table",{},[811,812,813],"thead",{},[814,815,816,820,823],"tr",{},[817,818,819],"th",{},"Command",[817,821,822],{},"Root script",[817,824,825],{},"Catches",[827,828,829,853,874,892,910,928,952,971,997,1012,1046,1061,1076,1102],"tbody",{},[814,830,831,841,850],{},[832,833,834],"td",{},[835,836,838],"a",{"href":837},"#docs-generate",[750,839,840],{},"docs-generate",[832,842,843,846,847],{},[750,844,845],{},"docs:generate",", ",[750,848,849],{},"docs:generate:check",[832,851,852],{},"Generated docs regions out of date with the code",[814,854,855,863,871],{},[832,856,857],{},[835,858,860],{"href":859},"#api-surface",[750,861,862],{},"api-surface",[832,864,865,846,868],{},[750,866,867],{},"api:surface",[750,869,870],{},"api:surface:update",[832,872,873],{},"An export removed or retyped",[814,875,876,884,889],{},[832,877,878],{},[835,879,881],{"href":880},"#docs-audit",[750,882,883],{},"docs-audit",[832,885,886],{},[750,887,888],{},"audit:docs",[832,890,891],{},"Undocumented options, dead nav\u002Fsidebar entries and links",[814,893,894,902,907],{},[832,895,896],{},[835,897,899],{"href":898},"#deps-audit",[750,900,901],{},"deps-audit",[832,903,904],{},[750,905,906],{},"audit:deps",[832,908,909],{},"Versions outside the catalog, imports never declared",[814,911,912,920,925],{},[832,913,914],{},[835,915,917],{"href":916},"#fixtures-audit",[750,918,919],{},"fixtures-audit",[832,921,922],{},[750,923,924],{},"audit:fixtures",[832,926,927],{},"Unreferenced fixtures, committed build output",[814,929,930,938,946],{},[832,931,932],{},[835,933,935],{"href":934},"#payload-budget",[750,936,937],{},"payload-budget",[832,939,940,846,943],{},[750,941,942],{},"budget:payload",[750,944,945],{},"budget:payload:update",[832,947,948,951],{},[750,949,950],{},"__NUXT_DATA__"," or client assets growing",[814,953,954,959,964],{},[832,955,956],{},[750,957,958],{},"check-versions",[832,960,961],{},[750,962,963],{},"check:versions",[832,965,966,967,970],{},"A changed package without a version bump (",[750,968,969],{},"--npm",": version already published)",[814,972,973,978,986],{},[832,974,975],{},[750,976,977],{},"verify-packages",[832,979,980,846,983],{},[750,981,982],{},"verify:packages",[750,984,985],{},"verify:packages:publint",[832,987,988,989,992,993,996],{},"Broken ",[750,990,991],{},"exports"," \u002F ",[750,994,995],{},"files"," in a package",[814,998,999,1004,1009],{},[832,1000,1001],{},[750,1002,1003],{},"compare-published",[832,1005,1006],{},[750,1007,1008],{},"compare:published",[832,1010,1011],{},"The packed packages against the versions on npm",[814,1013,1014,1019,1024],{},[832,1015,1016],{},[750,1017,1018],{},"consumer-types",[832,1020,1021],{},[750,1022,1023],{},"check:consumer",[832,1025,1026,1027,1030,1031,1034,1035,1038,1039,1042,1043],{},"Published ",[750,1028,1029],{},".d.ts"," that break a user: Are The Types Wrong, then ",[750,1032,1033],{},"tsc"," with ",[750,1036,1037],{},"skipLibCheck: false"," under ",[750,1040,1041],{},"bundler"," and ",[750,1044,1045],{},"node16",[814,1047,1048,1053,1058],{},[832,1049,1050],{},[750,1051,1052],{},"oldest-versions",[832,1054,1055],{},[750,1056,1057],{},"check:oldest",[832,1059,1060],{},"A peer range that fails at its floor: Nuxt 3.18, VitePress 1.0, Vue 3.3, vue-router 4.5.1",[814,1062,1063,1068,1073],{},[832,1064,1065],{},[750,1066,1067],{},"http-fuzz",[832,1069,1070],{},[750,1071,1072],{},"test:fuzz",[832,1074,1075],{},"Off-origin redirects, header injection, reflected HTML, traversal, crashes under hostile HTTP. For release checks, not CI",[814,1077,1078,1083,1088],{},[832,1079,1080],{},[750,1081,1082],{},"ensure-release-source",[832,1084,1085],{},[750,1086,1087],{},"release:source",[832,1089,1090,1091,1094,1095,1098,1099],{},"Root ",[750,1092,1093],{},"version"," or ",[750,1096,1097],{},"CHANGELOG.md"," changed outside ",[750,1100,1101],{},"cli release",[814,1103,1104,1112,1116],{},[832,1105,1106],{},[835,1107,1109],{"href":1108},"#preflight",[750,1110,1111],{},"preflight",[832,1113,1114],{},[750,1115,1111],{},[832,1117,1118],{},"All release gates in one run",[743,1120,1121,1042,1124,1127,1128,1132,1133,846,1136,1139,1140,1143,1144,1042,1146,1148],{},[750,1122,1123],{},"release",[750,1125,1126],{},"bump"," are covered in ",[835,1129,1131],{"href":1130},"#publishing","Publishing",". ",[750,1134,1135],{},"performance",[750,1137,1138],{},"preset-smoke"," and the ",[750,1141,1142],{},"smoke-*"," commands are covered in ",[835,1145,339],{"href":340},[835,1147,343],{"href":344},".",[803,1150,840],{"id":840},[743,1152,1153,1154,1042,1157,1160,1161,1163,1164,1167],{},"Writes the generated parts of the docs from the code. ",[750,1155,1156],{},"docs:dev",[750,1158,1159],{},"docs:build"," run it first; CI and ",[750,1162,1111],{}," run ",[750,1165,1166],{},"--check",", which fails when a page would change.",[808,1169,1170,1180],{},[811,1171,1172],{},[814,1173,1174,1177],{},[817,1175,1176],{},"Output",[817,1178,1179],{},"Read from",[827,1181,1182,1203,1225,1239,1253,1267],{},[814,1183,1184,1193],{},[832,1185,1186,1188,1189,1192],{},[835,1187,189],{"href":190}," tables and ",[750,1190,1191],{},"option:\u003Cpath>"," regions",[832,1194,1195,1198,1199,1202],{},[750,1196,1197],{},"ModuleOptions"," in ",[750,1200,1201],{},"packages\u002Ftypes\u002Fsrc\u002Findex.ts"," (TypeScript AST)",[814,1204,1205,1213],{},[832,1206,1207,1209,1210,1192],{},[835,1208,197],{"href":198}," index and ",[750,1211,1212],{},"method:\u003Cname>",[832,1214,1215,846,1218,1198,1221,1224],{},[750,1216,1217],{},"PluginsInjections",[750,1219,1220],{},"NuxtAppOnlyInjections",[750,1222,1223],{},"src\u002Fruntime\u002Fplugins\u002F01.plugin.ts"," (TypeDoc)",[814,1226,1227,1234],{},[832,1228,1229,1230,1233],{},"Composable signatures (",[750,1231,1232],{},"symbol:\u003Cname>",")",[832,1235,1236,1224],{},[750,1237,1238],{},"src\u002Fruntime\u002Fcomposables\u002F*.ts",[814,1240,1241,1247],{},[832,1242,1243,1244,1233],{},"Component props, slots, events (",[750,1245,1246],{},"component:\u003Ctag>",[832,1248,1249,1252],{},[750,1250,1251],{},"src\u002Fruntime\u002Fcomponents\u002F*.vue"," (vue-docgen-api)",[814,1254,1255,1262],{},[832,1256,1257,1209,1259],{},[835,1258,205],{"href":206},[750,1260,1261],{},"docs\u002Fapi\u002Fpackages\u002F*.md",[832,1263,1264],{},[750,1265,1266],{},"scripts\u002Fapi-surface\u002F*.api.txt",[814,1268,1269,1274],{},[832,1270,1271,1272],{},"Payload budget table in ",[835,1273,474],{"href":95},[832,1275,1276],{},[750,1277,1278],{},"scripts\u002Fpayload-budget.json",[743,1280,1281],{},"A region is marked in a hand-written page and replaced on every run:",[759,1283,1287],{"className":1284,"code":1285,"language":1286,"meta":764,"style":764},"language-md shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!-- generated:method:$t — do not edit; run `pnpm run docs:generate` -->\n\u003C!-- \u002Fgenerated:method:$t -->\n","md",[750,1288,1289,1295],{"__ignoreMap":764},[768,1290,1291],{"class":770,"line":353},[768,1292,1294],{"class":1293},"sHwdD","\u003C!-- generated:method:$t — do not edit; run `pnpm run docs:generate` -->\n",[768,1296,1298],{"class":770,"line":1297},2,[768,1299,1300],{"class":1293},"\u003C!-- \u002Fgenerated:method:$t -->\n",[743,1302,1303,1304,1094,1307,1310,1311,1314],{},"A fixed page that lacks its region makes the command exit with an error; an optional region (an ",[750,1305,1306],{},"option:*",[750,1308,1309],{},"method:*"," block) is filled only where a page has one. To change generated text, edit the JSDoc (or ",[750,1312,1313],{},"@slot"," comment) in the source and rerun. Tests require a comment on every prop, slot, helper and composable.",[803,1316,862],{"id":862},[743,1318,1319,1320,1322,1323,1326],{},"Compares the exported API of every package with the committed snapshots in ",[750,1321,1266],{},": one line per export and per class member. It reads ",[750,1324,1325],{},"src"," through the TypeScript program, so no build is needed. Removals and signature changes fail; additions are reported.",[759,1328,1330],{"className":761,"code":1329,"language":763,"meta":764,"style":764},"pnpm run api:surface\npnpm run api:surface:update   # accept the current surface\npnpm -C scripts cli api-surface --package core\n",[750,1331,1332,1342,1354],{"__ignoreMap":764},[768,1333,1334,1336,1339],{"class":770,"line":353},[768,1335,774],{"class":773},[768,1337,1338],{"class":777}," run",[768,1340,1341],{"class":777}," api:surface\n",[768,1343,1344,1346,1348,1351],{"class":770,"line":1297},[768,1345,774],{"class":773},[768,1347,1338],{"class":777},[768,1349,1350],{"class":777}," api:surface:update",[768,1352,1353],{"class":1293},"   # accept the current surface\n",[768,1355,1357,1359,1361,1363,1365,1368,1371],{"class":770,"line":1356},3,[768,1358,774],{"class":773},[768,1360,778],{"class":777},[768,1362,781],{"class":777},[768,1364,784],{"class":777},[768,1366,1367],{"class":777}," api-surface",[768,1369,1370],{"class":777}," --package",[768,1372,1373],{"class":777}," core\n",[743,1375,1376,1377,1379,1380,1382],{},"After an accepted change run ",[750,1378,870],{},", then ",[750,1381,845],{},", in that order: the package pages read the snapshots.",[803,1384,883],{"id":883},[743,1386,1387,1388,1390,1391,1394,1395,1398,1399,1402],{},"Fails on an option of ",[750,1389,1197],{}," that appears nowhere in ",[750,1392,1393],{},"docs\u002F",", a nav or sidebar entry pointing at a missing page, and a link to a missing page. Warns on a page no nav or sidebar reaches. Dynamic routes (",[750,1396,1397],{},"[param].md",") and ",[750,1400,1401],{},"cleanUrls"," are resolved the way VitePress does.",[759,1404,1406],{"className":761,"code":1405,"language":763,"meta":764,"style":764},"pnpm run audit:docs\npnpm -C scripts cli docs-audit --warnings-as-errors\n",[750,1407,1408,1417],{"__ignoreMap":764},[768,1409,1410,1412,1414],{"class":770,"line":353},[768,1411,774],{"class":773},[768,1413,1338],{"class":777},[768,1415,1416],{"class":777}," audit:docs\n",[768,1418,1419,1421,1423,1425,1427,1430],{"class":770,"line":1297},[768,1420,774],{"class":773},[768,1422,778],{"class":777},[768,1424,781],{"class":777},[768,1426,784],{"class":777},[768,1428,1429],{"class":777}," docs-audit",[768,1431,1432],{"class":777}," --warnings-as-errors\n",[803,1434,901],{"id":901},[743,1436,1437,1438,1441,1442,1445,1446,1449],{},"Fails when a dependency is pinned outside the ",[750,1439,1440],{},"pnpm-workspace.yaml"," catalog or a package imports something it does not declare (",[750,1443,1444],{},"undeclared-import","). Warns on imports satisfied only by a devDependency, ",[750,1447,1448],{},"import type"," of an undeclared package, unused catalog entries, and peers without a matching devDependency. Comments and template literals are ignored when scanning.",[759,1451,1453],{"className":761,"code":1452,"language":763,"meta":764,"style":764},"pnpm run audit:deps\npnpm -C scripts cli deps-audit --warnings-as-errors\n",[750,1454,1455,1464],{"__ignoreMap":764},[768,1456,1457,1459,1461],{"class":770,"line":353},[768,1458,774],{"class":773},[768,1460,1338],{"class":777},[768,1462,1463],{"class":777}," audit:deps\n",[768,1465,1466,1468,1470,1472,1474,1477],{"class":770,"line":1297},[768,1467,774],{"class":773},[768,1469,778],{"class":777},[768,1471,781],{"class":777},[768,1473,784],{"class":777},[768,1475,1476],{"class":777}," deps-audit",[768,1478,1432],{"class":777},[803,1480,919],{"id":919},[743,1482,1483,1484,1487,1488,846,1491,846,1494,1497,1498,846,1501,846,1504,846,1507,846,1510,1513,1514,1517,1518,1522,1523,1526,1527,1148],{},"Lists fixtures under ",[750,1485,1486],{},"test\u002Ffixtures\u002F"," that nothing in ",[750,1489,1490],{},"test\u002F",[750,1492,1493],{},".github\u002F",[750,1495,1496],{},"package.json"," or the Vitest configs references, and build output (",[750,1499,1500],{},".nuxt",[750,1502,1503],{},".output",[750,1505,1506],{},".output-shared",[750,1508,1509],{},".nuxt-test",[750,1511,1512],{},"test-results",") inside a fixture. It never deletes. ",[750,1515,1516],{},"--strict"," fails only on ",[1519,1520,1521],"strong",{},"committed"," build output. ",[750,1524,1525],{},"pnpm run clean:test"," removes local build output except ",[750,1528,1503],{},[759,1530,1532],{"className":761,"code":1531,"language":763,"meta":764,"style":764},"pnpm run audit:fixtures\npnpm -C scripts cli fixtures-audit --strict\n",[750,1533,1534,1543],{"__ignoreMap":764},[768,1535,1536,1538,1540],{"class":770,"line":353},[768,1537,774],{"class":773},[768,1539,1338],{"class":777},[768,1541,1542],{"class":777}," audit:fixtures\n",[768,1544,1545,1547,1549,1551,1553,1556],{"class":770,"line":1297},[768,1546,774],{"class":773},[768,1548,778],{"class":777},[768,1550,781],{"class":777},[768,1552,784],{"class":777},[768,1554,1555],{"class":777}," fixtures-audit",[768,1557,1558],{"class":777}," --strict\n",[803,1560,937],{"id":937},[743,1562,1563,1564,1566,1567,1569],{},"Builds an app (default: the playground), serves it, and measures ",[750,1565,950],{}," per route and the client assets against ",[750,1568,1278],{},". The playground's dictionary is deliberately huge, so the numbers are a fixed point for comparison, not what a real app ships.",[759,1571,1573],{"className":761,"code":1572,"language":763,"meta":764,"style":764},"pnpm run budget:payload\npnpm -C scripts cli payload-budget --skip-build   # reuse .output\npnpm run budget:payload:update                    # record with --tolerance headroom (default 10 %)\n",[750,1574,1575,1584,1603],{"__ignoreMap":764},[768,1576,1577,1579,1581],{"class":770,"line":353},[768,1578,774],{"class":773},[768,1580,1338],{"class":777},[768,1582,1583],{"class":777}," budget:payload\n",[768,1585,1586,1588,1590,1592,1594,1597,1600],{"class":770,"line":1297},[768,1587,774],{"class":773},[768,1589,778],{"class":777},[768,1591,781],{"class":777},[768,1593,784],{"class":777},[768,1595,1596],{"class":777}," payload-budget",[768,1598,1599],{"class":777}," --skip-build",[768,1601,1602],{"class":1293},"   # reuse .output\n",[768,1604,1605,1607,1609,1612],{"class":770,"line":1356},[768,1606,774],{"class":773},[768,1608,1338],{"class":777},[768,1610,1611],{"class":777}," budget:payload:update",[768,1613,1614],{"class":1293},"                    # record with --tolerance headroom (default 10 %)\n",[803,1616,1111],{"id":1111},[743,1618,1619,1620,1623,1624,1627,1628,846,1630,846,1633,846,1635,846,1637,846,1640,846,1643,846,1645,846,1647,1650,1651,1653,1654,1650,1656,1659],{},"Runs the preflight gates, publishes nothing, and reports all results at once (the ",[750,1621,1622],{},"release:*"," scripts stop at the first failure). ",[750,1625,1626],{},"release:check"," also runs prepack, format, lint, typecheck, compare-published and tests, so preflight alone is not a full release check. Gates in order: ",[750,1629,901],{},[750,1631,1632],{},"verify-packages --publint",[750,1634,862],{},[750,1636,883],{},[750,1638,1639],{},"docs-generate --check",[750,1641,1642],{},"fixtures-audit --strict",[750,1644,958],{},[750,1646,1082],{},[750,1648,1649],{},"ensure-npm-auth"," (with ",[750,1652,969],{},"), ",[750,1655,937],{},[750,1657,1658],{},"--budget",").",[759,1661,1663],{"className":761,"code":1662,"language":763,"meta":764,"style":764},"pnpm run preflight\npnpm -C scripts cli preflight --npm       # registry checks and npm auth too\npnpm -C scripts cli preflight --offline   # skip network gates\npnpm -C scripts cli preflight --budget    # also build and check the payload budget\n",[750,1664,1665,1674,1693,1711],{"__ignoreMap":764},[768,1666,1667,1669,1671],{"class":770,"line":353},[768,1668,774],{"class":773},[768,1670,1338],{"class":777},[768,1672,1673],{"class":777}," preflight\n",[768,1675,1676,1678,1680,1682,1684,1687,1690],{"class":770,"line":1297},[768,1677,774],{"class":773},[768,1679,778],{"class":777},[768,1681,781],{"class":777},[768,1683,784],{"class":777},[768,1685,1686],{"class":777}," preflight",[768,1688,1689],{"class":777}," --npm",[768,1691,1692],{"class":1293},"       # registry checks and npm auth too\n",[768,1694,1695,1697,1699,1701,1703,1705,1708],{"class":770,"line":1356},[768,1696,774],{"class":773},[768,1698,778],{"class":777},[768,1700,781],{"class":777},[768,1702,784],{"class":777},[768,1704,1686],{"class":777},[768,1706,1707],{"class":777}," --offline",[768,1709,1710],{"class":1293},"   # skip network gates\n",[768,1712,1714,1716,1718,1720,1722,1724,1727],{"class":770,"line":1713},4,[768,1715,774],{"class":773},[768,1717,778],{"class":777},[768,1719,781],{"class":777},[768,1721,784],{"class":777},[768,1723,1686],{"class":777},[768,1725,1726],{"class":777}," --budget",[768,1728,1729],{"class":1293},"    # also build and check the payload budget\n",[743,1731,1732,1733,846,1736,846,1739,846,1742,846,1745,846,1748,846,1750,1752,1753,1756,1757,1759,1760,1762,1763,846,1765,1767],{},"Before pushing a change set, maintainers run: ",[750,1734,1735],{},"prepack",[750,1737,1738],{},"format",[750,1740,1741],{},"lint",[750,1743,1744],{},"typecheck",[750,1746,1747],{},"check:versions -- --npm",[750,1749,1087],{},[750,1751,1008],{},", plus ",[750,1754,1755],{},"test"," when runtime or routing changed. ",[750,1758,1626],{}," chains most of these. ",[750,1761,1082],{}," is part of ",[750,1764,1626],{},[750,1766,1111],{}," and every release command.",[803,1769,1131],{"id":1770},"publishing",[743,1772,1773],{},"You pick every version level, and you start every publish. No command reads a level from commit messages, and no CI workflow publishes to npm.",[808,1775,1776,1792],{},[811,1777,1778],{},[814,1779,1780,1783,1786,1789],{},[817,1781,1782],{},"What",[817,1784,1785],{},"Patch",[817,1787,1788],{},"Minor",[817,1790,1791],{},"Major",[827,1793,1794,1814],{},[814,1795,1796,1799,1804,1809],{},[832,1797,1798],{},"Root module",[832,1800,1801],{},[750,1802,1803],{},"pnpm run release:patch",[832,1805,1806],{},[750,1807,1808],{},"pnpm run release:minor",[832,1810,1811],{},[750,1812,1813],{},"pnpm run release:major",[814,1815,1816,1819,1824,1829],{},[832,1817,1818],{},"Packages",[832,1820,1821],{},[750,1822,1823],{},"pnpm run bump --level patch --packages \u003Cnames>",[832,1825,1826],{},[750,1827,1828],{},"pnpm run bump --level minor --packages \u003Cnames>",[832,1830,1831],{},[750,1832,1833],{},"pnpm run bump --level major --packages \u003Cnames>",[743,1835,1836,1837,1840,1841,1148],{},"Tests run by default. When CI already passed, add ",[750,1838,1839],{},"--ci-passed"," to any release command: see ",[835,1842,1844],{"href":1843},"#skip-the-local-tests","Skip the local tests",[1846,1847,1798],"h3",{"id":1848},"root-module",[743,1850,1851,846,1854,1042,1857,1163,1860,1863],{},[750,1852,1853],{},"release:patch",[750,1855,1856],{},"release:minor",[750,1858,1859],{},"release:major",[750,1861,1862],{},"pnpm -C scripts cli publish --bump \u003Clevel>",", which does, in order:",[1865,1866,1867,1874,1879,1894,1898,1917],"ol",{},[1868,1869,1870,1873],"li",{},[750,1871,1872],{},"release:auth",": fails when you are not logged in to npm.",[1868,1875,1876,1878],{},[750,1877,1735],{},": builds the packages, the module and the client.",[1868,1880,1881,846,1884,846,1886,846,1888,846,1890,846,1892,1148],{},[750,1882,1883],{},"format:check",[750,1885,1741],{},[750,1887,1744],{},[750,1889,1747],{},[750,1891,1087],{},[750,1893,1008],{},[1868,1895,1896,1148],{},[750,1897,1755],{},[1868,1899,1900,1903,1904,1042,1906,1908,1909,1912,1913,1916],{},[750,1901,1902],{},"pnpm -C scripts cli release --bump \u003Clevel>",": changelogen writes the root ",[750,1905,1093],{},[750,1907,1097],{},", commits ",[750,1910,1911],{},"chore(release): vX.Y.Z"," and tags it. ",[750,1914,1915],{},"--bump"," is required.",[1868,1918,1919,1379,1922,1148],{},[750,1920,1921],{},"pnpm publish -r",[750,1923,1924],{},"git push --follow-tags",[743,1926,1927,1929],{},[750,1928,1921],{}," also ships every package whose version is not on npm yet, so bump and commit the packages first.",[1846,1931,1818],{"id":1932},"packages",[743,1934,1935,1937,1938,1940,1941,1944,1945,1948,1949,1148],{},[750,1936,1126],{}," edits only ",[750,1939,1093],{}," in the named ",[750,1942,1943],{},"packages\u002F*\u002Fpackage.json",". It does not commit, tag or publish. ",[750,1946,1947],{},"--packages"," takes short or scoped names separated by commas, or ",[750,1950,1951],{},"all",[759,1953,1955],{"className":761,"code":1954,"language":763,"meta":764,"style":764},"pnpm run bump --level minor --packages core,vue\npnpm run check:versions                          # names the dependents that still need a bump\npnpm run bump --level patch --packages runtime,react\ngit commit -am \"chore(packages): bump versions\"\npnpm run release:packages                        # the steps above, without the root bump\n",[750,1956,1957,1978,1990,2008,2028],{"__ignoreMap":764},[768,1958,1959,1961,1963,1966,1969,1972,1975],{"class":770,"line":353},[768,1960,774],{"class":773},[768,1962,1338],{"class":777},[768,1964,1965],{"class":777}," bump",[768,1967,1968],{"class":777}," --level",[768,1970,1971],{"class":777}," minor",[768,1973,1974],{"class":777}," --packages",[768,1976,1977],{"class":777}," core,vue\n",[768,1979,1980,1982,1984,1987],{"class":770,"line":1297},[768,1981,774],{"class":773},[768,1983,1338],{"class":777},[768,1985,1986],{"class":777}," check:versions",[768,1988,1989],{"class":1293},"                          # names the dependents that still need a bump\n",[768,1991,1992,1994,1996,1998,2000,2003,2005],{"class":770,"line":1356},[768,1993,774],{"class":773},[768,1995,1338],{"class":777},[768,1997,1965],{"class":777},[768,1999,1968],{"class":777},[768,2001,2002],{"class":777}," patch",[768,2004,1974],{"class":777},[768,2006,2007],{"class":777}," runtime,react\n",[768,2009,2010,2013,2016,2019,2022,2025],{"class":770,"line":1713},[768,2011,2012],{"class":773},"git",[768,2014,2015],{"class":777}," commit",[768,2017,2018],{"class":777}," -am",[768,2020,2021],{"class":787}," \"",[768,2023,2024],{"class":777},"chore(packages): bump versions",[768,2026,2027],{"class":787},"\"\n",[768,2029,2031,2033,2035,2038],{"class":770,"line":2030},5,[768,2032,774],{"class":773},[768,2034,1338],{"class":777},[768,2036,2037],{"class":777}," release:packages",[768,2039,2040],{"class":1293},"                        # the steps above, without the root bump\n",[743,2042,2043,2046,2047,2049,2050,1148],{},[750,2044,2045],{},"release:packages"," leaves the root alone: its version is already on npm, so ",[750,2048,1921],{}," skips it, and no tag is created. To see what would ship without publishing, run ",[750,2051,2052],{},"pnpm publish -r --dry-run",[743,2054,2055,2057],{},[750,2056,963],{}," fails on a changed package that was not bumped, and on a dependent of a bumped package; it never picks the level.",[1846,2059,1844],{"id":2060},"skip-the-local-tests",[743,2062,2063,2065,2066,2068,2069,2072],{},[750,2064,1839],{}," works on every release command and on ",[750,2067,1626],{},". It skips step 4 and nothing else: the build, ",[750,2070,2071],{},"dist",", version and packaging checks still run.",[759,2074,2076],{"className":761,"code":2075,"language":763,"meta":764,"style":764},"pnpm run release:minor --ci-passed      # root\npnpm run release:packages --ci-passed   # packages only\n",[750,2077,2078,2093],{"__ignoreMap":764},[768,2079,2080,2082,2084,2087,2090],{"class":770,"line":353},[768,2081,774],{"class":773},[768,2083,1338],{"class":777},[768,2085,2086],{"class":777}," release:minor",[768,2088,2089],{"class":777}," --ci-passed",[768,2091,2092],{"class":1293},"      # root\n",[768,2094,2095,2097,2099,2101,2103],{"class":770,"line":1297},[768,2096,774],{"class":773},[768,2098,1338],{"class":777},[768,2100,2037],{"class":777},[768,2102,2089],{"class":777},[768,2104,2105],{"class":1293},"   # packages only\n",[743,2107,2108,2109,2112,2113,2116,2117,2120,2121,2124,2125,2128],{},"The flag asks ",[750,2110,2111],{},"gh run list --commit"," about ",[750,2114,2115],{},"ci.yml"," on ",[750,2118,2119],{},"HEAD"," and prints why it skipped the tests. It refuses when a run failed or is still running, when no run passed, and when the working tree has uncommitted changes. If ",[750,2122,2123],{},"gh"," is missing, not logged in or cannot reach GitHub, it says so and stops; add ",[750,2126,2127],{},"--force"," to confirm by hand that CI passed:",[759,2130,2132],{"className":761,"code":2131,"language":763,"meta":764,"style":764},"pnpm run release:minor --ci-passed --force\n",[750,2133,2134],{"__ignoreMap":764},[768,2135,2136,2138,2140,2142,2144],{"class":770,"line":353},[768,2137,774],{"class":773},[768,2139,1338],{"class":777},[768,2141,2086],{"class":777},[768,2143,2089],{"class":777},[768,2145,2146],{"class":777}," --force\n",[743,2148,2149,2151,2152,2154],{},[750,2150,2127],{}," does not override a failed run. In that case run the release without ",[750,2153,1839],{},", which runs the tests here.",[743,2156,2157,2158,2161,2162,2072],{},"To publish without the tests and without asking CI, for example when the change since the last green run cannot affect them, use ",[750,2159,2160],{},"--skip-tests",". It is your call: nothing checks it. The build, ",[750,2163,2071],{},[759,2165,2167],{"className":761,"code":2166,"language":763,"meta":764,"style":764},"pnpm run release:major --skip-tests\n",[750,2168,2169],{"__ignoreMap":764},[768,2170,2171,2173,2175,2178],{"class":770,"line":353},[768,2172,774],{"class":773},[768,2174,1338],{"class":777},[768,2176,2177],{"class":777}," release:major",[768,2179,2180],{"class":777}," --skip-tests\n",[1846,2182,2184],{"id":2183},"ci","CI",[808,2186,2187,2200],{},[811,2188,2189],{},[814,2190,2191,2194,2197],{},[817,2192,2193],{},"Workflow",[817,2195,2196],{},"Starts on",[817,2198,2199],{},"Publishes",[827,2201,2202,2218,2235,2253,2265],{},[814,2203,2204,2208,2215],{},[832,2205,2206],{},[750,2207,2115],{},[832,2209,2210,2211,2214],{},"Push to ",[750,2212,2213],{},"main",", pull requests",[832,2216,2217],{},"Nothing",[814,2219,2220,2225,2228],{},[832,2221,2222],{},[750,2223,2224],{},"release-smoke.yml",[832,2226,2227],{},"Manual, plus a nightly preset run on the checkout",[832,2229,2230,2231,2234],{},"Nothing to npm. The manual ",[750,2232,2233],{},"deploy"," input deploys the smoke app",[814,2236,2237,2242,2250],{},[832,2238,2239],{},[750,2240,2241],{},"docs.yml",[832,2243,2210,2244,2246,2247,2249],{},[750,2245,2213],{}," that changes ",[750,2248,1393],{},", a published GitHub release, manual",[832,2251,2252],{},"The docs site only",[814,2254,2255,2260,2263],{},[832,2256,2257],{},[750,2258,2259],{},"oldest-versions.yml",[832,2261,2262],{},"Weekly, manual",[832,2264,2217],{},[814,2266,2267,2272,2275],{},[832,2268,2269],{},[750,2270,2271],{},"mutation.yml",[832,2273,2274],{},"Nightly, manual",[832,2276,2277],{},"Nothing. A report to read, not a gate",[803,2279,2281],{"id":2280},"related","Related",[2283,2284,2285,2290,2292],"card-group",{},[2286,2287],"card",{"icon":2288,"title":320,"to":2289},"i-lucide-git-pull-request","\u002Fcontributing\u002F",[2286,2291],{"icon":2288,"title":339,"to":340},[2286,2293],{"icon":2294,"title":205,"to":206},"i-lucide-braces",[2296,2297,2298],"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 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 .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 .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":764,"searchDepth":1297,"depth":1297,"links":2300},[2301,2302,2303,2304,2305,2306,2307,2308,2309,2315],{"id":805,"depth":1297,"text":806},{"id":840,"depth":1297,"text":840},{"id":862,"depth":1297,"text":862},{"id":883,"depth":1297,"text":883},{"id":901,"depth":1297,"text":901},{"id":919,"depth":1297,"text":919},{"id":937,"depth":1297,"text":937},{"id":1111,"depth":1297,"text":1111},{"id":1770,"depth":1297,"text":1131,"children":2310},[2311,2312,2313,2314],{"id":1848,"depth":1356,"text":1798},{"id":1932,"depth":1356,"text":1818},{"id":2060,"depth":1356,"text":1844},{"id":2183,"depth":1356,"text":2184},{"id":2280,"depth":1297,"text":2281},"Repository checks of the scripts CLI: generated docs, API surface, payload budget, dependency and fixture audits, versions and the release preflight.","2026-11-04T02:09:34+05:00",null,{"outline":2320},[1297,1356],{"order":28},{"title":335,"description":2316},"cXbst8YgpStfH--fhJb1m165Res2o50c5hnrgdX-Mqw",[2325,2327],{"title":331,"path":332,"description":2326},"How the nuxt-i18n-micro repo is tested: unit, integration and e2e projects, shared fixtures, recipes, isolated builds and mutation testing.",{"title":339,"path":340,"description":2328},"Build a real Nuxt app against the packed or published module, run it locally or on serverless presets, and verify SSR, payloads and SEO.",1793790718238]