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
@@ -3,19 +3,19 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var symbol = require('./symbol-9c439012.cjs');
6
- var time = require('./time-bc2081b9.cjs');
7
- var environment = require('./environment-2de08e0e.cjs');
8
- var _function = require('./function-09b8292c.cjs');
6
+ var time = require('./time-d8438852.cjs');
7
+ var environment = require('./environment-90227ead.cjs');
8
+ var _function = require('./function-e7d18feb.cjs');
9
9
  var json = require('./json-092190a1.cjs');
10
10
  require('./metric.cjs');
11
- require('./math-08e068f9.cjs');
12
- require('./map-0dabcc55.cjs');
13
- require('./string-b2827a90.cjs');
11
+ require('./math-96d5e8c4.cjs');
12
+ require('./map-24d263c0.cjs');
13
+ require('./string-fddc5f8b.cjs');
14
14
  require('./array-78849c95.cjs');
15
15
  require('./set-5b47859e.cjs');
16
16
  require('./conditions-f5c0c102.cjs');
17
17
  require('./storage.cjs');
18
- require('./object-491858d1.cjs');
18
+ require('./object-18980796.cjs');
19
19
  require('./traits.cjs');
20
20
 
21
21
  const BOLD = symbol.create();
@@ -2,21 +2,21 @@
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 logging_common = require('./logging.common.cjs');
7
- require('./map-0dabcc55.cjs');
8
- require('./string-b2827a90.cjs');
7
+ require('./map-24d263c0.cjs');
8
+ require('./string-fddc5f8b.cjs');
9
9
  require('./array-78849c95.cjs');
10
10
  require('./set-5b47859e.cjs');
11
11
  require('./conditions-f5c0c102.cjs');
12
12
  require('./storage.cjs');
13
- require('./function-09b8292c.cjs');
14
- require('./object-491858d1.cjs');
13
+ require('./function-e7d18feb.cjs');
14
+ require('./object-18980796.cjs');
15
15
  require('./traits.cjs');
16
16
  require('./symbol-9c439012.cjs');
17
- require('./time-bc2081b9.cjs');
17
+ require('./time-d8438852.cjs');
18
18
  require('./metric.cjs');
19
- require('./math-08e068f9.cjs');
19
+ require('./math-96d5e8c4.cjs');
20
20
  require('./json-092190a1.cjs');
21
21
 
22
22
  /**
@@ -6,6 +6,12 @@
6
6
  * @module map
7
7
  */
8
8
 
9
+ /**
10
+ * @template K
11
+ * @template V
12
+ * @typedef {Map<K,V>} GlobalMap
13
+ */
14
+
9
15
  /**
10
16
  * Creates a new Map instance.
11
17
  *
@@ -130,4 +136,4 @@ exports.create = create;
130
136
  exports.map = map;
131
137
  exports.map$1 = map$1;
132
138
  exports.setIfUndefined = setIfUndefined;
133
- //# sourceMappingURL=map-0dabcc55.cjs.map
139
+ //# sourceMappingURL=map-24d263c0.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-24d263c0.cjs","sources":["../map.js"],"sourcesContent":["/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * @template K\n * @template V\n * @typedef {Map<K,V>} GlobalMap\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map<any, any>}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template K,V\n * @param {Map<K,V>} m\n * @return {Map<K,V>}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template {Map<any, any>} MAP\n * @template {MAP extends Map<any,infer V> ? function():V : unknown} CF\n * @param {MAP} map\n * @param {MAP extends Map<infer K,any> ? K : unknown} key\n * @param {CF} createT\n * @return {ReturnType<CF>}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map<K,V>} m\n * @param {function(V,K):R} f\n * @return {Array<R>}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map<K,V>} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map<K,V>} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,MAAM,IAAI,GAAG,GAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,CAAC,IAAI;AACzB,EAAE,MAAM,CAAC,GAAG,MAAM,GAAE;AACpB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE,EAAC;AACtC,EAAE,OAAO,CAAC;AACV,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK;AACrD,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAC;AACxB,EAAE,IAAI,GAAG,KAAK,SAAS,EAAE;AACzB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,EAAE,EAAC;AACjC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC7B,EAAE,MAAM,GAAG,GAAG,GAAE;AAChB,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;AAChC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAC;AAC3B,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC7B,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;AAChC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AACvB,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK;AACd,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC7B,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;AAChC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AACxB,MAAM,OAAO,KAAK;AAClB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI;AACb;;;;;;;;;;;;;;;;;;;;"}
package/dist/map.cjs CHANGED
@@ -2,14 +2,321 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var map = require('./map-0dabcc55.cjs');
5
+ var map$1 = require('./map-24d263c0.cjs');
6
+ var _function = require('./function-e7d18feb.cjs');
7
+ var traits = require('./traits.cjs');
8
+ var schema = require('./schema.cjs');
9
+ var ops = require('./ops.cjs');
10
+ var abstract = require('./abstract.cjs');
11
+ require('./array-78849c95.cjs');
12
+ require('./set-5b47859e.cjs');
13
+ require('./object-18980796.cjs');
14
+ require('./error-0c1f634f.cjs');
15
+ require('./environment-90227ead.cjs');
16
+ require('./string-fddc5f8b.cjs');
17
+ require('./conditions-f5c0c102.cjs');
18
+ require('./storage.cjs');
19
+ require('./list.cjs');
6
20
 
21
+ const $mapJson = schema.$record(schema.$string, ops.$deltaMapChangeJson);
7
22
 
23
+ /**
24
+ * @template {{ [key:string]: ops.DeltaMapOps }} OPS
25
+ * @typedef {{ [K in keyof OPS]: (Extract<OPS[K],ops.MapInsertOp<any>> extends ops.MapInsertOp<infer V,any> ? ops.MapInsertOp<V, K> : never) | (Extract<OPS[K],ops.MapDeleteOp<any>> extends ops.MapDeleteOp<infer V,any> ? ops.MapDeleteOp<V,K> : never) | (Extract<OPS[K],ops.MapModifyOp<any>> extends ops.MapModifyOp<infer V,any> ? (ops.MapModifyOp<V,K>&OPS[K]) : never) }[keyof OPS]} KeyedOps */
8
26
 
9
- exports.all = map.all;
10
- exports.any = map.any;
11
- exports.copy = map.copy;
12
- exports.create = map.create;
13
- exports.map = map.map;
14
- exports.setIfUndefined = map.setIfUndefined;
27
+ /**
28
+ * @template {{ [key: string]: any }} [Vals={[key:string]:any}]
29
+ * @extends AbstractDelta
30
+ */
31
+ class DeltaMap extends abstract.AbstractDelta {
32
+ /**
33
+ * @param {s.Schema<Vals>} $vals
34
+ */
35
+ constructor ($vals) {
36
+ super();
37
+ this.$vals = schema.$$object.check($vals) ? $vals.partial : $vals;
38
+ /**
39
+ * @type {gmap.GlobalMap<any,ops.DeltaMapOps>}
40
+ */
41
+ this._changes = map$1.create();
42
+ /**
43
+ * @type {import('./abstract.js').Attribution?}
44
+ */
45
+ this.usedAttribution = null;
46
+ }
47
+
48
+ isEmpty () {
49
+ return this._changes.size === 0
50
+ }
51
+
52
+ /**
53
+ *
54
+ * Iterate through the changes. There are two approches to iterate through changes. The
55
+ * following two examples achieve the same thing:
56
+ *
57
+ * @example
58
+ * d.forEach(op => {
59
+ * if (op instanceof dmap.MapInsertOp) {
60
+ * console.log('content inserted:', op.key, op.value)
61
+ * } else if (op instanceof dmap.MapDeleteOp) {
62
+ * console.log('content deleted:', op.key, op.prevValue)
63
+ * } else if (op instanceof delta.MapModifyOp) {
64
+ * console.log('content was modified:', op.key, op.)
65
+ * op.modify
66
+ * }
67
+ * })
68
+ *
69
+ * The second approach doesn't require instanceof checks.
70
+ *
71
+ * @example
72
+ * d.forEach(null,
73
+ * (insertOp) => insertOp.insert,
74
+ * (retainOp) => insertOp.retain
75
+ * (deleteOp) => insertOp.delete
76
+ * (modifyOp) => insertOp.modify
77
+ * )
78
+ *
79
+ * @template {Vals} ValsX
80
+ * @param {null|((op:KeyedOps<MapOpsFromValues<ValsX>>)=>void)} changeHandler
81
+ * @param {null|((insertOp:Extract<KeyedOps<MapOpsFromValues<ValsX>>,ops.MapInsertOp<any,any>>)=>void)} insertHandler
82
+ * @param {null|((deleteOp:Extract<KeyedOps<MapOpsFromValues<ValsX>>,ops.MapDeleteOp<any,any>>)=>void)} deleteHandler
83
+ * @param {null|((modifyOp:Extract<KeyedOps<MapOpsFromValues<ValsX>>,ops.MapModifyOp<any,any>>)=>void)} modifyHandler
84
+ */
85
+ forEach (changeHandler = null, insertHandler = null, deleteHandler = null, modifyHandler = null) {
86
+ this._changes.forEach((change) => {
87
+ changeHandler?.(/** @type {any} */ (change));
88
+ switch (change.constructor) {
89
+ case ops.MapDeleteOp:
90
+ deleteHandler?.(/** @type {any} */ (change));
91
+ break
92
+ case ops.MapInsertOp:
93
+ insertHandler?.(/** @type {any} */ (change));
94
+ break
95
+ case ops.MapModifyOp:
96
+ modifyHandler?.(/** @type {any} */ (change));
97
+ break
98
+ }
99
+ });
100
+ }
101
+
102
+ /**
103
+ * @template {keyof Vals} K
104
+ * @param {K} key
105
+ * @return {MapOpsFromValues<Vals>[K] | undefined}
106
+ */
107
+ get (key) {
108
+ return /** @type {(MapOpsFromValues<Vals>[K] & { key:K })|undefined} */ (this._changes.get(key))
109
+ }
110
+
111
+ /**
112
+ * @param {keyof Vals} key
113
+ */
114
+ has (key) {
115
+ return this._changes.has(key)
116
+ }
117
+
118
+ /**
119
+ * @param {DeltaMap<any>} other
120
+ * @return {boolean}
121
+ */
122
+ equals (other) {
123
+ return this[traits.EqualityTraitSymbol](other)
124
+ }
125
+
126
+ get size () {
127
+ return this._changes.size
128
+ }
129
+
130
+ /**
131
+ * @return {s.Unwrap<$mapJson>}
132
+ */
133
+ toJSON () {
134
+ /**
135
+ * @type {s.Unwrap<$mapJson>}
136
+ */
137
+ const changes = {};
138
+ this._changes.forEach((change, key) => {
139
+ changes[/** @type {string} */ (key)] = change.toJSON();
140
+ });
141
+ return changes
142
+ }
143
+
144
+ /**
145
+ * @template {keyof Vals} K
146
+ * @param {K} key
147
+ * @param {Extract<Vals[K], AbstractDelta>} delta
148
+ */
149
+ modify (key, delta) {
150
+ this._changes.set(key, /** @type {any} */ (new ops.MapModifyOp(key, valsKeySchema(this.$vals, key).cast(delta))));
151
+ return this
152
+ }
153
+
154
+ /**
155
+ * @template {keyof Vals} K
156
+ * @param {K} key
157
+ * @param {Vals[K]} newVal
158
+ * @param {Vals[K]|undefined} prevValue
159
+ * @param {import('./abstract.js').Attribution?} attribution
160
+ */
161
+ set (key, newVal, prevValue = undefined, attribution = null) {
162
+ const mergedAttribution = abstract.mergeAttrs(this.usedAttribution, attribution);
163
+ const $v = valsKeySchema(this.$vals, key);
164
+ this._changes.set(key, /** @type {any} */ (new ops.MapInsertOp(key, $v.cast(newVal), prevValue && $v.cast(prevValue), mergedAttribution)));
165
+ return this
166
+ }
167
+
168
+ /**
169
+ * @param {Partial<Vals>} kv
170
+ * @param {import('./abstract.js').Attribution?} attribution
171
+ */
172
+ setMany (kv, attribution = null) {
173
+ for (const key in kv) {
174
+ this.set(key, /** @type {Vals[any]} */ (kv[key]), undefined, attribution);
175
+ }
176
+ return this
177
+ }
178
+
179
+ /**
180
+ * @template {keyof Vals} K
181
+ * @param {K} key
182
+ * @param {Vals[K]|undefined} prevValue
183
+ * @param {import('./abstract.js').Attribution?} attribution
184
+ */
185
+ delete (key, prevValue = undefined, attribution = null) {
186
+ const mergedAttribution = abstract.mergeAttrs(this.usedAttribution, attribution);
187
+ this._changes.set(key, /** @type {any} */ (new ops.MapDeleteOp(key, prevValue === undefined ? prevValue : valsKeySchema(this.$vals, key).cast(prevValue), mergedAttribution)));
188
+ return this
189
+ }
190
+
191
+ /**
192
+ * @param {import('./abstract.js').Attribution?} attribution
193
+ */
194
+ useAttribution (attribution) {
195
+ this.usedAttribution = attribution;
196
+ return this
197
+ }
198
+
199
+ /**
200
+ *
201
+ * - insert vs delete ⇒ insert takes precedence
202
+ * - insert vs modify ⇒ insert takes precedence
203
+ * - insert vs insert ⇒ priority decides
204
+ * - delete vs modify ⇒ delete takes precedence
205
+ * - delete vs delete ⇒ current delete op is removed because item has already been deleted
206
+ * - modify vs modify ⇒ rebase using priority
207
+ *
208
+ * @param {DeltaMap<Vals>} other
209
+ * @param {boolean} priority
210
+ */
211
+ rebase (other, priority) {
212
+ this.forEach(null,
213
+ insertOp => {
214
+ if (other.get(insertOp.key)?.constructor === ops.MapInsertOp && !priority) {
215
+ this._changes.delete(insertOp.key);
216
+ }
217
+ },
218
+ deleteOp => {
219
+ const otherOp = other.get(deleteOp.key);
220
+ if (otherOp?.constructor === ops.MapInsertOp) {
221
+ this._changes.delete(otherOp.key);
222
+ }
223
+ },
224
+ modifyOp => {
225
+ const otherOp = other.get(modifyOp.key);
226
+ if (otherOp == null) ; else if (otherOp.constructor === ops.MapModifyOp) {
227
+ modifyOp.value.rebase(otherOp.value, priority);
228
+ } else {
229
+ this._changes.delete(otherOp.key);
230
+ }
231
+ }
232
+ );
233
+ }
234
+
235
+ /**
236
+ * @param {DeltaMap<Partial<Vals>>} other
237
+ */
238
+ apply (other) {
239
+ /** @type {DeltaMap<Vals>} */ (other).forEach(op => {
240
+ const c = this._changes.get(op.key);
241
+ if (ops.$modifyOp.check(op)) {
242
+ if (abstract.$delta.check(c?.value)) {
243
+ /** @type {DeltaMap<any>} */ (c.value).apply(op.value);
244
+ } else {
245
+ // then this is a simple modify
246
+ this._changes.set(op.key, /** @type {any} */ (op));
247
+ }
248
+ } else {
249
+ op.prevValue = c?.value;
250
+ this._changes.set(op.key, /** @type {any} */ (op));
251
+ }
252
+ }
253
+ );
254
+ }
255
+
256
+ /**
257
+ * @return {this}
258
+ */
259
+ clone () {
260
+ const d = /** @type {this} */ (new DeltaMap(this.$vals));
261
+ this.forEach(change => {
262
+ d._changes.set(change.key, /** @type {any} */ (change));
263
+ });
264
+ d.origin = this.origin;
265
+ d.isDiff = this.isDiff;
266
+ return d
267
+ }
268
+
269
+ done () {
270
+ return /** @type {DeltaMap<Vals>} */ (this)
271
+ }
272
+
273
+ /**
274
+ * @param {DeltaMap<Partial<Vals>>} other
275
+ */
276
+ [traits.EqualityTraitSymbol] (other) {
277
+ return _function.equalityDeep(this._changes, other._changes)
278
+ }
279
+ }
280
+
281
+ /**
282
+ * @template {s.Schema<{ [Key:string]: ops.DeltaMapOps }>} OPS
283
+ * @template {keyof s.Unwrap<OPS>} K
284
+ * @param {OPS} $ops
285
+ * @param {K} k
286
+ * @return {s.Schema<s.Unwrap<OPS>[K]>}
287
+ */
288
+ const valsKeySchema = ($ops, k) => schema.$$object.check($ops) ? ($ops.shape[k] || schema.$never) : ((schema.$$record.check($ops) && $ops.shape.keys.check(k)) ? ($ops.shape.values) : schema.$never);
289
+
290
+ /**
291
+ * @template {{ [key:string]: any }} Vals
292
+ * @typedef {{ [K in keyof Vals]: Vals[K] extends DeltaMap<infer DM> ? ops.MapInsertOp<Vals[K]>|ops.MapDeleteOp<Vals[K]>|ops.MapModifyOp<DeltaMap<DM>> : (ops.MapInsertOp<Exclude<Vals[K],undefined>>|ops.MapDeleteOp<Exclude<Vals[K],undefined>>) }} MapOpsFromValues
293
+ */
294
+
295
+ /**
296
+ * Create a new DeltaMap, optionally supply a schema.
297
+ *
298
+ * @template {s.Schema<{ [key:string]: any }> | { [key:string]: s.Schema<any> }} [$Vals=s.Schema<{ [key:string]: any }>]
299
+ * @param {$Vals} $vals
300
+ * @return {DeltaMap<$Vals extends s.Schema<infer $V> ? $V : (s._ObjectDefToSchema<$Vals> extends s.Schema<infer $V> ? $V : never)>}
301
+ */
302
+ const map = ($vals = /** @type {any} */ (schema.$record(schema.$string, schema.$any))) => /** @type {any} */ (new DeltaMap(/** @type {any} */ (schema.$$schema.check($vals) ? $vals : schema.$object($vals))));
303
+
304
+ /**
305
+ * @template {{ [key:string]: any }} Vals
306
+ * @param {s.Schema<Vals>} $vals
307
+ * @return {s.Schema<DeltaMap<Vals>>}
308
+ */
309
+ const $map = $vals => {
310
+ const $valsPartial = schema.$$object.check($vals) ? $vals.partial : $vals;
311
+ return /** @type {any} */ (schema.$instanceOf(DeltaMap, o => Array.from(o._changes.entries()).every(([k, op]) =>
312
+ !ops.$insertOp.check(op) || $valsPartial.check({ [k]: op.value })
313
+ )))
314
+ };
315
+ const $mapAny = schema.$instanceOf(DeltaMap);
316
+
317
+ exports.$map = $map;
318
+ exports.$mapAny = $mapAny;
319
+ exports.$mapJson = $mapJson;
320
+ exports.DeltaMap = DeltaMap;
321
+ exports.map = map;
15
322
  //# sourceMappingURL=map.cjs.map
package/dist/map.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"map.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
1
+ {"version":3,"file":"map.cjs","sources":["../delta/map.js"],"sourcesContent":["import * as gmap from '../map.js'\nimport * as fun from '../function.js'\nimport * as traits from '../traits.js'\nimport * as s from '../schema.js'\nimport * as ops from './ops.js'\nimport { AbstractDelta, mergeAttrs, $delta } from './abstract.js'\n\nexport const $mapJson = s.$record(s.$string, ops.$deltaMapChangeJson)\n\n/**\n * @template {{ [key:string]: ops.DeltaMapOps }} OPS\n * @typedef {{ [K in keyof OPS]: (Extract<OPS[K],ops.MapInsertOp<any>> extends ops.MapInsertOp<infer V,any> ? ops.MapInsertOp<V, K> : never) | (Extract<OPS[K],ops.MapDeleteOp<any>> extends ops.MapDeleteOp<infer V,any> ? ops.MapDeleteOp<V,K> : never) | (Extract<OPS[K],ops.MapModifyOp<any>> extends ops.MapModifyOp<infer V,any> ? (ops.MapModifyOp<V,K>&OPS[K]) : never) }[keyof OPS]} KeyedOps */\n\n/**\n * @template {{ [key: string]: any }} [Vals={[key:string]:any}]\n * @extends AbstractDelta\n */\nexport class DeltaMap extends AbstractDelta {\n /**\n * @param {s.Schema<Vals>} $vals\n */\n constructor ($vals) {\n super()\n this.$vals = s.$$object.check($vals) ? $vals.partial : $vals\n /**\n * @type {gmap.GlobalMap<any,ops.DeltaMapOps>}\n */\n this._changes = gmap.create()\n /**\n * @type {import('./abstract.js').Attribution?}\n */\n this.usedAttribution = null\n }\n\n isEmpty () {\n return this._changes.size === 0\n }\n\n /**\n *\n * Iterate through the changes. There are two approches to iterate through changes. The\n * following two examples achieve the same thing:\n *\n * @example\n * d.forEach(op => {\n * if (op instanceof dmap.MapInsertOp) {\n * console.log('content inserted:', op.key, op.value)\n * } else if (op instanceof dmap.MapDeleteOp) {\n * console.log('content deleted:', op.key, op.prevValue)\n * } else if (op instanceof delta.MapModifyOp) {\n * console.log('content was modified:', op.key, op.)\n * op.modify\n * }\n * })\n *\n * The second approach doesn't require instanceof checks.\n *\n * @example\n * d.forEach(null,\n * (insertOp) => insertOp.insert,\n * (retainOp) => insertOp.retain\n * (deleteOp) => insertOp.delete\n * (modifyOp) => insertOp.modify\n * )\n *\n * @template {Vals} ValsX\n * @param {null|((op:KeyedOps<MapOpsFromValues<ValsX>>)=>void)} changeHandler\n * @param {null|((insertOp:Extract<KeyedOps<MapOpsFromValues<ValsX>>,ops.MapInsertOp<any,any>>)=>void)} insertHandler\n * @param {null|((deleteOp:Extract<KeyedOps<MapOpsFromValues<ValsX>>,ops.MapDeleteOp<any,any>>)=>void)} deleteHandler\n * @param {null|((modifyOp:Extract<KeyedOps<MapOpsFromValues<ValsX>>,ops.MapModifyOp<any,any>>)=>void)} modifyHandler\n */\n forEach (changeHandler = null, insertHandler = null, deleteHandler = null, modifyHandler = null) {\n this._changes.forEach((change) => {\n changeHandler?.(/** @type {any} */ (change))\n switch (change.constructor) {\n case ops.MapDeleteOp:\n deleteHandler?.(/** @type {any} */ (change))\n break\n case ops.MapInsertOp:\n insertHandler?.(/** @type {any} */ (change))\n break\n case ops.MapModifyOp:\n modifyHandler?.(/** @type {any} */ (change))\n break\n }\n })\n }\n\n /**\n * @template {keyof Vals} K\n * @param {K} key\n * @return {MapOpsFromValues<Vals>[K] | undefined}\n */\n get (key) {\n return /** @type {(MapOpsFromValues<Vals>[K] & { key:K })|undefined} */ (this._changes.get(key))\n }\n\n /**\n * @param {keyof Vals} key\n */\n has (key) {\n return this._changes.has(key)\n }\n\n /**\n * @param {DeltaMap<any>} other\n * @return {boolean}\n */\n equals (other) {\n return this[traits.EqualityTraitSymbol](other)\n }\n\n get size () {\n return this._changes.size\n }\n\n /**\n * @return {s.Unwrap<$mapJson>}\n */\n toJSON () {\n /**\n * @type {s.Unwrap<$mapJson>}\n */\n const changes = {}\n this._changes.forEach((change, key) => {\n changes[/** @type {string} */ (key)] = change.toJSON()\n })\n return changes\n }\n\n /**\n * @template {keyof Vals} K\n * @param {K} key\n * @param {Extract<Vals[K], AbstractDelta>} delta\n */\n modify (key, delta) {\n this._changes.set(key, /** @type {any} */ (new ops.MapModifyOp(key, valsKeySchema(this.$vals, key).cast(delta))))\n return this\n }\n\n /**\n * @template {keyof Vals} K\n * @param {K} key\n * @param {Vals[K]} newVal\n * @param {Vals[K]|undefined} prevValue\n * @param {import('./abstract.js').Attribution?} attribution\n */\n set (key, newVal, prevValue = undefined, attribution = null) {\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n const $v = valsKeySchema(this.$vals, key)\n this._changes.set(key, /** @type {any} */ (new ops.MapInsertOp(key, $v.cast(newVal), prevValue && $v.cast(prevValue), mergedAttribution)))\n return this\n }\n\n /**\n * @param {Partial<Vals>} kv\n * @param {import('./abstract.js').Attribution?} attribution\n */\n setMany (kv, attribution = null) {\n for (const key in kv) {\n this.set(key, /** @type {Vals[any]} */ (kv[key]), undefined, attribution)\n }\n return this\n }\n\n /**\n * @template {keyof Vals} K\n * @param {K} key\n * @param {Vals[K]|undefined} prevValue\n * @param {import('./abstract.js').Attribution?} attribution\n */\n delete (key, prevValue = undefined, attribution = null) {\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n this._changes.set(key, /** @type {any} */ (new ops.MapDeleteOp(key, prevValue === undefined ? prevValue : valsKeySchema(this.$vals, key).cast(prevValue), mergedAttribution)))\n return this\n }\n\n /**\n * @param {import('./abstract.js').Attribution?} attribution\n */\n useAttribution (attribution) {\n this.usedAttribution = attribution\n return this\n }\n\n /**\n *\n * - insert vs delete ⇒ insert takes precedence\n * - insert vs modify ⇒ insert takes precedence\n * - insert vs insert ⇒ priority decides\n * - delete vs modify ⇒ delete takes precedence\n * - delete vs delete ⇒ current delete op is removed because item has already been deleted\n * - modify vs modify ⇒ rebase using priority\n *\n * @param {DeltaMap<Vals>} other\n * @param {boolean} priority\n */\n rebase (other, priority) {\n this.forEach(null,\n insertOp => {\n if (other.get(insertOp.key)?.constructor === ops.MapInsertOp && !priority) {\n this._changes.delete(insertOp.key)\n }\n },\n deleteOp => {\n const otherOp = other.get(deleteOp.key)\n if (otherOp?.constructor === ops.MapInsertOp) {\n this._changes.delete(otherOp.key)\n }\n },\n modifyOp => {\n const otherOp = other.get(modifyOp.key)\n if (otherOp == null) {\n // nop\n } else if (otherOp.constructor === ops.MapModifyOp) {\n modifyOp.value.rebase(otherOp.value, priority)\n } else {\n this._changes.delete(otherOp.key)\n }\n }\n )\n }\n\n /**\n * @param {DeltaMap<Partial<Vals>>} other\n */\n apply (other) {\n /** @type {DeltaMap<Vals>} */ (other).forEach(op => {\n const c = this._changes.get(op.key)\n if (ops.$modifyOp.check(op)) {\n if ($delta.check(c?.value)) {\n /** @type {DeltaMap<any>} */ (c.value).apply(op.value)\n } else {\n // then this is a simple modify\n this._changes.set(op.key, /** @type {any} */ (op))\n }\n } else {\n op.prevValue = c?.value\n this._changes.set(op.key, /** @type {any} */ (op))\n }\n }\n )\n }\n\n /**\n * @return {this}\n */\n clone () {\n const d = /** @type {this} */ (new DeltaMap(this.$vals))\n this.forEach(change => {\n d._changes.set(change.key, /** @type {any} */ (change))\n })\n d.origin = this.origin\n d.isDiff = this.isDiff\n return d\n }\n\n done () {\n return /** @type {DeltaMap<Vals>} */ (this)\n }\n\n /**\n * @param {DeltaMap<Partial<Vals>>} other\n */\n [traits.EqualityTraitSymbol] (other) {\n return fun.equalityDeep(this._changes, other._changes)\n }\n}\n\n/**\n * @template {s.Schema<{ [Key:string]: ops.DeltaMapOps }>} OPS\n * @template {keyof s.Unwrap<OPS>} K\n * @param {OPS} $ops\n * @param {K} k\n * @return {s.Schema<s.Unwrap<OPS>[K]>}\n */\nconst valsKeySchema = ($ops, k) => s.$$object.check($ops) ? ($ops.shape[k] || s.$never) : ((s.$$record.check($ops) && $ops.shape.keys.check(k)) ? ($ops.shape.values) : s.$never)\n\n/**\n * @template {{ [key:string]: any }} Vals\n * @typedef {{ [K in keyof Vals]: Vals[K] extends DeltaMap<infer DM> ? ops.MapInsertOp<Vals[K]>|ops.MapDeleteOp<Vals[K]>|ops.MapModifyOp<DeltaMap<DM>> : (ops.MapInsertOp<Exclude<Vals[K],undefined>>|ops.MapDeleteOp<Exclude<Vals[K],undefined>>) }} MapOpsFromValues\n */\n\n/**\n * Create a new DeltaMap, optionally supply a schema.\n *\n * @template {s.Schema<{ [key:string]: any }> | { [key:string]: s.Schema<any> }} [$Vals=s.Schema<{ [key:string]: any }>]\n * @param {$Vals} $vals\n * @return {DeltaMap<$Vals extends s.Schema<infer $V> ? $V : (s._ObjectDefToSchema<$Vals> extends s.Schema<infer $V> ? $V : never)>}\n */\nexport const map = ($vals = /** @type {any} */ (s.$record(s.$string, s.$any))) => /** @type {any} */ (new DeltaMap(/** @type {any} */ (s.$$schema.check($vals) ? $vals : s.$object($vals))))\n\n/**\n * @template {{ [key:string]: any }} Vals\n * @param {s.Schema<Vals>} $vals\n * @return {s.Schema<DeltaMap<Vals>>}\n */\nexport const $map = $vals => {\n const $valsPartial = s.$$object.check($vals) ? $vals.partial : $vals\n return /** @type {any} */ (s.$instanceOf(DeltaMap, o => Array.from(o._changes.entries()).every(([k, op]) =>\n !ops.$insertOp.check(op) || $valsPartial.check({ [k]: op.value })\n )))\n}\nexport const $mapAny = s.$instanceOf(DeltaMap)\n"],"names":["s.$record","s.$string","ops.$deltaMapChangeJson","AbstractDelta","s.$$object","gmap.create","ops.MapDeleteOp","ops.MapInsertOp","ops.MapModifyOp","traits.EqualityTraitSymbol","mergeAttrs","ops.$modifyOp","$delta","fun.equalityDeep","s.$never","s.$$record","s.$any","s.$$schema","s.$object","s.$instanceOf","ops.$insertOp"],"mappings":"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"}
package/dist/map.d.ts CHANGED
@@ -4,4 +4,5 @@ export function setIfUndefined<MAP extends Map<any, any>, CF extends MAP extends
4
4
  export function map<K, V, R>(m: Map<K, V>, f: (arg0: V, arg1: K) => R): Array<R>;
5
5
  export function any<K, V>(m: Map<K, V>, f: (arg0: V, arg1: K) => boolean): boolean;
6
6
  export function all<K, V>(m: Map<K, V>, f: (arg0: V, arg1: K) => boolean): boolean;
7
+ export type GlobalMap<K, V> = Map<K, V>;
7
8
  //# sourceMappingURL=map.d.ts.map
package/dist/map.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../map.js"],"names":[],"mappings":"AAcO,0BAJK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAIY;AAU9B,qBAJM,CAAC,EAAC,CAAC,KACL,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,GACP,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAMnB;AAkBM,+BAPsB,GAAG,SAAlB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAE,EACyC,EAAE,SAAzD,GAAG,SAAS,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC,GAAG,MAAW,CAAC,GAAG,OAAQ,OACzD,GAAG,OACH,GAAG,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,WAC1C,EAAE,GACD,UAAU,CAAC,EAAE,CAAC,CAQzB;AAaM,oBAPM,CAAC,EACD,CAAC,EACD,CAAC,KACH,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,KACR,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,KAAE,CAAC,GACd,KAAK,CAAC,CAAC,CAAC,CAQnB;AAcM,oBANM,CAAC,EACD,CAAC,KACH,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,KACR,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,KAAE,OAAO,GACpB,OAAO,CASlB;AAYM,oBANM,CAAC,EACD,CAAC,KACH,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,KACR,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,KAAE,OAAO,GACpB,OAAO,CASlB"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../map.js"],"names":[],"mappings":"AAoBO,0BAJK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAIY;AAU9B,qBAJM,CAAC,EAAC,CAAC,KACL,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,GACP,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAMnB;AAkBM,+BAPsB,GAAG,SAAlB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAE,EACyC,EAAE,SAAzD,GAAG,SAAS,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC,GAAG,MAAW,CAAC,GAAG,OAAQ,OACzD,GAAG,OACH,GAAG,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,WAC1C,EAAE,GACD,UAAU,CAAC,EAAE,CAAC,CAQzB;AAaM,oBAPM,CAAC,EACD,CAAC,EACD,CAAC,KACH,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,KACR,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,KAAE,CAAC,GACd,KAAK,CAAC,CAAC,CAAC,CAQnB;AAcM,oBANM,CAAC,EACD,CAAC,KACH,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,KACR,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,KAAE,OAAO,GACpB,OAAO,CASlB;AAYM,oBANM,CAAC,EACD,CAAC,KACH,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,KACR,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,KAAE,OAAO,GACpB,OAAO,CASlB;sBA9GY,CAAC,EACD,CAAC,IACD,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC"}
package/dist/map2.cjs ADDED
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var map = require('./map-24d263c0.cjs');
6
+
7
+
8
+
9
+ exports.all = map.all;
10
+ exports.any = map.any;
11
+ exports.copy = map.copy;
12
+ exports.create = map.create;
13
+ exports.map = map.map;
14
+ exports.setIfUndefined = map.setIfUndefined;
15
+ //# sourceMappingURL=map2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -54,8 +54,10 @@ const exp10 = exp => Math.pow(10, exp);
54
54
  const sign = Math.sign;
55
55
 
56
56
  /**
57
+ * Check whether n is negative, while considering the -0 edge case. While `-0 < 0` is false, this
58
+ * function returns true for -0,-1,,.. and returns false for 0,1,2,...
57
59
  * @param {number} n
58
- * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0
60
+ * @return {boolean} Wether n is negative. This function also distinguishes between -0 and +0
59
61
  */
60
62
  const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0;
61
63
 
@@ -98,4 +100,4 @@ exports.pow = pow;
98
100
  exports.round = round;
99
101
  exports.sign = sign;
100
102
  exports.sqrt = sqrt;
101
- //# sourceMappingURL=math-08e068f9.cjs.map
103
+ //# sourceMappingURL=math-96d5e8c4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-96d5e8c4.cjs","sources":["../math.js"],"sourcesContent":["/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * Check whether n is negative, while considering the -0 edge case. While `-0 < 0` is false, this\n * function returns true for -0,-1,,.. and returns false for 0,1,2,...\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also distinguishes between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,IAAI,CAAC,MAAK;AACnB,MAAC,IAAI,GAAG,IAAI,CAAC,KAAI;AACjB,MAAC,GAAG,GAAG,IAAI,CAAC,IAAG;AACf,MAAC,IAAI,GAAG,IAAI,CAAC,KAAI;AACjB,MAAC,KAAK,GAAG,IAAI,CAAC,MAAK;AACnB,MAAC,KAAK,GAAG,IAAI,CAAC,MAAK;AACnB,MAAC,IAAI,GAAG,IAAI,CAAC,KAAI;AACjB,MAAC,GAAG,GAAG,IAAI,CAAC,IAAG;AACf,MAAC,IAAI,GAAG,IAAI,CAAC,KAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAC;AAC1C;AACY,MAAC,KAAK,GAAG,MAAM,CAAC,MAAK;AACjC;AACY,MAAC,GAAG,GAAG,IAAI,CAAC,IAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAC;AAC7C;AACY,MAAC,IAAI,GAAG,IAAI,CAAC,KAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/math.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var math = require('./math-08e068f9.cjs');
5
+ var math = require('./math-96d5e8c4.cjs');
6
6
 
7
7
 
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../math.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,0CAA+B;AAC/B,yCAA6B;AAC7B,wCAA2B;AAC3B,oDAA6B;AAC7B,0CAA+B;AAC/B,0CAA+B;AAC/B,yCAA6B;AAC7B,wCAA2B;AAC3B,yCAA6B;AAQtB,uBAJI,MAAM,KACN,MAAM,GACL,MAAM,CAEgB;AAQ3B,uBAJI,MAAM,KACN,MAAM,GACL,MAAM,CAEwB;AAQnC,uBAJI,MAAM,KACN,MAAM,GACL,MAAM,CAEwB;AAE1C,iDAAiC;AAEjC,mDAA2B;AAOpB,2BAHI,MAAM,GACL,MAAM,CAE2B;AAE7C,yCAA6B;AAMtB,kCAHI,MAAM,GACL,OAAO,CAE2C"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../math.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,0CAA+B;AAC/B,yCAA6B;AAC7B,wCAA2B;AAC3B,oDAA6B;AAC7B,0CAA+B;AAC/B,0CAA+B;AAC/B,yCAA6B;AAC7B,wCAA2B;AAC3B,yCAA6B;AAQtB,uBAJI,MAAM,KACN,MAAM,GACL,MAAM,CAEgB;AAQ3B,uBAJI,MAAM,KACN,MAAM,GACL,MAAM,CAEwB;AAQnC,uBAJI,MAAM,KACN,MAAM,GACL,MAAM,CAEwB;AAE1C,iDAAiC;AAEjC,mDAA2B;AAOpB,2BAHI,MAAM,GACL,MAAM,CAE2B;AAE7C,yCAA6B;AAQtB,kCAHI,MAAM,GACL,OAAO,CAE2C"}
package/dist/metric.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var math = require('./math-08e068f9.cjs');
5
+ var math = require('./math-96d5e8c4.cjs');
6
6
 
7
7
  /**
8
8
  * Utility module to convert metric values.