@ipld/car 4.1.6 → 5.0.0

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.
Files changed (226) hide show
  1. package/LICENSE +4 -0
  2. package/README.md +12 -4
  3. package/dist/index.min.js +5 -0
  4. package/{types → dist/src}/api.d.ts +19 -19
  5. package/dist/src/api.d.ts.map +1 -0
  6. package/{types/lib → dist/src}/buffer-writer.d.ts +10 -10
  7. package/{types/lib → dist/src}/buffer-writer.d.ts.map +1 -1
  8. package/dist/src/coding.d.ts +41 -0
  9. package/dist/src/coding.d.ts.map +1 -0
  10. package/{types/lib → dist/src}/decoder.d.ts +3 -3
  11. package/{types/lib → dist/src}/decoder.d.ts.map +1 -1
  12. package/{types/lib → dist/src}/encoder.d.ts +2 -2
  13. package/{types/lib → dist/src}/encoder.d.ts.map +1 -1
  14. package/{types/lib → dist/src}/header-validator.d.ts +0 -0
  15. package/dist/src/header-validator.d.ts.map +1 -0
  16. package/dist/src/index-browser.d.ts +8 -0
  17. package/dist/src/index-browser.d.ts.map +1 -0
  18. package/dist/src/index.d.ts +9 -0
  19. package/dist/src/index.d.ts.map +1 -0
  20. package/{types/lib → dist/src}/indexed-reader-browser.d.ts +0 -0
  21. package/dist/src/indexed-reader-browser.d.ts.map +1 -0
  22. package/{types/lib → dist/src}/indexed-reader.d.ts +13 -13
  23. package/dist/src/indexed-reader.d.ts.map +1 -0
  24. package/{types/lib → dist/src}/indexer.d.ts +9 -9
  25. package/{types/lib → dist/src}/indexer.d.ts.map +1 -1
  26. package/{types/lib → dist/src}/iterator-channel.d.ts +0 -0
  27. package/{types/lib → dist/src}/iterator-channel.d.ts.map +1 -1
  28. package/{types/lib → dist/src}/iterator.d.ts +8 -8
  29. package/{types/lib → dist/src}/iterator.d.ts.map +1 -1
  30. package/{types/lib → dist/src}/reader-browser.d.ts +10 -10
  31. package/{types/lib → dist/src}/reader-browser.d.ts.map +1 -1
  32. package/{types/lib → dist/src}/reader.d.ts +5 -5
  33. package/{types/lib → dist/src}/reader.d.ts.map +1 -1
  34. package/{types/lib → dist/src}/writer-browser.d.ts +10 -10
  35. package/{types/lib → dist/src}/writer-browser.d.ts.map +1 -1
  36. package/{types/lib → dist/src}/writer.d.ts +4 -4
  37. package/{types/lib → dist/src}/writer.d.ts.map +1 -1
  38. package/package.json +102 -209
  39. package/{api.ts → src/api.ts} +14 -14
  40. package/{lib → src}/buffer-writer.js +5 -5
  41. package/src/coding.ts +56 -0
  42. package/{lib → src}/decoder.js +4 -4
  43. package/{lib → src}/encoder.js +1 -1
  44. package/src/header-validator.js +74 -0
  45. package/{lib → src}/header.ipldsch +0 -0
  46. package/src/index-browser.js +14 -0
  47. package/src/index.js +16 -0
  48. package/{lib → src}/indexed-reader-browser.js +0 -0
  49. package/{lib → src}/indexed-reader.js +9 -9
  50. package/{lib → src}/indexer.js +4 -4
  51. package/{lib → src}/iterator-channel.js +0 -0
  52. package/{lib → src}/iterator.js +4 -4
  53. package/{lib → src}/reader-browser.js +7 -7
  54. package/{lib → src}/reader.js +5 -5
  55. package/{lib → src}/writer-browser.js +7 -7
  56. package/{lib → src}/writer.js +3 -3
  57. package/LICENSE-APACHE +0 -13
  58. package/LICENSE-MIT +0 -7
  59. package/buffer-writer +0 -1
  60. package/car-browser.js +0 -14
  61. package/car.js +0 -16
  62. package/cjs/browser-test/common.js +0 -301
  63. package/cjs/browser-test/node-test-file-streams.js +0 -71
  64. package/cjs/browser-test/node-test-indexed-reader.js +0 -51
  65. package/cjs/browser-test/node-test-large.js +0 -135
  66. package/cjs/browser-test/node-test-raw.js +0 -68
  67. package/cjs/browser-test/node-test-updateroots.js +0 -78
  68. package/cjs/browser-test/test-buffer-writer.js +0 -330
  69. package/cjs/browser-test/test-errors.js +0 -90
  70. package/cjs/browser-test/test-indexer.js +0 -80
  71. package/cjs/browser-test/test-interface.js +0 -21
  72. package/cjs/browser-test/test-iterator.js +0 -83
  73. package/cjs/browser-test/test-reader.js +0 -278
  74. package/cjs/browser-test/test-writer.js +0 -286
  75. package/cjs/browser-test/verify-store-reader.js +0 -142
  76. package/cjs/car-browser.js +0 -18
  77. package/cjs/car.js +0 -20
  78. package/cjs/lib/buffer-writer.js +0 -164
  79. package/cjs/lib/decoder.js +0 -301
  80. package/cjs/lib/encoder.js +0 -44
  81. package/cjs/lib/header-validator.js +0 -29
  82. package/cjs/lib/indexed-reader-browser.js +0 -13
  83. package/cjs/lib/indexed-reader.js +0 -90
  84. package/cjs/lib/indexer.js +0 -41
  85. package/cjs/lib/iterator-channel.js +0 -77
  86. package/cjs/lib/iterator.js +0 -97
  87. package/cjs/lib/reader-browser.js +0 -62
  88. package/cjs/lib/reader.js +0 -38
  89. package/cjs/lib/writer-browser.js +0 -118
  90. package/cjs/lib/writer.js +0 -51
  91. package/cjs/node-test/common.js +0 -301
  92. package/cjs/node-test/node-test-file-streams.js +0 -71
  93. package/cjs/node-test/node-test-indexed-reader.js +0 -51
  94. package/cjs/node-test/node-test-large.js +0 -135
  95. package/cjs/node-test/node-test-raw.js +0 -68
  96. package/cjs/node-test/node-test-updateroots.js +0 -78
  97. package/cjs/node-test/test-buffer-writer.js +0 -330
  98. package/cjs/node-test/test-errors.js +0 -90
  99. package/cjs/node-test/test-indexer.js +0 -80
  100. package/cjs/node-test/test-interface.js +0 -21
  101. package/cjs/node-test/test-iterator.js +0 -83
  102. package/cjs/node-test/test-reader.js +0 -278
  103. package/cjs/node-test/test-writer.js +0 -286
  104. package/cjs/node-test/verify-store-reader.js +0 -142
  105. package/decoder +0 -1
  106. package/esm/browser-test/common.js +0 -274
  107. package/esm/browser-test/node-test-file-streams.js +0 -76
  108. package/esm/browser-test/node-test-indexed-reader.js +0 -53
  109. package/esm/browser-test/node-test-large.js +0 -109
  110. package/esm/browser-test/node-test-raw.js +0 -63
  111. package/esm/browser-test/node-test-updateroots.js +0 -76
  112. package/esm/browser-test/test-buffer-writer.js +0 -311
  113. package/esm/browser-test/test-errors.js +0 -91
  114. package/esm/browser-test/test-indexer.js +0 -85
  115. package/esm/browser-test/test-interface.js +0 -24
  116. package/esm/browser-test/test-iterator.js +0 -91
  117. package/esm/browser-test/test-reader.js +0 -270
  118. package/esm/browser-test/test-writer.js +0 -297
  119. package/esm/browser-test/verify-store-reader.js +0 -122
  120. package/esm/car-browser.js +0 -16
  121. package/esm/car.js +0 -18
  122. package/esm/lib/buffer-writer.js +0 -129
  123. package/esm/lib/decoder.js +0 -265
  124. package/esm/lib/encoder.js +0 -35
  125. package/esm/lib/header-validator.js +0 -23
  126. package/esm/lib/indexed-reader-browser.js +0 -6
  127. package/esm/lib/indexed-reader.js +0 -78
  128. package/esm/lib/indexer.js +0 -38
  129. package/esm/lib/iterator-channel.js +0 -71
  130. package/esm/lib/iterator.js +0 -92
  131. package/esm/lib/reader-browser.js +0 -57
  132. package/esm/lib/reader.js +0 -26
  133. package/esm/lib/writer-browser.js +0 -115
  134. package/esm/lib/writer.js +0 -42
  135. package/esm/node-test/common.js +0 -274
  136. package/esm/node-test/node-test-file-streams.js +0 -76
  137. package/esm/node-test/node-test-indexed-reader.js +0 -53
  138. package/esm/node-test/node-test-large.js +0 -109
  139. package/esm/node-test/node-test-raw.js +0 -63
  140. package/esm/node-test/node-test-updateroots.js +0 -76
  141. package/esm/node-test/test-buffer-writer.js +0 -311
  142. package/esm/node-test/test-errors.js +0 -91
  143. package/esm/node-test/test-indexer.js +0 -85
  144. package/esm/node-test/test-interface.js +0 -24
  145. package/esm/node-test/test-iterator.js +0 -91
  146. package/esm/node-test/test-reader.js +0 -270
  147. package/esm/node-test/test-writer.js +0 -297
  148. package/esm/node-test/verify-store-reader.js +0 -122
  149. package/esm/package.json +0 -9
  150. package/examples/car-to-fixture.js +0 -66
  151. package/examples/dump-car.js +0 -58
  152. package/examples/dump-index.js +0 -24
  153. package/examples/package.json +0 -27
  154. package/examples/round-trip.js +0 -45
  155. package/examples/test-examples.js +0 -115
  156. package/examples/verify-car.js +0 -87
  157. package/index.js +0 -1
  158. package/indexed-reader +0 -1
  159. package/indexer +0 -1
  160. package/iterator +0 -1
  161. package/lib/coding.ts +0 -56
  162. package/lib/header-validator.js +0 -33
  163. package/reader +0 -1
  164. package/test/_fixtures_to_js.mjs +0 -24
  165. package/test/common.js +0 -210
  166. package/test/go.car +0 -0
  167. package/test/go.carv2 +0 -0
  168. package/test/node-test-file-streams.js +0 -84
  169. package/test/node-test-indexed-reader.js +0 -45
  170. package/test/node-test-large.js +0 -112
  171. package/test/node-test-raw.js +0 -83
  172. package/test/node-test-updateroots.js +0 -89
  173. package/test/test-buffer-writer.js +0 -256
  174. package/test/test-errors.js +0 -98
  175. package/test/test-indexer.js +0 -87
  176. package/test/test-interface.js +0 -24
  177. package/test/test-iterator.js +0 -74
  178. package/test/test-reader.js +0 -245
  179. package/test/test-writer.js +0 -336
  180. package/test/verify-store-reader.js +0 -191
  181. package/tsconfig.json +0 -48
  182. package/types/api.d.ts.map +0 -1
  183. package/types/car-browser.d.ts +0 -8
  184. package/types/car-browser.d.ts.map +0 -1
  185. package/types/car.d.ts +0 -9
  186. package/types/car.d.ts.map +0 -1
  187. package/types/lib/coding.d.ts +0 -41
  188. package/types/lib/coding.d.ts.map +0 -1
  189. package/types/lib/header-validator.d.ts.map +0 -1
  190. package/types/lib/indexed-reader-browser.d.ts.map +0 -1
  191. package/types/lib/indexed-reader.d.ts.map +0 -1
  192. package/types/test/_fixtures_to_js.d.mts +0 -3
  193. package/types/test/_fixtures_to_js.d.mts.map +0 -1
  194. package/types/test/common.d.ts +0 -73
  195. package/types/test/common.d.ts.map +0 -1
  196. package/types/test/fixtures-expectations.d.ts +0 -63
  197. package/types/test/fixtures-expectations.d.ts.map +0 -1
  198. package/types/test/fixtures.d.ts +0 -3
  199. package/types/test/fixtures.d.ts.map +0 -1
  200. package/types/test/node-test-file-streams.d.ts +0 -3
  201. package/types/test/node-test-file-streams.d.ts.map +0 -1
  202. package/types/test/node-test-indexed-reader.d.ts +0 -2
  203. package/types/test/node-test-indexed-reader.d.ts.map +0 -1
  204. package/types/test/node-test-large.d.ts +0 -2
  205. package/types/test/node-test-large.d.ts.map +0 -1
  206. package/types/test/node-test-raw.d.ts +0 -2
  207. package/types/test/node-test-raw.d.ts.map +0 -1
  208. package/types/test/node-test-updateroots.d.ts +0 -2
  209. package/types/test/node-test-updateroots.d.ts.map +0 -1
  210. package/types/test/test-buffer-writer.d.ts +0 -2
  211. package/types/test/test-buffer-writer.d.ts.map +0 -1
  212. package/types/test/test-errors.d.ts +0 -2
  213. package/types/test/test-errors.d.ts.map +0 -1
  214. package/types/test/test-indexer.d.ts +0 -2
  215. package/types/test/test-indexer.d.ts.map +0 -1
  216. package/types/test/test-interface.d.ts +0 -2
  217. package/types/test/test-interface.d.ts.map +0 -1
  218. package/types/test/test-iterator.d.ts +0 -2
  219. package/types/test/test-iterator.d.ts.map +0 -1
  220. package/types/test/test-reader.d.ts +0 -2
  221. package/types/test/test-reader.d.ts.map +0 -1
  222. package/types/test/test-writer.d.ts +0 -2
  223. package/types/test/test-writer.d.ts.map +0 -1
  224. package/types/test/verify-store-reader.d.ts +0 -29
  225. package/types/test/verify-store-reader.d.ts.map +0 -1
  226. package/writer +0 -1
package/LICENSE ADDED
@@ -0,0 +1,4 @@
1
+ This project is dual licensed under MIT and Apache-2.0.
2
+
3
+ MIT: https://www.opensource.org/licenses/mit
4
+ Apache-2.0: https://www.apache.org/licenses/license-2.0
package/README.md CHANGED
@@ -1,13 +1,21 @@
1
1
  # @ipld/car
2
2
 
3
- A JavaScript Content Addressable aRchive (CAR) file reader and writer.
3
+ [![codecov](https://img.shields.io/codecov/c/github/ipld/js-car.svg?style=flat-square)](https://codecov.io/gh/ipld/js-car)
4
+ [![CI](https://img.shields.io/github/workflow/status/ipld/js-car/test%20&%20maybe%20release/master?style=flat-square)](https://github.com/ipld/js-car/actions/workflows/js-test-and-release.yml)
5
+
6
+ > Content Addressable aRchive format reader and writer
7
+
8
+ ## Install
9
+
10
+ ```console
11
+ $ npm i @ipld/car
12
+ ```
4
13
 
5
14
  See also:
6
15
 
7
16
  * Original [Go implementation](https://github.com/ipfs/go-car)
8
17
  * [CAR specification](https://github.com/ipld/specs/blob/master/block-layer/content-addressable-archives.md)
9
18
  * [IPLD](https://ipld.io)
10
-
11
19
 
12
20
  ## Contents
13
21
 
@@ -944,8 +952,8 @@ to `byteLimit` bytes. It _does not_ update `pos` of the original
944
952
 
945
953
  Licensed under either of
946
954
 
947
- * Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / http://www.apache.org/licenses/LICENSE-2.0)
948
- * MIT ([LICENSE-MIT](LICENSE-MIT) / http://opensource.org/licenses/MIT)
955
+ * Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
956
+ * MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
949
957
 
950
958
  ### Contribution
951
959
 
@@ -0,0 +1,5 @@
1
+ (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.IpldCar = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
+ "use strict";var IpldCar=(()=>{var vn=Object.create;var Ie=Object.defineProperty;var En=Object.getOwnPropertyDescriptor;var kn=Object.getOwnPropertyNames;var An=Object.getPrototypeOf,_n=Object.prototype.hasOwnProperty;var pe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ut=(e,t)=>{for(var r in t)Ie(e,r,{get:t[r],enumerable:!0})},Tt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of kn(t))!_n.call(e,o)&&o!==r&&Ie(e,o,{get:()=>t[o],enumerable:!(n=En(t,o))||n.enumerable});return e};var Ne=(e,t,r)=>(r=e!=null?vn(An(e)):{},Tt(t||!e||!e.__esModule?Ie(r,"default",{value:e,enumerable:!0}):r,e)),Un=e=>Tt(Ie({},"__esModule",{value:!0}),e);var It=pe((pi,Bt)=>{Bt.exports=Ke;var St=128,Tn=127,Sn=~Tn,Bn=Math.pow(2,31);function Ke(e,t,r){if(Number.MAX_SAFE_INTEGER&&e>Number.MAX_SAFE_INTEGER)throw Ke.bytes=0,new RangeError("Could not encode varint");t=t||[],r=r||0;for(var n=r;e>=Bn;)t[r++]=e&255|St,e/=128;for(;e&Sn;)t[r++]=e&255|St,e>>>=7;return t[r]=e|0,Ke.bytes=r-n+1,t}});var Mt=pe((yi,Ct)=>{Ct.exports=We;var In=128,Nt=127;function We(e,n){var r=0,n=n||0,o=0,i=n,a,d=e.length;do{if(i>=d||o>49)throw We.bytes=0,new RangeError("Could not decode varint");a=e[i++],r+=o<28?(a&Nt)<<o:(a&Nt)*Math.pow(2,o),o+=7}while(a>=In);return We.bytes=i-n,r}});var Rt=pe((mi,zt)=>{var Nn=Math.pow(2,7),Cn=Math.pow(2,14),Mn=Math.pow(2,21),zn=Math.pow(2,28),Rn=Math.pow(2,35),$n=Math.pow(2,42),On=Math.pow(2,49),Ln=Math.pow(2,56),Dn=Math.pow(2,63);zt.exports=function(e){return e<Nn?1:e<Cn?2:e<Mn?3:e<zn?4:e<Rn?5:e<$n?6:e<On?7:e<Ln?8:e<Dn?9:10}});var Ce=pe((wi,$t)=>{$t.exports={encode:It(),decode:Mt(),encodingLength:Rt()}});var pn=pe(()=>{});var li={};Ut(li,{CarBlockIterator:()=>W,CarBufferWriter:()=>_t,CarCIDIterator:()=>Q,CarIndexedReader:()=>he,CarIndexer:()=>K,CarReader:()=>J,CarWriter:()=>Y});var q=Ne(Ce(),1);var Fn=Dt,Ot=128,Vn=127,Hn=~Vn,Pn=Math.pow(2,31);function Dt(e,t,r){t=t||[],r=r||0;for(var n=r;e>=Pn;)t[r++]=e&255|Ot,e/=128;for(;e&Hn;)t[r++]=e&255|Ot,e>>>=7;return t[r]=e|0,Dt.bytes=r-n+1,t}var qn=Qe,Gn=128,Lt=127;function Qe(e,n){var r=0,n=n||0,o=0,i=n,a,d=e.length;do{if(i>=d)throw Qe.bytes=0,new RangeError("Could not decode varint");a=e[i++],r+=o<28?(a&Lt)<<o:(a&Lt)*Math.pow(2,o),o+=7}while(a>=Gn);return Qe.bytes=i-n,r}var jn=Math.pow(2,7),Xn=Math.pow(2,14),Jn=Math.pow(2,21),Kn=Math.pow(2,28),Wn=Math.pow(2,35),Qn=Math.pow(2,42),Yn=Math.pow(2,49),Zn=Math.pow(2,56),eo=Math.pow(2,63),to=function(e){return e<jn?1:e<Xn?2:e<Jn?3:e<Kn?4:e<Wn?5:e<Qn?6:e<Yn?7:e<Zn?8:e<eo?9:10},ro={encode:Fn,decode:qn,encodingLength:to},no=ro,ye=no;var me=(e,t=0)=>[ye.decode(e,t),ye.decode.bytes],ee=(e,t,r=0)=>(ye.encode(e,t,r),t),te=e=>ye.encodingLength(e);var xi=new Uint8Array(0);var Vt=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},re=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var Ht=(e,t)=>{let r=t.byteLength,n=te(e),o=n+te(r),i=new Uint8Array(o+r);return ee(e,i,0),ee(r,i,n),i.set(t,o),new ne(e,r,t,i)},we=e=>{let t=re(e),[r,n]=me(t),[o,i]=me(t.subarray(n)),a=t.subarray(n+i);if(a.byteLength!==o)throw new Error("Incorrect length");return new ne(r,o,a,t)},Pt=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Vt(e.bytes,r.bytes)}},ne=class{constructor(t,r,n,o){this.code=t,this.size=r,this.digest=n,this.bytes=o}};function oo(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<e.length;o++){var i=e.charAt(o),a=i.charCodeAt(0);if(r[a]!==255)throw new TypeError(i+" is ambiguous");r[a]=o}var d=e.length,f=e.charAt(0),h=Math.log(d)/Math.log(256),p=Math.log(256)/Math.log(d);function Z(w){if(w instanceof Uint8Array||(ArrayBuffer.isView(w)?w=new Uint8Array(w.buffer,w.byteOffset,w.byteLength):Array.isArray(w)&&(w=Uint8Array.from(w))),!(w instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(w.length===0)return"";for(var x=0,j=0,S=0,C=w.length;S!==C&&w[S]===0;)S++,x++;for(var M=(C-S)*p+1>>>0,_=new Uint8Array(M);S!==C;){for(var z=w[S],F=0,B=M-1;(z!==0||F<j)&&B!==-1;B--,F++)z+=256*_[B]>>>0,_[B]=z%d>>>0,z=z/d>>>0;if(z!==0)throw new Error("Non-zero carry");j=F,S++}for(var O=M-j;O!==M&&_[O]===0;)O++;for(var Be=f.repeat(x);O<M;++O)Be+=e.charAt(_[O]);return Be}function Se(w){if(typeof w!="string")throw new TypeError("Expected String");if(w.length===0)return new Uint8Array;var x=0;if(w[x]!==" "){for(var j=0,S=0;w[x]===f;)j++,x++;for(var C=(w.length-x)*h+1>>>0,M=new Uint8Array(C);w[x];){var _=r[w.charCodeAt(x)];if(_===255)return;for(var z=0,F=C-1;(_!==0||z<S)&&F!==-1;F--,z++)_+=d*M[F]>>>0,M[F]=_%256>>>0,_=_/256>>>0;if(_!==0)throw new Error("Non-zero carry");S=z,x++}if(w[x]!==" "){for(var B=C-S;B!==C&&M[B]===0;)B++;for(var O=new Uint8Array(j+(C-B)),Be=j;B!==C;)O[Be++]=M[B++];return O}}}function xn(w){var x=Se(w);if(x)return x;throw new Error(`Non-${t} character`)}return{encode:Z,decodeUnsafe:Se,decode:xn}}var io=oo,so=io,Gt=so;var Ye=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Ze=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return jt(this,t)}},et=class{constructor(t){this.decoders=t}or(t){return jt(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},jt=(e,t)=>new et({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),tt=class{constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ye(t,r,n),this.decoder=new Ze(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Xt=({name:e,prefix:t,encode:r,decode:n})=>new tt(e,t,r,n),rt=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:o}=Gt(r,t);return Xt({prefix:e,name:t,encode:n,decode:i=>re(o(i))})},ao=(e,t,r,n)=>{let o={};for(let p=0;p<t.length;++p)o[t[p]]=p;let i=e.length;for(;e[i-1]==="=";)--i;let a=new Uint8Array(i*r/8|0),d=0,f=0,h=0;for(let p=0;p<i;++p){let Z=o[e[p]];if(Z===void 0)throw new SyntaxError(`Non-${n} character`);f=f<<r|Z,d+=r,d>=8&&(d-=8,a[h++]=255&f>>d)}if(d>=r||255&f<<8-d)throw new SyntaxError("Unexpected end of data");return a},co=(e,t,r)=>{let n=t[t.length-1]==="=",o=(1<<r)-1,i="",a=0,d=0;for(let f=0;f<e.length;++f)for(d=d<<8|e[f],a+=8;a>r;)a-=r,i+=t[o&d>>a];if(a&&(i+=t[o&d<<r-a]),n)for(;i.length*r&7;)i+="=";return i},R=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Xt({prefix:t,name:e,encode(o){return co(o,n,r)},decode(o){return ao(o,n,r,e)}});var L=rt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Si=rt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ge=R({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ni=R({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ci=R({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Mi=R({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),zi=R({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ri=R({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),$i=R({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Oi=R({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Li=R({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var uo=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return lo(r,nt(e),t||L.encoder);default:return ho(r,nt(e),t||ge.encoder)}},Jt=new WeakMap,nt=e=>{let t=Jt.get(e);if(t==null){let r=new Map;return Jt.set(e,r),r}return t},m=class{constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==be)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==po)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return m.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=Ht(t,r);return m.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return m.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&Pt(t.multihash,n.multihash)}toString(t){return uo(this,t)}toJSON(){return{code:this.code,version:this.version,hash:this.multihash.bytes}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof m)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:i,bytes:a}=r;return new m(n,o,i,a||Kt(n,o,i.bytes))}else if(r[yo]===!0){let{version:n,multihash:o,code:i}=r,a=we(o);return m.create(n,i,a)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==be)throw new Error(`Version 0 CID must use dag-pb (code: ${be}) block encoding`);return new m(t,r,n,n.bytes)}case 1:{let o=Kt(t,r,n.bytes);return new m(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return m.create(0,be,t)}static createV1(t,r){return m.create(1,t,r)}static decode(t){let[r,n]=m.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=m.inspectBytes(t),n=r.size-r.multihashSize,o=re(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let i=o.subarray(r.multihashSize-r.digestSize),a=new ne(r.multihashCode,r.digestSize,i,o);return[r.version===0?m.createV0(a):m.createV1(r.codec,a),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[Z,Se]=me(t.subarray(r));return r+=Se,Z},o=n(),i=be;if(o===18?(o=0,r=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let a=r,d=n(),f=n(),h=r+f,p=h-a;return{version:o,codec:i,multihashCode:d,digestSize:f,multihashSize:p,size:h}}static parse(t,r){let[n,o]=fo(t,r),i=m.decode(o);return nt(i).set(n,t),i}},fo=(e,t)=>{switch(e[0]){case"Q":{let r=t||L;return[L.prefix,r.decode(`${L.prefix}${e}`)]}case L.prefix:{let r=t||L;return[L.prefix,r.decode(e)]}case ge.prefix:{let r=t||ge;return[ge.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},lo=(e,t,r)=>{let{prefix:n}=r;if(n!==L.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let i=r.encode(e).slice(1);return t.set(n,i),i}else return o},ho=(e,t,r)=>{let{prefix:n}=r,o=t.get(n);if(o==null){let i=r.encode(e);return t.set(n,i),i}else return o},be=112,po=18,Kt=(e,t,r)=>{let n=te(e),o=n+te(t),i=new Uint8Array(o+r.byteLength);return ee(e,i,0),ee(t,i,n),i.set(r,o),i},yo=Symbol.for("@ipld/js-cid/CID");var mo=["string","number","bigint","symbol"],wo=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Wt(e){if(e===null)return"null";if(e===void 0)return"undefined";if(e===!0||e===!1)return"boolean";let t=typeof e;if(mo.includes(t))return t;if(t==="function")return"Function";if(Array.isArray(e))return"Array";if(go(e))return"Buffer";let r=bo(e);return r||"Object"}function go(e){return e&&e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer.call(null,e)}function bo(e){let t=Object.prototype.toString.call(e).slice(8,-1);if(wo.includes(t))return t}var s=class{constructor(t,r,n){this.major=t,this.majorEncoded=t<<5,this.name=r,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(t){return this.major<t.major?-1:this.major>t.major?1:0}};s.uint=new s(0,"uint",!0);s.negint=new s(1,"negint",!0);s.bytes=new s(2,"bytes",!0);s.string=new s(3,"string",!0);s.array=new s(4,"array",!1);s.map=new s(5,"map",!1);s.tag=new s(6,"tag",!1);s.float=new s(7,"float",!0);s.false=new s(7,"false",!0);s.true=new s(7,"true",!0);s.null=new s(7,"null",!0);s.undefined=new s(7,"undefined",!0);s.break=new s(7,"break",!0);var c=class{constructor(t,r,n){this.type=t,this.value=r,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var oe=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",xo=new TextDecoder,vo=new TextEncoder;function Me(e){return oe&&globalThis.Buffer.isBuffer(e)}function ot(e){return e instanceof Uint8Array?Me(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e:Uint8Array.from(e)}var er=oe?(e,t,r)=>r-t>64?globalThis.Buffer.from(e.subarray(t,r)).toString("utf8"):Yt(e,t,r):(e,t,r)=>r-t>64?xo.decode(e.subarray(t,r)):Yt(e,t,r),tr=oe?e=>e.length>64?globalThis.Buffer.from(e):Qt(e):e=>e.length>64?vo.encode(e):Qt(e),$=e=>Uint8Array.from(e),ie=oe?(e,t,r)=>Me(e)?new Uint8Array(e.subarray(t,r)):e.slice(t,r):(e,t,r)=>e.slice(t,r),rr=oe?(e,t)=>(e=e.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),ot(globalThis.Buffer.concat(e,t))):(e,t)=>{let r=new Uint8Array(t),n=0;for(let o of e)n+o.length>r.length&&(o=o.subarray(0,r.length-n)),r.set(o,n),n+=o.length;return r},nr=oe?e=>globalThis.Buffer.allocUnsafe(e):e=>new Uint8Array(e);function or(e,t){if(Me(e)&&Me(t))return e.compare(t);for(let r=0;r<e.length;r++)if(e[r]!==t[r])return e[r]<t[r]?-1:1;return 0}function Qt(e,t=1/0){let r,n=e.length,o=null,i=[];for(let a=0;a<n;++a){if(r=e.charCodeAt(a),r>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}else if(a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=(o-55296<<10|r-56320)+65536}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return i}function Yt(e,t,r){let n=[];for(;t<r;){let o=e[t],i=null,a=o>239?4:o>223?3:o>191?2:1;if(t+a<=r){let d,f,h,p;switch(a){case 1:o<128&&(i=o);break;case 2:d=e[t+1],(d&192)===128&&(p=(o&31)<<6|d&63,p>127&&(i=p));break;case 3:d=e[t+1],f=e[t+2],(d&192)===128&&(f&192)===128&&(p=(o&15)<<12|(d&63)<<6|f&63,p>2047&&(p<55296||p>57343)&&(i=p));break;case 4:d=e[t+1],f=e[t+2],h=e[t+3],(d&192)===128&&(f&192)===128&&(h&192)===128&&(p=(o&15)<<18|(d&63)<<12|(f&63)<<6|h&63,p>65535&&p<1114112&&(i=p))}}i===null?(i=65533,a=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),t+=a}return Eo(n)}var Zt=4096;function Eo(e){let t=e.length;if(t<=Zt)return String.fromCharCode.apply(String,e);let r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Zt));return r}var ko=256,xe=class{constructor(t=ko){this.chunkSize=t,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(t){let r=this.chunks[this.chunks.length-1];if(this.cursor+t.length<=this.maxCursor+1){let o=r.length-(this.maxCursor-this.cursor)-1;r.set(t,o)}else{if(r){let o=r.length-(this.maxCursor-this.cursor)-1;o<r.length&&(this.chunks[this.chunks.length-1]=r.subarray(0,o),this.maxCursor=this.cursor-1)}t.length<64&&t.length<this.chunkSize?(r=nr(this.chunkSize),this.chunks.push(r),this.maxCursor+=r.length,this._initReuseChunk===null&&(this._initReuseChunk=r),r.set(t,0)):(this.chunks.push(t),this.maxCursor+=t.length)}this.cursor+=t.length}toBytes(t=!1){let r;if(this.chunks.length===1){let n=this.chunks[0];t&&this.cursor>n.length/2?(r=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):r=ie(n,0,this.cursor)}else r=rr(this.chunks,this.cursor);return t&&this.reset(),r}};var l="CBOR decode error:",it="CBOR encode error:",ve=[];ve[23]=1;ve[24]=2;ve[25]=3;ve[26]=5;ve[27]=9;function D(e,t,r){if(e.length-t<r)throw new Error(`${l} not enough data for type`)}var g=[24,256,65536,4294967296,BigInt("18446744073709551616")];function v(e,t,r){D(e,t,1);let n=e[t];if(r.strict===!0&&n<g[0])throw new Error(`${l} integer encoded in more bytes than necessary (strict decode)`);return n}function E(e,t,r){D(e,t,2);let n=e[t]<<8|e[t+1];if(r.strict===!0&&n<g[1])throw new Error(`${l} integer encoded in more bytes than necessary (strict decode)`);return n}function k(e,t,r){D(e,t,4);let n=e[t]*16777216+(e[t+1]<<16)+(e[t+2]<<8)+e[t+3];if(r.strict===!0&&n<g[2])throw new Error(`${l} integer encoded in more bytes than necessary (strict decode)`);return n}function A(e,t,r){D(e,t,8);let n=e[t]*16777216+(e[t+1]<<16)+(e[t+2]<<8)+e[t+3],o=e[t+4]*16777216+(e[t+5]<<16)+(e[t+6]<<8)+e[t+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(r.strict===!0&&i<g[3])throw new Error(`${l} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(r.allowBigInt===!0)return i;throw new Error(`${l} integers outside of the safe integer range are not supported`)}function ir(e,t,r,n){return new c(s.uint,v(e,t+1,n),2)}function sr(e,t,r,n){return new c(s.uint,E(e,t+1,n),3)}function ar(e,t,r,n){return new c(s.uint,k(e,t+1,n),5)}function cr(e,t,r,n){return new c(s.uint,A(e,t+1,n),9)}function U(e,t){return b(e,0,t.value)}function b(e,t,r){if(r<g[0]){let n=Number(r);e.push([t|n])}else if(r<g[1]){let n=Number(r);e.push([t|24,n])}else if(r<g[2]){let n=Number(r);e.push([t|25,n>>>8,n&255])}else if(r<g[3]){let n=Number(r);e.push([t|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(r);if(n<g[4]){let o=[t|27,0,0,0,0,0,0,0],i=Number(n&BigInt(4294967295)),a=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=i&255,i=i>>8,o[7]=i&255,i=i>>8,o[6]=i&255,i=i>>8,o[5]=i&255,o[4]=a&255,a=a>>8,o[3]=a&255,a=a>>8,o[2]=a&255,a=a>>8,o[1]=a&255,e.push(o)}else throw new Error(`${l} encountered BigInt larger than allowable range`)}}U.encodedSize=function(t){return b.encodedSize(t.value)};b.encodedSize=function(t){return t<g[0]?1:t<g[1]?2:t<g[2]?3:t<g[3]?5:9};U.compareTokens=function(t,r){return t.value<r.value?-1:t.value>r.value?1:0};function ur(e,t,r,n){return new c(s.negint,-1-v(e,t+1,n),2)}function dr(e,t,r,n){return new c(s.negint,-1-E(e,t+1,n),3)}function fr(e,t,r,n){return new c(s.negint,-1-k(e,t+1,n),5)}var st=BigInt(-1),lr=BigInt(1);function hr(e,t,r,n){let o=A(e,t+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new c(s.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${l} integers outside of the safe integer range are not supported`);return new c(s.negint,st-BigInt(o),9)}function ze(e,t){let r=t.value,n=typeof r=="bigint"?r*st-lr:r*-1-1;b(e,t.type.majorEncoded,n)}ze.encodedSize=function(t){let r=t.value,n=typeof r=="bigint"?r*st-lr:r*-1-1;return n<g[0]?1:n<g[1]?2:n<g[2]?3:n<g[3]?5:9};ze.compareTokens=function(t,r){return t.value<r.value?1:t.value>r.value?-1:0};function Ee(e,t,r,n){D(e,t,r+n);let o=ie(e,t+r,t+r+n);return new c(s.bytes,o,r+n)}function pr(e,t,r,n){return Ee(e,t,1,r)}function yr(e,t,r,n){return Ee(e,t,2,v(e,t+1,n))}function mr(e,t,r,n){return Ee(e,t,3,E(e,t+1,n))}function wr(e,t,r,n){return Ee(e,t,5,k(e,t+1,n))}function gr(e,t,r,n){let o=A(e,t+1,n);if(typeof o=="bigint")throw new Error(`${l} 64-bit integer bytes lengths not supported`);return Ee(e,t,9,o)}function Re(e){return e.encodedBytes===void 0&&(e.encodedBytes=e.type===s.string?tr(e.value):e.value),e.encodedBytes}function se(e,t){let r=Re(t);b(e,t.type.majorEncoded,r.length),e.push(r)}se.encodedSize=function(t){let r=Re(t);return b.encodedSize(r.length)+r.length};se.compareTokens=function(t,r){return _o(Re(t),Re(r))};function _o(e,t){return e.length<t.length?-1:e.length>t.length?1:or(e,t)}function ke(e,t,r,n,o){let i=r+n;D(e,t,i);let a=new c(s.string,er(e,t+r,t+i),i);return o.retainStringBytes===!0&&(a.byteValue=ie(e,t+r,t+i)),a}function br(e,t,r,n){return ke(e,t,1,r,n)}function xr(e,t,r,n){return ke(e,t,2,v(e,t+1,n),n)}function vr(e,t,r,n){return ke(e,t,3,E(e,t+1,n),n)}function Er(e,t,r,n){return ke(e,t,5,k(e,t+1,n),n)}function kr(e,t,r,n){let o=A(e,t+1,n);if(typeof o=="bigint")throw new Error(`${l} 64-bit integer string lengths not supported`);return ke(e,t,9,o,n)}var Ar=se;function ae(e,t,r,n){return new c(s.array,n,r)}function _r(e,t,r,n){return ae(e,t,1,r)}function Ur(e,t,r,n){return ae(e,t,2,v(e,t+1,n))}function Tr(e,t,r,n){return ae(e,t,3,E(e,t+1,n))}function Sr(e,t,r,n){return ae(e,t,5,k(e,t+1,n))}function Br(e,t,r,n){let o=A(e,t+1,n);if(typeof o=="bigint")throw new Error(`${l} 64-bit integer array lengths not supported`);return ae(e,t,9,o)}function Ir(e,t,r,n){if(n.allowIndefinite===!1)throw new Error(`${l} indefinite length items not allowed`);return ae(e,t,1,1/0)}function $e(e,t){b(e,s.array.majorEncoded,t.value)}$e.compareTokens=U.compareTokens;$e.encodedSize=function(t){return b.encodedSize(t.value)};function ce(e,t,r,n){return new c(s.map,n,r)}function Nr(e,t,r,n){return ce(e,t,1,r)}function Cr(e,t,r,n){return ce(e,t,2,v(e,t+1,n))}function Mr(e,t,r,n){return ce(e,t,3,E(e,t+1,n))}function zr(e,t,r,n){return ce(e,t,5,k(e,t+1,n))}function Rr(e,t,r,n){let o=A(e,t+1,n);if(typeof o=="bigint")throw new Error(`${l} 64-bit integer map lengths not supported`);return ce(e,t,9,o)}function $r(e,t,r,n){if(n.allowIndefinite===!1)throw new Error(`${l} indefinite length items not allowed`);return ce(e,t,1,1/0)}function Oe(e,t){b(e,s.map.majorEncoded,t.value)}Oe.compareTokens=U.compareTokens;Oe.encodedSize=function(t){return b.encodedSize(t.value)};function Or(e,t,r,n){return new c(s.tag,r,1)}function Lr(e,t,r,n){return new c(s.tag,v(e,t+1,n),2)}function Dr(e,t,r,n){return new c(s.tag,E(e,t+1,n),3)}function Fr(e,t,r,n){return new c(s.tag,k(e,t+1,n),5)}function Vr(e,t,r,n){return new c(s.tag,A(e,t+1,n),9)}function Le(e,t){b(e,s.tag.majorEncoded,t.value)}Le.compareTokens=U.compareTokens;Le.encodedSize=function(t){return b.encodedSize(t.value)};var No=20,Co=21,Mo=22,zo=23;function Hr(e,t,r,n){if(n.allowUndefined===!1)throw new Error(`${l} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new c(s.null,null,1):new c(s.undefined,void 0,1)}function Pr(e,t,r,n){if(n.allowIndefinite===!1)throw new Error(`${l} indefinite length items not allowed`);return new c(s.break,void 0,1)}function at(e,t,r){if(r){if(r.allowNaN===!1&&Number.isNaN(e))throw new Error(`${l} NaN values are not supported`);if(r.allowInfinity===!1&&(e===1/0||e===-1/0))throw new Error(`${l} Infinity values are not supported`)}return new c(s.float,e,t)}function qr(e,t,r,n){return at(ct(e,t+1),3,n)}function Gr(e,t,r,n){return at(ut(e,t+1),5,n)}function jr(e,t,r,n){return at(Wr(e,t+1),9,n)}function De(e,t,r){let n=t.value;if(n===!1)e.push([s.float.majorEncoded|No]);else if(n===!0)e.push([s.float.majorEncoded|Co]);else if(n===null)e.push([s.float.majorEncoded|Mo]);else if(n===void 0)e.push([s.float.majorEncoded|zo]);else{let o,i=!1;(!r||r.float64!==!0)&&(Jr(n),o=ct(I,1),n===o||Number.isNaN(n)?(I[0]=249,e.push(I.slice(0,3)),i=!0):(Kr(n),o=ut(I,1),n===o&&(I[0]=250,e.push(I.slice(0,5)),i=!0))),i||(Ro(n),o=Wr(I,1),I[0]=251,e.push(I.slice(0,9)))}}De.encodedSize=function(t,r){let n=t.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!r||r.float64!==!0){Jr(n);let o=ct(I,1);if(n===o||Number.isNaN(n))return 3;if(Kr(n),o=ut(I,1),n===o)return 5}return 9};var Xr=new ArrayBuffer(9),T=new DataView(Xr,1),I=new Uint8Array(Xr,0);function Jr(e){if(e===1/0)T.setUint16(0,31744,!1);else if(e===-1/0)T.setUint16(0,64512,!1);else if(Number.isNaN(e))T.setUint16(0,32256,!1);else{T.setFloat32(0,e);let t=T.getUint32(0),r=(t&2139095040)>>23,n=t&8388607;if(r===255)T.setUint16(0,31744,!1);else if(r===0)T.setUint16(0,(e&2147483648)>>16|n>>13,!1);else{let o=r-127;o<-24?T.setUint16(0,0):o<-14?T.setUint16(0,(t&2147483648)>>16|1<<24+o,!1):T.setUint16(0,(t&2147483648)>>16|o+15<<10|n>>13,!1)}}}function ct(e,t){if(e.length-t<2)throw new Error(`${l} not enough data for float16`);let r=(e[t]<<8)+e[t+1];if(r===31744)return 1/0;if(r===64512)return-1/0;if(r===32256)return NaN;let n=r>>10&31,o=r&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,r&32768?-i:i}function Kr(e){T.setFloat32(0,e,!1)}function ut(e,t){if(e.length-t<4)throw new Error(`${l} not enough data for float32`);let r=(e.byteOffset||0)+t;return new DataView(e.buffer,r,4).getFloat32(0,!1)}function Ro(e){T.setFloat64(0,e,!1)}function Wr(e,t){if(e.length-t<8)throw new Error(`${l} not enough data for float64`);let r=(e.byteOffset||0)+t;return new DataView(e.buffer,r,8).getFloat64(0,!1)}De.compareTokens=U.compareTokens;function y(e,t,r){throw new Error(`${l} encountered invalid minor (${r}) for major ${e[t]>>>5}`)}function Fe(e){return()=>{throw new Error(`${l} ${e}`)}}var u=[];for(let e=0;e<=23;e++)u[e]=y;u[24]=ir;u[25]=sr;u[26]=ar;u[27]=cr;u[28]=y;u[29]=y;u[30]=y;u[31]=y;for(let e=32;e<=55;e++)u[e]=y;u[56]=ur;u[57]=dr;u[58]=fr;u[59]=hr;u[60]=y;u[61]=y;u[62]=y;u[63]=y;for(let e=64;e<=87;e++)u[e]=pr;u[88]=yr;u[89]=mr;u[90]=wr;u[91]=gr;u[92]=y;u[93]=y;u[94]=y;u[95]=Fe("indefinite length bytes/strings are not supported");for(let e=96;e<=119;e++)u[e]=br;u[120]=xr;u[121]=vr;u[122]=Er;u[123]=kr;u[124]=y;u[125]=y;u[126]=y;u[127]=Fe("indefinite length bytes/strings are not supported");for(let e=128;e<=151;e++)u[e]=_r;u[152]=Ur;u[153]=Tr;u[154]=Sr;u[155]=Br;u[156]=y;u[157]=y;u[158]=y;u[159]=Ir;for(let e=160;e<=183;e++)u[e]=Nr;u[184]=Cr;u[185]=Mr;u[186]=zr;u[187]=Rr;u[188]=y;u[189]=y;u[190]=y;u[191]=$r;for(let e=192;e<=215;e++)u[e]=Or;u[216]=Lr;u[217]=Dr;u[218]=Fr;u[219]=Vr;u[220]=y;u[221]=y;u[222]=y;u[223]=y;for(let e=224;e<=243;e++)u[e]=Fe("simple values are not supported");u[244]=y;u[245]=y;u[246]=y;u[247]=Hr;u[248]=Fe("simple values are not supported");u[249]=qr;u[250]=Gr;u[251]=jr;u[252]=y;u[253]=y;u[254]=y;u[255]=Pr;var N=[];for(let e=0;e<24;e++)N[e]=new c(s.uint,e,1);for(let e=-1;e>=-24;e--)N[31-e]=new c(s.negint,e,1);N[64]=new c(s.bytes,new Uint8Array(0),1);N[96]=new c(s.string,"",1);N[128]=new c(s.array,0,1);N[160]=new c(s.map,0,1);N[244]=new c(s.false,!1,1);N[245]=new c(s.true,!0,1);N[246]=new c(s.null,null,1);function Ve(e){switch(e.type){case s.false:return $([244]);case s.true:return $([245]);case s.null:return $([246]);case s.bytes:return e.value.length?void 0:$([64]);case s.string:return e.value===""?$([96]):void 0;case s.array:return e.value===0?$([128]):void 0;case s.map:return e.value===0?$([160]):void 0;case s.uint:return e.value<24?$([Number(e.value)]):void 0;case s.negint:if(e.value>=-24)return $([31-Number(e.value)])}}var Oo={float64:!1,mapSorter:Do,quickEncodeToken:Ve};function ft(){let e=[];return e[s.uint.major]=U,e[s.negint.major]=ze,e[s.bytes.major]=se,e[s.string.major]=Ar,e[s.array.major]=$e,e[s.map.major]=Oe,e[s.tag.major]=Le,e[s.float.major]=De,e}var Qr=ft(),dt=new xe,ue=class{constructor(t,r){this.obj=t,this.parent=r}includes(t){let r=this;do if(r.obj===t)return!0;while(r=r.parent);return!1}static createCheck(t,r){if(t&&t.includes(r))throw new Error(`${it} object contains circular references`);return new ue(r,t)}},V={null:new c(s.null,null),undefined:new c(s.undefined,void 0),true:new c(s.true,!0),false:new c(s.false,!1),emptyArray:new c(s.array,0),emptyMap:new c(s.map,0)},H={number(e,t,r,n){return!Number.isInteger(e)||!Number.isSafeInteger(e)?new c(s.float,e):e>=0?new c(s.uint,e):new c(s.negint,e)},bigint(e,t,r,n){return e>=BigInt(0)?new c(s.uint,e):new c(s.negint,e)},Uint8Array(e,t,r,n){return new c(s.bytes,e)},string(e,t,r,n){return new c(s.string,e)},boolean(e,t,r,n){return e?V.true:V.false},null(e,t,r,n){return V.null},undefined(e,t,r,n){return V.undefined},ArrayBuffer(e,t,r,n){return new c(s.bytes,new Uint8Array(e))},DataView(e,t,r,n){return new c(s.bytes,new Uint8Array(e.buffer,e.byteOffset,e.byteLength))},Array(e,t,r,n){if(!e.length)return r.addBreakTokens===!0?[V.emptyArray,new c(s.break)]:V.emptyArray;n=ue.createCheck(n,e);let o=[],i=0;for(let a of e)o[i++]=Ae(a,r,n);return r.addBreakTokens?[new c(s.array,e.length),o,new c(s.break)]:[new c(s.array,e.length),o]},Object(e,t,r,n){let o=t!=="Object",i=o?e.keys():Object.keys(e),a=o?e.size:i.length;if(!a)return r.addBreakTokens===!0?[V.emptyMap,new c(s.break)]:V.emptyMap;n=ue.createCheck(n,e);let d=[],f=0;for(let h of i)d[f++]=[Ae(h,r,n),Ae(o?e.get(h):e[h],r,n)];return Lo(d,r),r.addBreakTokens?[new c(s.map,a),d,new c(s.break)]:[new c(s.map,a),d]}};H.Map=H.Object;H.Buffer=H.Uint8Array;for(let e of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))H[`${e}Array`]=H.DataView;function Ae(e,t={},r){let n=Wt(e),o=t&&t.typeEncoders&&t.typeEncoders[n]||H[n];if(typeof o=="function"){let a=o(e,n,t,r);if(a!=null)return a}let i=H[n];if(!i)throw new Error(`${it} unsupported type: ${n}`);return i(e,n,t,r)}function Lo(e,t){t.mapSorter&&e.sort(t.mapSorter)}function Do(e,t){let r=Array.isArray(e[0])?e[0][0]:e[0],n=Array.isArray(t[0])?t[0][0]:t[0];if(r.type!==n.type)return r.type.compare(n.type);let o=r.type.major,i=Qr[o].compareTokens(r,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function Yr(e,t,r,n){if(Array.isArray(t))for(let o of t)Yr(e,o,r,n);else r[t.type.major](e,t,n)}function Fo(e,t,r){let n=Ae(e,r);if(!Array.isArray(n)&&r.quickEncodeToken){let o=r.quickEncodeToken(n);if(o)return o;let i=t[n.type.major];if(i.encodedSize){let a=i.encodedSize(n,r),d=new xe(a);if(i(d,n,r),d.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return ot(d.chunks[0])}}return dt.reset(),Yr(dt,n,t,r),dt.toBytes(!0)}function lt(e,t){return t=Object.assign({},Oo,t),Fo(e,Qr,t)}var Vo={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},ht=class{constructor(t,r={}){this.pos=0,this.data=t,this.options=r}done(){return this.pos>=this.data.length}next(){let t=this.data[this.pos],r=N[t];if(r===void 0){let n=u[t];if(!n)throw new Error(`${l} no decoder for major type ${t>>>5} (byte 0x${t.toString(16).padStart(2,"0")})`);let o=t&31;r=n(this.data,this.pos,o,this.options)}return this.pos+=r.encodedLength,r}},_e=Symbol.for("DONE"),He=Symbol.for("BREAK");function Ho(e,t,r){let n=[];for(let o=0;o<e.value;o++){let i=Ue(t,r);if(i===He){if(e.value===1/0)break;throw new Error(`${l} got unexpected break to lengthed array`)}if(i===_e)throw new Error(`${l} found array but not enough entries (got ${o}, expected ${e.value})`);n[o]=i}return n}function Po(e,t,r){let n=r.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let a=0;a<e.value;a++){let d=Ue(t,r);if(d===He){if(e.value===1/0)break;throw new Error(`${l} got unexpected break to lengthed map`)}if(d===_e)throw new Error(`${l} found map but not enough entries (got ${a} [no key], expected ${e.value})`);if(n!==!0&&typeof d!="string")throw new Error(`${l} non-string keys not supported (got ${typeof d})`);let f=Ue(t,r);if(f===_e)throw new Error(`${l} found map but not enough entries (got ${a} [no value], expected ${e.value})`);n?i.set(d,f):o[d]=f}return n?i:o}function Ue(e,t){if(e.done())return _e;let r=e.next();if(r.type===s.break)return He;if(r.type.terminal)return r.value;if(r.type===s.array)return Ho(r,e,t);if(r.type===s.map)return Po(r,e,t);if(r.type===s.tag){if(t.tags&&typeof t.tags[r.value]=="function"){let n=Ue(e,t);return t.tags[r.value](n)}throw new Error(`${l} tag not supported (${r.value})`)}throw new Error("unsupported")}function pt(e,t){if(!(e instanceof Uint8Array))throw new Error(`${l} data to decode must be a Uint8Array`);t=Object.assign({},Vo,t);let r=t.tokenizer||new ht(e,t),n=Ue(r,t);if(n===_e)throw new Error(`${l} did not find any content to decode`);if(n===He)throw new Error(`${l} got unexpected break`);if(!r.done())throw new Error(`${l} too many terminals, data makes no sense`);return n}var Zr=42;function Go(e){if(e.asCID!==e&&e["/"]!==e.bytes)return null;let t=m.asCID(e);if(!t)return null;let r=new Uint8Array(t.bytes.byteLength+1);return r.set(t.bytes,1),[new c(s.tag,Zr),new c(s.bytes,r)]}function jo(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Xo(e){if(Number.isNaN(e))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(e===1/0||e===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var Jo={float64:!0,typeEncoders:{Object:Go,undefined:jo,number:Xo}};function Ko(e){if(e[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return m.decode(e.subarray(1))}var en={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,tags:[]};en.tags[Zr]=Ko;var Pe=e=>lt(e,Jo),tn=e=>pt(e,en);var P={Null:e=>e===null,Int:e=>Number.isInteger(e),Float:e=>typeof e=="number"&&Number.isFinite(e),String:e=>typeof e=="string",Bool:e=>typeof e=="boolean",Bytes:e=>e instanceof Uint8Array,Link:e=>!P.Null(e)&&typeof e=="object"&&e.asCID===e,List:e=>Array.isArray(e),Map:e=>!P.Null(e)&&typeof e=="object"&&e.asCID!==e&&!P.List(e)&&!P.Bytes(e)},de={Int:P.Int,"CarHeader > version":e=>de.Int(e),"CarHeader > roots (anon) > valueType (anon)":P.Link,"CarHeader > roots (anon)":e=>P.List(e)&&Array.prototype.every.call(e,de["CarHeader > roots (anon) > valueType (anon)"]),"CarHeader > roots":e=>de["CarHeader > roots (anon)"](e),CarHeader:e=>{let t=e&&Object.keys(e);return P.Map(e)&&["version"].every(r=>t.includes(r))&&Object.entries(e).every(([r,n])=>de["CarHeader > "+r]&&de["CarHeader > "+r](n))}},rn=de.CarHeader;var yt={SHA2_256:18,LENGTH:32,DAG_PB:112},nn=16+8+8+8;async function qe(e){let t=await e.upTo(8);if(!t.length)throw new Error("Unexpected end of data");let r=q.default.decode(t);return e.seek(q.default.decode.bytes),r}async function Qo(e){let t=await e.exactly(nn),r=new DataView(t.buffer,t.byteOffset,t.byteLength),n=0,o={version:2,characteristics:[r.getBigUint64(n,!0),r.getBigUint64(n+=8,!0)],dataOffset:Number(r.getBigUint64(n+=8,!0)),dataSize:Number(r.getBigUint64(n+=8,!0)),indexOffset:Number(r.getBigUint64(n+=8,!0))};return e.seek(nn),o}async function Ge(e,t){let r=await qe(e);if(r===0)throw new Error("Invalid CAR header (zero length)");let n=await e.exactly(r);e.seek(r);let o=tn(n);if(!rn(o))throw new Error("Invalid CAR header format");if(o.version!==1&&o.version!==2||t!==void 0&&o.version!==t)throw new Error(`Invalid CAR version: ${o.version}${t!==void 0?` (expected ${t})`:""}`);let i=Array.isArray(o.roots);if(o.version===1&&!i||o.version===2&&i)throw new Error("Invalid CAR header format");if(o.version===1)return o;let a=await Qo(e);e.seek(a.dataOffset-e.pos);let d=await Ge(e,1);return Object.assign(d,a)}async function Yo(e){let t=await e.upTo(8);q.default.decode(t);let r=q.default.decode.bytes,n=q.default.decode(t.subarray(q.default.decode.bytes)),o=q.default.decode.bytes,i=r+o+n,a=await e.exactly(i);return e.seek(i),a}async function Zo(e){let t=await e.exactly(2);if(t[0]===yt.SHA2_256&&t[1]===yt.LENGTH){let a=await e.exactly(34);e.seek(34);let d=we(a);return m.create(0,yt.DAG_PB,d)}let r=await qe(e);if(r!==1)throw new Error(`Unexpected CID version (${r})`);let n=await qe(e),o=await Yo(e),i=we(o);return m.create(r,n,i)}async function on(e){let t=e.pos,r=await qe(e);if(r===0)throw new Error("Invalid CAR section (zero length)");r+=e.pos-t;let n=await Zo(e),o=r-Number(e.pos-t);return{cid:n,length:r,blockLength:o}}async function ei(e){let{cid:t,blockLength:r}=await on(e),n=await e.exactly(r);return e.seek(r),{bytes:n,cid:t}}async function ti(e){let t=e.pos,{cid:r,length:n,blockLength:o}=await on(e),i={cid:r,length:n,blockLength:o,offset:t,blockOffset:e.pos};return e.seek(i.blockLength),i}function fe(e){let t=(async()=>{let r=await Ge(e);if(r.version===2){let n=e.pos-r.dataOffset;e=ni(e,r.dataSize-n)}return r})();return{header:()=>t,async*blocks(){for(await t;(await e.upTo(8)).length>0;)yield await ei(e)},async*blocksIndex(){for(await t;(await e.upTo(8)).length>0;)yield await ti(e)}}}function G(e){let t=0;return{async upTo(r){return e.subarray(t,t+Math.min(r,e.length-t))},async exactly(r){if(r>e.length-t)throw new Error("Unexpected end of data");return e.subarray(t,t+r)},seek(r){t+=r},get pos(){return t}}}function ri(e){let t=0,r=0,n=0,o=new Uint8Array(0),i=async a=>{r=o.length-n;let d=[o.subarray(n)];for(;r<a;){let h=await e();if(h==null)break;r<0?h.length>r&&d.push(h.subarray(-r)):d.push(h),r+=h.length}o=new Uint8Array(d.reduce((h,p)=>h+p.length,0));let f=0;for(let h of d)o.set(h,f),f+=h.length;n=0};return{async upTo(a){return o.length-n<a&&await i(a),o.subarray(n,n+Math.min(o.length-n,a))},async exactly(a){if(o.length-n<a&&await i(a),o.length-n<a)throw new Error("Unexpected end of data");return o.subarray(n,n+a)},seek(a){t+=a,n+=a},get pos(){return t}}}function le(e){let t=e[Symbol.asyncIterator]();async function r(){let n=await t.next();return n.done?null:n.value}return ri(r)}function ni(e,t){let r=0;return{async upTo(n){let o=await e.upTo(n);return o.length+r>t&&(o=o.subarray(0,t-r)),o},async exactly(n){let o=await e.exactly(n);if(o.length+r>t)throw new Error("Unexpected end of data");return o},seek(n){r+=n,e.seek(n)},get pos(){return e.pos}}}var J=class{constructor(t,r){this._header=t,this._blocks=r,this._keys=r.map(n=>n.cid.toString())}get version(){return this._header.version}async getRoots(){return this._header.roots}async has(t){return this._keys.indexOf(t.toString())>-1}async get(t){let r=this._keys.indexOf(t.toString());return r>-1?this._blocks[r]:void 0}async*blocks(){for(let t of this._blocks)yield t}async*cids(){for(let t of this._blocks)yield t.cid}static async fromBytes(t){if(!(t instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return sn(G(t))}static async fromIterable(t){if(!t||typeof t[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return sn(le(t))}};async function sn(e){let t=fe(e),r=await t.header(),n=[];for await(let o of t.blocks())n.push(o);return new J(r,n)}var K=class{constructor(t,r,n){this._version=t,this._roots=r,this._iterator=n}get version(){return this._version}async getRoots(){return this._roots}[Symbol.asyncIterator](){return this._iterator}static async fromBytes(t){if(!(t instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return an(G(t))}static async fromIterable(t){if(!t||typeof t[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return an(le(t))}};async function an(e){let t=fe(e),{version:r,roots:n}=await t.header();return new K(r,n,t.blocksIndex())}var je=class{constructor(t,r,n){this._version=t,this._roots=r,this._iterable=n,this._decoded=!1}get version(){return this._version}async getRoots(){return this._roots}},W=class extends je{[Symbol.asyncIterator](){if(this._decoded)throw new Error("Cannot decode more than once");if(!this._iterable)throw new Error("Block iterable not found");return this._decoded=!0,this._iterable[Symbol.asyncIterator]()}static async fromBytes(t){let{version:r,roots:n,iterator:o}=await cn(t);return new W(r,n,o)}static async fromIterable(t){let{version:r,roots:n,iterator:o}=await un(t);return new W(r,n,o)}},Q=class extends je{[Symbol.asyncIterator](){if(this._decoded)throw new Error("Cannot decode more than once");if(!this._iterable)throw new Error("Block iterable not found");this._decoded=!0;let t=this._iterable[Symbol.asyncIterator]();return{async next(){let r=await t.next();return r.done?r:{done:!1,value:r.value.cid}}}}static async fromBytes(t){let{version:r,roots:n,iterator:o}=await cn(t);return new Q(r,n,o)}static async fromIterable(t){let{version:r,roots:n,iterator:o}=await un(t);return new Q(r,n,o)}};async function cn(e){if(!(e instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return dn(G(e))}async function un(e){if(!e||typeof e[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return dn(le(e))}async function dn(e){let t=fe(e),{version:r,roots:n}=await t.header();return{version:r,roots:n,iterator:t.blocks()}}var mt=Ne(Ce(),1);function wt(e){let t=Pe({version:1,roots:e}),r=mt.default.encode(t.length),n=new Uint8Array(r.length+t.length);return n.set(r,0),n.set(t,r.length),n}function fn(e){return{async setRoots(t){let r=wt(t);await e.write(r)},async writeBlock(t){let{cid:r,bytes:n}=t;await e.write(new Uint8Array(mt.default.encode(r.bytes.length+n.length))),await e.write(r.bytes),n.length&&await e.write(n)},async close(){await e.end()}}}function Xe(){}function ln(){let e=[],t=null,r=Xe,n=!1,o=null,i=Xe,a=()=>(t||(t=new Promise(h=>{r=()=>{t=null,r=Xe,h()}})),t),d={write(h){e.push(h);let p=a();return i(),p},async end(){n=!0;let h=a();i(),await h}},f={async next(){let h=e.shift();return h?(e.length===0&&r(),{done:!1,value:h}):n?(r(),{done:!0,value:void 0}):(o||(o=new Promise(p=>{i=()=>(o=null,i=Xe,p(f.next()))})),o)}};return{writer:d,iterator:f}}var Y=class{constructor(t,r){this._encoder=r,this._mutex=r.setRoots(t),this._ended=!1}async put(t){if(!(t.bytes instanceof Uint8Array)||!t.cid)throw new TypeError("Can only write {cid, bytes} objects");if(this._ended)throw new Error("Already closed");let r=m.asCID(t.cid);if(!r)throw new TypeError("Can only write {cid, bytes} objects");return this._mutex=this._mutex.then(()=>this._encoder.writeBlock({cid:r,bytes:t.bytes})),this._mutex}async close(){if(this._ended)throw new Error("Already closed");return await this._mutex,this._ended=!0,this._encoder.close()}static create(t){t=oi(t);let{encoder:r,iterator:n}=hn(),o=new Y(t,r),i=new Je(n);return{writer:o,out:i}}static createAppender(){let{encoder:t,iterator:r}=hn();t.setRoots=()=>Promise.resolve();let n=new Y([],t),o=new Je(r);return{writer:n,out:o}}static async updateRootsInBytes(t,r){let n=G(t);await Ge(n);let o=wt(r);if(Number(n.pos)!==o.length)throw new Error(`updateRoots() can only overwrite a header of the same length (old header is ${n.pos} bytes, new header is ${o.length} bytes)`);return t.set(o,0),t}},Je=class{constructor(t){this._iterator=t}[Symbol.asyncIterator](){if(this._iterating)throw new Error("Multiple iterator not supported");return this._iterating=!0,this._iterator}};function hn(){let e=ln(),{writer:t,iterator:r}=e;return{encoder:fn(t),iterator:r}}function oi(e){if(e===void 0)return[];if(!Array.isArray(e)){let r=m.asCID(e);if(!r)throw new TypeError("roots must be a single CID or an array of CIDs");return[r]}let t=[];for(let r of e){let n=m.asCID(r);if(!n)throw new TypeError("roots must be a single CID or an array of CIDs");t.push(n)}return t}var gt=Ne(pn(),1);var he=class{constructor(t,r,n,o,i){this._version=t,this._path=r,this._roots=n,this._index=o,this._order=i,this._fd=null}get version(){return this._version}async getRoots(){return this._roots}async has(t){return this._index.has(t.toString())}async get(t){let r=this._index.get(t.toString());if(!r)return;this._fd||(this._fd=await gt.default.promises.open(this._path,"r"));let n={cid:t,length:0,offset:0,blockLength:r.blockLength,blockOffset:r.blockOffset};return J.readRaw(this._fd,n)}async*blocks(){for(let t of this._order){let r=await this.get(m.parse(t));if(!r)throw new Error("Unexpected internal error");yield r}}async*cids(){for(let t of this._order)yield m.parse(t)}async close(){if(this._fd)return this._fd.close()}static async fromFile(t){if(typeof t!="string")throw new TypeError("fromFile() requires a file path string");let r=await K.fromIterable(yn.Readable.from(gt.default.createReadStream(t))),n=new Map,o=[];for await(let{cid:i,blockLength:a,blockOffset:d}of r){let f=i.toString();n.set(f,{blockLength:a,blockOffset:d}),o.push(f)}return new he(r.version,t,await r.getRoots(),n,o)}};var _t={};Ut(_t,{addBlock:()=>gn,addRoot:()=>wn,blockLength:()=>ai,calculateHeaderLength:()=>kt,close:()=>bn,createWriter:()=>fi,estimateHeaderLength:()=>di,headerLength:()=>At,resizeHeader:()=>Et});var Te=Ne(Ce(),1);var ii=ft(),si={float64:!1,quickEncodeToken:Ve};function bt(e,t=ii,r=si){if(Array.isArray(e)){let n=0;for(let o of e)n+=bt(o,t,r);return n}else{let n=t[e.type.major];if(n.encodedSize===void 0||typeof n.encodedSize!="function")throw new Error(`Encoder for ${e.type.name} does not have an encodedSize()`);return n.encodedSize(e,r)}}var vt=class{constructor(t,r){this.bytes=t,this.byteOffset=r,this.roots=[],this.headerSize=r}addRoot(t,r){return wn(this,t,r),this}write(t){return gn(this,t),this}close(t){return bn(this,t)}},wn=(e,t,r={})=>{let{resize:n=!1}=r,{bytes:o,headerSize:i,byteOffset:a,roots:d}=e;e.roots.push(t);let f=At(e);if(f>i)if(f-i+a<o.byteLength)if(n)Et(e,f);else throw d.pop(),new RangeError(`Header of size ${i} has no capacity for new root ${t}.
3
+ However there is a space in the buffer and you could call addRoot(root, { resize: root }) to resize header to make a space for this root.`);else throw d.pop(),new RangeError(`Buffer has no capacity for a new root ${t}`)},ai=({cid:e,bytes:t})=>{let r=e.bytes.byteLength+t.byteLength;return Te.default.encodingLength(r)+r},gn=(e,{cid:t,bytes:r})=>{let n=t.bytes.byteLength+r.byteLength,o=Te.default.encode(n);if(e.byteOffset+o.length+n>e.bytes.byteLength)throw new RangeError("Buffer has no capacity for this block");xt(e,o),xt(e,t.bytes),xt(e,r)},bn=(e,t={})=>{let{resize:r=!1}=t,{roots:n,bytes:o,byteOffset:i,headerSize:a}=e,d=Pe({version:1,roots:n}),f=Te.default.encode(d.length),h=f.length+d.byteLength;if(a-h===0)return mn(e,f,d),o.subarray(0,i);if(r)return Et(e,h),mn(e,f,d),o.subarray(0,e.byteOffset);throw new RangeError(`Header size was overestimated.
4
+ You can use close({ resize: true }) to resize header`)},Et=(e,t)=>{let{bytes:r,headerSize:n}=e;r.set(r.subarray(n,e.byteOffset),t),e.byteOffset+=t-n,e.headerSize=t},xt=(e,t)=>{e.bytes.set(t,e.byteOffset),e.byteOffset+=t.length},mn=({bytes:e},t,r)=>{e.set(t),e.set(r,t.length)},ci=[new c(s.map,2),new c(s.string,"version"),new c(s.uint,1),new c(s.string,"roots")],ui=new c(s.tag,42),kt=e=>{let t=[...ci];t.push(new c(s.array,e.length));for(let n of e)t.push(ui),t.push(new c(s.bytes,{length:n+1}));let r=bt(t);return Te.default.encodingLength(r)+r},At=({roots:e})=>kt(e.map(t=>t.bytes.byteLength)),di=(e,t=36)=>kt(new Array(e).fill(t)),fi=(e,t={})=>{let{roots:r=[],byteOffset:n=0,byteLength:o=e.byteLength,headerSize:i=At({roots:r})}=t,a=new Uint8Array(e,n,o),d=new vt(a,i);for(let f of r)d.addRoot(f);return d};return Un(li);})();
5
+ return IpldCar}));
@@ -1,44 +1,44 @@
1
- import { CID } from 'multiformats/cid';
1
+ import type { CID } from 'multiformats/cid';
2
2
  export type { CID };
3
- export declare type Block = {
3
+ export interface Block {
4
4
  cid: CID;
5
5
  bytes: Uint8Array;
6
- };
7
- export declare type BlockHeader = {
6
+ }
7
+ export interface BlockHeader {
8
8
  cid: CID;
9
9
  length: number;
10
10
  blockLength: number;
11
- };
12
- export declare type BlockIndex = BlockHeader & {
11
+ }
12
+ export interface BlockIndex extends BlockHeader {
13
13
  offset: number;
14
14
  blockOffset: number;
15
- };
15
+ }
16
16
  export interface RootsReader {
17
17
  version: number;
18
- getRoots(): Promise<CID[]>;
18
+ getRoots: () => Promise<CID[]>;
19
19
  }
20
20
  export interface BlockIterator extends AsyncIterable<Block> {
21
21
  }
22
22
  export interface CIDIterator extends AsyncIterable<CID> {
23
23
  }
24
24
  export interface BlockReader {
25
- has(key: CID): Promise<boolean>;
26
- get(key: CID): Promise<Block | undefined>;
27
- blocks(): BlockIterator;
28
- cids(): CIDIterator;
25
+ has: (key: CID) => Promise<boolean>;
26
+ get: (key: CID) => Promise<Block | undefined>;
27
+ blocks: () => BlockIterator;
28
+ cids: () => CIDIterator;
29
29
  }
30
30
  export interface BlockWriter {
31
- put(block: Block): Promise<void>;
32
- close(): Promise<void>;
31
+ put: (block: Block) => Promise<void>;
32
+ close: () => Promise<void>;
33
33
  }
34
34
  export interface CarBufferWriter {
35
- addRoot(root: CID, options?: {
35
+ addRoot: (root: CID, options?: {
36
36
  resize?: boolean;
37
- }): CarBufferWriter;
38
- write(block: Block): CarBufferWriter;
39
- close(options?: {
37
+ }) => CarBufferWriter;
38
+ write: (block: Block) => CarBufferWriter;
39
+ close: (options?: {
40
40
  resize?: boolean;
41
- }): Uint8Array;
41
+ }) => Uint8Array;
42
42
  }
43
43
  export interface CarBufferWriterOptions {
44
44
  roots?: CID[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,YAAY,EAAE,GAAG,EAAE,CAAA;AAGnB,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa,CAAC,KAAK,CAAC;CAAG;AAE9D,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,GAAG,CAAC;CAAG;AAE1D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACnC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,aAAa,CAAA;IAC3B,IAAI,EAAE,MAAM,WAAW,CAAA;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,eAAe,CAAA;IACvE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,eAAe,CAAA;IACxC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,UAAU,CAAA;CACtD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW,EAAE,WAAW;CAAG"}
@@ -13,21 +13,21 @@ export function headerLength({ roots }: {
13
13
  }): number;
14
14
  export function estimateHeaderLength(rootCount: number, rootByteLength?: number | undefined): number;
15
15
  export function createWriter(buffer: ArrayBuffer, options?: {
16
- roots?: import("multiformats/cid").CID[] | undefined;
16
+ roots?: import("multiformats/dist/types/src/cid").CID<any, number, number, import("multiformats/dist/types/src").Version>[] | undefined;
17
17
  byteOffset?: number | undefined;
18
18
  byteLength?: number | undefined;
19
19
  headerSize?: number | undefined;
20
20
  } | undefined): CarBufferWriter;
21
- export type CID = import('../api').CID;
22
- export type Block = import('../api').Block;
23
- export type Writer = import('../api').CarBufferWriter;
24
- export type Options = import('../api').CarBufferWriterOptions;
21
+ export type CID = import('./api').CID;
22
+ export type Block = import('./api').Block;
23
+ export type Writer = import('./api').CarBufferWriter;
24
+ export type Options = import('./api').CarBufferWriterOptions;
25
25
  export type CarEncoder = import('./coding').CarEncoder;
26
26
  /**
27
- * @typedef {import('../api').CID} CID
28
- * @typedef {import('../api').Block} Block
29
- * @typedef {import('../api').CarBufferWriter} Writer
30
- * @typedef {import('../api').CarBufferWriterOptions} Options
27
+ * @typedef {import('./api').CID} CID
28
+ * @typedef {import('./api').Block} Block
29
+ * @typedef {import('./api').CarBufferWriter} Writer
30
+ * @typedef {import('./api').CarBufferWriterOptions} Options
31
31
  * @typedef {import('./coding').CarEncoder} CarEncoder
32
32
  */
33
33
  /**
@@ -67,7 +67,7 @@ declare class CarBufferWriter implements Writer {
67
67
  * Write a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) to the archive.
68
68
  * Throws if there is not enough capacity.
69
69
  *
70
- * @param {Block} block A `{ cid:CID, bytes:Uint8Array }` pair.
70
+ * @param {Block} block - A `{ cid:CID, bytes:Uint8Array }` pair.
71
71
  * @returns {CarBufferWriter}
72
72
  */
73
73
  write(block: Block): CarBufferWriter;
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-writer.d.ts","sourceRoot":"","sources":["../../lib/buffer-writer.js"],"names":[],"mappings":"AAgFO,gCAJI,eAAe,QACf,GAAG;;qBA2Bb;AAUM,4CAHI,KAAK,GACH,MAAM,CAKlB;AAMM,iCAHI,eAAe,kBACf,KAAK,QAYf;AAOM,8BAJI,eAAe;;2BA4BzB;AAMM,qCAHI,eAAe,cACf,MAAM,QAShB;AAqCM,mDAHI,MAAM,EAAE,GACN,MAAM,CAWlB;AAUM;IAHmB,KAAK,EAApB,GAAG,EAAE;IACH,MAAM,CAG4C;AAYxD,gDAJI,MAAM,wCAEJ,MAAM,CAG+C;AAuB3D,qCARI,WAAW;;;;;gBAMT,eAAe,CAiB3B;kBAvRY,OAAO,QAAQ,EAAE,GAAG;oBACpB,OAAO,QAAQ,EAAE,KAAK;qBACtB,OAAO,QAAQ,EAAE,eAAe;sBAChC,OAAO,QAAQ,EAAE,sBAAsB;yBACvC,OAAO,UAAU,EAAE,UAAU;AAL1C;;;;;;GAMG;AAEH;;;;;;GAMG;AACH;IACE;;;OAGG;IACH,mBAHW,UAAU,cACV,MAAM,EAahB;IAVC,gBAAgB;IAChB,2BAAkB;IAClB,mBAA4B;IAE5B;;;OAGG;IACH,gBAFU,GAAG,EAAE,CAEA;IACf,mBAA4B;IAG9B;;;;;;;OAOG;IACH,cAJW,GAAG;;oBAED,eAAe,CAK3B;IAED;;;;;;OAMG;IACH,aAHW,KAAK,GACH,eAAe,CAK3B;IAED;;;;;;OAMG;IACH;;oBAFa,UAAU,CAItB;CACF"}
1
+ {"version":3,"file":"buffer-writer.d.ts","sourceRoot":"","sources":["../../src/buffer-writer.js"],"names":[],"mappings":"AAgFO,gCAJI,eAAe,QACf,GAAG;;qBA2Bb;AAUM,4CAHI,KAAK,GACH,MAAM,CAKlB;AAMM,iCAHI,eAAe,kBACf,KAAK,QAYf;AAOM,8BAJI,eAAe;;2BA4BzB;AAMM,qCAHI,eAAe,cACf,MAAM,QAShB;AAqCM,mDAHI,MAAM,EAAE,GACN,MAAM,CAWlB;AAUM;IAHmB,KAAK,EAApB,GAAG,EAAE;IACH,MAAM,CAG4C;AAYxD,gDAJI,MAAM,wCAEJ,MAAM,CAG+C;AAuB3D,qCARI,WAAW;;;;;gBAMT,eAAe,CAiB3B;kBAvRY,OAAO,OAAO,EAAE,GAAG;oBACnB,OAAO,OAAO,EAAE,KAAK;qBACrB,OAAO,OAAO,EAAE,eAAe;sBAC/B,OAAO,OAAO,EAAE,sBAAsB;yBACtC,OAAO,UAAU,EAAE,UAAU;AAL1C;;;;;;GAMG;AAEH;;;;;;GAMG;AACH;IACE;;;OAGG;IACH,mBAHW,UAAU,cACV,MAAM,EAahB;IAVC,gBAAgB;IAChB,2BAAkB;IAClB,mBAA4B;IAE5B;;;OAGG;IACH,gBAFU,GAAG,EAAE,CAEA;IACf,mBAA4B;IAG9B;;;;;;;OAOG;IACH,cAJW,GAAG;;oBAED,eAAe,CAK3B;IAED;;;;;;OAMG;IACH,aAHW,KAAK,GACH,eAAe,CAK3B;IAED;;;;;;OAMG;IACH;;oBAFa,UAAU,CAItB;CACF"}
@@ -0,0 +1,41 @@
1
+ import type { CID } from 'multiformats/cid';
2
+ import type { Block, BlockIndex } from './api.js';
3
+ export interface CarEncoder {
4
+ setRoots: (roots: CID[]) => Promise<void>;
5
+ writeBlock: (block: Block) => Promise<void>;
6
+ close: () => Promise<void>;
7
+ }
8
+ export interface IteratorChannel_Writer<T> {
9
+ write: (chunk: T) => Promise<void>;
10
+ end: () => Promise<void>;
11
+ }
12
+ export interface IteratorChannel<T> {
13
+ writer: IteratorChannel_Writer<T>;
14
+ iterator: AsyncIterator<T>;
15
+ }
16
+ export interface CarHeader {
17
+ version: 1;
18
+ roots: CID[];
19
+ }
20
+ export interface CarV2FixedHeader {
21
+ characteristics: [bigint, bigint];
22
+ dataOffset: number;
23
+ dataSize: number;
24
+ indexOffset: number;
25
+ }
26
+ export interface CarV2Header extends CarV2FixedHeader {
27
+ version: 2;
28
+ roots: CID[];
29
+ }
30
+ export interface CarDecoder {
31
+ header: () => Promise<CarHeader | CarV2Header>;
32
+ blocks: () => AsyncGenerator<Block>;
33
+ blocksIndex: () => AsyncGenerator<BlockIndex>;
34
+ }
35
+ export interface BytesReader {
36
+ upTo: (length: number) => Promise<Uint8Array>;
37
+ exactly: (length: number) => Promise<Uint8Array>;
38
+ seek: (length: number) => void;
39
+ pos: number;
40
+ }
41
+ //# sourceMappingURL=coding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coding.d.ts","sourceRoot":"","sources":["../../src/coding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAA;IAEjC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,CAAA;IACV,KAAK,EAAE,GAAG,EAAE,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,OAAO,EAAE,CAAC,CAAA;IACV,KAAK,EAAE,GAAG,EAAE,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,OAAO,CAAC,SAAS,GAAC,WAAW,CAAC,CAAA;IAE5C,MAAM,EAAE,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;IAEnC,WAAW,EAAE,MAAM,cAAc,CAAC,UAAU,CAAC,CAAA;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAE7C,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAEhD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAE9B,GAAG,EAAE,MAAM,CAAA;CACZ"}
@@ -66,9 +66,9 @@ export function asyncIterableReader(asyncIterable: AsyncIterable<Uint8Array>): B
66
66
  * @returns {BytesReader}
67
67
  */
68
68
  export function limitReader(reader: BytesReader, byteLimit: number): BytesReader;
69
- export type Block = import('../api').Block;
70
- export type BlockHeader = import('../api').BlockHeader;
71
- export type BlockIndex = import('../api').BlockIndex;
69
+ export type Block = import('./api').Block;
70
+ export type BlockHeader = import('./api').BlockHeader;
71
+ export type BlockIndex = import('./api').BlockIndex;
72
72
  export type BytesReader = import('./coding').BytesReader;
73
73
  export type CarHeader = import('./coding').CarHeader;
74
74
  export type CarV2Header = import('./coding').CarV2Header;
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../lib/decoder.js"],"names":[],"mappings":"AAmEA;;;;;;;;GAQG;AACH,mCAJW,WAAW,uCAET,QAAQ,SAAS,GAAC,WAAW,CAAC,CAgC1C;AAkDD;;;;;;;;;GASG;AACH,sCAHW,WAAW,GACT,QAAQ,WAAW,CAAC,CAiBhC;AA6BD;;;;;;;;GAQG;AACH,sCAHW,WAAW,GACT,UAAU,CA+BtB;AAED;;;;;;GAMG;AACH,mCAHW,UAAU,GACR,WAAW,CA8BvB;AAED;;;;;;;GAOG;AACH,uCAHW,MAAM,QAAQ,UAAU,GAAC,IAAI,CAAC,GAC5B,WAAW,CAsEvB;AAED;;;;;;;GAOG;AACH,mDAHW,cAAc,UAAU,CAAC,GACvB,WAAW,CAgBvB;AAED;;;;;;;;;GASG;AACH,oCAJW,WAAW,aACX,MAAM,GACJ,WAAW,CAoCvB;oBA1aY,OAAO,QAAQ,EAAE,KAAK;0BACtB,OAAO,QAAQ,EAAE,WAAW;yBAC5B,OAAO,QAAQ,EAAE,UAAU;0BAC3B,OAAO,UAAU,EAAE,WAAW;wBAC9B,OAAO,UAAU,EAAE,SAAS;0BAC5B,OAAO,UAAU,EAAE,WAAW;+BAC9B,OAAO,UAAU,EAAE,gBAAgB;yBACnC,OAAO,UAAU,EAAE,UAAU"}
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/decoder.js"],"names":[],"mappings":"AAmEA;;;;;;;;GAQG;AACH,mCAJW,WAAW,uCAET,QAAQ,SAAS,GAAC,WAAW,CAAC,CAgC1C;AAkDD;;;;;;;;;GASG;AACH,sCAHW,WAAW,GACT,QAAQ,WAAW,CAAC,CAiBhC;AA6BD;;;;;;;;GAQG;AACH,sCAHW,WAAW,GACT,UAAU,CA+BtB;AAED;;;;;;GAMG;AACH,mCAHW,UAAU,GACR,WAAW,CA8BvB;AAED;;;;;;;GAOG;AACH,uCAHW,MAAM,QAAQ,UAAU,GAAC,IAAI,CAAC,GAC5B,WAAW,CAsEvB;AAED;;;;;;;GAOG;AACH,mDAHW,cAAc,UAAU,CAAC,GACvB,WAAW,CAgBvB;AAED;;;;;;;;;GASG;AACH,oCAJW,WAAW,aACX,MAAM,GACJ,WAAW,CAoCvB;oBA1aY,OAAO,OAAO,EAAE,KAAK;0BACrB,OAAO,OAAO,EAAE,WAAW;yBAC3B,OAAO,OAAO,EAAE,UAAU;0BAC1B,OAAO,UAAU,EAAE,WAAW;wBAC9B,OAAO,UAAU,EAAE,SAAS;0BAC5B,OAAO,UAAU,EAAE,WAAW;+BAC9B,OAAO,UAAU,EAAE,gBAAgB;yBACnC,OAAO,UAAU,EAAE,UAAU"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @typedef {import('multiformats').CID} CID
3
- * @typedef {import('../api').Block} Block
3
+ * @typedef {import('./api').Block} Block
4
4
  * @typedef {import('./coding').CarEncoder} CarEncoder
5
5
  * @typedef {import('./coding').IteratorChannel_Writer<Uint8Array>} IteratorChannel_Writer
6
6
  */
@@ -12,7 +12,7 @@
12
12
  */
13
13
  export function createHeader(roots: CID[]): Uint8Array;
14
14
  export type CID = import('multiformats').CID;
15
- export type Block = import('../api').Block;
15
+ export type Block = import('./api').Block;
16
16
  export type CarEncoder = import('./coding').CarEncoder;
17
17
  export type IteratorChannel_Writer = import('./coding').IteratorChannel_Writer<Uint8Array>;
18
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../lib/encoder.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH;;;;;GAKG;AACH,oCAHW,GAAG,EAAE,GACH,UAAU,CAStB;kBAnBY,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,QAAQ,EAAE,KAAK;yBACtB,OAAO,UAAU,EAAE,UAAU;qCAC7B,OAAO,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC;AAkBlE;;;GAGG;AACH,8FAFa,UAAU,CAuCtB"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/encoder.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH;;;;;GAKG;AACH,oCAHW,GAAG,EAAE,GACH,UAAU,CAStB;kBAnBY,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,OAAO,EAAE,KAAK;yBACrB,OAAO,UAAU,EAAE,UAAU;qCAC7B,OAAO,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC;AAkBlE;;;GAGG;AACH,8FAFa,UAAU,CAuCtB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-validator.d.ts","sourceRoot":"","sources":["../../src/header-validator.js"],"names":[],"mappings":"AAmD4B,+BAAK,GAAG,GAAG,OAAO,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { CarReader } from "./reader-browser.js";
2
+ import { CarIndexer } from "./indexer.js";
3
+ import { CarBlockIterator } from "./iterator.js";
4
+ import { CarCIDIterator } from "./iterator.js";
5
+ import { CarWriter } from "./writer-browser.js";
6
+ import { CarIndexedReader } from "./indexed-reader-browser.js";
7
+ export { CarReader, CarIndexer, CarBlockIterator, CarCIDIterator, CarWriter, CarIndexedReader };
8
+ //# sourceMappingURL=index-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.js"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { CarReader } from "./reader.js";
2
+ import { CarIndexer } from "./indexer.js";
3
+ import { CarBlockIterator } from "./iterator.js";
4
+ import { CarCIDIterator } from "./iterator.js";
5
+ import { CarWriter } from "./writer.js";
6
+ import { CarIndexedReader } from "./indexed-reader.js";
7
+ import * as CarBufferWriter from "./buffer-writer.js";
8
+ export { CarReader, CarIndexer, CarBlockIterator, CarCIDIterator, CarWriter, CarIndexedReader, CarBufferWriter };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexed-reader-browser.d.ts","sourceRoot":"","sources":["../../src/indexed-reader-browser.js"],"names":[],"mappings":"AAAA;IACE,iCAEC;CACF;AAED,6BAA6B"}
@@ -1,9 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  /**
3
3
  * @typedef {import('fs').promises.FileHandle} FileHandle
4
- * @typedef {import('../api').Block} Block
5
- * @typedef {import('../api').BlockIndex} BlockIndex
6
- * @typedef {import('../api').CarReader} CarReaderIface
4
+ * @typedef {import('./api').Block} Block
5
+ * @typedef {import('./api').BlockIndex} BlockIndex
6
+ * @typedef {import('./api').CarReader} CarReaderIface
7
7
  * @typedef {import('./reader-browser').CarReader} CarReader
8
8
  * @typedef {{ blockLength:number, blockOffset:number }} RawLocation
9
9
  */
@@ -66,7 +66,7 @@ export class CarIndexedReader implements CarReaderIface {
66
66
  constructor(version: number, path: string, roots: CID[], index: Map<string, RawLocation>, order: string[]);
67
67
  _version: number;
68
68
  _path: string;
69
- _roots: CID[];
69
+ _roots: CID<any, number, number, import("multiformats/cid").Version>[];
70
70
  _index: Map<string, RawLocation>;
71
71
  _order: string[];
72
72
  _fd: fs.promises.FileHandle | null;
@@ -74,7 +74,7 @@ export class CarIndexedReader implements CarReaderIface {
74
74
  /**
75
75
  * See {@link CarReader#getRoots}
76
76
  *
77
- * @method
77
+ * @function
78
78
  * @memberof CarIndexedReader
79
79
  * @instance
80
80
  * @async
@@ -84,7 +84,7 @@ export class CarIndexedReader implements CarReaderIface {
84
84
  /**
85
85
  * See {@link CarReader#has}
86
86
  *
87
- * @method
87
+ * @function
88
88
  * @memberof CarIndexedReader
89
89
  * @instance
90
90
  * @async
@@ -95,7 +95,7 @@ export class CarIndexedReader implements CarReaderIface {
95
95
  /**
96
96
  * See {@link CarReader#get}
97
97
  *
98
- * @method
98
+ * @function
99
99
  * @memberof CarIndexedReader
100
100
  * @instance
101
101
  * @async
@@ -106,7 +106,7 @@ export class CarIndexedReader implements CarReaderIface {
106
106
  /**
107
107
  * See {@link CarReader#blocks}
108
108
  *
109
- * @method
109
+ * @function
110
110
  * @memberof CarIndexedReader
111
111
  * @instance
112
112
  * @async
@@ -117,7 +117,7 @@ export class CarIndexedReader implements CarReaderIface {
117
117
  /**
118
118
  * See {@link CarReader#cids}
119
119
  *
120
- * @method
120
+ * @function
121
121
  * @memberof CarIndexedReader
122
122
  * @instance
123
123
  * @async
@@ -129,7 +129,7 @@ export class CarIndexedReader implements CarReaderIface {
129
129
  * Close the underlying file descriptor maintained by this `CarIndexedReader`.
130
130
  * This must be called for proper resource clean-up to occur.
131
131
  *
132
- * @method
132
+ * @function
133
133
  * @memberof CarIndexedReader
134
134
  * @instance
135
135
  * @async
@@ -139,9 +139,9 @@ export class CarIndexedReader implements CarReaderIface {
139
139
  }
140
140
  export const __browser: false;
141
141
  export type FileHandle = import('fs').promises.FileHandle;
142
- export type Block = import('../api').Block;
143
- export type BlockIndex = import('../api').BlockIndex;
144
- export type CarReaderIface = import('../api').CarReader;
142
+ export type Block = import('./api').Block;
143
+ export type BlockIndex = import('./api').BlockIndex;
144
+ export type CarReaderIface = import('./api').CarReader;
145
145
  export type CarReader = import('./reader-browser').CarReader;
146
146
  export type RawLocation = {
147
147
  blockLength: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexed-reader.d.ts","sourceRoot":"","sources":["../../src/indexed-reader.js"],"names":[],"mappings":";AAMA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;IAyIE;;;;;;;;;;;;;;;OAeG;IACH,sBAHW,MAAM,GACJ,QAAQ,gBAAgB,CAAC,CAoBrC;IA1KD;;;;;;OAMG;IACH,qBANW,MAAM,QACN,MAAM,SACN,GAAG,EAAE,SACL,IAAI,MAAM,EAAE,WAAW,CAAC,SACxB,MAAM,EAAE,EASlB;IANC,iBAAuB;IACvB,cAAiB;IACjB,uEAAmB;IACnB,iCAAmB;IACnB,iBAAmB;IACnB,mCAAe;IAGjB,sBAEC;IAED;;;;;;;;OAQG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;IAED;;;;;;;;;OASG;IACH,SAHW,GAAG,GACD,QAAQ,OAAO,CAAC,CAM5B;IAED;;;;;;;;;OASG;IACH,SAHW,GAAG,GACD,QAAQ,KAAK,GAAG,SAAS,CAAC,CAoBtC;IAED;;;;;;;;;OASG;IACH,UAFa,eAAe,KAAK,CAAC,CAWjC;IAED;;;;;;;;;OASG;IACH,QAFa,eAAe,GAAG,CAAC,CAM/B;IAED;;;;;;;;;OASG;IACH,SAFa,QAAQ,IAAI,CAAC,CAQzB;CAqCF;AAED,8BAA8B;yBArNjB,OAAO,IAAI,EAAE,QAAQ,CAAC,UAAU;oBAChC,OAAO,OAAO,EAAE,KAAK;yBACrB,OAAO,OAAO,EAAE,UAAU;6BAC1B,OAAO,OAAO,EAAE,SAAS;wBACzB,OAAO,kBAAkB,EAAE,SAAS;0BACpC;IAAE,WAAW,EAAC,MAAM,CAAC;IAAC,WAAW,EAAC,MAAM,CAAA;CAAE"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @typedef {import('multiformats').CID} CID
3
- * @typedef {import('../api').Block} Block
4
- * @typedef {import('../api').RootsReader} RootsReader
5
- * @typedef {import('../api').BlockIndex} BlockIndex
3
+ * @typedef {import('./api').Block} Block
4
+ * @typedef {import('./api').RootsReader} RootsReader
5
+ * @typedef {import('./api').BlockIndex} BlockIndex
6
6
  * @typedef {import('./coding').BytesReader} BytesReader
7
7
  */
8
8
  /**
@@ -68,14 +68,14 @@ export class CarIndexer implements RootsReader, AsyncIterable<BlockIndex> {
68
68
  */
69
69
  constructor(version: number, roots: CID[], iterator: AsyncGenerator<BlockIndex>);
70
70
  _version: number;
71
- _roots: import("multiformats").CID[];
72
- _iterator: AsyncGenerator<import("../api").BlockIndex, any, any>;
71
+ _roots: import("multiformats").CID<any, number, number, import("multiformats").Version>[];
72
+ _iterator: AsyncGenerator<import("./api").BlockIndex, any, any>;
73
73
  get version(): number;
74
74
  /**
75
75
  * Get the list of roots defined by the CAR referenced by this indexer. May be
76
76
  * zero or more `CID`s.
77
77
  *
78
- * @method
78
+ * @function
79
79
  * @memberof CarIndexer
80
80
  * @instance
81
81
  * @async
@@ -88,8 +88,8 @@ export class CarIndexer implements RootsReader, AsyncIterable<BlockIndex> {
88
88
  [Symbol.asyncIterator](): AsyncIterator<BlockIndex>;
89
89
  }
90
90
  export type CID = import('multiformats').CID;
91
- export type Block = import('../api').Block;
92
- export type RootsReader = import('../api').RootsReader;
93
- export type BlockIndex = import('../api').BlockIndex;
91
+ export type Block = import('./api').Block;
92
+ export type RootsReader = import('./api').RootsReader;
93
+ export type BlockIndex = import('./api').BlockIndex;
94
94
  export type BytesReader = import('./coding').BytesReader;
95
95
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../lib/indexer.js"],"names":[],"mappings":"AAMA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8DAJ8B,UAAU;IA2CtC;;;;;;;;;;OAUG;IACH,wBAHW,UAAU,GACR,QAAQ,UAAU,CAAC,CAS/B;IAED;;;;;;;;;;;OAWG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,UAAU,CAAC,CAS/B;IA7ED;;;;OAIG;IACH,qBAJW,MAAM,SACN,GAAG,EAAE,YACL,eAAe,UAAU,CAAC,EAMpC;IAHC,iBAAuB;IACvB,qCAAmB;IACnB,iEAAyB;IAG3B,sBAEC;IAED;;;;;;;;;OASG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;IAED;;OAEG;IACH,0BAFa,cAAc,UAAU,CAAC,CAIrC;CA0CF;kBApHY,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,QAAQ,EAAE,KAAK;0BACtB,OAAO,QAAQ,EAAE,WAAW;yBAC5B,OAAO,QAAQ,EAAE,UAAU;0BAC3B,OAAO,UAAU,EAAE,WAAW"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer.js"],"names":[],"mappings":"AAMA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8DAJ8B,UAAU;IA2CtC;;;;;;;;;;OAUG;IACH,wBAHW,UAAU,GACR,QAAQ,UAAU,CAAC,CAS/B;IAED;;;;;;;;;;;OAWG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,UAAU,CAAC,CAS/B;IA7ED;;;;OAIG;IACH,qBAJW,MAAM,SACN,GAAG,EAAE,YACL,eAAe,UAAU,CAAC,EAMpC;IAHC,iBAAuB;IACvB,0FAAmB;IACnB,gEAAyB;IAG3B,sBAEC;IAED;;;;;;;;;OASG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;IAED;;OAEG;IACH,0BAFa,cAAc,UAAU,CAAC,CAIrC;CA0CF;kBApHY,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,OAAO,EAAE,KAAK;0BACrB,OAAO,OAAO,EAAE,WAAW;yBAC3B,OAAO,OAAO,EAAE,UAAU;0BAC1B,OAAO,UAAU,EAAE,WAAW"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"iterator-channel.d.ts","sourceRoot":"","sources":["../../lib/iterator-channel.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,mFAmFC;iDA5FY,OAAO,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"iterator-channel.d.ts","sourceRoot":"","sources":["../../src/iterator-channel.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,mFAmFC;iDA5FY,OAAO,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @typedef {import('multiformats').CID} CID
3
- * @typedef {import('../api').Block} Block
4
- * @typedef {import('../api').RootsReader} RootsReader
3
+ * @typedef {import('./api').Block} Block
4
+ * @typedef {import('./api').RootsReader} RootsReader
5
5
  * @typedef {import('./coding').BytesReader} BytesReader
6
6
  */
7
7
  /**
@@ -17,8 +17,8 @@ export class CarIteratorBase implements RootsReader {
17
17
  */
18
18
  constructor(version: number, roots: CID[], iterable: AsyncIterable<Block> | void);
19
19
  _version: number;
20
- _roots: import("multiformats").CID[];
21
- _iterable: void | AsyncIterable<import("../api").Block>;
20
+ _roots: import("multiformats").CID<any, number, number, import("multiformats").Version>[];
21
+ _iterable: void | AsyncIterable<import("./api").Block>;
22
22
  _decoded: boolean;
23
23
  get version(): number;
24
24
  /**
@@ -85,7 +85,7 @@ export class CarBlockIterator extends CarIteratorBase implements RootsReader, As
85
85
  * Get the list of roots defined by the CAR referenced by this iterator. May be
86
86
  * zero or more `CID`s.
87
87
  *
88
- * @method getRoots
88
+ * @function getRoots
89
89
  * @memberof CarBlockIterator
90
90
  * @instance
91
91
  * @async
@@ -156,7 +156,7 @@ export class CarCIDIterator extends CarIteratorBase implements RootsReader, Asyn
156
156
  * Get the list of roots defined by the CAR referenced by this iterator. May be
157
157
  * zero or more `CID`s.
158
158
  *
159
- * @method getRoots
159
+ * @function getRoots
160
160
  * @memberof CarCIDIterator
161
161
  * @instance
162
162
  * @async
@@ -168,7 +168,7 @@ export class CarCIDIterator extends CarIteratorBase implements RootsReader, Asyn
168
168
  [Symbol.asyncIterator](): AsyncIterator<CID>;
169
169
  }
170
170
  export type CID = import('multiformats').CID;
171
- export type Block = import('../api').Block;
172
- export type RootsReader = import('../api').RootsReader;
171
+ export type Block = import('./api').Block;
172
+ export type RootsReader = import('./api').RootsReader;
173
173
  export type BytesReader = import('./coding').BytesReader;
174
174
  //# sourceMappingURL=iterator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iterator.d.ts","sourceRoot":"","sources":["../../lib/iterator.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;GAIG;AACH;IACE;;;;OAIG;IACH,qBAJW,MAAM,SACN,GAAG,EAAE,YACL,cAAc,KAAK,CAAC,GAAC,IAAI,EAOnC;IAJC,iBAAuB;IACvB,qCAAmB;IACnB,wDAAyB;IACzB,kBAAqB;IAGvB,sBAEC;IAED;;OAEG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,4FAJ8B,KAAK;IAgCjC;;;;;;;;;;;OAWG;IACH,wBAHW,UAAU,GACR,QAAQ,gBAAgB,CAAC,CAOrC;IAED;;;;;;;;;;;OAWG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,gBAAgB,CAAC,CAOrC;IA9DD;;;;;;;;;OASG;IAEH;;OAEG;IACH,0BAFa,cAAc,KAAK,CAAC,CAYhC;CAuCF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,0FAJ8B,GAAG;IA2C/B;;;;;;;;;;;OAWG;IACH,wBAHW,UAAU,GACR,QAAQ,cAAc,CAAC,CAOnC;IAED;;;;;;;;;;;;OAYG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,cAAc,CAAC,CAOnC;IA1ED;;;;;;;;;OASG;IAEH;;OAEG;IACH,0BAFa,cAAc,GAAG,CAAC,CAuB9B;CAwCF;kBA9OY,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,QAAQ,EAAE,KAAK;0BACtB,OAAO,QAAQ,EAAE,WAAW;0BAC5B,OAAO,UAAU,EAAE,WAAW"}
1
+ {"version":3,"file":"iterator.d.ts","sourceRoot":"","sources":["../../src/iterator.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;GAIG;AACH;IACE;;;;OAIG;IACH,qBAJW,MAAM,SACN,GAAG,EAAE,YACL,cAAc,KAAK,CAAC,GAAC,IAAI,EAOnC;IAJC,iBAAuB;IACvB,0FAAmB;IACnB,uDAAyB;IACzB,kBAAqB;IAGvB,sBAEC;IAED;;OAEG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,4FAJ8B,KAAK;IAgCjC;;;;;;;;;;;OAWG;IACH,wBAHW,UAAU,GACR,QAAQ,gBAAgB,CAAC,CAOrC;IAED;;;;;;;;;;;OAWG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,gBAAgB,CAAC,CAOrC;IA9DD;;;;;;;;;OASG;IAEH;;OAEG;IACH,0BAFa,cAAc,KAAK,CAAC,CAYhC;CAuCF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,0FAJ8B,GAAG;IA2C/B;;;;;;;;;;;OAWG;IACH,wBAHW,UAAU,GACR,QAAQ,cAAc,CAAC,CAOnC;IAED;;;;;;;;;;;;OAYG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,cAAc,CAAC,CAOnC;IA1ED;;;;;;;;;OASG;IAEH;;OAEG;IACH,0BAFa,cAAc,GAAG,CAAC,CAuB9B;CAwCF;kBA9OY,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,OAAO,EAAE,KAAK;0BACrB,OAAO,OAAO,EAAE,WAAW;0BAC3B,OAAO,UAAU,EAAE,WAAW"}