[{"data":1,"prerenderedAt":1221},["ShallowReactive",2],{"navigation_docs":3,"-testing-bridge-mode":137,"-testing-bridge-mode-surround":1216},[4,27,57,79,97,115],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Mini Apps","i-lucide-smartphone","\u002Fmini-apps","2.mini-apps",[33,37,41,45,49,53],{"title":34,"path":35,"stem":36},"Provider runtime","\u002Fmini-apps\u002Fprovider-runtime","2.mini-apps\u002F1.provider-runtime",{"title":38,"path":39,"stem":40},"Ethereum provider","\u002Fmini-apps\u002Fethereum-provider","2.mini-apps\u002F2.ethereum-provider",{"title":42,"path":43,"stem":44},"Language and i18n","\u002Fmini-apps\u002Flanguage-i18n","2.mini-apps\u002F3.language-i18n",{"title":46,"path":47,"stem":48},"Local simulator","\u002Fmini-apps\u002Flocal-simulator","2.mini-apps\u002F4.local-simulator",{"title":50,"path":51,"stem":52},"Nuxt module","\u002Fmini-apps\u002Fnuxt-module","2.mini-apps\u002F5.nuxt-module",{"title":54,"path":55,"stem":56},"Host runtime","\u002Fmini-apps\u002Fhost-runtime","2.mini-apps\u002F6.host-runtime",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":26},"Auth","i-lucide-key-round","\u002Fauth","3.auth",[63,67,71,75],{"title":64,"path":65,"stem":66},"Nimiq Better Auth","\u002Fauth\u002Fnimiq-better-auth","3.auth\u002F1.nimiq-better-auth",{"title":68,"path":69,"stem":70},"Cross-device approval","\u002Fauth\u002Fcross-device","3.auth\u002F2.cross-device",{"title":72,"path":73,"stem":74},"Nimiq cross-device adapter","\u002Fauth\u002Fnimiq-adapter","3.auth\u002F3.nimiq-adapter",{"title":76,"path":77,"stem":78},"Security model","\u002Fauth\u002Fsecurity-model","3.auth\u002F4.security-model",{"title":80,"icon":81,"path":82,"stem":83,"children":84,"page":26},"Utilities","i-lucide-wrench","\u002Futilities","4.utilities",[85,89,93],{"title":86,"path":87,"stem":88},"Universal Nimiq facade","\u002Futilities\u002Funimiq","4.utilities\u002F1.unimiq",{"title":90,"path":91,"stem":92},"ERC-20 helpers","\u002Futilities\u002Funerc20","4.utilities\u002F2.unerc20",{"title":94,"path":95,"stem":96},"Better Auth ledger","\u002Futilities\u002Fledger","4.utilities\u002F3.ledger",{"title":98,"icon":99,"path":100,"stem":101,"children":102,"page":26},"Testing","i-lucide-test-tube-2","\u002Ftesting","5.testing",[103,107,111],{"title":104,"path":105,"stem":106},"Local scenarios","\u002Ftesting\u002Flocal-scenarios","5.testing\u002F1.local-scenarios",{"title":108,"path":109,"stem":110},"Vitest helpers","\u002Ftesting\u002Fvitest-helpers","5.testing\u002F2.vitest-helpers",{"title":112,"path":113,"stem":114},"Bridge mode","\u002Ftesting\u002Fbridge-mode","5.testing\u002F3.bridge-mode",{"title":116,"icon":117,"path":118,"stem":119,"children":120,"page":26},"Reference","i-lucide-book-open","\u002Freference","6.reference",[121,125,129,133],{"title":122,"path":123,"stem":124},"Packages","\u002Freference\u002Fpackages","6.reference\u002F1.packages",{"title":126,"path":127,"stem":128},"Endpoints","\u002Freference\u002Fendpoints","6.reference\u002F2.endpoints",{"title":130,"path":131,"stem":132},"Runtime support","\u002Freference\u002Fruntime-support","6.reference\u002F3.runtime-support",{"title":134,"path":135,"stem":136},"Public API exports","\u002Freference\u002Fpublic-api","6.reference\u002F4.public-api",{"id":138,"title":112,"body":139,"description":1210,"extension":1211,"links":1212,"meta":1213,"navigation":425,"path":113,"seo":1214,"stem":114,"__hash__":1215},"docs\u002F5.testing\u002F3.bridge-mode.md",{"type":140,"value":141,"toc":1202},"minimark",[142,146,149,154,157,180,183,187,190,219,222,247,250,254,257,313,332,336,339,774,776,796,800,803,1128,1133,1137,1140,1180,1183,1198],[143,144,145],"p",{},"Use bridge mode when you need to prove that the app can talk to the real Nimiq Pay mini-app provider surface.",[143,147,148],{},"Do not make bridge mode your only CI signal. Local scenarios catch package and app regressions faster and do not depend on host availability.",[150,151,153],"h2",{"id":152},"choose-bridge-for-provider-integration","Choose bridge for provider integration",[143,155,156],{},"Use bridge mode when one of these changed:",[158,159,160,164,167,174,177],"ul",{},[161,162,163],"li",{},"provider wait behavior",[161,165,166],{},"mini-app host integration",[161,168,169,170],{},"account reads around ",[171,172,173],"code",{},"window.nimiq",[161,175,176],{},"signing calls made through the injected provider",[161,178,179],{},"remote Better Auth endpoint wiring",[143,181,182],{},"Do not use bridge mode for pure nonce, signature, QR-state, or profile parsing tests. Local mode covers those paths deterministically.",[150,184,186],{"id":185},"run-the-package-bridge-script","Run the package bridge script",[143,188,189],{},"Use the package script when testing this workspace.",[191,192,198],"pre",{"className":193,"code":194,"filename":195,"language":196,"meta":197,"style":197},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm --filter @onmax\u002Fbetter-auth-nimiq-pay-e2e test:e2e:bridge\n","terminal","bash","",[171,199,200],{"__ignoreMap":197},[201,202,205,209,213,216],"span",{"class":203,"line":204},"line",1,[201,206,208],{"class":207},"sBMFI","pnpm",[201,210,212],{"class":211},"sfazB"," --filter",[201,214,215],{"class":211}," @onmax\u002Fbetter-auth-nimiq-pay-e2e",[201,217,218],{"class":211}," test:e2e:bridge\n",[143,220,221],{},"Expected behavior:",[191,223,228],{"className":224,"code":225,"filename":226,"language":227,"meta":197,"style":197},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NIMIQ_PAY_E2E_NETWORK=testnet\nNIMIQ_PAY_E2E_MODE=bridge\nNIMIQ_PAY_E2E_PROJECTS=e2e-direct-sign-in\n","output","txt",[171,229,230,235,241],{"__ignoreMap":197},[201,231,232],{"class":203,"line":204},[201,233,234],{},"NIMIQ_PAY_E2E_NETWORK=testnet\n",[201,236,238],{"class":203,"line":237},2,[201,239,240],{},"NIMIQ_PAY_E2E_MODE=bridge\n",[201,242,244],{"class":203,"line":243},3,[201,245,246],{},"NIMIQ_PAY_E2E_PROJECTS=e2e-direct-sign-in\n",[143,248,249],{},"The script builds package dependencies, waits for the injected provider, and runs the direct sign-in project.",[150,251,253],{"id":252},"configure-a-bridge-run-explicitly","Configure a bridge run explicitly",[143,255,256],{},"Use explicit environment variables in CI or one-off debugging so the test profile is visible in logs.",[191,258,260],{"className":193,"code":259,"filename":195,"language":196,"meta":197,"style":197},"NIMIQ_PAY_E2E_NETWORK=testnet \\\nNIMIQ_PAY_E2E_MODE=bridge \\\nNIMIQ_PAY_E2E_PLAYGROUND_URL=http:\u002F\u002F127.0.0.1:3000 \\\nNIMIQ_PAY_E2E_NUXT_AUTH_BASE=http:\u002F\u002F127.0.0.1:3000\u002Fapi\u002Fauth \\\nNIMIQ_PAY_E2E_PROJECTS=e2e-direct-sign-in \\\npnpm --filter @onmax\u002Fbetter-auth-nimiq-pay-e2e test:e2e:bridge\n",[171,261,262,278,283,288,294,300],{"__ignoreMap":197},[201,263,264,268,272,275],{"class":203,"line":204},[201,265,267],{"class":266},"sTEyZ","NIMIQ_PAY_E2E_NETWORK",[201,269,271],{"class":270},"sMK4o","=",[201,273,274],{"class":211},"testnet",[201,276,277],{"class":207}," \\\n",[201,279,280],{"class":203,"line":237},[201,281,282],{"class":266},"NIMIQ_PAY_E2E_MODE=bridge \\\n",[201,284,285],{"class":203,"line":243},[201,286,287],{"class":266},"NIMIQ_PAY_E2E_PLAYGROUND_URL=http:\u002F\u002F127.0.0.1:3000 \\\n",[201,289,291],{"class":203,"line":290},4,[201,292,293],{"class":266},"NIMIQ_PAY_E2E_NUXT_AUTH_BASE=http:\u002F\u002F127.0.0.1:3000\u002Fapi\u002Fauth \\\n",[201,295,297],{"class":203,"line":296},5,[201,298,299],{"class":266},"NIMIQ_PAY_E2E_PROJECTS=e2e-direct-sign-in \\\n",[201,301,303,306,309,311],{"class":203,"line":302},6,[201,304,305],{"class":266},"pnpm ",[201,307,308],{"class":211},"--filter",[201,310,215],{"class":211},[201,312,218],{"class":211},[143,314,315,316,319,320,323,324,327,328,331],{},"Use ",[171,317,318],{},"NIMIQ_PAY_E2E_ENDPOINT_PREFIX"," when your direct auth endpoints are not under ",[171,321,322],{},"\u002Fnimiq",". Use ",[171,325,326],{},"NIMIQ_PAY_E2E_QR_ENDPOINT_PREFIX"," when QR endpoints are not under ",[171,329,330],{},"\u002Fmobile-qr",".",[150,333,335],{"id":334},"write-a-bridge-focused-test","Write a bridge-focused test",[143,337,338],{},"Use a bridge profile and keep the test narrow. The bridge provider must resolve before the remote fetcher is useful.",[191,340,345],{"className":341,"code":342,"filename":343,"language":344,"meta":197,"style":197},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { describe, expect, it } from 'vitest'\nimport {\n  defineE2EProfile,\n  runSignInScenario,\n} from '@onmax\u002Fbetter-auth-nimiq-pay-e2e'\n\ndescribe('Nimiq Pay bridge auth', () => {\n  it('signs in through the injected provider', async () => {\n    const profile = defineE2EProfile({\n      mode: 'bridge',\n      network: 'testnet',\n    })\n\n    const result = await runSignInScenario({\n      profile,\n      bridgeProviderOptions: {\n        timeoutMs: 10_000,\n        intervalMs: 250,\n      },\n    })\n\n    expect(result.ok, result.error).toBe(true)\n    expect(result.mode).toBe('bridge')\n    expect(result.network).toBe('testnet')\n    expect(result.token).toBeTruthy()\n  })\n})\n","test\u002Fe2e\u002Fbridge-auth.e2e.test.ts","ts",[171,346,347,385,392,400,407,421,427,456,483,503,521,537,546,551,571,579,589,603,616,622,629,634,675,705,735,759,767],{"__ignoreMap":197},[201,348,349,353,356,359,362,365,367,370,373,376,379,382],{"class":203,"line":204},[201,350,352],{"class":351},"s7zQu","import",[201,354,355],{"class":270}," {",[201,357,358],{"class":266}," describe",[201,360,361],{"class":270},",",[201,363,364],{"class":266}," expect",[201,366,361],{"class":270},[201,368,369],{"class":266}," it",[201,371,372],{"class":270}," }",[201,374,375],{"class":351}," from",[201,377,378],{"class":270}," '",[201,380,381],{"class":211},"vitest",[201,383,384],{"class":270},"'\n",[201,386,387,389],{"class":203,"line":237},[201,388,352],{"class":351},[201,390,391],{"class":270}," {\n",[201,393,394,397],{"class":203,"line":243},[201,395,396],{"class":266},"  defineE2EProfile",[201,398,399],{"class":270},",\n",[201,401,402,405],{"class":203,"line":290},[201,403,404],{"class":266},"  runSignInScenario",[201,406,399],{"class":270},[201,408,409,412,414,416,419],{"class":203,"line":296},[201,410,411],{"class":270},"}",[201,413,375],{"class":351},[201,415,378],{"class":270},[201,417,418],{"class":211},"@onmax\u002Fbetter-auth-nimiq-pay-e2e",[201,420,384],{"class":270},[201,422,423],{"class":203,"line":302},[201,424,426],{"emptyLinePlaceholder":425},true,"\n",[201,428,430,434,437,440,443,445,447,450,454],{"class":203,"line":429},7,[201,431,433],{"class":432},"s2Zo4","describe",[201,435,436],{"class":266},"(",[201,438,439],{"class":270},"'",[201,441,442],{"class":211},"Nimiq Pay bridge auth",[201,444,439],{"class":270},[201,446,361],{"class":270},[201,448,449],{"class":270}," ()",[201,451,453],{"class":452},"spNyl"," =>",[201,455,391],{"class":270},[201,457,459,462,465,467,470,472,474,477,479,481],{"class":203,"line":458},8,[201,460,461],{"class":432},"  it",[201,463,436],{"class":464},"swJcz",[201,466,439],{"class":270},[201,468,469],{"class":211},"signs in through the injected provider",[201,471,439],{"class":270},[201,473,361],{"class":270},[201,475,476],{"class":452}," async",[201,478,449],{"class":270},[201,480,453],{"class":452},[201,482,391],{"class":270},[201,484,486,489,492,495,498,500],{"class":203,"line":485},9,[201,487,488],{"class":452},"    const",[201,490,491],{"class":266}," profile",[201,493,494],{"class":270}," =",[201,496,497],{"class":432}," defineE2EProfile",[201,499,436],{"class":464},[201,501,502],{"class":270},"{\n",[201,504,506,509,512,514,517,519],{"class":203,"line":505},10,[201,507,508],{"class":464},"      mode",[201,510,511],{"class":270},":",[201,513,378],{"class":270},[201,515,516],{"class":211},"bridge",[201,518,439],{"class":270},[201,520,399],{"class":270},[201,522,524,527,529,531,533,535],{"class":203,"line":523},11,[201,525,526],{"class":464},"      network",[201,528,511],{"class":270},[201,530,378],{"class":270},[201,532,274],{"class":211},[201,534,439],{"class":270},[201,536,399],{"class":270},[201,538,540,543],{"class":203,"line":539},12,[201,541,542],{"class":270},"    }",[201,544,545],{"class":464},")\n",[201,547,549],{"class":203,"line":548},13,[201,550,426],{"emptyLinePlaceholder":425},[201,552,554,556,559,561,564,567,569],{"class":203,"line":553},14,[201,555,488],{"class":452},[201,557,558],{"class":266}," result",[201,560,494],{"class":270},[201,562,563],{"class":351}," await",[201,565,566],{"class":432}," runSignInScenario",[201,568,436],{"class":464},[201,570,502],{"class":270},[201,572,574,577],{"class":203,"line":573},15,[201,575,576],{"class":266},"      profile",[201,578,399],{"class":270},[201,580,582,585,587],{"class":203,"line":581},16,[201,583,584],{"class":464},"      bridgeProviderOptions",[201,586,511],{"class":270},[201,588,391],{"class":270},[201,590,592,595,597,601],{"class":203,"line":591},17,[201,593,594],{"class":464},"        timeoutMs",[201,596,511],{"class":270},[201,598,600],{"class":599},"sbssI"," 10_000",[201,602,399],{"class":270},[201,604,606,609,611,614],{"class":203,"line":605},18,[201,607,608],{"class":464},"        intervalMs",[201,610,511],{"class":270},[201,612,613],{"class":599}," 250",[201,615,399],{"class":270},[201,617,619],{"class":203,"line":618},19,[201,620,621],{"class":270},"      },\n",[201,623,625,627],{"class":203,"line":624},20,[201,626,542],{"class":270},[201,628,545],{"class":464},[201,630,632],{"class":203,"line":631},21,[201,633,426],{"emptyLinePlaceholder":425},[201,635,637,640,642,645,647,650,652,654,656,659,662,664,667,669,673],{"class":203,"line":636},22,[201,638,639],{"class":432},"    expect",[201,641,436],{"class":464},[201,643,644],{"class":266},"result",[201,646,331],{"class":270},[201,648,649],{"class":266},"ok",[201,651,361],{"class":270},[201,653,558],{"class":266},[201,655,331],{"class":270},[201,657,658],{"class":266},"error",[201,660,661],{"class":464},")",[201,663,331],{"class":270},[201,665,666],{"class":432},"toBe",[201,668,436],{"class":464},[201,670,672],{"class":671},"sfNiH","true",[201,674,545],{"class":464},[201,676,678,680,682,684,686,689,691,693,695,697,699,701,703],{"class":203,"line":677},23,[201,679,639],{"class":432},[201,681,436],{"class":464},[201,683,644],{"class":266},[201,685,331],{"class":270},[201,687,688],{"class":266},"mode",[201,690,661],{"class":464},[201,692,331],{"class":270},[201,694,666],{"class":432},[201,696,436],{"class":464},[201,698,439],{"class":270},[201,700,516],{"class":211},[201,702,439],{"class":270},[201,704,545],{"class":464},[201,706,708,710,712,714,716,719,721,723,725,727,729,731,733],{"class":203,"line":707},24,[201,709,639],{"class":432},[201,711,436],{"class":464},[201,713,644],{"class":266},[201,715,331],{"class":270},[201,717,718],{"class":266},"network",[201,720,661],{"class":464},[201,722,331],{"class":270},[201,724,666],{"class":432},[201,726,436],{"class":464},[201,728,439],{"class":270},[201,730,274],{"class":211},[201,732,439],{"class":270},[201,734,545],{"class":464},[201,736,738,740,742,744,746,749,751,753,756],{"class":203,"line":737},25,[201,739,639],{"class":432},[201,741,436],{"class":464},[201,743,644],{"class":266},[201,745,331],{"class":270},[201,747,748],{"class":266},"token",[201,750,661],{"class":464},[201,752,331],{"class":270},[201,754,755],{"class":432},"toBeTruthy",[201,757,758],{"class":464},"()\n",[201,760,762,765],{"class":203,"line":761},26,[201,763,764],{"class":270},"  }",[201,766,545],{"class":464},[201,768,770,772],{"class":203,"line":769},27,[201,771,411],{"class":270},[201,773,545],{"class":266},[143,775,221],{},[191,777,779],{"className":224,"code":778,"filename":226,"language":227,"meta":197,"style":197},"The test waits for window.nimiq.\nThe sign-in flow uses remote auth endpoints.\nThe returned token comes from the app, not the local token generator.\n",[171,780,781,786,791],{"__ignoreMap":197},[201,782,783],{"class":203,"line":204},[201,784,785],{},"The test waits for window.nimiq.\n",[201,787,788],{"class":203,"line":237},[201,789,790],{},"The sign-in flow uses remote auth endpoints.\n",[201,792,793],{"class":203,"line":243},[201,794,795],{},"The returned token comes from the app, not the local token generator.\n",[150,797,799],{"id":798},"diagnose-provider-timeouts","Diagnose provider timeouts",[143,801,802],{},"Bridge mode fails before auth calls when no provider appears.",[191,804,807],{"className":341,"code":805,"filename":806,"language":344,"meta":197,"style":197},"import { expect, it } from 'vitest'\nimport {\n  defineE2EProfile,\n  runSignInScenario,\n} from '@onmax\u002Fbetter-auth-nimiq-pay-e2e'\n\nit('reports missing provider clearly', async () => {\n  const result = await runSignInScenario({\n    profile: defineE2EProfile({ mode: 'bridge', env: {} }),\n    authBaseUrl: 'https:\u002F\u002Fexample.test\u002Fapi\u002Fauth',\n    fetcher: async () => {\n      throw new Error('fetcher should not run before provider resolves')\n    },\n    bridgeProviderOptions: {\n      source: () => null,\n      timeoutMs: 20,\n      intervalMs: 5,\n    },\n  })\n\n  expect(result.ok).toBe(false)\n  expect(result.error).toContain('window.nimiq provider')\n})\n","test\u002Fe2e\u002Fprovider-timeout.e2e.test.ts",[171,808,809,831,837,843,849,861,865,889,906,947,963,978,1000,1005,1014,1028,1040,1052,1056,1062,1066,1092,1122],{"__ignoreMap":197},[201,810,811,813,815,817,819,821,823,825,827,829],{"class":203,"line":204},[201,812,352],{"class":351},[201,814,355],{"class":270},[201,816,364],{"class":266},[201,818,361],{"class":270},[201,820,369],{"class":266},[201,822,372],{"class":270},[201,824,375],{"class":351},[201,826,378],{"class":270},[201,828,381],{"class":211},[201,830,384],{"class":270},[201,832,833,835],{"class":203,"line":237},[201,834,352],{"class":351},[201,836,391],{"class":270},[201,838,839,841],{"class":203,"line":243},[201,840,396],{"class":266},[201,842,399],{"class":270},[201,844,845,847],{"class":203,"line":290},[201,846,404],{"class":266},[201,848,399],{"class":270},[201,850,851,853,855,857,859],{"class":203,"line":296},[201,852,411],{"class":270},[201,854,375],{"class":351},[201,856,378],{"class":270},[201,858,418],{"class":211},[201,860,384],{"class":270},[201,862,863],{"class":203,"line":302},[201,864,426],{"emptyLinePlaceholder":425},[201,866,867,870,872,874,877,879,881,883,885,887],{"class":203,"line":429},[201,868,869],{"class":432},"it",[201,871,436],{"class":266},[201,873,439],{"class":270},[201,875,876],{"class":211},"reports missing provider clearly",[201,878,439],{"class":270},[201,880,361],{"class":270},[201,882,476],{"class":452},[201,884,449],{"class":270},[201,886,453],{"class":452},[201,888,391],{"class":270},[201,890,891,894,896,898,900,902,904],{"class":203,"line":458},[201,892,893],{"class":452},"  const",[201,895,558],{"class":266},[201,897,494],{"class":270},[201,899,563],{"class":351},[201,901,566],{"class":432},[201,903,436],{"class":464},[201,905,502],{"class":270},[201,907,908,911,913,915,917,920,923,925,927,929,931,933,936,938,941,943,945],{"class":203,"line":485},[201,909,910],{"class":464},"    profile",[201,912,511],{"class":270},[201,914,497],{"class":432},[201,916,436],{"class":464},[201,918,919],{"class":270},"{",[201,921,922],{"class":464}," mode",[201,924,511],{"class":270},[201,926,378],{"class":270},[201,928,516],{"class":211},[201,930,439],{"class":270},[201,932,361],{"class":270},[201,934,935],{"class":464}," env",[201,937,511],{"class":270},[201,939,940],{"class":270}," {}",[201,942,372],{"class":270},[201,944,661],{"class":464},[201,946,399],{"class":270},[201,948,949,952,954,956,959,961],{"class":203,"line":505},[201,950,951],{"class":464},"    authBaseUrl",[201,953,511],{"class":270},[201,955,378],{"class":270},[201,957,958],{"class":211},"https:\u002F\u002Fexample.test\u002Fapi\u002Fauth",[201,960,439],{"class":270},[201,962,399],{"class":270},[201,964,965,968,970,972,974,976],{"class":203,"line":523},[201,966,967],{"class":432},"    fetcher",[201,969,511],{"class":270},[201,971,476],{"class":452},[201,973,449],{"class":270},[201,975,453],{"class":452},[201,977,391],{"class":270},[201,979,980,983,986,989,991,993,996,998],{"class":203,"line":539},[201,981,982],{"class":351},"      throw",[201,984,985],{"class":270}," new",[201,987,988],{"class":432}," Error",[201,990,436],{"class":464},[201,992,439],{"class":270},[201,994,995],{"class":211},"fetcher should not run before provider resolves",[201,997,439],{"class":270},[201,999,545],{"class":464},[201,1001,1002],{"class":203,"line":548},[201,1003,1004],{"class":270},"    },\n",[201,1006,1007,1010,1012],{"class":203,"line":553},[201,1008,1009],{"class":464},"    bridgeProviderOptions",[201,1011,511],{"class":270},[201,1013,391],{"class":270},[201,1015,1016,1019,1021,1023,1025],{"class":203,"line":573},[201,1017,1018],{"class":432},"      source",[201,1020,511],{"class":270},[201,1022,449],{"class":270},[201,1024,453],{"class":452},[201,1026,1027],{"class":270}," null,\n",[201,1029,1030,1033,1035,1038],{"class":203,"line":581},[201,1031,1032],{"class":464},"      timeoutMs",[201,1034,511],{"class":270},[201,1036,1037],{"class":599}," 20",[201,1039,399],{"class":270},[201,1041,1042,1045,1047,1050],{"class":203,"line":591},[201,1043,1044],{"class":464},"      intervalMs",[201,1046,511],{"class":270},[201,1048,1049],{"class":599}," 5",[201,1051,399],{"class":270},[201,1053,1054],{"class":203,"line":605},[201,1055,1004],{"class":270},[201,1057,1058,1060],{"class":203,"line":618},[201,1059,764],{"class":270},[201,1061,545],{"class":464},[201,1063,1064],{"class":203,"line":624},[201,1065,426],{"emptyLinePlaceholder":425},[201,1067,1068,1071,1073,1075,1077,1079,1081,1083,1085,1087,1090],{"class":203,"line":631},[201,1069,1070],{"class":432},"  expect",[201,1072,436],{"class":464},[201,1074,644],{"class":266},[201,1076,331],{"class":270},[201,1078,649],{"class":266},[201,1080,661],{"class":464},[201,1082,331],{"class":270},[201,1084,666],{"class":432},[201,1086,436],{"class":464},[201,1088,1089],{"class":671},"false",[201,1091,545],{"class":464},[201,1093,1094,1096,1098,1100,1102,1104,1106,1108,1111,1113,1115,1118,1120],{"class":203,"line":636},[201,1095,1070],{"class":432},[201,1097,436],{"class":464},[201,1099,644],{"class":266},[201,1101,331],{"class":270},[201,1103,658],{"class":266},[201,1105,661],{"class":464},[201,1107,331],{"class":270},[201,1109,1110],{"class":432},"toContain",[201,1112,436],{"class":464},[201,1114,439],{"class":270},[201,1116,1117],{"class":211},"window.nimiq provider",[201,1119,439],{"class":270},[201,1121,545],{"class":464},[201,1123,1124,1126],{"class":203,"line":677},[201,1125,411],{"class":270},[201,1127,545],{"class":266},[143,1129,1130,1131,331],{},"If this fails in a real browser run, check that the app is loaded inside the Nimiq Pay host or simulator that injects ",[171,1132,173],{},[150,1134,1136],{"id":1135},"treat-mainnet-as-an-explicit-manual-run","Treat mainnet as an explicit manual run",[143,1138,1139],{},"Use mainnet only for manual bridge checks.",[191,1141,1143],{"className":193,"code":1142,"filename":195,"language":196,"meta":197,"style":197},"NIMIQ_PAY_E2E_NETWORK=mainnet \\\nNIMIQ_PAY_E2E_MODE=bridge \\\nNIMIQ_PAY_E2E_ALLOW_MAINNET=true \\\nNIMIQ_PAY_E2E_PROJECTS=e2e-direct-sign-in \\\npnpm --filter @onmax\u002Fbetter-auth-nimiq-pay-e2e test:e2e:mainnet\n",[171,1144,1145,1156,1160,1165,1169],{"__ignoreMap":197},[201,1146,1147,1149,1151,1154],{"class":203,"line":204},[201,1148,267],{"class":266},[201,1150,271],{"class":270},[201,1152,1153],{"class":211},"mainnet",[201,1155,277],{"class":207},[201,1157,1158],{"class":203,"line":237},[201,1159,282],{"class":266},[201,1161,1162],{"class":203,"line":243},[201,1163,1164],{"class":266},"NIMIQ_PAY_E2E_ALLOW_MAINNET=true \\\n",[201,1166,1167],{"class":203,"line":290},[201,1168,299],{"class":266},[201,1170,1171,1173,1175,1177],{"class":203,"line":296},[201,1172,305],{"class":266},[201,1174,308],{"class":211},[201,1176,215],{"class":211},[201,1178,1179],{"class":211}," test:e2e:mainnet\n",[143,1181,1182],{},"Expected guardrails:",[191,1184,1186],{"className":224,"code":1185,"filename":226,"language":227,"meta":197,"style":197},"mainnet without NIMIQ_PAY_E2E_ALLOW_MAINNET=true is blocked\nmainnet in CI is blocked\n",[171,1187,1188,1193],{"__ignoreMap":197},[201,1189,1190],{"class":203,"line":204},[201,1191,1192],{},"mainnet without NIMIQ_PAY_E2E_ALLOW_MAINNET=true is blocked\n",[201,1194,1195],{"class":203,"line":237},[201,1196,1197],{},"mainnet in CI is blocked\n",[1199,1200,1201],"style",{},"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 .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":197,"searchDepth":237,"depth":237,"links":1203},[1204,1205,1206,1207,1208,1209],{"id":152,"depth":237,"text":153},{"id":185,"depth":237,"text":186},{"id":252,"depth":237,"text":253},{"id":334,"depth":237,"text":335},{"id":798,"depth":237,"text":799},{"id":1135,"depth":237,"text":1136},"Test against injected providers when local stubs are not enough.","md",null,{},{"title":112,"description":1210},"SPtIAz6-j8MHNWCZiNVSzkNC8XMy5iZ6ONimzu-xT20",[1217,1219],{"title":108,"path":109,"stem":110,"description":1218,"children":-1},"Reuse E2E Vitest config and provider stubs.",{"title":122,"path":123,"stem":124,"description":1220,"children":-1},"Public package and subpath reference for Onmax Mini Apps SDK.",1778838254917]