manner.js 1.0.4 → 1.0.6

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.
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1749461127949" clover="3.2.0">
3
- <project timestamp="1749461127949" name="All files">
4
- <metrics statements="141" coveredstatements="106" conditionals="72" coveredconditionals="47" methods="13" coveredmethods="13" elements="226" coveredelements="166" complexity="0" loc="141" ncloc="141" packages="2" files="8" classes="8"/>
2
+ <coverage generated="1749474170065" clover="3.2.0">
3
+ <project timestamp="1749474170065" name="All files">
4
+ <metrics statements="156" coveredstatements="121" conditionals="74" coveredconditionals="48" methods="15" coveredmethods="15" elements="245" coveredelements="184" complexity="0" loc="156" ncloc="156" packages="2" files="9" classes="9"/>
5
5
  <package name="class">
6
6
  <metrics statements="24" coveredstatements="16" conditionals="12" coveredconditionals="6" methods="3" coveredmethods="3"/>
7
7
  <file name="MultiFetch.js" path="/Users/eric/Manner.js/manner.js/src/server/class/MultiFetch.js">
@@ -33,7 +33,7 @@
33
33
  </file>
34
34
  </package>
35
35
  <package name="lib">
36
- <metrics statements="117" coveredstatements="90" conditionals="60" coveredconditionals="41" methods="10" coveredmethods="10"/>
36
+ <metrics statements="132" coveredstatements="105" conditionals="62" coveredconditionals="42" methods="12" coveredmethods="12"/>
37
37
  <file name="byteArray.js" path="/Users/eric/Manner.js/manner.js/src/server/lib/byteArray.js">
38
38
  <metrics statements="14" coveredstatements="14" conditionals="2" coveredconditionals="1" methods="2" coveredmethods="2"/>
39
39
  <line num="1" count="1" type="stmt"/>
@@ -133,6 +133,24 @@
133
133
  <line num="18" count="1" type="stmt"/>
134
134
  <line num="20" count="3" type="stmt"/>
135
135
  </file>
136
+ <file name="nonZeroByteArray.js" path="/Users/eric/Manner.js/manner.js/src/server/lib/nonZeroByteArray.js">
137
+ <metrics statements="15" coveredstatements="15" conditionals="2" coveredconditionals="1" methods="2" coveredmethods="2"/>
138
+ <line num="1" count="1" type="stmt"/>
139
+ <line num="4" count="1" type="stmt"/>
140
+ <line num="5" count="1" type="stmt"/>
141
+ <line num="6" count="1" type="cond" truecount="1" falsecount="1"/>
142
+ <line num="7" count="1" type="stmt"/>
143
+ <line num="8" count="3" type="stmt"/>
144
+ <line num="9" count="3" type="stmt"/>
145
+ <line num="10" count="3" type="stmt"/>
146
+ <line num="13" count="1" type="stmt"/>
147
+ <line num="14" count="1" type="stmt"/>
148
+ <line num="18" count="1" type="stmt"/>
149
+ <line num="19" count="1" type="stmt"/>
150
+ <line num="20" count="1" type="stmt"/>
151
+ <line num="21" count="4" type="stmt"/>
152
+ <line num="23" count="1" type="stmt"/>
153
+ </file>
136
154
  <file name="parseHttpDate.js" path="/Users/eric/Manner.js/manner.js/src/server/lib/parseHttpDate.js">
137
155
  <metrics statements="36" coveredstatements="14" conditionals="12" coveredconditionals="1" methods="1" coveredmethods="1"/>
138
156
  <line num="2" count="1" type="stmt"/>
@@ -5,5 +5,6 @@
5
5
  ,"/Users/eric/Manner.js/manner.js/src/server/lib/getOwnIpAddresses.js": {"path":"/Users/eric/Manner.js/manner.js/src/server/lib/getOwnIpAddresses.js","statementMap":{"0":{"start":{"line":6,"column":15},"end":{"line":6,"column":37}},"1":{"start":{"line":7,"column":14},"end":{"line":7,"column":16}},"2":{"start":{"line":8,"column":2},"end":{"line":43,"column":5}},"3":{"start":{"line":9,"column":16},"end":{"line":9,"column":25}},"4":{"start":{"line":10,"column":24},"end":{"line":10,"column":27}},"5":{"start":{"line":11,"column":4},"end":{"line":42,"column":5}},"6":{"start":{"line":14,"column":6},"end":{"line":41,"column":7}},"7":{"start":{"line":14,"column":19},"end":{"line":14,"column":20}},"8":{"start":{"line":15,"column":19},"end":{"line":15,"column":25}},"9":{"start":{"line":16,"column":30},"end":{"line":16,"column":32}},"10":{"start":{"line":17,"column":8},"end":{"line":40,"column":9}},"11":{"start":{"line":18,"column":10},"end":{"line":18,"column":16}},"12":{"start":{"line":20,"column":30},"end":{"line":20,"column":32}},"13":{"start":{"line":21,"column":10},"end":{"line":36,"column":11}},"14":{"start":{"line":23,"column":35},"end":{"line":23,"column":37}},"15":{"start":{"line":24,"column":14},"end":{"line":26,"column":15}},"16":{"start":{"line":25,"column":16},"end":{"line":25,"column":31}},"17":{"start":{"line":27,"column":14},"end":{"line":27,"column":20}},"18":{"start":{"line":30,"column":35},"end":{"line":30,"column":37}},"19":{"start":{"line":31,"column":14},"end":{"line":33,"column":15}},"20":{"start":{"line":32,"column":16},"end":{"line":32,"column":31}},"21":{"start":{"line":34,"column":14},"end":{"line":34,"column":20}},"22":{"start":{"line":37,"column":10},"end":{"line":39,"column":11}},"23":{"start":{"line":38,"column":12},"end":{"line":38,"column":38}},"24":{"start":{"line":44,"column":2},"end":{"line":44,"column":13}}},"fnMap":{"0":{"name":"getOwnIpAddresses","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":41}},"loc":{"start":{"line":5,"column":44},"end":{"line":45,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":28},"end":{"line":8,"column":29}},"loc":{"start":{"line":8,"column":37},"end":{"line":43,"column":3}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":42,"column":5}},"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":42,"column":5}},{"start":{},"end":{}}],"line":11},"1":{"loc":{"start":{"line":17,"column":8},"end":{"line":40,"column":9}},"type":"if","locations":[{"start":{"line":17,"column":8},"end":{"line":40,"column":9}},{"start":{"line":19,"column":15},"end":{"line":40,"column":9}}],"line":17},"2":{"loc":{"start":{"line":21,"column":10},"end":{"line":36,"column":11}},"type":"switch","locations":[{"start":{"line":22,"column":12},"end":{"line":28,"column":13}},{"start":{"line":29,"column":12},"end":{"line":35,"column":13}}],"line":21},"3":{"loc":{"start":{"line":24,"column":14},"end":{"line":26,"column":15}},"type":"if","locations":[{"start":{"line":24,"column":14},"end":{"line":26,"column":15}},{"start":{},"end":{}}],"line":24},"4":{"loc":{"start":{"line":31,"column":14},"end":{"line":33,"column":15}},"type":"if","locations":[{"start":{"line":31,"column":14},"end":{"line":33,"column":15}},{"start":{},"end":{}}],"line":31},"5":{"loc":{"start":{"line":37,"column":10},"end":{"line":39,"column":11}},"type":"if","locations":[{"start":{"line":37,"column":10},"end":{"line":39,"column":11}},{"start":{},"end":{}}],"line":37},"6":{"loc":{"start":{"line":37,"column":14},"end":{"line":37,"column":54}},"type":"binary-expr","locations":[{"start":{"line":37,"column":14},"end":{"line":37,"column":32}},{"start":{"line":37,"column":36},"end":{"line":37,"column":54}}],"line":37}},"s":{"0":1,"1":1,"2":1,"3":7,"4":7,"5":7,"6":2,"7":2,"8":4,"9":4,"10":4,"11":1,"12":3,"13":3,"14":2,"15":2,"16":1,"17":2,"18":1,"19":1,"20":1,"21":1,"22":3,"23":1,"24":1},"f":{"0":1,"1":7},"b":{"0":[2,5],"1":[1,3],"2":[2,1],"3":[1,1],"4":[1,0],"5":[1,2],"6":[3,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0a30836719a8970f1f11941a93c69809a7e780dc"}
6
6
  ,"/Users/eric/Manner.js/manner.js/src/server/lib/isIntranetIpv4Address.js": {"path":"/Users/eric/Manner.js/manner.js/src/server/lib/isIntranetIpv4Address.js","statementMap":{"0":{"start":{"line":2,"column":14},"end":{"line":2,"column":15}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":22}},"3":{"start":{"line":5,"column":2},"end":{"line":22,"column":3}},"4":{"start":{"line":5,"column":15},"end":{"line":5,"column":16}},"5":{"start":{"line":6,"column":17},"end":{"line":6,"column":34}},"6":{"start":{"line":7,"column":4},"end":{"line":21,"column":5}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":26}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":21}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":30}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":25}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":14}},"12":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"13":{"start":{"line":17,"column":10},"end":{"line":17,"column":23}},"14":{"start":{"line":19,"column":8},"end":{"line":19,"column":27}},"15":{"start":{"line":20,"column":8},"end":{"line":20,"column":39}},"16":{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},"17":{"start":{"line":24,"column":4},"end":{"line":24,"column":17}},"18":{"start":{"line":26,"column":12},"end":{"line":26,"column":17}},"19":{"start":{"line":27,"column":2},"end":{"line":29,"column":3}},"20":{"start":{"line":28,"column":4},"end":{"line":28,"column":15}},"21":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"22":{"start":{"line":31,"column":4},"end":{"line":31,"column":15}},"23":{"start":{"line":33,"column":2},"end":{"line":35,"column":3}},"24":{"start":{"line":34,"column":4},"end":{"line":34,"column":15}},"25":{"start":{"line":36,"column":2},"end":{"line":36,"column":13}}},"fnMap":{"0":{"name":"isIntranetIpv4Address","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":45}},"loc":{"start":{"line":1,"column":55},"end":{"line":37,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":4},"end":{"line":21,"column":5}},"type":"switch","locations":[{"start":{"line":8,"column":6},"end":{"line":8,"column":14}},{"start":{"line":9,"column":6},"end":{"line":14,"column":14}},{"start":{"line":15,"column":6},"end":{"line":20,"column":39}}],"line":7},"1":{"loc":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},{"start":{},"end":{}}],"line":16},"2":{"loc":{"start":{"line":16,"column":14},"end":{"line":16,"column":40}},"type":"binary-expr","locations":[{"start":{"line":16,"column":14},"end":{"line":16,"column":25}},{"start":{"line":16,"column":29},"end":{"line":16,"column":40}}],"line":16},"3":{"loc":{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},"type":"if","locations":[{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},{"start":{},"end":{}}],"line":23},"4":{"loc":{"start":{"line":27,"column":2},"end":{"line":29,"column":3}},"type":"if","locations":[{"start":{"line":27,"column":2},"end":{"line":29,"column":3}},{"start":{},"end":{}}],"line":27},"5":{"loc":{"start":{"line":27,"column":6},"end":{"line":27,"column":46}},"type":"binary-expr","locations":[{"start":{"line":27,"column":6},"end":{"line":27,"column":24}},{"start":{"line":27,"column":28},"end":{"line":27,"column":46}}],"line":27},"6":{"loc":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},{"start":{},"end":{}}],"line":30},"7":{"loc":{"start":{"line":30,"column":6},"end":{"line":30,"column":48}},"type":"binary-expr","locations":[{"start":{"line":30,"column":6},"end":{"line":30,"column":25}},{"start":{"line":30,"column":29},"end":{"line":30,"column":48}}],"line":30},"8":{"loc":{"start":{"line":33,"column":2},"end":{"line":35,"column":3}},"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":35,"column":3}},{"start":{},"end":{}}],"line":33},"9":{"loc":{"start":{"line":33,"column":6},"end":{"line":33,"column":48}},"type":"binary-expr","locations":[{"start":{"line":33,"column":6},"end":{"line":33,"column":25}},{"start":{"line":33,"column":29},"end":{"line":33,"column":48}}],"line":33}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":24,"6":24,"7":8,"8":8,"9":8,"10":8,"11":8,"12":16,"13":0,"14":16,"15":16,"16":2,"17":0,"18":2,"19":2,"20":0,"21":2,"22":0,"23":2,"24":2,"25":2},"f":{"0":2},"b":{"0":[2,8,16],"1":[0,16],"2":[16,16],"3":[0,2],"4":[0,2],"5":[2,2],"6":[0,2],"7":[2,2],"8":[2,0],"9":[2,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"469c4113c450f3ac122c1a8659b97b96e8c2e48c"}
7
7
  ,"/Users/eric/Manner.js/manner.js/src/server/lib/isIpv6Address.js": {"path":"/Users/eric/Manner.js/manner.js/src/server/lib/isIpv6Address.js","statementMap":{"0":{"start":{"line":2,"column":21},"end":{"line":2,"column":22}},"1":{"start":{"line":3,"column":12},"end":{"line":3,"column":16}},"2":{"start":{"line":4,"column":2},"end":{"line":16,"column":3}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":16}},"4":{"start":{"line":5,"column":17},"end":{"line":5,"column":34}},"5":{"start":{"line":6,"column":4},"end":{"line":15,"column":5}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":26}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":14}},"8":{"start":{"line":12,"column":8},"end":{"line":14,"column":9}},"9":{"start":{"line":13,"column":10},"end":{"line":13,"column":22}},"10":{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},"11":{"start":{"line":18,"column":4},"end":{"line":18,"column":16}},"12":{"start":{"line":20,"column":2},"end":{"line":20,"column":13}}},"fnMap":{"0":{"name":"isIpv6Address","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":37}},"loc":{"start":{"line":1,"column":47},"end":{"line":21,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":15,"column":5}},"type":"switch","locations":[{"start":{"line":7,"column":6},"end":{"line":7,"column":14}},{"start":{"line":8,"column":6},"end":{"line":10,"column":14}},{"start":{"line":11,"column":6},"end":{"line":14,"column":9}}],"line":6},"1":{"loc":{"start":{"line":12,"column":8},"end":{"line":14,"column":9}},"type":"if","locations":[{"start":{"line":12,"column":8},"end":{"line":14,"column":9}},{"start":{},"end":{}}],"line":12},"2":{"loc":{"start":{"line":12,"column":14},"end":{"line":12,"column":74}},"type":"binary-expr","locations":[{"start":{"line":12,"column":15},"end":{"line":12,"column":26}},{"start":{"line":12,"column":30},"end":{"line":12,"column":41}},{"start":{"line":12,"column":47},"end":{"line":12,"column":58}},{"start":{"line":12,"column":62},"end":{"line":12,"column":73}}],"line":12},"3":{"loc":{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},{"start":{},"end":{}}],"line":17}},"s":{"0":3,"1":3,"2":3,"3":3,"4":99,"5":99,"6":22,"7":22,"8":77,"9":0,"10":3,"11":1,"12":3},"f":{"0":3},"b":{"0":[3,22,77],"1":[0,77],"2":[77,77,15,15],"3":[1,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b4283eb234f5311cb2dc940b7ea188994dc2354a"}
8
+ ,"/Users/eric/Manner.js/manner.js/src/server/lib/nonZeroByteArray.js": {"path":"/Users/eric/Manner.js/manner.js/src/server/lib/nonZeroByteArray.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":17}},"1":{"start":{"line":4,"column":2},"end":{"line":4,"column":16}},"2":{"start":{"line":5,"column":14},"end":{"line":5,"column":16}},"3":{"start":{"line":6,"column":2},"end":{"line":12,"column":3}},"4":{"start":{"line":7,"column":4},"end":{"line":11,"column":5}},"5":{"start":{"line":8,"column":16},"end":{"line":8,"column":31}},"6":{"start":{"line":9,"column":6},"end":{"line":9,"column":31}},"7":{"start":{"line":10,"column":6},"end":{"line":10,"column":26}},"8":{"start":{"line":13,"column":2},"end":{"line":13,"column":27}},"9":{"start":{"line":14,"column":2},"end":{"line":14,"column":13}},"10":{"start":{"line":18,"column":10},"end":{"line":18,"column":12}},"11":{"start":{"line":19,"column":22},"end":{"line":19,"column":25}},"12":{"start":{"line":20,"column":2},"end":{"line":22,"column":3}},"13":{"start":{"line":20,"column":15},"end":{"line":20,"column":17}},"14":{"start":{"line":21,"column":4},"end":{"line":21,"column":50}},"15":{"start":{"line":23,"column":2},"end":{"line":23,"column":11}}},"fnMap":{"0":{"name":"fromInt","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":23}},"loc":{"start":{"line":3,"column":27},"end":{"line":15,"column":1}},"line":3},"1":{"name":"toInt","decl":{"start":{"line":17,"column":16},"end":{"line":17,"column":21}},"loc":{"start":{"line":17,"column":27},"end":{"line":24,"column":1}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":2},"end":{"line":12,"column":3}},"type":"if","locations":[{"start":{"line":6,"column":2},"end":{"line":12,"column":3}},{"start":{},"end":{}}],"line":6}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":3,"6":3,"7":3,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":4,"15":1},"f":{"0":1,"1":1},"b":{"0":[1,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a067d98412199e458d65710b44cb89063fc32582"}
8
9
  ,"/Users/eric/Manner.js/manner.js/src/server/lib/parseHttpDate.js": {"path":"/Users/eric/Manner.js/manner.js/src/server/lib/parseHttpDate.js","statementMap":{"0":{"start":{"line":2,"column":18},"end":{"line":2,"column":38}},"1":{"start":{"line":3,"column":33},"end":{"line":3,"column":48}},"2":{"start":{"line":4,"column":36},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":15},"end":{"line":5,"column":25}},"4":{"start":{"line":6,"column":2},"end":{"line":6,"column":35}},"5":{"start":{"line":7,"column":2},"end":{"line":44,"column":3}},"6":{"start":{"line":9,"column":6},"end":{"line":9,"column":16}},"7":{"start":{"line":10,"column":6},"end":{"line":10,"column":12}},"8":{"start":{"line":12,"column":6},"end":{"line":12,"column":16}},"9":{"start":{"line":13,"column":6},"end":{"line":13,"column":12}},"10":{"start":{"line":15,"column":6},"end":{"line":15,"column":16}},"11":{"start":{"line":16,"column":6},"end":{"line":16,"column":12}},"12":{"start":{"line":18,"column":6},"end":{"line":18,"column":16}},"13":{"start":{"line":19,"column":6},"end":{"line":19,"column":12}},"14":{"start":{"line":21,"column":6},"end":{"line":21,"column":16}},"15":{"start":{"line":22,"column":6},"end":{"line":22,"column":12}},"16":{"start":{"line":24,"column":6},"end":{"line":24,"column":16}},"17":{"start":{"line":25,"column":6},"end":{"line":25,"column":12}},"18":{"start":{"line":27,"column":6},"end":{"line":27,"column":16}},"19":{"start":{"line":28,"column":6},"end":{"line":28,"column":12}},"20":{"start":{"line":30,"column":6},"end":{"line":30,"column":16}},"21":{"start":{"line":31,"column":6},"end":{"line":31,"column":12}},"22":{"start":{"line":33,"column":6},"end":{"line":33,"column":16}},"23":{"start":{"line":34,"column":6},"end":{"line":34,"column":12}},"24":{"start":{"line":36,"column":6},"end":{"line":36,"column":16}},"25":{"start":{"line":37,"column":6},"end":{"line":37,"column":12}},"26":{"start":{"line":39,"column":6},"end":{"line":39,"column":17}},"27":{"start":{"line":40,"column":6},"end":{"line":40,"column":12}},"28":{"start":{"line":42,"column":6},"end":{"line":42,"column":17}},"29":{"start":{"line":43,"column":6},"end":{"line":43,"column":12}},"30":{"start":{"line":45,"column":2},"end":{"line":45,"column":23}},"31":{"start":{"line":46,"column":2},"end":{"line":46,"column":33}},"32":{"start":{"line":47,"column":2},"end":{"line":47,"column":33}},"33":{"start":{"line":48,"column":2},"end":{"line":48,"column":37}},"34":{"start":{"line":49,"column":2},"end":{"line":49,"column":37}},"35":{"start":{"line":50,"column":2},"end":{"line":50,"column":14}}},"fnMap":{"0":{"name":"parseHttpDate","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":37}},"loc":{"start":{"line":1,"column":48},"end":{"line":51,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":2},"end":{"line":44,"column":3}},"type":"switch","locations":[{"start":{"line":8,"column":4},"end":{"line":10,"column":12}},{"start":{"line":11,"column":4},"end":{"line":13,"column":12}},{"start":{"line":14,"column":4},"end":{"line":16,"column":12}},{"start":{"line":17,"column":4},"end":{"line":19,"column":12}},{"start":{"line":20,"column":4},"end":{"line":22,"column":12}},{"start":{"line":23,"column":4},"end":{"line":25,"column":12}},{"start":{"line":26,"column":4},"end":{"line":28,"column":12}},{"start":{"line":29,"column":4},"end":{"line":31,"column":12}},{"start":{"line":32,"column":4},"end":{"line":34,"column":12}},{"start":{"line":35,"column":4},"end":{"line":37,"column":12}},{"start":{"line":38,"column":4},"end":{"line":40,"column":12}},{"start":{"line":41,"column":4},"end":{"line":43,"column":12}}],"line":7}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":1,"17":1,"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":1,"31":1,"32":1,"33":1,"34":1,"35":1},"f":{"0":1},"b":{"0":[0,0,0,0,0,1,0,0,0,0,0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3ce80ec34eee553705ff99b5174288835d391f85"}
9
10
  }
@@ -208,7 +208,7 @@ export default MultiFetch;
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
211
- at 2025-06-09T09:25:27.923Z
211
+ at 2025-06-09T13:02:50.038Z
212
212
  </div>
213
213
  <script src="../prettify.js"></script>
214
214
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-06-09T09:25:27.923Z
104
+ at 2025-06-09T13:02:50.038Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.86% </span>
26
+ <span class="strong">78.26% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>110/145</span>
28
+ <span class='fraction'>126/161</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">65.27% </span>
33
+ <span class="strong">64.86% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>47/72</span>
35
+ <span class='fraction'>48/74</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>13/13</span>
42
+ <span class='fraction'>15/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">75.17% </span>
47
+ <span class="strong">77.56% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>106/141</span>
49
+ <span class='fraction'>121/156</span>
50
50
  </div>
51
51
 
52
52
 
@@ -94,18 +94,18 @@
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file medium" data-value="lib"><a href="lib/index.html">lib</a></td>
98
- <td data-value="77.68" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
97
+ <td class="file high" data-value="lib"><a href="lib/index.html">lib</a></td>
98
+ <td data-value="80.29" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
100
100
  </td>
101
- <td data-value="77.68" class="pct medium">77.68%</td>
102
- <td data-value="121" class="abs medium">94/121</td>
103
- <td data-value="68.33" class="pct medium">68.33%</td>
104
- <td data-value="60" class="abs medium">41/60</td>
101
+ <td data-value="80.29" class="pct high">80.29%</td>
102
+ <td data-value="137" class="abs high">110/137</td>
103
+ <td data-value="67.74" class="pct medium">67.74%</td>
104
+ <td data-value="62" class="abs medium">42/62</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
- <td data-value="10" class="abs high">10/10</td>
107
- <td data-value="76.92" class="pct medium">76.92%</td>
108
- <td data-value="117" class="abs medium">90/117</td>
106
+ <td data-value="12" class="abs high">12/12</td>
107
+ <td data-value="79.54" class="pct medium">79.54%</td>
108
+ <td data-value="132" class="abs medium">105/132</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2025-06-09T09:25:27.923Z
119
+ at 2025-06-09T13:02:50.038Z
120
120
  </div>
121
121
  <script src="prettify.js"></script>
122
122
  <script>
@@ -139,7 +139,7 @@ export function toInt(buf) {
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
142
- at 2025-06-09T09:25:27.923Z
142
+ at 2025-06-09T13:02:50.038Z
143
143
  </div>
144
144
  <script src="../prettify.js"></script>
145
145
  <script>
@@ -88,7 +88,7 @@
88
88
  <div class='footer quiet pad2 space-top1 center small'>
89
89
  Code coverage generated by
90
90
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
91
- at 2025-06-09T09:25:27.923Z
91
+ at 2025-06-09T13:02:50.038Z
92
92
  </div>
93
93
  <script src="../prettify.js"></script>
94
94
  <script>
@@ -85,7 +85,7 @@
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at 2025-06-09T09:25:27.923Z
88
+ at 2025-06-09T13:02:50.038Z
89
89
  </div>
90
90
  <script src="../prettify.js"></script>
91
91
  <script>
@@ -205,7 +205,7 @@ export default function getOwnIpAddresses() {
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at 2025-06-09T09:25:27.923Z
208
+ at 2025-06-09T13:02:50.038Z
209
209
  </div>
210
210
  <script src="../prettify.js"></script>
211
211
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">77.68% </span>
26
+ <span class="strong">80.29% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>94/121</span>
28
+ <span class='fraction'>110/137</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">68.33% </span>
33
+ <span class="strong">67.74% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>41/60</span>
35
+ <span class='fraction'>42/62</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>10/10</span>
42
+ <span class='fraction'>12/12</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.92% </span>
47
+ <span class="strong">79.54% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>90/117</span>
49
+ <span class='fraction'>105/132</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -168,6 +168,21 @@
168
168
  <td data-value="12" class="abs high">11/12</td>
169
169
  </tr>
170
170
 
171
+ <tr>
172
+ <td class="file high" data-value="nonZeroByteArray.js"><a href="nonZeroByteArray.js.html">nonZeroByteArray.js</a></td>
173
+ <td data-value="100" class="pic high">
174
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
175
+ </td>
176
+ <td data-value="100" class="pct high">100%</td>
177
+ <td data-value="16" class="abs high">16/16</td>
178
+ <td data-value="50" class="pct medium">50%</td>
179
+ <td data-value="2" class="abs medium">1/2</td>
180
+ <td data-value="100" class="pct high">100%</td>
181
+ <td data-value="2" class="abs high">2/2</td>
182
+ <td data-value="100" class="pct high">100%</td>
183
+ <td data-value="15" class="abs high">15/15</td>
184
+ </tr>
185
+
171
186
  <tr>
172
187
  <td class="file low" data-value="parseHttpDate.js"><a href="parseHttpDate.js.html">parseHttpDate.js</a></td>
173
188
  <td data-value="38.88" class="pic low">
@@ -191,7 +206,7 @@
191
206
  <div class='footer quiet pad2 space-top1 center small'>
192
207
  Code coverage generated by
193
208
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
194
- at 2025-06-09T09:25:27.923Z
209
+ at 2025-06-09T13:02:50.038Z
195
210
  </div>
196
211
  <script src="../prettify.js"></script>
197
212
  <script>
@@ -181,7 +181,7 @@
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2025-06-09T09:25:27.923Z
184
+ at 2025-06-09T13:02:50.038Z
185
185
  </div>
186
186
  <script src="../prettify.js"></script>
187
187
  <script>
@@ -133,7 +133,7 @@
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at 2025-06-09T09:25:27.923Z
136
+ at 2025-06-09T13:02:50.038Z
137
137
  </div>
138
138
  <script src="../prettify.js"></script>
139
139
  <script>
@@ -0,0 +1,157 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for lib/nonZeroByteArray.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">lib</a> nonZeroByteArray.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>16/16</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">50% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>1/2</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>15/15</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-neutral">&nbsp;</span>
93
+ <span class="cline-any cline-yes">1x</span>
94
+ <span class="cline-any cline-yes">1x</span>
95
+ <span class="cline-any cline-yes">1x</span>
96
+ <span class="cline-any cline-yes">1x</span>
97
+ <span class="cline-any cline-yes">3x</span>
98
+ <span class="cline-any cline-yes">3x</span>
99
+ <span class="cline-any cline-yes">3x</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-yes">1x</span>
103
+ <span class="cline-any cline-yes">1x</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-yes">1x</span>
108
+ <span class="cline-any cline-yes">1x</span>
109
+ <span class="cline-any cline-yes">1x</span>
110
+ <span class="cline-any cline-yes">4x</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-yes">1x</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const size = 256n;
115
+ &nbsp;
116
+ export function fromInt(n) {
117
+ n = BigInt(n);
118
+ const ans = [];
119
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (n &gt; size - 2n) {
120
+ while (n &gt; (size - 1n)) {
121
+ const q = n % (size - 1n);
122
+ ans.push(Number(q + 1n));
123
+ n = n / (size - 1n);
124
+ }
125
+ }
126
+ ans.push(Number(n + 1n));
127
+ return ans;
128
+ }
129
+ &nbsp;
130
+ export function toInt(buf) {
131
+ let n = 0n;
132
+ const { length, } = buf;
133
+ for (let i = 0n; i &lt; buf.length; i += 1n) {
134
+ n += (BigInt(buf[i]) - 1n) * (size - 1n) ** i;
135
+ }
136
+ return n;
137
+ }
138
+ &nbsp;</pre></td></tr></table></pre>
139
+
140
+ <div class='push'></div><!-- for sticky footer -->
141
+ </div><!-- /wrapper -->
142
+ <div class='footer quiet pad2 space-top1 center small'>
143
+ Code coverage generated by
144
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
+ at 2025-06-09T13:02:50.038Z
146
+ </div>
147
+ <script src="../prettify.js"></script>
148
+ <script>
149
+ window.onload = function () {
150
+ prettyPrint();
151
+ };
152
+ </script>
153
+ <script src="../sorter.js"></script>
154
+ <script src="../block-navigation.js"></script>
155
+ </body>
156
+ </html>
157
+
@@ -223,7 +223,7 @@
223
223
  <div class='footer quiet pad2 space-top1 center small'>
224
224
  Code coverage generated by
225
225
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
226
- at 2025-06-09T09:25:27.923Z
226
+ at 2025-06-09T13:02:50.038Z
227
227
  </div>
228
228
  <script src="../prettify.js"></script>
229
229
  <script>
@@ -251,6 +251,36 @@ BRF:11
251
251
  BRH:10
252
252
  end_of_record
253
253
  TN:
254
+ SF:src/server/lib/nonZeroByteArray.js
255
+ FN:3,fromInt
256
+ FN:17,toInt
257
+ FNF:2
258
+ FNH:2
259
+ FNDA:1,fromInt
260
+ FNDA:1,toInt
261
+ DA:1,1
262
+ DA:4,1
263
+ DA:5,1
264
+ DA:6,1
265
+ DA:7,1
266
+ DA:8,3
267
+ DA:9,3
268
+ DA:10,3
269
+ DA:13,1
270
+ DA:14,1
271
+ DA:18,1
272
+ DA:19,1
273
+ DA:20,1
274
+ DA:21,4
275
+ DA:23,1
276
+ LF:15
277
+ LH:15
278
+ BRDA:6,0,0,1
279
+ BRDA:6,0,1,0
280
+ BRF:2
281
+ BRH:1
282
+ end_of_record
283
+ TN:
254
284
  SF:src/server/lib/parseHttpDate.js
255
285
  FN:1,parseHttpDate
256
286
  FNF:1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manner.js",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Frontend mode project.",
5
5
  "repository": "git@github.com:leobrad/mode.git",
6
6
  "author": "Leo Ely",
package/server/index.js CHANGED
@@ -28,10 +28,10 @@ Object.defineProperty(exports, "getOwnIpAddresses", {
28
28
  return _getOwnIpAddresses.default;
29
29
  }
30
30
  });
31
- Object.defineProperty(exports, "isIpv4Address", {
31
+ Object.defineProperty(exports, "isIntranetIpv4Address", {
32
32
  enumerable: true,
33
33
  get: function () {
34
- return _isIpv4Address.default;
34
+ return _isIntranetIpv4Address.default;
35
35
  }
36
36
  });
37
37
  Object.defineProperty(exports, "isIpv6Address", {
@@ -40,6 +40,7 @@ Object.defineProperty(exports, "isIpv6Address", {
40
40
  return _isIpv6Address.default;
41
41
  }
42
42
  });
43
+ exports.nonZeroByteArray = void 0;
43
44
  Object.defineProperty(exports, "parseHttpDate", {
44
45
  enumerable: true,
45
46
  get: function () {
@@ -57,11 +58,13 @@ var _readCookie = _interopRequireDefault(require("./lib/readCookie"));
57
58
  var _formatHttpKey = _interopRequireDefault(require("./lib/formatHttpKey"));
58
59
  var _formatHttpDate = _interopRequireDefault(require("./lib/formatHttpDate"));
59
60
  var _parseHttpDate = _interopRequireDefault(require("./lib/parseHttpDate"));
60
- var _isIpv4Address = _interopRequireDefault(require("./lib/isIpv4Address"));
61
+ var _isIntranetIpv4Address = _interopRequireDefault(require("./lib/isIntranetIpv4Address"));
61
62
  var _isIpv6Address = _interopRequireDefault(require("./lib/isIpv6Address"));
62
63
  var _getOwnIpAddresses = _interopRequireDefault(require("./lib/getOwnIpAddresses"));
63
64
  var _byteArray = _interopRequireWildcard(require("./lib/byteArray"));
64
65
  exports.byteArray = _byteArray;
66
+ var _nonZeroByteArray = _interopRequireWildcard(require("./lib/nonZeroByteArray"));
67
+ exports.nonZeroByteArray = _nonZeroByteArray;
65
68
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
66
69
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
67
70
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fromInt = fromInt;
7
+ exports.toInt = toInt;
8
+ const size = 256n;
9
+ function fromInt(n) {
10
+ n = BigInt(n);
11
+ const ans = [];
12
+ if (n > size - 2n) {
13
+ while (n > size - 1n) {
14
+ const q = n % (size - 1n);
15
+ ans.push(Number(q + 1n));
16
+ n = n / (size - 1n);
17
+ }
18
+ }
19
+ ans.push(Number(n + 1n));
20
+ return ans;
21
+ }
22
+ function toInt(buf) {
23
+ let n = 0n;
24
+ const {
25
+ length
26
+ } = buf;
27
+ for (let i = 0n; i < buf.length; i += 1n) {
28
+ n += (BigInt(buf[i]) - 1n) * (size - 1n) ** i;
29
+ }
30
+ return n;
31
+ }