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
package/dist/node.cjs ADDED
@@ -0,0 +1,206 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var traits = require('./traits.cjs');
6
+ var abstract = require('./abstract.cjs');
7
+ var array = require('./array.cjs');
8
+ var map = require('./map.cjs');
9
+ var schema = require('./schema.cjs');
10
+ var error = require('./error-0c1f634f.cjs');
11
+ require('./object-18980796.cjs');
12
+ require('./array-78849c95.cjs');
13
+ require('./set-5b47859e.cjs');
14
+ require('./environment-90227ead.cjs');
15
+ require('./map-24d263c0.cjs');
16
+ require('./string-fddc5f8b.cjs');
17
+ require('./conditions-f5c0c102.cjs');
18
+ require('./storage.cjs');
19
+ require('./function-e7d18feb.cjs');
20
+ require('./abstract-array.cjs');
21
+ require('./ops.cjs');
22
+ require('./list.cjs');
23
+ require('./math-96d5e8c4.cjs');
24
+
25
+ /**
26
+ * @template {string|undefined} [NodeName=string]
27
+ * @template {{[key:string]:any}} [Attrs={[key:string]:any}]
28
+ * @template [Children=any]
29
+ * @template {boolean} [WithText=true]
30
+ */
31
+ class DeltaNode extends abstract.AbstractDelta {
32
+ /**
33
+ * @param {NodeName} nodeName
34
+ * @param {dmap.DeltaMap<Attrs>} attributes
35
+ * @param {darray.DeltaArray<Children,WithText>} children
36
+ */
37
+ constructor (nodeName, attributes, children) {
38
+ super();
39
+ this.name = nodeName;
40
+ /**
41
+ * @type {dmap.DeltaMap<Attrs>}
42
+ */
43
+ this.attributes = /** @type {any} */ (attributes);
44
+ /**
45
+ * @type {darray.DeltaArray<Children,WithText>}
46
+ */
47
+ this.children = /** @type {any} */ (children);
48
+ }
49
+
50
+ isEmpty () {
51
+ return this.children.isEmpty() && this.attributes.isEmpty()
52
+ }
53
+
54
+ /**
55
+ * @return {this}
56
+ */
57
+ clone () {
58
+ return /** @type {this} */ (new DeltaNode(this.name, this.attributes.clone(), this.children.clone()))
59
+ }
60
+
61
+ /**
62
+ * @param {(WithText extends true ? string : never) | Array<Children>} insert
63
+ */
64
+ insert (insert) {
65
+ // @ts-ignore
66
+ this.children.insert(insert);
67
+ return this
68
+ }
69
+
70
+ /**
71
+ * @template {keyof Attrs} K
72
+ * @param {K} key
73
+ * @param {Attrs[K]} newVal
74
+ * @param {Attrs[K]|undefined} prevVal
75
+ * @param {import('./abstract.js').Attribution?} attribution
76
+ */
77
+ set (key, newVal, prevVal, attribution) {
78
+ this.attributes.set(key, newVal, prevVal, attribution);
79
+ return this
80
+ }
81
+
82
+ /**
83
+ * @param {import('./abstract.js').Attribution?} attribution
84
+ * @param {Partial<Attrs>} kv
85
+ */
86
+ setMany (kv, attribution = null) {
87
+ this.attributes.setMany(kv, attribution);
88
+ return this
89
+ }
90
+
91
+ /**
92
+ * @param {dabstract.AbstractDelta} other
93
+ */
94
+ apply (other) {
95
+ if ($nodeAny.check(other)) {
96
+ // @ts-ignore
97
+ this.attributes.apply(other.attributes);
98
+ // @ts-ignore
99
+ this.children.apply(other.children);
100
+ } else if (map.$mapAny.check(other)) {
101
+ // @ts-ignore
102
+ this.attributes.apply(other);
103
+ } else if (array.$arrayAny.check(other)) {
104
+ // @ts-ignore
105
+ this.children.apply(other);
106
+ } else {
107
+ error.unexpectedCase();
108
+ }
109
+ }
110
+
111
+ toJSON () {
112
+ return {
113
+ name: this.name,
114
+ attributes: this.attributes.toJSON(),
115
+ children: this.children.toJSON()
116
+ }
117
+ }
118
+
119
+ /**
120
+ * @return {DeltaNode<NodeName, Attrs, Children, WithText>}
121
+ */
122
+ done () {
123
+ /** @type {darray.DeltaArray<any>} */ (this.children).done()
124
+ ;/** @type {dmap.DeltaMap<any>} */ (this.attributes).done();
125
+ return /** @type {any} */ (this)
126
+ }
127
+
128
+ /**
129
+ * @param {DeltaNode<NodeName,Partial<Attrs>,Children,WithText>} other
130
+ */
131
+ [traits.EqualityTraitSymbol] (other) {
132
+ return this.name === other.name && this.children[traits.EqualityTraitSymbol](other.children) && this.attributes[traits.EqualityTraitSymbol](other.attributes)
133
+ }
134
+ }
135
+
136
+ /**
137
+ * @template {string|undefined} [NodeName=string]
138
+ * @template {{[key:string]:any} | dmap.DeltaMap<any>} [Attrs={[key:string]:any}]
139
+ * @template {Array<any> | string | darray.DeltaArray<any,any>} [Children=Array<any>]
140
+ * @param {NodeName} nodeName
141
+ * @param {Attrs} [attributes]
142
+ * @param {Children} [children]
143
+ * @return {DeltaNode<NodeName,Attrs extends dmap.DeltaMap<infer AttrsDef> ? AttrsDef : Attrs,Children extends Array<infer ChildTypes> ? ChildTypes : (Children extends darray.DeltaArray<infer ChildTypes,any> ? ChildTypes : never)>}
144
+ */
145
+ const node = (nodeName, attributes, children) =>
146
+ new DeltaNode(
147
+ nodeName,
148
+ attributes == null
149
+ ? map.map()
150
+ : (map.$mapAny.check(attributes)
151
+ ? /** @type {dmap.DeltaMap<any>} */ (attributes)
152
+ : map.map().setMany(/** @type {any} */ (attributes))
153
+ ),
154
+ children == null
155
+ ? array.array()
156
+ : (array.$arrayAny.check(children)
157
+ ? /** @type {darray.DeltaArray<any>} */ (children)
158
+ : array.array().insert(children)
159
+ )
160
+ );
161
+
162
+ /**
163
+ * @template {string} NodeName
164
+ * @template {{ [key:string]: any }} Attributes
165
+ * @template Children
166
+ * @template {boolean} WithText
167
+ * @typedef {DeltaNode<NodeName, Attributes, Children | RecursiveDeltaNode<NodeName,Attributes,Children,WithText>, WithText>} RecursiveDeltaNode
168
+ */
169
+
170
+ /**
171
+ * @template {string} NodeName
172
+ * @template {{ [key:string]: any }} Attributes
173
+ * @template Children
174
+ * @template {boolean} [Recursive=false]
175
+ * @template {boolean} [WithText=false]
176
+ * @param {s.Schema<NodeName>} $nodeName
177
+ * @param {s.Schema<Children>} $children
178
+ * @param {s.Schema<Attributes>} $attributes
179
+ * @param {object} [opts]
180
+ * @param {Recursive} [opts.recursive]
181
+ * @param {WithText} [opts.withText]
182
+ * @return {s.Schema<Recursive extends true ? RecursiveDeltaNode<NodeName, Partial<Attributes>, Children, WithText> : DeltaNode<NodeName, Partial<Attributes>, Children, withText>>}
183
+ */
184
+ const $node = ($nodeName, $attributes, $children, { recursive, withText } = {}) => {
185
+ /**
186
+ * @type {s.Schema<darray.DeltaArray<any,any>>}
187
+ */
188
+ let $dchildren = array.$array($children);
189
+ const $dattrs = map.$map($attributes);
190
+ const $nodeSchema = /** @type {s.Schema<DeltaNode<NodeName, any, any, any>>} */ (schema.$instanceOf(DeltaNode, o => $nodeName.check(o.name) && $dchildren.check(o.children) && $dattrs.check(o.attributes)));
191
+ if (recursive) {
192
+ $dchildren = array.$array(schema.$union($children, $nodeSchema), withText);
193
+ }
194
+ return /** @type {any} */ ($nodeSchema)
195
+ };
196
+
197
+ /**
198
+ * @type {s.Schema<DeltaNode<any,{[key:string]: any},any,any>>}
199
+ */
200
+ const $nodeAny = schema.$constructedBy(DeltaNode);
201
+
202
+ exports.$node = $node;
203
+ exports.$nodeAny = $nodeAny;
204
+ exports.DeltaNode = DeltaNode;
205
+ exports.node = node;
206
+ //# sourceMappingURL=node.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.cjs","sources":["../delta/node.js"],"sourcesContent":["import * as traits from '../traits.js'\nimport * as dabstract from './abstract.js'\nimport * as darray from './array.js'\nimport * as dmap from './map.js'\nimport * as s from '../schema.js'\nimport * as error from '../error.js'\n\n/**\n * @template {string|undefined} [NodeName=string]\n * @template {{[key:string]:any}} [Attrs={[key:string]:any}]\n * @template [Children=any]\n * @template {boolean} [WithText=true]\n */\nexport class DeltaNode extends dabstract.AbstractDelta {\n /**\n * @param {NodeName} nodeName\n * @param {dmap.DeltaMap<Attrs>} attributes\n * @param {darray.DeltaArray<Children,WithText>} children\n */\n constructor (nodeName, attributes, children) {\n super()\n this.name = nodeName\n /**\n * @type {dmap.DeltaMap<Attrs>}\n */\n this.attributes = /** @type {any} */ (attributes)\n /**\n * @type {darray.DeltaArray<Children,WithText>}\n */\n this.children = /** @type {any} */ (children)\n }\n\n isEmpty () {\n return this.children.isEmpty() && this.attributes.isEmpty()\n }\n\n /**\n * @return {this}\n */\n clone () {\n return /** @type {this} */ (new DeltaNode(this.name, this.attributes.clone(), this.children.clone()))\n }\n\n /**\n * @param {(WithText extends true ? string : never) | Array<Children>} insert\n */\n insert (insert) {\n // @ts-ignore\n this.children.insert(insert)\n return this\n }\n\n /**\n * @template {keyof Attrs} K\n * @param {K} key\n * @param {Attrs[K]} newVal\n * @param {Attrs[K]|undefined} prevVal\n * @param {import('./abstract.js').Attribution?} attribution\n */\n set (key, newVal, prevVal, attribution) {\n this.attributes.set(key, newVal, prevVal, attribution)\n return this\n }\n\n /**\n * @param {import('./abstract.js').Attribution?} attribution\n * @param {Partial<Attrs>} kv\n */\n setMany (kv, attribution = null) {\n this.attributes.setMany(kv, attribution)\n return this\n }\n\n /**\n * @param {dabstract.AbstractDelta} other\n */\n apply (other) {\n if ($nodeAny.check(other)) {\n // @ts-ignore\n this.attributes.apply(other.attributes)\n // @ts-ignore\n this.children.apply(other.children)\n } else if (dmap.$mapAny.check(other)) {\n // @ts-ignore\n this.attributes.apply(other)\n } else if (darray.$arrayAny.check(other)) {\n // @ts-ignore\n this.children.apply(other)\n } else {\n error.unexpectedCase()\n }\n }\n\n toJSON () {\n return {\n name: this.name,\n attributes: this.attributes.toJSON(),\n children: this.children.toJSON()\n }\n }\n\n /**\n * @return {DeltaNode<NodeName, Attrs, Children, WithText>}\n */\n done () {\n /** @type {darray.DeltaArray<any>} */ (this.children).done()\n ;/** @type {dmap.DeltaMap<any>} */ (this.attributes).done()\n return /** @type {any} */ (this)\n }\n\n /**\n * @param {DeltaNode<NodeName,Partial<Attrs>,Children,WithText>} other\n */\n [traits.EqualityTraitSymbol] (other) {\n return this.name === other.name && this.children[traits.EqualityTraitSymbol](other.children) && this.attributes[traits.EqualityTraitSymbol](other.attributes)\n }\n}\n\n/**\n * @template {string|undefined} [NodeName=string]\n * @template {{[key:string]:any} | dmap.DeltaMap<any>} [Attrs={[key:string]:any}]\n * @template {Array<any> | string | darray.DeltaArray<any,any>} [Children=Array<any>]\n * @param {NodeName} nodeName\n * @param {Attrs} [attributes]\n * @param {Children} [children]\n * @return {DeltaNode<NodeName,Attrs extends dmap.DeltaMap<infer AttrsDef> ? AttrsDef : Attrs,Children extends Array<infer ChildTypes> ? ChildTypes : (Children extends darray.DeltaArray<infer ChildTypes,any> ? ChildTypes : never)>}\n */\nexport const node = (nodeName, attributes, children) =>\n new DeltaNode(\n nodeName,\n attributes == null\n ? dmap.map()\n : (dmap.$mapAny.check(attributes)\n ? /** @type {dmap.DeltaMap<any>} */ (attributes)\n : dmap.map().setMany(/** @type {any} */ (attributes))\n ),\n children == null\n ? darray.array()\n : (darray.$arrayAny.check(children)\n ? /** @type {darray.DeltaArray<any>} */ (children)\n : darray.array().insert(children)\n )\n )\n\n/**\n * @template {string} NodeName\n * @template {{ [key:string]: any }} Attributes\n * @template Children\n * @template {boolean} WithText\n * @typedef {DeltaNode<NodeName, Attributes, Children | RecursiveDeltaNode<NodeName,Attributes,Children,WithText>, WithText>} RecursiveDeltaNode\n */\n\n/**\n * @template {string} NodeName\n * @template {{ [key:string]: any }} Attributes\n * @template Children\n * @template {boolean} [Recursive=false]\n * @template {boolean} [WithText=false]\n * @param {s.Schema<NodeName>} $nodeName\n * @param {s.Schema<Children>} $children\n * @param {s.Schema<Attributes>} $attributes\n * @param {object} [opts]\n * @param {Recursive} [opts.recursive]\n * @param {WithText} [opts.withText]\n * @return {s.Schema<Recursive extends true ? RecursiveDeltaNode<NodeName, Partial<Attributes>, Children, WithText> : DeltaNode<NodeName, Partial<Attributes>, Children, withText>>}\n */\nexport const $node = ($nodeName, $attributes, $children, { recursive, withText } = {}) => {\n /**\n * @type {s.Schema<darray.DeltaArray<any,any>>}\n */\n let $dchildren = darray.$array($children)\n const $dattrs = dmap.$map($attributes)\n const $nodeSchema = /** @type {s.Schema<DeltaNode<NodeName, any, any, any>>} */ (s.$instanceOf(DeltaNode, o => $nodeName.check(o.name) && $dchildren.check(o.children) && $dattrs.check(o.attributes)))\n if (recursive) {\n $dchildren = darray.$array(s.$union($children, $nodeSchema), withText)\n }\n return /** @type {any} */ ($nodeSchema)\n}\n\n/**\n * @type {s.Schema<DeltaNode<any,{[key:string]: any},any,any>>}\n */\nexport const $nodeAny = s.$constructedBy(DeltaNode)\n"],"names":["dabstract.AbstractDelta","dmap.$mapAny","darray.$arrayAny","error.unexpectedCase","traits.EqualityTraitSymbol","dmap.map","darray.array","darray.$array","dmap.$map","s.$instanceOf","s.$union","s.$constructedBy"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,SAAS,SAASA,sBAAuB,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC/C,IAAI,KAAK,GAAE;AACX,IAAI,IAAI,CAAC,IAAI,GAAG,SAAQ;AACxB;AACA;AACA;AACA,IAAI,IAAI,CAAC,UAAU,uBAAuB,UAAU,EAAC;AACrD;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,uBAAuB,QAAQ,EAAC;AACjD,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC/D,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,4BAA4B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACzG,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;AAClB;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC;AAChC,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;AAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAC;AAC1D,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,EAAE;AACnC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,EAAC;AAC5C,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAChB,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC/B;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAC;AAC7C;AACA,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAC;AACzC,KAAK,MAAM,IAAIC,WAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC1C;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAC;AAClC,KAAK,MAAM,IAAIC,eAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC9C;AACA,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAC;AAChC,KAAK,MAAM;AACX,MAAMC,oBAAoB,GAAE;AAC5B,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI;AACrB,MAAM,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC1C,MAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACtC,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,GAAG;AACV,0CAA0C,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;AAChE,KAAK,kCAAkC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAE;AAC/D,IAAI,2BAA2B,IAAI,CAAC;AACpC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,CAACC,0BAA0B,EAAE,CAAC,KAAK,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAACA,0BAA0B,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAACA,0BAA0B,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;AACjK,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ;AACnD,EAAE,IAAI,SAAS;AACf,IAAI,QAAQ;AACZ,IAAI,UAAU,IAAI,IAAI;AACtB,QAAQC,OAAQ,EAAE;AAClB,SAASJ,WAAY,CAAC,KAAK,CAAC,UAAU,CAAC;AACvC,+CAA+C,UAAU;AACzD,YAAYI,OAAQ,EAAE,CAAC,OAAO,qBAAqB,UAAU,EAAE;AAC/D,SAAS;AACT,IAAI,QAAQ,IAAI,IAAI;AACpB,QAAQC,WAAY,EAAE;AACtB,SAASJ,eAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;AACzC,mDAAmD,QAAQ;AAC3D,YAAYI,WAAY,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3C,SAAS;AACT,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK;AAC1F;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAGC,YAAa,CAAC,SAAS,EAAC;AAC3C,EAAE,MAAM,OAAO,GAAGC,QAAS,CAAC,WAAW,EAAC;AACxC,EAAE,MAAM,WAAW,gEAAgEC,kBAAa,CAAC,SAAS,EAAE,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAC;AACzM,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,UAAU,GAAGF,YAAa,CAACG,aAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAC;AAC1E,GAAG;AACH,EAAE,2BAA2B,WAAW,CAAC;AACzC,EAAC;AACD;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAGC,qBAAgB,CAAC,SAAS;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var math = require('./math-08e068f9.cjs');
3
+ var math = require('./math-96d5e8c4.cjs');
4
4
  var binary = require('./binary-ac8e39e2.cjs');
5
5
 
6
6
  /**
@@ -61,4 +61,4 @@ exports.isInteger = isInteger;
61
61
  exports.isNaN = isNaN;
62
62
  exports.number = number;
63
63
  exports.parseInt = parseInt;
64
- //# sourceMappingURL=number-466d8922.cjs.map
64
+ //# sourceMappingURL=number-1fb57bba.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-466d8922.cjs","sources":["../number.js"],"sourcesContent":["/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\nexport const HIGHEST_INT32 = binary.BITS31\nexport const HIGHEST_UINT32 = binary.BITS32\n\n/* c8 ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n\n/**\n * Count the number of \"1\" bits in an unsigned 32bit number.\n *\n * Super fun bitcount algorithm by Brian Kernighan.\n *\n * @param {number} n\n */\nexport const countBits = n => {\n n &= binary.BITS32\n let count = 0\n while (n) {\n n &= (n - 1)\n count++\n }\n return count\n}\n"],"names":["binary.BITS31","binary.BITS32","math.floor"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AAIA;AACY,MAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAgB;AAC3C,MAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAgB;AACvD;AACY,MAAC,YAAY,GAAG,CAAC,IAAI,GAAE;AACvB,MAAC,aAAa,GAAGA,cAAa;AAC9B,MAAC,cAAc,GAAGC,cAAa;AAC3C;AACA;AACY,MAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAIC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,EAAC;AAC7G,MAAC,KAAK,GAAG,MAAM,CAAC,MAAK;AACrB,MAAC,QAAQ,GAAG,MAAM,CAAC,SAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,SAAS,GAAG,CAAC,IAAI;AAC9B,EAAE,CAAC,IAAID,cAAa;AACpB,EAAE,IAAI,KAAK,GAAG,EAAC;AACf,EAAE,OAAO,CAAC,EAAE;AACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC;AAChB,IAAI,KAAK,GAAE;AACX,GAAG;AACH,EAAE,OAAO,KAAK;AACd;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"number-1fb57bba.cjs","sources":["../number.js"],"sourcesContent":["/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\nexport const HIGHEST_INT32 = binary.BITS31\nexport const HIGHEST_UINT32 = binary.BITS32\n\n/* c8 ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n\n/**\n * Count the number of \"1\" bits in an unsigned 32bit number.\n *\n * Super fun bitcount algorithm by Brian Kernighan.\n *\n * @param {number} n\n */\nexport const countBits = n => {\n n &= binary.BITS32\n let count = 0\n while (n) {\n n &= (n - 1)\n count++\n }\n return count\n}\n"],"names":["binary.BITS31","binary.BITS32","math.floor"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AAIA;AACY,MAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAgB;AAC3C,MAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAgB;AACvD;AACY,MAAC,YAAY,GAAG,CAAC,IAAI,GAAE;AACvB,MAAC,aAAa,GAAGA,cAAa;AAC9B,MAAC,cAAc,GAAGC,cAAa;AAC3C;AACA;AACY,MAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAIC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,EAAC;AAC7G,MAAC,KAAK,GAAG,MAAM,CAAC,MAAK;AACrB,MAAC,QAAQ,GAAG,MAAM,CAAC,SAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,SAAS,GAAG,CAAC,IAAI;AAC9B,EAAE,CAAC,IAAID,cAAa;AACpB,EAAE,IAAI,KAAK,GAAG,EAAC;AACf,EAAE,OAAO,CAAC,EAAE;AACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC;AAChB,IAAI,KAAK,GAAE;AACX,GAAG;AACH,EAAE,OAAO,KAAK;AACd;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/number.cjs CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./math-08e068f9.cjs');
5
+ require('./math-96d5e8c4.cjs');
6
6
  require('./binary-ac8e39e2.cjs');
7
- var number = require('./number-466d8922.cjs');
7
+ var number = require('./number-1fb57bba.cjs');
8
8
 
9
9
 
10
10
 
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var traits = require('./traits.cjs');
4
+
3
5
  /**
4
6
  * Utility functions for working with EcmaScript objects.
5
7
  *
@@ -11,6 +13,12 @@
11
13
  */
12
14
  const create = () => Object.create(null);
13
15
 
16
+ /**
17
+ * @param {any} o
18
+ * @return {o is { [k:string]:any }}
19
+ */
20
+ const isObject = o => typeof o === 'object';
21
+
14
22
  /**
15
23
  * Object.assign
16
24
  */
@@ -123,7 +131,7 @@ const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)
123
131
  * @param {Object<string,any>} b
124
132
  * @return {boolean}
125
133
  */
126
- const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val));
134
+ const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && traits.equals(b[key], val)));
127
135
 
128
136
  /**
129
137
  * Make an object immutable. This hurts performance and is usually not needed if you perform good
@@ -165,6 +173,7 @@ const setIfUndefined = (o, key, createT) => hasProperty(o, key) ? o[key] : (o[ke
165
173
  var object = /*#__PURE__*/Object.freeze({
166
174
  __proto__: null,
167
175
  create: create,
176
+ isObject: isObject,
168
177
  assign: assign,
169
178
  keys: keys,
170
179
  values: values,
@@ -191,6 +200,7 @@ exports.forEach = forEach;
191
200
  exports.freeze = freeze;
192
201
  exports.hasProperty = hasProperty;
193
202
  exports.isEmpty = isEmpty;
203
+ exports.isObject = isObject;
194
204
  exports.keys = keys;
195
205
  exports.length = length;
196
206
  exports.map = map;
@@ -199,4 +209,4 @@ exports.setIfUndefined = setIfUndefined;
199
209
  exports.size = size;
200
210
  exports.some = some;
201
211
  exports.values = values;
202
- //# sourceMappingURL=object-491858d1.cjs.map
212
+ //# sourceMappingURL=object-18980796.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-18980796.cjs","sources":["../object.js"],"sourcesContent":["import * as traits from './traits.js'\n\n/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object<string,any>} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * @param {any} o\n * @return {o is { [k:string]:any }}\n */\nexport const isObject = o => typeof o === 'object'\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object<string,any>} obj\n */\nexport const keys = Object.keys\n\n/**\n * @template V\n * @param {{[key:string]: V}} obj\n * @return {Array<V>}\n */\nexport const values = Object.values\n\n/**\n * @template V\n * @param {{[k:string]:V}} obj\n * @param {function(V,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @todo implement mapToArray & map\n *\n * @template R\n * @param {Object<string,any>} obj\n * @param {function(any,string):R} f\n * @return {Array<R>}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @deprecated use object.size instead\n * @param {Object<string,any>} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object<string,any>} obj\n * @return {number}\n */\nexport const size = obj => keys(obj).length\n\n/**\n * @template {{ [key:string|number|symbol]: any }} T\n * @param {T} obj\n * @param {(v:T[keyof T],k:keyof T)=>boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object|null|undefined} obj\n */\nexport const isEmpty = obj => {\n // eslint-disable-next-line no-unreachable-loop\n for (const _k in obj) {\n return false\n }\n return true\n}\n\n/**\n * @template {{ [key:string|number|symbol]: any }} T\n * @param {T} obj\n * @param {(v:T[keyof T],k:keyof T)=>boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|number|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object<string,any>} a\n * @param {Object<string,any>} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && traits.equals(b[key], val)))\n\n/**\n * Make an object immutable. This hurts performance and is usually not needed if you perform good\n * coding practices.\n */\nexport const freeze = Object.freeze\n\n/**\n * Make an object and all its children immutable.\n * This *really* hurts performance and is usually not needed if you perform good coding practices.\n *\n * @template {any} T\n * @param {T} o\n * @return {Readonly<T>}\n */\nexport const deepFreeze = (o) => {\n for (const key in o) {\n const c = o[key]\n if (typeof c === 'object' || typeof c === 'function') {\n deepFreeze(o[key])\n }\n }\n return freeze(o)\n}\n\n/**\n * Get object property. Create T if property is undefined and set T on object.\n *\n * @function\n * @template {object} KV\n * @template {keyof KV} [K=keyof KV]\n * @param {KV} o\n * @param {K} key\n * @param {() => KV[K]} createT\n * @return {KV[K]}\n */\nexport const setIfUndefined = (o, key, createT) => hasProperty(o, key) ? o[key] : (o[key] = createT())\n"],"names":["traits.equals"],"mappings":"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"}
package/dist/object.cjs CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var object = require('./object-491858d1.cjs');
5
+ require('./traits.cjs');
6
+ var object = require('./object-18980796.cjs');
6
7
 
7
8
 
8
9
 
@@ -15,6 +16,7 @@ exports.forEach = object.forEach;
15
16
  exports.freeze = object.freeze;
16
17
  exports.hasProperty = object.hasProperty;
17
18
  exports.isEmpty = object.isEmpty;
19
+ exports.isObject = object.isObject;
18
20
  exports.keys = object.keys;
19
21
  exports.length = object.length;
20
22
  exports.map = object.map;
@@ -1 +1 @@
1
- {"version":3,"file":"object.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"object.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/object.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  export function create(): {
2
2
  [x: string]: any;
3
3
  };
4
+ export function isObject(o: any): o is {
5
+ [k: string]: any;
6
+ };
4
7
  /**
5
8
  * Object.assign
6
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../object.js"],"names":[],"mappings":"AASO;;EAAwC;AAE/C;;GAEG;AACH;;;;;EAAmC;AAEnC;;GAEG;AACH;;;EAA+B;AAE/B;;;;GAIG;AACH;;;;;EAAmC;AAO5B,kCAHI;IAAC,CAAC,CAAC,EAAC,MAAM,GAAE,GAAC,CAAA;CAAC,KACd,CAAS,IAAC,EAAD,GAAC,EAAC,IAAM,EAAN,MAAM,KAAE,GAAG,QAMhC;AAUM,oBALM,CAAC;;MAEH,CAAS,IAAG,EAAH,GAAG,EAAC,IAAM,EAAN,MAAM,KAAE,CAAC,GACrB,KAAK,CAAC,CAAC,CAAC,CAQnB;AAOM;;IAFK,MAAM,CAE2B;AAMtC;;IAFK,MAAM,CAEyB;AAQpC,qBAL4C,CAAC,SAAvC;IAAG,CAAC,GAAG,EAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAG,GAAG,CAAA;CAAG,OACvC,CAAC,KACD,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,KAAG,OAAO,GAChC,OAAO,CASlB;AAKM,6BAFI,MAAM,GAAC,IAAI,GAAC,SAAS,WAQ/B;AAQM,sBAL4C,CAAC,SAAvC;IAAG,CAAC,GAAG,EAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAG,GAAG,CAAA;CAAG,OACvC,CAAC,KACD,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,KAAG,OAAO,GAChC,OAAO,CASlB;AASM,iCAJI,GAAG,OACH,MAAM,GAAC,MAAM,GAAC,MAAM,GACnB,OAAO,CAEoE;AAOhF;;;;IAFK,OAAO,CAEwI;AAE3J;;;GAGG;AACH;;;;;;EAAmC;AAU5B,2BAJY,CAAC,qBACT,CAAC,GACA,QAAQ,CAAC,CAAC,CAAC,CAUtB;AAaM,+BAPe,EAAE,SAAX,MAAQ,EACI,CAAC,SAAb,MAAO,EAAG,gBACZ,EAAE,OACF,CAAC,WACD,MAAM,EAAE,CAAC,CAAC,CAAC,GACV,EAAE,CAAC,CAAC,CAAC,CAEqF"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../object.js"],"names":[],"mappings":"AAWO;;EAAwC;AAMxC,4BAHI,GAAG,GACF,CAAC,IAAI;IAAE,CAAC,CAAC,EAAC,MAAM,GAAE,GAAG,CAAA;CAAE,CAEe;AAElD;;GAEG;AACH;;;;;EAAmC;AAEnC;;GAEG;AACH;;;EAA+B;AAE/B;;;;GAIG;AACH;;;;;EAAmC;AAO5B,kCAHI;IAAC,CAAC,CAAC,EAAC,MAAM,GAAE,GAAC,CAAA;CAAC,KACd,CAAS,IAAC,EAAD,GAAC,EAAC,IAAM,EAAN,MAAM,KAAE,GAAG,QAMhC;AAUM,oBALM,CAAC;;MAEH,CAAS,IAAG,EAAH,GAAG,EAAC,IAAM,EAAN,MAAM,KAAE,CAAC,GACrB,KAAK,CAAC,CAAC,CAAC,CAQnB;AAOM;;IAFK,MAAM,CAE2B;AAMtC;;IAFK,MAAM,CAEyB;AAQpC,qBAL4C,CAAC,SAAvC;IAAG,CAAC,GAAG,EAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAG,GAAG,CAAA;CAAG,OACvC,CAAC,KACD,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,KAAG,OAAO,GAChC,OAAO,CASlB;AAKM,6BAFI,MAAM,GAAC,IAAI,GAAC,SAAS,WAQ/B;AAQM,sBAL4C,CAAC,SAAvC;IAAG,CAAC,GAAG,EAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAG,GAAG,CAAA;CAAG,OACvC,CAAC,KACD,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,KAAG,OAAO,GAChC,OAAO,CASlB;AASM,iCAJI,GAAG,OACH,MAAM,GAAC,MAAM,GAAC,MAAM,GACnB,OAAO,CAEoE;AAOhF;;;;IAFK,OAAO,CAEoJ;AAEvK;;;GAGG;AACH;;;;;;EAAmC;AAU5B,2BAJY,CAAC,qBACT,CAAC,GACA,QAAQ,CAAC,CAAC,CAAC,CAUtB;AAaM,+BAPe,EAAE,SAAX,MAAQ,EACI,CAAC,SAAb,MAAO,EAAG,gBACZ,EAAE,OACF,CAAC,WACD,MAAM,EAAE,CAAC,CAAC,CAAC,GACV,EAAE,CAAC,CAAC,CAAC,CAEqF"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var map = require('./map-0dabcc55.cjs');
5
+ var map = require('./map-24d263c0.cjs');
6
6
  var set = require('./set-5b47859e.cjs');
7
7
  var array = require('./array-78849c95.cjs');
8
8