[{"data":1,"prerenderedAt":829},["ShallowReactive",2],{"doc:en:reference\u002Fconfiguration":3,"doc-nav:en":799},{"id":4,"title":5,"body":6,"description":791,"extension":792,"meta":793,"navigation":543,"order":62,"path":794,"reviewed":543,"seo":795,"stem":796,"__hash__":797,"fallback":798},"docs\u002Fdocs\u002Fen\u002Freference\u002Fconfiguration.md","Configuration",{"type":7,"value":8,"toc":786},"minimark",[9,13,34,39,49,417,433,501,512,596,665,672,676,679,717,721,735,774,782],[10,11,5],"h1",{"id":12},"configuration",[14,15,16,17,21,22,25,26,29,30,33],"p",{},"Every option works in two places: per call, as an argument to ",[18,19,20],"code",{},"matchImage",", or once for the whole run. The global keys are the per-call names with ",[18,23,24],{},"pluginVisualRegression"," in front, so ",[18,27,28],{},"updateImages"," becomes ",[18,31,32],{},"pluginVisualRegressionUpdateImages",".",[35,36,38],"h2",{"id":37},"options","Options",[40,41,42],"ul",{},[43,44,45,46,48],"li",{},"per call, as an argument to ",[18,47,20],{},". The comments carry the defaults:",[50,51,56],"pre",{"className":52,"code":53,"language":54,"meta":55,"style":55},"language-ts shiki shiki-themes github-light-high-contrast github-dark-high-contrast","cy.matchImage({\n  \u002F\u002F screenshot configuration, passed directly to the the Cypress screenshot method: https:\u002F\u002Fdocs.cypress.io\u002Fapi\u002Fcypress-api\u002Fscreenshot-api#Arguments\n  \u002F\u002F default: { }\n  screenshotConfig: {\n    blackout: ['.element-to-be-blackouted'],\n  },\n  \u002F\u002F pixelmatch options, see: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fpixelmatch#pixelmatchimg1-img2-output-width-height-options\n  \u002F\u002F default: { includeAA: true }\n  diffConfig: {\n    threshold: 0.01,\n  },\n  \u002F\u002F whether to create missing baseline images automatically\n  \u002F\u002F default: true\n  createMissingImages: false,\n  \u002F\u002F whether to update images automatically - useful for CI\n  \u002F\u002F - true: overwrite all baseline images without comparing (fastest)\n  \u002F\u002F - 'failures-only': compare first, update baseline only when diff exceeds threshold\n  \u002F\u002F - false: never update baseline images automatically\n  \u002F\u002F default: false\n  updateImages: true,\n  \u002F\u002F directory path in which screenshot images will be stored\n  \u002F\u002F relative path are resolved against project root\n  \u002F\u002F absolute paths (both on unix and windows OS) supported\n  \u002F\u002F path separators will be normalised by the plugin depending on OS, you should always use \u002F as path separator, e.g.: C:\u002Fmy-directory\u002Fnested for windows-like drive notation\n  \u002F\u002F There are one special variable available to be used in the path:\n  \u002F\u002F - {spec_path} - relative path leading from project root to the current spec file directory (e.g. `\u002Fsrc\u002Fcomponents\u002Fmy-tested-component`)\n  \u002F\u002F default: '{spec_path}\u002F__image_snapshots__'\n  imagesPath: 'this-might-be-your-custom\u002Fmaybe-nested-directory',\n  \u002F\u002F maximum threshold above which the test should fail\n  \u002F\u002F default: 0.01\n  maxDiffThreshold: 0.1,\n  \u002F\u002F forces scale factor to be set as value \"1\"\n  \u002F\u002F helps with screenshots being scaled 2x on high-density screens like Mac Retina\n  \u002F\u002F default: true\n  forceDeviceScaleFactor: false,\n  \u002F\u002F title used for naming the image file\n  \u002F\u002F default: Cypress.currentTest.titlePath (your test title)\n  title: `${Cypress.currentTest.titlePath.join(' ')} (${Cypress.browser.displayName})`,\n  \u002F\u002F pass a path to custom image that should be used for comparison\n  \u002F\u002F instead of checking against the image from previous run\n  \u002F\u002F default: undefined\n  matchAgainstPath: '\u002Fpath\u002Fto\u002Freference-image.png',\n});\n","ts","",[18,57,58,73,80,86,92,105,111,117,123,129,142,147,153,159,170,176,182,188,194,200,211,217,223,229,235,241,247,253,264,270,276,287,293,299,304,314,320,326,382,388,394,400,411],{"__ignoreMap":55},[59,60,63,67,70],"span",{"class":61,"line":62},"line",1,[59,64,66],{"class":65},"suds8","cy.",[59,68,20],{"class":69},"sKwhi",[59,71,72],{"class":65},"({\n",[59,74,76],{"class":61,"line":75},2,[59,77,79],{"class":78},"sLBg1","  \u002F\u002F screenshot configuration, passed directly to the the Cypress screenshot method: https:\u002F\u002Fdocs.cypress.io\u002Fapi\u002Fcypress-api\u002Fscreenshot-api#Arguments\n",[59,81,83],{"class":61,"line":82},3,[59,84,85],{"class":78},"  \u002F\u002F default: { }\n",[59,87,89],{"class":61,"line":88},4,[59,90,91],{"class":65},"  screenshotConfig: {\n",[59,93,95,98,102],{"class":61,"line":94},5,[59,96,97],{"class":65},"    blackout: [",[59,99,101],{"class":100},"sT6z2","'.element-to-be-blackouted'",[59,103,104],{"class":65},"],\n",[59,106,108],{"class":61,"line":107},6,[59,109,110],{"class":65},"  },\n",[59,112,114],{"class":61,"line":113},7,[59,115,116],{"class":78},"  \u002F\u002F pixelmatch options, see: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fpixelmatch#pixelmatchimg1-img2-output-width-height-options\n",[59,118,120],{"class":61,"line":119},8,[59,121,122],{"class":78},"  \u002F\u002F default: { includeAA: true }\n",[59,124,126],{"class":61,"line":125},9,[59,127,128],{"class":65},"  diffConfig: {\n",[59,130,132,135,139],{"class":61,"line":131},10,[59,133,134],{"class":65},"    threshold: ",[59,136,138],{"class":137},"s-5SL","0.01",[59,140,141],{"class":65},",\n",[59,143,145],{"class":61,"line":144},11,[59,146,110],{"class":65},[59,148,150],{"class":61,"line":149},12,[59,151,152],{"class":78},"  \u002F\u002F whether to create missing baseline images automatically\n",[59,154,156],{"class":61,"line":155},13,[59,157,158],{"class":78},"  \u002F\u002F default: true\n",[59,160,162,165,168],{"class":61,"line":161},14,[59,163,164],{"class":65},"  createMissingImages: ",[59,166,167],{"class":137},"false",[59,169,141],{"class":65},[59,171,173],{"class":61,"line":172},15,[59,174,175],{"class":78},"  \u002F\u002F whether to update images automatically - useful for CI\n",[59,177,179],{"class":61,"line":178},16,[59,180,181],{"class":78},"  \u002F\u002F - true: overwrite all baseline images without comparing (fastest)\n",[59,183,185],{"class":61,"line":184},17,[59,186,187],{"class":78},"  \u002F\u002F - 'failures-only': compare first, update baseline only when diff exceeds threshold\n",[59,189,191],{"class":61,"line":190},18,[59,192,193],{"class":78},"  \u002F\u002F - false: never update baseline images automatically\n",[59,195,197],{"class":61,"line":196},19,[59,198,199],{"class":78},"  \u002F\u002F default: false\n",[59,201,203,206,209],{"class":61,"line":202},20,[59,204,205],{"class":65},"  updateImages: ",[59,207,208],{"class":137},"true",[59,210,141],{"class":65},[59,212,214],{"class":61,"line":213},21,[59,215,216],{"class":78},"  \u002F\u002F directory path in which screenshot images will be stored\n",[59,218,220],{"class":61,"line":219},22,[59,221,222],{"class":78},"  \u002F\u002F relative path are resolved against project root\n",[59,224,226],{"class":61,"line":225},23,[59,227,228],{"class":78},"  \u002F\u002F absolute paths (both on unix and windows OS) supported\n",[59,230,232],{"class":61,"line":231},24,[59,233,234],{"class":78},"  \u002F\u002F path separators will be normalised by the plugin depending on OS, you should always use \u002F as path separator, e.g.: C:\u002Fmy-directory\u002Fnested for windows-like drive notation\n",[59,236,238],{"class":61,"line":237},25,[59,239,240],{"class":78},"  \u002F\u002F There are one special variable available to be used in the path:\n",[59,242,244],{"class":61,"line":243},26,[59,245,246],{"class":78},"  \u002F\u002F - {spec_path} - relative path leading from project root to the current spec file directory (e.g. `\u002Fsrc\u002Fcomponents\u002Fmy-tested-component`)\n",[59,248,250],{"class":61,"line":249},27,[59,251,252],{"class":78},"  \u002F\u002F default: '{spec_path}\u002F__image_snapshots__'\n",[59,254,256,259,262],{"class":61,"line":255},28,[59,257,258],{"class":65},"  imagesPath: ",[59,260,261],{"class":100},"'this-might-be-your-custom\u002Fmaybe-nested-directory'",[59,263,141],{"class":65},[59,265,267],{"class":61,"line":266},29,[59,268,269],{"class":78},"  \u002F\u002F maximum threshold above which the test should fail\n",[59,271,273],{"class":61,"line":272},30,[59,274,275],{"class":78},"  \u002F\u002F default: 0.01\n",[59,277,279,282,285],{"class":61,"line":278},31,[59,280,281],{"class":65},"  maxDiffThreshold: ",[59,283,284],{"class":137},"0.1",[59,286,141],{"class":65},[59,288,290],{"class":61,"line":289},32,[59,291,292],{"class":78},"  \u002F\u002F forces scale factor to be set as value \"1\"\n",[59,294,296],{"class":61,"line":295},33,[59,297,298],{"class":78},"  \u002F\u002F helps with screenshots being scaled 2x on high-density screens like Mac Retina\n",[59,300,302],{"class":61,"line":301},34,[59,303,158],{"class":78},[59,305,307,310,312],{"class":61,"line":306},35,[59,308,309],{"class":65},"  forceDeviceScaleFactor: ",[59,311,167],{"class":137},[59,313,141],{"class":65},[59,315,317],{"class":61,"line":316},36,[59,318,319],{"class":78},"  \u002F\u002F title used for naming the image file\n",[59,321,323],{"class":61,"line":322},37,[59,324,325],{"class":78},"  \u002F\u002F default: Cypress.currentTest.titlePath (your test title)\n",[59,327,329,332,335,338,340,343,345,348,350,353,356,359,362,365,367,369,372,374,377,380],{"class":61,"line":328},38,[59,330,331],{"class":65},"  title: ",[59,333,334],{"class":100},"`${",[59,336,337],{"class":65},"Cypress",[59,339,33],{"class":100},[59,341,342],{"class":65},"currentTest",[59,344,33],{"class":100},[59,346,347],{"class":65},"titlePath",[59,349,33],{"class":100},[59,351,352],{"class":69},"join",[59,354,355],{"class":100},"(",[59,357,358],{"class":100},"' '",[59,360,361],{"class":100},")",[59,363,364],{"class":100},"} (${",[59,366,337],{"class":65},[59,368,33],{"class":100},[59,370,371],{"class":65},"browser",[59,373,33],{"class":100},[59,375,376],{"class":65},"displayName",[59,378,379],{"class":100},"})`",[59,381,141],{"class":65},[59,383,385],{"class":61,"line":384},39,[59,386,387],{"class":78},"  \u002F\u002F pass a path to custom image that should be used for comparison\n",[59,389,391],{"class":61,"line":390},40,[59,392,393],{"class":78},"  \u002F\u002F instead of checking against the image from previous run\n",[59,395,397],{"class":61,"line":396},41,[59,398,399],{"class":78},"  \u002F\u002F default: undefined\n",[59,401,403,406,409],{"class":61,"line":402},42,[59,404,405],{"class":65},"  matchAgainstPath: ",[59,407,408],{"class":100},"'\u002Fpath\u002Fto\u002Freference-image.png'",[59,410,141],{"class":65},[59,412,414],{"class":61,"line":413},43,[59,415,416],{"class":65},"});\n",[40,418,419],{},[43,420,421,422,429,430,432],{},"for the whole run, through Cypress ",[423,424,428],"a",{"href":425,"rel":426},"https:\u002F\u002Fon.cypress.io\u002Fexpose",[427],"nofollow","expose configuration"," (Cypress 15.10+). Same keys as above, prefixed with ",[18,431,24],{},":",[50,434,438],{"className":435,"code":436,"language":437,"meta":55,"style":55},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","# Cypress 15.10+\nnpx cypress run --expose \"pluginVisualRegressionUpdateImages=true,pluginVisualRegressionDiffConfig={\\\"threshold\\\":0.01}\"\n# Cypress \u003C15.10 (deprecated in 15.10, removed in 16)\nnpx cypress run --env \"pluginVisualRegressionUpdateImages=true,pluginVisualRegressionDiffConfig={\\\"threshold\\\":0.01}\"\n","bash",[18,439,440,445,475,480],{"__ignoreMap":55},[59,441,442],{"class":61,"line":62},[59,443,444],{"class":78},"# Cypress 15.10+\n",[59,446,447,451,454,457,460,463,467,470,472],{"class":61,"line":75},[59,448,450],{"class":449},"soyes","npx",[59,452,453],{"class":100}," cypress",[59,455,456],{"class":100}," run",[59,458,459],{"class":137}," --expose",[59,461,462],{"class":100}," \"pluginVisualRegressionUpdateImages=true,pluginVisualRegressionDiffConfig={",[59,464,466],{"class":465},"sHUrx","\\\"",[59,468,469],{"class":100},"threshold",[59,471,466],{"class":465},[59,473,474],{"class":100},":0.01}\"\n",[59,476,477],{"class":61,"line":82},[59,478,479],{"class":78},"# Cypress \u003C15.10 (deprecated in 15.10, removed in 16)\n",[59,481,482,484,486,488,491,493,495,497,499],{"class":61,"line":88},[59,483,450],{"class":449},[59,485,453],{"class":100},[59,487,456],{"class":100},[59,489,490],{"class":137}," --env",[59,492,462],{"class":100},[59,494,466],{"class":465},[59,496,469],{"class":100},[59,498,466],{"class":465},[59,500,474],{"class":100},[14,502,503,504,507,508,511],{},"Several options go in one flag, comma-separated. Don't repeat ",[18,505,506],{},"--expose"," (or ",[18,509,510],{},"--env","): Cypress keeps only the last one and drops the rest without a word.",[50,513,515],{"className":52,"code":514,"language":54,"meta":55,"style":55},"\u002F\u002F cypress.config.ts (Cypress 15.10+)\nimport { defineConfig } from 'cypress';\n\nexport default defineConfig({\n  expose: {\n    pluginVisualRegressionUpdateImages: true,\n    pluginVisualRegressionDiffConfig: { threshold: 0.01 },\n  },\n});\n",[18,516,517,522,539,545,558,563,572,582,589],{"__ignoreMap":55},[59,518,519],{"class":61,"line":62},[59,520,521],{"class":78},"\u002F\u002F cypress.config.ts (Cypress 15.10+)\n",[59,523,524,527,530,533,536],{"class":61,"line":75},[59,525,526],{"class":465},"import",[59,528,529],{"class":65}," { defineConfig } ",[59,531,532],{"class":465},"from",[59,534,535],{"class":100}," 'cypress'",[59,537,538],{"class":65},";\n",[59,540,541],{"class":61,"line":82},[59,542,544],{"emptyLinePlaceholder":543},true,"\n",[59,546,547,550,553,556],{"class":61,"line":88},[59,548,549],{"class":465},"export",[59,551,552],{"class":465}," default",[59,554,555],{"class":69}," defineConfig",[59,557,72],{"class":449},[59,559,560],{"class":61,"line":94},[59,561,562],{"class":65},"  expose: {\n",[59,564,565,568,570],{"class":61,"line":107},[59,566,567],{"class":65},"    pluginVisualRegressionUpdateImages: ",[59,569,208],{"class":137},[59,571,141],{"class":65},[59,573,574,577,579],{"class":61,"line":113},[59,575,576],{"class":65},"    pluginVisualRegressionDiffConfig: { threshold: ",[59,578,138],{"class":137},[59,580,581],{"class":65}," },\n",[59,583,584,587],{"class":61,"line":119},[59,585,586],{"class":65},"  }",[59,588,141],{"class":449},[59,590,591,594],{"class":61,"line":125},[59,592,593],{"class":449},"})",[59,595,538],{"class":65},[50,597,599],{"className":52,"code":598,"language":54,"meta":55,"style":55},"\u002F\u002F cypress.config.ts (Cypress \u003C15.10, deprecated in newer versions)\nimport { defineConfig } from 'cypress';\n\nexport default defineConfig({\n  env: {\n    pluginVisualRegressionUpdateImages: true,\n    pluginVisualRegressionDiffConfig: { threshold: 0.01 },\n  },\n});\n",[18,600,601,606,618,622,632,637,645,653,659],{"__ignoreMap":55},[59,602,603],{"class":61,"line":62},[59,604,605],{"class":78},"\u002F\u002F cypress.config.ts (Cypress \u003C15.10, deprecated in newer versions)\n",[59,607,608,610,612,614,616],{"class":61,"line":75},[59,609,526],{"class":465},[59,611,529],{"class":65},[59,613,532],{"class":465},[59,615,535],{"class":100},[59,617,538],{"class":65},[59,619,620],{"class":61,"line":82},[59,621,544],{"emptyLinePlaceholder":543},[59,623,624,626,628,630],{"class":61,"line":88},[59,625,549],{"class":465},[59,627,552],{"class":465},[59,629,555],{"class":69},[59,631,72],{"class":449},[59,633,634],{"class":61,"line":94},[59,635,636],{"class":65},"  env: {\n",[59,638,639,641,643],{"class":61,"line":107},[59,640,567],{"class":65},[59,642,208],{"class":137},[59,644,141],{"class":65},[59,646,647,649,651],{"class":61,"line":113},[59,648,576],{"class":65},[59,650,138],{"class":137},[59,652,581],{"class":65},[59,654,655,657],{"class":61,"line":119},[59,656,586],{"class":65},[59,658,141],{"class":449},[59,660,661,663],{"class":61,"line":125},[59,662,593],{"class":449},[59,664,538],{"class":65},[14,666,667,668,33],{},"Cypress documents the other ways to set expose variables ",[423,669,671],{"href":425,"rel":670},[427],"here",[35,673,675],{"id":674},"clean-up-unused-images","Clean up unused images",[14,677,678],{},"Rename or delete a test and its baseline stays behind. Run once with this key and the plugin deletes every one of its images that no test touched during that run. Run the full suite when you do, or the baselines of the specs you skipped go too:",[50,680,682],{"className":435,"code":681,"language":437,"meta":55,"style":55},"# Cypress 15.10+\nnpx cypress run --expose \"pluginVisualRegressionCleanupUnusedImages=true\"\n# Cypress \u003C15.10 (deprecated in 15.10, removed in 16)\nnpx cypress run --env \"pluginVisualRegressionCleanupUnusedImages=true\"\n",[18,683,684,688,701,705],{"__ignoreMap":55},[59,685,686],{"class":61,"line":62},[59,687,444],{"class":78},[59,689,690,692,694,696,698],{"class":61,"line":75},[59,691,450],{"class":449},[59,693,453],{"class":100},[59,695,456],{"class":100},[59,697,459],{"class":137},[59,699,700],{"class":100}," \"pluginVisualRegressionCleanupUnusedImages=true\"\n",[59,702,703],{"class":61,"line":82},[59,704,479],{"class":78},[59,706,707,709,711,713,715],{"class":61,"line":88},[59,708,450],{"class":449},[59,710,453],{"class":100},[59,712,456],{"class":100},[59,714,490],{"class":137},[59,716,700],{"class":100},[35,718,720],{"id":719},"batch-review-mode","Batch review mode",[14,722,723,724,726,727,730,731,734],{},"Normally a snapshot over the threshold throws right there in the test. Batch review mode lets the suite run to the end instead and collects every failing snapshot, then throws once with the total. In headed mode you get a carousel after the run and go through the failures one by one, replacing or skipping each baseline. It's a global option, so it can't be passed to ",[18,725,20],{},". Turn it on with ",[18,728,729],{},"pluginVisualRegressionBatchReviewMode",", and add ",[18,732,733],{},"pluginVisualRegressionBatchReviewModeShowPassingImages"," if you want the passing images in the carousel too:",[50,736,738],{"className":435,"code":737,"language":437,"meta":55,"style":55},"# Cypress 15.10+\nnpx cypress open --expose \"pluginVisualRegressionBatchReviewMode=true\"\n# Cypress \u003C15.10 (deprecated in 15.10, removed in 16)\nnpx cypress open --env \"pluginVisualRegressionBatchReviewMode=true\"\n",[18,739,740,744,758,762],{"__ignoreMap":55},[59,741,742],{"class":61,"line":62},[59,743,444],{"class":78},[59,745,746,748,750,753,755],{"class":61,"line":75},[59,747,450],{"class":449},[59,749,453],{"class":100},[59,751,752],{"class":100}," open",[59,754,459],{"class":137},[59,756,757],{"class":100}," \"pluginVisualRegressionBatchReviewMode=true\"\n",[59,759,760],{"class":61,"line":82},[59,761,479],{"class":78},[59,763,764,766,768,770,772],{"class":61,"line":88},[59,765,450],{"class":449},[59,767,453],{"class":100},[59,769,752],{"class":100},[59,771,490],{"class":137},[59,773,757],{"class":100},[14,775,776,777,781],{},"There's a demo of the review UI in the ",[423,778,780],{"href":779},"\u002Fproducts\u002Fcypress-plugin#batch-review-mode","batch review mode section"," of the Cypress plugin page.",[783,784,785],"style",{},"html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}html pre.shiki code .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}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 .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}",{"title":55,"searchDepth":75,"depth":75,"links":787},[788,789,790],{"id":37,"depth":75,"text":38},{"id":674,"depth":75,"text":675},{"id":719,"depth":75,"text":720},"Every option of the pixsame Cypress plugin, per call or globally, plus batch review mode.","md",{},"\u002Fdocs\u002Fen\u002Freference\u002Fconfiguration",{"title":5,"description":791},"docs\u002Fen\u002Freference\u002Fconfiguration","WCPDbd6-_ewg4azRcXQfsdnZYo2Z46a-73Sr-k5eKog",false,[800,804,808,811,814,817,820,823,826],{"path":801,"title":802,"group":803},"\u002Fdocs\u002Fgetting-started\u002Finstall","Install","getting-started",{"path":805,"title":806,"group":807},"\u002Fdocs\u002Fintegrations\u002Fcypress-plugin","Cypress plugin","integrations",{"path":809,"title":5,"group":810},"\u002Fdocs\u002Freference\u002Fconfiguration","reference",{"path":812,"title":813,"group":803},"\u002Fdocs\u002Fgetting-started\u002Fusage","Usage",{"path":815,"title":816,"group":807},"\u002Fdocs\u002Fintegrations\u002Fgithub-app","GitHub App",{"path":818,"title":819,"group":810},"\u002Fdocs\u002Freference\u002Fmanifest","Manifest schema",{"path":821,"title":822,"group":803},"\u002Fdocs\u002Fgetting-started\u002Fmigrate-from-frsource","Migrate from @frsource",{"path":824,"title":825,"group":807},"\u002Fdocs\u002Fintegrations\u002Fplaywright-reporter","Playwright plugin",{"path":827,"title":828,"group":807},"\u002Fdocs\u002Fintegrations\u002Fvitest","Vitest plugin",1794530807674]