[{"data":1,"prerenderedAt":2269},["ShallowReactive",2],{"navigation_docs_en":3,"-en-api-reference-qora-client-config":342,"-en-api-reference-qora-client-config-surround":2264},[4,45,91,137,195,236,257,291,327],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Getting Started","i-lucide-rocket","/en/getting-started","en/01.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"What is Qora?","/en/getting-started/what-is-qora","en/01.getting-started/2.what-is-qora","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/en/getting-started/installation","en/01.getting-started/3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":6},"Quick Start","/en/getting-started/quick-start","en/01.getting-started/4.quick-start",{"title":25,"path":26,"stem":27,"icon":28},"Comparison","/en/getting-started/comparison","en/01.getting-started/5.comparison","i-lucide-scale",{"title":30,"path":31,"stem":32,"icon":33},"Coming from TanStack Query","/en/getting-started/coming-from-tanstack-query","en/01.getting-started/6.coming-from-tanstack-query","i-lucide-arrow-left-right",{"title":35,"path":36,"stem":37,"icon":38},"Migrating from Other Libraries","/en/getting-started/migrating-from-other-libraries","en/01.getting-started/7.migrating-from-other-libraries","i-lucide-arrow-right-left",{"title":40,"path":41,"stem":42,"icon":43},"AI Assistants","/en/getting-started/ai-assistants","en/01.getting-started/8.ai-assistants","i-lucide-sparkles",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"Core Concepts","i-lucide-book-open","/en/core-concepts","en/02.core-concepts",[51,56,61,66,71,76,81,86],{"title":52,"path":53,"stem":54,"icon":55},"Queries","/en/core-concepts/queries","en/02.core-concepts/1.queries","i-lucide-database",{"title":57,"path":58,"stem":59,"icon":60},"Query Keys","/en/core-concepts/query-keys","en/02.core-concepts/2.query-keys","i-lucide-key-round",{"title":62,"path":63,"stem":64,"icon":65},"Query States","/en/core-concepts/query-states","en/02.core-concepts/3.query-states","i-lucide-activity",{"title":67,"path":68,"stem":69,"icon":70},"Caching","/en/core-concepts/caching","en/02.core-concepts/4.caching","i-lucide-layers-3",{"title":72,"path":73,"stem":74,"icon":75},"Stale-While-Revalidate","/en/core-concepts/stale-while-revalidate","en/02.core-concepts/5.stale-while-revalidate","i-lucide-timer-reset",{"title":77,"path":78,"stem":79,"icon":80},"Deduplication","/en/core-concepts/deduplication","en/02.core-concepts/6.deduplication","i-lucide-copy-minus",{"title":82,"path":83,"stem":84,"icon":85},"Mutations & Invalidation","/en/core-concepts/mutations","en/02.core-concepts/7.mutations","i-lucide-pencil-line",{"title":87,"path":88,"stem":89,"icon":90},"Offline & Network","/en/core-concepts/offline","en/02.core-concepts/8.offline","i-lucide-wifi-off",{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":44},"Flutter Integration","i-lucide-smartphone","/en/flutter-integration","en/03.flutter-integration",[97,102,107,112,117,122,127,132],{"title":98,"path":99,"stem":100,"icon":101},"Setup","/en/flutter-integration/setup","en/03.flutter-integration/1.setup","i-lucide-wrench",{"title":103,"path":104,"stem":105,"icon":106},"QoraScope","/en/flutter-integration/qora-scope","en/03.flutter-integration/2.qora-scope","i-lucide-share-2",{"title":108,"path":109,"stem":110,"icon":111},"QoraBuilder","/en/flutter-integration/qora-builder","en/03.flutter-integration/3.qora-builder","i-lucide-blocks",{"title":113,"path":114,"stem":115,"icon":116},"QoraMutationBuilder","/en/flutter-integration/qora-mutation-builder","en/03.flutter-integration/4.qora-mutation-builder","i-lucide-pencil",{"title":118,"path":119,"stem":120,"icon":121},"InfiniteQueryBuilder","/en/flutter-integration/infinite-query-builder","en/03.flutter-integration/5.infinite-query-builder","i-lucide-infinity",{"title":123,"path":124,"stem":125,"icon":126},"Hooks (flutter_hooks)","/en/flutter-integration/hooks","en/03.flutter-integration/6.hooks","i-lucide-anchor",{"title":128,"path":129,"stem":130,"icon":131},"Network Status Widgets","/en/flutter-integration/network-status","en/03.flutter-integration/7.network-status","i-lucide-wifi",{"title":133,"path":134,"stem":135,"icon":136},"Best Practices","/en/flutter-integration/best-practices","en/03.flutter-integration/8.best-practices","i-lucide-badge-check",{"title":138,"icon":139,"path":140,"stem":141,"children":142,"page":44},"Recipes","i-lucide-chef-hat","/en/recipes","en/04.recipes",[143,147,152,157,162,166,171,176,181,186,191],{"title":144,"path":145,"stem":146,"icon":85},"Mutations","/en/recipes/mutations","en/04.recipes/02.mutations",{"title":148,"path":149,"stem":150,"icon":151},"Optimistic Updates","/en/recipes/optimistic-updates","en/04.recipes/03.optimistic-updates","i-lucide-zap",{"title":153,"path":154,"stem":155,"icon":156},"Persistence","/en/recipes/persistence","en/04.recipes/04.persistence","i-lucide-hard-drive",{"title":158,"path":159,"stem":160,"icon":161},"Network Aware","/en/recipes/network-aware","en/04.recipes/05.network-aware","i-lucide-signal",{"title":163,"path":164,"stem":165,"icon":121},"Infinite Queries","/en/recipes/infinite-queries","en/04.recipes/06.infinite-queries",{"title":167,"path":168,"stem":169,"icon":170},"Dependent Queries","/en/recipes/dependent-queries","en/04.recipes/07.dependent-queries","i-lucide-link-2",{"title":172,"path":173,"stem":174,"icon":175},"Cancellation","/en/recipes/cancel-token","en/04.recipes/08.cancel-token","i-lucide-circle-slash",{"title":177,"path":178,"stem":179,"icon":180},"SSR Hydration","/en/recipes/ssr-hydration","en/04.recipes/09.ssr-hydration","i-lucide-server",{"title":182,"path":183,"stem":184,"icon":185},"Error Handling","/en/recipes/error-handling","en/04.recipes/10.error-handling","i-lucide-shield-alert",{"title":187,"path":188,"stem":189,"icon":190},"Testing","/en/recipes/testing","en/04.recipes/11.testing","i-lucide-flask-conical",{"title":192,"path":193,"stem":194},"Route-Level Prefetching","/en/recipes/prefetch","en/04.recipes/12.prefetch",{"title":196,"icon":197,"path":198,"stem":199,"children":200,"page":44},"API Reference","i-lucide-file-code","/en/api-reference","en/05.api-reference",[201,206,210,214,219,224,228,232],{"title":202,"path":203,"stem":204,"icon":205},"QoraClient","/en/api-reference/qora-client","en/05.api-reference/1.qora-client","i-lucide-cpu",{"title":207,"path":208,"stem":209,"icon":60},"QoraKey","/en/api-reference/qora-key","en/05.api-reference/2.qora-key",{"title":211,"path":212,"stem":213,"icon":65},"QoraState","/en/api-reference/qora-state","en/05.api-reference/3.qora-state",{"title":215,"path":216,"stem":217,"icon":218},"QoraOptions","/en/api-reference/qora-options","en/05.api-reference/4.qora-options","i-lucide-sliders-horizontal",{"title":220,"path":221,"stem":222,"icon":223},"QoraClientConfig","/en/api-reference/qora-client-config","en/05.api-reference/5.qora-client-config","i-lucide-settings-2",{"title":225,"path":226,"stem":227,"icon":85},"Mutation API","/en/api-reference/qora-mutation","en/05.api-reference/6.qora-mutation",{"title":229,"path":230,"stem":231,"icon":156},"PersistQoraClient","/en/api-reference/persist-qora-client","en/05.api-reference/7.persist-qora-client",{"title":233,"path":234,"stem":235,"icon":121},"Infinite Query","/en/api-reference/infinite-query","en/05.api-reference/8.infinite-query",{"title":237,"icon":238,"path":239,"stem":240,"children":241,"page":44},"DevTools","i-lucide-bug","/en/devtools","en/06.devtools",[242,247,252],{"title":243,"path":244,"stem":245,"icon":246},"Overview","/en/devtools/overview","en/06.devtools/1.overview","i-lucide-layout-dashboard",{"title":248,"path":249,"stem":250,"icon":251},"In-App Overlay","/en/devtools/overlay","en/06.devtools/2.overlay","i-lucide-layers",{"title":253,"path":254,"stem":255,"icon":256},"Data Serialization","/en/devtools/data-display","en/06.devtools/4.data-display","i-lucide-eye",{"title":258,"icon":259,"path":260,"stem":261,"children":262,"page":44},"Third Party","i-lucide-puzzle","/en/third-party","en/07.third-party",[263,268,272,277,282,286],{"title":264,"path":265,"stem":266,"icon":267},"With Provider","/en/third-party/with-provider","en/07.third-party/1.with-provider","i-lucide-plug",{"title":269,"path":270,"stem":271,"icon":111},"With BLoC","/en/third-party/with-bloc","en/07.third-party/2.with-bloc",{"title":273,"path":274,"stem":275,"icon":276},"With Riverpod","/en/third-party/with-riverpod","en/07.third-party/3.with-riverpod","i-lucide-droplets",{"title":278,"path":279,"stem":280,"icon":281},"With RxDart","/en/third-party/with-rxdart","en/07.third-party/4.with-rxdart","i-lucide-git-branch",{"title":283,"path":284,"stem":285},"With Dio","/en/third-party/with-dio","en/07.third-party/5.with-dio",{"title":287,"path":288,"stem":289,"icon":290},"With GraphQL","/en/third-party/with-graphql","en/07.third-party/6.with-graphql","i-lucide-binary",{"title":292,"icon":190,"path":293,"stem":294,"children":295,"page":44},"Examples","/en/examples","en/08.examples",[296,301,305,310,314,318,322],{"title":297,"path":298,"stem":299,"icon":300},"Case Study: User List & Detail","/en/examples/basic-query","en/08.examples/1.basic-query","i-lucide-play-circle",{"title":302,"path":303,"stem":304,"icon":151},"Case Study: Optimistic Mutations & Rollback","/en/examples/mutations-optimistic","en/08.examples/2.mutations-optimistic",{"title":306,"path":307,"stem":308,"icon":309},"Case Study: Infinite Scroll Feed","/en/examples/infinite-scroll","en/08.examples/3.infinite-scroll","i-lucide-scroll",{"title":311,"path":312,"stem":313,"icon":90},"Case Study: Offline-First Todo App","/en/examples/offline-first","en/08.examples/4.offline-first",{"title":315,"path":316,"stem":317,"icon":161},"Case Study: Network Awareness","/en/examples/network-awareness","en/08.examples/5.network-awareness",{"title":319,"path":320,"stem":321,"icon":126},"Case Study: Hooks Integration","/en/examples/hooks-integration","en/08.examples/6.hooks-integration",{"title":323,"path":324,"stem":325,"icon":326},"Case Study: Complete Todo App","/en/examples/complete-todo-app","en/08.examples/7.complete-todo-app","i-lucide-check-square",{"title":328,"icon":329,"path":330,"stem":331,"children":332,"page":44},"Help","i-lucide-life-buoy","/en/help","en/09.help",[333,338],{"title":334,"path":335,"stem":336,"icon":337},"FAQ","/en/help/faq","en/09.help/1.faq","i-lucide-circle-help",{"title":339,"path":340,"stem":341,"icon":101},"Troubleshooting","/en/help/troubleshooting","en/09.help/2.troubleshooting",{"id":343,"title":220,"body":344,"description":2257,"extension":2258,"links":2259,"meta":2260,"navigation":2261,"path":221,"seo":2262,"stem":222,"__hash__":2263},"docs_en/en/05.api-reference/5.qora-client-config.md",{"type":345,"value":346,"toc":2242},"minimark",[347,351,364,623,626,630,827,829,833,840,854,865,874,966,973,975,981,1013,1021,1032,1169,1179,1181,1187,1202,1209,1216,1248,1269,1271,1277,1294,1301,1312,1331,1343,1345,1351,1380,1386,1397,1467,1469,1475,1517,1523,1536,1546,1593,1595,1601,1615,1622,1628,1640,1646,1696,1698,1704,1718,1726,1736,1796,1799,1858,1924,1933,1935,1939,2223,2232,2238],[348,349,243],"h2",{"id":350},"overview",[352,353,354,357,358,360,361,363],"p",{},[355,356,220],"code",{}," is passed to the ",[355,359,202],{}," constructor and sets defaults for every query in the client's lifetime. Individual queries can override any field via ",[355,362,215],{},".",[365,366,372],"pre",{"className":367,"code":368,"filename":369,"language":370,"meta":371,"style":371},"language-dart shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","final client = QoraClient(\n  config: QoraClientConfig(\n    defaultOptions: QoraOptions(\n      staleTime: Duration(minutes: 5),\n      gcTime: Duration(minutes: 10),\n      retryCount: 3,\n    ),\n    debugMode: kDebugMode,\n    maxCacheSize: 200,\n    refetchOnMount: true,\n    errorMapper: (error, stack) => QoraException(\n      '$error',\n      originalError: error,\n      stackTrace: stack,\n    ),\n  ),\n);\n","lib/core/qora.dart","dart","",[355,373,374,398,412,425,451,472,485,493,506,519,530,555,574,587,600,607,615],{"__ignoreMap":371},[375,376,379,383,387,391,395],"span",{"class":377,"line":378},"line",1,[375,380,382],{"class":381},"spNyl","final",[375,384,386],{"class":385},"sTEyZ"," client ",[375,388,390],{"class":389},"sMK4o","=",[375,392,394],{"class":393},"sBMFI"," QoraClient",[375,396,397],{"class":385},"(\n",[375,399,401,404,407,410],{"class":377,"line":400},2,[375,402,403],{"class":385},"  config",[375,405,406],{"class":389},":",[375,408,409],{"class":393}," QoraClientConfig",[375,411,397],{"class":385},[375,413,415,418,420,423],{"class":377,"line":414},3,[375,416,417],{"class":385},"    defaultOptions",[375,419,406],{"class":389},[375,421,422],{"class":393}," QoraOptions",[375,424,397],{"class":385},[375,426,428,431,433,436,439,441,445,448],{"class":377,"line":427},4,[375,429,430],{"class":385},"      staleTime",[375,432,406],{"class":389},[375,434,435],{"class":393}," Duration",[375,437,438],{"class":385},"(minutes",[375,440,406],{"class":389},[375,442,444],{"class":443},"sbssI"," 5",[375,446,447],{"class":385},")",[375,449,450],{"class":389},",\n",[375,452,454,457,459,461,463,465,468,470],{"class":377,"line":453},5,[375,455,456],{"class":385},"      gcTime",[375,458,406],{"class":389},[375,460,435],{"class":393},[375,462,438],{"class":385},[375,464,406],{"class":389},[375,466,467],{"class":443}," 10",[375,469,447],{"class":385},[375,471,450],{"class":389},[375,473,475,478,480,483],{"class":377,"line":474},6,[375,476,477],{"class":385},"      retryCount",[375,479,406],{"class":389},[375,481,482],{"class":443}," 3",[375,484,450],{"class":389},[375,486,488,491],{"class":377,"line":487},7,[375,489,490],{"class":385},"    )",[375,492,450],{"class":389},[375,494,496,499,501,504],{"class":377,"line":495},8,[375,497,498],{"class":385},"    debugMode",[375,500,406],{"class":389},[375,502,503],{"class":385}," kDebugMode",[375,505,450],{"class":389},[375,507,509,512,514,517],{"class":377,"line":508},9,[375,510,511],{"class":385},"    maxCacheSize",[375,513,406],{"class":389},[375,515,516],{"class":443}," 200",[375,518,450],{"class":389},[375,520,522,525,527],{"class":377,"line":521},10,[375,523,524],{"class":385},"    refetchOnMount",[375,526,406],{"class":389},[375,528,529],{"class":389}," true,\n",[375,531,533,536,538,541,544,547,550,553],{"class":377,"line":532},11,[375,534,535],{"class":385},"    errorMapper",[375,537,406],{"class":389},[375,539,540],{"class":385}," (error",[375,542,543],{"class":389},",",[375,545,546],{"class":385}," stack) ",[375,548,549],{"class":389},"=>",[375,551,552],{"class":393}," QoraException",[375,554,397],{"class":385},[375,556,558,562,565,569,572],{"class":377,"line":557},12,[375,559,561],{"class":560},"sfazB","      '",[375,563,564],{"class":385},"$",[375,566,568],{"class":567},"sHdIc","error",[375,570,571],{"class":560},"'",[375,573,450],{"class":389},[375,575,577,580,582,585],{"class":377,"line":576},13,[375,578,579],{"class":385},"      originalError",[375,581,406],{"class":389},[375,583,584],{"class":385}," error",[375,586,450],{"class":389},[375,588,590,593,595,598],{"class":377,"line":589},14,[375,591,592],{"class":385},"      stackTrace",[375,594,406],{"class":389},[375,596,597],{"class":385}," stack",[375,599,450],{"class":389},[375,601,603,605],{"class":377,"line":602},15,[375,604,490],{"class":385},[375,606,450],{"class":389},[375,608,610,613],{"class":377,"line":609},16,[375,611,612],{"class":385},"  )",[375,614,450],{"class":389},[375,616,618,620],{"class":377,"line":617},17,[375,619,447],{"class":385},[375,621,622],{"class":389},";\n",[624,625],"hr",{},[348,627,629],{"id":628},"constructor","Constructor",[365,631,633],{"className":367,"code":632,"language":370,"meta":371,"style":371},"const QoraClientConfig({\n  QoraOptions defaultOptions = const QoraOptions(),\n  QoraException Function(Object error, StackTrace? stackTrace)? errorMapper,\n  bool debugMode = false,\n  int? maxCacheSize,\n  void Function(List\u003Cdynamic> key)? onCacheEvict,\n  void Function(Object error, StackTrace? stackTrace, List\u003Cdynamic> queryKey)? onBackgroundFetchError,\n  bool refetchOnMount = true,\n  ReconnectStrategy reconnectStrategy = const ReconnectStrategy(),\n})\n",[355,634,635,645,665,699,712,724,752,792,803,822],{"__ignoreMap":371},[375,636,637,640,642],{"class":377,"line":378},[375,638,639],{"class":381},"const",[375,641,409],{"class":393},[375,643,644],{"class":385},"({\n",[375,646,647,650,653,655,658,660,663],{"class":377,"line":400},[375,648,649],{"class":393},"  QoraOptions",[375,651,652],{"class":385}," defaultOptions ",[375,654,390],{"class":389},[375,656,657],{"class":381}," const",[375,659,422],{"class":393},[375,661,662],{"class":385},"()",[375,664,450],{"class":389},[375,666,667,670,673,676,679,681,683,686,689,692,694,697],{"class":377,"line":414},[375,668,669],{"class":393},"  QoraException",[375,671,672],{"class":393}," Function",[375,674,675],{"class":385},"(",[375,677,678],{"class":393},"Object",[375,680,584],{"class":385},[375,682,543],{"class":389},[375,684,685],{"class":393}," StackTrace",[375,687,688],{"class":389},"?",[375,690,691],{"class":385}," stackTrace)",[375,693,688],{"class":389},[375,695,696],{"class":385}," errorMapper",[375,698,450],{"class":389},[375,700,701,704,707,709],{"class":377,"line":427},[375,702,703],{"class":393},"  bool",[375,705,706],{"class":385}," debugMode ",[375,708,390],{"class":389},[375,710,711],{"class":389}," false,\n",[375,713,714,717,719,722],{"class":377,"line":453},[375,715,716],{"class":393},"  int",[375,718,688],{"class":389},[375,720,721],{"class":385}," maxCacheSize",[375,723,450],{"class":389},[375,725,726,729,731,733,736,739,742,745,747,750],{"class":377,"line":474},[375,727,728],{"class":381},"  void",[375,730,672],{"class":393},[375,732,675],{"class":385},[375,734,735],{"class":393},"List",[375,737,738],{"class":385},"\u003C",[375,740,741],{"class":393},"dynamic",[375,743,744],{"class":385},"> key)",[375,746,688],{"class":389},[375,748,749],{"class":385}," onCacheEvict",[375,751,450],{"class":389},[375,753,754,756,758,760,762,764,766,768,770,773,775,778,780,782,785,787,790],{"class":377,"line":487},[375,755,728],{"class":381},[375,757,672],{"class":393},[375,759,675],{"class":385},[375,761,678],{"class":393},[375,763,584],{"class":385},[375,765,543],{"class":389},[375,767,685],{"class":393},[375,769,688],{"class":389},[375,771,772],{"class":385}," stackTrace",[375,774,543],{"class":389},[375,776,777],{"class":393}," List",[375,779,738],{"class":385},[375,781,741],{"class":393},[375,783,784],{"class":385},"> queryKey)",[375,786,688],{"class":389},[375,788,789],{"class":385}," onBackgroundFetchError",[375,791,450],{"class":389},[375,793,794,796,799,801],{"class":377,"line":495},[375,795,703],{"class":393},[375,797,798],{"class":385}," refetchOnMount ",[375,800,390],{"class":389},[375,802,529],{"class":389},[375,804,805,808,811,813,815,818,820],{"class":377,"line":508},[375,806,807],{"class":393},"  ReconnectStrategy",[375,809,810],{"class":385}," reconnectStrategy ",[375,812,390],{"class":389},[375,814,657],{"class":381},[375,816,817],{"class":393}," ReconnectStrategy",[375,819,662],{"class":385},[375,821,450],{"class":389},[375,823,824],{"class":377,"line":521},[375,825,826],{"class":385},"})\n",[624,828],{},[348,830,832],{"id":831},"fields","Fields",[834,835,837],"h3",{"id":836},"defaultoptions",[355,838,839],{},"defaultOptions",[365,841,843],{"className":367,"code":842,"language":370,"meta":371,"style":371},"final QoraOptions defaultOptions\n",[355,844,845],{"__ignoreMap":371},[375,846,847,849,851],{"class":377,"line":378},[375,848,382],{"class":381},[375,850,422],{"class":393},[375,852,853],{"class":385}," defaultOptions\n",[352,855,856,860,861,864],{},[857,858,859],"strong",{},"Default:"," ",[355,862,863],{},"QoraOptions()"," (all defaults)",[352,866,867,868,870,871,363],{},"The baseline ",[355,869,215],{}," applied to every query. Per-query options are merged on top using ",[355,872,873],{},"QoraOptions.merge()",[365,875,878],{"className":367,"code":876,"filename":877,"language":370,"meta":371,"style":371},"defaultOptions: QoraOptions(\n  staleTime: Duration(minutes: 5),\n  gcTime: Duration(minutes: 10),\n  retryCount: 3,\n  retryDelay: Duration(seconds: 1),\n),\n","main.dart",[355,879,880,890,909,928,939,960],{"__ignoreMap":371},[375,881,882,884,886,888],{"class":377,"line":378},[375,883,839],{"class":385},[375,885,406],{"class":389},[375,887,422],{"class":393},[375,889,397],{"class":385},[375,891,892,895,897,899,901,903,905,907],{"class":377,"line":400},[375,893,894],{"class":385},"  staleTime",[375,896,406],{"class":389},[375,898,435],{"class":393},[375,900,438],{"class":385},[375,902,406],{"class":389},[375,904,444],{"class":443},[375,906,447],{"class":385},[375,908,450],{"class":389},[375,910,911,914,916,918,920,922,924,926],{"class":377,"line":414},[375,912,913],{"class":385},"  gcTime",[375,915,406],{"class":389},[375,917,435],{"class":393},[375,919,438],{"class":385},[375,921,406],{"class":389},[375,923,467],{"class":443},[375,925,447],{"class":385},[375,927,450],{"class":389},[375,929,930,933,935,937],{"class":377,"line":427},[375,931,932],{"class":385},"  retryCount",[375,934,406],{"class":389},[375,936,482],{"class":443},[375,938,450],{"class":389},[375,940,941,944,946,948,951,953,956,958],{"class":377,"line":453},[375,942,943],{"class":385},"  retryDelay",[375,945,406],{"class":389},[375,947,435],{"class":393},[375,949,950],{"class":385},"(seconds",[375,952,406],{"class":389},[375,954,955],{"class":443}," 1",[375,957,447],{"class":385},[375,959,450],{"class":389},[375,961,962,964],{"class":377,"line":474},[375,963,447],{"class":385},[375,965,450],{"class":389},[352,967,968,969,972],{},"→ See ",[970,971,215],"a",{"href":216}," for all available fields.",[624,974],{},[834,976,978],{"id":977},"errormapper",[355,979,980],{},"errorMapper",[365,982,984],{"className":367,"code":983,"language":370,"meta":371,"style":371},"final QoraException Function(Object error, StackTrace? stackTrace)? errorMapper\n",[355,985,986],{"__ignoreMap":371},[375,987,988,990,992,994,996,998,1000,1002,1004,1006,1008,1010],{"class":377,"line":378},[375,989,382],{"class":381},[375,991,552],{"class":393},[375,993,672],{"class":393},[375,995,675],{"class":385},[375,997,678],{"class":393},[375,999,584],{"class":385},[375,1001,543],{"class":389},[375,1003,685],{"class":393},[375,1005,688],{"class":389},[375,1007,691],{"class":385},[375,1009,688],{"class":389},[375,1011,1012],{"class":385}," errorMapper\n",[352,1014,1015,860,1017,1020],{},[857,1016,859],{},[355,1018,1019],{},"null"," (errors are stored as-is)",[352,1022,1023,1024,1027,1028,1031],{},"Transforms raw errors into ",[355,1025,1026],{},"QoraException"," before they are stored in ",[355,1029,1030],{},"Failure"," states. Use this to normalise API-specific error types into a consistent shape across your app:",[365,1033,1035],{"className":367,"code":1034,"filename":877,"language":370,"meta":371,"style":371},"errorMapper: (error, stackTrace) {\n  if (error is DioException) {\n    return QoraException(\n      error.message ?? 'Network error',\n      originalError: error,\n      stackTrace: stackTrace,\n    );\n  }\n  return QoraException('$error', originalError: error, stackTrace: stackTrace);\n},\n",[355,1036,1037,1050,1068,1077,1095,1105,1115,1121,1126,1162],{"__ignoreMap":371},[375,1038,1039,1041,1043,1045,1047],{"class":377,"line":378},[375,1040,980],{"class":385},[375,1042,406],{"class":389},[375,1044,540],{"class":385},[375,1046,543],{"class":389},[375,1048,1049],{"class":385}," stackTrace) {\n",[375,1051,1052,1056,1059,1062,1065],{"class":377,"line":400},[375,1053,1055],{"class":1054},"s7zQu","  if",[375,1057,1058],{"class":385}," (error ",[375,1060,1061],{"class":389},"is",[375,1063,1064],{"class":393}," DioException",[375,1066,1067],{"class":385},") {\n",[375,1069,1070,1073,1075],{"class":377,"line":414},[375,1071,1072],{"class":1054},"    return",[375,1074,552],{"class":393},[375,1076,397],{"class":385},[375,1078,1079,1082,1084,1087,1090,1093],{"class":377,"line":427},[375,1080,1081],{"class":385},"      error",[375,1083,363],{"class":389},[375,1085,1086],{"class":385},"message ",[375,1088,1089],{"class":389},"??",[375,1091,1092],{"class":560}," 'Network error'",[375,1094,450],{"class":389},[375,1096,1097,1099,1101,1103],{"class":377,"line":453},[375,1098,579],{"class":385},[375,1100,406],{"class":389},[375,1102,584],{"class":385},[375,1104,450],{"class":389},[375,1106,1107,1109,1111,1113],{"class":377,"line":474},[375,1108,592],{"class":385},[375,1110,406],{"class":389},[375,1112,772],{"class":385},[375,1114,450],{"class":389},[375,1116,1117,1119],{"class":377,"line":487},[375,1118,490],{"class":385},[375,1120,622],{"class":389},[375,1122,1123],{"class":377,"line":495},[375,1124,1125],{"class":385},"  }\n",[375,1127,1128,1131,1133,1135,1137,1139,1141,1143,1145,1148,1150,1152,1154,1156,1158,1160],{"class":377,"line":508},[375,1129,1130],{"class":1054},"  return",[375,1132,552],{"class":393},[375,1134,675],{"class":385},[375,1136,571],{"class":560},[375,1138,564],{"class":385},[375,1140,568],{"class":567},[375,1142,571],{"class":560},[375,1144,543],{"class":389},[375,1146,1147],{"class":385}," originalError",[375,1149,406],{"class":389},[375,1151,584],{"class":385},[375,1153,543],{"class":389},[375,1155,772],{"class":385},[375,1157,406],{"class":389},[375,1159,691],{"class":385},[375,1161,622],{"class":389},[375,1163,1164,1167],{"class":377,"line":521},[375,1165,1166],{"class":385},"}",[375,1168,450],{"class":389},[352,1170,1171,1172,1175,1176,1178],{},"When set, all ",[355,1173,1174],{},"Failure.error"," values will be ",[355,1177,1026],{}," instances, giving you a single type to check in your error handlers.",[624,1180],{},[834,1182,1184],{"id":1183},"debugmode",[355,1185,1186],{},"debugMode",[365,1188,1190],{"className":367,"code":1189,"language":370,"meta":371,"style":371},"final bool debugMode\n",[355,1191,1192],{"__ignoreMap":371},[375,1193,1194,1196,1199],{"class":377,"line":378},[375,1195,382],{"class":381},[375,1197,1198],{"class":393}," bool",[375,1200,1201],{"class":385}," debugMode\n",[352,1203,1204,860,1206],{},[857,1205,859],{},[355,1207,1208],{},"false",[352,1210,1211,1212,1215],{},"Enables verbose ",[355,1213,1214],{},"print"," logging to the console. Logs:",[1217,1218,1219,1223,1226,1229,1232,1235,1245],"ul",{},[1220,1221,1222],"li",{},"Cache hits (fresh and stale)",[1220,1224,1225],{},"Cache misses",[1220,1227,1228],{},"Fetch attempts and retry delays",[1220,1230,1231],{},"Deduplication events",[1220,1233,1234],{},"Lazy eviction and GC removals",[1220,1236,1237,1240,1241,1244],{},[355,1238,1239],{},"setQueryData"," and ",[355,1242,1243],{},"invalidate"," calls",[1220,1246,1247],{},"Client disposal",[365,1249,1251],{"className":367,"code":1250,"filename":877,"language":370,"meta":371,"style":371},"// Enable only in debug builds\ndebugMode: kDebugMode,\n",[355,1252,1253,1259],{"__ignoreMap":371},[375,1254,1255],{"class":377,"line":378},[375,1256,1258],{"class":1257},"sHwdD","// Enable only in debug builds\n",[375,1260,1261,1263,1265,1267],{"class":377,"line":400},[375,1262,1186],{"class":385},[375,1264,406],{"class":389},[375,1266,503],{"class":385},[375,1268,450],{"class":389},[624,1270],{},[834,1272,1274],{"id":1273},"maxcachesize",[355,1275,1276],{},"maxCacheSize",[365,1278,1280],{"className":367,"code":1279,"language":370,"meta":371,"style":371},"final int? maxCacheSize\n",[355,1281,1282],{"__ignoreMap":371},[375,1283,1284,1286,1289,1291],{"class":377,"line":378},[375,1285,382],{"class":381},[375,1287,1288],{"class":393}," int",[375,1290,688],{"class":389},[375,1292,1293],{"class":385}," maxCacheSize\n",[352,1295,1296,860,1298,1300],{},[857,1297,859],{},[355,1299,1019],{}," (unbounded)",[352,1302,1303,1304,1307,1308,1311],{},"Maximum number of query entries in the cache. When the limit is reached, the ",[857,1305,1306],{},"least-recently-used inactive"," entry is evicted to make room. Active entries (those with ",[355,1309,1310],{},"watchQuery"," subscribers) are never forcibly evicted.",[365,1313,1315],{"className":367,"code":1314,"filename":877,"language":370,"meta":371,"style":371},"maxCacheSize: 100,  // cap memory usage in list-heavy apps\n",[355,1316,1317],{"__ignoreMap":371},[375,1318,1319,1321,1323,1326,1328],{"class":377,"line":378},[375,1320,1276],{"class":385},[375,1322,406],{"class":389},[375,1324,1325],{"class":443}," 100",[375,1327,543],{"class":389},[375,1329,1330],{"class":1257},"  // cap memory usage in list-heavy apps\n",[1332,1333,1334,1335,1338,1339,1342],"tip",{},"A good starting value for most apps is ",[355,1336,1337],{},"100–200",". Monitor ",[355,1340,1341],{},"client.debugInfo()['total_queries']"," to tune this for your usage patterns.",[624,1344],{},[834,1346,1348],{"id":1347},"oncacheevict",[355,1349,1350],{},"onCacheEvict",[365,1352,1354],{"className":367,"code":1353,"language":370,"meta":371,"style":371},"final void Function(List\u003Cdynamic> key)? onCacheEvict\n",[355,1355,1356],{"__ignoreMap":371},[375,1357,1358,1360,1363,1365,1367,1369,1371,1373,1375,1377],{"class":377,"line":378},[375,1359,382],{"class":381},[375,1361,1362],{"class":381}," void",[375,1364,672],{"class":393},[375,1366,675],{"class":385},[375,1368,735],{"class":393},[375,1370,738],{"class":385},[375,1372,741],{"class":393},[375,1374,744],{"class":385},[375,1376,688],{"class":389},[375,1378,1379],{"class":385}," onCacheEvict\n",[352,1381,1382,860,1384],{},[857,1383,859],{},[355,1385,1019],{},[352,1387,1388,1389,1392,1393,1396],{},"Callback invoked whenever a cache entry is evicted: via LRU pressure, GC timer, ",[355,1390,1391],{},"removeQuery",", or ",[355,1394,1395],{},"clear",". Receives the normalised key of the evicted entry.",[365,1398,1400],{"className":367,"code":1399,"filename":877,"language":370,"meta":371,"style":371},"onCacheEvict: (key) {\n  // Log or sync with persistent storage\n  print('[Cache] evicted: $key');\n  persistentStore.delete(key.toString());\n},\n",[355,1401,1402,1411,1416,1438,1461],{"__ignoreMap":371},[375,1403,1404,1406,1408],{"class":377,"line":378},[375,1405,1350],{"class":385},[375,1407,406],{"class":389},[375,1409,1410],{"class":385}," (key) {\n",[375,1412,1413],{"class":377,"line":400},[375,1414,1415],{"class":1257},"  // Log or sync with persistent storage\n",[375,1417,1418,1422,1424,1427,1429,1432,1434,1436],{"class":377,"line":414},[375,1419,1421],{"class":1420},"s2Zo4","  print",[375,1423,675],{"class":385},[375,1425,1426],{"class":560},"'[Cache] evicted: ",[375,1428,564],{"class":385},[375,1430,1431],{"class":567},"key",[375,1433,571],{"class":560},[375,1435,447],{"class":385},[375,1437,622],{"class":389},[375,1439,1440,1443,1445,1448,1451,1453,1456,1459],{"class":377,"line":427},[375,1441,1442],{"class":385},"  persistentStore",[375,1444,363],{"class":389},[375,1446,1447],{"class":1420},"delete",[375,1449,1450],{"class":385},"(key",[375,1452,363],{"class":389},[375,1454,1455],{"class":1420},"toString",[375,1457,1458],{"class":385},"())",[375,1460,622],{"class":389},[375,1462,1463,1465],{"class":377,"line":453},[375,1464,1166],{"class":385},[375,1466,450],{"class":389},[624,1468],{},[834,1470,1472],{"id":1471},"onbackgroundfetcherror",[355,1473,1474],{},"onBackgroundFetchError",[365,1476,1478],{"className":367,"code":1477,"language":370,"meta":371,"style":371},"final void Function(Object error, StackTrace? stackTrace, List\u003Cdynamic> queryKey)? onBackgroundFetchError\n",[355,1479,1480],{"__ignoreMap":371},[375,1481,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514],{"class":377,"line":378},[375,1483,382],{"class":381},[375,1485,1362],{"class":381},[375,1487,672],{"class":393},[375,1489,675],{"class":385},[375,1491,678],{"class":393},[375,1493,584],{"class":385},[375,1495,543],{"class":389},[375,1497,685],{"class":393},[375,1499,688],{"class":389},[375,1501,772],{"class":385},[375,1503,543],{"class":389},[375,1505,777],{"class":393},[375,1507,738],{"class":385},[375,1509,741],{"class":393},[375,1511,784],{"class":385},[375,1513,688],{"class":389},[375,1515,1516],{"class":385}," onBackgroundFetchError\n",[352,1518,1519,860,1521],{},[857,1520,859],{},[355,1522,1019],{},[352,1524,1525,1526,1528,1529,1532,1533,363],{},"Callback invoked when a background fetch triggered by ",[355,1527,1310],{}," fails. Background fetches run inside ",[355,1530,1531],{},"unawaited"," futures and without this callback the re-thrown error would crash the current async ",[355,1534,1535],{},"Zone",[352,1537,1538,1539,1542,1543,1545],{},"The error has ",[857,1540,1541],{},"already been stored"," in the query's ",[355,1544,1030],{}," state by the time this callback fires. Use this callback for logging, telemetry, or crash reporting, not for error recovery.",[365,1547,1549],{"className":367,"code":1548,"filename":369,"language":370,"meta":371,"style":371},"onBackgroundFetchError: (error, stackTrace, key) {\n  crashReporter.record(error, stackTrace);\n},\n",[355,1550,1551,1568,1587],{"__ignoreMap":371},[375,1552,1553,1555,1557,1559,1561,1563,1565],{"class":377,"line":378},[375,1554,1474],{"class":385},[375,1556,406],{"class":389},[375,1558,540],{"class":385},[375,1560,543],{"class":389},[375,1562,772],{"class":385},[375,1564,543],{"class":389},[375,1566,1567],{"class":385}," key) {\n",[375,1569,1570,1573,1575,1578,1581,1583,1585],{"class":377,"line":400},[375,1571,1572],{"class":385},"  crashReporter",[375,1574,363],{"class":389},[375,1576,1577],{"class":1420},"record",[375,1579,1580],{"class":385},"(error",[375,1582,543],{"class":389},[375,1584,691],{"class":385},[375,1586,622],{"class":389},[375,1588,1589,1591],{"class":377,"line":414},[375,1590,1166],{"class":385},[375,1592,450],{"class":389},[624,1594],{},[834,1596,1598],{"id":1597},"refetchonmount",[355,1599,1600],{},"refetchOnMount",[365,1602,1604],{"className":367,"code":1603,"language":370,"meta":371,"style":371},"final bool refetchOnMount\n",[355,1605,1606],{"__ignoreMap":371},[375,1607,1608,1610,1612],{"class":377,"line":378},[375,1609,382],{"class":381},[375,1611,1198],{"class":393},[375,1613,1614],{"class":385}," refetchOnMount\n",[352,1616,1617,860,1619],{},[857,1618,859],{},[355,1620,1621],{},"true",[352,1623,1624,1625,1627],{},"Global default for whether ",[355,1626,1310],{}," should trigger a fetch on the first subscription, even when cached data already exists.",[1217,1629,1630,1635],{},[1220,1631,1632,1634],{},[355,1633,1621],{},": always refetch on mount (recommended for most apps)",[1220,1636,1637,1639],{},[355,1638,1208],{},": only fetch if no data exists; skip if any cached state is present",[352,1641,1642,1643,363],{},"Can be overridden per query via ",[355,1644,1645],{},"QoraOptions.refetchOnMount",[365,1647,1649],{"className":367,"code":1648,"filename":877,"language":370,"meta":371,"style":371},"// Global: don't refetch if any data exists\nrefetchOnMount: false,\n\n// Per-query override: always refetch this specific query\noptions: QoraOptions(refetchOnMount: true),\n",[355,1650,1651,1656,1664,1670,1675],{"__ignoreMap":371},[375,1652,1653],{"class":377,"line":378},[375,1654,1655],{"class":1257},"// Global: don't refetch if any data exists\n",[375,1657,1658,1660,1662],{"class":377,"line":400},[375,1659,1600],{"class":385},[375,1661,406],{"class":389},[375,1663,711],{"class":389},[375,1665,1666],{"class":377,"line":414},[375,1667,1669],{"emptyLinePlaceholder":1668},true,"\n",[375,1671,1672],{"class":377,"line":427},[375,1673,1674],{"class":1257},"// Per-query override: always refetch this specific query\n",[375,1676,1677,1680,1682,1684,1687,1689,1692,1694],{"class":377,"line":453},[375,1678,1679],{"class":385},"options",[375,1681,406],{"class":389},[375,1683,422],{"class":393},[375,1685,1686],{"class":385},"(refetchOnMount",[375,1688,406],{"class":389},[375,1690,1691],{"class":389}," true",[375,1693,447],{"class":385},[375,1695,450],{"class":389},[624,1697],{},[834,1699,1701],{"id":1700},"reconnectstrategy",[355,1702,1703],{},"reconnectStrategy",[365,1705,1707],{"className":367,"code":1706,"language":370,"meta":371,"style":371},"final ReconnectStrategy reconnectStrategy\n",[355,1708,1709],{"__ignoreMap":371},[375,1710,1711,1713,1715],{"class":377,"line":378},[375,1712,382],{"class":381},[375,1714,817],{"class":393},[375,1716,1717],{"class":385}," reconnectStrategy\n",[352,1719,1720,860,1722,1725],{},[857,1721,859],{},[355,1723,1724],{},"const ReconnectStrategy()"," (5 concurrent, 100 ms jitter)",[352,1727,1728,1729,1731,1732,1735],{},"Controls how ",[355,1730,202],{}," replays paused queries when connectivity is restored. Without batching, all paused queries would fire simultaneously: the \"thundering herd\" problem. ",[355,1733,1734],{},"ReconnectStrategy"," introduces concurrency limits and random jitter between batches:",[365,1737,1739],{"className":367,"code":1738,"filename":369,"language":370,"meta":371,"style":371},"reconnectStrategy: const ReconnectStrategy(\n  maxConcurrent: 5,                      // Replay 5 queries at a time\n  jitter: Duration(milliseconds: 200),   // Random wait between batches\n),\n",[355,1740,1741,1753,1767,1790],{"__ignoreMap":371},[375,1742,1743,1745,1747,1749,1751],{"class":377,"line":378},[375,1744,1703],{"class":385},[375,1746,406],{"class":389},[375,1748,657],{"class":381},[375,1750,817],{"class":393},[375,1752,397],{"class":385},[375,1754,1755,1758,1760,1762,1764],{"class":377,"line":400},[375,1756,1757],{"class":385},"  maxConcurrent",[375,1759,406],{"class":389},[375,1761,444],{"class":443},[375,1763,543],{"class":389},[375,1765,1766],{"class":1257},"                      // Replay 5 queries at a time\n",[375,1768,1769,1772,1774,1776,1779,1781,1783,1785,1787],{"class":377,"line":414},[375,1770,1771],{"class":385},"  jitter",[375,1773,406],{"class":389},[375,1775,435],{"class":393},[375,1777,1778],{"class":385},"(milliseconds",[375,1780,406],{"class":389},[375,1782,516],{"class":443},[375,1784,447],{"class":385},[375,1786,543],{"class":389},[375,1788,1789],{"class":1257},"   // Random wait between batches\n",[375,1791,1792,1794],{"class":377,"line":427},[375,1793,447],{"class":385},[375,1795,450],{"class":389},[352,1797,1798],{},"Named constructors for common scenarios:",[365,1800,1802],{"className":367,"code":1801,"filename":369,"language":370,"meta":371,"style":371},"// Default: balanced for most apps\nconst ReconnectStrategy()\n\n// All queries replay at once (useful in tests)\nReconnectStrategy.instant()\n\n// Conservative: 2 queries at a time, 500 ms jitter\nReconnectStrategy.conservative()\n",[355,1803,1804,1809,1818,1822,1827,1838,1842,1847],{"__ignoreMap":371},[375,1805,1806],{"class":377,"line":378},[375,1807,1808],{"class":1257},"// Default: balanced for most apps\n",[375,1810,1811,1813,1815],{"class":377,"line":400},[375,1812,639],{"class":381},[375,1814,817],{"class":393},[375,1816,1817],{"class":385},"()\n",[375,1819,1820],{"class":377,"line":414},[375,1821,1669],{"emptyLinePlaceholder":1668},[375,1823,1824],{"class":377,"line":427},[375,1825,1826],{"class":1257},"// All queries replay at once (useful in tests)\n",[375,1828,1829,1831,1833,1836],{"class":377,"line":453},[375,1830,1734],{"class":393},[375,1832,363],{"class":389},[375,1834,1835],{"class":1420},"instant",[375,1837,1817],{"class":385},[375,1839,1840],{"class":377,"line":474},[375,1841,1669],{"emptyLinePlaceholder":1668},[375,1843,1844],{"class":377,"line":487},[375,1845,1846],{"class":1257},"// Conservative: 2 queries at a time, 500 ms jitter\n",[375,1848,1849,1851,1853,1856],{"class":377,"line":495},[375,1850,1734],{"class":393},[375,1852,363],{"class":389},[375,1854,1855],{"class":1420},"conservative",[375,1857,1817],{"class":385},[1859,1860,1861,1881],"table",{},[1862,1863,1864],"thead",{},[1865,1866,1867,1871,1876],"tr",{},[1868,1869,1870],"th",{},"Named constructor",[1868,1872,1873],{},[355,1874,1875],{},"maxConcurrent",[1868,1877,1878],{},[355,1879,1880],{},"jitter",[1882,1883,1884,1898,1911],"tbody",{},[1865,1885,1886,1892,1895],{},[1887,1888,1889],"td",{},[355,1890,1891],{},"ReconnectStrategy()",[1887,1893,1894],{},"5",[1887,1896,1897],{},"100 ms",[1865,1899,1900,1905,1908],{},[1887,1901,1902],{},[355,1903,1904],{},"ReconnectStrategy.instant()",[1887,1906,1907],{},"999",[1887,1909,1910],{},"0 ms",[1865,1912,1913,1918,1921],{},[1887,1914,1915],{},[355,1916,1917],{},"ReconnectStrategy.conservative()",[1887,1919,1920],{},"2",[1887,1922,1923],{},"500 ms",[1332,1925,1926,1927,1929,1930,1932],{},"For apps that have many background queries (dashboards, feeds), use ",[355,1928,1917],{}," or lower ",[355,1931,1875],{}," to avoid spiking your backend after a connectivity gap.",[624,1934],{},[348,1936,1938],{"id":1937},"recommended-setup","Recommended Setup",[365,1940,1942],{"className":367,"code":1941,"filename":369,"language":370,"meta":371,"style":371},"import 'package:flutter/foundation.dart';\nimport 'package:qora/qora.dart';\n\nfinal qoraClient = QoraClient(\n  config: QoraClientConfig(\n    defaultOptions: const QoraOptions(\n      staleTime: Duration(minutes: 5),\n      gcTime: Duration(minutes: 10),\n      retryCount: 3,\n      retryDelay: Duration(seconds: 1),\n      networkMode: NetworkMode.online,\n    ),\n    debugMode: kDebugMode,\n    maxCacheSize: 200,\n    refetchOnMount: true,\n    onBackgroundFetchError: (error, stackTrace, key) =>\n        crashReporter.record(error, stackTrace),\n    reconnectStrategy: const ReconnectStrategy(\n      maxConcurrent: 5,\n      jitter: Duration(milliseconds: 100),\n    ),\n  ),\n);\n",[355,1943,1944,1954,1963,1967,1980,1990,2002,2020,2038,2048,2067,2084,2090,2100,2110,2118,2139,2156,2170,2182,2202,2209,2216],{"__ignoreMap":371},[375,1945,1946,1949,1952],{"class":377,"line":378},[375,1947,1948],{"class":443},"import",[375,1950,1951],{"class":560}," 'package:flutter/foundation.dart'",[375,1953,622],{"class":389},[375,1955,1956,1958,1961],{"class":377,"line":400},[375,1957,1948],{"class":443},[375,1959,1960],{"class":560}," 'package:qora/qora.dart'",[375,1962,622],{"class":389},[375,1964,1965],{"class":377,"line":414},[375,1966,1669],{"emptyLinePlaceholder":1668},[375,1968,1969,1971,1974,1976,1978],{"class":377,"line":427},[375,1970,382],{"class":381},[375,1972,1973],{"class":385}," qoraClient ",[375,1975,390],{"class":389},[375,1977,394],{"class":393},[375,1979,397],{"class":385},[375,1981,1982,1984,1986,1988],{"class":377,"line":453},[375,1983,403],{"class":385},[375,1985,406],{"class":389},[375,1987,409],{"class":393},[375,1989,397],{"class":385},[375,1991,1992,1994,1996,1998,2000],{"class":377,"line":474},[375,1993,417],{"class":385},[375,1995,406],{"class":389},[375,1997,657],{"class":381},[375,1999,422],{"class":393},[375,2001,397],{"class":385},[375,2003,2004,2006,2008,2010,2012,2014,2016,2018],{"class":377,"line":487},[375,2005,430],{"class":385},[375,2007,406],{"class":389},[375,2009,435],{"class":393},[375,2011,438],{"class":385},[375,2013,406],{"class":389},[375,2015,444],{"class":443},[375,2017,447],{"class":385},[375,2019,450],{"class":389},[375,2021,2022,2024,2026,2028,2030,2032,2034,2036],{"class":377,"line":495},[375,2023,456],{"class":385},[375,2025,406],{"class":389},[375,2027,435],{"class":393},[375,2029,438],{"class":385},[375,2031,406],{"class":389},[375,2033,467],{"class":443},[375,2035,447],{"class":385},[375,2037,450],{"class":389},[375,2039,2040,2042,2044,2046],{"class":377,"line":508},[375,2041,477],{"class":385},[375,2043,406],{"class":389},[375,2045,482],{"class":443},[375,2047,450],{"class":389},[375,2049,2050,2053,2055,2057,2059,2061,2063,2065],{"class":377,"line":521},[375,2051,2052],{"class":385},"      retryDelay",[375,2054,406],{"class":389},[375,2056,435],{"class":393},[375,2058,950],{"class":385},[375,2060,406],{"class":389},[375,2062,955],{"class":443},[375,2064,447],{"class":385},[375,2066,450],{"class":389},[375,2068,2069,2072,2074,2077,2079,2082],{"class":377,"line":532},[375,2070,2071],{"class":385},"      networkMode",[375,2073,406],{"class":389},[375,2075,2076],{"class":393}," NetworkMode",[375,2078,363],{"class":389},[375,2080,2081],{"class":385},"online",[375,2083,450],{"class":389},[375,2085,2086,2088],{"class":377,"line":557},[375,2087,490],{"class":385},[375,2089,450],{"class":389},[375,2091,2092,2094,2096,2098],{"class":377,"line":576},[375,2093,498],{"class":385},[375,2095,406],{"class":389},[375,2097,503],{"class":385},[375,2099,450],{"class":389},[375,2101,2102,2104,2106,2108],{"class":377,"line":589},[375,2103,511],{"class":385},[375,2105,406],{"class":389},[375,2107,516],{"class":443},[375,2109,450],{"class":389},[375,2111,2112,2114,2116],{"class":377,"line":602},[375,2113,524],{"class":385},[375,2115,406],{"class":389},[375,2117,529],{"class":389},[375,2119,2120,2123,2125,2127,2129,2131,2133,2136],{"class":377,"line":609},[375,2121,2122],{"class":385},"    onBackgroundFetchError",[375,2124,406],{"class":389},[375,2126,540],{"class":385},[375,2128,543],{"class":389},[375,2130,772],{"class":385},[375,2132,543],{"class":389},[375,2134,2135],{"class":385}," key) ",[375,2137,2138],{"class":389},"=>\n",[375,2140,2141,2144,2146,2148,2150,2152,2154],{"class":377,"line":617},[375,2142,2143],{"class":385},"        crashReporter",[375,2145,363],{"class":389},[375,2147,1577],{"class":1420},[375,2149,1580],{"class":385},[375,2151,543],{"class":389},[375,2153,691],{"class":385},[375,2155,450],{"class":389},[375,2157,2159,2162,2164,2166,2168],{"class":377,"line":2158},18,[375,2160,2161],{"class":385},"    reconnectStrategy",[375,2163,406],{"class":389},[375,2165,657],{"class":381},[375,2167,817],{"class":393},[375,2169,397],{"class":385},[375,2171,2173,2176,2178,2180],{"class":377,"line":2172},19,[375,2174,2175],{"class":385},"      maxConcurrent",[375,2177,406],{"class":389},[375,2179,444],{"class":443},[375,2181,450],{"class":389},[375,2183,2185,2188,2190,2192,2194,2196,2198,2200],{"class":377,"line":2184},20,[375,2186,2187],{"class":385},"      jitter",[375,2189,406],{"class":389},[375,2191,435],{"class":393},[375,2193,1778],{"class":385},[375,2195,406],{"class":389},[375,2197,1325],{"class":443},[375,2199,447],{"class":385},[375,2201,450],{"class":389},[375,2203,2205,2207],{"class":377,"line":2204},21,[375,2206,490],{"class":385},[375,2208,450],{"class":389},[375,2210,2212,2214],{"class":377,"line":2211},22,[375,2213,612],{"class":385},[375,2215,450],{"class":389},[375,2217,2219,2221],{"class":377,"line":2218},23,[375,2220,447],{"class":385},[375,2222,622],{"class":389},[352,2224,2225,2226,2228,2229,363],{},"For Flutter apps, pass this client to ",[355,2227,103],{}," at the root of your widget tree so all widgets can access it via ",[355,2230,2231],{},"context.qora",[352,2233,968,2234,2237],{},[970,2235,2236],{"href":159},"Network Aware Guide"," for the full offline setup walkthrough.",[2239,2240,2241],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":371,"searchDepth":400,"depth":400,"links":2243},[2244,2245,2246,2256],{"id":350,"depth":400,"text":243},{"id":628,"depth":400,"text":629},{"id":831,"depth":400,"text":832,"children":2247},[2248,2249,2250,2251,2252,2253,2254,2255],{"id":836,"depth":414,"text":839},{"id":977,"depth":414,"text":980},{"id":1183,"depth":414,"text":1186},{"id":1273,"depth":414,"text":1276},{"id":1347,"depth":414,"text":1350},{"id":1471,"depth":414,"text":1474},{"id":1597,"depth":414,"text":1600},{"id":1700,"depth":414,"text":1703},{"id":1937,"depth":400,"text":1938},"Global configuration for QoraClient. Applied as the baseline for every query. Per-query QoraOptions are merged on top.","md",null,{},{"icon":223},{"title":220,"description":2257},"itkIehRbBdetk3yfO_x__IEbuBlBPdWtYKp2LVKWbSQ",[2265,2267],{"title":215,"path":216,"stem":217,"description":2266,"icon":218,"children":-1},"Per-query configuration that overrides QoraClientConfig defaults. Pass to fetchQuery or watchQuery to customise caching, retries, staleness, and polling.",{"title":225,"path":226,"stem":227,"description":2268,"icon":85,"children":-1},"Complete API reference for MutationController, MutationState, MutationOptions, MutationUpdate, and mutation observability on QoraClient.",1794040401051]