vsegments 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/QUICKSTART.md CHANGED
@@ -99,6 +99,9 @@ vsegments -f image.jpg --json results.json
99
99
 
100
100
  # Customize visualization
101
101
  vsegments -f image.jpg -o output.jpg --line-width 6 --font-size 18
102
+
103
+ # Works with SVG files too
104
+ vsegments -f diagram.svg -o output.jpg
102
105
  ```
103
106
 
104
107
  ## Next Steps
@@ -125,7 +128,7 @@ export GOOGLE_API_KEY="your-key-here"
125
128
  ### Module Not Found
126
129
 
127
130
  ```
128
- Error: Cannot find module 'canvas'
131
+ Error: Cannot find module 'canvas' or 'sharp'
129
132
  ```
130
133
 
131
134
  **Solution:** Reinstall dependencies:
@@ -134,16 +137,18 @@ Error: Cannot find module 'canvas'
134
137
  npm install
135
138
  ```
136
139
 
137
- On macOS, you may need:
140
+ **Note:** This package uses `sharp` for better cross-platform compatibility. If you encounter build issues:
138
141
 
142
+ On macOS:
139
143
  ```bash
140
144
  brew install pkg-config cairo pango libpng jpeg giflib librsvg
145
+ npm install
141
146
  ```
142
147
 
143
148
  On Ubuntu/Debian:
144
-
145
149
  ```bash
146
150
  sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
151
+ npm install
147
152
  ```
148
153
 
149
154
  ---
package/README.md CHANGED
@@ -12,6 +12,7 @@
12
12
  - 🎯 **Bounding Box Detection**: Automatically detect and label objects in images
13
13
  - 🎨 **Segmentation Masks**: Generate precise segmentation masks for identified objects
14
14
  - 🖼️ **Visualization**: Beautiful visualization with customizable colors, fonts, and transparency
15
+ - 📐 **SVG Support**: Automatic conversion of SVG files to raster format
15
16
  - 🛠️ **CLI Tool**: Powerful command-line interface for batch processing
16
17
  - 📦 **Library**: Clean JavaScript API for integration into your projects
17
18
  - 🚀 **Multiple Models**: Support for various Gemini models (Flash, Pro, etc.)
@@ -319,6 +320,7 @@ node segmentation.js path/to/image.jpg
319
320
  - `@google/generative-ai` ^0.21.0
320
321
  - `canvas` ^2.11.2
321
322
  - `commander` ^12.0.0
323
+ - `sharp` ^0.33.0 (for SVG support and better compatibility)
322
324
 
323
325
  ## Publishing to npm
324
326
 
@@ -1,72 +1,76 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1764938703619" clover="3.2.0">
3
- <project timestamp="1764938703620" name="All files">
4
- <metrics statements="211" coveredstatements="82" conditionals="73" coveredconditionals="24" methods="24" coveredmethods="12" elements="308" coveredelements="118" complexity="0" loc="211" ncloc="211" packages="1" files="5" classes="5"/>
2
+ <coverage generated="1764946707411" clover="3.2.0">
3
+ <project timestamp="1764946707411" name="All files">
4
+ <metrics statements="215" coveredstatements="82" conditionals="75" coveredconditionals="24" methods="24" coveredmethods="12" elements="314" coveredelements="118" complexity="0" loc="215" ncloc="215" packages="1" files="5" classes="5"/>
5
5
  <file name="core.js" path="/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/core.js">
6
- <metrics statements="63" coveredstatements="23" conditionals="35" coveredconditionals="15" methods="7" coveredmethods="3"/>
6
+ <metrics statements="67" coveredstatements="23" conditionals="37" coveredconditionals="15" methods="7" coveredmethods="3"/>
7
7
  <line num="5" count="2" type="stmt"/>
8
8
  <line num="6" count="2" type="stmt"/>
9
9
  <line num="7" count="2" type="stmt"/>
10
10
  <line num="8" count="2" type="stmt"/>
11
11
  <line num="9" count="2" type="stmt"/>
12
12
  <line num="15" count="2" type="stmt"/>
13
- <line num="27" count="23" type="cond" truecount="2" falsecount="0"/>
14
- <line num="29" count="23" type="cond" truecount="2" falsecount="0"/>
13
+ <line num="27" count="24" type="cond" truecount="2" falsecount="0"/>
14
+ <line num="29" count="24" type="cond" truecount="2" falsecount="0"/>
15
15
  <line num="30" count="1" type="stmt"/>
16
- <line num="35" count="22" type="cond" truecount="2" falsecount="0"/>
17
- <line num="36" count="22" type="cond" truecount="2" falsecount="0"/>
18
- <line num="37" count="22" type="cond" truecount="2" falsecount="0"/>
19
- <line num="40" count="22" type="stmt"/>
20
- <line num="43" count="22" type="stmt"/>
21
- <line num="49" count="22" type="stmt"/>
16
+ <line num="35" count="23" type="cond" truecount="2" falsecount="0"/>
17
+ <line num="36" count="23" type="cond" truecount="2" falsecount="0"/>
18
+ <line num="37" count="23" type="cond" truecount="2" falsecount="0"/>
19
+ <line num="40" count="23" type="stmt"/>
20
+ <line num="43" count="23" type="stmt"/>
21
+ <line num="49" count="23" type="stmt"/>
22
22
  <line num="63" count="0" type="stmt"/>
23
23
  <line num="64" count="0" type="stmt"/>
24
- <line num="65" count="0" type="stmt"/>
25
- <line num="67" count="0" type="stmt"/>
26
- <line num="81" count="9" type="stmt"/>
27
- <line num="82" count="9" type="stmt"/>
28
- <line num="89" count="9" type="cond" truecount="2" falsecount="0"/>
29
- <line num="98" count="3" type="stmt"/>
30
- <line num="100" count="3" type="cond" truecount="2" falsecount="0"/>
31
- <line num="101" count="1" type="stmt"/>
32
- <line num="104" count="3" type="stmt"/>
33
- <line num="121" count="0" type="stmt"/>
34
- <line num="124" count="0" type="stmt"/>
35
- <line num="127" count="0" type="stmt"/>
24
+ <line num="67" count="0" type="cond" truecount="0" falsecount="2"/>
25
+ <line num="68" count="0" type="stmt"/>
26
+ <line num="69" count="0" type="stmt"/>
27
+ <line num="72" count="0" type="stmt"/>
28
+ <line num="75" count="0" type="stmt"/>
29
+ <line num="77" count="0" type="stmt"/>
30
+ <line num="91" count="10" type="stmt"/>
31
+ <line num="92" count="10" type="stmt"/>
32
+ <line num="100" count="10" type="cond" truecount="2" falsecount="0"/>
33
+ <line num="109" count="3" type="stmt"/>
34
+ <line num="111" count="3" type="cond" truecount="2" falsecount="0"/>
35
+ <line num="112" count="1" type="stmt"/>
36
+ <line num="115" count="3" type="stmt"/>
37
+ <line num="132" count="0" type="stmt"/>
36
38
  <line num="135" count="0" type="stmt"/>
37
- <line num="136" count="0" type="stmt"/>
38
- <line num="143" count="0" type="stmt"/>
39
- <line num="144" count="0" type="stmt"/>
40
- <line num="146" count="0" type="cond" truecount="0" falsecount="2"/>
39
+ <line num="138" count="0" type="stmt"/>
40
+ <line num="146" count="0" type="stmt"/>
41
41
  <line num="147" count="0" type="stmt"/>
42
- <line num="151" count="0" type="stmt"/>
42
+ <line num="154" count="0" type="stmt"/>
43
43
  <line num="155" count="0" type="stmt"/>
44
- <line num="157" count="0" type="stmt"/>
45
- <line num="172" count="0" type="stmt"/>
46
- <line num="175" count="0" type="stmt"/>
47
- <line num="178" count="0" type="stmt"/>
48
- <line num="179" count="0" type="stmt"/>
49
- <line num="180" count="0" type="stmt"/>
44
+ <line num="157" count="0" type="cond" truecount="0" falsecount="2"/>
45
+ <line num="158" count="0" type="stmt"/>
46
+ <line num="162" count="0" type="stmt"/>
47
+ <line num="166" count="0" type="stmt"/>
48
+ <line num="168" count="0" type="stmt"/>
50
49
  <line num="183" count="0" type="stmt"/>
50
+ <line num="186" count="0" type="stmt"/>
51
+ <line num="189" count="0" type="stmt"/>
51
52
  <line num="190" count="0" type="stmt"/>
52
53
  <line num="191" count="0" type="stmt"/>
53
- <line num="198" count="0" type="stmt"/>
54
- <line num="199" count="0" type="stmt"/>
55
- <line num="201" count="0" type="cond" truecount="0" falsecount="2"/>
54
+ <line num="194" count="0" type="stmt"/>
55
+ <line num="201" count="0" type="stmt"/>
56
56
  <line num="202" count="0" type="stmt"/>
57
- <line num="206" count="0" type="stmt"/>
57
+ <line num="209" count="0" type="stmt"/>
58
58
  <line num="210" count="0" type="stmt"/>
59
- <line num="211" count="0" type="stmt"/>
59
+ <line num="212" count="0" type="cond" truecount="0" falsecount="2"/>
60
60
  <line num="213" count="0" type="stmt"/>
61
- <line num="233" count="0" type="stmt"/>
62
- <line num="236" count="0" type="stmt"/>
63
- <line num="239" count="0" type="cond" truecount="0" falsecount="2"/>
64
- <line num="240" count="0" type="stmt"/>
65
- <line num="246" count="0" type="stmt"/>
66
- <line num="253" count="0" type="cond" truecount="0" falsecount="2"/>
67
- <line num="254" count="0" type="stmt"/>
61
+ <line num="217" count="0" type="stmt"/>
62
+ <line num="221" count="0" type="stmt"/>
63
+ <line num="222" count="0" type="stmt"/>
64
+ <line num="224" count="0" type="stmt"/>
65
+ <line num="244" count="0" type="stmt"/>
66
+ <line num="247" count="0" type="stmt"/>
67
+ <line num="250" count="0" type="cond" truecount="0" falsecount="2"/>
68
+ <line num="251" count="0" type="stmt"/>
68
69
  <line num="257" count="0" type="stmt"/>
69
- <line num="261" count="2" type="stmt"/>
70
+ <line num="264" count="0" type="cond" truecount="0" falsecount="2"/>
71
+ <line num="265" count="0" type="stmt"/>
72
+ <line num="268" count="0" type="stmt"/>
73
+ <line num="272" count="2" type="stmt"/>
70
74
  </file>
71
75
  <file name="index.js" path="/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/index.js">
72
76
  <metrics statements="8" coveredstatements="8" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
@@ -1,4 +1,4 @@
1
- {"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/core.js": {"path":"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/core.js","statementMap":{"0":{"start":{"line":5,"column":31},"end":{"line":5,"column":63}},"1":{"start":{"line":6,"column":22},"end":{"line":6,"column":39}},"2":{"start":{"line":7,"column":11},"end":{"line":7,"column":33}},"3":{"start":{"line":8,"column":31},"end":{"line":8,"column":50}},"4":{"start":{"line":9,"column":55},"end":{"line":9,"column":73}},"5":{"start":{"line":15,"column":4},"end":{"line":15,"column":26}},"6":{"start":{"line":27,"column":4},"end":{"line":27,"column":63}},"7":{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},"8":{"start":{"line":30,"column":6},"end":{"line":32,"column":8}},"9":{"start":{"line":35,"column":4},"end":{"line":35,"column":57}},"10":{"start":{"line":36,"column":4},"end":{"line":36,"column":85}},"11":{"start":{"line":37,"column":4},"end":{"line":37,"column":47}},"12":{"start":{"line":40,"column":4},"end":{"line":40,"column":53}},"13":{"start":{"line":43,"column":4},"end":{"line":46,"column":13}},"14":{"start":{"line":49,"column":4},"end":{"line":54,"column":6}},"15":{"start":{"line":63,"column":24},"end":{"line":63,"column":52}},"16":{"start":{"line":64,"column":23},"end":{"line":64,"column":53}},"17":{"start":{"line":65,"column":21},"end":{"line":65,"column":49}},"18":{"start":{"line":67,"column":4},"end":{"line":72,"column":6}},"19":{"start":{"line":81,"column":16},"end":{"line":81,"column":55}},"20":{"start":{"line":82,"column":22},"end":{"line":88,"column":5}},"21":{"start":{"line":89,"column":4},"end":{"line":89,"column":42}},"22":{"start":{"line":98,"column":23},"end":{"line":98,"column":53}},"23":{"start":{"line":100,"column":4},"end":{"line":102,"column":5}},"24":{"start":{"line":101,"column":6},"end":{"line":101,"column":48}},"25":{"start":{"line":104,"column":4},"end":{"line":104,"column":24}},"26":{"start":{"line":121,"column":8},"end":{"line":121,"column":15}},"27":{"start":{"line":124,"column":18},"end":{"line":124,"column":50}},"28":{"start":{"line":127,"column":18},"end":{"line":131,"column":6}},"29":{"start":{"line":135,"column":4},"end":{"line":152,"column":5}},"30":{"start":{"line":136,"column":6},"end":{"line":141,"column":9}},"31":{"start":{"line":143,"column":6},"end":{"line":143,"column":33}},"32":{"start":{"line":144,"column":6},"end":{"line":144,"column":29}},"33":{"start":{"line":146,"column":6},"end":{"line":150,"column":7}},"34":{"start":{"line":147,"column":8},"end":{"line":149,"column":10}},"35":{"start":{"line":151,"column":6},"end":{"line":151,"column":18}},"36":{"start":{"line":155,"column":18},"end":{"line":155,"column":42}},"37":{"start":{"line":157,"column":4},"end":{"line":157,"column":53}},"38":{"start":{"line":172,"column":8},"end":{"line":172,"column":15}},"39":{"start":{"line":175,"column":18},"end":{"line":175,"column":50}},"40":{"start":{"line":178,"column":16},"end":{"line":178,"column":42}},"41":{"start":{"line":179,"column":21},"end":{"line":179,"column":30}},"42":{"start":{"line":180,"column":22},"end":{"line":180,"column":32}},"43":{"start":{"line":183,"column":18},"end":{"line":186,"column":6}},"44":{"start":{"line":190,"column":4},"end":{"line":207,"column":5}},"45":{"start":{"line":191,"column":6},"end":{"line":196,"column":9}},"46":{"start":{"line":198,"column":6},"end":{"line":198,"column":33}},"47":{"start":{"line":199,"column":6},"end":{"line":199,"column":29}},"48":{"start":{"line":201,"column":6},"end":{"line":205,"column":7}},"49":{"start":{"line":202,"column":8},"end":{"line":204,"column":10}},"50":{"start":{"line":206,"column":6},"end":{"line":206,"column":18}},"51":{"start":{"line":210,"column":18},"end":{"line":210,"column":42}},"52":{"start":{"line":211,"column":18},"end":{"line":211,"column":73}},"53":{"start":{"line":213,"column":4},"end":{"line":213,"column":54}},"54":{"start":{"line":233,"column":8},"end":{"line":233,"column":15}},"55":{"start":{"line":236,"column":19},"end":{"line":236,"column":59}},"56":{"start":{"line":239,"column":4},"end":{"line":250,"column":5}},"57":{"start":{"line":240,"column":6},"end":{"line":244,"column":9}},"58":{"start":{"line":246,"column":6},"end":{"line":249,"column":9}},"59":{"start":{"line":253,"column":4},"end":{"line":255,"column":5}},"60":{"start":{"line":254,"column":6},"end":{"line":254,"column":43}},"61":{"start":{"line":257,"column":4},"end":{"line":257,"column":18}},"62":{"start":{"line":261,"column":0},"end":{"line":261,"column":27}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":26,"column":2},"end":{"line":26,"column":3}},"loc":{"start":{"line":26,"column":28},"end":{"line":55,"column":3}},"line":26},"1":{"name":"(anonymous_1)","decl":{"start":{"line":62,"column":2},"end":{"line":62,"column":3}},"loc":{"start":{"line":62,"column":30},"end":{"line":73,"column":3}},"line":62},"2":{"name":"(anonymous_2)","decl":{"start":{"line":80,"column":2},"end":{"line":80,"column":3}},"loc":{"start":{"line":80,"column":25},"end":{"line":90,"column":3}},"line":80},"3":{"name":"(anonymous_3)","decl":{"start":{"line":97,"column":2},"end":{"line":97,"column":3}},"loc":{"start":{"line":97,"column":45},"end":{"line":105,"column":3}},"line":97},"4":{"name":"(anonymous_4)","decl":{"start":{"line":116,"column":2},"end":{"line":116,"column":3}},"loc":{"start":{"line":116,"column":45},"end":{"line":158,"column":3}},"line":116},"5":{"name":"(anonymous_5)","decl":{"start":{"line":168,"column":2},"end":{"line":168,"column":3}},"loc":{"start":{"line":168,"column":41},"end":{"line":214,"column":3}},"line":168},"6":{"name":"(anonymous_6)","decl":{"start":{"line":227,"column":2},"end":{"line":227,"column":3}},"loc":{"start":{"line":227,"column":51},"end":{"line":258,"column":3}},"line":227}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":14},"end":{"line":26,"column":26}},"type":"default-arg","locations":[{"start":{"line":26,"column":24},"end":{"line":26,"column":26}}],"line":26},"1":{"loc":{"start":{"line":27,"column":18},"end":{"line":27,"column":62}},"type":"binary-expr","locations":[{"start":{"line":27,"column":18},"end":{"line":27,"column":32}},{"start":{"line":27,"column":36},"end":{"line":27,"column":62}}],"line":27},"2":{"loc":{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},{"start":{},"end":{}}],"line":29},"3":{"loc":{"start":{"line":35,"column":17},"end":{"line":35,"column":56}},"type":"binary-expr","locations":[{"start":{"line":35,"column":17},"end":{"line":35,"column":30}},{"start":{"line":35,"column":34},"end":{"line":35,"column":56}}],"line":35},"4":{"loc":{"start":{"line":36,"column":23},"end":{"line":36,"column":84}},"type":"cond-expr","locations":[{"start":{"line":36,"column":59},"end":{"line":36,"column":78}},{"start":{"line":36,"column":81},"end":{"line":36,"column":84}}],"line":36},"5":{"loc":{"start":{"line":37,"column":22},"end":{"line":37,"column":46}},"type":"binary-expr","locations":[{"start":{"line":37,"column":22},"end":{"line":37,"column":40}},{"start":{"line":37,"column":44},"end":{"line":37,"column":46}}],"line":37},"6":{"loc":{"start":{"line":89,"column":11},"end":{"line":89,"column":41}},"type":"binary-expr","locations":[{"start":{"line":89,"column":11},"end":{"line":89,"column":25}},{"start":{"line":89,"column":29},"end":{"line":89,"column":41}}],"line":89},"7":{"loc":{"start":{"line":100,"column":4},"end":{"line":102,"column":5}},"type":"if","locations":[{"start":{"line":100,"column":4},"end":{"line":102,"column":5}},{"start":{},"end":{}}],"line":100},"8":{"loc":{"start":{"line":116,"column":31},"end":{"line":116,"column":43}},"type":"default-arg","locations":[{"start":{"line":116,"column":41},"end":{"line":116,"column":43}}],"line":116},"9":{"loc":{"start":{"line":118,"column":6},"end":{"line":118,"column":45}},"type":"default-arg","locations":[{"start":{"line":118,"column":15},"end":{"line":118,"column":45}}],"line":118},"10":{"loc":{"start":{"line":119,"column":6},"end":{"line":119,"column":31}},"type":"default-arg","locations":[{"start":{"line":119,"column":27},"end":{"line":119,"column":31}}],"line":119},"11":{"loc":{"start":{"line":120,"column":6},"end":{"line":120,"column":20}},"type":"default-arg","locations":[{"start":{"line":120,"column":16},"end":{"line":120,"column":20}}],"line":120},"12":{"loc":{"start":{"line":146,"column":6},"end":{"line":150,"column":7}},"type":"if","locations":[{"start":{"line":146,"column":6},"end":{"line":150,"column":7}},{"start":{},"end":{}}],"line":146},"13":{"loc":{"start":{"line":168,"column":27},"end":{"line":168,"column":39}},"type":"default-arg","locations":[{"start":{"line":168,"column":37},"end":{"line":168,"column":39}}],"line":168},"14":{"loc":{"start":{"line":170,"column":6},"end":{"line":170,"column":269}},"type":"default-arg","locations":[{"start":{"line":170,"column":15},"end":{"line":170,"column":269}}],"line":170},"15":{"loc":{"start":{"line":171,"column":6},"end":{"line":171,"column":20}},"type":"default-arg","locations":[{"start":{"line":171,"column":16},"end":{"line":171,"column":20}}],"line":171},"16":{"loc":{"start":{"line":201,"column":6},"end":{"line":205,"column":7}},"type":"if","locations":[{"start":{"line":201,"column":6},"end":{"line":205,"column":7}},{"start":{},"end":{}}],"line":201},"17":{"loc":{"start":{"line":227,"column":37},"end":{"line":227,"column":49}},"type":"default-arg","locations":[{"start":{"line":227,"column":47},"end":{"line":227,"column":49}}],"line":227},"18":{"loc":{"start":{"line":229,"column":6},"end":{"line":229,"column":23}},"type":"default-arg","locations":[{"start":{"line":229,"column":19},"end":{"line":229,"column":23}}],"line":229},"19":{"loc":{"start":{"line":230,"column":6},"end":{"line":230,"column":19}},"type":"default-arg","locations":[{"start":{"line":230,"column":18},"end":{"line":230,"column":19}}],"line":230},"20":{"loc":{"start":{"line":231,"column":6},"end":{"line":231,"column":19}},"type":"default-arg","locations":[{"start":{"line":231,"column":17},"end":{"line":231,"column":19}}],"line":231},"21":{"loc":{"start":{"line":232,"column":6},"end":{"line":232,"column":17}},"type":"default-arg","locations":[{"start":{"line":232,"column":14},"end":{"line":232,"column":17}}],"line":232},"22":{"loc":{"start":{"line":239,"column":4},"end":{"line":250,"column":5}},"type":"if","locations":[{"start":{"line":239,"column":4},"end":{"line":250,"column":5}},{"start":{"line":245,"column":11},"end":{"line":250,"column":5}}],"line":239},"23":{"loc":{"start":{"line":253,"column":4},"end":{"line":255,"column":5}},"type":"if","locations":[{"start":{"line":253,"column":4},"end":{"line":255,"column":5}},{"start":{},"end":{}}],"line":253}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":23,"7":23,"8":1,"9":22,"10":22,"11":22,"12":22,"13":22,"14":22,"15":0,"16":0,"17":0,"18":0,"19":9,"20":9,"21":9,"22":3,"23":3,"24":1,"25":3,"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":2},"f":{"0":23,"1":0,"2":9,"3":3,"4":0,"5":0,"6":0},"b":{"0":[2],"1":[23,2],"2":[1,22],"3":[22,21],"4":[2,20],"5":[22,17],"6":[9,2],"7":[1,2],"8":[0],"9":[0],"10":[0],"11":[0],"12":[0,0],"13":[0],"14":[0],"15":[0],"16":[0,0],"17":[0],"18":[0],"19":[0],"20":[0],"21":[0],"22":[0,0],"23":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3b2c399c630d53b96e78d95a49182292a67e620d"}
1
+ {"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/core.js": {"path":"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/core.js","statementMap":{"0":{"start":{"line":5,"column":31},"end":{"line":5,"column":63}},"1":{"start":{"line":6,"column":22},"end":{"line":6,"column":39}},"2":{"start":{"line":7,"column":11},"end":{"line":7,"column":33}},"3":{"start":{"line":8,"column":31},"end":{"line":8,"column":50}},"4":{"start":{"line":9,"column":55},"end":{"line":9,"column":73}},"5":{"start":{"line":15,"column":4},"end":{"line":15,"column":26}},"6":{"start":{"line":27,"column":4},"end":{"line":27,"column":63}},"7":{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},"8":{"start":{"line":30,"column":6},"end":{"line":32,"column":8}},"9":{"start":{"line":35,"column":4},"end":{"line":35,"column":57}},"10":{"start":{"line":36,"column":4},"end":{"line":36,"column":85}},"11":{"start":{"line":37,"column":4},"end":{"line":37,"column":47}},"12":{"start":{"line":40,"column":4},"end":{"line":40,"column":53}},"13":{"start":{"line":43,"column":4},"end":{"line":46,"column":13}},"14":{"start":{"line":49,"column":4},"end":{"line":54,"column":6}},"15":{"start":{"line":63,"column":22},"end":{"line":63,"column":50}},"16":{"start":{"line":64,"column":19},"end":{"line":64,"column":47}},"17":{"start":{"line":67,"column":4},"end":{"line":73,"column":5}},"18":{"start":{"line":68,"column":20},"end":{"line":68,"column":36}},"19":{"start":{"line":69,"column":6},"end":{"line":71,"column":20}},"20":{"start":{"line":72,"column":6},"end":{"line":72,"column":29}},"21":{"start":{"line":75,"column":23},"end":{"line":75,"column":53}},"22":{"start":{"line":77,"column":4},"end":{"line":82,"column":6}},"23":{"start":{"line":91,"column":16},"end":{"line":91,"column":55}},"24":{"start":{"line":92,"column":22},"end":{"line":99,"column":5}},"25":{"start":{"line":100,"column":4},"end":{"line":100,"column":42}},"26":{"start":{"line":109,"column":23},"end":{"line":109,"column":53}},"27":{"start":{"line":111,"column":4},"end":{"line":113,"column":5}},"28":{"start":{"line":112,"column":6},"end":{"line":112,"column":48}},"29":{"start":{"line":115,"column":4},"end":{"line":115,"column":24}},"30":{"start":{"line":132,"column":8},"end":{"line":132,"column":15}},"31":{"start":{"line":135,"column":18},"end":{"line":135,"column":50}},"32":{"start":{"line":138,"column":18},"end":{"line":142,"column":6}},"33":{"start":{"line":146,"column":4},"end":{"line":163,"column":5}},"34":{"start":{"line":147,"column":6},"end":{"line":152,"column":9}},"35":{"start":{"line":154,"column":6},"end":{"line":154,"column":33}},"36":{"start":{"line":155,"column":6},"end":{"line":155,"column":29}},"37":{"start":{"line":157,"column":6},"end":{"line":161,"column":7}},"38":{"start":{"line":158,"column":8},"end":{"line":160,"column":10}},"39":{"start":{"line":162,"column":6},"end":{"line":162,"column":18}},"40":{"start":{"line":166,"column":18},"end":{"line":166,"column":42}},"41":{"start":{"line":168,"column":4},"end":{"line":168,"column":53}},"42":{"start":{"line":183,"column":8},"end":{"line":183,"column":15}},"43":{"start":{"line":186,"column":18},"end":{"line":186,"column":50}},"44":{"start":{"line":189,"column":16},"end":{"line":189,"column":42}},"45":{"start":{"line":190,"column":21},"end":{"line":190,"column":30}},"46":{"start":{"line":191,"column":22},"end":{"line":191,"column":32}},"47":{"start":{"line":194,"column":18},"end":{"line":197,"column":6}},"48":{"start":{"line":201,"column":4},"end":{"line":218,"column":5}},"49":{"start":{"line":202,"column":6},"end":{"line":207,"column":9}},"50":{"start":{"line":209,"column":6},"end":{"line":209,"column":33}},"51":{"start":{"line":210,"column":6},"end":{"line":210,"column":29}},"52":{"start":{"line":212,"column":6},"end":{"line":216,"column":7}},"53":{"start":{"line":213,"column":8},"end":{"line":215,"column":10}},"54":{"start":{"line":217,"column":6},"end":{"line":217,"column":18}},"55":{"start":{"line":221,"column":18},"end":{"line":221,"column":42}},"56":{"start":{"line":222,"column":18},"end":{"line":222,"column":73}},"57":{"start":{"line":224,"column":4},"end":{"line":224,"column":54}},"58":{"start":{"line":244,"column":8},"end":{"line":244,"column":15}},"59":{"start":{"line":247,"column":19},"end":{"line":247,"column":59}},"60":{"start":{"line":250,"column":4},"end":{"line":261,"column":5}},"61":{"start":{"line":251,"column":6},"end":{"line":255,"column":9}},"62":{"start":{"line":257,"column":6},"end":{"line":260,"column":9}},"63":{"start":{"line":264,"column":4},"end":{"line":266,"column":5}},"64":{"start":{"line":265,"column":6},"end":{"line":265,"column":43}},"65":{"start":{"line":268,"column":4},"end":{"line":268,"column":18}},"66":{"start":{"line":272,"column":0},"end":{"line":272,"column":27}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":26,"column":2},"end":{"line":26,"column":3}},"loc":{"start":{"line":26,"column":28},"end":{"line":55,"column":3}},"line":26},"1":{"name":"(anonymous_1)","decl":{"start":{"line":62,"column":2},"end":{"line":62,"column":3}},"loc":{"start":{"line":62,"column":30},"end":{"line":83,"column":3}},"line":62},"2":{"name":"(anonymous_2)","decl":{"start":{"line":90,"column":2},"end":{"line":90,"column":3}},"loc":{"start":{"line":90,"column":25},"end":{"line":101,"column":3}},"line":90},"3":{"name":"(anonymous_3)","decl":{"start":{"line":108,"column":2},"end":{"line":108,"column":3}},"loc":{"start":{"line":108,"column":45},"end":{"line":116,"column":3}},"line":108},"4":{"name":"(anonymous_4)","decl":{"start":{"line":127,"column":2},"end":{"line":127,"column":3}},"loc":{"start":{"line":127,"column":45},"end":{"line":169,"column":3}},"line":127},"5":{"name":"(anonymous_5)","decl":{"start":{"line":179,"column":2},"end":{"line":179,"column":3}},"loc":{"start":{"line":179,"column":41},"end":{"line":225,"column":3}},"line":179},"6":{"name":"(anonymous_6)","decl":{"start":{"line":238,"column":2},"end":{"line":238,"column":3}},"loc":{"start":{"line":238,"column":51},"end":{"line":269,"column":3}},"line":238}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":14},"end":{"line":26,"column":26}},"type":"default-arg","locations":[{"start":{"line":26,"column":24},"end":{"line":26,"column":26}}],"line":26},"1":{"loc":{"start":{"line":27,"column":18},"end":{"line":27,"column":62}},"type":"binary-expr","locations":[{"start":{"line":27,"column":18},"end":{"line":27,"column":32}},{"start":{"line":27,"column":36},"end":{"line":27,"column":62}}],"line":27},"2":{"loc":{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},{"start":{},"end":{}}],"line":29},"3":{"loc":{"start":{"line":35,"column":17},"end":{"line":35,"column":56}},"type":"binary-expr","locations":[{"start":{"line":35,"column":17},"end":{"line":35,"column":30}},{"start":{"line":35,"column":34},"end":{"line":35,"column":56}}],"line":35},"4":{"loc":{"start":{"line":36,"column":23},"end":{"line":36,"column":84}},"type":"cond-expr","locations":[{"start":{"line":36,"column":59},"end":{"line":36,"column":78}},{"start":{"line":36,"column":81},"end":{"line":36,"column":84}}],"line":36},"5":{"loc":{"start":{"line":37,"column":22},"end":{"line":37,"column":46}},"type":"binary-expr","locations":[{"start":{"line":37,"column":22},"end":{"line":37,"column":40}},{"start":{"line":37,"column":44},"end":{"line":37,"column":46}}],"line":37},"6":{"loc":{"start":{"line":67,"column":4},"end":{"line":73,"column":5}},"type":"if","locations":[{"start":{"line":67,"column":4},"end":{"line":73,"column":5}},{"start":{},"end":{}}],"line":67},"7":{"loc":{"start":{"line":100,"column":11},"end":{"line":100,"column":41}},"type":"binary-expr","locations":[{"start":{"line":100,"column":11},"end":{"line":100,"column":25}},{"start":{"line":100,"column":29},"end":{"line":100,"column":41}}],"line":100},"8":{"loc":{"start":{"line":111,"column":4},"end":{"line":113,"column":5}},"type":"if","locations":[{"start":{"line":111,"column":4},"end":{"line":113,"column":5}},{"start":{},"end":{}}],"line":111},"9":{"loc":{"start":{"line":127,"column":31},"end":{"line":127,"column":43}},"type":"default-arg","locations":[{"start":{"line":127,"column":41},"end":{"line":127,"column":43}}],"line":127},"10":{"loc":{"start":{"line":129,"column":6},"end":{"line":129,"column":45}},"type":"default-arg","locations":[{"start":{"line":129,"column":15},"end":{"line":129,"column":45}}],"line":129},"11":{"loc":{"start":{"line":130,"column":6},"end":{"line":130,"column":31}},"type":"default-arg","locations":[{"start":{"line":130,"column":27},"end":{"line":130,"column":31}}],"line":130},"12":{"loc":{"start":{"line":131,"column":6},"end":{"line":131,"column":20}},"type":"default-arg","locations":[{"start":{"line":131,"column":16},"end":{"line":131,"column":20}}],"line":131},"13":{"loc":{"start":{"line":157,"column":6},"end":{"line":161,"column":7}},"type":"if","locations":[{"start":{"line":157,"column":6},"end":{"line":161,"column":7}},{"start":{},"end":{}}],"line":157},"14":{"loc":{"start":{"line":179,"column":27},"end":{"line":179,"column":39}},"type":"default-arg","locations":[{"start":{"line":179,"column":37},"end":{"line":179,"column":39}}],"line":179},"15":{"loc":{"start":{"line":181,"column":6},"end":{"line":181,"column":269}},"type":"default-arg","locations":[{"start":{"line":181,"column":15},"end":{"line":181,"column":269}}],"line":181},"16":{"loc":{"start":{"line":182,"column":6},"end":{"line":182,"column":20}},"type":"default-arg","locations":[{"start":{"line":182,"column":16},"end":{"line":182,"column":20}}],"line":182},"17":{"loc":{"start":{"line":212,"column":6},"end":{"line":216,"column":7}},"type":"if","locations":[{"start":{"line":212,"column":6},"end":{"line":216,"column":7}},{"start":{},"end":{}}],"line":212},"18":{"loc":{"start":{"line":238,"column":37},"end":{"line":238,"column":49}},"type":"default-arg","locations":[{"start":{"line":238,"column":47},"end":{"line":238,"column":49}}],"line":238},"19":{"loc":{"start":{"line":240,"column":6},"end":{"line":240,"column":23}},"type":"default-arg","locations":[{"start":{"line":240,"column":19},"end":{"line":240,"column":23}}],"line":240},"20":{"loc":{"start":{"line":241,"column":6},"end":{"line":241,"column":19}},"type":"default-arg","locations":[{"start":{"line":241,"column":18},"end":{"line":241,"column":19}}],"line":241},"21":{"loc":{"start":{"line":242,"column":6},"end":{"line":242,"column":19}},"type":"default-arg","locations":[{"start":{"line":242,"column":17},"end":{"line":242,"column":19}}],"line":242},"22":{"loc":{"start":{"line":243,"column":6},"end":{"line":243,"column":17}},"type":"default-arg","locations":[{"start":{"line":243,"column":14},"end":{"line":243,"column":17}}],"line":243},"23":{"loc":{"start":{"line":250,"column":4},"end":{"line":261,"column":5}},"type":"if","locations":[{"start":{"line":250,"column":4},"end":{"line":261,"column":5}},{"start":{"line":256,"column":11},"end":{"line":261,"column":5}}],"line":250},"24":{"loc":{"start":{"line":264,"column":4},"end":{"line":266,"column":5}},"type":"if","locations":[{"start":{"line":264,"column":4},"end":{"line":266,"column":5}},{"start":{},"end":{}}],"line":264}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":24,"7":24,"8":1,"9":23,"10":23,"11":23,"12":23,"13":23,"14":23,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":10,"24":10,"25":10,"26":3,"27":3,"28":1,"29":3,"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,"65":0,"66":2},"f":{"0":24,"1":0,"2":10,"3":3,"4":0,"5":0,"6":0},"b":{"0":[2],"1":[24,2],"2":[1,23],"3":[23,22],"4":[2,21],"5":[23,18],"6":[0,0],"7":[10,2],"8":[1,2],"9":[0],"10":[0],"11":[0],"12":[0],"13":[0,0],"14":[0],"15":[0],"16":[0],"17":[0,0],"18":[0],"19":[0],"20":[0],"21":[0],"22":[0],"23":[0,0],"24":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"628ce280422359d44c6e862a6c0c4237ab4ce67d"}
2
2
  ,"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/index.js": {"path":"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/index.js","statementMap":{"0":{"start":{"line":12,"column":18},"end":{"line":12,"column":35}},"1":{"start":{"line":13,"column":62},"end":{"line":13,"column":81}},"2":{"start":{"line":15,"column":0},"end":{"line":15,"column":27}},"3":{"start":{"line":16,"column":0},"end":{"line":16,"column":37}},"4":{"start":{"line":17,"column":0},"end":{"line":17,"column":41}},"5":{"start":{"line":18,"column":0},"end":{"line":18,"column":51}},"6":{"start":{"line":19,"column":0},"end":{"line":19,"column":55}},"7":{"start":{"line":20,"column":0},"end":{"line":20,"column":33}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"919dc8d2b2062d2a9f4217ee076649d050f5f3a9"}
3
3
  ,"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/models.js": {"path":"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/models.js","statementMap":{"0":{"start":{"line":15,"column":4},"end":{"line":15,"column":23}},"1":{"start":{"line":16,"column":4},"end":{"line":16,"column":17}},"2":{"start":{"line":17,"column":4},"end":{"line":17,"column":17}},"3":{"start":{"line":18,"column":4},"end":{"line":18,"column":17}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":17}},"5":{"start":{"line":29,"column":18},"end":{"line":29,"column":57}},"6":{"start":{"line":30,"column":18},"end":{"line":30,"column":58}},"7":{"start":{"line":31,"column":18},"end":{"line":31,"column":57}},"8":{"start":{"line":32,"column":18},"end":{"line":32,"column":58}},"9":{"start":{"line":33,"column":4},"end":{"line":33,"column":40}},"10":{"start":{"line":42,"column":16},"end":{"line":42,"column":27}},"11":{"start":{"line":43,"column":4},"end":{"line":49,"column":6}},"12":{"start":{"line":64,"column":4},"end":{"line":64,"column":17}},"13":{"start":{"line":65,"column":4},"end":{"line":65,"column":17}},"14":{"start":{"line":66,"column":4},"end":{"line":66,"column":17}},"15":{"start":{"line":67,"column":4},"end":{"line":67,"column":17}},"16":{"start":{"line":68,"column":4},"end":{"line":68,"column":21}},"17":{"start":{"line":69,"column":4},"end":{"line":69,"column":23}},"18":{"start":{"line":81,"column":4},"end":{"line":81,"column":23}},"19":{"start":{"line":82,"column":4},"end":{"line":82,"column":23}},"20":{"start":{"line":83,"column":4},"end":{"line":83,"column":35}},"21":{"start":{"line":91,"column":4},"end":{"line":91,"column":29}},"22":{"start":{"line":95,"column":0},"end":{"line":99,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":2},"end":{"line":14,"column":3}},"loc":{"start":{"line":14,"column":37},"end":{"line":20,"column":3}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":28,"column":2},"end":{"line":28,"column":3}},"loc":{"start":{"line":28,"column":34},"end":{"line":34,"column":3}},"line":28},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":2},"end":{"line":41,"column":3}},"loc":{"start":{"line":41,"column":24},"end":{"line":50,"column":3}},"line":41},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":2},"end":{"line":63,"column":3}},"loc":{"start":{"line":63,"column":43},"end":{"line":70,"column":3}},"line":63},"4":{"name":"(anonymous_4)","decl":{"start":{"line":80,"column":2},"end":{"line":80,"column":3}},"loc":{"start":{"line":80,"column":55},"end":{"line":84,"column":3}},"line":80},"5":{"name":"(anonymous_5)","decl":{"start":{"line":90,"column":2},"end":{"line":90,"column":3}},"loc":{"start":{"line":90,"column":15},"end":{"line":92,"column":3}},"line":90}},"branchMap":{"0":{"loc":{"start":{"line":80,"column":21},"end":{"line":80,"column":33}},"type":"default-arg","locations":[{"start":{"line":80,"column":29},"end":{"line":80,"column":33}}],"line":80},"1":{"loc":{"start":{"line":80,"column":35},"end":{"line":80,"column":53}},"type":"default-arg","locations":[{"start":{"line":80,"column":49},"end":{"line":80,"column":53}}],"line":80}},"s":{"0":20,"1":20,"2":20,"3":20,"4":20,"5":3,"6":3,"7":3,"8":3,"9":3,"10":8,"11":8,"12":4,"13":4,"14":4,"15":4,"16":4,"17":4,"18":6,"19":6,"20":6,"21":3,"22":4},"f":{"0":20,"1":3,"2":8,"3":4,"4":6,"5":3},"b":{"0":[4],"1":[5]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3d02bea040e833fecbb6ae9f688106aa3a88eb96"}
4
4
  ,"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/utils.js": {"path":"/Users/marcokotrotsos/NXTPHASE/visualsegmenting/node_vsegments/src/utils.js","statementMap":{"0":{"start":{"line":5,"column":42},"end":{"line":5,"column":61}},"1":{"start":{"line":6,"column":36},"end":{"line":6,"column":53}},"2":{"start":{"line":14,"column":16},"end":{"line":14,"column":38}},"3":{"start":{"line":15,"column":2},"end":{"line":21,"column":3}},"4":{"start":{"line":15,"column":15},"end":{"line":15,"column":16}},"5":{"start":{"line":16,"column":4},"end":{"line":20,"column":5}},"6":{"start":{"line":17,"column":6},"end":{"line":17,"column":49}},"7":{"start":{"line":18,"column":6},"end":{"line":18,"column":46}},"8":{"start":{"line":19,"column":6},"end":{"line":19,"column":12}},"9":{"start":{"line":22,"column":2},"end":{"line":22,"column":27}},"10":{"start":{"line":31,"column":22},"end":{"line":31,"column":45}},"11":{"start":{"line":32,"column":15},"end":{"line":32,"column":38}},"12":{"start":{"line":34,"column":16},"end":{"line":34,"column":18}},"13":{"start":{"line":35,"column":2},"end":{"line":39,"column":3}},"14":{"start":{"line":36,"column":4},"end":{"line":38,"column":5}},"15":{"start":{"line":37,"column":6},"end":{"line":37,"column":45}},"16":{"start":{"line":41,"column":2},"end":{"line":41,"column":15}},"17":{"start":{"line":52,"column":22},"end":{"line":52,"column":45}},"18":{"start":{"line":53,"column":15},"end":{"line":53,"column":38}},"19":{"start":{"line":55,"column":16},"end":{"line":55,"column":18}},"20":{"start":{"line":57,"column":2},"end":{"line":109,"column":3}},"21":{"start":{"line":58,"column":4},"end":{"line":58,"column":45}},"22":{"start":{"line":58,"column":36},"end":{"line":58,"column":45}},"23":{"start":{"line":60,"column":16},"end":{"line":60,"column":27}},"24":{"start":{"line":61,"column":18},"end":{"line":61,"column":28}},"25":{"start":{"line":64,"column":18},"end":{"line":64,"column":57}},"26":{"start":{"line":65,"column":18},"end":{"line":65,"column":56}},"27":{"start":{"line":66,"column":18},"end":{"line":66,"column":57}},"28":{"start":{"line":67,"column":18},"end":{"line":67,"column":56}},"29":{"start":{"line":69,"column":22},"end":{"line":69,"column":35}},"30":{"start":{"line":70,"column":23},"end":{"line":70,"column":36}},"31":{"start":{"line":73,"column":23},"end":{"line":73,"column":72}},"32":{"start":{"line":74,"column":23},"end":{"line":74,"column":56}},"33":{"start":{"line":77,"column":20},"end":{"line":77,"column":47}},"34":{"start":{"line":78,"column":19},"end":{"line":78,"column":54}},"35":{"start":{"line":79,"column":16},"end":{"line":79,"column":39}},"36":{"start":{"line":80,"column":4},"end":{"line":80,"column":56}},"37":{"start":{"line":83,"column":22},"end":{"line":83,"column":67}},"38":{"start":{"line":84,"column":21},"end":{"line":84,"column":59}},"39":{"start":{"line":86,"column":4},"end":{"line":88,"column":5}},"40":{"start":{"line":86,"column":17},"end":{"line":86,"column":18}},"41":{"start":{"line":87,"column":6},"end":{"line":87,"column":46}},"42":{"start":{"line":91,"column":21},"end":{"line":91,"column":55}},"43":{"start":{"line":93,"column":4},"end":{"line":104,"column":5}},"44":{"start":{"line":93,"column":17},"end":{"line":93,"column":18}},"45":{"start":{"line":94,"column":6},"end":{"line":103,"column":7}},"46":{"start":{"line":94,"column":19},"end":{"line":94,"column":20}},"47":{"start":{"line":95,"column":23},"end":{"line":95,"column":40}},"48":{"start":{"line":96,"column":21},"end":{"line":96,"column":30}},"49":{"start":{"line":97,"column":21},"end":{"line":97,"column":30}},"50":{"start":{"line":99,"column":8},"end":{"line":102,"column":9}},"51":{"start":{"line":100,"column":25},"end":{"line":100,"column":47}},"52":{"start":{"line":101,"column":10},"end":{"line":101,"column":46}},"53":{"start":{"line":106,"column":4},"end":{"line":108,"column":7}},"54":{"start":{"line":111,"column":2},"end":{"line":111,"column":15}},"55":{"start":{"line":114,"column":0},"end":{"line":118,"column":2}}},"fnMap":{"0":{"name":"parseJson","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":18}},"loc":{"start":{"line":13,"column":31},"end":{"line":23,"column":1}},"line":13},"1":{"name":"parseBoundingBoxes","decl":{"start":{"line":30,"column":9},"end":{"line":30,"column":27}},"loc":{"start":{"line":30,"column":42},"end":{"line":42,"column":1}},"line":30},"2":{"name":"parseSegmentationMasks","decl":{"start":{"line":51,"column":15},"end":{"line":51,"column":37}},"loc":{"start":{"line":51,"column":73},"end":{"line":112,"column":1}},"line":51}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":16},"1":{"loc":{"start":{"line":36,"column":4},"end":{"line":38,"column":5}},"type":"if","locations":[{"start":{"line":36,"column":4},"end":{"line":38,"column":5}},{"start":{},"end":{}}],"line":36},"2":{"loc":{"start":{"line":58,"column":4},"end":{"line":58,"column":45}},"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":58,"column":45}},{"start":{},"end":{}}],"line":58},"3":{"loc":{"start":{"line":58,"column":8},"end":{"line":58,"column":34}},"type":"binary-expr","locations":[{"start":{"line":58,"column":8},"end":{"line":58,"column":20}},{"start":{"line":58,"column":24},"end":{"line":58,"column":34}}],"line":58},"4":{"loc":{"start":{"line":99,"column":8},"end":{"line":102,"column":9}},"type":"if","locations":[{"start":{"line":99,"column":8},"end":{"line":102,"column":9}},{"start":{},"end":{}}],"line":99},"5":{"loc":{"start":{"line":99,"column":12},"end":{"line":99,"column":47}},"type":"binary-expr","locations":[{"start":{"line":99,"column":12},"end":{"line":99,"column":28}},{"start":{"line":99,"column":32},"end":{"line":99,"column":47}}],"line":99}},"s":{"0":3,"1":3,"2":12,"3":12,"4":12,"5":13,"6":4,"7":4,"8":4,"9":12,"10":5,"11":5,"12":5,"13":5,"14":8,"15":7,"16":5,"17":2,"18":2,"19":2,"20":2,"21":3,"22":3,"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":2,"55":3},"f":{"0":12,"1":5,"2":2},"b":{"0":[4,9],"1":[7,1],"2":[3,0],"3":[3,2],"4":[0,0],"5":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c6222b511313a24a286eb18bc56c8b87e16a5c13"}
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">36.5% </span>
26
+ <span class="strong">34.32% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>23/63</span>
28
+ <span class='fraction'>23/67</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">42.85% </span>
33
+ <span class="strong">40.54% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/35</span>
35
+ <span class='fraction'>15/37</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">36.5% </span>
47
+ <span class="strong">34.32% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>23/63</span>
49
+ <span class='fraction'>23/67</span>
50
50
  </div>
51
51
 
52
52
 
@@ -324,7 +324,18 @@
324
324
  <a name='L259'></a><a href='#L259'>259</a>
325
325
  <a name='L260'></a><a href='#L260'>260</a>
326
326
  <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
328
339
  <span class="cline-any cline-neutral">&nbsp;</span>
329
340
  <span class="cline-any cline-neutral">&nbsp;</span>
330
341
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -350,29 +361,29 @@
350
361
  <span class="cline-any cline-neutral">&nbsp;</span>
351
362
  <span class="cline-any cline-neutral">&nbsp;</span>
352
363
  <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-yes">23x</span>
364
+ <span class="cline-any cline-yes">24x</span>
354
365
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">23x</span>
366
+ <span class="cline-any cline-yes">24x</span>
356
367
  <span class="cline-any cline-yes">1x</span>
357
368
  <span class="cline-any cline-neutral">&nbsp;</span>
358
369
  <span class="cline-any cline-neutral">&nbsp;</span>
359
370
  <span class="cline-any cline-neutral">&nbsp;</span>
360
371
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">22x</span>
362
- <span class="cline-any cline-yes">22x</span>
363
- <span class="cline-any cline-yes">22x</span>
372
+ <span class="cline-any cline-yes">23x</span>
373
+ <span class="cline-any cline-yes">23x</span>
374
+ <span class="cline-any cline-yes">23x</span>
364
375
  <span class="cline-any cline-neutral">&nbsp;</span>
365
376
  <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">22x</span>
377
+ <span class="cline-any cline-yes">23x</span>
367
378
  <span class="cline-any cline-neutral">&nbsp;</span>
368
379
  <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-yes">22x</span>
380
+ <span class="cline-any cline-yes">23x</span>
370
381
  <span class="cline-any cline-neutral">&nbsp;</span>
371
382
  <span class="cline-any cline-neutral">&nbsp;</span>
372
383
  <span class="cline-any cline-neutral">&nbsp;</span>
373
384
  <span class="cline-any cline-neutral">&nbsp;</span>
374
385
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">22x</span>
386
+ <span class="cline-any cline-yes">23x</span>
376
387
  <span class="cline-any cline-neutral">&nbsp;</span>
377
388
  <span class="cline-any cline-neutral">&nbsp;</span>
378
389
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -388,10 +399,19 @@
388
399
  <span class="cline-any cline-neutral">&nbsp;</span>
389
400
  <span class="cline-any cline-no">&nbsp;</span>
390
401
  <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-no">&nbsp;</span>
391
405
  <span class="cline-any cline-no">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
411
  <span class="cline-any cline-neutral">&nbsp;</span>
393
412
  <span class="cline-any cline-no">&nbsp;</span>
394
413
  <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
395
415
  <span class="cline-any cline-neutral">&nbsp;</span>
396
416
  <span class="cline-any cline-neutral">&nbsp;</span>
397
417
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -404,15 +424,17 @@
404
424
  <span class="cline-any cline-neutral">&nbsp;</span>
405
425
  <span class="cline-any cline-neutral">&nbsp;</span>
406
426
  <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-yes">9x</span>
408
- <span class="cline-any cline-yes">9x</span>
409
427
  <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-yes">10x</span>
429
+ <span class="cline-any cline-yes">10x</span>
410
430
  <span class="cline-any cline-neutral">&nbsp;</span>
411
431
  <span class="cline-any cline-neutral">&nbsp;</span>
412
432
  <span class="cline-any cline-neutral">&nbsp;</span>
413
433
  <span class="cline-any cline-neutral">&nbsp;</span>
414
434
  <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-yes">9x</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-yes">10x</span>
416
438
  <span class="cline-any cline-neutral">&nbsp;</span>
417
439
  <span class="cline-any cline-neutral">&nbsp;</span>
418
440
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -647,9 +669,19 @@ If an object is present multiple times, name them according to their unique char
647
669
  * @returns {Promise&lt;Object&gt;} - Image data for API
648
670
  */
649
671
  <span class="fstat-no" title="function not covered" > as</span>ync _loadImage(imagePath) {
650
- const imageBuffer = <span class="cstat-no" title="statement not covered" >await fs.readFile(imagePath);</span>
672
+ let imageBuffer = <span class="cstat-no" title="statement not covered" >await fs.readFile(imagePath);</span>
673
+ let mimeType = <span class="cstat-no" title="statement not covered" >this._getMimeType(imagePath);</span>
674
+
675
+ // Convert SVG to PNG for API compatibility
676
+ <span class="cstat-no" title="statement not covered" > if (mimeType === 'image/svg+xml') {</span>
677
+ const sharp = <span class="cstat-no" title="statement not covered" >require('sharp');</span>
678
+ <span class="cstat-no" title="statement not covered" > imageBuffer = await sharp(imageBuffer)</span>
679
+ .png()
680
+ .toBuffer();
681
+ <span class="cstat-no" title="statement not covered" > mimeType = 'image/png';</span>
682
+ }
683
+
651
684
  const base64Data = <span class="cstat-no" title="statement not covered" >imageBuffer.toString('base64');</span>
652
- const mimeType = <span class="cstat-no" title="statement not covered" >this._getMimeType(imagePath);</span>
653
685
 
654
686
  <span class="cstat-no" title="statement not covered" > return {</span>
655
687
  inlineData: {
@@ -671,7 +703,8 @@ If an object is present multiple times, name them according to their unique char
671
703
  'jpeg': 'image/jpeg',
672
704
  'png': 'image/png',
673
705
  'gif': 'image/gif',
674
- 'webp': 'image/webp'
706
+ 'webp': 'image/webp',
707
+ 'svg': 'image/svg+xml'
675
708
  };
676
709
  return mimeTypes[ext] || 'image/jpeg';
677
710
  }
@@ -853,7 +886,7 @@ module.exports = VSegments;
853
886
  <div class='footer quiet pad2 space-top1 center small'>
854
887
  Code coverage generated by
855
888
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
856
- at 2025-12-05T12:45:03.605Z
889
+ at 2025-12-05T14:58:27.396Z
857
890
  </div>
858
891
  <script src="prettify.js"></script>
859
892
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">38.7% </span>
26
+ <span class="strong">38% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>84/217</span>
28
+ <span class='fraction'>84/221</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">32.87% </span>
33
+ <span class="strong">32% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>24/73</span>
35
+ <span class='fraction'>24/75</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">38.86% </span>
47
+ <span class="strong">38.13% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>82/211</span>
49
+ <span class='fraction'>82/215</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file low" data-value="core.js"><a href="core.js.html">core.js</a></td>
83
- <td data-value="36.5" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 36%"></div><div class="cover-empty" style="width: 64%"></div></div>
83
+ <td data-value="34.32" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 34%"></div><div class="cover-empty" style="width: 66%"></div></div>
85
85
  </td>
86
- <td data-value="36.5" class="pct low">36.5%</td>
87
- <td data-value="63" class="abs low">23/63</td>
88
- <td data-value="42.85" class="pct low">42.85%</td>
89
- <td data-value="35" class="abs low">15/35</td>
86
+ <td data-value="34.32" class="pct low">34.32%</td>
87
+ <td data-value="67" class="abs low">23/67</td>
88
+ <td data-value="40.54" class="pct low">40.54%</td>
89
+ <td data-value="37" class="abs low">15/37</td>
90
90
  <td data-value="42.85" class="pct low">42.85%</td>
91
91
  <td data-value="7" class="abs low">3/7</td>
92
- <td data-value="36.5" class="pct low">36.5%</td>
93
- <td data-value="63" class="abs low">23/63</td>
92
+ <td data-value="34.32" class="pct low">34.32%</td>
93
+ <td data-value="67" class="abs low">23/67</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at 2025-12-05T12:45:03.605Z
164
+ at 2025-12-05T14:58:27.396Z
165
165
  </div>
166
166
  <script src="prettify.js"></script>
167
167
  <script>
@@ -130,7 +130,7 @@ module.exports.version = '0.1.0';
130
130
  <div class='footer quiet pad2 space-top1 center small'>
131
131
  Code coverage generated by
132
132
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
133
- at 2025-12-05T12:45:03.605Z
133
+ at 2025-12-05T14:58:27.396Z
134
134
  </div>
135
135
  <script src="prettify.js"></script>
136
136
  <script>
@@ -367,7 +367,7 @@ module.exports = {
367
367
  <div class='footer quiet pad2 space-top1 center small'>
368
368
  Code coverage generated by
369
369
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
370
- at 2025-12-05T12:45:03.605Z
370
+ at 2025-12-05T14:58:27.396Z
371
371
  </div>
372
372
  <script src="prettify.js"></script>
373
373
  <script>
@@ -424,7 +424,7 @@ module.exports = {
424
424
  <div class='footer quiet pad2 space-top1 center small'>
425
425
  Code coverage generated by
426
426
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
427
- at 2025-12-05T12:45:03.605Z
427
+ at 2025-12-05T14:58:27.396Z
428
428
  </div>
429
429
  <script src="prettify.js"></script>
430
430
  <script>
@@ -616,7 +616,7 @@ module.exports = {
616
616
  <div class='footer quiet pad2 space-top1 center small'>
617
617
  Code coverage generated by
618
618
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
619
- at 2025-12-05T12:45:03.605Z
619
+ at 2025-12-05T14:58:27.396Z
620
620
  </div>
621
621
  <script src="prettify.js"></script>
622
622
  <script>
@@ -2,16 +2,16 @@ TN:
2
2
  SF:src/core.js
3
3
  FN:26,(anonymous_0)
4
4
  FN:62,(anonymous_1)
5
- FN:80,(anonymous_2)
6
- FN:97,(anonymous_3)
7
- FN:116,(anonymous_4)
8
- FN:168,(anonymous_5)
9
- FN:227,(anonymous_6)
5
+ FN:90,(anonymous_2)
6
+ FN:108,(anonymous_3)
7
+ FN:127,(anonymous_4)
8
+ FN:179,(anonymous_5)
9
+ FN:238,(anonymous_6)
10
10
  FNF:7
11
11
  FNH:3
12
- FNDA:23,(anonymous_0)
12
+ FNDA:24,(anonymous_0)
13
13
  FNDA:0,(anonymous_1)
14
- FNDA:9,(anonymous_2)
14
+ FNDA:10,(anonymous_2)
15
15
  FNDA:3,(anonymous_3)
16
16
  FNDA:0,(anonymous_4)
17
17
  FNDA:0,(anonymous_5)
@@ -22,101 +22,107 @@ DA:7,2
22
22
  DA:8,2
23
23
  DA:9,2
24
24
  DA:15,2
25
- DA:27,23
26
- DA:29,23
25
+ DA:27,24
26
+ DA:29,24
27
27
  DA:30,1
28
- DA:35,22
29
- DA:36,22
30
- DA:37,22
31
- DA:40,22
32
- DA:43,22
33
- DA:49,22
28
+ DA:35,23
29
+ DA:36,23
30
+ DA:37,23
31
+ DA:40,23
32
+ DA:43,23
33
+ DA:49,23
34
34
  DA:63,0
35
35
  DA:64,0
36
- DA:65,0
37
36
  DA:67,0
38
- DA:81,9
39
- DA:82,9
40
- DA:89,9
41
- DA:98,3
42
- DA:100,3
43
- DA:101,1
44
- DA:104,3
45
- DA:121,0
46
- DA:124,0
47
- DA:127,0
37
+ DA:68,0
38
+ DA:69,0
39
+ DA:72,0
40
+ DA:75,0
41
+ DA:77,0
42
+ DA:91,10
43
+ DA:92,10
44
+ DA:100,10
45
+ DA:109,3
46
+ DA:111,3
47
+ DA:112,1
48
+ DA:115,3
49
+ DA:132,0
48
50
  DA:135,0
49
- DA:136,0
50
- DA:143,0
51
- DA:144,0
51
+ DA:138,0
52
52
  DA:146,0
53
53
  DA:147,0
54
- DA:151,0
54
+ DA:154,0
55
55
  DA:155,0
56
56
  DA:157,0
57
- DA:172,0
58
- DA:175,0
59
- DA:178,0
60
- DA:179,0
61
- DA:180,0
57
+ DA:158,0
58
+ DA:162,0
59
+ DA:166,0
60
+ DA:168,0
62
61
  DA:183,0
62
+ DA:186,0
63
+ DA:189,0
63
64
  DA:190,0
64
65
  DA:191,0
65
- DA:198,0
66
- DA:199,0
66
+ DA:194,0
67
67
  DA:201,0
68
68
  DA:202,0
69
- DA:206,0
69
+ DA:209,0
70
70
  DA:210,0
71
- DA:211,0
71
+ DA:212,0
72
72
  DA:213,0
73
- DA:233,0
74
- DA:236,0
75
- DA:239,0
76
- DA:240,0
77
- DA:246,0
78
- DA:253,0
79
- DA:254,0
73
+ DA:217,0
74
+ DA:221,0
75
+ DA:222,0
76
+ DA:224,0
77
+ DA:244,0
78
+ DA:247,0
79
+ DA:250,0
80
+ DA:251,0
80
81
  DA:257,0
81
- DA:261,2
82
- LF:63
82
+ DA:264,0
83
+ DA:265,0
84
+ DA:268,0
85
+ DA:272,2
86
+ LF:67
83
87
  LH:23
84
88
  BRDA:26,0,0,2
85
- BRDA:27,1,0,23
89
+ BRDA:27,1,0,24
86
90
  BRDA:27,1,1,2
87
91
  BRDA:29,2,0,1
88
- BRDA:29,2,1,22
89
- BRDA:35,3,0,22
90
- BRDA:35,3,1,21
92
+ BRDA:29,2,1,23
93
+ BRDA:35,3,0,23
94
+ BRDA:35,3,1,22
91
95
  BRDA:36,4,0,2
92
- BRDA:36,4,1,20
93
- BRDA:37,5,0,22
94
- BRDA:37,5,1,17
95
- BRDA:89,6,0,9
96
- BRDA:89,6,1,2
97
- BRDA:100,7,0,1
96
+ BRDA:36,4,1,21
97
+ BRDA:37,5,0,23
98
+ BRDA:37,5,1,18
99
+ BRDA:67,6,0,0
100
+ BRDA:67,6,1,0
101
+ BRDA:100,7,0,10
98
102
  BRDA:100,7,1,2
99
- BRDA:116,8,0,0
100
- BRDA:118,9,0,0
101
- BRDA:119,10,0,0
102
- BRDA:120,11,0,0
103
- BRDA:146,12,0,0
104
- BRDA:146,12,1,0
105
- BRDA:168,13,0,0
106
- BRDA:170,14,0,0
107
- BRDA:171,15,0,0
108
- BRDA:201,16,0,0
109
- BRDA:201,16,1,0
110
- BRDA:227,17,0,0
111
- BRDA:229,18,0,0
112
- BRDA:230,19,0,0
113
- BRDA:231,20,0,0
114
- BRDA:232,21,0,0
115
- BRDA:239,22,0,0
116
- BRDA:239,22,1,0
117
- BRDA:253,23,0,0
118
- BRDA:253,23,1,0
119
- BRF:35
103
+ BRDA:111,8,0,1
104
+ BRDA:111,8,1,2
105
+ BRDA:127,9,0,0
106
+ BRDA:129,10,0,0
107
+ BRDA:130,11,0,0
108
+ BRDA:131,12,0,0
109
+ BRDA:157,13,0,0
110
+ BRDA:157,13,1,0
111
+ BRDA:179,14,0,0
112
+ BRDA:181,15,0,0
113
+ BRDA:182,16,0,0
114
+ BRDA:212,17,0,0
115
+ BRDA:212,17,1,0
116
+ BRDA:238,18,0,0
117
+ BRDA:240,19,0,0
118
+ BRDA:241,20,0,0
119
+ BRDA:242,21,0,0
120
+ BRDA:243,22,0,0
121
+ BRDA:250,23,0,0
122
+ BRDA:250,23,1,0
123
+ BRDA:264,24,0,0
124
+ BRDA:264,24,1,0
125
+ BRF:37
120
126
  BRH:15
121
127
  end_of_record
122
128
  TN:
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "vsegments",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Visual segmentation and bounding box detection using Google Gemini AI",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
7
7
  "bin": {
8
- "vsegments": "./bin/cli.js"
8
+ "vsegments": "bin/cli.js"
9
9
  },
10
10
  "scripts": {
11
11
  "test": "jest",
@@ -30,7 +30,7 @@
30
30
  "license": "MIT",
31
31
  "repository": {
32
32
  "type": "git",
33
- "url": "git@github.com:nxtphaseai/node_vsegments.git"
33
+ "url": "git+ssh://git@github.com/nxtphaseai/node_vsegments.git"
34
34
  },
35
35
  "homepage": "https://github.com/nxtphaseai/node_vsegments#readme",
36
36
  "bugs": {
@@ -42,7 +42,8 @@
42
42
  "dependencies": {
43
43
  "@google/generative-ai": "^0.21.0",
44
44
  "canvas": "^2.11.2",
45
- "commander": "^12.0.0"
45
+ "commander": "^12.0.0",
46
+ "sharp": "^0.33.0"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@types/jest": "^30.0.0",
package/src/core.js CHANGED
@@ -60,9 +60,19 @@ If an object is present multiple times, name them according to their unique char
60
60
  * @returns {Promise<Object>} - Image data for API
61
61
  */
62
62
  async _loadImage(imagePath) {
63
- const imageBuffer = await fs.readFile(imagePath);
63
+ let imageBuffer = await fs.readFile(imagePath);
64
+ let mimeType = this._getMimeType(imagePath);
65
+
66
+ // Convert SVG to PNG for API compatibility
67
+ if (mimeType === 'image/svg+xml') {
68
+ const sharp = require('sharp');
69
+ imageBuffer = await sharp(imageBuffer)
70
+ .png()
71
+ .toBuffer();
72
+ mimeType = 'image/png';
73
+ }
74
+
64
75
  const base64Data = imageBuffer.toString('base64');
65
- const mimeType = this._getMimeType(imagePath);
66
76
 
67
77
  return {
68
78
  inlineData: {
@@ -84,7 +94,8 @@ If an object is present multiple times, name them according to their unique char
84
94
  'jpeg': 'image/jpeg',
85
95
  'png': 'image/png',
86
96
  'gif': 'image/gif',
87
- 'webp': 'image/webp'
97
+ 'webp': 'image/webp',
98
+ 'svg': 'image/svg+xml'
88
99
  };
89
100
  return mimeTypes[ext] || 'image/jpeg';
90
101
  }