[{"data":1,"prerenderedAt":2273},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-api-reference-qora-client-config":342,"-fr-api-reference-qora-client-config-surround":2268},[4,45,91,137,195,236,257,291,327],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Prise en main","i-lucide-rocket","/fr/getting-started","fr/01.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Qu'est-ce que Qora ?","/fr/getting-started/what-is-qora","fr/01.getting-started/2.what-is-qora","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/fr/getting-started/installation","fr/01.getting-started/3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":6},"Démarrage rapide","/fr/getting-started/quick-start","fr/01.getting-started/4.quick-start",{"title":25,"path":26,"stem":27,"icon":28},"Comparaison","/fr/getting-started/comparison","fr/01.getting-started/5.comparison","i-lucide-scale",{"title":30,"path":31,"stem":32,"icon":33},"Venant de TanStack Query","/fr/getting-started/coming-from-tanstack-query","fr/01.getting-started/6.coming-from-tanstack-query","i-lucide-arrow-left-right",{"title":35,"path":36,"stem":37,"icon":38},"Migrer depuis d'Autres Librairies","/fr/getting-started/migrating-from-other-libraries","fr/01.getting-started/7.migrating-from-other-libraries","i-lucide-arrow-right-left",{"title":40,"path":41,"stem":42,"icon":43},"Assistants IA","/fr/getting-started/ai-assistants","fr/01.getting-started/8.ai-assistants","i-lucide-sparkles",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"Concepts clés","i-lucide-book-open","/fr/core-concepts","fr/02.core-concepts",[51,56,61,66,71,76,81,86],{"title":52,"path":53,"stem":54,"icon":55},"Requêtes","/fr/core-concepts/queries","fr/02.core-concepts/1.queries","i-lucide-database",{"title":57,"path":58,"stem":59,"icon":60},"Clés de requête","/fr/core-concepts/query-keys","fr/02.core-concepts/2.query-keys","i-lucide-key-round",{"title":62,"path":63,"stem":64,"icon":65},"États des requêtes","/fr/core-concepts/query-states","fr/02.core-concepts/3.query-states","i-lucide-activity",{"title":67,"path":68,"stem":69,"icon":70},"Cache","/fr/core-concepts/caching","fr/02.core-concepts/4.caching","i-lucide-layers-3",{"title":72,"path":73,"stem":74,"icon":75},"Stale-While-Revalidate","/fr/core-concepts/stale-while-revalidate","fr/02.core-concepts/5.stale-while-revalidate","i-lucide-timer-reset",{"title":77,"path":78,"stem":79,"icon":80},"Déduplication","/fr/core-concepts/deduplication","fr/02.core-concepts/6.deduplication","i-lucide-copy-minus",{"title":82,"path":83,"stem":84,"icon":85},"Mutations et invalidation","/fr/core-concepts/mutations","fr/02.core-concepts/7.mutations","i-lucide-pencil-line",{"title":87,"path":88,"stem":89,"icon":90},"Hors-ligne et réseau","/fr/core-concepts/offline","fr/02.core-concepts/8.offline","i-lucide-wifi-off",{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":44},"Usage avec Flutter","i-lucide-smartphone","/fr/flutter-integration","fr/03.flutter-integration",[97,102,107,112,117,122,127,132],{"title":98,"path":99,"stem":100,"icon":101},"Configuration","/fr/flutter-integration/setup","fr/03.flutter-integration/1.setup","i-lucide-wrench",{"title":103,"path":104,"stem":105,"icon":106},"QoraScope","/fr/flutter-integration/qora-scope","fr/03.flutter-integration/2.qora-scope","i-lucide-share-2",{"title":108,"path":109,"stem":110,"icon":111},"QoraBuilder","/fr/flutter-integration/qora-builder","fr/03.flutter-integration/3.qora-builder","i-lucide-blocks",{"title":113,"path":114,"stem":115,"icon":116},"QoraMutationBuilder","/fr/flutter-integration/qora-mutation-builder","fr/03.flutter-integration/4.qora-mutation-builder","i-lucide-pencil",{"title":118,"path":119,"stem":120,"icon":121},"InfiniteQueryBuilder","/fr/flutter-integration/infinite-query-builder","fr/03.flutter-integration/5.infinite-query-builder","i-lucide-infinity",{"title":123,"path":124,"stem":125,"icon":126},"Hooks (flutter_hooks)","/fr/flutter-integration/hooks","fr/03.flutter-integration/6.hooks","i-lucide-anchor",{"title":128,"path":129,"stem":130,"icon":131},"Widgets de statut réseau","/fr/flutter-integration/network-status","fr/03.flutter-integration/7.network-status","i-lucide-wifi",{"title":133,"path":134,"stem":135,"icon":136},"Bonnes pratiques","/fr/flutter-integration/best-practices","fr/03.flutter-integration/8.best-practices","i-lucide-badge-check",{"title":138,"icon":139,"path":140,"stem":141,"children":142,"page":44},"Guides Pratiques","i-lucide-chef-hat","/fr/recipes","fr/04.recipes",[143,147,152,157,162,166,171,176,181,186,191],{"title":144,"path":145,"stem":146,"icon":85},"Mutations","/fr/recipes/mutations","fr/04.recipes/02.mutations",{"title":148,"path":149,"stem":150,"icon":151},"Mises à jour optimistes","/fr/recipes/optimistic-updates","fr/04.recipes/03.optimistic-updates","i-lucide-zap",{"title":153,"path":154,"stem":155,"icon":156},"Persistance","/fr/recipes/persistence","fr/04.recipes/04.persistence","i-lucide-hard-drive",{"title":158,"path":159,"stem":160,"icon":161},"Réseau adaptatif","/fr/recipes/network-aware","fr/04.recipes/05.network-aware","i-lucide-signal",{"title":163,"path":164,"stem":165,"icon":121},"Requêtes infinies","/fr/recipes/infinite-queries","fr/04.recipes/06.infinite-queries",{"title":167,"path":168,"stem":169,"icon":170},"Requêtes dépendantes","/fr/recipes/dependent-queries","fr/04.recipes/07.dependent-queries","i-lucide-link-2",{"title":172,"path":173,"stem":174,"icon":175},"Annulation","/fr/recipes/cancel-token","fr/04.recipes/08.cancel-token","i-lucide-circle-slash",{"title":177,"path":178,"stem":179,"icon":180},"Hydratation SSR","/fr/recipes/ssr-hydration","fr/04.recipes/09.ssr-hydration","i-lucide-server",{"title":182,"path":183,"stem":184,"icon":185},"Gestion des erreurs","/fr/recipes/error-handling","fr/04.recipes/10.error-handling","i-lucide-shield-alert",{"title":187,"path":188,"stem":189,"icon":190},"Tests","/fr/recipes/testing","fr/04.recipes/11.testing","i-lucide-flask-conical",{"title":192,"path":193,"stem":194},"Prefetch au Niveau des Routes","/fr/recipes/prefetch","fr/04.recipes/12.prefetch",{"title":196,"icon":197,"path":198,"stem":199,"children":200,"page":44},"Référence de l'API","i-lucide-file-code","/fr/api-reference","fr/05.api-reference",[201,206,210,214,219,224,228,232],{"title":202,"path":203,"stem":204,"icon":205},"QoraClient","/fr/api-reference/qora-client","fr/05.api-reference/1.qora-client","i-lucide-cpu",{"title":207,"path":208,"stem":209,"icon":60},"QoraKey","/fr/api-reference/qora-key","fr/05.api-reference/2.qora-key",{"title":211,"path":212,"stem":213,"icon":65},"QoraState","/fr/api-reference/qora-state","fr/05.api-reference/3.qora-state",{"title":215,"path":216,"stem":217,"icon":218},"QoraOptions","/fr/api-reference/qora-options","fr/05.api-reference/4.qora-options","i-lucide-sliders-horizontal",{"title":220,"path":221,"stem":222,"icon":223},"QoraClientConfig","/fr/api-reference/qora-client-config","fr/05.api-reference/5.qora-client-config","i-lucide-settings-2",{"title":225,"path":226,"stem":227,"icon":85},"API Mutation","/fr/api-reference/qora-mutation","fr/05.api-reference/6.qora-mutation",{"title":229,"path":230,"stem":231,"icon":156},"PersistQoraClient","/fr/api-reference/persist-qora-client","fr/05.api-reference/7.persist-qora-client",{"title":233,"path":234,"stem":235,"icon":121},"Requête infinie","/fr/api-reference/infinite-query","fr/05.api-reference/8.infinite-query",{"title":237,"icon":238,"path":239,"stem":240,"children":241,"page":44},"Outils de debug","i-lucide-bug","/fr/devtools","fr/06.devtools",[242,247,252],{"title":243,"path":244,"stem":245,"icon":246},"Vue d'ensemble","/fr/devtools/overview","fr/06.devtools/1.overview","i-lucide-layout-dashboard",{"title":248,"path":249,"stem":250,"icon":251},"Overlay intégré","/fr/devtools/overlay","fr/06.devtools/2.overlay","i-lucide-layers",{"title":253,"path":254,"stem":255,"icon":256},"Sérialisation des données","/fr/devtools/data-display","fr/06.devtools/4.data-display","i-lucide-eye",{"title":258,"icon":259,"path":260,"stem":261,"children":262,"page":44},"Intégrations tierces","i-lucide-puzzle","/fr/third-party","fr/07.third-party",[263,268,272,277,282,286],{"title":264,"path":265,"stem":266,"icon":267},"Avec Provider","/fr/third-party/with-provider","fr/07.third-party/1.with-provider","i-lucide-plug",{"title":269,"path":270,"stem":271,"icon":111},"Avec BLoC","/fr/third-party/with-bloc","fr/07.third-party/2.with-bloc",{"title":273,"path":274,"stem":275,"icon":276},"Avec Riverpod","/fr/third-party/with-riverpod","fr/07.third-party/3.with-riverpod","i-lucide-droplets",{"title":278,"path":279,"stem":280,"icon":281},"Avec RxDart","/fr/third-party/with-rxdart","fr/07.third-party/4.with-rxdart","i-lucide-git-branch",{"title":283,"path":284,"stem":285},"Avec Dio","/fr/third-party/with-dio","fr/07.third-party/5.with-dio",{"title":287,"path":288,"stem":289,"icon":290},"Avec GraphQL","/fr/third-party/with-graphql","fr/07.third-party/6.with-graphql","i-lucide-binary",{"title":292,"icon":190,"path":293,"stem":294,"children":295,"page":44},"Exemples","/fr/examples","fr/08.examples",[296,301,305,310,314,318,322],{"title":297,"path":298,"stem":299,"icon":300},"Étude de cas : Liste et détail utilisateur","/fr/examples/basic-query","fr/08.examples/1.basic-query","i-lucide-play-circle",{"title":302,"path":303,"stem":304,"icon":151},"Étude de cas : Mutations optimistes et rollback","/fr/examples/mutations-optimistic","fr/08.examples/2.mutations-optimistic",{"title":306,"path":307,"stem":308,"icon":309},"Étude de cas : Feed à défilement infini","/fr/examples/infinite-scroll","fr/08.examples/3.infinite-scroll","i-lucide-scroll",{"title":311,"path":312,"stem":313,"icon":90},"Étude de cas : Application Todo offline-first","/fr/examples/offline-first","fr/08.examples/4.offline-first",{"title":315,"path":316,"stem":317,"icon":161},"Étude de cas : Conscience réseau","/fr/examples/network-awareness","fr/08.examples/5.network-awareness",{"title":319,"path":320,"stem":321,"icon":126},"Étude de cas : Intégration des hooks","/fr/examples/hooks-integration","fr/08.examples/6.hooks-integration",{"title":323,"path":324,"stem":325,"icon":326},"Étude de cas : Application Todo complète","/fr/examples/complete-todo-app","fr/08.examples/7.complete-todo-app","i-lucide-check-square",{"title":328,"icon":329,"path":330,"stem":331,"children":332,"page":44},"Aide","i-lucide-life-buoy","/fr/help","fr/09.help",[333,338],{"title":334,"path":335,"stem":336,"icon":337},"FAQ","/fr/help/faq","fr/09.help/1.faq","i-lucide-circle-help",{"title":339,"path":340,"stem":341,"icon":101},"Dépannage","/fr/help/troubleshooting","fr/09.help/2.troubleshooting",{"id":343,"title":220,"body":344,"description":2261,"extension":2262,"links":2263,"meta":2264,"navigation":2265,"path":221,"seo":2266,"stem":222,"__hash__":2267},"docs_fr/fr/05.api-reference/5.qora-client-config.md",{"type":345,"value":346,"toc":2246},"minimark",[347,351,364,623,626,630,827,829,833,840,854,865,874,966,974,976,982,1014,1022,1033,1170,1180,1182,1188,1203,1210,1217,1249,1270,1272,1278,1295,1302,1313,1332,1344,1346,1352,1381,1387,1398,1468,1470,1476,1518,1524,1538,1548,1595,1597,1603,1617,1624,1630,1642,1648,1698,1700,1706,1720,1728,1738,1798,1801,1860,1926,1935,1937,1941,2225,2234,2242],[348,349,243],"h2",{"id":350},"vue-densemble",[352,353,354,357,358,360,361,363],"p",{},[355,356,220],"code",{}," est passé au constructeur de ",[355,359,202],{}," et définit les défauts pour chaque requête pendant toute la durée de vie du client. Les requêtes individuelles peuvent remplacer n'importe quel champ 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},"constructeur","Constructeur",[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},"champs","Champs",[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",{},"Défaut :"," ",[355,862,863],{},"QoraOptions()"," (tous les défauts)",[352,866,867,868,870,871,363],{},"Le ",[355,869,215],{}," de référence appliqué à chaque requête. Les options par requête sont fusionnées par-dessus via ",[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,973],{},"Voir ",[970,971,215],"a",{"href":972},"./qora-options"," pour tous les champs disponibles.",[624,975],{},[834,977,979],{"id":978},"errormapper",[355,980,981],{},"errorMapper",[365,983,985],{"className":367,"code":984,"language":370,"meta":371,"style":371},"final QoraException Function(Object error, StackTrace? stackTrace)? errorMapper\n",[355,986,987],{"__ignoreMap":371},[375,988,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011],{"class":377,"line":378},[375,990,382],{"class":381},[375,992,552],{"class":393},[375,994,672],{"class":393},[375,996,675],{"class":385},[375,998,678],{"class":393},[375,1000,584],{"class":385},[375,1002,543],{"class":389},[375,1004,685],{"class":393},[375,1006,688],{"class":389},[375,1008,691],{"class":385},[375,1010,688],{"class":389},[375,1012,1013],{"class":385}," errorMapper\n",[352,1015,1016,860,1018,1021],{},[857,1017,859],{},[355,1019,1020],{},"null"," (les erreurs sont stockées telles quelles)",[352,1023,1024,1025,1028,1029,1032],{},"Transforme les erreurs brutes en ",[355,1026,1027],{},"QoraException"," avant qu'elles soient stockées dans les états ",[355,1030,1031],{},"Failure",". Utiliser pour normaliser les types d'erreurs spécifiques à l'API en une forme cohérente dans l'application :",[365,1034,1036],{"className":367,"code":1035,"filename":877,"language":370,"meta":371,"style":371},"errorMapper: (error, stackTrace) {\n  if (error is DioException) {\n    return QoraException(\n      error.message ?? 'Erreur réseau',\n      originalError: error,\n      stackTrace: stackTrace,\n    );\n  }\n  return QoraException('$error', originalError: error, stackTrace: stackTrace);\n},\n",[355,1037,1038,1051,1069,1078,1096,1106,1116,1122,1127,1163],{"__ignoreMap":371},[375,1039,1040,1042,1044,1046,1048],{"class":377,"line":378},[375,1041,981],{"class":385},[375,1043,406],{"class":389},[375,1045,540],{"class":385},[375,1047,543],{"class":389},[375,1049,1050],{"class":385}," stackTrace) {\n",[375,1052,1053,1057,1060,1063,1066],{"class":377,"line":400},[375,1054,1056],{"class":1055},"s7zQu","  if",[375,1058,1059],{"class":385}," (error ",[375,1061,1062],{"class":389},"is",[375,1064,1065],{"class":393}," DioException",[375,1067,1068],{"class":385},") {\n",[375,1070,1071,1074,1076],{"class":377,"line":414},[375,1072,1073],{"class":1055},"    return",[375,1075,552],{"class":393},[375,1077,397],{"class":385},[375,1079,1080,1083,1085,1088,1091,1094],{"class":377,"line":427},[375,1081,1082],{"class":385},"      error",[375,1084,363],{"class":389},[375,1086,1087],{"class":385},"message ",[375,1089,1090],{"class":389},"??",[375,1092,1093],{"class":560}," 'Erreur réseau'",[375,1095,450],{"class":389},[375,1097,1098,1100,1102,1104],{"class":377,"line":453},[375,1099,579],{"class":385},[375,1101,406],{"class":389},[375,1103,584],{"class":385},[375,1105,450],{"class":389},[375,1107,1108,1110,1112,1114],{"class":377,"line":474},[375,1109,592],{"class":385},[375,1111,406],{"class":389},[375,1113,772],{"class":385},[375,1115,450],{"class":389},[375,1117,1118,1120],{"class":377,"line":487},[375,1119,490],{"class":385},[375,1121,622],{"class":389},[375,1123,1124],{"class":377,"line":495},[375,1125,1126],{"class":385},"  }\n",[375,1128,1129,1132,1134,1136,1138,1140,1142,1144,1146,1149,1151,1153,1155,1157,1159,1161],{"class":377,"line":508},[375,1130,1131],{"class":1055},"  return",[375,1133,552],{"class":393},[375,1135,675],{"class":385},[375,1137,571],{"class":560},[375,1139,564],{"class":385},[375,1141,568],{"class":567},[375,1143,571],{"class":560},[375,1145,543],{"class":389},[375,1147,1148],{"class":385}," originalError",[375,1150,406],{"class":389},[375,1152,584],{"class":385},[375,1154,543],{"class":389},[375,1156,772],{"class":385},[375,1158,406],{"class":389},[375,1160,691],{"class":385},[375,1162,622],{"class":389},[375,1164,1165,1168],{"class":377,"line":521},[375,1166,1167],{"class":385},"}",[375,1169,450],{"class":389},[352,1171,1172,1173,1176,1177,1179],{},"Quand défini, toutes les valeurs ",[355,1174,1175],{},"Failure.error"," seront des instances de ",[355,1178,1027],{},", donnant un type unique à vérifier dans les gestionnaires d'erreur.",[624,1181],{},[834,1183,1185],{"id":1184},"debugmode",[355,1186,1187],{},"debugMode",[365,1189,1191],{"className":367,"code":1190,"language":370,"meta":371,"style":371},"final bool debugMode\n",[355,1192,1193],{"__ignoreMap":371},[375,1194,1195,1197,1200],{"class":377,"line":378},[375,1196,382],{"class":381},[375,1198,1199],{"class":393}," bool",[375,1201,1202],{"class":385}," debugMode\n",[352,1204,1205,860,1207],{},[857,1206,859],{},[355,1208,1209],{},"false",[352,1211,1212,1213,1216],{},"Active la journalisation ",[355,1214,1215],{},"print"," verbeuse vers la console. Journalise :",[1218,1219,1220,1224,1227,1230,1233,1236,1246],"ul",{},[1221,1222,1223],"li",{},"Les hits de cache (frais et périmés)",[1221,1225,1226],{},"Les miss de cache",[1221,1228,1229],{},"Les tentatives de fetch et délais de retry",[1221,1231,1232],{},"Les événements de déduplication",[1221,1234,1235],{},"L'éviction paresseuse et les suppressions GC",[1221,1237,1238,1239,1242,1243],{},"Les appels ",[355,1240,1241],{},"setQueryData"," et ",[355,1244,1245],{},"invalidate",[1221,1247,1248],{},"La destruction du client",[365,1250,1252],{"className":367,"code":1251,"filename":877,"language":370,"meta":371,"style":371},"// Activer uniquement en builds debug\ndebugMode: kDebugMode,\n",[355,1253,1254,1260],{"__ignoreMap":371},[375,1255,1256],{"class":377,"line":378},[375,1257,1259],{"class":1258},"sHwdD","// Activer uniquement en builds debug\n",[375,1261,1262,1264,1266,1268],{"class":377,"line":400},[375,1263,1187],{"class":385},[375,1265,406],{"class":389},[375,1267,503],{"class":385},[375,1269,450],{"class":389},[624,1271],{},[834,1273,1275],{"id":1274},"maxcachesize",[355,1276,1277],{},"maxCacheSize",[365,1279,1281],{"className":367,"code":1280,"language":370,"meta":371,"style":371},"final int? maxCacheSize\n",[355,1282,1283],{"__ignoreMap":371},[375,1284,1285,1287,1290,1292],{"class":377,"line":378},[375,1286,382],{"class":381},[375,1288,1289],{"class":393}," int",[375,1291,688],{"class":389},[375,1293,1294],{"class":385}," maxCacheSize\n",[352,1296,1297,860,1299,1301],{},[857,1298,859],{},[355,1300,1020],{}," (illimité)",[352,1303,1304,1305,1308,1309,1312],{},"Nombre maximum d'entrées de requête dans le cache. Quand la limite est atteinte, l'entrée inactive ",[857,1306,1307],{},"la moins récemment utilisée"," est évincée pour faire de la place. Les entrées actives (celles avec des abonnés ",[355,1310,1311],{},"watchQuery",") ne sont jamais évincées de force.",[365,1314,1316],{"className":367,"code":1315,"filename":877,"language":370,"meta":371,"style":371},"maxCacheSize: 100,  // limiter l'usage mémoire dans les apps avec de nombreuses listes\n",[355,1317,1318],{"__ignoreMap":371},[375,1319,1320,1322,1324,1327,1329],{"class":377,"line":378},[375,1321,1277],{"class":385},[375,1323,406],{"class":389},[375,1325,1326],{"class":443}," 100",[375,1328,543],{"class":389},[375,1330,1331],{"class":1258},"  // limiter l'usage mémoire dans les apps avec de nombreuses listes\n",[1333,1334,1335,1336,1339,1340,1343],"tip",{},"Une bonne valeur de départ pour la plupart des apps est ",[355,1337,1338],{},"100-200",". Surveiller ",[355,1341,1342],{},"client.debugInfo()['total_queries']"," pour ajuster cela selon vos patterns d'utilisation.",[624,1345],{},[834,1347,1349],{"id":1348},"oncacheevict",[355,1350,1351],{},"onCacheEvict",[365,1353,1355],{"className":367,"code":1354,"language":370,"meta":371,"style":371},"final void Function(List\u003Cdynamic> key)? onCacheEvict\n",[355,1356,1357],{"__ignoreMap":371},[375,1358,1359,1361,1364,1366,1368,1370,1372,1374,1376,1378],{"class":377,"line":378},[375,1360,382],{"class":381},[375,1362,1363],{"class":381}," void",[375,1365,672],{"class":393},[375,1367,675],{"class":385},[375,1369,735],{"class":393},[375,1371,738],{"class":385},[375,1373,741],{"class":393},[375,1375,744],{"class":385},[375,1377,688],{"class":389},[375,1379,1380],{"class":385}," onCacheEvict\n",[352,1382,1383,860,1385],{},[857,1384,859],{},[355,1386,1020],{},[352,1388,1389,1390,1393,1394,1397],{},"Callback invoqué chaque fois qu'une entrée de cache est évincée : via pression LRU, timer GC, ",[355,1391,1392],{},"removeQuery"," ou ",[355,1395,1396],{},"clear",". Reçoit la clé normalisée de l'entrée évincée.",[365,1399,1401],{"className":367,"code":1400,"filename":877,"language":370,"meta":371,"style":371},"onCacheEvict: (key) {\n  // Journaliser ou synchroniser avec le stockage persistant\n  print('[Cache] évincé : $key');\n  persistentStore.delete(key.toString());\n},\n",[355,1402,1403,1412,1417,1439,1462],{"__ignoreMap":371},[375,1404,1405,1407,1409],{"class":377,"line":378},[375,1406,1351],{"class":385},[375,1408,406],{"class":389},[375,1410,1411],{"class":385}," (key) {\n",[375,1413,1414],{"class":377,"line":400},[375,1415,1416],{"class":1258},"  // Journaliser ou synchroniser avec le stockage persistant\n",[375,1418,1419,1423,1425,1428,1430,1433,1435,1437],{"class":377,"line":414},[375,1420,1422],{"class":1421},"s2Zo4","  print",[375,1424,675],{"class":385},[375,1426,1427],{"class":560},"'[Cache] évincé : ",[375,1429,564],{"class":385},[375,1431,1432],{"class":567},"key",[375,1434,571],{"class":560},[375,1436,447],{"class":385},[375,1438,622],{"class":389},[375,1440,1441,1444,1446,1449,1452,1454,1457,1460],{"class":377,"line":427},[375,1442,1443],{"class":385},"  persistentStore",[375,1445,363],{"class":389},[375,1447,1448],{"class":1421},"delete",[375,1450,1451],{"class":385},"(key",[375,1453,363],{"class":389},[375,1455,1456],{"class":1421},"toString",[375,1458,1459],{"class":385},"())",[375,1461,622],{"class":389},[375,1463,1464,1466],{"class":377,"line":453},[375,1465,1167],{"class":385},[375,1467,450],{"class":389},[624,1469],{},[834,1471,1473],{"id":1472},"onbackgroundfetcherror",[355,1474,1475],{},"onBackgroundFetchError",[365,1477,1479],{"className":367,"code":1478,"language":370,"meta":371,"style":371},"final void Function(Object error, StackTrace? stackTrace, List\u003Cdynamic> queryKey)? onBackgroundFetchError\n",[355,1480,1481],{"__ignoreMap":371},[375,1482,1483,1485,1487,1489,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515],{"class":377,"line":378},[375,1484,382],{"class":381},[375,1486,1363],{"class":381},[375,1488,672],{"class":393},[375,1490,675],{"class":385},[375,1492,678],{"class":393},[375,1494,584],{"class":385},[375,1496,543],{"class":389},[375,1498,685],{"class":393},[375,1500,688],{"class":389},[375,1502,772],{"class":385},[375,1504,543],{"class":389},[375,1506,777],{"class":393},[375,1508,738],{"class":385},[375,1510,741],{"class":393},[375,1512,784],{"class":385},[375,1514,688],{"class":389},[375,1516,1517],{"class":385}," onBackgroundFetchError\n",[352,1519,1520,860,1522],{},[857,1521,859],{},[355,1523,1020],{},[352,1525,1526,1527,1529,1530,1533,1534,1537],{},"Callback invoqué quand un fetch en arrière-plan déclenché par ",[355,1528,1311],{}," échoue. Les fetchs en arrière-plan s'exécutent dans des futures ",[355,1531,1532],{},"unawaited"," et sans ce callback, l'erreur relancée ferait crasher la ",[355,1535,1536],{},"Zone"," asynchrone courante.",[352,1539,1540,1541,1544,1545,1547],{},"L'erreur a ",[857,1542,1543],{},"déjà été stockée"," dans l'état ",[355,1546,1031],{}," de la requête au moment où ce callback est appelé. Utiliser ce callback pour la journalisation, la télémétrie ou le rapport de crash, et pas pour la récupération d'erreur.",[365,1549,1551],{"className":367,"code":1550,"filename":369,"language":370,"meta":371,"style":371},"onBackgroundFetchError: (error, stackTrace, key) {\n  crashReporter.record(error, stackTrace);\n},\n",[355,1552,1553,1570,1589],{"__ignoreMap":371},[375,1554,1555,1557,1559,1561,1563,1565,1567],{"class":377,"line":378},[375,1556,1475],{"class":385},[375,1558,406],{"class":389},[375,1560,540],{"class":385},[375,1562,543],{"class":389},[375,1564,772],{"class":385},[375,1566,543],{"class":389},[375,1568,1569],{"class":385}," key) {\n",[375,1571,1572,1575,1577,1580,1583,1585,1587],{"class":377,"line":400},[375,1573,1574],{"class":385},"  crashReporter",[375,1576,363],{"class":389},[375,1578,1579],{"class":1421},"record",[375,1581,1582],{"class":385},"(error",[375,1584,543],{"class":389},[375,1586,691],{"class":385},[375,1588,622],{"class":389},[375,1590,1591,1593],{"class":377,"line":414},[375,1592,1167],{"class":385},[375,1594,450],{"class":389},[624,1596],{},[834,1598,1600],{"id":1599},"refetchonmount",[355,1601,1602],{},"refetchOnMount",[365,1604,1606],{"className":367,"code":1605,"language":370,"meta":371,"style":371},"final bool refetchOnMount\n",[355,1607,1608],{"__ignoreMap":371},[375,1609,1610,1612,1614],{"class":377,"line":378},[375,1611,382],{"class":381},[375,1613,1199],{"class":393},[375,1615,1616],{"class":385}," refetchOnMount\n",[352,1618,1619,860,1621],{},[857,1620,859],{},[355,1622,1623],{},"true",[352,1625,1626,1627,1629],{},"Défaut global pour indiquer si ",[355,1628,1311],{}," doit déclencher un fetch au premier abonnement, même quand des données en cache existent déjà.",[1218,1631,1632,1637],{},[1221,1633,1634,1636],{},[355,1635,1623],{}," : toujours recharger au montage (recommandé pour la plupart des apps)",[1221,1638,1639,1641],{},[355,1640,1209],{}," : fetch uniquement si aucune donnée n'existe ; ignorer si un état en cache est présent",[352,1643,1644,1645,363],{},"Peut être remplacé par requête via ",[355,1646,1647],{},"QoraOptions.refetchOnMount",[365,1649,1651],{"className":367,"code":1650,"filename":877,"language":370,"meta":371,"style":371},"// Global : ne pas recharger si des données existent\nrefetchOnMount: false,\n\n// Remplacement par requête : toujours recharger cette requête spécifique\noptions: QoraOptions(refetchOnMount: true),\n",[355,1652,1653,1658,1666,1672,1677],{"__ignoreMap":371},[375,1654,1655],{"class":377,"line":378},[375,1656,1657],{"class":1258},"// Global : ne pas recharger si des données existent\n",[375,1659,1660,1662,1664],{"class":377,"line":400},[375,1661,1602],{"class":385},[375,1663,406],{"class":389},[375,1665,711],{"class":389},[375,1667,1668],{"class":377,"line":414},[375,1669,1671],{"emptyLinePlaceholder":1670},true,"\n",[375,1673,1674],{"class":377,"line":427},[375,1675,1676],{"class":1258},"// Remplacement par requête : toujours recharger cette requête spécifique\n",[375,1678,1679,1682,1684,1686,1689,1691,1694,1696],{"class":377,"line":453},[375,1680,1681],{"class":385},"options",[375,1683,406],{"class":389},[375,1685,422],{"class":393},[375,1687,1688],{"class":385},"(refetchOnMount",[375,1690,406],{"class":389},[375,1692,1693],{"class":389}," true",[375,1695,447],{"class":385},[375,1697,450],{"class":389},[624,1699],{},[834,1701,1703],{"id":1702},"reconnectstrategy",[355,1704,1705],{},"reconnectStrategy",[365,1707,1709],{"className":367,"code":1708,"language":370,"meta":371,"style":371},"final ReconnectStrategy reconnectStrategy\n",[355,1710,1711],{"__ignoreMap":371},[375,1712,1713,1715,1717],{"class":377,"line":378},[375,1714,382],{"class":381},[375,1716,817],{"class":393},[375,1718,1719],{"class":385}," reconnectStrategy\n",[352,1721,1722,860,1724,1727],{},[857,1723,859],{},[355,1725,1726],{},"const ReconnectStrategy()"," (5 concurrents, jitter de 100 ms)",[352,1729,1730,1731,1733,1734,1737],{},"Contrôle comment ",[355,1732,202],{}," rejoue les requêtes mises en pause quand la connectivité est rétablie. Sans regroupement, toutes les requêtes mises en pause se déclencheraient simultanément : le problème du \"thundering herd\". ",[355,1735,1736],{},"ReconnectStrategy"," introduit des limites de concurrence et un jitter aléatoire entre les lots :",[365,1739,1741],{"className":367,"code":1740,"filename":369,"language":370,"meta":371,"style":371},"reconnectStrategy: const ReconnectStrategy(\n  maxConcurrent: 5,                      // Rejouer 5 requêtes à la fois\n  jitter: Duration(milliseconds: 200),   // Attente aléatoire entre les lots\n),\n",[355,1742,1743,1755,1769,1792],{"__ignoreMap":371},[375,1744,1745,1747,1749,1751,1753],{"class":377,"line":378},[375,1746,1705],{"class":385},[375,1748,406],{"class":389},[375,1750,657],{"class":381},[375,1752,817],{"class":393},[375,1754,397],{"class":385},[375,1756,1757,1760,1762,1764,1766],{"class":377,"line":400},[375,1758,1759],{"class":385},"  maxConcurrent",[375,1761,406],{"class":389},[375,1763,444],{"class":443},[375,1765,543],{"class":389},[375,1767,1768],{"class":1258},"                      // Rejouer 5 requêtes à la fois\n",[375,1770,1771,1774,1776,1778,1781,1783,1785,1787,1789],{"class":377,"line":414},[375,1772,1773],{"class":385},"  jitter",[375,1775,406],{"class":389},[375,1777,435],{"class":393},[375,1779,1780],{"class":385},"(milliseconds",[375,1782,406],{"class":389},[375,1784,516],{"class":443},[375,1786,447],{"class":385},[375,1788,543],{"class":389},[375,1790,1791],{"class":1258},"   // Attente aléatoire entre les lots\n",[375,1793,1794,1796],{"class":377,"line":427},[375,1795,447],{"class":385},[375,1797,450],{"class":389},[352,1799,1800],{},"Constructeurs nommés pour les scénarios courants :",[365,1802,1804],{"className":367,"code":1803,"filename":369,"language":370,"meta":371,"style":371},"// Défaut : équilibré pour la plupart des apps\nconst ReconnectStrategy()\n\n// Toutes les requêtes rejouées à la fois (utile dans les tests)\nReconnectStrategy.instant()\n\n// Conservateur : 2 requêtes à la fois, jitter de 500 ms\nReconnectStrategy.conservative()\n",[355,1805,1806,1811,1820,1824,1829,1840,1844,1849],{"__ignoreMap":371},[375,1807,1808],{"class":377,"line":378},[375,1809,1810],{"class":1258},"// Défaut : équilibré pour la plupart des apps\n",[375,1812,1813,1815,1817],{"class":377,"line":400},[375,1814,639],{"class":381},[375,1816,817],{"class":393},[375,1818,1819],{"class":385},"()\n",[375,1821,1822],{"class":377,"line":414},[375,1823,1671],{"emptyLinePlaceholder":1670},[375,1825,1826],{"class":377,"line":427},[375,1827,1828],{"class":1258},"// Toutes les requêtes rejouées à la fois (utile dans les tests)\n",[375,1830,1831,1833,1835,1838],{"class":377,"line":453},[375,1832,1736],{"class":393},[375,1834,363],{"class":389},[375,1836,1837],{"class":1421},"instant",[375,1839,1819],{"class":385},[375,1841,1842],{"class":377,"line":474},[375,1843,1671],{"emptyLinePlaceholder":1670},[375,1845,1846],{"class":377,"line":487},[375,1847,1848],{"class":1258},"// Conservateur : 2 requêtes à la fois, jitter de 500 ms\n",[375,1850,1851,1853,1855,1858],{"class":377,"line":495},[375,1852,1736],{"class":393},[375,1854,363],{"class":389},[375,1856,1857],{"class":1421},"conservative",[375,1859,1819],{"class":385},[1861,1862,1863,1883],"table",{},[1864,1865,1866],"thead",{},[1867,1868,1869,1873,1878],"tr",{},[1870,1871,1872],"th",{},"Constructeur nommé",[1870,1874,1875],{},[355,1876,1877],{},"maxConcurrent",[1870,1879,1880],{},[355,1881,1882],{},"jitter",[1884,1885,1886,1900,1913],"tbody",{},[1867,1887,1888,1894,1897],{},[1889,1890,1891],"td",{},[355,1892,1893],{},"ReconnectStrategy()",[1889,1895,1896],{},"5",[1889,1898,1899],{},"100 ms",[1867,1901,1902,1907,1910],{},[1889,1903,1904],{},[355,1905,1906],{},"ReconnectStrategy.instant()",[1889,1908,1909],{},"999",[1889,1911,1912],{},"0 ms",[1867,1914,1915,1920,1923],{},[1889,1916,1917],{},[355,1918,1919],{},"ReconnectStrategy.conservative()",[1889,1921,1922],{},"2",[1889,1924,1925],{},"500 ms",[1333,1927,1928,1929,1931,1932,1934],{},"Pour les apps avec de nombreuses requêtes en arrière-plan (tableaux de bord, feeds), utiliser ",[355,1930,1919],{}," ou réduire ",[355,1933,1877],{}," pour éviter de surcharger le backend après une coupure réseau.",[624,1936],{},[348,1938,1940],{"id":1939},"configuration-recommandée","Configuration recommandée",[365,1942,1944],{"className":367,"code":1943,"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,1945,1946,1956,1965,1969,1982,1992,2004,2022,2040,2050,2069,2086,2092,2102,2112,2120,2141,2158,2172,2184,2204,2211,2218],{"__ignoreMap":371},[375,1947,1948,1951,1954],{"class":377,"line":378},[375,1949,1950],{"class":443},"import",[375,1952,1953],{"class":560}," 'package:flutter/foundation.dart'",[375,1955,622],{"class":389},[375,1957,1958,1960,1963],{"class":377,"line":400},[375,1959,1950],{"class":443},[375,1961,1962],{"class":560}," 'package:qora/qora.dart'",[375,1964,622],{"class":389},[375,1966,1967],{"class":377,"line":414},[375,1968,1671],{"emptyLinePlaceholder":1670},[375,1970,1971,1973,1976,1978,1980],{"class":377,"line":427},[375,1972,382],{"class":381},[375,1974,1975],{"class":385}," qoraClient ",[375,1977,390],{"class":389},[375,1979,394],{"class":393},[375,1981,397],{"class":385},[375,1983,1984,1986,1988,1990],{"class":377,"line":453},[375,1985,403],{"class":385},[375,1987,406],{"class":389},[375,1989,409],{"class":393},[375,1991,397],{"class":385},[375,1993,1994,1996,1998,2000,2002],{"class":377,"line":474},[375,1995,417],{"class":385},[375,1997,406],{"class":389},[375,1999,657],{"class":381},[375,2001,422],{"class":393},[375,2003,397],{"class":385},[375,2005,2006,2008,2010,2012,2014,2016,2018,2020],{"class":377,"line":487},[375,2007,430],{"class":385},[375,2009,406],{"class":389},[375,2011,435],{"class":393},[375,2013,438],{"class":385},[375,2015,406],{"class":389},[375,2017,444],{"class":443},[375,2019,447],{"class":385},[375,2021,450],{"class":389},[375,2023,2024,2026,2028,2030,2032,2034,2036,2038],{"class":377,"line":495},[375,2025,456],{"class":385},[375,2027,406],{"class":389},[375,2029,435],{"class":393},[375,2031,438],{"class":385},[375,2033,406],{"class":389},[375,2035,467],{"class":443},[375,2037,447],{"class":385},[375,2039,450],{"class":389},[375,2041,2042,2044,2046,2048],{"class":377,"line":508},[375,2043,477],{"class":385},[375,2045,406],{"class":389},[375,2047,482],{"class":443},[375,2049,450],{"class":389},[375,2051,2052,2055,2057,2059,2061,2063,2065,2067],{"class":377,"line":521},[375,2053,2054],{"class":385},"      retryDelay",[375,2056,406],{"class":389},[375,2058,435],{"class":393},[375,2060,950],{"class":385},[375,2062,406],{"class":389},[375,2064,955],{"class":443},[375,2066,447],{"class":385},[375,2068,450],{"class":389},[375,2070,2071,2074,2076,2079,2081,2084],{"class":377,"line":532},[375,2072,2073],{"class":385},"      networkMode",[375,2075,406],{"class":389},[375,2077,2078],{"class":393}," NetworkMode",[375,2080,363],{"class":389},[375,2082,2083],{"class":385},"online",[375,2085,450],{"class":389},[375,2087,2088,2090],{"class":377,"line":557},[375,2089,490],{"class":385},[375,2091,450],{"class":389},[375,2093,2094,2096,2098,2100],{"class":377,"line":576},[375,2095,498],{"class":385},[375,2097,406],{"class":389},[375,2099,503],{"class":385},[375,2101,450],{"class":389},[375,2103,2104,2106,2108,2110],{"class":377,"line":589},[375,2105,511],{"class":385},[375,2107,406],{"class":389},[375,2109,516],{"class":443},[375,2111,450],{"class":389},[375,2113,2114,2116,2118],{"class":377,"line":602},[375,2115,524],{"class":385},[375,2117,406],{"class":389},[375,2119,529],{"class":389},[375,2121,2122,2125,2127,2129,2131,2133,2135,2138],{"class":377,"line":609},[375,2123,2124],{"class":385},"    onBackgroundFetchError",[375,2126,406],{"class":389},[375,2128,540],{"class":385},[375,2130,543],{"class":389},[375,2132,772],{"class":385},[375,2134,543],{"class":389},[375,2136,2137],{"class":385}," key) ",[375,2139,2140],{"class":389},"=>\n",[375,2142,2143,2146,2148,2150,2152,2154,2156],{"class":377,"line":617},[375,2144,2145],{"class":385},"        crashReporter",[375,2147,363],{"class":389},[375,2149,1579],{"class":1421},[375,2151,1582],{"class":385},[375,2153,543],{"class":389},[375,2155,691],{"class":385},[375,2157,450],{"class":389},[375,2159,2161,2164,2166,2168,2170],{"class":377,"line":2160},18,[375,2162,2163],{"class":385},"    reconnectStrategy",[375,2165,406],{"class":389},[375,2167,657],{"class":381},[375,2169,817],{"class":393},[375,2171,397],{"class":385},[375,2173,2175,2178,2180,2182],{"class":377,"line":2174},19,[375,2176,2177],{"class":385},"      maxConcurrent",[375,2179,406],{"class":389},[375,2181,444],{"class":443},[375,2183,450],{"class":389},[375,2185,2187,2190,2192,2194,2196,2198,2200,2202],{"class":377,"line":2186},20,[375,2188,2189],{"class":385},"      jitter",[375,2191,406],{"class":389},[375,2193,435],{"class":393},[375,2195,1780],{"class":385},[375,2197,406],{"class":389},[375,2199,1326],{"class":443},[375,2201,447],{"class":385},[375,2203,450],{"class":389},[375,2205,2207,2209],{"class":377,"line":2206},21,[375,2208,490],{"class":385},[375,2210,450],{"class":389},[375,2212,2214,2216],{"class":377,"line":2213},22,[375,2215,612],{"class":385},[375,2217,450],{"class":389},[375,2219,2221,2223],{"class":377,"line":2220},23,[375,2222,447],{"class":385},[375,2224,622],{"class":389},[352,2226,2227,2228,2230,2231,363],{},"Pour les apps Flutter, passer ce client à ",[355,2229,103],{}," à la racine de l'arbre de widgets pour que tous les widgets puissent y accéder via ",[355,2232,2233],{},"context.qora",[352,2235,2236,2237,2241],{},"Voir le ",[970,2238,2240],{"href":2239},"../recipes/network-aware","guide réseau adaptatif"," pour le walkthrough complet de configuration hors ligne.",[2243,2244,2245],"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":2247},[2248,2249,2250,2260],{"id":350,"depth":400,"text":243},{"id":628,"depth":400,"text":629},{"id":831,"depth":400,"text":832,"children":2251},[2252,2253,2254,2255,2256,2257,2258,2259],{"id":836,"depth":414,"text":839},{"id":978,"depth":414,"text":981},{"id":1184,"depth":414,"text":1187},{"id":1274,"depth":414,"text":1277},{"id":1348,"depth":414,"text":1351},{"id":1472,"depth":414,"text":1475},{"id":1599,"depth":414,"text":1602},{"id":1702,"depth":414,"text":1705},{"id":1939,"depth":400,"text":1940},"Configuration globale de QoraClient. Appliquée comme référence pour chaque requête. Les QoraOptions par requête sont fusionnées par-dessus.","md",null,{},{"icon":223},{"title":220,"description":2261},"_UFXEoQgE2x6JP_GfZYTSh0mjAx7Vigjumtv0A6zPeA",[2269,2271],{"title":215,"path":216,"stem":217,"description":2270,"icon":218,"children":-1},"Configuration par requête qui remplace les défauts de QoraClientConfig. Passer à fetchQuery ou watchQuery pour personnaliser le cache, les retries, la fraîcheur et le polling.",{"title":225,"path":226,"stem":227,"description":2272,"icon":85,"children":-1},"Référence complète de MutationController, MutationState, MutationOptions, MutationUpdate et l'observabilité des mutations sur QoraClient.",1794040409225]