diff --git a/coverage/base.css b/coverage/base.css deleted file mode 100644 index f418035..0000000 --- a/coverage/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/coverage/block-navigation.js b/coverage/block-navigation.js deleted file mode 100644 index 530d1ed..0000000 --- a/coverage/block-navigation.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selector that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/coverage/clover.xml b/coverage/clover.xml deleted file mode 100644 index 4e9dd6b..0000000 --- a/coverage/clover.xml +++ /dev/null @@ -1,2762 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json deleted file mode 100644 index cfc895c..0000000 --- a/coverage/coverage-final.json +++ /dev/null @@ -1,24 +0,0 @@ -{"/home/ncantu/4NK_IA_front/scripts/check-node.mjs": {"path":"/home/ncantu/4NK_IA_front/scripts/check-node.mjs","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":63}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":27}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":61}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":25}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":25}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":26}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":27}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":3}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":11}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":2}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":46}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":30}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":32}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":98}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":79}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":18}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":1}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":63}}},"s":{"0":0,"2":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"14":0,"15":0,"17":0,"18":0,"19":0,"20":0,"21":0,"23":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":24,"column":62}},"locations":[{"start":{"line":1,"column":0},"end":{"line":24,"column":62}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":24,"column":62}},"loc":{"start":{"line":1,"column":0},"end":{"line":24,"column":62}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/scripts/simple-server.js": {"path":"/home/ncantu/4NK_IA_front/scripts/simple-server.js","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":20}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":24}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":36}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":50}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":43}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":18}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":23}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":13}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":19}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":25}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":29}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":23}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":32}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":24}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":24}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":24}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":28}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":26}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":2}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":48}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":74}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":33}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":28}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":34}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":5}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":65}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":70}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":47}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":20}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":42}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":65}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":65}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":32}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":43}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":50}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":28}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":76}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":50}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":21}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":19}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":20}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":35}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":55}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":13}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":16}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":61}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":38}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":9}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":7}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":3}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":33}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":78}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":68}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":54}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":3}}},"s":{"0":0,"2":0,"3":0,"4":0,"5":0,"7":0,"8":0,"10":0,"11":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"26":0,"27":0,"29":0,"30":0,"31":0,"32":0,"34":0,"35":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"61":0,"62":0,"63":0,"64":0,"65":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":66,"column":-446}},"locations":[{"start":{"line":1,"column":0},"end":{"line":66,"column":-446}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":66,"column":-446}},"loc":{"start":{"line":1,"column":0},"end":{"line":66,"column":-446}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/App.tsx": {"path":"/home/ncantu/4NK_IA_front/src/App.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":36}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":31}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":22}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":1}}},"s":{"0":0,"1":0,"3":0,"4":0,"5":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":113},"end":{"line":6,"column":1}},"locations":[{"start":{"line":1,"column":113},"end":{"line":6,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":113},"end":{"line":6,"column":1}},"loc":{"start":{"line":1,"column":113},"end":{"line":6,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/main.tsx": {"path":"/home/ncantu/4NK_IA_front/src/main.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":34}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":45}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":38}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":52}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":43}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":20}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":27}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":31}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":31}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":52}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":14}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":28}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":35}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":23}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":15}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":22}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":15}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":16}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":1}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":472},"end":{"line":20,"column":-344}},"locations":[{"start":{"line":1,"column":472},"end":{"line":20,"column":-344}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":472},"end":{"line":20,"column":-344}},"loc":{"start":{"line":1,"column":472},"end":{"line":20,"column":-344}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/components/FilePreview.tsx": {"path":"/home/ncantu/4NK_IA_front/src/components/FilePreview.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":50}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":8}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":8}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":83}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":46}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":57}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":37}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":41}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":45}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":19}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":20}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":18}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":14}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":17}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":36}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":39}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":23}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":12}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":36}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":16}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":32}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":30}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":53}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":37}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":35}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":18}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":5}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":3}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":97}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":17}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":45}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":103}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":26}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":12}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":61}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":21}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":81}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":65}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":57}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":23}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":25}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":16}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":22}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":32}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":88}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":19}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":60}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":21}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":34}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":28}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":39}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":77}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":15}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":23}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":81}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":21}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":34}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":28}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":38}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":75}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":15}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":23}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":18}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":16}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":14}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":17}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":34}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":38}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":30}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":31}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":32}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":30}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":39}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":35}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":41}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":14}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":36}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":18}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":41}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":35}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":24}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":46}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":47}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":39}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":18}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":48}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":32}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":62}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":35}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":18}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":16}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":44}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":54}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":29}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":67}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":29}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":67}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":71}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":29}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":20}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":16}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":24}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":23}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":51}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":120}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":19}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":24}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":15}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":3}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":10}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":59}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":19}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":79}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":58}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":42}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":65}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":16}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":55}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":21}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":23}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":14}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":20}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":30}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":21}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":92}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":32}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":55}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":25}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":16}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":19}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":49}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":19}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":18}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":32}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":15}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":90}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":62}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":23}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":36}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":30}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":48}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":72}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":38}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":17}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":25}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":44}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":44}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":29}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":23}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":36}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":30}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":44}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":79}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":45}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":17}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":25}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":20}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":62}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":23}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":36}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":30}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":41}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":77}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":17}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":25}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":44}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":44}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":29}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":23}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":36}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":30}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":40}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":77}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":17}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":25}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":20}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":18}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":22}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":34}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":38}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":30}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":33}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":32}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":30}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":39}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":40}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":15}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":38}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":61}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":25}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":100}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":32}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":33}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":28}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":37}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":51}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":50}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":47}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":48}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":22}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":56}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":52}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":36}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":61}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":39}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":22}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":20}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":22}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":98}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":42}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":86}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":58}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":33}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":71}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":81}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":33}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":71}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":75}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":33}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":24}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":22}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":18}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":16}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":22}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":21}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":34}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":17}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":15}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":29}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":34}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":34}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":41}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":9}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":17}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":22}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":13}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":1}}},"s":{"0":0,"1":0,"13":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"36":0,"37":0,"38":0,"39":0,"40":0,"43":0,"44":0,"45":0,"46":0,"48":0,"49":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"61":0,"62":0,"63":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"128":0,"129":0,"131":0,"132":0,"134":0,"135":0,"136":0,"137":0,"138":0,"140":0,"141":0,"142":0,"143":0,"144":0,"146":0,"147":0,"148":0,"150":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"166":0,"167":0,"168":0,"169":0,"170":0,"172":0,"173":0,"176":0,"177":0,"178":0,"179":0,"182":0,"183":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"207":0,"208":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"229":0,"230":0,"231":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"267":0,"268":0,"269":0,"270":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"282":0,"283":0,"285":0,"287":0,"288":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"298":0,"299":0,"300":0,"302":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":9951},"end":{"line":303,"column":1}},"locations":[{"start":{"line":1,"column":9951},"end":{"line":303,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":9951},"end":{"line":303,"column":1}},"loc":{"start":{"line":1,"column":9951},"end":{"line":303,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/components/Layout.tsx": {"path":"/home/ncantu/4NK_IA_front/src/components/Layout.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":91}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":59}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":49}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":57}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":101}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":64}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":32}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":32}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":35}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":145}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":19}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":32}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":68}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":6}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":43}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":19}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":26}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":72}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":70}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":66}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":5}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":79}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":10}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":30}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":32}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":17}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":21}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":24}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":27}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":51}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":41}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":11}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":23}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":18}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":15}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":56}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":19}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":35}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":28}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":14}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":53}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":18}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":18}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":10}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":1}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"11":0,"12":0,"13":0,"14":0,"15":0,"18":0,"19":0,"20":0,"21":0,"22":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"44":0,"45":0,"46":0,"48":0,"50":0,"51":0,"52":0,"53":0,"56":0,"57":0,"58":0,"59":0,"61":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":2106},"end":{"line":62,"column":1}},"locations":[{"start":{"line":1,"column":2106},"end":{"line":62,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":2106},"end":{"line":62,"column":1}},"loc":{"start":{"line":1,"column":2106},"end":{"line":62,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/components/NavigationTabs.tsx": {"path":"/home/ncantu/4NK_IA_front/src/components/NavigationTabs.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":46}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":46}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":83}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":32}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":16}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":42}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":49}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":43}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":45}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":43}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":3}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":73}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":79}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":33}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":3}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":10}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":58}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":11}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":58}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":34}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":36}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":28}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":28}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":35}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":47}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":11}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":13}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":10}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":1}}},"s":{"0":0,"1":0,"2":0,"8":0,"9":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"19":0,"21":0,"22":0,"23":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"34":0,"35":0,"36":0,"37":0,"38":0,"40":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":1144},"end":{"line":41,"column":1}},"locations":[{"start":{"line":1,"column":1144},"end":{"line":41,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":1144},"end":{"line":41,"column":1}},"loc":{"start":{"line":1,"column":1144},"end":{"line":41,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/router/index.tsx": {"path":"/home/ncantu/4NK_IA_front/src/router/index.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":38}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":70}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":65}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":60}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":68}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":62}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":64}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":62}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":31}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":99}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":24}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":57}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":8}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":36}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":93}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":107}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":101}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":103}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":101}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":2}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":32}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":43}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":1}}},"s":{"0":0,"1":0,"2":0,"4":0,"5":0,"6":0,"7":0,"8":0,"10":0,"11":0,"12":0,"13":0,"14":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"25":0,"26":0,"27":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":1355},"end":{"line":28,"column":1}},"locations":[{"start":{"line":1,"column":1355},"end":{"line":28,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":1355},"end":{"line":28,"column":1}},"loc":{"start":{"line":1,"column":1355},"end":{"line":28,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/services/api.ts": {"path":"/home/ncantu/4NK_IA_front/src/services/api.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":63}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":72}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":61}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":26}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":63}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":15}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":31}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":106}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":1}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":39}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":20}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":17}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":2}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":36}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":25}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":14}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":32}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":3}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":1}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":28}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":52}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":57}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":35}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":33}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":73}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":45}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":12}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":64}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":22}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":82}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":79}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":22}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":29}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":26}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":25}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":5}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":4}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":69}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":21}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":50}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":5}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":79}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":38}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":12}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":17}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":63}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":21}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":56}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":84}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":30}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":32}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":46}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":59}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":22}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":33}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":24}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":16}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":73}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":24}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":22}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":28}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":26}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":16}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":96}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":28}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":35}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":18}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":39}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":24}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":30}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":28}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":10}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":20}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":43}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":22}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":16}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":18}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":9}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":27}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":32}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":22}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":25}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":29}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":76}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":10}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":8}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":50}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":53}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":5}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":4}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":67}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":64}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":96}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":15}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":4}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":69}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":67}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":95}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":15}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":4}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":69}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":67}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":95}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":15}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":4}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":84}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":61}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":35}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":33}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":70}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":15}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":4}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":1}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":28}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":40}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":62}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":93}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":15}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":4}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":68}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":68}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":92}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":15}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":4}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":42}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":64}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":92}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":15}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":4}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":42}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":64}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":95}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":15}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":4}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":40}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":62}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":90}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":15}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":4}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":1}}},"s":{"0":0,"1":0,"4":0,"5":0,"8":0,"9":0,"10":0,"11":0,"13":0,"14":0,"16":0,"17":0,"18":0,"19":0,"22":0,"23":0,"24":0,"26":0,"27":0,"28":0,"31":0,"33":0,"34":0,"35":0,"36":0,"37":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"55":0,"56":0,"59":0,"60":0,"61":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"114":0,"115":0,"116":0,"117":0,"118":0,"121":0,"122":0,"123":0,"124":0,"125":0,"128":0,"129":0,"130":0,"131":0,"132":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"145":0,"147":0,"148":0,"149":0,"150":0,"151":0,"154":0,"155":0,"156":0,"157":0,"158":0,"161":0,"162":0,"163":0,"164":0,"165":0,"168":0,"169":0,"170":0,"171":0,"172":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":6462},"end":{"line":181,"column":1}},"locations":[{"start":{"line":1,"column":6462},"end":{"line":181,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":6462},"end":{"line":181,"column":1}},"loc":{"start":{"line":1,"column":6462},"end":{"line":181,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/services/fileExtract.ts": {"path":"/home/ncantu/4NK_IA_front/src/services/fileExtract.ts","all":true,"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":32}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":33}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":50}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":7}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":85}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":87}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":11}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":3}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":22}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":18}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":1}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":72}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":30}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":73}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":46}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":30}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":99}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":5}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":18}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":3}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":116}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":48}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":30}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":99}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":5}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":18}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":3}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":7}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":28}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":11}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":13}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":3}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":1}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":60}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":53}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":26}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":46}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":87}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":28}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":45}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":42}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":37}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":65}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":21}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":18}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":81}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":5}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":64}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":53}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":53}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":35}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":37}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":48}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":65}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":110}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":111}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":24}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":5}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":45}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":3}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":25}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":1}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":62}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":55}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":49}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":25}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":72}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":35}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":57}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":51}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":69}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":56}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":40}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":36}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":38}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":63}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":71}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":29}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":46}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":57}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":47}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":59}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":45}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":5}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":35}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":92}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":3}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":37}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":7}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":36}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":88}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":6}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":23}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":40}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":38}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":39}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":82}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":21}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":22}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":33}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":64}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":36}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":57}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":60}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":36}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":59}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":64}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":32}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":27}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":25}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":9}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":52}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":7}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":5}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":19}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":13}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":28}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":3}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":1}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":67}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":34}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":43}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":35}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":37}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":37}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":21}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":22}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":44}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":44}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":49}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":21}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":22}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":38}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":34}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":36}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":35}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":17}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":36}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":88}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":1}}},"s":{"1":0,"2":0,"3":0,"4":0,"5":0,"7":0,"8":0,"9":0,"11":0,"12":0,"13":0,"14":0,"16":0,"17":0,"18":0,"19":0,"20":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"30":0,"31":0,"32":0,"33":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"73":0,"74":0,"77":0,"78":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"91":0,"92":0,"93":0,"94":0,"96":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"105":0,"106":0,"109":0,"110":0,"111":0,"112":0,"114":0,"116":0,"118":0,"119":0,"120":0,"121":0,"123":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"137":0,"138":0,"139":0,"141":0,"142":0,"143":0,"144":0,"145":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":6666},"end":{"line":168,"column":1}},"locations":[{"start":{"line":1,"column":6666},"end":{"line":168,"column":1}}]}},"b":{"0":[1]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":6666},"end":{"line":168,"column":1}},"loc":{"start":{"line":1,"column":6666},"end":{"line":168,"column":1}},"line":1}},"f":{"0":1}} -,"/home/ncantu/4NK_IA_front/src/services/openai.ts": {"path":"/home/ncantu/4NK_IA_front/src/services/openai.ts","all":true,"statementMap":{"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":51}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":38}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":58}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":91}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":76}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":125}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":24}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":65}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":3}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":28}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":76}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":3}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":71}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":19}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":14}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":41}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":48}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":6}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":26}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":31}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":15}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":23}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":7}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":4}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":21}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":30}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":59}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":5}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":38}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":63}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":3}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":36}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":28}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":43}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":3}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":50}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":1}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":34}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":52}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":45}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":12}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":40}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":22}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":56}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":32}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":22}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":29}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":26}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":26}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":5}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":4}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":105}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":22}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":15}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":11}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":33}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":51}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":33}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":15}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":22}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":7}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":5}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":67}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":74}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":66}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":54}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":17}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":19}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":17}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":36}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":6}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":21}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":66}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":83}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":33}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":26}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":36}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":49}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":15}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":26}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":36}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":49}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":15}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":26}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":34}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":72}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":15}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":7}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":66}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":49}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":51}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":39}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":47}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":45}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":34}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":8}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":71}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":62}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":13}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":35}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":44}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":101}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":227}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":12}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":40}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":66}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":63}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":116}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":84}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":11}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":35}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":25}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":73}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":35}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":9}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":14}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":63}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":35}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":28}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":38}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":51}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":17}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":28}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":36}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":52}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":17}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":9}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":7}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":66}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":16}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":5}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":29}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":23}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":11}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":42}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":99}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":225}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":10}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":38}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":33}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":16}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":21}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":32}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":25}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":70}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":25}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":24}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":25}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":24}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":25}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":26}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":98}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":9}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":15}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":33}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":16}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":21}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":32}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":25}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":35}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":25}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":24}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":25}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":24}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":25}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":26}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":79}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":9}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":7}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":5}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":42}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":7}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":23}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":16}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":208}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":8}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":7}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":21}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":779}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":8}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":6}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":9}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":40}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":31}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":82}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":76}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":86}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":95}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":8}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":14}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":19}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":30}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":42}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":56}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":35}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":42}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":44}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":42}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":44}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":110}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":58}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":7}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":13}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":31}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":53}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":35}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":34}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":75}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":28}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":46}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":68}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":32}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":50}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":58}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":36}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":54}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":7}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":14}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":19}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":60}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":23}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":21}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":23}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":22}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":23}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":22}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":23}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":24}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":35}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":7}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":5}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":4}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":67}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":41}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":93}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":103}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":6}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":74}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":67}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":54}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":48}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":52}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":12}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":17}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":47}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":12}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":31}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":53}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":20}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":64}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":49}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":26}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":30}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":11}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":85}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":71}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":11}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":46}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":5}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":4}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":69}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":88}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":4}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":69}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":42}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":95}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":97}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":6}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":144}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":4}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":85}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":48}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":4}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":1}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":34}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":89}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":117}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":91}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":91}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":89}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":1}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":49}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":26}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":78}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":27}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":1}}},"s":{"11":0,"12":0,"14":0,"15":0,"16":0,"18":0,"19":0,"20":0,"21":0,"24":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"41":0,"42":0,"44":0,"45":0,"46":0,"47":0,"48":0,"50":0,"51":0,"53":0,"54":0,"55":0,"56":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"87":0,"88":0,"89":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"100":0,"101":0,"102":0,"105":0,"106":0,"107":0,"108":0,"109":0,"111":0,"112":0,"113":0,"114":0,"116":0,"117":0,"118":0,"119":0,"120":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"153":0,"154":0,"155":0,"156":0,"157":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"166":0,"167":0,"168":0,"170":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"224":0,"225":0,"226":0,"228":0,"229":0,"230":0,"231":0,"232":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"307":0,"308":0,"309":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"319":0,"320":0,"321":0,"322":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"332":0,"333":0,"335":0,"336":0,"337":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":13563},"end":{"line":338,"column":1}},"locations":[{"start":{"line":1,"column":13563},"end":{"line":338,"column":1}}]}},"b":{"0":[1]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":13563},"end":{"line":338,"column":1}},"loc":{"start":{"line":1,"column":13563},"end":{"line":338,"column":1}},"line":1}},"f":{"0":1}} -,"/home/ncantu/4NK_IA_front/src/services/ruleNer.ts": {"path":"/home/ncantu/4NK_IA_front/src/services/ruleNer.ts","all":true,"statementMap":{"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":45}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":14}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":18}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":17}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":55}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":14}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":1}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":85}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":70}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":49}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":49}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":53}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":47}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":49}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":38}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":30}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":59}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":60}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":116}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":7}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":5}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":3}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":13}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":1}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":47}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":35}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":20}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":69}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":55}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":3}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":30}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":56}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":3}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":28}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":1}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":52}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":35}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":35}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":68}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":28}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":1}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":52}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":29}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":27}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":86}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":98}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":93}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":3}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":42}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":49}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":66}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":33}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":47}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":18}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":15}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":13}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":19}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":25}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":8}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":5}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":3}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":14}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":1}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":49}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":35}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":155}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":51}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":36}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":43}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":34}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":49}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":21}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":38}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":21}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":40}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":38}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":22}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":6}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":3}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":64}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":52}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":30}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":32}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":61}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":5}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":3}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":32}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":74}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":47}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":27}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":68}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":57}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":48}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":101}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":59}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":65}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":27}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":26}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":27}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":70}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":21}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":47}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":12}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":9}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":7}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":5}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":3}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":19}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":1}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":80}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":62}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":62}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":44}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":64}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":38}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":7}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":9}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":22}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":25}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":49}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":48}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":26}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":22}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":7}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":24}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":82}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":42}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":79}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":44}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":83}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":34}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":68}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":34}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":35}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":30}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":71}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":73}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":69}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":51}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":31}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":70}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":24}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":50}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":55}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":28}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":54}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":52}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":32}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":58}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":54}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":28}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":54}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":10}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":68}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":3}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":22}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":43}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":43}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":42}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":51}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":62}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":48}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":18}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":15}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":9}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":19}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":17}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":15}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":14}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":15}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":14}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":19}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":15}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":31}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":3}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":53}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":15}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":1}}},"s":{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"10":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"48":0,"49":0,"52":0,"54":0,"56":0,"58":0,"59":0,"61":0,"62":0,"63":0,"64":0,"65":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"76":0,"77":0,"79":0,"80":0,"83":0,"85":0,"86":0,"87":0,"88":0,"89":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"101":0,"102":0,"103":0,"105":0,"106":0,"107":0,"108":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"133":0,"134":0,"136":0,"137":0,"138":0,"140":0,"141":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"155":0,"157":0,"158":0,"160":0,"161":0,"163":0,"164":0,"166":0,"167":0,"169":0,"170":0,"171":0,"172":0,"173":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"193":0,"194":0,"195":0,"196":0,"197":0,"199":0,"200":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"216":0,"217":0,"218":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":7439},"end":{"line":219,"column":1}},"locations":[{"start":{"line":1,"column":7439},"end":{"line":219,"column":1}}]}},"b":{"0":[1]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":7439},"end":{"line":219,"column":1}},"loc":{"start":{"line":1,"column":7439},"end":{"line":219,"column":1}},"line":1}},"f":{"0":1}} -,"/home/ncantu/4NK_IA_front/src/services/testFilesApi.ts": {"path":"/home/ncantu/4NK_IA_front/src/services/testFilesApi.ts","all":false,"statementMap":{"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":67}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":7}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":24}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":32}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":33}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":18}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":19}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":18}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":5}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":36}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":40}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":11}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":83}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":26}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":70}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":66}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":68}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":22}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":27}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":66}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":60}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":86}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":12}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":9}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":23}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":77}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":7}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":5}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":16}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":19}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":92}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":13}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":3}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":1}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":76}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":7}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":59}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":23}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":56}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":5}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":38}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":58}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":19}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":77}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":15}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":3}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":1}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":77}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":26}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":22}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":17}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":17}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":16}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":17}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":17}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":20}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":77}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":3}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":31}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":45}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":17}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":5}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":63}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":90}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":63}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":4}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":1}}},"s":{"14":2,"15":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"26":2,"28":2,"29":10,"30":10,"31":10,"32":4,"33":4,"34":4,"36":4,"37":4,"38":4,"39":4,"40":4,"41":4,"42":4,"43":10,"44":5,"45":5,"46":10,"48":2,"49":2,"50":0,"51":0,"52":0,"53":2,"58":3,"59":3,"60":3,"61":3,"62":1,"63":1,"65":1,"66":1,"67":3,"68":2,"69":2,"70":2,"71":3,"76":1,"77":3,"78":3,"79":3,"80":3,"81":3,"82":3,"83":3,"84":3,"85":3,"86":3,"88":3,"90":12,"91":6,"92":6,"95":12,"96":12,"98":12,"99":3,"100":3},"branchMap":{"0":{"type":"branch","line":15,"loc":{"start":{"line":15,"column":0},"end":{"line":54,"column":1}},"locations":[{"start":{"line":15,"column":0},"end":{"line":54,"column":1}}]},"1":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":39},"end":{"line":47,"column":5}},"locations":[{"start":{"line":29,"column":39},"end":{"line":47,"column":5}}]},"2":{"type":"branch","line":31,"loc":{"start":{"line":31,"column":82},"end":{"line":32,"column":25}},"locations":[{"start":{"line":31,"column":82},"end":{"line":32,"column":25}}]},"3":{"type":"branch","line":32,"loc":{"start":{"line":32,"column":25},"end":{"line":43,"column":9}},"locations":[{"start":{"line":32,"column":25},"end":{"line":43,"column":9}}]},"4":{"type":"branch","line":39,"loc":{"start":{"line":39,"column":60},"end":{"line":39,"column":66}},"locations":[{"start":{"line":39,"column":60},"end":{"line":39,"column":66}}]},"5":{"type":"branch","line":40,"loc":{"start":{"line":40,"column":18},"end":{"line":40,"column":60}},"locations":[{"start":{"line":40,"column":18},"end":{"line":40,"column":60}}]},"6":{"type":"branch","line":41,"loc":{"start":{"line":41,"column":26},"end":{"line":41,"column":76}},"locations":[{"start":{"line":41,"column":26},"end":{"line":41,"column":76}}]},"7":{"type":"branch","line":44,"loc":{"start":{"line":44,"column":6},"end":{"line":46,"column":7}},"locations":[{"start":{"line":44,"column":6},"end":{"line":46,"column":7}}]},"8":{"type":"branch","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":53,"column":3}},"locations":[{"start":{"line":50,"column":2},"end":{"line":53,"column":3}}]},"9":{"type":"branch","line":59,"loc":{"start":{"line":59,"column":0},"end":{"line":72,"column":1}},"locations":[{"start":{"line":59,"column":0},"end":{"line":72,"column":1}}]},"10":{"type":"branch","line":61,"loc":{"start":{"line":61,"column":58},"end":{"line":62,"column":22}},"locations":[{"start":{"line":61,"column":58},"end":{"line":62,"column":22}}]},"11":{"type":"branch","line":62,"loc":{"start":{"line":62,"column":22},"end":{"line":68,"column":11}},"locations":[{"start":{"line":62,"column":22},"end":{"line":68,"column":11}}]},"12":{"type":"branch","line":68,"loc":{"start":{"line":68,"column":2},"end":{"line":71,"column":3}},"locations":[{"start":{"line":68,"column":2},"end":{"line":71,"column":3}}]},"13":{"type":"branch","line":77,"loc":{"start":{"line":77,"column":7},"end":{"line":101,"column":1}},"locations":[{"start":{"line":77,"column":7},"end":{"line":101,"column":1}}]},"14":{"type":"branch","line":89,"loc":{"start":{"line":89,"column":22},"end":{"line":100,"column":3}},"locations":[{"start":{"line":89,"column":22},"end":{"line":100,"column":3}}]},"15":{"type":"branch","line":91,"loc":{"start":{"line":91,"column":44},"end":{"line":96,"column":62}},"locations":[{"start":{"line":91,"column":44},"end":{"line":96,"column":62}}]},"16":{"type":"branch","line":99,"loc":{"start":{"line":99,"column":11},"end":{"line":99,"column":63}},"locations":[{"start":{"line":99,"column":11},"end":{"line":99,"column":63}}]}},"b":{"0":[2],"1":[10],"2":[5],"3":[4],"4":[0],"5":[0],"6":[0],"7":[5],"8":[0],"9":[3],"10":[2],"11":[1],"12":[2],"13":[3],"14":[12],"15":[6],"16":[6]},"fnMap":{"0":{"name":"getTestFilesList","decl":{"start":{"line":15,"column":0},"end":{"line":54,"column":1}},"loc":{"start":{"line":15,"column":0},"end":{"line":54,"column":1}},"line":15},"1":{"name":"loadTestFile","decl":{"start":{"line":59,"column":0},"end":{"line":72,"column":1}},"loc":{"start":{"line":59,"column":0},"end":{"line":72,"column":1}},"line":59},"2":{"name":"filterSupportedFiles","decl":{"start":{"line":77,"column":7},"end":{"line":101,"column":1}},"loc":{"start":{"line":77,"column":7},"end":{"line":101,"column":1}},"line":77}},"f":{"0":2,"1":3,"2":3}} -,"/home/ncantu/4NK_IA_front/src/store/appSlice.ts": {"path":"/home/ncantu/4NK_IA_front/src/store/appSlice.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":46}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":32}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":20}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":1}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":30}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":14}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":15}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":15}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":2}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":42}}},"s":{"0":0,"6":0,"7":0,"8":0,"10":0,"11":0,"12":0,"13":0,"14":0,"16":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":280},"end":{"line":17,"column":42}},"locations":[{"start":{"line":1,"column":280},"end":{"line":17,"column":42}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":280},"end":{"line":17,"column":42}},"loc":{"start":{"line":1,"column":280},"end":{"line":17,"column":42}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/store/documentSlice.ts": {"path":"/home/ncantu/4NK_IA_front/src/store/documentSlice.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":64}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":45}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":54}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":37}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":16}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":24}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":25}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":21}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":15}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":23}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":22}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":22}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":17}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":14}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":19}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":1}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":47}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":20}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":25}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":41}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":3}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":1}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":48}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":21}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":43}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":64}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":20}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":70}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":75}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":29}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":39}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":81}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":85}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":52}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":87}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":11}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":10}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":39}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":81}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":85}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":52}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":87}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":11}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":9}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":7}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":28}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":13}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":49}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":39}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":73}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":81}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":17}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":86}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":9}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":7}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":82}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":5}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":48}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":3}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":1}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":48}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":21}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":33}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":48}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":3}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":1}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":47}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":21}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":33}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":51}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":3}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":1}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":43}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":21}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":33}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":51}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":3}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":1}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":35}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":19}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":15}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":13}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":76}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":44}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":6}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":30}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":35}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":33}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":32}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":32}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":6}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":65}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":37}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":81}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":41}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":31}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":42}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":32}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":26}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":24}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":9}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":8}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":30}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":6}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":63}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":39}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":74}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":77}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":36}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":37}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":35}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":34}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":34}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":7}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":43}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":6}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":89}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":45}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":133}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":6}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":89}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":45}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":133}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":6}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":4}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":31}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":11}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":51}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":28}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":26}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":8}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":61}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":29}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":44}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":46}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":61}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":9}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":8}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":60}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":29}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":76}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":8}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":52}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":28}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":26}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":8}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":62}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":29}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":47}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":72}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":8}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":61}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":29}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":76}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":8}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":62}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":45}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":8}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":61}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":44}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":8}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":57}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":44}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":8}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":4}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":2}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":135}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":52}}},"s":{"0":0,"3":0,"4":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"50":0,"51":0,"52":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"167":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"201":0,"202":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":7494},"end":{"line":203,"column":52}},"locations":[{"start":{"line":1,"column":7494},"end":{"line":203,"column":52}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":7494},"end":{"line":203,"column":52}},"loc":{"start":{"line":1,"column":7494},"end":{"line":203,"column":52}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/store/index.ts": {"path":"/home/ncantu/4NK_IA_front/src/store/index.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":49}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":54}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":39}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":49}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":37}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":12}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":20}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":30}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":4}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":62}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":29}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":25}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":5}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":17}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":2}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":60}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":74}}},"s":{"0":0,"1":0,"3":0,"4":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"21":0,"22":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":749},"end":{"line":23,"column":74}},"locations":[{"start":{"line":1,"column":749},"end":{"line":23,"column":74}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":749},"end":{"line":23,"column":74}},"loc":{"start":{"line":1,"column":749},"end":{"line":23,"column":74}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/theme/index.ts": {"path":"/home/ncantu/4NK_IA_front/src/theme/index.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":50}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":12}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":18}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":17}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":25}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":23}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":6}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":14}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":22}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":23}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":22}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":6}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":16}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":23}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":22}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":6}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":12}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":22}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":6}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":14}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":22}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":6}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":11}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":22}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":6}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":14}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":22}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":6}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":4}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":15}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":61}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":9}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":22}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":6}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":9}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":22}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":6}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":4}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":15}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":21}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":23}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":15}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":37}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":10}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":8}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":6}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":16}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":23}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":15}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":37}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":10}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":8}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":6}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":15}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":23}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":15}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":37}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":10}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":8}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":6}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":4}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":2}}},"s":{"0":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":1116},"end":{"line":65,"column":2}},"locations":[{"start":{"line":1,"column":1116},"end":{"line":65,"column":2}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":1116},"end":{"line":65,"column":2}},"loc":{"start":{"line":1,"column":1116},"end":{"line":65,"column":2}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/types/index.ts": {"path":"/home/ncantu/4NK_IA_front/src/types/index.ts","all":true,"statementMap":{},"s":{},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":2050},"end":{"line":99,"column":1}},"locations":[{"start":{"line":1,"column":2050},"end":{"line":99,"column":1}}]}},"b":{"0":[1]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":2050},"end":{"line":99,"column":1}},"loc":{"start":{"line":1,"column":2050},"end":{"line":99,"column":1}},"line":1}},"f":{"0":1}} -,"/home/ncantu/4NK_IA_front/src/views/AnalyseView.tsx": {"path":"/home/ncantu/4NK_IA_front/src/views/AnalyseView.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":8}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":8}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":57}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":84}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":45}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":39}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":35}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":126}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":19}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":32}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":70}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":64}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":68}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":79}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":25}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":12}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":14}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":31}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":16}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":15}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":3}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":16}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":12}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":14}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":92}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":58}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":54}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":14}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":15}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":3}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":24}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":12}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":14}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":34}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":16}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":15}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":3}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":64}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":38}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":38}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":18}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":3}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":43}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":60}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":56}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":34}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":3}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":10}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":12}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":44}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":19}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":69}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":29}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":48}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":23}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":88}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":17}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":35}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":89}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":68}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":30}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":14}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":38}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":19}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":31}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":57}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":33}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":34}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":16}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":16}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":16}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":34}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":16}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":25}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":52}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":68}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":27}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":53}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":22}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":28}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":34}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":72}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":55}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":47}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":35}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":33}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":45}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":33}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":69}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":57}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":59}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":22}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":29}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":28}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":34}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":72}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":55}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":47}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":35}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":33}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":45}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":33}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":69}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":61}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":63}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":22}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":29}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":28}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":34}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":74}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":55}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":47}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":35}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":33}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":47}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":33}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":71}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":63}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":65}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":22}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":29}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":23}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":26}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":17}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":64}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":42}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":18}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":27}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":54}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":29}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":75}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":65}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":58}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":73}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":31}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":22}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":31}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":39}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":63}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":104}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":54}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":18}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":82}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":57}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":44}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":60}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":51}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":71}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":29}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":28}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":19}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":16}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":42}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":18}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":27}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":54}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":29}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":76}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":42}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":29}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":28}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":19}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":16}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":14}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":14}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":23}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":50}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":25}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":18}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":78}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":38}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":32}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":44}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":33}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":59}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":27}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":17}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":19}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":24}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":15}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":12}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":13}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":1}}},"s":{"0":0,"1":0,"15":0,"25":0,"26":0,"27":0,"29":0,"30":0,"31":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"40":0,"41":0,"42":0,"43":0,"45":0,"46":0,"48":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"59":0,"61":0,"62":0,"63":0,"64":0,"66":0,"67":0,"69":0,"71":0,"72":0,"73":0,"74":0,"75":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"87":0,"89":0,"91":0,"92":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"110":0,"111":0,"114":0,"115":0,"116":0,"117":0,"118":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"128":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"145":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"162":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"172":0,"173":0,"174":0,"176":0,"177":0,"180":0,"182":0,"183":0,"184":0,"185":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"212":0,"213":0,"214":0,"215":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"227":0,"228":0,"229":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"247":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":8283},"end":{"line":248,"column":1}},"locations":[{"start":{"line":1,"column":8283},"end":{"line":248,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":8283},"end":{"line":248,"column":1}},"loc":{"start":{"line":1,"column":8283},"end":{"line":248,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/views/ConseilView.tsx": {"path":"/home/ncantu/4NK_IA_front/src/views/ConseilView.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":8}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":8}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":57}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":51}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":45}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":39}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":35}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":69}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":29}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":3}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":19}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":44}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":46}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":5}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":48}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":25}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":12}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":14}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":31}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":16}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":15}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":3}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":16}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":12}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":14}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":71}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":30}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":80}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":14}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":15}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":3}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":23}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":12}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":14}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":34}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":16}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":15}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":3}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":65}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":90}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":20}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":5}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":88}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":22}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":5}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":17}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":3}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":10}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":12}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":44}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":62}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":19}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":69}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":14}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":23}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":50}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":67}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":25}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":18}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":19}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":21}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":35}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":36}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":40}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":16}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":74}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":40}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":27}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":20}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":98}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":78}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":25}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":24}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":15}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":64}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":42}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":18}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":27}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":54}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":73}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":74}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":29}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":28}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":81}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":42}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":36}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":55}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":37}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":63}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":31}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":21}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":23}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":28}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":19}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":16}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":42}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":18}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":27}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":54}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":69}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":67}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":29}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":28}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":61}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":42}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":36}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":62}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":37}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":35}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":38}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":49}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":80}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":96}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":26}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":24}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":31}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":21}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":23}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":28}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":19}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":16}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":14}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":14}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":23}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":50}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":68}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":25}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":18}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":61}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":38}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":32}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":48}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":33}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":31}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":50}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":36}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":20}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":27}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":17}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":19}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":24}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":15}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":14}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":23}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":50}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":25}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":68}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":21}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":35}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":72}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":34}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":15}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":23}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":41}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":23}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":41}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":23}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":18}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":24}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":15}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":52}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":48}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":23}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":73}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":17}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":79}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":29}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":32}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":14}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":17}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":72}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":29}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":32}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":14}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":17}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":74}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":26}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":32}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":14}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":16}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":61}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":23}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":16}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":12}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":13}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":1}}},"s":{"0":0,"1":0,"16":0,"25":0,"26":0,"27":0,"29":0,"30":0,"31":0,"32":0,"33":0,"35":0,"36":0,"37":0,"38":0,"39":0,"41":0,"42":0,"43":0,"44":0,"46":0,"47":0,"49":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"67":0,"68":0,"70":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"82":0,"83":0,"84":0,"85":0,"87":0,"89":0,"91":0,"92":0,"93":0,"94":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"115":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"168":0,"169":0,"170":0,"171":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"191":0,"192":0,"193":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"203":0,"204":0,"206":0,"207":0,"209":0,"210":0,"211":0,"212":0,"215":0,"216":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"238":0,"239":0,"240":0,"241":0,"243":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":7526},"end":{"line":244,"column":1}},"locations":[{"start":{"line":1,"column":7526},"end":{"line":244,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":7526},"end":{"line":244,"column":1}},"loc":{"start":{"line":1,"column":7526},"end":{"line":244,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/views/ContexteView.tsx": {"path":"/home/ncantu/4NK_IA_front/src/views/ContexteView.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":8}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":8}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":57}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":55}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":45}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":40}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":35}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":69}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":29}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":3}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":19}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":44}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":50}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":5}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":48}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":25}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":12}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":14}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":31}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":16}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":15}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":3}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":16}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":12}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":14}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":71}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":30}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":91}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":14}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":15}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":3}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":23}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":12}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":14}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":34}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":16}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":15}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":3}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":47}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":78}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":3}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":68}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":40}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":3}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":10}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":12}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":44}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":19}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":69}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":29}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":48}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":23}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":66}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":17}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":64}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":30}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":66}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":32}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":14}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":17}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":66}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":32}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":68}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":32}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":14}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":17}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":66}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":32}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":68}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":32}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":14}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":17}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":62}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":28}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":64}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":32}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":14}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":17}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":66}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":32}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":68}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":32}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":14}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":16}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":96}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":88}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":23}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":16}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":19}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":56}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":64}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":37}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":71}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":19}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":84}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":68}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":28}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":30}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":16}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":18}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":29}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":28}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":43}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":19}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":76}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":71}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":29}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":20}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":37}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":22}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":29}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":20}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":19}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":56}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":64}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":40}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":70}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":19}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":86}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":70}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":28}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":30}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":16}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":18}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":29}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":28}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":45}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":19}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":76}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":73}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":29}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":20}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":37}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":22}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":29}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":20}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":19}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":56}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":64}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":43}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":70}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":19}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":86}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":70}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":28}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":30}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":16}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":18}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":29}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":28}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":45}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":19}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":76}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":73}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":29}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":20}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":37}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":22}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":29}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":20}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":19}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":56}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":64}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":39}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":66}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":19}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":82}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":66}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":28}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":30}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":16}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":18}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":29}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":28}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":41}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":19}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":76}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":69}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":29}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":20}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":37}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":22}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":29}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":20}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":19}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":56}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":64}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":41}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":70}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":19}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":86}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":70}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":28}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":30}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":16}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":18}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":29}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":28}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":45}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":19}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":76}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":73}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":29}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":20}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":37}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":22}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":29}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":20}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":14}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":23}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":50}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":25}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":50}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":21}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":35}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":76}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":34}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":15}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":23}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":41}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":23}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":18}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":24}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":15}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":12}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":13}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":1}}},"s":{"0":0,"1":0,"15":0,"26":0,"27":0,"28":0,"30":0,"31":0,"32":0,"33":0,"34":0,"36":0,"37":0,"38":0,"39":0,"40":0,"42":0,"43":0,"44":0,"45":0,"47":0,"48":0,"50":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"61":0,"63":0,"64":0,"65":0,"66":0,"68":0,"69":0,"71":0,"73":0,"74":0,"75":0,"77":0,"78":0,"79":0,"81":0,"82":0,"83":0,"85":0,"87":0,"89":0,"90":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"152":0,"154":0,"156":0,"157":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"181":0,"183":0,"185":0,"186":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"210":0,"212":0,"214":0,"215":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"239":0,"241":0,"243":0,"244":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"268":0,"270":0,"272":0,"273":0,"276":0,"277":0,"278":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"288":0,"289":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"298":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":9799},"end":{"line":299,"column":1}},"locations":[{"start":{"line":1,"column":9799},"end":{"line":299,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":9799},"end":{"line":299,"column":1}},"loc":{"start":{"line":1,"column":9799},"end":{"line":299,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/views/ExtractionView.tsx": {"path":"/home/ncantu/4NK_IA_front/src/views/ExtractionView.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":8}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":8}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":57}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":76}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":45}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":42}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":35}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":139}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":19}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":32}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":53}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":62}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":49}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":112}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":34}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":74}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":38}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":32}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":20}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":37}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":3}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":25}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":12}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":14}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":31}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":16}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":15}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":3}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":16}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":12}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":14}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":101}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":40}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":57}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":14}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":15}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":3}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":116}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":22}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":12}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":14}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":34}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":16}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":15}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":3}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":10}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":12}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":44}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":19}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":32}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":75}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":112}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":19}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":38}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":51}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":23}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":112}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":19}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":31}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":78}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":46}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":25}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":14}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":69}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":29}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":48}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":23}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":66}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":17}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":33}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":58}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":29}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":32}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":14}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":17}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":36}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":60}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":31}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":32}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":14}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":20}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":19}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":21}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":93}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":62}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":108}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":19}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":35}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":82}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":77}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":34}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":16}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":22}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":16}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":78}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":75}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":39}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":62}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":78}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":142}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":22}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":20}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":39}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":62}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":78}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":139}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":22}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":20}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":18}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":31}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":32}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":82}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":27}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":23}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":125}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":31}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":66}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":124}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":60}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":26}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":30}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":90}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":63}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":23}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":26}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":56}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":50}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":87}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":24}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":26}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":17}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":58}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":26}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":30}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":84}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":65}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":23}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":29}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":111}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":36}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":37}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":50}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":74}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":24}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":26}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":17}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":27}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":19}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":18}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":16}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":64}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":42}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":18}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":27}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":54}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":68}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":68}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":29}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":28}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":77}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":42}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":35}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":33}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":52}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":74}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":50}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":72}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":35}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":48}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":91}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":51}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":41}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":52}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":93}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":63}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":43}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":54}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":93}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":67}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":43}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":91}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":82}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":41}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":32}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":24}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":31}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":21}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":23}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":28}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":19}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":16}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":42}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":18}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":27}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":54}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":72}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":66}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":29}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":28}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":75}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":42}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":35}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":70}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":78}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":24}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":31}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":21}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":23}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":28}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":19}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":16}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":14}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":64}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":42}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":18}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":27}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":54}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":66}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":64}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":29}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":28}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":77}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":42}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":35}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":79}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":72}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":35}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":48}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":91}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":55}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":41}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":50}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":93}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":62}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":43}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":61}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":93}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":71}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":43}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":32}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":24}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":31}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":21}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":23}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":28}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":19}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":16}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":42}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":18}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":27}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":54}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":73}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":66}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":29}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":28}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":76}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":42}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":35}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":122}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":72}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":35}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":48}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":91}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":64}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":41}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":47}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":93}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":53}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":43}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":91}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":64}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":41}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":32}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":24}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":31}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":21}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":23}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":28}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":19}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":16}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":14}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":14}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":23}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":50}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":75}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":25}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":24}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":87}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":59}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":29}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":103}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":24}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":40}},"368":{"start":{"line":369,"column":0},"end":{"line":369,"column":52}},"369":{"start":{"line":370,"column":0},"end":{"line":370,"column":29}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":17}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":19}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":24}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":15}},"377":{"start":{"line":378,"column":0},"end":{"line":378,"column":14}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":23}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":50}},"381":{"start":{"line":382,"column":0},"end":{"line":382,"column":25}},"382":{"start":{"line":383,"column":0},"end":{"line":383,"column":18}},"383":{"start":{"line":384,"column":0},"end":{"line":384,"column":19}},"384":{"start":{"line":385,"column":0},"end":{"line":385,"column":21}},"385":{"start":{"line":386,"column":0},"end":{"line":386,"column":35}},"386":{"start":{"line":387,"column":0},"end":{"line":387,"column":31}},"387":{"start":{"line":388,"column":0},"end":{"line":388,"column":33}},"388":{"start":{"line":389,"column":0},"end":{"line":389,"column":16}},"390":{"start":{"line":391,"column":0},"end":{"line":391,"column":74}},"391":{"start":{"line":392,"column":0},"end":{"line":392,"column":35}},"392":{"start":{"line":393,"column":0},"end":{"line":393,"column":27}},"393":{"start":{"line":394,"column":0},"end":{"line":394,"column":20}},"394":{"start":{"line":395,"column":0},"end":{"line":395,"column":24}},"395":{"start":{"line":396,"column":0},"end":{"line":396,"column":15}},"396":{"start":{"line":397,"column":0},"end":{"line":397,"column":12}},"397":{"start":{"line":398,"column":0},"end":{"line":398,"column":13}},"399":{"start":{"line":400,"column":0},"end":{"line":400,"column":1}}},"s":{"0":0,"1":0,"16":0,"24":0,"25":0,"26":0,"28":0,"29":0,"30":0,"32":0,"33":0,"34":0,"35":0,"36":0,"38":0,"39":0,"40":0,"42":0,"43":0,"44":0,"45":0,"47":0,"49":0,"50":0,"51":0,"52":0,"54":0,"55":0,"57":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"68":0,"70":0,"72":0,"73":0,"74":0,"75":0,"77":0,"78":0,"80":0,"82":0,"83":0,"84":0,"86":0,"89":0,"90":0,"91":0,"93":0,"94":0,"95":0,"96":0,"97":0,"99":0,"100":0,"101":0,"102":0,"103":0,"105":0,"108":0,"110":0,"111":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"161":0,"162":0,"163":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"200":0,"201":0,"202":0,"203":0,"205":0,"207":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"236":0,"237":0,"238":0,"239":0,"241":0,"242":0,"243":0,"244":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"277":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"302":0,"303":0,"304":0,"305":0,"307":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"341":0,"342":0,"343":0,"344":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"371":0,"372":0,"373":0,"374":0,"377":0,"378":0,"379":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"399":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":15477},"end":{"line":400,"column":1}},"locations":[{"start":{"line":1,"column":15477},"end":{"line":400,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":15477},"end":{"line":400,"column":1}},"loc":{"start":{"line":1,"column":15477},"end":{"line":400,"column":1}},"line":1}},"f":{"0":0}} -,"/home/ncantu/4NK_IA_front/src/views/UploadView.tsx": {"path":"/home/ncantu/4NK_IA_front/src/views/UploadView.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":56}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":44}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":99}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":8}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":57}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":105}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":45}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":55}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":95}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":38}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":35}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":102}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":79}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":57}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":29}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":32}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":39}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":38}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":19}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":32}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":42}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":80}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":47}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":13}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":12}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":26}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":8}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":6}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":30}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":3}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":69}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":11}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":13}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":34}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":52}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":29}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":31}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":91}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":6}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":19}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":4}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":45}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":21}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":23}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":46}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":19}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":38}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":24}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":45}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":14}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":48}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":5}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":3}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":46}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":21}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":23}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":24}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":19}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":22}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":24}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":24}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":14}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":24}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":5}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":3}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":19}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":52}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":30}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":70}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":11}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":50}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":83}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":62}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":89}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":42}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":77}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":31}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":16}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":9}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":38}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":48}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":15}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":75}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":58}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":23}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":58}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":42}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":58}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":36}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":70}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":42}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":36}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":39}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":36}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":27}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":15}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":36}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":108}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":13}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":27}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":95}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":11}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":9}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":33}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":86}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":41}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":50}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":76}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":36}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":42}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":90}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":47}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":13}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":12}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":16}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":73}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":9}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":29}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":23}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":93}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":29}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":7}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":5}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":10}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":46}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":10}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":12}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":44}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":19}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":12}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":27}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":13}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":15}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":30}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":28}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":31}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":66}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":70}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":22}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":40}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":36}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":12}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":10}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":38}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":75}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":46}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":23}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":43}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":75}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":21}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":59}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":21}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":14}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":17}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":47}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":17}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":16}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":32}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":28}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":48}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":53}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":23}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":38}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":44}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":72}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":37}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":96}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":68}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":49}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":61}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":34}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":35}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":26}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":48}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":29}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":36}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":50}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":63}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":61}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":23}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":31}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":29}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":36}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":37}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":72}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":23}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":31}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":26}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":24}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":82}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":25}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":64}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":34}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":40}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":22}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":25}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":40}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":34}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":103}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":22}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":25}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":73}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":34}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":40}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":22}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":46}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":100}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":48}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":72}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":88}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":140}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":32}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":30}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":48}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":72}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":88}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":137}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":32}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":30}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":28}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":24}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":24}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":21}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":15}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":17}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":14}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":27}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":20}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":36}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":50}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":10}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":13}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":1}}},"s":{"0":0,"1":0,"2":0,"3":0,"10":0,"11":0,"12":0,"13":0,"14":0,"17":0,"18":0,"19":0,"20":0,"21":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"79":0,"80":0,"82":0,"83":0,"85":0,"87":0,"88":0,"91":0,"92":0,"94":0,"95":0,"96":0,"97":0,"98":0,"100":0,"103":0,"104":0,"105":0,"106":0,"108":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"130":0,"131":0,"134":0,"137":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"158":0,"159":0,"161":0,"162":0,"163":0,"165":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"191":0,"192":0,"194":0,"195":0,"196":0,"197":0,"200":0,"201":0,"202":0,"203":0,"204":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"232":0,"233":0,"234":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"277":0,"278":0,"279":0,"280":0,"281":0,"283":0,"285":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":10358},"end":{"line":286,"column":1}},"locations":[{"start":{"line":1,"column":10358},"end":{"line":286,"column":1}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":10358},"end":{"line":286,"column":1}},"loc":{"start":{"line":1,"column":10358},"end":{"line":286,"column":1}},"line":1}},"f":{"0":0}} -} diff --git a/coverage/favicon.png b/coverage/favicon.png deleted file mode 100644 index c1525b8..0000000 Binary files a/coverage/favicon.png and /dev/null differ diff --git a/coverage/index.html b/coverage/index.html deleted file mode 100644 index eca9af4..0000000 --- a/coverage/index.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - Code coverage report for All files - - - - - - - - - -
-
-

All files

-
- -
- 2.4% - Statements - 64/2660 -
- - -
- 43.58% - Branches - 17/39 -
- - -
- 28% - Functions - 7/25 -
- - -
- 2.4% - Lines - 64/2660 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
scripts -
-
0%0/760%0/20%0/20%0/76
src -
-
0%0/240%0/20%0/20%0/24
src/components -
-
0%0/3130%0/30%0/30%0/313
src/router -
-
0%0/230%0/10%0/10%0/23
src/services -
-
7.87%64/81376.19%16/2185.71%6/77.87%64/813
src/store -
-
0%0/1950%0/30%0/30%0/195
src/theme -
-
0%0/640%0/10%0/10%0/64
src/types -
-
0%0/00%1/10%1/10%0/0
src/views -
-
0%0/11520%0/50%0/50%0/1152
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/prettify.css b/coverage/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/coverage/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/prettify.js b/coverage/prettify.js deleted file mode 100644 index b322523..0000000 --- a/coverage/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/scripts/check-node.mjs.html b/coverage/scripts/check-node.mjs.html deleted file mode 100644 index 295fca1..0000000 --- a/coverage/scripts/check-node.mjs.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - Code coverage report for scripts/check-node.mjs - - - - - - - - - -
-
-

All files / scripts check-node.mjs

-
- -
- 0% - Statements - 0/19 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/19 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
#!/usr/bin/env node
- 
-const semver = (v) => v.split('.').map((n) => parseInt(n, 10));
- 
-const compare = (a, b) => {
-  for (let i = 0; i < Math.max(a.length, b.length); i += 1) {
-    const ai = a[i] || 0;
-    const bi = b[i] || 0;
-    if (ai > bi) return 1;
-    if (ai < bi) return -1;
-  }
-  return 0;
-};
- 
-const current = semver(process.versions.node);
-const min = semver('20.19.0');
- 
-if (compare(current, min) < 0) {
-  console.error(`❌ Version de Node trop ancienne: ${process.versions.node}. Requise: >= 20.19.0`);
-  console.error('âžĄïž  Utilisez nvm: nvm use 20 (ou installez: nvm install 20)');
-  process.exit(1);
-}
- 
-console.log(`✅ Node ${process.versions.node} OK (>= 20.19.0)`);
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/scripts/index.html b/coverage/scripts/index.html deleted file mode 100644 index 4b7e5c4..0000000 --- a/coverage/scripts/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Code coverage report for scripts - - - - - - - - - -
-
-

All files scripts

-
- -
- 0% - Statements - 0/76 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/76 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
check-node.mjs -
-
0%0/190%0/10%0/10%0/19
simple-server.js -
-
0%0/570%0/10%0/10%0/57
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/scripts/simple-server.js.html b/coverage/scripts/simple-server.js.html deleted file mode 100644 index 48c10cb..0000000 --- a/coverage/scripts/simple-server.js.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - Code coverage report for scripts/simple-server.js - - - - - - - - - -
-
-

All files / scripts simple-server.js

-
- -
- 0% - Statements - 0/57 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/57 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
#!/usr/bin/env node
- 
-import http from 'http';
-import fs from 'fs';
-import path from 'path';
-import { fileURLToPath } from 'url';
- 
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = path.dirname(__filename);
- 
-const PORT = 5173;
-const HOST = '0.0.0.0';
- 
-// Types MIME
-const mimeTypes = {
-    '.html': 'text/html',
-    '.js': 'text/javascript',
-    '.css': 'text/css',
-    '.json': 'application/json',
-    '.png': 'image/png',
-    '.jpg': 'image/jpg',
-    '.gif': 'image/gif',
-    '.svg': 'image/svg+xml',
-    '.ico': 'image/x-icon'
-};
- 
-const server = http.createServer((req, res) => {
-    console.log(`${new Date().toISOString()} - ${req.method} ${req.url}`);
- 
-    let filePath = '.' + req.url;
-    if (filePath === './') {
-        filePath = './index.html';
-    }
- 
-    const extname = String(path.extname(filePath)).toLowerCase();
-    const mimeType = mimeTypes[extname] || 'application/octet-stream';
- 
-    fs.readFile(filePath, (error, content) => {
-        if (error) {
-            if (error.code === 'ENOENT') {
-                // Fichier non trouvé, servir index.html pour SPA
-                fs.readFile('./index.html', (error, content) => {
-                    if (error) {
-                        res.writeHead(404);
-                        res.end('File not found');
-                    } else {
-                        res.writeHead(200, { 'Content-Type': 'text/html' });
-                        res.end(content, 'utf-8');
-                    }
-                });
-            } else {
-                res.writeHead(500);
-                res.end('Server error: ' + error.code);
-            }
-        } else {
-            res.writeHead(200, { 'Content-Type': mimeType });
-            res.end(content, 'utf-8');
-        }
-    });
-});
- 
-server.listen(PORT, HOST, () => {
-    console.log(`🚀 Serveur 4NK_IA_front dĂ©marrĂ© sur http://${HOST}:${PORT}`);
-    console.log(`📁 Servant les fichiers depuis: ${process.cwd()}`);
-    console.log(`💡 Appuyez sur Ctrl+C pour arrĂȘter`);
-});
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/sort-arrow-sprite.png b/coverage/sort-arrow-sprite.png deleted file mode 100644 index 6ed6831..0000000 Binary files a/coverage/sort-arrow-sprite.png and /dev/null differ diff --git a/coverage/sorter.js b/coverage/sorter.js deleted file mode 100644 index 4ed70ae..0000000 --- a/coverage/sorter.js +++ /dev/null @@ -1,210 +0,0 @@ -/* eslint-disable */ -var addSorting = (function() { - 'use strict'; - var cols, - currentSort = { - index: 0, - desc: false - }; - - // returns the summary table element - function getTable() { - return document.querySelector('.coverage-summary'); - } - // returns the thead element of the summary table - function getTableHeader() { - return getTable().querySelector('thead tr'); - } - // returns the tbody element of the summary table - function getTableBody() { - return getTable().querySelector('tbody'); - } - // returns the th element for nth column - function getNthColumn(n) { - return getTableHeader().querySelectorAll('th')[n]; - } - - function onFilterInput() { - const searchValue = document.getElementById('fileSearch').value; - const rows = document.getElementsByTagName('tbody')[0].children; - - // Try to create a RegExp from the searchValue. If it fails (invalid regex), - // it will be treated as a plain text search - let searchRegex; - try { - searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive - } catch (error) { - searchRegex = null; - } - - for (let i = 0; i < rows.length; i++) { - const row = rows[i]; - let isMatch = false; - - if (searchRegex) { - // If a valid regex was created, use it for matching - isMatch = searchRegex.test(row.textContent); - } else { - // Otherwise, fall back to the original plain text search - isMatch = row.textContent - .toLowerCase() - .includes(searchValue.toLowerCase()); - } - - row.style.display = isMatch ? '' : 'none'; - } - } - - // loads the search box - function addSearchBox() { - var template = document.getElementById('filterTemplate'); - var templateClone = template.content.cloneNode(true); - templateClone.getElementById('fileSearch').oninput = onFilterInput; - template.parentElement.appendChild(templateClone); - } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll('th'), - colNode, - cols = [], - col, - i; - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i]; - col = { - key: colNode.getAttribute('data-col'), - sortable: !colNode.getAttribute('data-nosort'), - type: colNode.getAttribute('data-type') || 'string' - }; - cols.push(col); - if (col.sortable) { - col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = - colNode.innerHTML + ''; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/coverage/src/App.tsx.html b/coverage/src/App.tsx.html deleted file mode 100644 index 8483e21..0000000 --- a/coverage/src/App.tsx.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - Code coverage report for src/App.tsx - - - - - - - - - -
-
-

All files / src App.tsx

-
- -
- 0% - Statements - 0/5 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7  -  -  -  -  -  - 
import './App.css'
-import { AppRouter } from './router'
- 
-export default function App() {
-  return <AppRouter />
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/components/FilePreview.tsx.html b/coverage/src/components/FilePreview.tsx.html deleted file mode 100644 index 605b5ff..0000000 --- a/coverage/src/components/FilePreview.tsx.html +++ /dev/null @@ -1,991 +0,0 @@ - - - - - - Code coverage report for src/components/FilePreview.tsx - - - - - - - - - -
-
-

All files / src/components FilePreview.tsx

-
- -
- 0% - Statements - 0/237 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/237 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import React, { useState, useEffect } from 'react'
-import {
-  Box,
-  Typography,
-  IconButton,
-  Button,
-  Dialog,
-  DialogTitle,
-  DialogContent,
-  DialogActions,
-  CircularProgress,
-  Alert,
-} from '@mui/material'
-import {
-  PictureAsPdf,
-  Download,
-  Close,
-  ZoomIn,
-  ZoomOut,
-  NavigateBefore,
-  NavigateNext,
-} from '@mui/icons-material'
-import type { Document } from '../types'
- 
-interface FilePreviewProps {
-  document: Document
-  onClose: () => void
-}
- 
-export const FilePreview: React.FC<FilePreviewProps> = ({ document, onClose }) => {
-  const [loading, setLoading] = useState(true)
-  const [error, setError] = useState<string | null>(null)
-  const [page, setPage] = useState(1)
-  const [scale, setScale] = useState(1.0)
-  const [numPages, setNumPages] = useState(0)
- 
-  useEffect(() => {
-    setLoading(true)
-    setError(null)
-    setPage(1)
-    setScale(1.0)
- 
-    // Simuler le chargement du PDF
-    const timer = setTimeout(() => {
-      setNumPages(3) // Simuler 3 pages
-      setLoading(false)
-    }, 1000)
- 
-    return () => clearTimeout(timer)
-  }, [document])
- 
-  const handleDownload = () => {
-    if (document.previewUrl) {
-      const link = window.document.createElement('a')
-      link.href = document.previewUrl
-      link.download = document.name
-      link.click()
-    }
-  }
- 
-  const isPDF = document.mimeType.includes('pdf') || document.name.toLowerCase().endsWith('.pdf')
-  const isImage =
-    document.mimeType.startsWith('image/') ||
-    ['.png', '.jpg', '.jpeg', '.gif', '.webp'].some((ext) => document.name.toLowerCase().endsWith(ext))
- 
-  if (!isPDF && isImage) {
-    return (
-      <Dialog open onClose={onClose} maxWidth="lg" fullWidth>
-        <DialogTitle>
-          <Box display="flex" justifyContent="space-between" alignItems="center">
-            <Typography variant="h6">{document.name}</Typography>
-            <IconButton onClick={onClose} title="Fermer">
-              <Close />
-            </IconButton>
-          </Box>
-        </DialogTitle>
-        <DialogContent dividers>
-          <Box display="flex" justifyContent="space-between" alignItems="center" mb={2}>
-            <Box />
-            <Box display="flex" alignItems="center" gap={1}>
-              <Button
-                variant="outlined"
-                size="small"
-                startIcon={<ZoomOut />}
-                onClick={() => setScale((prev) => Math.max(prev - 0.2, 0.2))}
-              >
-                Zoom -
-              </Button>
-              <Typography variant="body2">{Math.round(scale * 100)}%</Typography>
-              <Button
-                variant="outlined"
-                size="small"
-                startIcon={<ZoomIn />}
-                onClick={() => setScale((prev) => Math.min(prev + 0.2, 4))}
-              >
-                Zoom +
-              </Button>
-            </Box>
-          </Box>
-          <Box
-            sx={{
-              border: '1px solid',
-              borderColor: 'grey.300',
-              borderRadius: 1,
-              overflow: 'auto',
-              maxHeight: '70vh',
-              display: 'flex',
-              justifyContent: 'center',
-              alignItems: 'center',
-              backgroundColor: 'grey.50',
-            }}
-          >
-            {document.previewUrl ? (
-              <img
-                src={document.previewUrl}
-                alt={document.name}
-                style={{
-                  maxWidth: `${100 * scale}%`,
-                  maxHeight: `${100 * scale}%`,
-                  objectFit: 'contain',
-                }}
-                onLoad={() => setLoading(false)}
-                onError={() => {
-                  setError('Erreur de chargement de l\'image')
-                  setLoading(false)
-                }}
-              />
-            ) : (
-              <Box textAlign="center" p={4}>
-                <Typography variant="h6" gutterBottom>
-                  Aperçu image
-                </Typography>
-                <Typography variant="body2" color="text.secondary">
-                  Le fichier a été uploadé avec succÚs.
-                </Typography>
-                <Typography variant="body2" color="text.secondary">
-                  Taille: {(document.size / 1024 / 1024).toFixed(2)} MB
-                </Typography>
-              </Box>
-            )}
-          </Box>
-        </DialogContent>
-        <DialogActions>
-          <Button onClick={onClose}>Fermer</Button>
-          <Button variant="contained" startIcon={<Download />} onClick={handleDownload} disabled={!document.previewUrl}>
-            Télécharger
-          </Button>
-        </DialogActions>
-      </Dialog>
-    )
-  }
- 
-  return (
-    <Dialog open onClose={onClose} maxWidth="lg" fullWidth>
-      <DialogTitle>
-        <Box display="flex" justifyContent="space-between" alignItems="center">
-          <Box display="flex" alignItems="center" gap={1}>
-            <PictureAsPdf color="error" />
-            <Typography variant="h6">{document.name}</Typography>
-          </Box>
-          <IconButton onClick={onClose} title="Fermer">
-            <Close />
-          </IconButton>
-        </Box>
-      </DialogTitle>
- 
-      <DialogContent dividers>
-        {loading && (
-          <Box display="flex" justifyContent="center" alignItems="center" minHeight="400px">
-            <CircularProgress />
-            <Typography variant="body2" sx={{ ml: 2 }}>
-              Chargement du PDF...
-            </Typography>
-          </Box>
-        )}
- 
-        {error && (
-          <Alert severity="error" sx={{ mb: 2 }}>
-            {error}
-          </Alert>
-        )}
- 
-        {!loading && !error && (
-          <Box>
-            {/* ContrĂŽles de navigation */}
-            <Box display="flex" justifyContent="space-between" alignItems="center" mb={2}>
-              <Box display="flex" alignItems="center" gap={1}>
-                <Button
-                  variant="outlined"
-                  size="small"
-                  startIcon={<NavigateBefore />}
-                  onClick={() => setPage(prev => Math.max(prev - 1, 1))}
-                  disabled={page <= 1}
-                >
-                  Précédent
-                </Button>
-                <Typography variant="body2">
-                  Page {page} sur {numPages}
-                </Typography>
-                <Button
-                  variant="outlined"
-                  size="small"
-                  endIcon={<NavigateNext />}
-                  onClick={() => setPage(prev => Math.min(prev + 1, numPages))}
-                  disabled={page >= numPages}
-                >
-                  Suivant
-                </Button>
-              </Box>
- 
-              <Box display="flex" alignItems="center" gap={1}>
-                <Button
-                  variant="outlined"
-                  size="small"
-                  startIcon={<ZoomOut />}
-                  onClick={() => setScale(prev => Math.max(prev - 0.2, 0.5))}
-                >
-                  Zoom -
-                </Button>
-                <Typography variant="body2">
-                  {Math.round(scale * 100)}%
-                </Typography>
-                <Button
-                  variant="outlined"
-                  size="small"
-                  startIcon={<ZoomIn />}
-                  onClick={() => setScale(prev => Math.min(prev + 0.2, 2.0))}
-                >
-                  Zoom +
-                </Button>
-              </Box>
-            </Box>
- 
-            {/* Aperçu PDF avec viewer intégré */}
-            <Box sx={{
-              border: '1px solid',
-              borderColor: 'grey.300',
-              borderRadius: 1,
-              overflow: 'hidden',
-              maxHeight: '70vh',
-              display: 'flex',
-              justifyContent: 'center',
-              backgroundColor: 'grey.50'
-            }}>
-              {document.previewUrl ? (
-                <Box sx={{ width: '100%', height: '600px' }}>
-                  {/* Utiliser un viewer PDF intégré */}
-                  <iframe
-                    src={`${document.previewUrl}#toolbar=1&navpanes=1&scrollbar=1&page=1&view=FitH`}
-                    width="100%"
-                    height="100%"
-                    style={{
-                      border: 'none',
-                      transform: `scale(${scale})`,
-                      transformOrigin: 'top left',
-                      width: `${100 / scale}%`,
-                      height: `${600 / scale}px`
-                    }}
-                    title={`Aperçu de ${document.name}`}
-                    onLoad={() => setLoading(false)}
-                    onError={() => {
-                      setError('Erreur de chargement du PDF')
-                      setLoading(false)
-                    }}
-                  />
-                </Box>
-              ) : (
-                <Box display="flex" justifyContent="center" alignItems="center" minHeight="400px">
-                  <Box textAlign="center">
-                    <PictureAsPdf sx={{ fontSize: 64, color: 'error.main', mb: 2 }} />
-                    <Typography variant="h6" gutterBottom>
-                      Aperçu PDF
-                    </Typography>
-                    <Typography variant="body2" color="text.secondary">
-                      Le fichier PDF "{document.name}" a été uploadé avec succÚs.
-                    </Typography>
-                    <Typography variant="body2" color="text.secondary">
-                      Taille: {(document.size / 1024 / 1024).toFixed(2)} MB
-                    </Typography>
-                  </Box>
-                </Box>
-              )}
-            </Box>
-          </Box>
-        )}
-      </DialogContent>
- 
-      <DialogActions>
-        <Button onClick={onClose}>
-          Fermer
-        </Button>
-        <Button
-          variant="contained"
-          startIcon={<Download />}
-          onClick={handleDownload}
-          disabled={!document.previewUrl}
-        >
-          Télécharger
-        </Button>
-      </DialogActions>
-    </Dialog>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/components/Layout.tsx.html b/coverage/src/components/Layout.tsx.html deleted file mode 100644 index 0b1d802..0000000 --- a/coverage/src/components/Layout.tsx.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - Code coverage report for src/components/Layout.tsx - - - - - - - - - -
-
-

All files / src/components Layout.tsx

-
- -
- 0% - Statements - 0/46 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/46 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import React, { useEffect } from 'react'
-import { AppBar, Toolbar, Typography, Container, Box, LinearProgress } from '@mui/material'
-import { useNavigate, useLocation } from 'react-router-dom'
-import { NavigationTabs } from './NavigationTabs'
-import { useAppDispatch, useAppSelector } from '../store'
-import { extractDocument, analyzeDocument, getContextData, getConseil } from '../store/documentSlice'
- 
-interface LayoutProps {
-  children: React.ReactNode
-}
- 
-export const Layout: React.FC<LayoutProps> = ({ children }) => {
-  const navigate = useNavigate()
-  const location = useLocation()
-  const dispatch = useAppDispatch()
-  const { documents, extractionById, loading, currentDocument, contextResult, conseilResult, analysisResult } = useAppSelector((s) => s.document)
- 
-  // Au chargement/nav: lancer OCR+classification pour tous les documents sans résultat
-  useEffect(() => {
-    documents.forEach((doc) => {
-      if (!extractionById[doc.id]) dispatch(extractDocument(doc.id))
-    })
-  }, [documents, extractionById, dispatch])
- 
-  // Déclencher contexte et conseil globaux une fois qu'un document courant existe
-  useEffect(() => {
-    if (currentDocument) {
-      if (!analysisResult) dispatch(analyzeDocument(currentDocument.id))
-      if (!contextResult) dispatch(getContextData(currentDocument.id))
-      if (!conseilResult) dispatch(getConseil(currentDocument.id))
-    }
-  }, [currentDocument, analysisResult, contextResult, conseilResult, dispatch])
- 
-  return (
-    <Box sx={{ flexGrow: 1 }}>
-      <AppBar position="static">
-        <Toolbar>
-          <Typography
-            variant="h6"
-            component="div"
-            sx={{ flexGrow: 1, cursor: 'pointer' }}
-            onClick={() => navigate('/')}
-          >
-            4NK IA - Lecoffre.io
-          </Typography>
-        </Toolbar>
-      </AppBar>
- 
-      <NavigationTabs currentPath={location.pathname} />
- 
-      {loading && (
-        <Box sx={{ px: 2, pt: 1 }}>
-          <LinearProgress />
-        </Box>
-      )}
- 
-      <Container maxWidth="xl" sx={{ mt: 3, mb: 3 }}>
-        {children}
-      </Container>
-    </Box>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/components/NavigationTabs.tsx.html b/coverage/src/components/NavigationTabs.tsx.html deleted file mode 100644 index 3760357..0000000 --- a/coverage/src/components/NavigationTabs.tsx.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - Code coverage report for src/components/NavigationTabs.tsx - - - - - - - - - -
-
-

All files / src/components NavigationTabs.tsx

-
- -
- 0% - Statements - 0/30 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/30 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import React from 'react'
-import { Tabs, Tab, Box } from '@mui/material'
-import { useNavigate } from 'react-router-dom'
- 
-interface NavigationTabsProps {
-  currentPath: string
-}
- 
-export const NavigationTabs: React.FC<NavigationTabsProps> = ({ currentPath }) => {
-  const navigate = useNavigate()
- 
-  const tabs = [
-    { label: 'Téléversement', path: '/' },
-    { label: 'Extraction', path: '/extraction' },
-    { label: 'Analyse', path: '/analyse' },
-    { label: 'Contexte', path: '/contexte' },
-    { label: 'Conseil', path: '/conseil' },
-  ]
- 
-  const currentTabIndex = tabs.findIndex(tab => tab.path === currentPath)
- 
-  const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {
-    navigate(tabs[newValue].path)
-  }
- 
-  return (
-    <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
-      <Tabs
-        value={currentTabIndex >= 0 ? currentTabIndex : 0}
-        onChange={handleTabChange}
-        aria-label="navigation tabs"
-        variant="scrollable"
-        scrollButtons="auto"
-      >
-        {tabs.map((tab, index) => (
-          <Tab key={index} label={tab.label} />
-        ))}
-      </Tabs>
-    </Box>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/components/index.html b/coverage/src/components/index.html deleted file mode 100644 index a1dcf0e..0000000 --- a/coverage/src/components/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Code coverage report for src/components - - - - - - - - - -
-
-

All files src/components

-
- -
- 0% - Statements - 0/313 -
- - -
- 0% - Branches - 0/3 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/313 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
FilePreview.tsx -
-
0%0/2370%0/10%0/10%0/237
Layout.tsx -
-
0%0/460%0/10%0/10%0/46
NavigationTabs.tsx -
-
0%0/300%0/10%0/10%0/30
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/index.html b/coverage/src/index.html deleted file mode 100644 index a4e06d0..0000000 --- a/coverage/src/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Code coverage report for src - - - - - - - - - -
-
-

All files src

-
- -
- 0% - Statements - 0/24 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/24 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
App.tsx -
-
0%0/50%0/10%0/10%0/5
main.tsx -
-
0%0/190%0/10%0/10%0/19
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/main.tsx.html b/coverage/src/main.tsx.html deleted file mode 100644 index 3bfef14..0000000 --- a/coverage/src/main.tsx.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - Code coverage report for src/main.tsx - - - - - - - - - -
-
-

All files / src main.tsx

-
- -
- 0% - Statements - 0/19 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/19 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { StrictMode } from 'react'
-import { createRoot } from 'react-dom/client'
-import { Provider } from 'react-redux'
-import { ThemeProvider } from '@mui/material/styles'
-import { CssBaseline } from '@mui/material'
-import './index.css'
-import App from './App.tsx'
-import { store } from './store'
-import { theme } from './theme'
- 
-createRoot(document.getElementById('root')!).render(
-  <StrictMode>
-    <Provider store={store}>
-      <ThemeProvider theme={theme}>
-        <CssBaseline />
-        <App />
-      </ThemeProvider>
-    </Provider>
-  </StrictMode>,
-)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/router/index.html b/coverage/src/router/index.html deleted file mode 100644 index 544b769..0000000 --- a/coverage/src/router/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for src/router - - - - - - - - - -
-
-

All files src/router

-
- -
- 0% - Statements - 0/23 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/23 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.tsx -
-
0%0/230%0/10%0/10%0/23
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/router/index.tsx.html b/coverage/src/router/index.tsx.html deleted file mode 100644 index 803efb1..0000000 --- a/coverage/src/router/index.tsx.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - Code coverage report for src/router/index.tsx - - - - - - - - - -
-
-

All files / src/router index.tsx

-
- -
- 0% - Statements - 0/23 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/23 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { lazy, Suspense } from 'react'
-import { createBrowserRouter, RouterProvider } from 'react-router-dom'
-import { Box, CircularProgress, Typography } from '@mui/material'
- 
-const UploadView = lazy(() => import('../views/UploadView'))
-const ExtractionView = lazy(() => import('../views/ExtractionView'))
-const AnalyseView = lazy(() => import('../views/AnalyseView'))
-const ContexteView = lazy(() => import('../views/ContexteView'))
-const ConseilView = lazy(() => import('../views/ConseilView'))
- 
-const LoadingFallback = () => (
-  <Box sx={{ display: 'flex', justifyContent: 'center', alignItems: 'center', minHeight: '50vh' }}>
-    <CircularProgress />
-    <Typography sx={{ ml: 2 }}>Chargement...</Typography>
-  </Box>
-)
- 
-const router = createBrowserRouter([
-  { path: '/', element: <Suspense fallback={<LoadingFallback />}><UploadView /></Suspense> },
-  { path: '/extraction', element: <Suspense fallback={<LoadingFallback />}><ExtractionView /></Suspense> },
-  { path: '/analyse', element: <Suspense fallback={<LoadingFallback />}><AnalyseView /></Suspense> },
-  { path: '/contexte', element: <Suspense fallback={<LoadingFallback />}><ContexteView /></Suspense> },
-  { path: '/conseil', element: <Suspense fallback={<LoadingFallback />}><ConseilView /></Suspense> },
-])
- 
-export const AppRouter = () => {
-  return <RouterProvider router={router} />
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/services/api.ts.html b/coverage/src/services/api.ts.html deleted file mode 100644 index 0d7e653..0000000 --- a/coverage/src/services/api.ts.html +++ /dev/null @@ -1,628 +0,0 @@ - - - - - - Code coverage report for src/services/api.ts - - - - - - - - - -
-
-

All files / src/services api.ts

-
- -
- 0% - Statements - 0/141 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/141 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import axios from 'axios'
-import { openaiDocumentApi, openaiExternalApi } from './openai'
-import type { Document, ExtractionResult, AnalysisResult, ContextResult, ConseilResult } from '../types'
- 
-const BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:8000'
-const USE_OPENAI = import.meta.env.VITE_USE_OPENAI === 'true'
- 
-// Debug non-invasif en dev pour vérifier la lecture du .env
-if (import.meta.env.DEV) {
-  const maskedKey = (import.meta.env.VITE_OPENAI_API_KEY || '')
-    .toString()
-    .replace(/.(?=.{4})/g, '*')
-  // eslint-disable-next-line no-console
-  console.info('[ENV] VITE_API_URL=', BASE_URL, 'VITE_USE_AI=', USE_OPENAI, 'VITE_AI_API_KEY=', maskedKey)
-}
- 
-export const apiClient = axios.create({
-  baseURL: BASE_URL,
-  timeout: 60000,
-})
- 
-// Intercepteur pour les erreurs
-apiClient.interceptors.response.use(
-  (response) => response,
-  (error) => {
-    // Laisser remonter les erreurs au consommateur
-    return Promise.reject(error)
-  }
-)
- 
-// Services API pour les documents
-export const documentApi = {
-  // Téléversement de document
-  upload: async (file: File): Promise<Document> => {
-    if (USE_OPENAI) return openaiDocumentApi.upload(file)
-    const formData = new FormData()
-    formData.append('file', file)
-    const { data } = await apiClient.post('/api/notary/upload', formData)
- 
-    // L'API retourne {message, document_id, status}
-    // On doit mapper vers le format Document attendu
-    const fileUrl = URL.createObjectURL(file)
-    return {
-      id: data.document_id || data.id || 'upload-' + Date.now(),
-      name: file.name,
-      mimeType: data.mime_type || data.mimeType || file.type || 'application/pdf',
-      functionalType: data.functional_type || data.functionalType || undefined,
-      size: file.size,
-      uploadDate: new Date(),
-      status: 'completed',
-      previewUrl: fileUrl
-    }
-  },
- 
-  // Extraction des données
-  extract: async (documentId: string): Promise<ExtractionResult> => {
-    if (USE_OPENAI) {
-      // En mode OpenAI, nous n’avons pas le fichier original cĂŽtĂ© service.
-      // Le texte a Ă©tĂ© approximĂ© Ă  l’upload. On tente nĂ©anmoins l’extraction textuelle cĂŽtĂ© OpenAI sans fichier.
-      return openaiDocumentApi.extract(documentId)
-    }
-    const { data } = await apiClient.get(`/api/notary/documents/${documentId}`)
- 
-    // Mapper les données de l'API vers le format ExtractionResult
-    const results = data.results || {}
-    return {
-      documentId,
-      text: results.ocr_text || 'Texte extrait du document...',
-      language: 'fr',
-      documentType: results.document_type || 'Document',
-      identities: results.entities?.persons?.map((name: string, index: number) => ({
-        id: `person-${index}`,
-        type: 'person' as const,
-        firstName: name.split(' ')[0] || name,
-        lastName: name.split(' ').slice(1).join(' ') || '',
-        birthDate: '',
-        nationality: 'Française',
-        confidence: 0.9,
-      })) || [],
-      addresses: results.entities?.addresses?.map((address: string) => ({
-        street: address,
-        city: 'Paris',
-        postalCode: '75001',
-        country: 'France',
-      })) || [],
-      properties: results.entities?.properties?.map((_propertyName: string, index: number) => ({
-        id: `prop-${index}`,
-        type: 'apartment' as const,
-        address: {
-          street: '123 Rue de la Paix',
-          city: 'Paris',
-          postalCode: '75001',
-          country: 'France',
-        },
-        surface: 75,
-        cadastralReference: '1234567890AB',
-        value: 250000,
-      })) || [],
-      contracts: [
-        {
-          id: 'contract-1',
-          type: 'sale' as const,
-          parties: [],
-          amount: 250000,
-          date: '2024-01-15',
-          clauses: ['Clause de garantie', 'Clause de condition suspensive'],
-        },
-      ],
-      signatures: results.entities?.persons || [],
-      confidence: results.verification_score || 0.85,
-    }
-  },
- 
-  // Analyse du document
-  analyze: async (documentId: string): Promise<AnalysisResult> => {
-    if (USE_OPENAI) return openaiDocumentApi.analyze(documentId)
-    const { data } = await apiClient.get<AnalysisResult>(`/api/documents/${documentId}/analyze`)
-    return data
-  },
- 
-  // Données contextuelles
-  getContext: async (documentId: string): Promise<ContextResult> => {
-    if (USE_OPENAI) return openaiDocumentApi.getContext(documentId)
-    const { data } = await apiClient.get<ContextResult>(`/api/documents/${documentId}/context`)
-    return data
-  },
- 
-  // Conseil LLM
-  getConseil: async (documentId: string): Promise<ConseilResult> => {
-    if (USE_OPENAI) return openaiDocumentApi.getConseil(documentId)
-    const { data } = await apiClient.get<ConseilResult>(`/api/documents/${documentId}/conseil`)
-    return data
-  },
- 
-  // Détection du type de document
-  detectType: async (file: File): Promise<{ type: string; confidence: number }> => {
-    if (USE_OPENAI) return openaiDocumentApi.detectType(file)
-    const formData = new FormData()
-    formData.append('file', file)
-    const { data } = await apiClient.post('/api/ocr/detect', formData)
-    return data
-  },
-}
- 
-// Services API pour les données externes
-export const externalApi = {
-  // Cadastre via backend
-  cadastre: async (address: string) => {
-    if (USE_OPENAI) return openaiExternalApi.cadastre(address)
-    const { data } = await apiClient.get('/api/context/cadastre', { params: { q: address } })
-    return data
-  },
- 
-  // Géorisques via backend
-  georisques: async (coordinates: { lat: number; lng: number }) => {
-    if (USE_OPENAI) return openaiExternalApi.georisques(coordinates)
-    const { data } = await apiClient.get('/api/context/georisques', { params: coordinates })
-    return data
-  },
- 
-  // Géofoncier via backend
-  geofoncier: async (address: string) => {
-    if (USE_OPENAI) return openaiExternalApi.geofoncier(address)
-    const { data } = await apiClient.get('/api/context/geofoncier', { params: { address } })
-    return data
-  },
- 
-  // BODACC via backend
-  bodacc: async (companyName: string) => {
-    if (USE_OPENAI) return openaiExternalApi.bodacc(companyName)
-    const { data } = await apiClient.get('/api/context/bodacc', { params: { q: companyName } })
-    return data
-  },
- 
-  // Infogreffe via backend
-  infogreffe: async (siren: string) => {
-    if (USE_OPENAI) return openaiExternalApi.infogreffe(siren)
-    const { data } = await apiClient.get('/api/context/infogreffe', { params: { siren } })
-    return data
-  },
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/services/fileExtract.ts.html b/coverage/src/services/fileExtract.ts.html deleted file mode 100644 index 166f9fe..0000000 --- a/coverage/src/services/fileExtract.ts.html +++ /dev/null @@ -1,589 +0,0 @@ - - - - - - Code coverage report for src/services/fileExtract.ts - - - - - - - - - -
-
-

All files / src/services fileExtract.ts

-
- -
- 0% - Statements - 0/141 -
- - -
- 100% - Branches - 1/1 -
- - -
- 100% - Functions - 1/1 -
- - -
- 0% - Lines - 0/141 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
// Chargements dynamiques locaux (pdfjs-dist/tesseract.js)
-let _pdfjsLib: any | null = null
-async function getPdfJs() {
-  if (_pdfjsLib) return _pdfjsLib
-  const pdfjsLib: any = await import('pdfjs-dist')
-  try {
-    // Utilise un worker module réel pour éviter le fake worker
-    const workerUrl = new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)
-    pdfjsLib.GlobalWorkerOptions.workerPort = new Worker(workerUrl, { type: 'module' })
-  } catch {
-    // ignore si worker introuvable
-  }
-  _pdfjsLib = pdfjsLib
-  return _pdfjsLib
-}
- 
-export async function extractTextFromFile(file: File): Promise<string> {
-  const mime = file.type || ''
-  if (mime.includes('pdf') || file.name.toLowerCase().endsWith('.pdf')) {
-    const pdfText = await extractFromPdf(file)
-    if (import.meta.env.DEV) {
-      // eslint-disable-next-line no-console
-      console.info('[OCR][PDF]', file.name, 'len=', pdfText.length, 'peek=', pdfText.slice(0, 200))
-    }
-    return pdfText
-  }
-  if (mime.startsWith('image/') || ['.png', '.jpg', '.jpeg'].some((ext) => file.name.toLowerCase().endsWith(ext))) {
-    const imgText = await extractFromImage(file)
-    if (import.meta.env.DEV) {
-      // eslint-disable-next-line no-console
-      console.info('[OCR][IMG]', file.name, 'len=', imgText.length, 'peek=', imgText.slice(0, 200))
-    }
-    return imgText
-  }
-  // Fallback: lecture texte brut
-  try {
-    return await file.text()
-  } catch {
-    return ''
-  }
-}
- 
-async function extractFromPdf(file: File): Promise<string> {
-  const pdfjsLib = await getPdfJs().catch(() => null)
-  if (!pdfjsLib) return ''
-  const arrayBuffer = await file.arrayBuffer()
-  const pdf = await pdfjsLib.getDocument({ data: new Uint8Array(arrayBuffer) }).promise
-  const texts: string[] = []
-  const numPages = Math.min(pdf.numPages, 50)
-  for (let i = 1; i <= numPages; i += 1) {
-    const page = await pdf.getPage(i)
-    const content = await page.getTextContent().catch(() => null)
-    let pageText = ''
-    if (content) {
-      pageText = content.items.map((it: any) => (it.str ? it.str : '')).join(' ')
-    }
-    // Fallback OCR si pas de texte exploitable
-    if (!pageText || pageText.replace(/\s+/g, '').length < 30) {
-      const viewport = page.getViewport({ scale: 2 })
-      const canvas = document.createElement('canvas')
-      canvas.width = viewport.width
-      canvas.height = viewport.height
-      const ctx = canvas.getContext('2d') as any
-      await page.render({ canvasContext: ctx, viewport }).promise
-      const blob: Blob = await new Promise((resolve) => canvas.toBlob((b) => resolve(b as Blob), 'image/png'))
-      const ocrText = await extractFromImage(new File([blob], `${file.name}-p${i}.png`, { type: 'image/png' }))
-      pageText = ocrText
-    }
-    if (pageText.trim()) texts.push(pageText)
-  }
-  return texts.join('\n')
-}
- 
-async function extractFromImage(file: File): Promise<string> {
-  const { createWorker } = await import('tesseract.js')
- 
-  // Pré-redimensionne l'image si trop petite (largeur minimale 300px)
-  const imgBitmap = await createImageBitmap(file)
-  let source: Blob = file
-  // Normalisation pour CNI: contraste, gris, upscaling plus agressif
-  const minWidth = /recto|verso|cni|carte/i.test(file.name) ? 1200 : 300
-  if (imgBitmap.width < minWidth) {
-    const scale = minWidth / Math.max(1, imgBitmap.width)
-    const canvas = document.createElement('canvas')
-    canvas.width = Math.max(300, Math.floor(imgBitmap.width * scale))
-    canvas.height = Math.floor(imgBitmap.height * scale)
-    const ctx = canvas.getContext('2d')!
-    ctx.imageSmoothingEnabled = true
-    ctx.imageSmoothingQuality = 'high'
-    ctx.drawImage(imgBitmap, 0, 0, canvas.width, canvas.height)
-    // Conversion en niveaux de gris + amélioration du contraste
-    const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height)
-    const data = imgData.data
-    for (let i = 0; i < data.length; i += 4) {
-      const r = data[i], g = data[i + 1], b = data[i + 2]
-      // luma
-      let y = 0.299 * r + 0.587 * g + 0.114 * b
-      // contraste simple
-      y = Math.max(0, Math.min(255, (y - 128) * 1.2 + 128))
-      data[i] = data[i + 1] = data[i + 2] = y
-    }
-    ctx.putImageData(imgData, 0, 0)
-    source = await new Promise<Blob>((resolve) => canvas.toBlob((b) => resolve(b || file))!)
-  }
- 
-  const worker = await createWorker()
-  try {
-    // Configure le logger aprÚs création pour éviter DataCloneError
-    // @ts-expect-error - setLogger is not directly on Worker type
-    worker.setLogger?.((m: any) => {
-      if (m?.progress != null) console.info('[OCR]', Math.round(m.progress * 100) + '%')
-    })
-    await worker.load()
-    // @ts-expect-error - loadLanguage is not directly on Worker type
-    await worker.loadLanguage('fra+eng')
-    // @ts-expect-error - initialize is not directly on Worker type
-    await worker.initialize('fra+eng')
-    // Essaie plusieurs PSM et orientations (0/90/180/270) et garde le meilleur résultat
-    const rotations = [0, 90, 180, 270]
-    const psmModes = ['6', '7', '11'] // 6: block, 7: single line, 11: sparse text
-    let bestText = ''
-    let bestScore = -1
- 
-    for (const psm of psmModes) {
-      // @ts-expect-error - tessedit_pageseg_mode expects PSM enum, but string is used
-      await worker.setParameters({ tessedit_pageseg_mode: psm })
-      for (const deg of rotations) {
-        const rotatedBlob = await rotateBlob(source, deg)
-        const { data } = await worker.recognize(rotatedBlob)
-        const text = data.text || ''
-        const len = text.replace(/\s+/g, ' ').trim().length
-        const score = (data.confidence || 0) * Math.log(len + 1)
-        if (score > bestScore) {
-          bestScore = score
-          bestText = text
-        }
-        // Court-circuit si trĂšs bon
-        if (data.confidence >= 85 && len > 40) break
-      }
-    }
- 
-    return bestText
-  } finally {
-    await worker.terminate()
-  }
-}
- 
-async function rotateBlob(blob: Blob, deg: number): Promise<Blob> {
-  if (deg % 360 === 0) return blob
-  const bmp = await createImageBitmap(blob)
-  const rad = (deg * Math.PI) / 180
-  const sin = Math.abs(Math.sin(rad))
-  const cos = Math.abs(Math.cos(rad))
-  const w = bmp.width
-  const h = bmp.height
-  const newW = Math.floor(w * cos + h * sin)
-  const newH = Math.floor(w * sin + h * cos)
-  const canvas = document.createElement('canvas')
-  canvas.width = newW
-  canvas.height = newH
-  const ctx = canvas.getContext('2d')!
-  ctx.imageSmoothingEnabled = true
-  ctx.imageSmoothingQuality = 'high'
-  ctx.translate(newW / 2, newH / 2)
-  ctx.rotate(rad)
-  ctx.drawImage(bmp, -w / 2, -h / 2)
-  return await new Promise<Blob>((resolve) => canvas.toBlob((b) => resolve(b || blob))!)
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/services/index.html b/coverage/src/services/index.html deleted file mode 100644 index 9bb1993..0000000 --- a/coverage/src/services/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for src/services - - - - - - - - - -
-
-

All files src/services

-
- -
- 7.87% - Statements - 64/813 -
- - -
- 76.19% - Branches - 16/21 -
- - -
- 85.71% - Functions - 6/7 -
- - -
- 7.87% - Lines - 64/813 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
api.ts -
-
0%0/1410%0/10%0/10%0/141
fileExtract.ts -
-
0%0/141100%1/1100%1/10%0/141
openai.ts -
-
0%0/286100%1/1100%1/10%0/286
ruleNer.ts -
-
0%0/178100%1/1100%1/10%0/178
testFilesApi.ts -
-
95.52%64/6776.47%13/17100%3/395.52%64/67
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/services/openai.ts.html b/coverage/src/services/openai.ts.html deleted file mode 100644 index 448cbfa..0000000 --- a/coverage/src/services/openai.ts.html +++ /dev/null @@ -1,1099 +0,0 @@ - - - - - - Code coverage report for src/services/openai.ts - - - - - - - - - -
-
-

All files / src/services openai.ts

-
- -
- 0% - Statements - 0/286 -
- - -
- 100% - Branches - 1/1 -
- - -
- 100% - Functions - 1/1 -
- - -
- 0% - Lines - 0/286 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/*
-  Mode OpenAI (fallback) pour 4NK IA Front
-  Utilise l'API OpenAI cÎté frontend uniquement à des fins de démonstration/dépannage quand le backend est indisponible.
-*/
-import type {
-  Document,
-  ExtractionResult,
-  AnalysisResult,
-  ContextResult,
-  ConseilResult,
-} from '../types'
-import { extractTextFromFile } from './fileExtract'
-import { runRuleNER } from './ruleNer'
- 
-const OPENAI_API_KEY = import.meta.env.VITE_OPENAI_API_KEY
-const OPENAI_BASE_URL = import.meta.env.VITE_OPENAI_BASE_URL || 'https://api.openai.com/v1'
-const OPENAI_CHAT_MODEL = import.meta.env.VITE_OPENAI_MODEL || 'gpt-4o-mini'
- 
-async function callOpenAIChat(messages: Array<{ role: 'system' | 'user' | 'assistant'; content: string }>): Promise<string> {
-  if (!OPENAI_API_KEY) {
-    throw new Error('Clé API OpenAI manquante (VITE_AI_API_KEY)')
-  }
- 
-  // Log minimal masqué
-  if (import.meta.env.DEV) {
-    // eslint-disable-next-line no-console
-    console.info('[LLM] Request chat.completions (mode AI distante activé)')
-  }
-  const response = await fetch(`${OPENAI_BASE_URL}/chat/completions`, {
-    method: 'POST',
-    headers: {
-      'Content-Type': 'application/json',
-      Authorization: `Bearer ${OPENAI_API_KEY}`,
-    },
-    body: JSON.stringify({
-      model: OPENAI_CHAT_MODEL,
-      messages,
-      temperature: 0.2,
-    }),
-  })
- 
-  if (!response.ok) {
-    if (import.meta.env.DEV) {
-      // eslint-disable-next-line no-console
-      console.warn('[LLM] Response error', response.status)
-    }
-    const text = await response.text()
-    throw new Error(`OpenAI error ${response.status}: ${text}`)
-  }
- 
-  const data = await response.json()
-  if (import.meta.env.DEV) {
-    // eslint-disable-next-line no-console
-    console.info('[LLM] Response received')
-  }
-  return data.choices?.[0]?.message?.content || ''
-}
- 
-type ProgressHooks = { onOcrProgress?: (p: number) => void; onLlmProgress?: (p: number) => void }
- 
-export const openaiDocumentApi = {
-  upload: async (file: File): Promise<Document> => {
-    const fileUrl = URL.createObjectURL(file)
-    return {
-      id: `openai-upload-${Date.now()}`,
-      name: file.name,
-      mimeType: file.type || 'application/octet-stream',
-      functionalType: undefined,
-      size: file.size,
-      uploadDate: new Date(),
-      status: 'completed',
-      previewUrl: fileUrl,
-    }
-  },
- 
-  extract: async (documentId: string, file?: File, hooks?: ProgressHooks): Promise<ExtractionResult> => {
-    let localText = ''
-    if (file) {
-      try {
-        hooks?.onOcrProgress?.(0)
-        localText = await extractTextFromFile(file)
-        hooks?.onOcrProgress?.(1)
-      } catch {
-        localText = ''
-      }
-    }
-    // Flags de mode
-    const useRuleNer = import.meta.env.VITE_USE_RULE_NER === 'true'
-    const classifyOnly = import.meta.env.VITE_LLM_CLASSIFY_ONLY === 'true'
-    const disableLLM = import.meta.env.VITE_DISABLE_LLM === 'true'
- 
-    console.log('🔧 [CONFIG] Mode sans LLM activĂ©:', {
-      useRuleNer,
-      classifyOnly,
-      disableLLM,
-      hasOpenAIKey: !!OPENAI_API_KEY
-    })
- 
-    // Si NER local actif, on l'utilise pour tout (identités/adresses/...) puis, si demandé,
-    // on peut consulter le LLM uniquement pour classifier le type de document
-    if (useRuleNer) {
-      console.log('🚀 [OCR] DĂ©but de l\'extraction OCR locale...')
-      console.log('📄 [OCR] Texte à traiter:', localText.substring(0, 200) + '...')
- 
-      // Simuler la progression OCR de maniÚre asynchrone pour éviter les boucles
-      if (hooks?.onOcrProgress) {
-        setTimeout(() => {
-          hooks.onOcrProgress?.(0.3)
-          console.log('⏳ [OCR] Progression: 30%')
-        }, 100)
- 
-        setTimeout(() => {
-          hooks.onOcrProgress?.(0.7)
-          console.log('⏳ [OCR] Progression: 70%')
-        }, 200)
- 
-        setTimeout(() => {
-          hooks.onOcrProgress?.(1)
-          console.log('✅ [OCR] Progression: 100% - Extraction terminĂ©e')
-        }, 300)
-      }
- 
-      console.log('🔍 [NER] DĂ©but de l\'extraction par rĂšgles...')
-      let res = runRuleNER(documentId, localText)
-      console.log('📊 [NER] RĂ©sultats extraits:', {
-        documentType: res.documentType,
-        identitiesCount: res.identities.length,
-        addressesCount: res.addresses.length,
-        confidence: res.confidence
-      })
- 
-      if (classifyOnly && OPENAI_API_KEY && localText && !disableLLM) {
-        console.log('đŸ€– [LLM] Classification LLM demandĂ©e...')
-        try {
-          hooks?.onLlmProgress?.(0)
-          const cls = await callOpenAIChat([
-            { role: 'system', content: 'Tu es un classifieur. Retourne uniquement un JSON strict.' },
-            { role: 'user', content: `Classifie ce texte en une des catégories suivantes: [CNI, Facture, Attestation, Document]. Réponds strictement sous la forme {"documentType":"..."}.\nTexte:\n${localText.slice(0, 8000)}` },
-          ])
-          const parsed = JSON.parse(cls)
-          if (parsed && typeof parsed.documentType === 'string') {
-            res = { ...res, documentType: parsed.documentType }
-            res.confidenceReasons = [...(res.confidenceReasons || []), 'Classification LLM limitée au documentType']
-            console.log('✅ [LLM] Classification LLM terminĂ©e:', parsed.documentType)
-          }
-          hooks?.onLlmProgress?.(1)
-        } catch (error) {
-          console.warn('⚠ [LLM] Échec de la classification LLM:', error)
-          hooks?.onLlmProgress?.(1)
-        }
-      } else {
-        console.log('đŸš« [LLM] LLM dĂ©sactivĂ© - Mode 100% local')
-        // Mode sans LLM : simuler la progression LLM de maniĂšre asynchrone
-        if (hooks?.onLlmProgress) {
-          setTimeout(() => {
-            hooks.onLlmProgress?.(0.5)
-            console.log('⏳ [LLM] Progression: 50%')
-          }, 400)
- 
-          setTimeout(() => {
-            hooks.onLlmProgress?.(1)
-            console.log('✅ [LLM] Progression: 100%')
-          }, 500)
-        }
-      }
- 
-      console.log('🎉 [FINAL] Extraction complĂšte terminĂ©e:', res)
-      return res
-    }
- 
-    hooks?.onLlmProgress?.(0)
-    // Si on demande uniquement la classification par LLM, ne demander que le type;
-    // sinon on demande la structuration complÚte (mode précédent)
-    if (classifyOnly) {
-      try {
-        const cls = await callOpenAIChat([
-          { role: 'system', content: 'Tu es un classifieur. Retourne uniquement un JSON strict.' },
-          { role: 'user', content: `Classifie ce texte en une des catégories suivantes: [CNI, Facture, Attestation, Document]. Réponds strictement sous la forme {"documentType":"..."}.\nTexte:\n${localText.slice(0, 8000)}` },
-        ])
-        const parsed = JSON.parse(cls)
-        hooks?.onLlmProgress?.(1)
-        return {
-          documentId,
-          text: localText || '',
-          language: 'fr',
-          documentType: (parsed && parsed.documentType) || 'Document',
-          identities: [],
-          addresses: [],
-          properties: [],
-          contracts: [],
-          signatures: [],
-          confidence: 0.6,
-          confidenceReasons: ['Classification LLM sans contexte, pas d\'extraction d\'identités'],
-        }
-      } catch {
-        hooks?.onLlmProgress?.(1)
-        return {
-          documentId,
-          text: localText || '',
-          language: 'fr',
-          documentType: 'Document',
-          identities: [],
-          addresses: [],
-          properties: [],
-          contracts: [],
-          signatures: [],
-          confidence: 0.6,
-          confidenceReasons: ['Classification LLM échouée, valeur par défaut'],
-        }
-      }
-    }
- 
-    const content = await callOpenAIChat([
-      {
-        role: 'system',
-        content:
-          'Tu extrais uniquement les informations présentes dans le texte OCR. Interdiction d\'inventer. Interdiction d\'utiliser le nom du fichier comme identité. Réponds en JSON strict, sans texte autour.',
-      },
-      {
-        role: 'user',
-        content: `Document ID: ${documentId}. Texte OCR (tronqué): ${localText.slice(0, 8000)}\nRÚgles: 1) ne pas inventer, 2) si incertitude, laisser vide, 3) ne JAMAIS utiliser le nom du fichier comme identité. Schéma JSON: {"language":"fr","documentType":"...","identities":[{"id":"id-1","type":"person","firstName":"...","lastName":"...","confidence":0.9}],"addresses":[{"street":"...","city":"...","postalCode":"...","country":"..."}],"properties":[{"id":"prop-1","type":"apartment","address":{"street":"...","city":"...","postalCode":"...","country":"..."},"surface":75}],"contracts":[{"id":"contract-1","type":"sale","parties":[],"amount":0,"date":"YYYY-MM-DD","clauses":["..."]}],"signatures":[],"confidence":0.7,"confidenceReasons":["sources présentes dans le texte"]}`,
-      },
-    ])
-    // Essaye d'analyser le JSON, sinon fallback heuristique
-    try {
-      const parsed = JSON.parse(content)
-      hooks?.onLlmProgress?.(1)
-      // Post-traitement: filtrage des identités qui ressemblent au nom de fichier
-      const docBase = (file?.name || '').toLowerCase().replace(/\.[a-z0-9]+$/, '')
-      const safeIdentities = (parsed.identities || []).filter((it: any) => {
-        const full = `${it.firstName || ''} ${it.lastName || ''}`.trim().toLowerCase()
-        return full && !docBase || (full && !docBase.includes(full) && !full.includes(docBase))
-      })
- 
-      return {
-        documentId,
-        text: localText || '',
-        language: parsed.language || 'fr',
-        documentType: parsed.documentType || 'Document',
-        identities: safeIdentities,
-        addresses: parsed.addresses || [],
-        properties: parsed.properties || [],
-        contracts: parsed.contracts || [],
-        signatures: parsed.signatures || [],
-        confidence: Math.round((typeof parsed.confidence === 'number' ? parsed.confidence : 0.7) * 100) / 100,
-        confidenceReasons: parsed.confidenceReasons || [],
-      }
-    } catch {
-      hooks?.onLlmProgress?.(1)
-      const lowered = (localText || '').toLowerCase()
-      let documentType = 'Document'
-      const reasons: string[] = []
-      if (/carte\s+nationale\s+d'identité|cni|national id/.test(lowered)) {
-        documentType = 'CNI'
-        reasons.push('Mots-clés CNI détectés')
-      } else if (/facture|invoice|amount|tva|siren/.test(lowered)) {
-        documentType = 'Facture'
-        reasons.push('Mots-clés facture détectés')
-      } else if (/attestation|certificat/.test(lowered)) {
-        documentType = 'Attestation'
-        reasons.push('Mots-clés attestation détectés')
-      }
-      return {
-        documentId,
-        text: localText || 'Contenu résumé non disponible.',
-        language: 'fr',
-        documentType,
-        identities: [],
-        addresses: [],
-        properties: [],
-        contracts: [],
-        signatures: [],
-        confidence: 0.7,
-        confidenceReasons: reasons,
-      }
-    }
-  },
- 
-  analyze: async (documentId: string): Promise<AnalysisResult> => {
-    const result = await callOpenAIChat([
-      { role: 'system', content: 'Tu fournis une analyse brĂšve et des risques potentiels.' },
-      { role: 'user', content: `Analyse le document ${documentId} et fournis un résumé des risques.` },
-    ])
-    const isCNI = /cni|carte\s+nationale\s+d'identité/i.test(result || '')
-    const number = (result || '').match(/[A-Z0-9]{12,}/)?.[0] || ''
-    const formatValid = /^[A-Z0-9]{12,}$/.test(number)
-    const checksumValid = pseudoChecksum(number)
-    const numberValid = formatValid && checksumValid
-    return {
-      documentId,
-      documentType: isCNI ? 'CNI' : 'Document',
-      isCNI,
-      verificationResult: isCNI
-        ? { numberValid, formatValid, checksumValid }
-        : undefined,
-      credibilityScore: isCNI ? (numberValid ? 0.8 : 0.6) : 0.6,
-      summary: result || 'Analyse indisponible.',
-      recommendations: [],
-      confidenceReasons: isCNI
-        ? [
-            formatValid ? 'Format du numéro plausible' : 'Format du numéro invalide',
-            checksumValid ? 'Checksum plausible' : 'Checksum invalide',
-          ]
-        : ['Analyse préliminaire via modÚle'],
-    }
-  },
- 
-  getContext: async (documentId: string): Promise<ContextResult> => {
-    return { documentId, lastUpdated: new Date(), georisquesData: {}, cadastreData: {} }
-  },
- 
-  getConseil: async (documentId: string): Promise<ConseilResult> => {
-    const conseil = await callOpenAIChat([
-      { role: 'system', content: 'Tu fournis des conseils opérationnels courts et concrets.' },
-      { role: 'user', content: `Donne 3 conseils actionnables pour le document ${documentId}.` },
-    ])
-    return { documentId, analysis: conseil || '', recommendations: conseil ? [conseil] : [], risks: [], nextSteps: [], generatedAt: new Date() }
-  },
- 
-  detectType: async (_file: File): Promise<{ type: string; confidence: number }> => {
-    return { type: 'Document', confidence: 0.6 }
-  },
-}
- 
-export const openaiExternalApi = {
-  cadastre: async (_address: string) => ({ note: 'Mode OpenAI: contexte non connecté' }),
-  georisques: async (_coordinates: { lat: number; lng: number }) => ({ note: 'Mode OpenAI: contexte non connecté' }),
-  geofoncier: async (_address: string) => ({ note: 'Mode OpenAI: contexte non connecté' }),
-  bodacc: async (_companyName: string) => ({ note: 'Mode OpenAI: contexte non connecté' }),
-  infogreffe: async (_siren: string) => ({ note: 'Mode OpenAI: contexte non connecté' }),
-}
- 
-function pseudoChecksum(input: string): boolean {
-  if (!input) return false
-  // checksum simple: somme des codes char modulo 10 doit ĂȘtre pair
-  const sum = Array.from(input).reduce((acc, ch) => acc + ch.charCodeAt(0), 0)
-  return sum % 10 % 2 === 0
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/services/ruleNer.ts.html b/coverage/src/services/ruleNer.ts.html deleted file mode 100644 index 542c710..0000000 --- a/coverage/src/services/ruleNer.ts.html +++ /dev/null @@ -1,742 +0,0 @@ - - - - - - Code coverage report for src/services/ruleNer.ts - - - - - - - - - -
-
-

All files / src/services ruleNer.ts

-
- -
- 0% - Statements - 0/178 -
- - -
- 100% - Branches - 1/1 -
- - -
- 100% - Functions - 1/1 -
- - -
- 0% - Lines - 0/178 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import type { ExtractionResult, Identity, Address, Property, Contract } from '../types'
- 
-function toTitleCase(input: string): string {
-  return input
-    .toLowerCase()
-    .split(/\s+/)
-    .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
-    .join(' ')
-}
- 
-function extractMRZ(text: string): { firstName?: string; lastName?: string } | null {
-  // Cherche MRZ (deux lignes, < comme séparateur). Stricte A-Z0-9<
-  const lines = text.split(/\n|\r/).map((l) => l.trim().toUpperCase())
-  for (let i = 0; i < lines.length - 1; i += 1) {
-    const a = lines[i].replace(/[^A-Z0-9<]/g, '')
-    const b = lines[i + 1].replace(/[^A-Z0-9<]/g, '')
-    if (a.includes('<<') || b.includes('<<')) {
-      const target = a.length >= b.length ? a : b
-      const parts = target.split('<<')
-      if (parts.length >= 2) {
-        const rawLast = parts[0].replace(/<+/g, ' ').trim()
-        const rawFirst = parts[1].replace(/<+/g, ' ').trim()
-        if (rawLast && rawFirst) return { firstName: toTitleCase(rawFirst), lastName: rawLast.replace(/\s+/g, ' ') }
-      }
-    }
-  }
-  return null
-}
- 
-function extractDates(text: string): string[] {
-  const results = new Set<string>()
-  const patterns = [
-    /(\b\d{2}[\/\-]\d{2}[\/\-]\d{4}\b)/g, // JJ/MM/AAAA ou JJ-MM-AAAA
-    /(\b\d{4}[\/\-]\d{2}[\/\-]\d{2}\b)/g, // AAAA/MM/JJ
-  ]
-  for (const re of patterns) {
-    for (const m of text.matchAll(re)) results.add(m[1])
-  }
-  return Array.from(results)
-}
- 
-function extractCniNumbers(text: string): string[] {
-  const results = new Set<string>()
-  const re = /\b[A-Z0-9]{12,15}\b/g
-  for (const m of text.toUpperCase().matchAll(re)) results.add(m[0])
-  return Array.from(results)
-}
- 
-function extractAddresses(text: string): Address[] {
-  const items: Address[] = []
- 
-  // Pattern amélioré pour les adresses françaises
-  const addressPatterns = [
-    // "123 Rue de la Paix, 75001 Paris"
-    /(\d{1,4})\s+([A-Za-zÀ-ÖØ-öÞ-Ăż\s\-']+?),\s*(\d{5})\s+([A-Za-zÀ-ÖØ-öÞ-Ăż\s\-']+)/gi,
-    // "demeurant 123 Rue de la Paix, 75001 Paris"
-    /demeurant\s+(\d{1,4})\s+([A-Za-zÀ-ÖØ-öÞ-Ăż\s\-']+?),\s*(\d{5})\s+([A-Za-zÀ-ÖØ-öÞ-Ăż\s\-']+)/gi,
-    // "situé 123 Rue de la Paix, 75001 Paris"
-    /situĂ©\s+(\d{1,4})\s+([A-Za-zÀ-ÖØ-öÞ-Ăż\s\-']+?),\s*(\d{5})\s+([A-Za-zÀ-ÖØ-öÞ-Ăż\s\-']+)/gi
-  ]
- 
-  for (const pattern of addressPatterns) {
-    for (const match of text.matchAll(pattern)) {
-      const street = `${match[1]} ${toTitleCase(match[2].trim())}`
-      const postalCode = match[3]
-      const city = toTitleCase(match[4].trim())
- 
-      items.push({
-        street,
-        city,
-        postalCode,
-        country: 'France'
-      })
-    }
-  }
- 
-  return items
-}
- 
-function extractNames(text: string): Identity[] {
-  const identities: Identity[] = []
- 
-  // Pattern pour "Vendeur : Prénom Nom" ou "Acheteur : Prénom Nom"
-  const rolePattern = /(Vendeur|Acheteur|Vendeuse|Acheteuse|Propriétaire|Locataire|Bailleur|Preneur)\s*:\s*([A-Z][a-zà-öÞ-ÿ'\-]+\s+[A-Z][a-zà-öÞ-ÿ'\-]+)/gi
- 
-  for (const match of text.matchAll(rolePattern)) {
-    const fullName = match[2].trim()
-    const nameParts = fullName.split(/\s+/)
-    const firstName = nameParts[0]
-    const lastName = nameParts.slice(1).join(' ')
- 
-    identities.push({
-      id: `role-${identities.length}`,
-      type: 'person',
-      firstName: toTitleCase(firstName),
-      lastName: toTitleCase(lastName),
-      confidence: 0.9,
-    })
-  }
- 
-  // Pattern pour "né le DD/MM/YYYY" ou "née le DD/MM/YYYY"
-  const birthPattern = /(né|née)\s+le\s+(\d{2}\/\d{2}\/\d{4})/gi
-  for (const match of text.matchAll(birthPattern)) {
-    const birthDate = match[2]
-    // Associer la date de naissance à la derniÚre identité trouvée
-    if (identities.length > 0) {
-      identities[identities.length - 1].birthDate = birthDate
-    }
-  }
- 
-  // Fallback: heuristique lignes en MAJUSCULES pour NOM
-  if (identities.length === 0) {
-    const lines = text.split(/\n|\r/).map((l) => l.trim()).filter(Boolean)
-    for (let i = 0; i < lines.length; i += 1) {
-      const line = lines[i]
-      if (/^[A-ZÀ-ÖØ-Þ\-\s]{3,}$/.test(line) && line.length <= 40) {
-        const lastName = line.replace(/\s+/g, ' ').trim()
-        const cand = (lines[i + 1] || '').trim()
-        const firstNameMatch = cand.match(/^[A-Z][a-zà-öÞ-ÿ'\-]{1,}(?:\s+[A-Z][a-zà-öÞ-ÿ'\-]{1,})?$/)
-        const firstName = firstNameMatch ? cand : undefined
-        if (lastName && (!firstName || firstName.length <= 40)) {
-          identities.push({
-            id: `id-${i}`,
-            type: 'person',
-            firstName: firstName ? toTitleCase(firstName) : undefined,
-            lastName,
-            confidence: firstName ? 0.85 : 0.7,
-          })
-        }
-      }
-    }
-  }
- 
-  return identities
-}
- 
-export function runRuleNER(documentId: string, text: string): ExtractionResult {
-  console.log('🔍 [RULE-NER] DĂ©but de l\'analyse du texte...')
-  console.log('📄 [RULE-NER] Longueur du texte:', text.length)
- 
-  const identitiesFromMRZ = extractMRZ(text)
-  console.log('🆔 [RULE-NER] MRZ dĂ©tectĂ©:', !!identitiesFromMRZ)
- 
-  const identities = identitiesFromMRZ
-    ? [
-        {
-          id: 'mrz-1',
-          type: 'person',
-          firstName: identitiesFromMRZ.firstName,
-          lastName: identitiesFromMRZ.lastName!,
-          confidence: 0.9,
-        } as Identity,
-      ]
-    : extractNames(text)
- 
-  console.log('đŸ‘„ [RULE-NER] IdentitĂ©s extraites:', identities.length, identities)
- 
-  const addresses = extractAddresses(text)
-  console.log('🏠 [RULE-NER] Adresses extraites:', addresses.length, addresses)
- 
-  const cniNumbers = extractCniNumbers(text)
-  console.log('🆔 [RULE-NER] NumĂ©ros CNI dĂ©tectĂ©s:', cniNumbers.length, cniNumbers)
- 
-  const dates = extractDates(text)
-  console.log('📅 [RULE-NER] Dates dĂ©tectĂ©es:', dates.length, dates)
- 
-  const contracts: Contract[] = []
-  const properties: Property[] = []
- 
-  const reasons: string[] = []
-  if (identities.length) reasons.push('Identités détectées par rÚgles')
-  if (addresses.length) reasons.push('Adresse(s) détectée(s) par motifs')
-  if (cniNumbers.length) reasons.push('Numéro CNI plausible détecté')
-  if (dates.length) reasons.push('Dates détectées')
- 
-  let documentType = 'Document'
-  if (/carte\s+nationale\s+d'identité|cni|mrz|identite/i.test(text)) {
-    documentType = 'CNI'
-    console.log('📋 [RULE-NER] Type dĂ©tectĂ©: CNI')
-  } else if (/facture|tva|siren|montant/i.test(text)) {
-    documentType = 'Facture'
-    console.log('📋 [RULE-NER] Type dĂ©tectĂ©: Facture')
-  } else if (/attestation|certificat/i.test(text)) {
-    documentType = 'Attestation'
-    console.log('📋 [RULE-NER] Type dĂ©tectĂ©: Attestation')
-  } else if (/contrat|vente|achat|acte/i.test(text)) {
-    documentType = 'Contrat'
-    console.log('📋 [RULE-NER] Type dĂ©tectĂ©: Contrat')
-  } else {
-    console.log('📋 [RULE-NER] Type dĂ©tectĂ©: Document (par dĂ©faut)')
-  }
- 
-  // Confiance: base 0.6 + bonus par signal
-  let confidence = 0.6
-  if (identities.length) confidence += 0.15
-  if (cniNumbers.length) confidence += 0.15
-  if (addresses.length) confidence += 0.05
-  confidence = Math.max(0, Math.min(1, confidence))
- 
-  console.log('📊 [RULE-NER] Confiance calculĂ©e:', confidence)
-  console.log('📝 [RULE-NER] Raisons:', reasons)
- 
-  const result = {
-    documentId,
-    text,
-    language: 'fr',
-    documentType,
-    identities,
-    addresses,
-    properties,
-    contracts,
-    signatures: [],
-    confidence,
-    confidenceReasons: reasons,
-  }
- 
-  console.log('✅ [RULE-NER] RĂ©sultat final:', result)
-  return result
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/services/testFilesApi.ts.html b/coverage/src/services/testFilesApi.ts.html deleted file mode 100644 index 53ca816..0000000 --- a/coverage/src/services/testFilesApi.ts.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - Code coverage report for src/services/testFilesApi.ts - - - - - - - - - -
-
-

All files / src/services testFilesApi.ts

-
- -
- 95.52% - Statements - 64/67 -
- - -
- 76.47% - Branches - 13/17 -
- - -
- 100% - Functions - 3/3 -
- - -
- 95.52% - Lines - 64/67 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -2x -  -  -2x -2x -2x -2x -2x -2x -2x -  -2x -  -2x -10x -10x -10x -4x -4x -4x -  -4x -4x -4x -4x -4x -4x -4x -10x -5x -5x -10x -  -2x -2x -  -  -  -2x -  -  -  -  -3x -3x -3x -3x -1x -1x -  -1x -1x -3x -2x -2x -2x -3x -  -  -  -  -1x -3x -3x -3x -3x -3x -3x -3x -3x -3x -3x -  -3x -  -12x -6x -6x -  -  -12x -12x -  -12x -3x -3x - 
/**
- * API pour gérer les fichiers de test
- */
- 
-export interface TestFileInfo {
-  name: string
-  size: number
-  type: string
-  lastModified: number
-}
- 
-/**
- * RécupÚre la liste des fichiers disponibles dans le dossier test-files
- */
-export async function getTestFilesList(): Promise<TestFileInfo[]> {
-  try {
-    // En mode développement, on peut utiliser une API pour lister les fichiers
-    // Pour l'instant, on utilise une approche simple avec les fichiers connus
-    const knownFiles = [
-      'IMG_20250902_162159.jpg',
-      'IMG_20250902_162210.jpg', 
-      'sample.md',
-      'sample.pdf',
-      'sample.txt'
-    ]
-    
-    const files: TestFileInfo[] = []
-    
-    for (const fileName of knownFiles) {
-      try {
-        const response = await fetch(`/test-files/${fileName}`, { method: 'HEAD' })
-        if (response.ok) {
-          const contentLength = response.headers.get('content-length')
-          const contentType = response.headers.get('content-type')
-          const lastModified = response.headers.get('last-modified')
-          
-          files.push({
-            name: fileName,
-            size: contentLength ? parseInt(contentLength, 10) : 0,
-            type: contentType || 'application/octet-stream',
-            lastModified: lastModified ? new Date(lastModified).getTime() : Date.now()
-          })
-        }
-      } catch (error) {
-        console.warn(`Impossible de vérifier le fichier ${fileName}:`, error)
-      }
-    }
-    
-    return files
-  } catch (error) {
-    console.error('Erreur lors de la récupération de la liste des fichiers de test:', error)
-    return []
-  }
-}
- 
-/**
- * Charge un fichier de test par son nom
- */
-export async function loadTestFile(fileName: string): Promise<File | null> {
-  try {
-    const response = await fetch(`/test-files/${fileName}`)
-    if (!response.ok) {
-      throw new Error(`Fichier non trouvé: ${fileName}`)
-    }
-    
-    const blob = await response.blob()
-    return new File([blob], fileName, { type: blob.type })
-  } catch (error) {
-    console.error(`Erreur lors du chargement du fichier ${fileName}:`, error)
-    return null
-  }
-}
- 
-/**
- * Filtre les fichiers par type MIME supporté
- */
-export function filterSupportedFiles(files: TestFileInfo[]): TestFileInfo[] {
-  const supportedTypes = [
-    'application/pdf',
-    'image/jpeg',
-    'image/jpg', 
-    'image/png',
-    'image/tiff',
-    'text/plain',
-    'text/markdown',
-    'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
-  ]
-  
-  return files.filter(file => {
-    // Vérifier le type MIME
-    if (supportedTypes.includes(file.type)) {
-      return true
-    }
-    
-    // Vérifier l'extension si le type MIME n'est pas fiable
-    const extension = file.name.split('.').pop()?.toLowerCase()
-    const supportedExtensions = ['pdf', 'jpg', 'jpeg', 'png', 'tiff', 'txt', 'md', 'docx']
-    
-    return extension && supportedExtensions.includes(extension)
-  })
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/store/appSlice.ts.html b/coverage/src/store/appSlice.ts.html deleted file mode 100644 index 599ee13..0000000 --- a/coverage/src/store/appSlice.ts.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - Code coverage report for src/store/appSlice.ts - - - - - - - - - -
-
-

All files / src/store appSlice.ts

-
- -
- 0% - Statements - 0/10 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/10 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { createSlice } from '@reduxjs/toolkit'
- 
-export type AppState = {
-  initialized: boolean
-}
- 
-const initialState: AppState = {
-  initialized: true,
-}
- 
-const appSlice = createSlice({
-  name: 'app',
-  initialState,
-  reducers: {},
-})
- 
-export const appReducer = appSlice.reducer
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/store/documentSlice.ts.html b/coverage/src/store/documentSlice.ts.html deleted file mode 100644 index deef654..0000000 --- a/coverage/src/store/documentSlice.ts.html +++ /dev/null @@ -1,694 +0,0 @@ - - - - - - Code coverage report for src/store/documentSlice.ts - - - - - - - - - -
-
-

All files / src/store documentSlice.ts

-
- -
- 0% - Statements - 0/168 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/168 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'
-import type { PayloadAction } from '@reduxjs/toolkit'
-import type { Document, ExtractionResult, AnalysisResult, ContextResult, ConseilResult } from '../types'
-import { documentApi } from '../services/api'
-import { openaiDocumentApi } from '../services/openai'
- 
-interface DocumentState {
-  documents: Document[]
-  currentDocument: Document | null
-  extractionResult: ExtractionResult | null
-  extractionById: Record<string, ExtractionResult>
-  fileById: Record<string, File>
-  analysisResult: AnalysisResult | null
-  contextResult: ContextResult | null
-  conseilResult: ConseilResult | null
-  loading: boolean
-  error: string | null
-  progressById: Record<string, { ocr: number; llm: number }>
-}
- 
-const initialState: DocumentState = {
-  documents: [],
-  currentDocument: null,
-  extractionResult: null,
-  extractionById: {},
-  fileById: {},
-  analysisResult: null,
-  contextResult: null,
-  conseilResult: null,
-  loading: false,
-  error: null,
-  progressById: {},
-}
- 
-export const uploadDocument = createAsyncThunk(
-  'document/upload',
-  async (file: File) => {
-    return await documentApi.upload(file)
-  }
-)
- 
-export const extractDocument = createAsyncThunk(
-  'document/extract',
-  async (documentId: string, thunkAPI) => {
-    const useOpenAI = import.meta.env.VITE_USE_OPENAI === 'true'
-    if (useOpenAI) {
-      const state = thunkAPI.getState() as { document: DocumentState }
-      const doc = state.document.documents.find((d) => d.id === documentId)
- 
-      // Hooks de progression simplifiés pour éviter les boucles
-      const progressHooks = {
-        onOcrProgress: (p: number) => {
-          console.log(`📊 [PROGRESS] OCR ${documentId}: ${Math.round(p * 100)}%`)
-          // Dispatch seulement si changement significatif
-          const currentProgress = (state.document.progressById[documentId]?.ocr || 0)
-          if (Math.abs(p - currentProgress) > 0.1) {
-            (thunkAPI.dispatch as any)(setOcrProgress({ id: documentId, progress: p }))
-          }
-        },
-        onLlmProgress: (p: number) => {
-          console.log(`📊 [PROGRESS] LLM ${documentId}: ${Math.round(p * 100)}%`)
-          // Dispatch seulement si changement significatif
-          const currentProgress = (state.document.progressById[documentId]?.llm || 0)
-          if (Math.abs(p - currentProgress) > 0.1) {
-            (thunkAPI.dispatch as any)(setLlmProgress({ id: documentId, progress: p }))
-          }
-        }
-      }
- 
-      if (doc?.previewUrl) {
-        try {
-          const res = await fetch(doc.previewUrl)
-          const blob = await res.blob()
-          const file = new File([blob], doc.name, { type: doc.mimeType })
-          return await openaiDocumentApi.extract(documentId, file, progressHooks)
-        } catch {
-          // fallback sans fichier
-          return await openaiDocumentApi.extract(documentId, undefined, progressHooks)
-        }
-      }
-      return await openaiDocumentApi.extract(documentId, undefined, progressHooks)
-    }
-    return await documentApi.extract(documentId)
-  }
-)
- 
-export const analyzeDocument = createAsyncThunk(
-  'document/analyze',
-  async (documentId: string) => {
-    return await documentApi.analyze(documentId)
-  }
-)
- 
-export const getContextData = createAsyncThunk(
-  'document/context',
-  async (documentId: string) => {
-    return await documentApi.getContext(documentId)
-  }
-)
- 
-export const getConseil = createAsyncThunk(
-  'document/conseil',
-  async (documentId: string) => {
-    return await documentApi.getConseil(documentId)
-  }
-)
- 
-const documentSlice = createSlice({
-  name: 'document',
-  initialState,
-  reducers: {
-    setCurrentDocument: (state, action: PayloadAction<Document | null>) => {
-      state.currentDocument = action.payload
-    },
-    clearResults: (state) => {
-      state.extractionResult = null
-      // Ne pas effacer extractionById pour conserver les résultats par document
-      state.analysisResult = null
-      state.contextResult = null
-      state.conseilResult = null
-    },
-    addDocuments: (state, action: PayloadAction<Document[]>) => {
-      const incoming = action.payload
-      // Évite les doublons par (name,size) pour les bootstraps rĂ©pĂ©tĂ©s en dev
-      const seenKey = new Set(state.documents.map((d) => `${d.name}::${d.size}`))
-      const merged = [...state.documents]
-      incoming.forEach((d) => {
-        const key = `${d.name}::${d.size}`
-        if (!seenKey.has(key)) {
-          seenKey.add(key)
-          merged.push(d)
-        }
-      })
-      state.documents = merged
-    },
-    removeDocument: (state, action: PayloadAction<string>) => {
-      const idToRemove = action.payload
-      state.documents = state.documents.filter((d) => d.id !== idToRemove)
-      if (state.currentDocument && state.currentDocument.id === idToRemove) {
-        state.currentDocument = null
-        state.extractionResult = null
-        state.analysisResult = null
-        state.contextResult = null
-        state.conseilResult = null
-      }
-      delete state.progressById[idToRemove]
-    },
-    setOcrProgress: (state, action: PayloadAction<{ id: string; progress: number }>) => {
-      const { id, progress } = action.payload
-      state.progressById[id] = { ocr: Math.max(0, Math.min(100, Math.round(progress * 100))), llm: state.progressById[id]?.llm || 0 }
-    },
-    setLlmProgress: (state, action: PayloadAction<{ id: string; progress: number }>) => {
-      const { id, progress } = action.payload
-      state.progressById[id] = { ocr: state.progressById[id]?.ocr || 0, llm: Math.max(0, Math.min(100, Math.round(progress * 100))) }
-    },
-  },
-  extraReducers: (builder) => {
-    builder
-      .addCase(uploadDocument.pending, (state) => {
-        state.loading = true
-        state.error = null
-      })
-      .addCase(uploadDocument.fulfilled, (state, action) => {
-        state.loading = false
-        state.documents.push(action.payload)
-        state.currentDocument = action.payload
-        // Capture le File depuis l'URL blob si disponible
-        if (action.payload.previewUrl?.startsWith('blob:')) {
-          // On ne peut pas récupérer l'objet File initial ici sans passer par onDrop;
-          // il est reconstruit lors de l'extraction via fetch blob.
-        }
-      })
-      .addCase(uploadDocument.rejected, (state, action) => {
-        state.loading = false
-        state.error = action.error.message || 'Erreur lors du téléversement'
-      })
-      .addCase(extractDocument.pending, (state) => {
-        state.loading = true
-        state.error = null
-      })
-      .addCase(extractDocument.fulfilled, (state, action) => {
-        state.loading = false
-        state.extractionResult = action.payload
-        state.extractionById[action.payload.documentId] = action.payload
-      })
-      .addCase(extractDocument.rejected, (state, action) => {
-        state.loading = false
-        state.error = action.error.message || 'Erreur lors de l\'extraction'
-      })
-      .addCase(analyzeDocument.fulfilled, (state, action) => {
-        state.analysisResult = action.payload
-      })
-      .addCase(getContextData.fulfilled, (state, action) => {
-        state.contextResult = action.payload
-      })
-      .addCase(getConseil.fulfilled, (state, action) => {
-        state.conseilResult = action.payload
-      })
-  },
-})
- 
-export const { setCurrentDocument, clearResults, addDocuments, removeDocument, setOcrProgress, setLlmProgress } = documentSlice.actions
-export const documentReducer = documentSlice.reducer
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/store/index.html b/coverage/src/store/index.html deleted file mode 100644 index e00cfd3..0000000 --- a/coverage/src/store/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Code coverage report for src/store - - - - - - - - - -
-
-

All files src/store

-
- -
- 0% - Statements - 0/195 -
- - -
- 0% - Branches - 0/3 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/195 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
appSlice.ts -
-
0%0/100%0/10%0/10%0/10
documentSlice.ts -
-
0%0/1680%0/10%0/10%0/168
index.ts -
-
0%0/170%0/10%0/10%0/17
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/store/index.ts.html b/coverage/src/store/index.ts.html deleted file mode 100644 index 7ae5312..0000000 --- a/coverage/src/store/index.ts.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - Code coverage report for src/store/index.ts - - - - - - - - - -
-
-

All files / src/store index.ts

-
- -
- 0% - Statements - 0/17 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/17 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { configureStore } from '@reduxjs/toolkit'
-import { useDispatch, useSelector } from 'react-redux'
-import type { TypedUseSelectorHook } from 'react-redux'
-import { appReducer } from './appSlice'
-import { documentReducer } from './documentSlice'
- 
-export const store = configureStore({
-  reducer: {
-    app: appReducer,
-    document: documentReducer,
-  },
-  middleware: (getDefaultMiddleware) => getDefaultMiddleware({
-    serializableCheck: false,
-    immutableCheck: true,
-  }),
-  devTools: true,
-})
- 
-export type RootState = ReturnType<typeof store.getState>
-export type AppDispatch = typeof store.dispatch
- 
-export const useAppDispatch: () => AppDispatch = useDispatch
-export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/theme/index.html b/coverage/src/theme/index.html deleted file mode 100644 index de834f7..0000000 --- a/coverage/src/theme/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for src/theme - - - - - - - - - -
-
-

All files src/theme

-
- -
- 0% - Statements - 0/64 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/64 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.ts -
-
0%0/640%0/10%0/10%0/64
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/theme/index.ts.html b/coverage/src/theme/index.ts.html deleted file mode 100644 index 3e2e9e5..0000000 --- a/coverage/src/theme/index.ts.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - Code coverage report for src/theme/index.ts - - - - - - - - - -
-
-

All files / src/theme index.ts

-
- -
- 0% - Statements - 0/64 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/64 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { createTheme } from '@mui/material/styles'
- 
-export const theme = createTheme({
-  palette: {
-    mode: 'light',
-    background: {
-      default: '#ffffff',
-      paper: '#ffffff',
-    },
-    primary: {
-      main: '#1976d2',
-      light: '#42a5f5',
-      dark: '#1565c0',
-    },
-    secondary: {
-      main: '#dc004e',
-      light: '#ff5983',
-      dark: '#9a0036',
-    },
-    error: {
-      main: '#f44336',
-    },
-    warning: {
-      main: '#ff9800',
-    },
-    info: {
-      main: '#2196f3',
-    },
-    success: {
-      main: '#4caf50',
-    },
-  },
-  typography: {
-    fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
-    h4: {
-      fontWeight: 600,
-    },
-    h6: {
-      fontWeight: 500,
-    },
-  },
-  components: {
-    MuiCssBaseline: {
-      styleOverrides: {
-        body: {
-          backgroundColor: '#ffffff',
-        },
-      },
-    },
-    MuiAppBar: {
-      styleOverrides: {
-        root: {
-          backgroundColor: '#1976d2',
-        },
-      },
-    },
-    MuiPaper: {
-      styleOverrides: {
-        root: {
-          backgroundColor: '#ffffff',
-        },
-      },
-    },
-  },
-})
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/types/index.html b/coverage/src/types/index.html deleted file mode 100644 index fee2506..0000000 --- a/coverage/src/types/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for src/types - - - - - - - - - -
-
-

All files src/types

-
- -
- 0% - Statements - 0/0 -
- - -
- 0% - Branches - 1/1 -
- - -
- 0% - Functions - 1/1 -
- - -
- 0% - Lines - 0/0 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.ts -
-
0%0/00%1/10%1/10%0/0
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/types/index.ts.html b/coverage/src/types/index.ts.html deleted file mode 100644 index da72406..0000000 --- a/coverage/src/types/index.ts.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - Code coverage report for src/types/index.ts - - - - - - - - - -
-
-

All files / src/types index.ts

-
- -
- 0% - Statements - 0/0 -
- - -
- 0% - Branches - 1/1 -
- - -
- 0% - Functions - 1/1 -
- - -
- 0% - Lines - 0/0 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
export interface Document {
-  id: string
-  name: string
-  mimeType: string
-  functionalType?: string
-  size: number
-  uploadDate: Date
-  status: 'uploading' | 'processing' | 'completed' | 'error'
-  previewUrl?: string
-  content?: string
-}
- 
-export interface Identity {
-  id: string
-  type: 'person' | 'company'
-  firstName?: string
-  lastName?: string
-  companyName?: string
-  birthDate?: string
-  nationality?: string
-  address?: Address
-  confidence: number
-}
- 
-export interface Address {
-  street: string
-  city: string
-  postalCode: string
-  country: string
-  coordinates?: { lat: number; lng: number }
-}
- 
-export interface Property {
-  id: string
-  type: 'house' | 'apartment' | 'land' | 'commercial'
-  address: Address
-  surface?: number
-  cadastralReference?: string
-  value?: number
-}
- 
-export interface Contract {
-  id: string
-  type: 'sale' | 'rent' | 'inheritance' | 'donation'
-  parties: Identity[]
-  property?: Property
-  amount?: number
-  date?: string
-  clauses: string[]
-}
- 
-export interface ExtractionResult {
-  documentId: string
-  text: string
-  language: string
-  documentType: string
-  identities: Identity[]
-  addresses: Address[]
-  properties: Property[]
-  contracts: Contract[]
-  signatures: string[]
-  confidence: number
-  confidenceReasons?: string[]
-}
- 
-export interface AnalysisResult {
-  documentId: string
-  documentType: string
-  isCNI: boolean
-  country?: string
-  verificationResult?: {
-    numberValid: boolean
-    formatValid: boolean
-    checksumValid: boolean
-  }
-  credibilityScore: number
-  summary: string
-  recommendations: string[]
-  confidenceReasons?: string[]
-}
- 
-export interface ContextResult {
-  documentId: string
-  cadastreData?: Record<string, unknown>
-  georisquesData?: Record<string, unknown>
-  geofoncierData?: Record<string, unknown>
-  bodaccData?: Record<string, unknown>
-  infogreffeData?: Record<string, unknown>
-  lastUpdated: Date
-}
- 
-export interface ConseilResult {
-  documentId: string
-  analysis: string
-  recommendations: string[]
-  risks: string[]
-  nextSteps: string[]
-  generatedAt: Date
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/views/AnalyseView.tsx.html b/coverage/src/views/AnalyseView.tsx.html deleted file mode 100644 index a6626ab..0000000 --- a/coverage/src/views/AnalyseView.tsx.html +++ /dev/null @@ -1,826 +0,0 @@ - - - - - - Code coverage report for src/views/AnalyseView.tsx - - - - - - - - - -
-
-

All files / src/views AnalyseView.tsx

-
- -
- 0% - Statements - 0/184 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/184 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useEffect } from 'react'
-import {
-  Box,
-  Typography,
-  Paper,
-  Card,
-  CardContent,
-  Chip,
-  List,
-  ListItem,
-  ListItemText,
-  ListItemIcon,
-  Alert,
-  LinearProgress,
-} from '@mui/material'
-import {
-  CheckCircle,
-  Error,
-  Warning,
-  Flag,
-  Security,
-  Assessment,
-  Info,
-} from '@mui/icons-material'
-import type { ChipProps, LinearProgressProps } from '@mui/material'
-import { useAppDispatch, useAppSelector } from '../store'
-import { analyzeDocument, getConseil, getContextData } from '../store/documentSlice'
-import { Layout } from '../components/Layout'
- 
-export default function AnalyseView() {
-  const dispatch = useAppDispatch()
-  const { currentDocument, analysisResult, loading, conseilResult, contextResult } = useAppSelector((state) => state.document)
- 
-  useEffect(() => {
-    if (!currentDocument) return
-    if (!analysisResult) dispatch(analyzeDocument(currentDocument.id))
-    if (!conseilResult) dispatch(getConseil(currentDocument.id))
-    if (!contextResult) dispatch(getContextData(currentDocument.id))
-  }, [currentDocument, analysisResult, conseilResult, contextResult, dispatch])
- 
-  if (!currentDocument) {
-    return (
-      <Layout>
-        <Alert severity="info">
-          Veuillez d'abord téléverser et sélectionner un document.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  if (loading) {
-    return (
-      <Layout>
-        <Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center', mt: 4 }}>
-          <LinearProgress sx={{ width: '100%', mb: 2 }} />
-          <Typography>Analyse en cours...</Typography>
-        </Box>
-      </Layout>
-    )
-  }
- 
-  if (!analysisResult) {
-    return (
-      <Layout>
-        <Alert severity="warning">
-          Aucun résultat d'analyse disponible.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  const getScoreColor = (score: number): ChipProps['color'] => {
-    if (score >= 0.8) return 'success'
-    if (score >= 0.6) return 'warning'
-    return 'error'
-  }
- 
-  const getScoreIcon = (score: number) => {
-    if (score >= 0.8) return <CheckCircle color="success" />
-    if (score >= 0.6) return <Warning color="warning" />
-    return <Error color="error" />
-  }
- 
-  return (
-    <Layout>
-      <Typography variant="h4" gutterBottom>
-        Analyse du document
-      </Typography>
- 
-      <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
-        {/* Résumé général */}
-        <Paper sx={{ p: 2 }}>
-          <Typography variant="h6" gutterBottom>
-            Résumé de l'analyse
-          </Typography>
-          <Box sx={{ display: 'flex', gap: 2, flexWrap: 'wrap', alignItems: 'center' }}>
-            <Chip
-              icon={<Assessment />}
-              label={`Avancement: ${Math.round(analysisResult.credibilityScore * 100)}%`}
-              color={getScoreColor(analysisResult.credibilityScore)}
-              variant="filled"
-            />
-            {analysisResult.isCNI && (
-              <Chip
-                icon={<Flag />}
-                label={`Pays: ${analysisResult.country}`}
-                color="secondary"
-                variant="outlined"
-              />
-            )}
-          </Box>
-        </Paper>
- 
-        {/* Cas CNI */}
-        {analysisResult.isCNI && (
-          <Card>
-            <CardContent>
-              <Typography variant="h6" gutterBottom>
-                <Security sx={{ mr: 1, verticalAlign: 'middle' }} />
-                Vérification CNI
-              </Typography>
-              {analysisResult.verificationResult && (
-                <List>
-                  <ListItem>
-                    <ListItemIcon>
-                      {analysisResult.verificationResult.numberValid ? (
-                        <CheckCircle color="success" />
-                      ) : (
-                        <Error color="error" />
-                      )}
-                    </ListItemIcon>
-                    <ListItemText
-                      primary="Numéro valide"
-                      secondary={
-                        analysisResult.verificationResult.numberValid
-                          ? 'Le numéro de CNI est valide'
-                          : 'Le numéro de CNI est invalide'
-                      }
-                    />
-                  </ListItem>
-                  <ListItem>
-                    <ListItemIcon>
-                      {analysisResult.verificationResult.formatValid ? (
-                        <CheckCircle color="success" />
-                      ) : (
-                        <Error color="error" />
-                      )}
-                    </ListItemIcon>
-                    <ListItemText
-                      primary="Format valide"
-                      secondary={
-                        analysisResult.verificationResult.formatValid
-                          ? 'Le format du numéro est correct'
-                          : 'Le format du numéro est incorrect'
-                      }
-                    />
-                  </ListItem>
-                  <ListItem>
-                    <ListItemIcon>
-                      {analysisResult.verificationResult.checksumValid ? (
-                        <CheckCircle color="success" />
-                      ) : (
-                        <Error color="error" />
-                      )}
-                    </ListItemIcon>
-                    <ListItemText
-                      primary="Checksum valide"
-                      secondary={
-                        analysisResult.verificationResult.checksumValid
-                          ? 'La somme de contrĂŽle est correcte'
-                          : 'La somme de contrĂŽle est incorrecte'
-                      }
-                    />
-                  </ListItem>
-                </List>
-              )}
-            </CardContent>
-          </Card>
-        )}
- 
-        <Box sx={{ display: 'flex', gap: 3, flexWrap: 'wrap' }}>
-          {/* Score de vraisemblance */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  Score de vraisemblance
-                </Typography>
-                <Box sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>
-                  {getScoreIcon(analysisResult.credibilityScore)}
-                  <Typography variant="h4" sx={{ ml: 2 }}>
-                    {(analysisResult.credibilityScore * 100).toFixed(1)}%
-                  </Typography>
-                </Box>
-                <LinearProgress
-                  variant="determinate"
-                  value={analysisResult.credibilityScore * 100}
-                  color={getScoreColor(analysisResult.credibilityScore) as LinearProgressProps['color']}
-                  sx={{ height: 10, borderRadius: 5 }}
-                />
-                <Typography variant="body2" color="text.secondary" sx={{ mt: 1 }}>
-                  {analysisResult.credibilityScore >= 0.8
-                    ? 'Document trĂšs fiable'
-                    : analysisResult.credibilityScore >= 0.6
-                    ? 'Document moyennement fiable'
-                    : 'Document peu fiable - vérification recommandée'}
-                </Typography>
-              </CardContent>
-            </Card>
-          </Box>
- 
-          {/* SynthĂšse */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  SynthĂšse
-                </Typography>
-                <Typography variant="body1" sx={{ whiteSpace: 'pre-wrap' }}>
-                  {analysisResult.summary}
-                </Typography>
-              </CardContent>
-            </Card>
-          </Box>
-        </Box>
- 
-        {/* Recommandations */}
-        <Card>
-          <CardContent>
-            <Typography variant="h6" gutterBottom>
-              Recommandations
-            </Typography>
-            <List>
-              {analysisResult.recommendations.map((recommendation, index) => (
-                <ListItem key={index}>
-                  <ListItemIcon>
-                    <Info color="primary" />
-                  </ListItemIcon>
-                  <ListItemText primary={recommendation} />
-                </ListItem>
-              ))}
-            </List>
-          </CardContent>
-        </Card>
-      </Box>
-    </Layout>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/views/ConseilView.tsx.html b/coverage/src/views/ConseilView.tsx.html deleted file mode 100644 index b59a33c..0000000 --- a/coverage/src/views/ConseilView.tsx.html +++ /dev/null @@ -1,814 +0,0 @@ - - - - - - Code coverage report for src/views/ConseilView.tsx - - - - - - - - - -
-
-

All files / src/views ConseilView.tsx

-
- -
- 0% - Statements - 0/187 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/187 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useEffect } from 'react'
-import {
-  Box,
-  Typography,
-  Paper,
-  Card,
-  CardContent,
-  List,
-  ListItem,
-  ListItemText,
-  ListItemIcon,
-  Alert,
-  Chip,
-  Button,
-  CircularProgress,
-} from '@mui/material'
-import {
-  Lightbulb,
-  Warning,
-  CheckCircle,
-  TrendingUp,
-  Schedule,
-  Psychology,
-} from '@mui/icons-material'
-import type { SvgIconProps } from '@mui/material'
-import { useAppDispatch, useAppSelector } from '../store'
-import { getConseil } from '../store/documentSlice'
-import { Layout } from '../components/Layout'
- 
-export default function ConseilView() {
-  const dispatch = useAppDispatch()
-  const { currentDocument, conseilResult, loading } = useAppSelector(
-    (state) => state.document
-  )
- 
-  useEffect(() => {
-    if (currentDocument && !conseilResult) {
-      dispatch(getConseil(currentDocument.id))
-    }
-  }, [currentDocument, conseilResult, dispatch])
- 
-  if (!currentDocument) {
-    return (
-      <Layout>
-        <Alert severity="info">
-          Veuillez d'abord téléverser et sélectionner un document.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  if (loading) {
-    return (
-      <Layout>
-        <Box sx={{ display: 'flex', justifyContent: 'center', mt: 4 }}>
-          <CircularProgress />
-          <Typography sx={{ ml: 2 }}>Génération des conseils LLM...</Typography>
-        </Box>
-      </Layout>
-    )
-  }
- 
-  if (!conseilResult) {
-    return (
-      <Layout>
-        <Alert severity="warning">
-          Aucun conseil disponible.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  const getRiskColor = (risk: string): SvgIconProps['color'] => {
-    if (risk.toLowerCase().includes('élevé') || risk.toLowerCase().includes('critique')) {
-      return 'error'
-    }
-    if (risk.toLowerCase().includes('moyen') || risk.toLowerCase().includes('modéré')) {
-      return 'warning'
-    }
-    return 'info'
-  }
- 
-  return (
-    <Layout>
-      <Typography variant="h4" gutterBottom>
-        <Psychology sx={{ mr: 1, verticalAlign: 'middle' }} />
-        Conseil LLM
-      </Typography>
- 
-      <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
-        {/* Analyse LLM */}
-        <Card>
-          <CardContent>
-            <Typography variant="h6" gutterBottom>
-              <Lightbulb sx={{ mr: 1, verticalAlign: 'middle' }} />
-              Analyse LLM
-            </Typography>
-            <Paper
-              sx={{
-                p: 2,
-                bgcolor: 'grey.50',
-                border: '1px solid',
-                borderColor: 'grey.200',
-              }}
-            >
-              <Typography variant="body1" sx={{ whiteSpace: 'pre-wrap' }}>
-                {conseilResult.analysis}
-              </Typography>
-            </Paper>
-            <Typography variant="caption" color="text.secondary" sx={{ mt: 1, display: 'block' }}>
-              Généré le {new Date(conseilResult.generatedAt).toLocaleString()}
-            </Typography>
-          </CardContent>
-        </Card>
- 
-        <Box sx={{ display: 'flex', gap: 3, flexWrap: 'wrap' }}>
-          {/* Recommandations */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  <CheckCircle sx={{ mr: 1, verticalAlign: 'middle' }} />
-                  Recommandations ({conseilResult.recommendations.length})
-                </Typography>
-                <List dense>
-                  {conseilResult.recommendations.map((recommendation, index) => (
-                    <ListItem key={index}>
-                      <ListItemIcon>
-                        <CheckCircle color="success" />
-                      </ListItemIcon>
-                      <ListItemText primary={recommendation} />
-                    </ListItem>
-                  ))}
-                </List>
-              </CardContent>
-            </Card>
-          </Box>
- 
-          {/* Risques identifiés */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  <Warning sx={{ mr: 1, verticalAlign: 'middle' }} />
-                  Risques identifiés ({conseilResult.risks.length})
-                </Typography>
-                <List dense>
-                  {conseilResult.risks.map((risk, index) => (
-                    <ListItem key={index}>
-                      <ListItemIcon>
-                        <Warning color={getRiskColor(risk)} />
-                      </ListItemIcon>
-                      <ListItemText
-                        primary={risk}
-                        primaryTypographyProps={{
-                          color: getRiskColor(risk) === 'error' ? 'error.main' :
-                                 getRiskColor(risk) === 'warning' ? 'warning.main' : 'info.main'
-                        }}
-                      />
-                    </ListItem>
-                  ))}
-                </List>
-              </CardContent>
-            </Card>
-          </Box>
-        </Box>
- 
-        {/* Prochaines étapes */}
-        <Card>
-          <CardContent>
-            <Typography variant="h6" gutterBottom>
-              <TrendingUp sx={{ mr: 1, verticalAlign: 'middle' }} />
-              Prochaines étapes recommandées
-            </Typography>
-            <List>
-              {conseilResult.nextSteps.map((step, index) => (
-                <ListItem key={index}>
-                  <ListItemIcon>
-                    <Schedule color="primary" />
-                  </ListItemIcon>
-                  <ListItemText
-                    primary={`Étape ${index + 1}`}
-                    secondary={step}
-                  />
-                </ListItem>
-              ))}
-            </List>
-          </CardContent>
-        </Card>
- 
-        {/* Actions */}
-        <Card>
-          <CardContent>
-            <Typography variant="h6" gutterBottom>
-              Actions
-            </Typography>
-            <Box sx={{ display: 'flex', gap: 2, flexWrap: 'wrap' }}>
-              <Button
-                variant="contained"
-                onClick={() => dispatch(getConseil(currentDocument.id))}
-                disabled={loading}
-              >
-                Régénérer les conseils
-              </Button>
-              <Button variant="outlined">
-                Exporter le rapport
-              </Button>
-              <Button variant="outlined">
-                Partager avec l'équipe
-              </Button>
-            </Box>
-          </CardContent>
-        </Card>
- 
-        {/* Résumé exécutif */}
-        <Paper sx={{ p: 2, bgcolor: 'primary.50' }}>
-          <Typography variant="h6" gutterBottom>
-            Résumé exécutif
-          </Typography>
-          <Box sx={{ display: 'flex', gap: 1, flexWrap: 'wrap', mb: 2 }}>
-            <Chip
-              label={`${conseilResult.recommendations.length} recommandations`}
-              color="success"
-              variant="outlined"
-            />
-            <Chip
-              label={`${conseilResult.risks.length} risques identifiés`}
-              color="warning"
-              variant="outlined"
-            />
-            <Chip
-              label={`${conseilResult.nextSteps.length} étapes suivantes`}
-              color="info"
-              variant="outlined"
-            />
-          </Box>
-          <Typography variant="body2" color="text.secondary">
-            Cette analyse LLM a Ă©tĂ© gĂ©nĂ©rĂ©e automatiquement et doit ĂȘtre validĂ©e par un expert notarial.
-          </Typography>
-        </Paper>
-      </Box>
-    </Layout>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/views/ContexteView.tsx.html b/coverage/src/views/ContexteView.tsx.html deleted file mode 100644 index 33610d1..0000000 --- a/coverage/src/views/ContexteView.tsx.html +++ /dev/null @@ -1,979 +0,0 @@ - - - - - - Code coverage report for src/views/ContexteView.tsx - - - - - - - - - -
-
-

All files / src/views ContexteView.tsx

-
- -
- 0% - Statements - 0/228 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/228 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useEffect } from 'react'
-import {
-  Box,
-  Typography,
-  Paper,
-  Card,
-  CardContent,
-  Chip,
-  Alert,
-  Button,
-  Accordion,
-  AccordionSummary,
-  AccordionDetails,
-  CircularProgress,
-} from '@mui/material'
-import {
-  ExpandMore,
-  LocationOn,
-  Warning,
-  CheckCircle,
-  Error,
-  Public,
-  Business,
-  Home,
-} from '@mui/icons-material'
-import type { ChipProps } from '@mui/material'
-import { useAppDispatch, useAppSelector } from '../store'
-import { getContextData } from '../store/documentSlice'
-import { Layout } from '../components/Layout'
- 
-export default function ContexteView() {
-  const dispatch = useAppDispatch()
-  const { currentDocument, contextResult, loading } = useAppSelector(
-    (state) => state.document
-  )
- 
-  useEffect(() => {
-    if (currentDocument && !contextResult) {
-      dispatch(getContextData(currentDocument.id))
-    }
-  }, [currentDocument, contextResult, dispatch])
- 
-  if (!currentDocument) {
-    return (
-      <Layout>
-        <Alert severity="info">
-          Veuillez d'abord téléverser et sélectionner un document.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  if (loading) {
-    return (
-      <Layout>
-        <Box sx={{ display: 'flex', justifyContent: 'center', mt: 4 }}>
-          <CircularProgress />
-          <Typography sx={{ ml: 2 }}>Recherche d'informations contextuelles...</Typography>
-        </Box>
-      </Layout>
-    )
-  }
- 
-  if (!contextResult) {
-    return (
-      <Layout>
-        <Alert severity="warning">
-          Aucune donnée contextuelle disponible.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  const getStatusIcon = (hasData: boolean) => {
-    return hasData ? <CheckCircle color="success" /> : <Error color="error" />
-  }
- 
-  const getStatusColor = (hasData: boolean): ChipProps['color'] => {
-    return hasData ? 'success' : 'error'
-  }
- 
-  return (
-    <Layout>
-      <Typography variant="h4" gutterBottom>
-        Informations contextuelles
-      </Typography>
- 
-      <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
-        {/* Résumé des sources */}
-        <Paper sx={{ p: 2 }}>
-          <Typography variant="h6" gutterBottom>
-            Sources de données consultées
-          </Typography>
-          <Box sx={{ display: 'flex', gap: 1, flexWrap: 'wrap' }}>
-            <Chip
-              icon={getStatusIcon(!!contextResult.cadastreData)}
-              label="Cadastre"
-              color={getStatusColor(!!contextResult.cadastreData)}
-              variant="outlined"
-            />
-            <Chip
-              icon={getStatusIcon(!!contextResult.georisquesData)}
-              label="Géorisques"
-              color={getStatusColor(!!contextResult.georisquesData)}
-              variant="outlined"
-            />
-            <Chip
-              icon={getStatusIcon(!!contextResult.geofoncierData)}
-              label="Géofoncier"
-              color={getStatusColor(!!contextResult.geofoncierData)}
-              variant="outlined"
-            />
-            <Chip
-              icon={getStatusIcon(!!contextResult.bodaccData)}
-              label="BODACC"
-              color={getStatusColor(!!contextResult.bodaccData)}
-              variant="outlined"
-            />
-            <Chip
-              icon={getStatusIcon(!!contextResult.infogreffeData)}
-              label="Infogreffe"
-              color={getStatusColor(!!contextResult.infogreffeData)}
-              variant="outlined"
-            />
-          </Box>
-          <Typography variant="caption" color="text.secondary" sx={{ mt: 1, display: 'block' }}>
-            DerniĂšre mise Ă  jour: {new Date(contextResult.lastUpdated).toLocaleString()}
-          </Typography>
-        </Paper>
- 
-        {/* Données cadastrales */}
-        <Accordion>
-          <AccordionSummary expandIcon={<ExpandMore />}>
-            <Box sx={{ display: 'flex', alignItems: 'center' }}>
-              <Home sx={{ mr: 1 }} />
-              <Typography variant="h6">Données cadastrales</Typography>
-              <Chip
-                label={contextResult.cadastreData ? 'Disponible' : 'Non disponible'}
-                color={getStatusColor(!!contextResult.cadastreData)}
-                size="small"
-                sx={{ ml: 2 }}
-              />
-            </Box>
-          </AccordionSummary>
-          <AccordionDetails>
-            {contextResult.cadastreData ? (
-              <Box>
-                <Typography variant="body2" sx={{ whiteSpace: 'pre-wrap' }}>
-                  {JSON.stringify(contextResult.cadastreData, null, 2)}
-                </Typography>
-              </Box>
-            ) : (
-              <Alert severity="info">
-                Aucune donnée cadastrale trouvée pour ce document.
-              </Alert>
-            )}
-          </AccordionDetails>
-        </Accordion>
- 
-        {/* Données Géorisques */}
-        <Accordion>
-          <AccordionSummary expandIcon={<ExpandMore />}>
-            <Box sx={{ display: 'flex', alignItems: 'center' }}>
-              <Warning sx={{ mr: 1 }} />
-              <Typography variant="h6">Données Géorisques</Typography>
-              <Chip
-                label={contextResult.georisquesData ? 'Disponible' : 'Non disponible'}
-                color={getStatusColor(!!contextResult.georisquesData)}
-                size="small"
-                sx={{ ml: 2 }}
-              />
-            </Box>
-          </AccordionSummary>
-          <AccordionDetails>
-            {contextResult.georisquesData ? (
-              <Box>
-                <Typography variant="body2" sx={{ whiteSpace: 'pre-wrap' }}>
-                  {JSON.stringify(contextResult.georisquesData, null, 2)}
-                </Typography>
-              </Box>
-            ) : (
-              <Alert severity="info">
-                Aucune donnée Géorisques trouvée pour ce document.
-              </Alert>
-            )}
-          </AccordionDetails>
-        </Accordion>
- 
-        {/* Données Géofoncier */}
-        <Accordion>
-          <AccordionSummary expandIcon={<ExpandMore />}>
-            <Box sx={{ display: 'flex', alignItems: 'center' }}>
-              <LocationOn sx={{ mr: 1 }} />
-              <Typography variant="h6">Données Géofoncier</Typography>
-              <Chip
-                label={contextResult.geofoncierData ? 'Disponible' : 'Non disponible'}
-                color={getStatusColor(!!contextResult.geofoncierData)}
-                size="small"
-                sx={{ ml: 2 }}
-              />
-            </Box>
-          </AccordionSummary>
-          <AccordionDetails>
-            {contextResult.geofoncierData ? (
-              <Box>
-                <Typography variant="body2" sx={{ whiteSpace: 'pre-wrap' }}>
-                  {JSON.stringify(contextResult.geofoncierData, null, 2)}
-                </Typography>
-              </Box>
-            ) : (
-              <Alert severity="info">
-                Aucune donnée Géofoncier trouvée pour ce document.
-              </Alert>
-            )}
-          </AccordionDetails>
-        </Accordion>
- 
-        {/* Données BODACC */}
-        <Accordion>
-          <AccordionSummary expandIcon={<ExpandMore />}>
-            <Box sx={{ display: 'flex', alignItems: 'center' }}>
-              <Public sx={{ mr: 1 }} />
-              <Typography variant="h6">Données BODACC</Typography>
-              <Chip
-                label={contextResult.bodaccData ? 'Disponible' : 'Non disponible'}
-                color={getStatusColor(!!contextResult.bodaccData)}
-                size="small"
-                sx={{ ml: 2 }}
-              />
-            </Box>
-          </AccordionSummary>
-          <AccordionDetails>
-            {contextResult.bodaccData ? (
-              <Box>
-                <Typography variant="body2" sx={{ whiteSpace: 'pre-wrap' }}>
-                  {JSON.stringify(contextResult.bodaccData, null, 2)}
-                </Typography>
-              </Box>
-            ) : (
-              <Alert severity="info">
-                Aucune donnée BODACC trouvée pour ce document.
-              </Alert>
-            )}
-          </AccordionDetails>
-        </Accordion>
- 
-        {/* Données Infogreffe */}
-        <Accordion>
-          <AccordionSummary expandIcon={<ExpandMore />}>
-            <Box sx={{ display: 'flex', alignItems: 'center' }}>
-              <Business sx={{ mr: 1 }} />
-              <Typography variant="h6">Données Infogreffe</Typography>
-              <Chip
-                label={contextResult.infogreffeData ? 'Disponible' : 'Non disponible'}
-                color={getStatusColor(!!contextResult.infogreffeData)}
-                size="small"
-                sx={{ ml: 2 }}
-              />
-            </Box>
-          </AccordionSummary>
-          <AccordionDetails>
-            {contextResult.infogreffeData ? (
-              <Box>
-                <Typography variant="body2" sx={{ whiteSpace: 'pre-wrap' }}>
-                  {JSON.stringify(contextResult.infogreffeData, null, 2)}
-                </Typography>
-              </Box>
-            ) : (
-              <Alert severity="info">
-                Aucune donnée Infogreffe trouvée pour ce document.
-              </Alert>
-            )}
-          </AccordionDetails>
-        </Accordion>
- 
-        {/* Actions */}
-        <Card>
-          <CardContent>
-            <Typography variant="h6" gutterBottom>
-              Actions
-            </Typography>
-            <Box sx={{ display: 'flex', gap: 2 }}>
-              <Button
-                variant="contained"
-                onClick={() => dispatch(getContextData(currentDocument.id))}
-                disabled={loading}
-              >
-                Actualiser les données
-              </Button>
-              <Button variant="outlined">
-                Exporter le rapport
-              </Button>
-            </Box>
-          </CardContent>
-        </Card>
-      </Box>
-    </Layout>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/views/ExtractionView.tsx.html b/coverage/src/views/ExtractionView.tsx.html deleted file mode 100644 index a4039bb..0000000 --- a/coverage/src/views/ExtractionView.tsx.html +++ /dev/null @@ -1,1282 +0,0 @@ - - - - - - Code coverage report for src/views/ExtractionView.tsx - - - - - - - - - -
-
-

All files / src/views ExtractionView.tsx

-
- -
- 0% - Statements - 0/320 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/320 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useEffect } from 'react'
-import {
-  Box,
-  Typography,
-  Paper,
-  Card,
-  CardContent,
-  Chip,
-  List,
-  ListItem,
-  ListItemText,
-  Alert,
-  CircularProgress,
-  Button,
-  Tooltip,
-} from '@mui/material'
-import {
-  Person,
-  LocationOn,
-  Home,
-  Description,
-  Language,
-  Verified,
-} from '@mui/icons-material'
-import { useAppDispatch, useAppSelector } from '../store'
-import { extractDocument, setCurrentDocument } from '../store/documentSlice'
-import { Layout } from '../components/Layout'
- 
-export default function ExtractionView() {
-  const dispatch = useAppDispatch()
-  const { currentDocument, extractionResult, extractionById, loading, documents, progressById } = useAppSelector((state) => state.document)
- 
-  useEffect(() => {
-    if (!currentDocument) return
-    const cached = extractionById[currentDocument.id]
-    if (!cached) dispatch(extractDocument(currentDocument.id))
-  }, [currentDocument, extractionById, dispatch])
- 
-  const currentIndex = currentDocument ? Math.max(0, documents.findIndex(d => d.id === currentDocument.id)) : -1
-  const hasPrev = currentIndex > 0
-  const hasNext = currentIndex >= 0 && currentIndex < documents.length - 1
- 
-  const gotoDoc = (index: number) => {
-    const doc = documents[index]
-    if (!doc) return
-    dispatch(setCurrentDocument(doc))
-    // Laisser l'effet décider si une nouvelle extraction est nécessaire
-  }
- 
-  if (!currentDocument) {
-    return (
-      <Layout>
-        <Alert severity="info">
-          Veuillez d'abord téléverser et sélectionner un document.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  if (loading) {
-    return (
-      <Layout>
-        <Box sx={{ display: 'flex', justifyContent: 'center', mt: 4, alignItems: 'center', gap: 2 }}>
-          <CircularProgress size={24} />
-          <Typography>Extraction en cours...</Typography>
-        </Box>
-      </Layout>
-    )
-  }
- 
-  const activeResult = currentDocument ? (extractionById[currentDocument.id] || extractionResult) : extractionResult
- 
-  if (!activeResult) {
-    return (
-      <Layout>
-        <Alert severity="warning">
-          Aucun résultat d'extraction disponible.
-        </Alert>
-      </Layout>
-    )
-  }
- 
-  return (
-    <Layout>
-      <Typography variant="h4" gutterBottom>
-        Extraction des données
-      </Typography>
- 
-      {/* Navigation entre documents */}
-      {documents.length > 0 && (
-        <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 2 }}>
-          <Button size="small" variant="outlined" disabled={!hasPrev} onClick={() => gotoDoc(currentIndex - 1)}>
-            Précédent
-          </Button>
-          <Typography variant="body2">
-            {currentIndex + 1} / {documents.length}
-          </Typography>
-          <Button size="small" variant="outlined" disabled={!hasNext} onClick={() => gotoDoc(currentIndex + 1)}>
-            Suivant
-          </Button>
-          {currentDocument && (
-            <Typography variant="body2" sx={{ ml: 2 }} color="text.secondary">
-              Document: {currentDocument.name}
-            </Typography>
-          )}
-        </Box>
-      )}
- 
-      <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
-        {/* Informations générales */}
-        <Paper sx={{ p: 2 }}>
-          <Typography variant="h6" gutterBottom>
-            Informations générales
-          </Typography>
-          <Box sx={{ display: 'flex', gap: 1, flexWrap: 'wrap' }}>
-            <Chip
-              icon={<Language />}
-              label={`Langue: ${ activeResult.language }`}
-              color="primary"
-              variant="outlined"
-            />
-            <Chip
-              icon={<Description />}
-              label={`Type: ${ activeResult.documentType }`}
-              color="secondary"
-              variant="outlined"
-            />
-            <Tooltip
-              arrow
-              title={
-                (activeResult.confidenceReasons && activeResult.confidenceReasons.length > 0)
-                  ? activeResult.confidenceReasons.join(' ‱ ')
-                  : `Évaluation automatique basĂ©e sur le contenu et le type (${activeResult.documentType}).`
-              }
-            >
-              <Chip
-                icon={<Verified />}
-                label={`Confiance: ${Math.round(activeResult.confidence * 100)}%`}
-                color={activeResult.confidence > 0.8 ? 'success' : 'warning'}
-                variant="outlined"
-              />
-            </Tooltip>
-          </Box>
-          {/* Progression OCR/LLM si en cours pour ce document */}
-          {currentDocument && progressById[currentDocument.id] && loading && (
-            <Box display="flex" alignItems="center" gap={2} sx={{ mt: 1 }}>
-              <Box sx={{ width: 140 }}>
-                <Typography variant="caption">OCR</Typography>
-                <Box sx={{ height: 6, bgcolor: 'grey.300', borderRadius: 1 }}>
-                  <Box sx={{ width: `${progressById[currentDocument.id].ocr}%`, height: '100%', bgcolor: 'primary.main', borderRadius: 1 }} />
-                </Box>
-              </Box>
-              <Box sx={{ width: 140 }}>
-                <Typography variant="caption">LLM</Typography>
-                <Box sx={{ height: 6, bgcolor: 'grey.300', borderRadius: 1 }}>
-                  <Box sx={{ width: `${progressById[currentDocument.id].llm}%`, height: '100%', bgcolor: 'info.main', borderRadius: 1 }} />
-                </Box>
-              </Box>
-            </Box>
-          )}
-          {/* Aperçu rapide du document */}
-          {currentDocument && (
-            <Box sx={{ mt: 2 }}>
-              <Typography variant="subtitle2" color="text.secondary" gutterBottom>
-                Aperçu du document
-              </Typography>
-              {(() => {
-                const isPDF = currentDocument.mimeType.includes('pdf') || currentDocument.name.toLowerCase().endsWith('.pdf')
-                const isImage =
-                  currentDocument.mimeType.startsWith('image/') ||
-                  ['.png', '.jpg', '.jpeg', '.gif', '.webp'].some((ext) => currentDocument.name.toLowerCase().endsWith(ext))
-                if (isImage && currentDocument.previewUrl) {
-                  return (
-                    <Box sx={{
-                      border: '1px solid', borderColor: 'grey.300', borderRadius: 1, p: 1,
-                      display: 'inline-block', maxWidth: '100%'
-                    }}>
-                      <img
-                        src={currentDocument.previewUrl}
-                        alt={currentDocument.name}
-                        style={{ maxWidth: 320, maxHeight: 240, objectFit: 'contain' }}
-                      />
-                    </Box>
-                  )
-                }
-                if (isPDF && currentDocument.previewUrl) {
-                  return (
-                    <Box sx={{
-                      border: '1px solid', borderColor: 'grey.300', borderRadius: 1,
-                      overflow: 'hidden', width: 360, height: 240
-                    }}>
-                      <iframe
-                        src={`${currentDocument.previewUrl}#toolbar=0&navpanes=0&scrollbar=0&page=1&view=FitH`}
-                        width="100%"
-                        height="100%"
-                        style={{ border: 'none' }}
-                        title={`Aperçu rapide de ${currentDocument.name}`}
-                      />
-                    </Box>
-                  )
-                }
-                return null
-              })()}
-            </Box>
-          )}
-        </Paper>
- 
-        <Box sx={{ display: 'flex', gap: 3, flexWrap: 'wrap' }}>
-          {/* Identités */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  <Person sx={{ mr: 1, verticalAlign: 'middle' }} />
-                  Identités ({activeResult.identities?.length || 0})
-                </Typography>
-                <List dense>
-                  {(activeResult.identities || []).map((identity, index) => (
-                    <ListItem key={index}>
-                      <ListItemText
-                        primary={
-                          identity.type === 'person'
-                            ? `${identity.firstName} ${identity.lastName}`
-                            : identity.companyName
-                        }
-                        secondaryTypographyProps={{ component: 'span' }}
-                        secondary={
-                          <Box component="span">
-                            <Typography variant="caption" display="block" component="span">
-                              Type: {identity.type}
-                            </Typography>
-                            {identity.birthDate && (
-                              <Typography variant="caption" display="block" component="span">
-                                Naissance: {identity.birthDate}
-                              </Typography>
-                            )}
-                            {identity.nationality && (
-                              <Typography variant="caption" display="block" component="span">
-                                Nationalité: {identity.nationality}
-                              </Typography>
-                            )}
-                            <Typography variant="caption" display="block" component="span">
-                              Confiance: {(identity.confidence * 100).toFixed(1)}%
-                            </Typography>
-                          </Box>
-                        }
-                      />
-                    </ListItem>
-                  ))}
-                </List>
-              </CardContent>
-            </Card>
-          </Box>
- 
-          {/* Adresses */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  <LocationOn sx={{ mr: 1, verticalAlign: 'middle' }} />
-                  Adresses ({activeResult.addresses?.length || 0})
-                </Typography>
-                <List dense>
-                  {(activeResult.addresses || []).map((address, index) => (
-                    <ListItem key={index}>
-                      <ListItemText
-                        primary={`${address.street}, ${address.city}`}
-                        secondary={`${address.postalCode} ${address.country}`}
-                      />
-                    </ListItem>
-                  ))}
-                </List>
-              </CardContent>
-            </Card>
-          </Box>
-        </Box>
- 
-        <Box sx={{ display: 'flex', gap: 3, flexWrap: 'wrap' }}>
-          {/* Biens */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  <Home sx={{ mr: 1, verticalAlign: 'middle' }} />
-                  Biens ({activeResult.properties?.length || 0})
-                </Typography>
-                <List dense>
-                  {(activeResult.properties || []).map((property, index) => (
-                    <ListItem key={index}>
-                      <ListItemText
-                        primary={`${property.type} - ${property.address.city}`}
-                        secondaryTypographyProps={{ component: 'span' }}
-                        secondary={
-                          <Box component="span">
-                            <Typography variant="caption" display="block" component="span">
-                              {property.address.street}
-                            </Typography>
-                            {property.surface && (
-                              <Typography variant="caption" display="block" component="span">
-                                Surface: {property.surface} mÂČ
-                              </Typography>
-                            )}
-                            {property.cadastralReference && (
-                              <Typography variant="caption" display="block" component="span">
-                                Cadastre: {property.cadastralReference}
-                              </Typography>
-                            )}
-                          </Box>
-                        }
-                      />
-                    </ListItem>
-                  ))}
-                </List>
-              </CardContent>
-            </Card>
-          </Box>
- 
-          {/* Contrats */}
-          <Box sx={{ flex: '1 1 300px' }}>
-            <Card>
-              <CardContent>
-                <Typography variant="h6" gutterBottom>
-                  <Description sx={{ mr: 1, verticalAlign: 'middle' }} />
-                  Contrats ({activeResult.contracts?.length || 0})
-                </Typography>
-                <List dense>
-                  {(activeResult.contracts || []).map((contract, index) => (
-                    <ListItem key={index}>
-                      <ListItemText
-                        primary={`${contract.type} - ${contract.amount ? `${contract.amount}€` : 'Montant non spĂ©cifiĂ©'}`}
-                        secondaryTypographyProps={{ component: 'span' }}
-                        secondary={
-                          <Box component="span">
-                            <Typography variant="caption" display="block" component="span">
-                              Parties: {contract.parties.length}
-                            </Typography>
-                            {contract.date && (
-                              <Typography variant="caption" display="block" component="span">
-                                Date: {contract.date}
-                              </Typography>
-                            )}
-                            <Typography variant="caption" display="block" component="span">
-                              Clauses: {contract.clauses.length}
-                            </Typography>
-                          </Box>
-                        }
-                      />
-                    </ListItem>
-                  ))}
-                </List>
-              </CardContent>
-            </Card>
-          </Box>
-        </Box>
- 
-        {/* Signatures */}
-        <Card>
-          <CardContent>
-            <Typography variant="h6" gutterBottom>
-              Signatures détectées ({activeResult.signatures?.length || 0})
-            </Typography>
-            <List dense>
-              {(activeResult.signatures || []).map((signature: any, index: number) => {
-                const label = typeof signature === 'string'
-                  ? signature
-                  : signature?.name || signature?.title || signature?.date || JSON.stringify(signature)
-                return (
-                  <ListItem key={index}>
-                    <ListItemText primary={label} />
-                  </ListItem>
-                )
-              })}
-            </List>
-          </CardContent>
-        </Card>
- 
-        {/* Texte extrait */}
-        <Card>
-          <CardContent>
-            <Typography variant="h6" gutterBottom>
-              Texte extrait
-            </Typography>
-            <Paper
-              sx={{
-                p: 2,
-                bgcolor: 'grey.50',
-                maxHeight: 300,
-                overflow: 'auto',
-              }}
-            >
-              <Typography variant="body2" sx={{ whiteSpace: 'pre-wrap' }}>
-                {activeResult.text}
-              </Typography>
-            </Paper>
-          </CardContent>
-        </Card>
-      </Box>
-    </Layout>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/views/UploadView.tsx.html b/coverage/src/views/UploadView.tsx.html deleted file mode 100644 index 35f19cc..0000000 --- a/coverage/src/views/UploadView.tsx.html +++ /dev/null @@ -1,943 +0,0 @@ - - - - - - Code coverage report for src/views/UploadView.tsx - - - - - - - - - -
-
-

All files / src/views UploadView.tsx

-
- -
- 0% - Statements - 0/233 -
- - -
- 0% - Branches - 0/1 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/233 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useCallback, useState, useEffect } from 'react'
-import { useDropzone } from 'react-dropzone'
-import { Box, Typography, Paper, CircularProgress, Alert, Button, Chip, Grid } from '@mui/material'
-import {
-  CloudUpload,
-  CheckCircle,
-  Error,
-  HourglassEmpty,
-  Visibility,
-} from '@mui/icons-material'
-import { useAppDispatch, useAppSelector } from '../store'
-import { uploadDocument, removeDocument, addDocuments, setCurrentDocument } from '../store/documentSlice'
-import { Layout } from '../components/Layout'
-import { FilePreview } from '../components/FilePreview'
-import { getTestFilesList, loadTestFile, filterSupportedFiles } from '../services/testFilesApi'
-import type { Document } from '../types'
- 
-export default function UploadView() {
-  const dispatch = useAppDispatch()
-  const { documents, error, progressById, extractionById } = useAppSelector((state) => state.document)
-  const [previewDocument, setPreviewDocument] = useState<Document | null>(null)
-  const [bootstrapped, setBootstrapped] = useState(false)
- 
-  const onDrop = useCallback(
-    (acceptedFiles: File[]) => {
-      acceptedFiles.forEach((file) => {
-        dispatch(uploadDocument(file))
-          .unwrap()
-          .then(async (doc) => {
-            if (!extractionById[doc.id]) {
-              const { extractDocument } = await import('../store/documentSlice')
-              dispatch(extractDocument(doc.id))
-            }
-          })
-          .catch(() => {})
-      })
-    },
-    [dispatch, extractionById]
-  )
- 
-  const { getRootProps, getInputProps, isDragActive } = useDropzone({
-    onDrop,
-    accept: {
-      'application/pdf': ['.pdf'],
-      'image/*': ['.png', '.jpg', '.jpeg', '.tiff'],
-      'text/plain': ['.txt'],
-      'text/markdown': ['.md'],
-      'application/vnd.openxmlformats-officedocument.wordprocessingml.document': ['.docx'],
-    },
-    multiple: true,
-  })
- 
-  const getStatusIcon = (status: string) => {
-    switch (status) {
-      case 'completed':
-        return <CheckCircle color="success" />
-      case 'error':
-        return <Error color="error" />
-      case 'processing':
-        return <CircularProgress size={20} />
-      default:
-        return <HourglassEmpty color="action" />
-    }
-  }
- 
-  const getStatusColor = (status: string) => {
-    switch (status) {
-      case 'completed':
-        return 'success'
-      case 'error':
-        return 'error'
-      case 'processing':
-        return 'warning'
-      default:
-        return 'default'
-    }
-  }
- 
-  // Bootstrap: charger dynamiquement les fichiers de test du dossier test-files (en dev uniquement)
-  useEffect(() => {
-    if (bootstrapped || !import.meta.env.DEV) return
-    
-    const load = async () => {
-      console.log('🔄 [BOOTSTRAP] Chargement des fichiers de test...')
-      
-      try {
-        // Récupérer la liste des fichiers disponibles
-        const testFiles = await getTestFilesList()
-        console.log('📁 [BOOTSTRAP] Fichiers trouvĂ©s:', testFiles.map(f => f.name))
-        
-        // Filtrer les fichiers supportés
-        const supportedFiles = filterSupportedFiles(testFiles)
-        console.log('✅ [BOOTSTRAP] Fichiers supportĂ©s:', supportedFiles.map(f => f.name))
-        
-        if (supportedFiles.length === 0) {
-          console.log('⚠ [BOOTSTRAP] Aucun fichier de test supportĂ© trouvĂ©')
-          setBootstrapped(true)
-          return
-        }
-        
-        const created: Document[] = []
-        
-        // Charger chaque fichier supporté
-        for (const fileInfo of supportedFiles) {
-          try {
-            console.log(`📄 [BOOTSTRAP] Chargement de ${fileInfo.name}...`)
-            const file = await loadTestFile(fileInfo.name)
-            
-            if (file) {
-              // Simuler upload local
-              const previewUrl = URL.createObjectURL(file)
-              const document: Document = {
-                id: `boot-${fileInfo.name}-${Date.now()}`,
-                name: fileInfo.name,
-                mimeType: fileInfo.type || 'application/octet-stream',
-                functionalType: undefined,
-                size: fileInfo.size,
-                uploadDate: new Date(),
-                status: 'completed',
-                previewUrl,
-              }
-              
-              created.push(document)
-              console.log(`✅ [BOOTSTRAP] ${fileInfo.name} chargĂ© (${(fileInfo.size / 1024).toFixed(1)} KB)`)
-            }
-          } catch (error) {
-            console.warn(`❌ [BOOTSTRAP] Erreur lors du chargement de ${fileInfo.name}:`, error)
-          }
-        }
-        
-        if (created.length > 0) {
-          console.log(`🎉 [BOOTSTRAP] ${created.length} fichiers chargĂ©s avec succĂšs`)
-          
-          // Ajouter les documents au store
-          dispatch(addDocuments(created))
-          
-          // Définir le premier document comme document courant
-          dispatch(setCurrentDocument(created[0]))
-          
-          // Déclencher l'extraction pour afficher les barres de progression
-          const { extractDocument } = await import('../store/documentSlice')
-          created.forEach((doc) => {
-            if (!extractionById[doc.id]) {
-              console.log(`🔍 [BOOTSTRAP] DĂ©clenchement de l'extraction pour ${doc.name}`)
-              dispatch(extractDocument(doc.id))
-            }
-          })
-        } else {
-          console.log('⚠ [BOOTSTRAP] Aucun fichier n\'a pu ĂȘtre chargĂ©')
-        }
-        
-        setBootstrapped(true)
-      } catch (error) {
-        console.error('❌ [BOOTSTRAP] Erreur lors du chargement des fichiers de test:', error)
-        setBootstrapped(true)
-      }
-    }
-    
-    load()
-  }, [dispatch, bootstrapped, extractionById])
- 
-  return (
-    <Layout>
-      <Typography variant="h4" gutterBottom>
-        Téléversement de documents
-      </Typography>
- 
-      <Paper
-        {...getRootProps()}
-        sx={{
-          p: 4,
-          textAlign: 'center',
-          cursor: 'pointer',
-          border: '2px dashed',
-          borderColor: isDragActive ? 'primary.main' : 'grey.300',
-          bgcolor: isDragActive ? 'action.hover' : 'background.paper',
-          '&:hover': {
-            borderColor: 'primary.main',
-            bgcolor: 'action.hover',
-          },
-        }}
-      >
-        <input {...getInputProps()} />
-        <CloudUpload sx={{ fontSize: 48, color: 'primary.main', mb: 2 }} />
-        <Typography variant="h6" gutterBottom>
-          {isDragActive
-            ? 'Déposez les fichiers ici...'
-            : 'Glissez-déposez vos documents ou cliquez pour sélectionner'}
-        </Typography>
-        <Typography variant="body2" color="text.secondary">
-          Formats acceptés: PDF, PNG, JPG, JPEG, TIFF, TXT, MD, DOCX
-        </Typography>
-      </Paper>
- 
-      {error && (
-        <Alert severity="error" sx={{ mt: 2 }}>
-          {error}
-        </Alert>
-      )}
- 
-      {documents.length > 0 && (
-        <Box sx={{ mt: 3 }}>
-          <Typography variant="h6" gutterBottom>
-            Documents téléversés ({documents.length})
-          </Typography>
- 
-          <Grid container spacing={2}>
-            {documents.map((doc, index) => (
-              <Grid size={{ xs: 12, md: 6 }} key={`${doc.id}-${index}`}>
-                <Paper sx={{ p: 2 }}>
-                  <Box display="flex" justifyContent="space-between" alignItems="center" mb={2}>
-                    <Box display="flex" alignItems="center" gap={1}>
-                      {getStatusIcon(doc.status)}
-                      <Typography variant="subtitle1" noWrap>
-                        {doc.name}
-                      </Typography>
-                    </Box>
-                    <Box display="flex" gap={1}>
-                      <Button
-                        size="small"
-                        startIcon={<Visibility />}
-                        onClick={() => setPreviewDocument(doc)}
-                        disabled={doc.status !== 'completed'}
-                      >
-                        Aperçu
-                      </Button>
-                      <Button
-                        size="small"
-                        color="error"
-                        onClick={() => dispatch(removeDocument(doc.id))}
-                      >
-                        Supprimer
-                      </Button>
-                    </Box>
-                  </Box>
- 
-                  <Box display="flex" gap={1} flexWrap="wrap" alignItems="center">
-                    <Chip
-                      label={doc.functionalType || doc.mimeType}
-                      size="small"
-                      variant="outlined"
-                    />
-                    <Chip
-                      label={doc.status}
-                      size="small"
-                      color={getStatusColor(doc.status) as 'success' | 'error' | 'warning' | 'default'}
-                    />
-                    <Chip
-                      label={`${(doc.size / 1024 / 1024).toFixed(2)} MB`}
-                      size="small"
-                      variant="outlined"
-                    />
-                    {progressById[doc.id] && (
-                      <Box display="flex" alignItems="center" gap={1} sx={{ ml: 1, minWidth: 160 }}>
-                        <Box sx={{ width: 70 }}>
-                          <Typography variant="caption">OCR</Typography>
-                          <Box sx={{ height: 6, bgcolor: 'grey.300', borderRadius: 1 }}>
-                            <Box sx={{ width: `${progressById[doc.id].ocr}%`, height: '100%', bgcolor: 'primary.main', borderRadius: 1 }} />
-                          </Box>
-                        </Box>
-                        <Box sx={{ width: 70 }}>
-                          <Typography variant="caption">LLM</Typography>
-                          <Box sx={{ height: 6, bgcolor: 'grey.300', borderRadius: 1 }}>
-                            <Box sx={{ width: `${progressById[doc.id].llm}%`, height: '100%', bgcolor: 'info.main', borderRadius: 1 }} />
-                          </Box>
-                        </Box>
-                      </Box>
-                    )}
-                  </Box>
-                </Paper>
-              </Grid>
-            ))}
-          </Grid>
-        </Box>
-      )}
- 
-      {/* Aperçu du document */}
-      {previewDocument && (
-        <FilePreview
-          document={previewDocument}
-          onClose={() => setPreviewDocument(null)}
-        />
-      )}
-    </Layout>
-  )
-}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/src/views/index.html b/coverage/src/views/index.html deleted file mode 100644 index 9d68feb..0000000 --- a/coverage/src/views/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for src/views - - - - - - - - - -
-
-

All files src/views

-
- -
- 0% - Statements - 0/1152 -
- - -
- 0% - Branches - 0/5 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0% - Lines - 0/1152 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
AnalyseView.tsx -
-
0%0/1840%0/10%0/10%0/184
ConseilView.tsx -
-
0%0/1870%0/10%0/10%0/187
ContexteView.tsx -
-
0%0/2280%0/10%0/10%0/228
ExtractionView.tsx -
-
0%0/3200%0/10%0/10%0/320
UploadView.tsx -
-
0%0/2330%0/10%0/10%0/233
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e59fb16..b999750 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7567,6 +7567,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/src/router/index.tsx b/src/router/index.tsx index a8b3b8c..07eed8e 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -1,7 +1,15 @@ -import { lazy, Suspense } from 'react' -import { createBrowserRouter, RouterProvider } from 'react-router-dom' -import { Box, CircularProgress, Typography } from '@mui/material' +import React from 'react' +import { Routes, Route } from 'react-router-dom' +import UploadView from '../views/UploadView' +<<<<<<< HEAD +export const AppRouter: React.FC = () => { + return ( + + } /> + + ) +======= const UploadView = lazy(() => import('../views/UploadView')) const ExtractionView = lazy(() => import('../views/ExtractionView')) const ContexteView = lazy(() => import('../views/ContexteView')) @@ -23,4 +31,5 @@ const router = createBrowserRouter([ export const AppRouter = () => { return +>>>>>>> 43a0ad607071d3d73ef984c26fe63991aeef352e } diff --git a/vk_swiftshader_icd.json b/vk_swiftshader_icd.json new file mode 100644 index 0000000..525fbc5 --- /dev/null +++ b/vk_swiftshader_icd.json @@ -0,0 +1 @@ +{"file_format_version": "1.0.0", "ICD": {"library_path": ".\\vk_swiftshader.dll", "api_version": "1.0.5"}} \ No newline at end of file