lib0 0.2.112 → 0.2.115-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 (331) hide show
  1. package/README.md +1 -1
  2. package/broadcastchannel.js +1 -1
  3. package/buffer.d.ts +3 -3
  4. package/buffer.d.ts.map +1 -1
  5. package/buffer.js +1 -1
  6. package/coverage/tmp/coverage-27667-1761218530660-0.json +1 -0
  7. package/coverage/tmp/{coverage-20055-1752683207886-0.json → coverage-27668-1761218485882-0.json} +1 -1
  8. package/crypto/aes-gcm.d.ts +4 -4
  9. package/crypto/aes-gcm.d.ts.map +1 -1
  10. package/crypto/aes-gcm.js +6 -6
  11. package/crypto/common.d.ts +1 -1
  12. package/crypto/common.d.ts.map +1 -1
  13. package/crypto/common.js +1 -1
  14. package/crypto/ecdsa.d.ts +2 -2
  15. package/crypto/ecdsa.d.ts.map +1 -1
  16. package/crypto/ecdsa.js +4 -4
  17. package/crypto/rsa-oaep.d.ts +2 -2
  18. package/crypto/rsa-oaep.d.ts.map +1 -1
  19. package/crypto/rsa-oaep.js +3 -3
  20. package/decoding.d.ts +27 -14
  21. package/decoding.d.ts.map +1 -1
  22. package/decoding.js +12 -8
  23. package/delta/abstract-array.d.ts +166 -0
  24. package/delta/abstract-array.d.ts.map +1 -0
  25. package/delta/abstract-array.js +421 -0
  26. package/delta/abstract.d.ts +69 -0
  27. package/delta/abstract.d.ts.map +1 -0
  28. package/delta/abstract.js +102 -0
  29. package/delta/array.d.ts +23 -0
  30. package/delta/array.d.ts.map +1 -0
  31. package/delta/array.js +45 -0
  32. package/delta/array.test.d.ts +2 -0
  33. package/delta/array.test.d.ts.map +1 -0
  34. package/delta/binding.d.ts +105 -0
  35. package/delta/binding.d.ts.map +1 -0
  36. package/delta/binding.js +369 -0
  37. package/delta/binding.test.d.ts +5 -0
  38. package/delta/binding.test.d.ts.map +1 -0
  39. package/delta/d2.d.ts +705 -0
  40. package/delta/d2.d.ts.map +1 -0
  41. package/delta/d2.js +1309 -0
  42. package/delta/d2.test.d.ts +15 -0
  43. package/delta/d2.test.d.ts.map +1 -0
  44. package/delta/index.d.ts +14 -0
  45. package/delta/index.d.ts.map +1 -0
  46. package/delta/index.js +79 -0
  47. package/delta/map.d.ts +230 -0
  48. package/delta/map.d.ts.map +1 -0
  49. package/delta/map.js +304 -0
  50. package/delta/node.d.ts +119 -0
  51. package/delta/node.d.ts.map +1 -0
  52. package/delta/node.js +183 -0
  53. package/delta/node.test.d.ts +4 -0
  54. package/delta/node.test.d.ts.map +1 -0
  55. package/delta/ops.d.ts +466 -0
  56. package/delta/ops.d.ts.map +1 -0
  57. package/delta/ops.js +544 -0
  58. package/delta/readme.md +129 -0
  59. package/delta/text.d.ts +43 -0
  60. package/delta/text.d.ts.map +1 -0
  61. package/delta/text.js +54 -0
  62. package/delta/text.test.d.ts +6 -0
  63. package/delta/text.test.d.ts.map +1 -0
  64. package/delta/transformer.d.ts +164 -0
  65. package/delta/transformer.d.ts.map +1 -0
  66. package/delta/transformer.js +888 -0
  67. package/delta/transformer.test.d.ts +13 -0
  68. package/delta/transformer.test.d.ts.map +1 -0
  69. package/delta/value.d.ts +84 -0
  70. package/delta/value.d.ts.map +1 -0
  71. package/delta/value.js +168 -0
  72. package/dist/abstract-array.cjs +433 -0
  73. package/dist/abstract-array.cjs.map +1 -0
  74. package/dist/abstract.cjs +122 -0
  75. package/dist/abstract.cjs.map +1 -0
  76. package/dist/aes-gcm.cjs +12 -12
  77. package/dist/aes-gcm.cjs.map +1 -1
  78. package/dist/array.cjs +60 -17
  79. package/dist/array.cjs.map +1 -1
  80. package/dist/array2.cjs +26 -0
  81. package/dist/array2.cjs.map +1 -0
  82. package/dist/binding.cjs +398 -0
  83. package/dist/binding.cjs.map +1 -0
  84. package/dist/{broadcastchannel-2c4b0a1c.cjs → broadcastchannel-b4eaea6e.cjs} +4 -4
  85. package/dist/broadcastchannel-b4eaea6e.cjs.map +1 -0
  86. package/dist/broadcastchannel.cjs +12 -12
  87. package/dist/{buffer-a74f7330.cjs → buffer-adc4e6ea.cjs} +7 -7
  88. package/dist/buffer-adc4e6ea.cjs.map +1 -0
  89. package/dist/buffer.cjs +11 -11
  90. package/dist/buffer.d.ts +3 -3
  91. package/dist/buffer.d.ts.map +1 -1
  92. package/dist/cache.cjs +6 -6
  93. package/dist/common.cjs +1 -1
  94. package/dist/common.cjs.map +1 -1
  95. package/dist/component.cjs +14 -9
  96. package/dist/component.cjs.map +1 -1
  97. package/dist/crypto/aes-gcm.d.ts +4 -4
  98. package/dist/crypto/aes-gcm.d.ts.map +1 -1
  99. package/dist/crypto/common.d.ts +1 -1
  100. package/dist/crypto/common.d.ts.map +1 -1
  101. package/dist/crypto/ecdsa.d.ts +2 -2
  102. package/dist/crypto/ecdsa.d.ts.map +1 -1
  103. package/dist/crypto/rsa-oaep.d.ts +2 -2
  104. package/dist/crypto/rsa-oaep.d.ts.map +1 -1
  105. package/dist/d2.cjs +1347 -0
  106. package/dist/d2.cjs.map +1 -0
  107. package/dist/{decoding-2b136346.cjs → decoding-50b9ce38.cjs} +18 -14
  108. package/dist/decoding-50b9ce38.cjs.map +1 -0
  109. package/dist/decoding.cjs +6 -6
  110. package/dist/decoding.d.ts +27 -14
  111. package/dist/decoding.d.ts.map +1 -1
  112. package/dist/delta/abstract-array.d.ts +166 -0
  113. package/dist/delta/abstract-array.d.ts.map +1 -0
  114. package/dist/delta/abstract.d.ts +69 -0
  115. package/dist/delta/abstract.d.ts.map +1 -0
  116. package/dist/delta/array.d.ts +23 -0
  117. package/dist/delta/array.d.ts.map +1 -0
  118. package/dist/delta/array.test.d.ts +2 -0
  119. package/dist/delta/array.test.d.ts.map +1 -0
  120. package/dist/delta/binding.d.ts +105 -0
  121. package/dist/delta/binding.d.ts.map +1 -0
  122. package/dist/delta/binding.test.d.ts +5 -0
  123. package/dist/delta/binding.test.d.ts.map +1 -0
  124. package/dist/delta/d2.d.ts +705 -0
  125. package/dist/delta/d2.d.ts.map +1 -0
  126. package/dist/delta/d2.test.d.ts +15 -0
  127. package/dist/delta/d2.test.d.ts.map +1 -0
  128. package/dist/delta/index.d.ts +14 -0
  129. package/dist/delta/index.d.ts.map +1 -0
  130. package/dist/delta/map.d.ts +230 -0
  131. package/dist/delta/map.d.ts.map +1 -0
  132. package/dist/delta/node.d.ts +119 -0
  133. package/dist/delta/node.d.ts.map +1 -0
  134. package/dist/delta/node.test.d.ts +4 -0
  135. package/dist/delta/node.test.d.ts.map +1 -0
  136. package/dist/delta/ops.d.ts +466 -0
  137. package/dist/delta/ops.d.ts.map +1 -0
  138. package/dist/delta/text.d.ts +43 -0
  139. package/dist/delta/text.d.ts.map +1 -0
  140. package/dist/delta/text.test.d.ts +6 -0
  141. package/dist/delta/text.test.d.ts.map +1 -0
  142. package/dist/delta/transformer.d.ts +164 -0
  143. package/dist/delta/transformer.d.ts.map +1 -0
  144. package/dist/delta/transformer.test.d.ts +13 -0
  145. package/dist/delta/transformer.test.d.ts.map +1 -0
  146. package/dist/delta/value.d.ts +84 -0
  147. package/dist/delta/value.d.ts.map +1 -0
  148. package/dist/{diff-77c4cf8e.cjs → diff-f0776c15.cjs} +2 -2
  149. package/dist/{diff-77c4cf8e.cjs.map → diff-f0776c15.cjs.map} +1 -1
  150. package/dist/diff.cjs +3 -3
  151. package/dist/{dom-16daf1a0.cjs → dom-2b123630.cjs} +31 -2
  152. package/dist/dom-2b123630.cjs.map +1 -0
  153. package/dist/dom.cjs +17 -2
  154. package/dist/dom.cjs.map +1 -1
  155. package/dist/dom.d.ts +17 -0
  156. package/dist/dom.d.ts.map +1 -1
  157. package/dist/ecdsa.cjs +4 -4
  158. package/dist/ecdsa.cjs.map +1 -1
  159. package/dist/{encoding-1acb59c4.cjs → encoding-7f85922c.cjs} +5 -5
  160. package/dist/encoding-7f85922c.cjs.map +1 -0
  161. package/dist/encoding.cjs +4 -4
  162. package/dist/encoding.d.ts +6 -6
  163. package/dist/encoding.d.ts.map +1 -1
  164. package/dist/{environment-2de08e0e.cjs → environment-90227ead.cjs} +4 -4
  165. package/dist/{environment-2de08e0e.cjs.map → environment-90227ead.cjs.map} +1 -1
  166. package/dist/environment.cjs +5 -5
  167. package/dist/{error-8582d695.cjs → error-0c1f634f.cjs} +10 -2
  168. package/dist/error-0c1f634f.cjs.map +1 -0
  169. package/dist/error.cjs +2 -1
  170. package/dist/error.cjs.map +1 -1
  171. package/dist/error.d.ts +1 -0
  172. package/dist/error.d.ts.map +1 -1
  173. package/dist/{eventloop-b299a889.cjs → eventloop-a0168106.cjs} +2 -2
  174. package/dist/{eventloop-b299a889.cjs.map → eventloop-a0168106.cjs.map} +1 -1
  175. package/dist/eventloop.cjs +3 -3
  176. package/dist/{function-09b8292c.cjs → function-e7d18feb.cjs} +2 -2
  177. package/dist/{function-09b8292c.cjs.map → function-e7d18feb.cjs.map} +1 -1
  178. package/dist/function.cjs +2 -2
  179. package/dist/index.cjs +23 -22
  180. package/dist/index.cjs.map +1 -1
  181. package/dist/index2.cjs +71 -0
  182. package/dist/index2.cjs.map +1 -0
  183. package/dist/{indexeddb-0cbb4d6f.cjs → indexeddb-46d1e737.cjs} +3 -3
  184. package/dist/{indexeddb-0cbb4d6f.cjs.map → indexeddb-46d1e737.cjs.map} +1 -1
  185. package/dist/indexeddb.cjs +5 -5
  186. package/dist/indexeddbV2.cjs +2 -1
  187. package/dist/indexeddbV2.cjs.map +1 -1
  188. package/dist/jwt.cjs +12 -12
  189. package/dist/list.cjs +39 -12
  190. package/dist/list.cjs.map +1 -1
  191. package/dist/list.d.ts +13 -3
  192. package/dist/list.d.ts.map +1 -1
  193. package/dist/logging.cjs +11 -9
  194. package/dist/logging.cjs.map +1 -1
  195. package/dist/logging.common.cjs +7 -7
  196. package/dist/logging.node.cjs +7 -7
  197. package/dist/{map-0dabcc55.cjs → map-24d263c0.cjs} +7 -1
  198. package/dist/map-24d263c0.cjs.map +1 -0
  199. package/dist/map.cjs +314 -7
  200. package/dist/map.cjs.map +1 -1
  201. package/dist/map.d.ts +1 -0
  202. package/dist/map.d.ts.map +1 -1
  203. package/dist/map2.cjs +15 -0
  204. package/dist/map2.cjs.map +1 -0
  205. package/dist/{math-08e068f9.cjs → math-96d5e8c4.cjs} +4 -2
  206. package/dist/math-96d5e8c4.cjs.map +1 -0
  207. package/dist/math.cjs +1 -1
  208. package/dist/math.d.ts.map +1 -1
  209. package/dist/metric.cjs +1 -1
  210. package/dist/node.cjs +206 -0
  211. package/dist/node.cjs.map +1 -0
  212. package/dist/{number-466d8922.cjs → number-1fb57bba.cjs} +2 -2
  213. package/dist/{number-466d8922.cjs.map → number-1fb57bba.cjs.map} +1 -1
  214. package/dist/number.cjs +2 -2
  215. package/dist/{object-491858d1.cjs → object-18980796.cjs} +12 -2
  216. package/dist/object-18980796.cjs.map +1 -0
  217. package/dist/object.cjs +3 -1
  218. package/dist/object.cjs.map +1 -1
  219. package/dist/object.d.ts +3 -0
  220. package/dist/object.d.ts.map +1 -1
  221. package/dist/observable.cjs +1 -1
  222. package/dist/ops.cjs +575 -0
  223. package/dist/ops.cjs.map +1 -0
  224. package/dist/patience.cjs +2 -2
  225. package/dist/performance.node.cjs +4 -4
  226. package/dist/pledge.cjs +2 -1
  227. package/dist/pledge.cjs.map +1 -1
  228. package/dist/{prng-24dfe0bf.cjs → prng-004c76e8.cjs} +5 -5
  229. package/dist/{prng-24dfe0bf.cjs.map → prng-004c76e8.cjs.map} +1 -1
  230. package/dist/prng.cjs +12 -12
  231. package/dist/prng.d.ts +1 -1
  232. package/dist/prng.d.ts.map +1 -1
  233. package/dist/{promise-7d13a97c.cjs → promise-cda7b9bb.cjs} +2 -2
  234. package/dist/{promise-7d13a97c.cjs.map → promise-cda7b9bb.cjs.map} +1 -1
  235. package/dist/promise.cjs +3 -3
  236. package/dist/rabin-gf2-polynomial.cjs +11 -11
  237. package/dist/rabin-uncached.cjs +11 -11
  238. package/dist/rabin.cjs +11 -11
  239. package/dist/random.cjs +1 -1
  240. package/dist/rsa-oaep.cjs +3 -3
  241. package/dist/rsa-oaep.cjs.map +1 -1
  242. package/dist/schema.cjs +572 -167
  243. package/dist/schema.cjs.map +1 -1
  244. package/dist/schema.d.ts +326 -122
  245. package/dist/schema.d.ts.map +1 -1
  246. package/dist/schema.test.d.ts +5 -0
  247. package/dist/schema.test.d.ts.map +1 -1
  248. package/dist/{sort-b8702761.cjs → sort-812cc211.cjs} +2 -2
  249. package/dist/{sort-b8702761.cjs.map → sort-812cc211.cjs.map} +1 -1
  250. package/dist/sort.cjs +2 -2
  251. package/dist/{statistics-c2316dca.cjs → statistics-65f6114b.cjs} +2 -2
  252. package/dist/{statistics-c2316dca.cjs.map → statistics-65f6114b.cjs.map} +1 -1
  253. package/dist/statistics.cjs +2 -2
  254. package/dist/{string-b2827a90.cjs → string-fddc5f8b.cjs} +3 -3
  255. package/dist/string-fddc5f8b.cjs.map +1 -0
  256. package/dist/string.cjs +1 -1
  257. package/dist/string.d.ts +3 -3
  258. package/dist/string.d.ts.map +1 -1
  259. package/dist/testing.cjs +16 -16
  260. package/dist/text.cjs +79 -0
  261. package/dist/text.cjs.map +1 -0
  262. package/dist/{time-bc2081b9.cjs → time-d8438852.cjs} +2 -2
  263. package/dist/{time-bc2081b9.cjs.map → time-d8438852.cjs.map} +1 -1
  264. package/dist/time.cjs +2 -2
  265. package/dist/traits.cjs +22 -0
  266. package/dist/traits.cjs.map +1 -1
  267. package/dist/traits.d.ts +1 -0
  268. package/dist/traits.d.ts.map +1 -1
  269. package/dist/traits.test.d.ts.map +1 -1
  270. package/dist/transformer.cjs +930 -0
  271. package/dist/transformer.cjs.map +1 -0
  272. package/dist/url.cjs +2 -1
  273. package/dist/url.cjs.map +1 -1
  274. package/dist/value.cjs +187 -0
  275. package/dist/value.cjs.map +1 -0
  276. package/dist/webcrypto.d.ts +1 -1
  277. package/dist/webcrypto.d.ts.map +1 -1
  278. package/dist/{websocket-40a601d4.cjs → websocket-b073d0fc.cjs} +3 -3
  279. package/dist/{websocket-40a601d4.cjs.map → websocket-b073d0fc.cjs.map} +1 -1
  280. package/dist/websocket.cjs +4 -4
  281. package/dom.d.ts +17 -0
  282. package/dom.d.ts.map +1 -1
  283. package/dom.js +21 -0
  284. package/encoding.d.ts +6 -6
  285. package/encoding.d.ts.map +1 -1
  286. package/encoding.js +1 -1
  287. package/error.d.ts +1 -0
  288. package/error.d.ts.map +1 -1
  289. package/error.js +6 -0
  290. package/list.d.ts +13 -3
  291. package/list.d.ts.map +1 -1
  292. package/list.js +36 -8
  293. package/map.d.ts +1 -0
  294. package/map.d.ts.map +1 -1
  295. package/map.js +6 -0
  296. package/math.d.ts.map +1 -1
  297. package/math.js +3 -1
  298. package/object.d.ts +3 -0
  299. package/object.d.ts.map +1 -1
  300. package/object.js +9 -1
  301. package/package.json +9 -3
  302. package/prng.d.ts +1 -1
  303. package/prng.d.ts.map +1 -1
  304. package/prng.js +1 -1
  305. package/schema.d.ts +326 -122
  306. package/schema.d.ts.map +1 -1
  307. package/schema.js +513 -141
  308. package/schema.test.d.ts +5 -0
  309. package/schema.test.d.ts.map +1 -1
  310. package/string.d.ts +3 -3
  311. package/string.d.ts.map +1 -1
  312. package/string.js +2 -2
  313. package/test.html +1 -0
  314. package/test.js +13 -1
  315. package/traits.d.ts +1 -0
  316. package/traits.d.ts.map +1 -1
  317. package/traits.js +21 -0
  318. package/traits.test.d.ts.map +1 -1
  319. package/webcrypto.d.ts +1 -1
  320. package/webcrypto.d.ts.map +1 -1
  321. package/coverage/tmp/coverage-20054-1752683240888-0.json +0 -1
  322. package/dist/broadcastchannel-2c4b0a1c.cjs.map +0 -1
  323. package/dist/buffer-a74f7330.cjs.map +0 -1
  324. package/dist/decoding-2b136346.cjs.map +0 -1
  325. package/dist/dom-16daf1a0.cjs.map +0 -1
  326. package/dist/encoding-1acb59c4.cjs.map +0 -1
  327. package/dist/error-8582d695.cjs.map +0 -1
  328. package/dist/map-0dabcc55.cjs.map +0 -1
  329. package/dist/math-08e068f9.cjs.map +0 -1
  330. package/dist/object-491858d1.cjs.map +0 -1
  331. package/dist/string-b2827a90.cjs.map +0 -1
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ops = require('./ops.cjs');
6
+ var abstract = require('./abstract.cjs');
7
+ var array = require('./array.cjs');
8
+ var node = require('./node.cjs');
9
+ var map = require('./map.cjs');
10
+ var text = require('./text.cjs');
11
+ var value = require('./value.cjs');
12
+ require('./object-18980796.cjs');
13
+ require('./traits.cjs');
14
+ require('./function-e7d18feb.cjs');
15
+ require('./array-78849c95.cjs');
16
+ require('./set-5b47859e.cjs');
17
+ require('./schema.cjs');
18
+ require('./error-0c1f634f.cjs');
19
+ require('./environment-90227ead.cjs');
20
+ require('./map-24d263c0.cjs');
21
+ require('./string-fddc5f8b.cjs');
22
+ require('./conditions-f5c0c102.cjs');
23
+ require('./storage.cjs');
24
+ require('./list.cjs');
25
+ require('./abstract-array.cjs');
26
+ require('./math-96d5e8c4.cjs');
27
+
28
+
29
+
30
+ exports.$anyOp = ops.$anyOp;
31
+ exports.$deleteOp = ops.$deleteOp;
32
+ exports.$insertOp = ops.$insertOp;
33
+ exports.$insertOpWith = ops.$insertOpWith;
34
+ exports.$modifyOp = ops.$modifyOp;
35
+ exports.$modifyOpWith = ops.$modifyOpWith;
36
+ exports.$textOp = ops.$textOp;
37
+ exports.DeleteOp = ops.DeleteOp;
38
+ exports.InsertOp = ops.InsertOp;
39
+ exports.MapDeleteOp = ops.MapDeleteOp;
40
+ exports.MapInsertOp = ops.MapInsertOp;
41
+ exports.MapModifyOp = ops.MapModifyOp;
42
+ exports.ModifyOp = ops.ModifyOp;
43
+ exports.RetainOp = ops.RetainOp;
44
+ exports.TextOp = ops.TextOp;
45
+ exports.$$delta = abstract.$$delta;
46
+ exports.$delta = abstract.$delta;
47
+ exports.AbstractDelta = abstract.AbstractDelta;
48
+ exports.mergeDeltas = abstract.mergeDeltas;
49
+ exports.$array = array.$array;
50
+ exports.$arrayAny = array.$arrayAny;
51
+ exports.Array = array.DeltaArray;
52
+ exports.array = array.array;
53
+ exports.$node = node.$node;
54
+ exports.$nodeAny = node.$nodeAny;
55
+ exports.Node = node.DeltaNode;
56
+ exports.node = node.node;
57
+ exports.$map = map.$map;
58
+ exports.$mapAny = map.$mapAny;
59
+ exports.$mapJson = map.$mapJson;
60
+ exports.Map = map.DeltaMap;
61
+ exports.map = map.map;
62
+ exports.$text = text.$text;
63
+ exports.$textAny = text.$textAny;
64
+ exports.TextBuilder = text.DeltaTextBuilder;
65
+ exports.text = text.text;
66
+ exports.$value = value.$value;
67
+ exports.$valueAny = value.$valueAny;
68
+ exports.Value = value.DeltaValue;
69
+ exports.ValueBuilder = value.DeltaValueBuilder;
70
+ exports.value = value.value;
71
+ //# sourceMappingURL=index2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var promise = require('./promise-7d13a97c.cjs');
4
- var error = require('./error-8582d695.cjs');
3
+ var promise = require('./promise-cda7b9bb.cjs');
4
+ var error = require('./error-0c1f634f.cjs');
5
5
 
6
6
  /* eslint-env browser */
7
7
 
@@ -308,4 +308,4 @@ exports.put = put;
308
308
  exports.queryFirst = queryFirst;
309
309
  exports.rtop = rtop;
310
310
  exports.transact = transact;
311
- //# sourceMappingURL=indexeddb-0cbb4d6f.cjs.map
311
+ //# sourceMappingURL=indexeddb-46d1e737.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexeddb-0cbb4d6f.cjs","sources":["../indexeddb.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers to work with IndexedDB.\n *\n * @module indexeddb\n */\n\nimport * as promise from './promise.js'\nimport * as error from './error.js'\n\n/* c8 ignore start */\n\n/**\n * IDB Request to Promise transformer\n *\n * @param {IDBRequest} request\n * @return {Promise<any>}\n */\nexport const rtop = request => promise.create((resolve, reject) => {\n // @ts-ignore\n request.onerror = event => reject(new Error(event.target.error))\n // @ts-ignore\n request.onsuccess = event => resolve(event.target.result)\n})\n\n/**\n * @param {string} name\n * @param {function(IDBDatabase):any} initDB Called when the database is first created\n * @return {Promise<IDBDatabase>}\n */\nexport const openDB = (name, initDB) => promise.create((resolve, reject) => {\n const request = indexedDB.open(name)\n /**\n * @param {any} event\n */\n request.onupgradeneeded = event => initDB(event.target.result)\n /**\n * @param {any} event\n */\n request.onerror = event => reject(error.create(event.target.error))\n /**\n * @param {any} event\n */\n request.onsuccess = event => {\n /**\n * @type {IDBDatabase}\n */\n const db = event.target.result\n db.onversionchange = () => { db.close() }\n resolve(db)\n }\n})\n\n/**\n * @param {string} name\n */\nexport const deleteDB = name => rtop(indexedDB.deleteDatabase(name))\n\n/**\n * @param {IDBDatabase} db\n * @param {Array<Array<string>|Array<string|IDBObjectStoreParameters|undefined>>} definitions\n */\nexport const createStores = (db, definitions) => definitions.forEach(d =>\n // @ts-ignore\n db.createObjectStore.apply(db, d)\n)\n\n/**\n * @param {IDBDatabase} db\n * @param {Array<string>} stores\n * @param {\"readwrite\"|\"readonly\"} [access]\n * @return {Array<IDBObjectStore>}\n */\nexport const transact = (db, stores, access = 'readwrite') => {\n const transaction = db.transaction(stores, access)\n return stores.map(store => getStore(transaction, store))\n}\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @return {Promise<number>}\n */\nexport const count = (store, range) =>\n rtop(store.count(range))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | Array<any> } key\n * @return {Promise<String | number | ArrayBuffer | Date | Array<any>>}\n */\nexport const get = (store, key) =>\n rtop(store.get(key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | IDBKeyRange | Array<any> } key\n */\nexport const del = (store, key) =>\n rtop(store.delete(key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} [key]\n */\nexport const put = (store, item, key) =>\n rtop(store.put(item, key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} key\n * @return {Promise<any>}\n */\nexport const add = (store, item, key) =>\n rtop(store.add(item, key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date} item\n * @return {Promise<number>} Returns the generated key\n */\nexport const addAutoKey = (store, item) =>\n rtop(store.add(item))\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {Promise<Array<any>>}\n */\nexport const getAll = (store, range, limit) =>\n rtop(store.getAll(range, limit))\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {Promise<Array<any>>}\n */\nexport const getAllKeys = (store, range, limit) =>\n rtop(store.getAllKeys(range, limit))\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} query\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n * @return {Promise<any>}\n */\nexport const queryFirst = (store, query, direction) => {\n /**\n * @type {any}\n */\n let first = null\n return iterateKeys(store, query, key => {\n first = key\n return false\n }, direction).then(() => first)\n}\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {Promise<any>}\n */\nexport const getLastKey = (store, range = null) => queryFirst(store, range, 'prev')\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {Promise<any>}\n */\nexport const getFirstKey = (store, range = null) => queryFirst(store, range, 'next')\n\n/**\n * @typedef KeyValuePair\n * @type {Object}\n * @property {any} k key\n * @property {any} v Value\n */\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {Promise<Array<KeyValuePair>>}\n */\nexport const getAllKeysValues = (store, range, limit) =>\n // @ts-ignore\n promise.all([getAllKeys(store, range, limit), getAll(store, range, limit)]).then(([ks, vs]) => ks.map((k, i) => ({ k, v: vs[i] })))\n\n/**\n * @param {any} request\n * @param {function(IDBCursorWithValue):void|boolean|Promise<void|boolean>} f\n * @return {Promise<void>}\n */\nconst iterateOnRequest = (request, f) => promise.create((resolve, reject) => {\n request.onerror = reject\n /**\n * @param {any} event\n */\n request.onsuccess = async event => {\n const cursor = event.target.result\n if (cursor === null || (await f(cursor)) === false) {\n return resolve()\n }\n cursor.continue()\n }\n})\n\n/**\n * Iterate on keys and values\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} keyrange\n * @param {function(any,any):void|boolean|Promise<void|boolean>} f Callback that receives (value, key)\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterate = (store, keyrange, f, direction = 'next') =>\n iterateOnRequest(store.openCursor(keyrange, direction), cursor => f(cursor.value, cursor.key))\n\n/**\n * Iterate on the keys (no values)\n *\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} keyrange\n * @param {function(any):void|boolean|Promise<void|boolean>} f callback that receives the key\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterateKeys = (store, keyrange, f, direction = 'next') =>\n iterateOnRequest(store.openKeyCursor(keyrange, direction), cursor => f(cursor.key))\n\n/**\n * Open store from transaction\n * @param {IDBTransaction} t\n * @param {String} store\n * @returns {IDBObjectStore}\n */\nexport const getStore = (t, store) => t.objectStore(store)\n\n/**\n * @param {any} lower\n * @param {any} upper\n * @param {boolean} lowerOpen\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeBound = (lower, upper, lowerOpen, upperOpen) => IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)\n\n/**\n * @param {any} upper\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeUpperBound = (upper, upperOpen) => IDBKeyRange.upperBound(upper, upperOpen)\n\n/**\n * @param {any} lower\n * @param {boolean} lowerOpen\n */\nexport const createIDBKeyRangeLowerBound = (lower, lowerOpen) => IDBKeyRange.lowerBound(lower, lowerOpen)\n\n/* c8 ignore stop */\n"],"names":["promise.create","error.create","promise.all"],"mappings":";;;;;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,OAAO,IAAIA,cAAc,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACnE;AACA,EAAE,OAAO,CAAC,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;AAClE;AACA,EAAE,OAAO,CAAC,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAC;AAC3D,CAAC,EAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAKA,cAAc,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5E,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC;AACtC;AACA;AACA;AACA,EAAE,OAAO,CAAC,eAAe,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAC;AAChE;AACA;AACA;AACA,EAAE,OAAO,CAAC,OAAO,GAAG,KAAK,IAAI,MAAM,CAACC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;AACrE;AACA;AACA;AACA,EAAE,OAAO,CAAC,SAAS,GAAG,KAAK,IAAI;AAC/B;AACA;AACA;AACA,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,OAAM;AAClC,IAAI,EAAE,CAAC,eAAe,GAAG,MAAM,EAAE,EAAE,CAAC,KAAK,GAAE,GAAE;AAC7C,IAAI,OAAO,CAAC,EAAE,EAAC;AACf,IAAG;AACH,CAAC,EAAC;AACF;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC;AACpE;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;AACtE;AACA,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AACnC,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,KAAK;AAC9D,EAAE,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAC;AACpD,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1D,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK;AAClC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC;AACtB;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG;AACpC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG;AACpC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,UAAU,GAAG,CAAC,KAAK,EAAE,IAAI;AACtC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;AAC1C,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;AAC9C,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,KAAK;AACvD;AACA;AACA;AACA,EAAE,IAAI,KAAK,GAAG,KAAI;AAClB,EAAE,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI;AAC1C,IAAI,KAAK,GAAG,IAAG;AACf,IAAI,OAAO,KAAK;AAChB,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;AACjC,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC;AACnF;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;AACpD;AACA,EAAEC,WAAW,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AACrI;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,KAAKF,cAAc,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC7E,EAAE,OAAO,CAAC,OAAO,GAAG,OAAM;AAC1B;AACA;AACA;AACA,EAAE,OAAO,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI;AACrC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAM;AACtC,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE;AACxD,MAAM,OAAO,OAAO,EAAE;AACtB,KAAK;AACL,IAAI,MAAM,CAAC,QAAQ,GAAE;AACrB,IAAG;AACH,CAAC,EAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM;AAC9D,EAAE,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM;AAClE,EAAE,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,EAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,sBAAsB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAC;AACnI;AACA;AACA;AACA;AACA;AACY,MAAC,2BAA2B,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAC;AACzG;AACA;AACA;AACA;AACA;AACY,MAAC,2BAA2B,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAC;AACzG;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"indexeddb-46d1e737.cjs","sources":["../indexeddb.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers to work with IndexedDB.\n *\n * @module indexeddb\n */\n\nimport * as promise from './promise.js'\nimport * as error from './error.js'\n\n/* c8 ignore start */\n\n/**\n * IDB Request to Promise transformer\n *\n * @param {IDBRequest} request\n * @return {Promise<any>}\n */\nexport const rtop = request => promise.create((resolve, reject) => {\n // @ts-ignore\n request.onerror = event => reject(new Error(event.target.error))\n // @ts-ignore\n request.onsuccess = event => resolve(event.target.result)\n})\n\n/**\n * @param {string} name\n * @param {function(IDBDatabase):any} initDB Called when the database is first created\n * @return {Promise<IDBDatabase>}\n */\nexport const openDB = (name, initDB) => promise.create((resolve, reject) => {\n const request = indexedDB.open(name)\n /**\n * @param {any} event\n */\n request.onupgradeneeded = event => initDB(event.target.result)\n /**\n * @param {any} event\n */\n request.onerror = event => reject(error.create(event.target.error))\n /**\n * @param {any} event\n */\n request.onsuccess = event => {\n /**\n * @type {IDBDatabase}\n */\n const db = event.target.result\n db.onversionchange = () => { db.close() }\n resolve(db)\n }\n})\n\n/**\n * @param {string} name\n */\nexport const deleteDB = name => rtop(indexedDB.deleteDatabase(name))\n\n/**\n * @param {IDBDatabase} db\n * @param {Array<Array<string>|Array<string|IDBObjectStoreParameters|undefined>>} definitions\n */\nexport const createStores = (db, definitions) => definitions.forEach(d =>\n // @ts-ignore\n db.createObjectStore.apply(db, d)\n)\n\n/**\n * @param {IDBDatabase} db\n * @param {Array<string>} stores\n * @param {\"readwrite\"|\"readonly\"} [access]\n * @return {Array<IDBObjectStore>}\n */\nexport const transact = (db, stores, access = 'readwrite') => {\n const transaction = db.transaction(stores, access)\n return stores.map(store => getStore(transaction, store))\n}\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @return {Promise<number>}\n */\nexport const count = (store, range) =>\n rtop(store.count(range))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | Array<any> } key\n * @return {Promise<String | number | ArrayBuffer | Date | Array<any>>}\n */\nexport const get = (store, key) =>\n rtop(store.get(key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | IDBKeyRange | Array<any> } key\n */\nexport const del = (store, key) =>\n rtop(store.delete(key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} [key]\n */\nexport const put = (store, item, key) =>\n rtop(store.put(item, key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} key\n * @return {Promise<any>}\n */\nexport const add = (store, item, key) =>\n rtop(store.add(item, key))\n\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date} item\n * @return {Promise<number>} Returns the generated key\n */\nexport const addAutoKey = (store, item) =>\n rtop(store.add(item))\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {Promise<Array<any>>}\n */\nexport const getAll = (store, range, limit) =>\n rtop(store.getAll(range, limit))\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {Promise<Array<any>>}\n */\nexport const getAllKeys = (store, range, limit) =>\n rtop(store.getAllKeys(range, limit))\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} query\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n * @return {Promise<any>}\n */\nexport const queryFirst = (store, query, direction) => {\n /**\n * @type {any}\n */\n let first = null\n return iterateKeys(store, query, key => {\n first = key\n return false\n }, direction).then(() => first)\n}\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {Promise<any>}\n */\nexport const getLastKey = (store, range = null) => queryFirst(store, range, 'prev')\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {Promise<any>}\n */\nexport const getFirstKey = (store, range = null) => queryFirst(store, range, 'next')\n\n/**\n * @typedef KeyValuePair\n * @type {Object}\n * @property {any} k key\n * @property {any} v Value\n */\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {Promise<Array<KeyValuePair>>}\n */\nexport const getAllKeysValues = (store, range, limit) =>\n // @ts-ignore\n promise.all([getAllKeys(store, range, limit), getAll(store, range, limit)]).then(([ks, vs]) => ks.map((k, i) => ({ k, v: vs[i] })))\n\n/**\n * @param {any} request\n * @param {function(IDBCursorWithValue):void|boolean|Promise<void|boolean>} f\n * @return {Promise<void>}\n */\nconst iterateOnRequest = (request, f) => promise.create((resolve, reject) => {\n request.onerror = reject\n /**\n * @param {any} event\n */\n request.onsuccess = async event => {\n const cursor = event.target.result\n if (cursor === null || (await f(cursor)) === false) {\n return resolve()\n }\n cursor.continue()\n }\n})\n\n/**\n * Iterate on keys and values\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} keyrange\n * @param {function(any,any):void|boolean|Promise<void|boolean>} f Callback that receives (value, key)\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterate = (store, keyrange, f, direction = 'next') =>\n iterateOnRequest(store.openCursor(keyrange, direction), cursor => f(cursor.value, cursor.key))\n\n/**\n * Iterate on the keys (no values)\n *\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} keyrange\n * @param {function(any):void|boolean|Promise<void|boolean>} f callback that receives the key\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterateKeys = (store, keyrange, f, direction = 'next') =>\n iterateOnRequest(store.openKeyCursor(keyrange, direction), cursor => f(cursor.key))\n\n/**\n * Open store from transaction\n * @param {IDBTransaction} t\n * @param {String} store\n * @returns {IDBObjectStore}\n */\nexport const getStore = (t, store) => t.objectStore(store)\n\n/**\n * @param {any} lower\n * @param {any} upper\n * @param {boolean} lowerOpen\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeBound = (lower, upper, lowerOpen, upperOpen) => IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)\n\n/**\n * @param {any} upper\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeUpperBound = (upper, upperOpen) => IDBKeyRange.upperBound(upper, upperOpen)\n\n/**\n * @param {any} lower\n * @param {boolean} lowerOpen\n */\nexport const createIDBKeyRangeLowerBound = (lower, lowerOpen) => IDBKeyRange.lowerBound(lower, lowerOpen)\n\n/* c8 ignore stop */\n"],"names":["promise.create","error.create","promise.all"],"mappings":"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"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./promise-7d13a97c.cjs');
6
- require('./error-8582d695.cjs');
7
- var indexeddb = require('./indexeddb-0cbb4d6f.cjs');
8
- require('./time-bc2081b9.cjs');
5
+ require('./promise-cda7b9bb.cjs');
6
+ require('./error-0c1f634f.cjs');
7
+ var indexeddb = require('./indexeddb-46d1e737.cjs');
8
+ require('./time-d8438852.cjs');
9
9
  require('./metric.cjs');
10
- require('./math-08e068f9.cjs');
10
+ require('./math-96d5e8c4.cjs');
11
11
 
12
12
 
13
13
 
@@ -4,7 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var pledge = require('./pledge.cjs');
6
6
  require('./queue.cjs');
7
- require('./object-491858d1.cjs');
7
+ require('./object-18980796.cjs');
8
+ require('./traits.cjs');
8
9
 
9
10
  /* eslint-env browser */
10
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"indexeddbV2.cjs","sources":["../indexeddbV2.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers to work with IndexedDB.\n * This is an experimental implementation using Pledge instead of Promise.\n *\n * @experimental\n *\n * @module indexeddbv2\n */\n\nimport * as pledge from './pledge.js'\n\n/* c8 ignore start */\n\n/**\n * IDB Request to Pledge transformer\n *\n * @param {pledge.PledgeInstance<any>} p\n * @param {IDBRequest} request\n */\nexport const bindPledge = (p, request) => {\n // @ts-ignore\n request.onerror = event => p.cancel(event.target.error)\n // @ts-ignore\n request.onsuccess = event => p.resolve(event.target.result)\n}\n\n/**\n * @param {string} name\n * @param {function(IDBDatabase):any} initDB Called when the database is first created\n * @return {pledge.PledgeInstance<IDBDatabase>}\n */\nexport const openDB = (name, initDB) => {\n /**\n * @type {pledge.PledgeInstance<IDBDatabase>}\n */\n const p = pledge.create()\n const request = indexedDB.open(name)\n /**\n * @param {any} event\n */\n request.onupgradeneeded = event => initDB(event.target.result)\n /**\n * @param {any} event\n */\n request.onerror = event => p.cancel(event.target.error)\n /**\n * @param {any} event\n */\n request.onsuccess = event => {\n /**\n * @type {IDBDatabase}\n */\n const db = event.target.result\n db.onversionchange = () => { db.close() }\n p.resolve(db)\n }\n return p\n}\n\n/**\n * @param {pledge.Pledge<string>} name\n * @return {pledge.PledgeInstance<void>}\n */\nexport const deleteDB = name => pledge.createWithDependencies((p, name) => bindPledge(p, indexedDB.deleteDatabase(name)), name)\n\n/**\n * @param {IDBDatabase} db\n * @param {Array<Array<string>|Array<string|IDBObjectStoreParameters|undefined>>} definitions\n */\nexport const createStores = (db, definitions) => definitions.forEach(d =>\n // @ts-ignore\n db.createObjectStore.apply(db, d)\n)\n\n/**\n * @param {pledge.Pledge<IDBDatabase>} db\n * @param {pledge.Pledge<Array<string>>} stores\n * @param {\"readwrite\"|\"readonly\"} [access]\n * @return {pledge.Pledge<Array<IDBObjectStore>>}\n */\nexport const transact = (db, stores, access = 'readwrite') => pledge.createWithDependencies((p, db, stores) => {\n const transaction = db.transaction(stores, access)\n p.resolve(stores.map(store => getStore(transaction, store)))\n}, db, stores)\n\n/**\n * @param {IDBObjectStore} store\n * @param {pledge.Pledge<IDBKeyRange|undefined>} [range]\n * @return {pledge.PledgeInstance<number>}\n */\nexport const count = (store, range) => pledge.createWithDependencies((p, store, range) => bindPledge(p, store.count(range)), store, range)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<String | number | ArrayBuffer | Date | Array<any>>} key\n * @return {pledge.PledgeInstance<String | number | ArrayBuffer | Date | Array<any>>}\n */\nexport const get = (store, key) => pledge.createWithDependencies((p, store, key) => bindPledge(p, store.get(key)), store, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date | IDBKeyRange | Array<any> } key\n */\nexport const del = (store, key) => pledge.createWithDependencies((p, store, key) => bindPledge(p, store.delete(key)), store, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} [key]\n */\nexport const put = (store, item, key) => pledge.createWithDependencies((p, store, item, key) => bindPledge(p, store.put(item, key)), store, item, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} key\n * @return {pledge.PledgeInstance<any>}\n */\nexport const add = (store, item, key) => pledge.createWithDependencies((p, store, item, key) => bindPledge(p, store.add(item, key)), store, item, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date} item\n * @return {pledge.PledgeInstance<number>} Returns the generated key\n */\nexport const addAutoKey = (store, item) => pledge.createWithDependencies((p, store, item) => bindPledge(p, store.add(item)), store, item)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {pledge.PledgeInstance<Array<any>>}\n */\nexport const getAll = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => bindPledge(p, store.getAll(range, limit)), store, range, limit)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {pledge.PledgeInstance<Array<any>>}\n */\nexport const getAllKeys = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => bindPledge(p, store.getAllKeys(range, limit)), store, range, limit)\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} query\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n * @return {pledge.PledgeInstance<any>}\n */\nexport const queryFirst = (store, query, direction) => {\n /**\n * @type {any}\n */\n let first = null\n return iterateKeys(store, query, key => {\n first = key\n return false\n }, direction).map(() => first)\n}\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {pledge.PledgeInstance<any>}\n */\nexport const getLastKey = (store, range = null) => queryFirst(store, range, 'prev')\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {pledge.PledgeInstance<any>}\n */\nexport const getFirstKey = (store, range = null) => queryFirst(store, range, 'next')\n\n/**\n * @typedef KeyValuePair\n * @type {Object}\n * @property {any} k key\n * @property {any} v Value\n */\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<IDBKeyRange|undefined>} [range]\n * @param {pledge.Pledge<number|undefined>} [limit]\n * @return {pledge.PledgeInstance<Array<KeyValuePair>>}\n */\nexport const getAllKeysValues = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => {\n pledge.all([getAllKeys(store, range, limit), getAll(store, range, limit)]).map(([ks, vs]) => ks.map((k, i) => ({ k, v: vs[i] }))).whenResolved(p.resolve.bind(p))\n}, store, range, limit)\n\n/**\n * @param {pledge.PledgeInstance<void>} p\n * @param {any} request\n * @param {function(IDBCursorWithValue):void|boolean|Promise<void|boolean>} f\n */\nconst iterateOnRequest = (p, request, f) => {\n request.onerror = p.cancel.bind(p)\n /**\n * @param {any} event\n */\n request.onsuccess = async event => {\n const cursor = event.target.result\n if (cursor === null || (await f(cursor)) === false) {\n p.resolve(undefined)\n return\n }\n cursor.continue()\n }\n}\n\n/**\n * Iterate on keys and values\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<IDBKeyRange|null>} keyrange\n * @param {function(any,any):void|boolean|Promise<void|boolean>} f Callback that receives (value, key)\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterate = (store, keyrange, f, direction = 'next') => pledge.createWithDependencies((p, store, keyrange) => {\n iterateOnRequest(p, store.openCursor(keyrange, direction), cursor => f(cursor.value, cursor.key))\n}, store, keyrange)\n\n/**\n * Iterate on the keys (no values)\n *\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<IDBKeyRange|null>} keyrange\n * @param {function(any):void|boolean|Promise<void|boolean>} f callback that receives the key\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterateKeys = (store, keyrange, f, direction = 'next') => pledge.createWithDependencies((p, store, keyrange) => {\n iterateOnRequest(p, store.openKeyCursor(keyrange, direction), cursor => f(cursor.key))\n}, store, keyrange)\n\n/**\n * Open store from transaction\n * @param {IDBTransaction} t\n * @param {String} store\n * @returns {IDBObjectStore}\n */\nexport const getStore = (t, store) => t.objectStore(store)\n\n/**\n * @param {any} lower\n * @param {any} upper\n * @param {boolean} lowerOpen\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeBound = (lower, upper, lowerOpen, upperOpen) => IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)\n\n/**\n * @param {any} upper\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeUpperBound = (upper, upperOpen) => IDBKeyRange.upperBound(upper, upperOpen)\n\n/**\n * @param {any} lower\n * @param {boolean} lowerOpen\n */\nexport const createIDBKeyRangeLowerBound = (lower, lowerOpen) => IDBKeyRange.lowerBound(lower, lowerOpen)\n\n/* c8 ignore stop */\n"],"names":["pledge.create","pledge.createWithDependencies","pledge.all"],"mappings":"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"}
1
+ {"version":3,"file":"indexeddbV2.cjs","sources":["../indexeddbV2.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers to work with IndexedDB.\n * This is an experimental implementation using Pledge instead of Promise.\n *\n * @experimental\n *\n * @module indexeddbv2\n */\n\nimport * as pledge from './pledge.js'\n\n/* c8 ignore start */\n\n/**\n * IDB Request to Pledge transformer\n *\n * @param {pledge.PledgeInstance<any>} p\n * @param {IDBRequest} request\n */\nexport const bindPledge = (p, request) => {\n // @ts-ignore\n request.onerror = event => p.cancel(event.target.error)\n // @ts-ignore\n request.onsuccess = event => p.resolve(event.target.result)\n}\n\n/**\n * @param {string} name\n * @param {function(IDBDatabase):any} initDB Called when the database is first created\n * @return {pledge.PledgeInstance<IDBDatabase>}\n */\nexport const openDB = (name, initDB) => {\n /**\n * @type {pledge.PledgeInstance<IDBDatabase>}\n */\n const p = pledge.create()\n const request = indexedDB.open(name)\n /**\n * @param {any} event\n */\n request.onupgradeneeded = event => initDB(event.target.result)\n /**\n * @param {any} event\n */\n request.onerror = event => p.cancel(event.target.error)\n /**\n * @param {any} event\n */\n request.onsuccess = event => {\n /**\n * @type {IDBDatabase}\n */\n const db = event.target.result\n db.onversionchange = () => { db.close() }\n p.resolve(db)\n }\n return p\n}\n\n/**\n * @param {pledge.Pledge<string>} name\n * @return {pledge.PledgeInstance<void>}\n */\nexport const deleteDB = name => pledge.createWithDependencies((p, name) => bindPledge(p, indexedDB.deleteDatabase(name)), name)\n\n/**\n * @param {IDBDatabase} db\n * @param {Array<Array<string>|Array<string|IDBObjectStoreParameters|undefined>>} definitions\n */\nexport const createStores = (db, definitions) => definitions.forEach(d =>\n // @ts-ignore\n db.createObjectStore.apply(db, d)\n)\n\n/**\n * @param {pledge.Pledge<IDBDatabase>} db\n * @param {pledge.Pledge<Array<string>>} stores\n * @param {\"readwrite\"|\"readonly\"} [access]\n * @return {pledge.Pledge<Array<IDBObjectStore>>}\n */\nexport const transact = (db, stores, access = 'readwrite') => pledge.createWithDependencies((p, db, stores) => {\n const transaction = db.transaction(stores, access)\n p.resolve(stores.map(store => getStore(transaction, store)))\n}, db, stores)\n\n/**\n * @param {IDBObjectStore} store\n * @param {pledge.Pledge<IDBKeyRange|undefined>} [range]\n * @return {pledge.PledgeInstance<number>}\n */\nexport const count = (store, range) => pledge.createWithDependencies((p, store, range) => bindPledge(p, store.count(range)), store, range)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<String | number | ArrayBuffer | Date | Array<any>>} key\n * @return {pledge.PledgeInstance<String | number | ArrayBuffer | Date | Array<any>>}\n */\nexport const get = (store, key) => pledge.createWithDependencies((p, store, key) => bindPledge(p, store.get(key)), store, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date | IDBKeyRange | Array<any> } key\n */\nexport const del = (store, key) => pledge.createWithDependencies((p, store, key) => bindPledge(p, store.delete(key)), store, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} [key]\n */\nexport const put = (store, item, key) => pledge.createWithDependencies((p, store, item, key) => bindPledge(p, store.put(item, key)), store, item, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} key\n * @return {pledge.PledgeInstance<any>}\n */\nexport const add = (store, item, key) => pledge.createWithDependencies((p, store, item, key) => bindPledge(p, store.add(item, key)), store, item, key)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {String | number | ArrayBuffer | Date} item\n * @return {pledge.PledgeInstance<number>} Returns the generated key\n */\nexport const addAutoKey = (store, item) => pledge.createWithDependencies((p, store, item) => bindPledge(p, store.add(item)), store, item)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {pledge.PledgeInstance<Array<any>>}\n */\nexport const getAll = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => bindPledge(p, store.getAll(range, limit)), store, range, limit)\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {IDBKeyRange} [range]\n * @param {number} [limit]\n * @return {pledge.PledgeInstance<Array<any>>}\n */\nexport const getAllKeys = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => bindPledge(p, store.getAllKeys(range, limit)), store, range, limit)\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} query\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n * @return {pledge.PledgeInstance<any>}\n */\nexport const queryFirst = (store, query, direction) => {\n /**\n * @type {any}\n */\n let first = null\n return iterateKeys(store, query, key => {\n first = key\n return false\n }, direction).map(() => first)\n}\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {pledge.PledgeInstance<any>}\n */\nexport const getLastKey = (store, range = null) => queryFirst(store, range, 'prev')\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {pledge.PledgeInstance<any>}\n */\nexport const getFirstKey = (store, range = null) => queryFirst(store, range, 'next')\n\n/**\n * @typedef KeyValuePair\n * @type {Object}\n * @property {any} k key\n * @property {any} v Value\n */\n\n/**\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<IDBKeyRange|undefined>} [range]\n * @param {pledge.Pledge<number|undefined>} [limit]\n * @return {pledge.PledgeInstance<Array<KeyValuePair>>}\n */\nexport const getAllKeysValues = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => {\n pledge.all([getAllKeys(store, range, limit), getAll(store, range, limit)]).map(([ks, vs]) => ks.map((k, i) => ({ k, v: vs[i] }))).whenResolved(p.resolve.bind(p))\n}, store, range, limit)\n\n/**\n * @param {pledge.PledgeInstance<void>} p\n * @param {any} request\n * @param {function(IDBCursorWithValue):void|boolean|Promise<void|boolean>} f\n */\nconst iterateOnRequest = (p, request, f) => {\n request.onerror = p.cancel.bind(p)\n /**\n * @param {any} event\n */\n request.onsuccess = async event => {\n const cursor = event.target.result\n if (cursor === null || (await f(cursor)) === false) {\n p.resolve(undefined)\n return\n }\n cursor.continue()\n }\n}\n\n/**\n * Iterate on keys and values\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<IDBKeyRange|null>} keyrange\n * @param {function(any,any):void|boolean|Promise<void|boolean>} f Callback that receives (value, key)\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterate = (store, keyrange, f, direction = 'next') => pledge.createWithDependencies((p, store, keyrange) => {\n iterateOnRequest(p, store.openCursor(keyrange, direction), cursor => f(cursor.value, cursor.key))\n}, store, keyrange)\n\n/**\n * Iterate on the keys (no values)\n *\n * @param {pledge.Pledge<IDBObjectStore>} store\n * @param {pledge.Pledge<IDBKeyRange|null>} keyrange\n * @param {function(any):void|boolean|Promise<void|boolean>} f callback that receives the key\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterateKeys = (store, keyrange, f, direction = 'next') => pledge.createWithDependencies((p, store, keyrange) => {\n iterateOnRequest(p, store.openKeyCursor(keyrange, direction), cursor => f(cursor.key))\n}, store, keyrange)\n\n/**\n * Open store from transaction\n * @param {IDBTransaction} t\n * @param {String} store\n * @returns {IDBObjectStore}\n */\nexport const getStore = (t, store) => t.objectStore(store)\n\n/**\n * @param {any} lower\n * @param {any} upper\n * @param {boolean} lowerOpen\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeBound = (lower, upper, lowerOpen, upperOpen) => IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)\n\n/**\n * @param {any} upper\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeUpperBound = (upper, upperOpen) => IDBKeyRange.upperBound(upper, upperOpen)\n\n/**\n * @param {any} lower\n * @param {boolean} lowerOpen\n */\nexport const createIDBKeyRangeLowerBound = (lower, lowerOpen) => IDBKeyRange.lowerBound(lower, lowerOpen)\n\n/* c8 ignore stop */\n"],"names":["pledge.create","pledge.createWithDependencies","pledge.all"],"mappings":"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"}
package/dist/jwt.cjs CHANGED
@@ -2,26 +2,26 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var error = require('./error-8582d695.cjs');
6
- var buffer = require('./buffer-a74f7330.cjs');
7
- var string = require('./string-b2827a90.cjs');
5
+ var error = require('./error-0c1f634f.cjs');
6
+ var buffer = require('./buffer-adc4e6ea.cjs');
7
+ var string = require('./string-fddc5f8b.cjs');
8
8
  var json = require('./json-092190a1.cjs');
9
9
  var ecdsa = require('./ecdsa.cjs');
10
- var time = require('./time-bc2081b9.cjs');
11
- require('./environment-2de08e0e.cjs');
12
- require('./map-0dabcc55.cjs');
10
+ var time = require('./time-d8438852.cjs');
11
+ require('./environment-90227ead.cjs');
12
+ require('./map-24d263c0.cjs');
13
13
  require('./conditions-f5c0c102.cjs');
14
14
  require('./storage.cjs');
15
- require('./function-09b8292c.cjs');
15
+ require('./function-e7d18feb.cjs');
16
16
  require('./array-78849c95.cjs');
17
17
  require('./set-5b47859e.cjs');
18
- require('./object-491858d1.cjs');
18
+ require('./object-18980796.cjs');
19
19
  require('./traits.cjs');
20
- require('./math-08e068f9.cjs');
21
- require('./encoding-1acb59c4.cjs');
22
- require('./number-466d8922.cjs');
20
+ require('./math-96d5e8c4.cjs');
21
+ require('./encoding-7f85922c.cjs');
22
+ require('./number-1fb57bba.cjs');
23
23
  require('./binary-ac8e39e2.cjs');
24
- require('./decoding-2b136346.cjs');
24
+ require('./decoding-50b9ce38.cjs');
25
25
  require('lib0/webcrypto');
26
26
  require('./common.cjs');
27
27
  require('./metric.cjs');
package/dist/list.cjs CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _function = require('./function-09b8292c.cjs');
6
- var error = require('./error-8582d695.cjs');
5
+ var _function = require('./function-e7d18feb.cjs');
6
+ var error = require('./error-0c1f634f.cjs');
7
+ var traits = require('./traits.cjs');
7
8
  require('./array-78849c95.cjs');
8
9
  require('./set-5b47859e.cjs');
9
- require('./object-491858d1.cjs');
10
- require('./traits.cjs');
10
+ require('./object-18980796.cjs');
11
11
 
12
12
  class ListNode {
13
13
  constructor () {
@@ -37,6 +37,35 @@ class List {
37
37
  this.end = null;
38
38
  this.len = 0;
39
39
  }
40
+
41
+ * [Symbol.iterator] () {
42
+ let n = this.start;
43
+ while (n) {
44
+ yield n;
45
+ n = n.next;
46
+ }
47
+ }
48
+
49
+ /**
50
+ * @param {function(N):any} f
51
+ */
52
+ forEach (f) {
53
+ forEach(this, f);
54
+ }
55
+
56
+ /**
57
+ * @param {List<any>} other
58
+ */
59
+ [traits.EqualityTraitSymbol] (other) {
60
+ let n = this.start;
61
+ let m = other.start;
62
+ while (n && m) {
63
+ if (!traits.equals(n, m)) return false
64
+ n = n.next;
65
+ m = m.next;
66
+ }
67
+ return n === m // only true iff n == null && m == null
68
+ }
40
69
  }
41
70
 
42
71
  /**
@@ -61,23 +90,23 @@ const isEmpty = queue => queue.start === null;
61
90
  *
62
91
  * @template {ListNode} N
63
92
  *
64
- * @param {List<N>} queue
93
+ * @param {List<N>} list
65
94
  * @param {N} node
66
95
  */
67
- const remove = (queue, node) => {
96
+ const remove = (list, node) => {
68
97
  const prev = node.prev;
69
98
  const next = node.next;
70
99
  if (prev) {
71
100
  prev.next = next;
72
101
  } else {
73
- queue.start = next;
102
+ list.start = next;
74
103
  }
75
104
  if (next) {
76
105
  next.prev = prev;
77
106
  } else {
78
- queue.end = prev;
107
+ list.end = prev;
79
108
  }
80
- queue.len--;
109
+ list.len--;
81
110
  return node
82
111
  };
83
112
 
@@ -195,10 +224,8 @@ const toArray = list => map(list, _function.id);
195
224
 
196
225
  /**
197
226
  * @template {ListNode} N
198
- * @template M
199
- *
200
227
  * @param {List<N>} list
201
- * @param {function(N):M} f
228
+ * @param {function(N):any} f
202
229
  */
203
230
  const forEach = (list, f) => {
204
231
  let n = list.start;
package/dist/list.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"list.cjs","sources":["../list.js"],"sourcesContent":["import { id } from './function.js'\nimport * as error from './error.js'\n\nexport class ListNode {\n constructor () {\n /**\n * @type {this|null}\n */\n this.next = null\n /**\n * @type {this|null}\n */\n this.prev = null\n }\n}\n\n/**\n * @template {ListNode} N\n */\nexport class List {\n constructor () {\n /**\n * @type {N | null}\n */\n this.start = null\n /**\n * @type {N | null}\n */\n this.end = null\n this.len = 0\n }\n}\n\n/**\n * @note The queue implementation is experimental and unfinished.\n * Don't use this in production yet.\n *\n * @template {ListNode} N\n *\n * @return {List<N>}\n */\nexport const create = () => new List()\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n */\nexport const isEmpty = queue => queue.start === null\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} node\n */\nexport const remove = (queue, node) => {\n const prev = node.prev\n const next = node.next\n if (prev) {\n prev.next = next\n } else {\n queue.start = next\n }\n if (next) {\n next.prev = prev\n } else {\n queue.end = prev\n }\n queue.len--\n return node\n}\n\n/**\n * @deprecated @todo remove in next major release\n */\nexport const removeNode = remove\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N| null} left\n * @param {N| null} right\n * @param {N} node\n */\nexport const insertBetween = (queue, left, right, node) => {\n /* c8 ignore start */\n if (left != null && left.next !== right) {\n throw error.unexpectedCase()\n }\n /* c8 ignore stop */\n if (left) {\n left.next = node\n } else {\n queue.start = node\n }\n if (right) {\n right.prev = node\n } else {\n queue.end = node\n }\n node.prev = left\n node.next = right\n queue.len++\n}\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} node\n * @param {N} newNode\n */\nexport const replace = (queue, node, newNode) => {\n insertBetween(queue, node, node.next, newNode)\n remove(queue, node)\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushEnd = (queue, n) =>\n insertBetween(queue, queue.end, null, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushFront = (queue, n) =>\n insertBetween(queue, null, queue.start, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popFront = list =>\n list.start ? removeNode(list, list.start) : null\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popEnd = list =>\n list.end ? removeNode(list, list.end) : null\n\n/**\n * @template {ListNode} N\n * @template M\n *\n * @param {List<N>} list\n * @param {function(N):M} f\n * @return {Array<M>}\n */\nexport const map = (list, f) => {\n /**\n * @type {Array<M>}\n */\n const arr = []\n let n = list.start\n while (n) {\n arr.push(f(n))\n n = n.next\n }\n return arr\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n */\nexport const toArray = list => map(list, id)\n\n/**\n * @template {ListNode} N\n * @template M\n *\n * @param {List<N>} list\n * @param {function(N):M} f\n */\nexport const forEach = (list, f) => {\n let n = list.start\n while (n) {\n f(n)\n n = n.next\n }\n}\n"],"names":["error.unexpectedCase","id"],"mappings":"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"}
1
+ {"version":3,"file":"list.cjs","sources":["../list.js"],"sourcesContent":["import { id } from './function.js'\nimport * as error from './error.js'\nimport * as traits from './traits.js'\n\nexport class ListNode {\n constructor () {\n /**\n * @type {this|null}\n */\n this.next = null\n /**\n * @type {this|null}\n */\n this.prev = null\n }\n}\n\n/**\n * @template {ListNode} N\n */\nexport class List {\n constructor () {\n /**\n * @type {N | null}\n */\n this.start = null\n /**\n * @type {N | null}\n */\n this.end = null\n this.len = 0\n }\n\n * [Symbol.iterator] () {\n let n = this.start\n while (n) {\n yield n\n n = n.next\n }\n }\n\n /**\n * @param {function(N):any} f\n */\n forEach (f) {\n forEach(this, f)\n }\n\n /**\n * @param {List<any>} other\n */\n [traits.EqualityTraitSymbol] (other) {\n let n = this.start\n let m = other.start\n while (n && m) {\n if (!traits.equals(n, m)) return false\n n = n.next\n m = m.next\n }\n return n === m // only true iff n == null && m == null\n }\n}\n\n/**\n * @note The queue implementation is experimental and unfinished.\n * Don't use this in production yet.\n *\n * @template {ListNode} N\n *\n * @return {List<N>}\n */\nexport const create = () => new List()\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n */\nexport const isEmpty = queue => queue.start === null\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @param {N} node\n */\nexport const remove = (list, node) => {\n const prev = node.prev\n const next = node.next\n if (prev) {\n prev.next = next\n } else {\n list.start = next\n }\n if (next) {\n next.prev = prev\n } else {\n list.end = prev\n }\n list.len--\n return node\n}\n\n/**\n * @deprecated @todo remove in next major release\n */\nexport const removeNode = remove\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N| null} left\n * @param {N| null} right\n * @param {N} node\n */\nexport const insertBetween = (queue, left, right, node) => {\n /* c8 ignore start */\n if (left != null && left.next !== right) {\n throw error.unexpectedCase()\n }\n /* c8 ignore stop */\n if (left) {\n left.next = node\n } else {\n queue.start = node\n }\n if (right) {\n right.prev = node\n } else {\n queue.end = node\n }\n node.prev = left\n node.next = right\n queue.len++\n}\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} node\n * @param {N} newNode\n */\nexport const replace = (queue, node, newNode) => {\n insertBetween(queue, node, node.next, newNode)\n remove(queue, node)\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushEnd = (queue, n) =>\n insertBetween(queue, queue.end, null, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushFront = (queue, n) =>\n insertBetween(queue, null, queue.start, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popFront = list =>\n list.start ? removeNode(list, list.start) : null\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popEnd = list =>\n list.end ? removeNode(list, list.end) : null\n\n/**\n * @template {ListNode} N\n * @template M\n *\n * @param {List<N>} list\n * @param {function(N):M} f\n * @return {Array<M>}\n */\nexport const map = (list, f) => {\n /**\n * @type {Array<M>}\n */\n const arr = []\n let n = list.start\n while (n) {\n arr.push(f(n))\n n = n.next\n }\n return arr\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n */\nexport const toArray = list => map(list, id)\n\n/**\n * @template {ListNode} N\n * @param {List<N>} list\n * @param {function(N):any} f\n */\nexport const forEach = (list, f) => {\n let n = list.start\n while (n) {\n f(n)\n n = n.next\n }\n}\n"],"names":["traits.EqualityTraitSymbol","traits.equals","error.unexpectedCase","id"],"mappings":"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"}
package/dist/list.d.ts CHANGED
@@ -21,11 +21,20 @@ export class List<N extends ListNode> {
21
21
  */
22
22
  end: N | null;
23
23
  len: number;
24
+ /**
25
+ * @param {function(N):any} f
26
+ */
27
+ forEach(f: (arg0: N) => any): void;
28
+ [Symbol.iterator](): Generator<N, void, unknown>;
29
+ /**
30
+ * @param {List<any>} other
31
+ */
32
+ [traits.EqualityTraitSymbol](other: List<any>): boolean;
24
33
  }
25
34
  export function create<N extends ListNode>(): List<N>;
26
35
  export function isEmpty<N extends ListNode>(queue: List<N>): boolean;
27
- export function remove<N extends ListNode>(queue: List<N>, node: N): N;
28
- export function removeNode<N extends ListNode>(queue: List<N>, node: N): N;
36
+ export function remove<N extends ListNode>(list: List<N>, node: N): N;
37
+ export function removeNode<N extends ListNode>(list: List<N>, node: N): N;
29
38
  export function insertBetween<N extends ListNode>(queue: List<N>, left: N | null, right: N | null, node: N): void;
30
39
  export function replace<N extends ListNode>(queue: List<N>, node: N, newNode: N): void;
31
40
  export function pushEnd<N extends ListNode>(queue: List<N>, n: N): void;
@@ -34,5 +43,6 @@ export function popFront<N extends ListNode>(list: List<N>): N | null;
34
43
  export function popEnd<N extends ListNode>(list: List<N>): N | null;
35
44
  export function map<N extends ListNode, M>(list: List<N>, f: (arg0: N) => M): Array<M>;
36
45
  export function toArray<N extends ListNode>(list: List<N>): N[];
37
- export function forEach<N extends ListNode, M>(list: List<N>, f: (arg0: N) => M): void;
46
+ export function forEach<N extends ListNode>(list: List<N>, f: (arg0: N) => any): void;
47
+ import * as traits from './traits.js';
38
48
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../list.js"],"names":[],"mappings":"AAGA;IAEI;;OAEG;IACH,MAFU,IAAI,GAAC,IAAI,CAEH;IAChB;;OAEG;IACH,MAFU,IAAI,GAAC,IAAI,CAEH;CAEnB;AAED;;GAEG;AACH,kBAFwB,CAAC,SAAX,QAAS;IAInB;;OAEG;IACH,OAFU,CAAC,GAAG,IAAI,CAED;IACjB;;OAEG;IACH,KAFU,CAAC,GAAG,IAAI,CAEH;IACf,YAAY;CAEf;AAUM,uBAJiB,CAAC,SAAX,QAAS,KAEX,IAAI,CAAC,CAAC,CAAC,CAEmB;AAO/B,wBAJiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,WAEkC;AAU7C,uBALiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,KAiBX;AAfM,2BALiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,KAiBX;AAeM,8BAPiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,GAAE,IAAI,SACP,CAAC,GAAE,IAAI,QACP,CAAC,QAqBX;AAWM,wBANiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,WACD,CAAC,QAKX;AAQM,wBALiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,KACP,CAAC,QAG8B;AAQnC,0BALiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,KACP,CAAC,QAGgC;AAQrC,yBALiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,GACN,CAAC,GAAE,IAAI,CAG+B;AAQ3C,uBALiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,GACN,CAAC,GAAE,IAAI,CAG2B;AAUvC,oBAPiB,CAAC,SAAX,QAAS,EACV,CAAC,QAEH,IAAI,CAAC,CAAC,CAAC,KACP,CAAS,IAAC,EAAD,CAAC,KAAE,CAAC,GACZ,KAAK,CAAC,CAAC,CAAC,CAanB;AAOM,wBAJiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,OAE0B;AASrC,wBANiB,CAAC,SAAX,QAAS,EACV,CAAC,QAEH,IAAI,CAAC,CAAC,CAAC,KACP,CAAS,IAAC,EAAD,CAAC,KAAE,CAAC,QAQvB"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../list.js"],"names":[],"mappings":"AAIA;IAEI;;OAEG;IACH,MAFU,IAAI,GAAC,IAAI,CAEH;IAChB;;OAEG;IACH,MAFU,IAAI,GAAC,IAAI,CAEH;CAEnB;AAED;;GAEG;AACH,kBAFwB,CAAC,SAAX,QAAS;IAInB;;OAEG;IACH,OAFU,CAAC,GAAG,IAAI,CAED;IACjB;;OAEG;IACH,KAFU,CAAC,GAAG,IAAI,CAEH;IACf,YAAY;IAWd;;OAEG;IACH,WAFW,CAAS,IAAC,EAAD,CAAC,KAAE,GAAG,QAIzB;IAbD,iDAMC;IASD;;OAEG;IACH,oCAFW,IAAI,CAAC,GAAG,CAAC,WAWnB;CACF;AAUM,uBAJiB,CAAC,SAAX,QAAS,KAEX,IAAI,CAAC,CAAC,CAAC,CAEmB;AAO/B,wBAJiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,WAEkC;AAU7C,uBALiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,KAiBX;AAfM,2BALiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,KAiBX;AAeM,8BAPiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,GAAE,IAAI,SACP,CAAC,GAAE,IAAI,QACP,CAAC,QAqBX;AAWM,wBANiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,QACP,CAAC,WACD,CAAC,QAKX;AAQM,wBALiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,KACP,CAAC,QAG8B;AAQnC,0BALiB,CAAC,SAAX,QAAS,SAEZ,IAAI,CAAC,CAAC,CAAC,KACP,CAAC,QAGgC;AAQrC,yBALiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,GACN,CAAC,GAAE,IAAI,CAG+B;AAQ3C,uBALiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,GACN,CAAC,GAAE,IAAI,CAG2B;AAUvC,oBAPiB,CAAC,SAAX,QAAS,EACV,CAAC,QAEH,IAAI,CAAC,CAAC,CAAC,KACP,CAAS,IAAC,EAAD,CAAC,KAAE,CAAC,GACZ,KAAK,CAAC,CAAC,CAAC,CAanB;AAOM,wBAJiB,CAAC,SAAX,QAAS,QAEZ,IAAI,CAAC,CAAC,CAAC,OAE0B;AAOrC,wBAJiB,CAAC,SAAX,QAAS,QACZ,IAAI,CAAC,CAAC,CAAC,KACP,CAAS,IAAC,EAAD,CAAC,KAAE,GAAG,QAQzB;wBAlOuB,aAAa"}
package/dist/logging.cjs CHANGED
@@ -2,23 +2,25 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var environment = require('./environment-2de08e0e.cjs');
5
+ var environment = require('./environment-90227ead.cjs');
6
6
  var set = require('./set-5b47859e.cjs');
7
7
  var pair = require('./pair-ab022bc3.cjs');
8
- var dom = require('./dom-16daf1a0.cjs');
8
+ var dom = require('./dom-2b123630.cjs');
9
9
  var json = require('./json-092190a1.cjs');
10
- var map = require('./map-0dabcc55.cjs');
11
- var eventloop = require('./eventloop-b299a889.cjs');
12
- var math = require('./math-08e068f9.cjs');
10
+ var map = require('./map-24d263c0.cjs');
11
+ var eventloop = require('./eventloop-a0168106.cjs');
12
+ var math = require('./math-96d5e8c4.cjs');
13
13
  var logging_common = require('./logging.common.cjs');
14
- require('./string-b2827a90.cjs');
14
+ require('./string-fddc5f8b.cjs');
15
15
  require('./array-78849c95.cjs');
16
16
  require('./conditions-f5c0c102.cjs');
17
17
  require('./storage.cjs');
18
- require('./function-09b8292c.cjs');
19
- require('./object-491858d1.cjs');
18
+ require('./function-e7d18feb.cjs');
19
+ require('./object-18980796.cjs');
20
20
  require('./traits.cjs');
21
- require('./time-bc2081b9.cjs');
21
+ require('./schema.cjs');
22
+ require('./error-0c1f634f.cjs');
23
+ require('./time-d8438852.cjs');
22
24
  require('./metric.cjs');
23
25
  require('./symbol-9c439012.cjs');
24
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"logging.cjs","sources":["../logging.js"],"sourcesContent":["/**\n * Isomorphic logging module with support for colors!\n *\n * @module logging\n */\n\nimport * as env from './environment.js'\nimport * as set from './set.js'\nimport * as pair from './pair.js'\nimport * as dom from './dom.js'\nimport * as json from './json.js'\nimport * as map from './map.js'\nimport * as eventloop from './eventloop.js'\nimport * as math from './math.js'\nimport * as common from './logging.common.js'\n\nexport { BOLD, UNBOLD, BLUE, GREY, GREEN, RED, PURPLE, ORANGE, UNCOLOR } from './logging.common.js'\n\n/**\n * @type {Object<Symbol,pair.Pair<string,string>>}\n */\nconst _browserStyleMap = {\n [common.BOLD]: pair.create('font-weight', 'bold'),\n [common.UNBOLD]: pair.create('font-weight', 'normal'),\n [common.BLUE]: pair.create('color', 'blue'),\n [common.GREEN]: pair.create('color', 'green'),\n [common.GREY]: pair.create('color', 'grey'),\n [common.RED]: pair.create('color', 'red'),\n [common.PURPLE]: pair.create('color', 'purple'),\n [common.ORANGE]: pair.create('color', 'orange'), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n [common.UNCOLOR]: pair.create('color', 'black')\n}\n\n/**\n * @param {Array<string|Symbol|Object|number|function():any>} args\n * @return {Array<string|object|number>}\n */\n/* c8 ignore start */\nconst computeBrowserLoggingArgs = (args) => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = /** @type {Array<string|Symbol|Object|number>} */ (/** @type {[function]} */ (args)[0]())\n }\n const strBuilder = []\n const styles = []\n const currentStyle = map.create()\n /**\n * @type {Array<string|Object|number>}\n */\n let logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n break\n }\n if (arg.constructor === String || arg.constructor === Number) {\n const style = dom.mapToStyleString(currentStyle)\n if (i > 0 || style.length > 0) {\n strBuilder.push('%c' + arg)\n styles.push(style)\n } else {\n strBuilder.push(arg)\n }\n } else {\n break\n }\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs = styles\n logArgs.unshift(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n/* c8 ignore stop */\n\n/* c8 ignore start */\nconst computeLoggingArgs = env.supportsColor\n ? computeBrowserLoggingArgs\n : common.computeNoColorLoggingArgs\n/* c8 ignore stop */\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const print = (...args) => {\n console.log(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.print(args))\n}\n\n/* c8 ignore start */\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const warn = (...args) => {\n console.warn(...computeLoggingArgs(args))\n args.unshift(common.ORANGE)\n vconsoles.forEach((vc) => vc.print(args))\n}\n/* c8 ignore stop */\n\n/**\n * @param {Error} err\n */\n/* c8 ignore start */\nexport const printError = (err) => {\n console.error(err)\n vconsoles.forEach((vc) => vc.printError(err))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} url image location\n * @param {number} height height of the image in pixel\n */\n/* c8 ignore start */\nexport const printImg = (url, height) => {\n if (env.isBrowser) {\n console.log(\n '%c ',\n `font-size: ${height}px; background-size: contain; background-repeat: no-repeat; background-image: url(${url})`\n )\n // console.log('%c ', `font-size: ${height}x; background: url(${url}) no-repeat;`)\n }\n vconsoles.forEach((vc) => vc.printImg(url, height))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} base64\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printImgBase64 = (base64, height) =>\n printImg(`data:image/gif;base64,${base64}`, height)\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const group = (...args) => {\n console.group(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.group(args))\n}\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const groupCollapsed = (...args) => {\n console.groupCollapsed(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupCollapsed(args))\n}\n\nexport const groupEnd = () => {\n console.groupEnd()\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupEnd())\n}\n\n/**\n * @param {function():Node} createNode\n */\n/* c8 ignore next 2 */\nexport const printDom = (createNode) =>\n vconsoles.forEach((vc) => vc.printDom(createNode()))\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printCanvas = (canvas, height) =>\n printImg(canvas.toDataURL(), height)\n\nexport const vconsoles = set.create()\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n * @return {Array<Element>}\n */\n/* c8 ignore start */\nconst _computeLineSpans = (args) => {\n const spans = []\n const currentStyle = new Map()\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n let arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n arg = 'undefined '\n }\n if (arg.constructor === String || arg.constructor === Number) {\n // @ts-ignore\n const span = dom.element('span', [\n pair.create('style', dom.mapToStyleString(currentStyle))\n ], [dom.text(arg.toString())])\n if (span.innerHTML === '') {\n span.innerHTML = '&nbsp;'\n }\n spans.push(span)\n } else {\n break\n }\n }\n }\n // append the rest\n for (; i < args.length; i++) {\n let content = args[i]\n if (!(content instanceof Symbol)) {\n if (content.constructor !== String && content.constructor !== Number) {\n content = ' ' + json.stringify(content) + ' '\n }\n spans.push(\n dom.element('span', [], [dom.text(/** @type {string} */ (content))])\n )\n }\n }\n return spans\n}\n/* c8 ignore stop */\n\nconst lineStyle =\n 'font-family:monospace;border-bottom:1px solid #e2e2e2;padding:2px;'\n\n/* c8 ignore start */\nexport class VConsole {\n /**\n * @param {Element} dom\n */\n constructor (dom) {\n this.dom = dom\n /**\n * @type {Element}\n */\n this.ccontainer = this.dom\n this.depth = 0\n vconsoles.add(this)\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n * @param {boolean} collapsed\n */\n group (args, collapsed = false) {\n eventloop.enqueue(() => {\n const triangleDown = dom.element('span', [\n pair.create('hidden', collapsed),\n pair.create('style', 'color:grey;font-size:120%;')\n ], [dom.text('▼')])\n const triangleRight = dom.element('span', [\n pair.create('hidden', !collapsed),\n pair.create('style', 'color:grey;font-size:125%;')\n ], [dom.text('▶')])\n const content = dom.element(\n 'div',\n [pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )],\n [triangleDown, triangleRight, dom.text(' ')].concat(\n _computeLineSpans(args)\n )\n )\n const nextContainer = dom.element('div', [\n pair.create('hidden', collapsed)\n ])\n const nextLine = dom.element('div', [], [content, nextContainer])\n dom.append(this.ccontainer, [nextLine])\n this.ccontainer = nextContainer\n this.depth++\n // when header is clicked, collapse/uncollapse container\n dom.addEventListener(content, 'click', (_event) => {\n nextContainer.toggleAttribute('hidden')\n triangleDown.toggleAttribute('hidden')\n triangleRight.toggleAttribute('hidden')\n })\n })\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n */\n groupCollapsed (args) {\n this.group(args, true)\n }\n\n groupEnd () {\n eventloop.enqueue(() => {\n if (this.depth > 0) {\n this.depth--\n // @ts-ignore\n this.ccontainer = this.ccontainer.parentElement.parentElement\n }\n })\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n */\n print (args) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('div', [\n pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )\n ], _computeLineSpans(args))\n ])\n })\n }\n\n /**\n * @param {Error} err\n */\n printError (err) {\n this.print([common.RED, common.BOLD, err.toString()])\n }\n\n /**\n * @param {string} url\n * @param {number} height\n */\n printImg (url, height) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('img', [\n pair.create('src', url),\n pair.create('height', `${math.round(height * 1.5)}px`)\n ])\n ])\n })\n }\n\n /**\n * @param {Node} node\n */\n printDom (node) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [node])\n })\n }\n\n destroy () {\n eventloop.enqueue(() => {\n vconsoles.delete(this)\n })\n }\n}\n/* c8 ignore stop */\n\n/**\n * @param {Element} dom\n */\n/* c8 ignore next */\nexport const createVConsole = (dom) => new VConsole(dom)\n\n/**\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = (moduleName) => common.createModuleLogger(print, moduleName)\n"],"names":["common.BOLD","pair.create","common.UNBOLD","common.BLUE","common.GREEN","common.GREY","common.RED","common.PURPLE","common.ORANGE","common.UNCOLOR","map.create","dom.mapToStyleString","env.supportsColor","common.computeNoColorLoggingArgs","env.isBrowser","set.create","dom.element","dom.text","json.stringify","eventloop.enqueue","dom.append","dom.addEventListener","math.round","common.createModuleLogger"],"mappings":"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"}
1
+ {"version":3,"file":"logging.cjs","sources":["../logging.js"],"sourcesContent":["/**\n * Isomorphic logging module with support for colors!\n *\n * @module logging\n */\n\nimport * as env from './environment.js'\nimport * as set from './set.js'\nimport * as pair from './pair.js'\nimport * as dom from './dom.js'\nimport * as json from './json.js'\nimport * as map from './map.js'\nimport * as eventloop from './eventloop.js'\nimport * as math from './math.js'\nimport * as common from './logging.common.js'\n\nexport { BOLD, UNBOLD, BLUE, GREY, GREEN, RED, PURPLE, ORANGE, UNCOLOR } from './logging.common.js'\n\n/**\n * @type {Object<Symbol,pair.Pair<string,string>>}\n */\nconst _browserStyleMap = {\n [common.BOLD]: pair.create('font-weight', 'bold'),\n [common.UNBOLD]: pair.create('font-weight', 'normal'),\n [common.BLUE]: pair.create('color', 'blue'),\n [common.GREEN]: pair.create('color', 'green'),\n [common.GREY]: pair.create('color', 'grey'),\n [common.RED]: pair.create('color', 'red'),\n [common.PURPLE]: pair.create('color', 'purple'),\n [common.ORANGE]: pair.create('color', 'orange'), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n [common.UNCOLOR]: pair.create('color', 'black')\n}\n\n/**\n * @param {Array<string|Symbol|Object|number|function():any>} args\n * @return {Array<string|object|number>}\n */\n/* c8 ignore start */\nconst computeBrowserLoggingArgs = (args) => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = /** @type {Array<string|Symbol|Object|number>} */ (/** @type {[function]} */ (args)[0]())\n }\n const strBuilder = []\n const styles = []\n const currentStyle = map.create()\n /**\n * @type {Array<string|Object|number>}\n */\n let logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n break\n }\n if (arg.constructor === String || arg.constructor === Number) {\n const style = dom.mapToStyleString(currentStyle)\n if (i > 0 || style.length > 0) {\n strBuilder.push('%c' + arg)\n styles.push(style)\n } else {\n strBuilder.push(arg)\n }\n } else {\n break\n }\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs = styles\n logArgs.unshift(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n/* c8 ignore stop */\n\n/* c8 ignore start */\nconst computeLoggingArgs = env.supportsColor\n ? computeBrowserLoggingArgs\n : common.computeNoColorLoggingArgs\n/* c8 ignore stop */\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const print = (...args) => {\n console.log(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.print(args))\n}\n\n/* c8 ignore start */\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const warn = (...args) => {\n console.warn(...computeLoggingArgs(args))\n args.unshift(common.ORANGE)\n vconsoles.forEach((vc) => vc.print(args))\n}\n/* c8 ignore stop */\n\n/**\n * @param {Error} err\n */\n/* c8 ignore start */\nexport const printError = (err) => {\n console.error(err)\n vconsoles.forEach((vc) => vc.printError(err))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} url image location\n * @param {number} height height of the image in pixel\n */\n/* c8 ignore start */\nexport const printImg = (url, height) => {\n if (env.isBrowser) {\n console.log(\n '%c ',\n `font-size: ${height}px; background-size: contain; background-repeat: no-repeat; background-image: url(${url})`\n )\n // console.log('%c ', `font-size: ${height}x; background: url(${url}) no-repeat;`)\n }\n vconsoles.forEach((vc) => vc.printImg(url, height))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} base64\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printImgBase64 = (base64, height) =>\n printImg(`data:image/gif;base64,${base64}`, height)\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const group = (...args) => {\n console.group(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.group(args))\n}\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const groupCollapsed = (...args) => {\n console.groupCollapsed(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupCollapsed(args))\n}\n\nexport const groupEnd = () => {\n console.groupEnd()\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupEnd())\n}\n\n/**\n * @param {function():Node} createNode\n */\n/* c8 ignore next 2 */\nexport const printDom = (createNode) =>\n vconsoles.forEach((vc) => vc.printDom(createNode()))\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printCanvas = (canvas, height) =>\n printImg(canvas.toDataURL(), height)\n\nexport const vconsoles = set.create()\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n * @return {Array<Element>}\n */\n/* c8 ignore start */\nconst _computeLineSpans = (args) => {\n const spans = []\n const currentStyle = new Map()\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n let arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n arg = 'undefined '\n }\n if (arg.constructor === String || arg.constructor === Number) {\n // @ts-ignore\n const span = dom.element('span', [\n pair.create('style', dom.mapToStyleString(currentStyle))\n ], [dom.text(arg.toString())])\n if (span.innerHTML === '') {\n span.innerHTML = '&nbsp;'\n }\n spans.push(span)\n } else {\n break\n }\n }\n }\n // append the rest\n for (; i < args.length; i++) {\n let content = args[i]\n if (!(content instanceof Symbol)) {\n if (content.constructor !== String && content.constructor !== Number) {\n content = ' ' + json.stringify(content) + ' '\n }\n spans.push(\n dom.element('span', [], [dom.text(/** @type {string} */ (content))])\n )\n }\n }\n return spans\n}\n/* c8 ignore stop */\n\nconst lineStyle =\n 'font-family:monospace;border-bottom:1px solid #e2e2e2;padding:2px;'\n\n/* c8 ignore start */\nexport class VConsole {\n /**\n * @param {Element} dom\n */\n constructor (dom) {\n this.dom = dom\n /**\n * @type {Element}\n */\n this.ccontainer = this.dom\n this.depth = 0\n vconsoles.add(this)\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n * @param {boolean} collapsed\n */\n group (args, collapsed = false) {\n eventloop.enqueue(() => {\n const triangleDown = dom.element('span', [\n pair.create('hidden', collapsed),\n pair.create('style', 'color:grey;font-size:120%;')\n ], [dom.text('▼')])\n const triangleRight = dom.element('span', [\n pair.create('hidden', !collapsed),\n pair.create('style', 'color:grey;font-size:125%;')\n ], [dom.text('▶')])\n const content = dom.element(\n 'div',\n [pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )],\n [triangleDown, triangleRight, dom.text(' ')].concat(\n _computeLineSpans(args)\n )\n )\n const nextContainer = dom.element('div', [\n pair.create('hidden', collapsed)\n ])\n const nextLine = dom.element('div', [], [content, nextContainer])\n dom.append(this.ccontainer, [nextLine])\n this.ccontainer = nextContainer\n this.depth++\n // when header is clicked, collapse/uncollapse container\n dom.addEventListener(content, 'click', (_event) => {\n nextContainer.toggleAttribute('hidden')\n triangleDown.toggleAttribute('hidden')\n triangleRight.toggleAttribute('hidden')\n })\n })\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n */\n groupCollapsed (args) {\n this.group(args, true)\n }\n\n groupEnd () {\n eventloop.enqueue(() => {\n if (this.depth > 0) {\n this.depth--\n // @ts-ignore\n this.ccontainer = this.ccontainer.parentElement.parentElement\n }\n })\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n */\n print (args) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('div', [\n pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )\n ], _computeLineSpans(args))\n ])\n })\n }\n\n /**\n * @param {Error} err\n */\n printError (err) {\n this.print([common.RED, common.BOLD, err.toString()])\n }\n\n /**\n * @param {string} url\n * @param {number} height\n */\n printImg (url, height) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('img', [\n pair.create('src', url),\n pair.create('height', `${math.round(height * 1.5)}px`)\n ])\n ])\n })\n }\n\n /**\n * @param {Node} node\n */\n printDom (node) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [node])\n })\n }\n\n destroy () {\n eventloop.enqueue(() => {\n vconsoles.delete(this)\n })\n }\n}\n/* c8 ignore stop */\n\n/**\n * @param {Element} dom\n */\n/* c8 ignore next */\nexport const createVConsole = (dom) => new VConsole(dom)\n\n/**\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = (moduleName) => common.createModuleLogger(print, moduleName)\n"],"names":["common.BOLD","pair.create","common.UNBOLD","common.BLUE","common.GREEN","common.GREY","common.RED","common.PURPLE","common.ORANGE","common.UNCOLOR","map.create","dom.mapToStyleString","env.supportsColor","common.computeNoColorLoggingArgs","env.isBrowser","set.create","dom.element","dom.text","json.stringify","eventloop.enqueue","dom.append","dom.addEventListener","math.round","common.createModuleLogger"],"mappings":"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"}