lib0 0.2.115-3 → 0.2.115-5

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 (235) hide show
  1. package/coverage/tmp/coverage-42121-1764767245409-0.json +1 -0
  2. package/coverage/tmp/{coverage-32703-1763495370274-0.json → coverage-42122-1764767192180-0.json} +1 -1
  3. package/delta/binding.d.ts +11 -9
  4. package/delta/binding.d.ts.map +1 -1
  5. package/delta/binding.js +5 -2
  6. package/delta/binding.test.d.ts.map +1 -1
  7. package/delta/delta-pitch.test.d.ts +5 -0
  8. package/delta/delta-pitch.test.d.ts.map +1 -0
  9. package/delta/{d2.d.ts → delta.d.ts} +117 -34
  10. package/delta/delta.d.ts.map +1 -0
  11. package/delta/{d2.js → delta.js} +247 -55
  12. package/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
  13. package/delta/delta.test.d.ts.map +1 -0
  14. package/delta/t3.test.d.ts +1 -1
  15. package/delta/t3.test.d.ts.map +1 -1
  16. package/dist/array.cjs +17 -60
  17. package/dist/array.cjs.map +1 -1
  18. package/dist/binding.cjs +114 -28
  19. package/dist/binding.cjs.map +1 -1
  20. package/dist/{broadcastchannel-d0c108a2.cjs → broadcastchannel-94897809.cjs} +2 -2
  21. package/dist/{broadcastchannel-d0c108a2.cjs.map → broadcastchannel-94897809.cjs.map} +1 -1
  22. package/dist/broadcastchannel.cjs +6 -6
  23. package/dist/{buffer-7f6fa8fa.cjs → buffer-8d110bf4.cjs} +2 -2
  24. package/dist/{buffer-7f6fa8fa.cjs.map → buffer-8d110bf4.cjs.map} +1 -1
  25. package/dist/buffer.cjs +5 -5
  26. package/dist/cache.cjs +3 -3
  27. package/dist/component.cjs +12 -8
  28. package/dist/component.cjs.map +1 -1
  29. package/dist/delta/binding.d.ts +11 -9
  30. package/dist/delta/binding.d.ts.map +1 -1
  31. package/dist/delta/binding.test.d.ts.map +1 -1
  32. package/dist/delta/delta-pitch.test.d.ts +5 -0
  33. package/dist/delta/delta-pitch.test.d.ts.map +1 -0
  34. package/dist/delta/{d2.d.ts → delta.d.ts} +117 -34
  35. package/dist/delta/delta.d.ts.map +1 -0
  36. package/dist/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
  37. package/dist/delta/delta.test.d.ts.map +1 -0
  38. package/dist/delta/t3.test.d.ts +1 -1
  39. package/dist/delta/t3.test.d.ts.map +1 -1
  40. package/dist/{d2.cjs → delta.cjs} +256 -60
  41. package/dist/delta.cjs.map +1 -0
  42. package/dist/{diff-1832cb43.cjs → diff-dc7bdc65.cjs} +2 -2
  43. package/dist/{diff-1832cb43.cjs.map → diff-dc7bdc65.cjs.map} +1 -1
  44. package/dist/diff.cjs +4 -4
  45. package/dist/{dom-f5047a64.cjs → dom-cad267af.cjs} +1 -1
  46. package/dist/{dom-f5047a64.cjs.map → dom-cad267af.cjs.map} +1 -1
  47. package/dist/dom.cjs +12 -5
  48. package/dist/dom.cjs.map +1 -1
  49. package/dist/{environment-90227ead.cjs → environment-98bcf64f.cjs} +2 -2
  50. package/dist/{environment-90227ead.cjs.map → environment-98bcf64f.cjs.map} +1 -1
  51. package/dist/environment.cjs +4 -4
  52. package/dist/equality.cjs +34 -0
  53. package/dist/equality.cjs.map +1 -0
  54. package/dist/fingerprint.cjs +44 -0
  55. package/dist/fingerprint.cjs.map +1 -0
  56. package/dist/{function-e7d18feb.cjs → function-b4e49016.cjs} +6 -6
  57. package/dist/function-b4e49016.cjs.map +1 -0
  58. package/dist/function.cjs +3 -3
  59. package/dist/index.cjs +9 -9
  60. package/dist/indexeddbV2.cjs +2 -2
  61. package/dist/jwt.cjs +5 -5
  62. package/dist/list.cjs +18 -5
  63. package/dist/list.cjs.map +1 -1
  64. package/dist/list.d.ts +9 -2
  65. package/dist/list.d.ts.map +1 -1
  66. package/dist/list.test.d.ts.map +1 -1
  67. package/dist/logging.cjs +11 -5
  68. package/dist/logging.cjs.map +1 -1
  69. package/dist/logging.common.cjs +4 -4
  70. package/dist/logging.node.cjs +4 -4
  71. package/dist/map.cjs +7 -314
  72. package/dist/map.cjs.map +1 -1
  73. package/dist/{object-18980796.cjs → object-dec41ef9.cjs} +3 -3
  74. package/dist/object-dec41ef9.cjs.map +1 -0
  75. package/dist/object.cjs +2 -2
  76. package/dist/object.d.ts.map +1 -1
  77. package/dist/performance.node.cjs +3 -3
  78. package/dist/pledge.cjs +2 -2
  79. package/dist/{prng-99204216.cjs → prng-aa81e812.cjs} +2 -2
  80. package/dist/{prng-99204216.cjs.map → prng-aa81e812.cjs.map} +1 -1
  81. package/dist/prng.cjs +6 -6
  82. package/dist/rabin-gf2-polynomial.cjs +5 -5
  83. package/dist/rabin-uncached.cjs +5 -5
  84. package/dist/rabin.cjs +5 -5
  85. package/dist/schema.cjs +202 -22
  86. package/dist/schema.cjs.map +1 -1
  87. package/dist/schema.d.ts +86 -29
  88. package/dist/schema.d.ts.map +1 -1
  89. package/dist/schema.test.d.ts +4 -0
  90. package/dist/schema.test.d.ts.map +1 -1
  91. package/dist/testing.cjs +9 -9
  92. package/dist/testing.cjs.map +1 -1
  93. package/dist/{traits.d.ts → trait/equality.d.ts} +1 -1
  94. package/dist/trait/equality.d.ts.map +1 -0
  95. package/dist/trait/fingerprint.d.ts +13 -0
  96. package/dist/trait/fingerprint.d.ts.map +1 -0
  97. package/dist/trait/traits.d.ts +3 -0
  98. package/dist/trait/traits.d.ts.map +1 -0
  99. package/dist/trait/traits.test.d.ts +5 -0
  100. package/dist/trait/traits.test.d.ts.map +1 -0
  101. package/dist/traits.cjs +23 -26
  102. package/dist/traits.cjs.map +1 -1
  103. package/dist/url.cjs +2 -2
  104. package/function.js +4 -4
  105. package/list.d.ts +9 -2
  106. package/list.d.ts.map +1 -1
  107. package/list.js +17 -3
  108. package/list.test.d.ts.map +1 -1
  109. package/object.d.ts.map +1 -1
  110. package/object.js +2 -2
  111. package/package.json +8 -10
  112. package/schema.d.ts +86 -29
  113. package/schema.d.ts.map +1 -1
  114. package/schema.js +191 -20
  115. package/schema.test.d.ts +4 -0
  116. package/schema.test.d.ts.map +1 -1
  117. package/test.html +2 -4
  118. package/test.js +7 -13
  119. package/testing.js +3 -3
  120. package/{traits.d.ts → trait/equality.d.ts} +1 -1
  121. package/trait/equality.d.ts.map +1 -0
  122. package/trait/fingerprint.d.ts +13 -0
  123. package/trait/fingerprint.d.ts.map +1 -0
  124. package/trait/fingerprint.js +21 -0
  125. package/trait/traits.d.ts +3 -0
  126. package/trait/traits.d.ts.map +1 -0
  127. package/trait/traits.js +2 -0
  128. package/trait/traits.test.d.ts +5 -0
  129. package/{traits.test.d.ts.map → trait/traits.test.d.ts.map} +1 -1
  130. package/delta/abstract-array.d.ts +0 -166
  131. package/delta/abstract-array.d.ts.map +0 -1
  132. package/delta/abstract-array.js +0 -421
  133. package/delta/abstract.d.ts +0 -69
  134. package/delta/abstract.d.ts.map +0 -1
  135. package/delta/abstract.js +0 -102
  136. package/delta/array.d.ts +0 -23
  137. package/delta/array.d.ts.map +0 -1
  138. package/delta/array.js +0 -45
  139. package/delta/array.test.d.ts +0 -2
  140. package/delta/array.test.d.ts.map +0 -1
  141. package/delta/d2.d.ts.map +0 -1
  142. package/delta/d2.test.d.ts.map +0 -1
  143. package/delta/index.d.ts +0 -14
  144. package/delta/index.d.ts.map +0 -1
  145. package/delta/index.js +0 -79
  146. package/delta/map.d.ts +0 -226
  147. package/delta/map.d.ts.map +0 -1
  148. package/delta/map.js +0 -304
  149. package/delta/node.d.ts +0 -117
  150. package/delta/node.d.ts.map +0 -1
  151. package/delta/node.js +0 -183
  152. package/delta/node.test.d.ts +0 -4
  153. package/delta/node.test.d.ts.map +0 -1
  154. package/delta/ops.d.ts +0 -464
  155. package/delta/ops.d.ts.map +0 -1
  156. package/delta/ops.js +0 -544
  157. package/delta/t2.d.ts +0 -184
  158. package/delta/t2.d.ts.map +0 -1
  159. package/delta/t2.js +0 -890
  160. package/delta/text.d.ts +0 -43
  161. package/delta/text.d.ts.map +0 -1
  162. package/delta/text.js +0 -54
  163. package/delta/text.test.d.ts +0 -6
  164. package/delta/text.test.d.ts.map +0 -1
  165. package/delta/transformer.d.ts +0 -164
  166. package/delta/transformer.d.ts.map +0 -1
  167. package/delta/transformer.js +0 -888
  168. package/delta/transformer.test.d.ts +0 -13
  169. package/delta/transformer.test.d.ts.map +0 -1
  170. package/delta/value.d.ts +0 -84
  171. package/delta/value.d.ts.map +0 -1
  172. package/delta/value.js +0 -168
  173. package/dist/abstract-array.cjs +0 -433
  174. package/dist/abstract-array.cjs.map +0 -1
  175. package/dist/abstract.cjs +0 -122
  176. package/dist/abstract.cjs.map +0 -1
  177. package/dist/array2.cjs +0 -26
  178. package/dist/array2.cjs.map +0 -1
  179. package/dist/d2.cjs.map +0 -1
  180. package/dist/delta/abstract-array.d.ts +0 -166
  181. package/dist/delta/abstract-array.d.ts.map +0 -1
  182. package/dist/delta/abstract.d.ts +0 -69
  183. package/dist/delta/abstract.d.ts.map +0 -1
  184. package/dist/delta/array.d.ts +0 -23
  185. package/dist/delta/array.d.ts.map +0 -1
  186. package/dist/delta/array.test.d.ts +0 -2
  187. package/dist/delta/array.test.d.ts.map +0 -1
  188. package/dist/delta/d2.d.ts.map +0 -1
  189. package/dist/delta/d2.test.d.ts.map +0 -1
  190. package/dist/delta/index.d.ts +0 -14
  191. package/dist/delta/index.d.ts.map +0 -1
  192. package/dist/delta/map.d.ts +0 -226
  193. package/dist/delta/map.d.ts.map +0 -1
  194. package/dist/delta/node.d.ts +0 -117
  195. package/dist/delta/node.d.ts.map +0 -1
  196. package/dist/delta/node.test.d.ts +0 -4
  197. package/dist/delta/node.test.d.ts.map +0 -1
  198. package/dist/delta/ops.d.ts +0 -464
  199. package/dist/delta/ops.d.ts.map +0 -1
  200. package/dist/delta/t2.d.ts +0 -184
  201. package/dist/delta/t2.d.ts.map +0 -1
  202. package/dist/delta/text.d.ts +0 -43
  203. package/dist/delta/text.d.ts.map +0 -1
  204. package/dist/delta/text.test.d.ts +0 -6
  205. package/dist/delta/text.test.d.ts.map +0 -1
  206. package/dist/delta/transformer.d.ts +0 -164
  207. package/dist/delta/transformer.d.ts.map +0 -1
  208. package/dist/delta/transformer.test.d.ts +0 -13
  209. package/dist/delta/transformer.test.d.ts.map +0 -1
  210. package/dist/delta/value.d.ts +0 -84
  211. package/dist/delta/value.d.ts.map +0 -1
  212. package/dist/function-e7d18feb.cjs.map +0 -1
  213. package/dist/index2.cjs +0 -71
  214. package/dist/index2.cjs.map +0 -1
  215. package/dist/map2.cjs +0 -15
  216. package/dist/map2.cjs.map +0 -1
  217. package/dist/node.cjs +0 -206
  218. package/dist/node.cjs.map +0 -1
  219. package/dist/object-18980796.cjs.map +0 -1
  220. package/dist/ops.cjs +0 -575
  221. package/dist/ops.cjs.map +0 -1
  222. package/dist/t2.cjs +0 -932
  223. package/dist/t2.cjs.map +0 -1
  224. package/dist/text.cjs +0 -79
  225. package/dist/text.cjs.map +0 -1
  226. package/dist/traits.d.ts.map +0 -1
  227. package/dist/traits.test.d.ts +0 -4
  228. package/dist/traits.test.d.ts.map +0 -1
  229. package/dist/transformer.cjs +0 -930
  230. package/dist/transformer.cjs.map +0 -1
  231. package/dist/value.cjs +0 -187
  232. package/dist/value.cjs.map +0 -1
  233. package/traits.d.ts.map +0 -1
  234. package/traits.test.d.ts +0 -4
  235. /package/{traits.js → trait/equality.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"array.cjs","sources":["../delta/array.js"],"sourcesContent":["import * as s from '../schema.js'\nimport { AbstractDeltaArrayBuilder } from './abstract-array.js'\nimport * as ops from './ops.js'\n\n/**\n * @template ArrayContent\n * @template {boolean} [WithText=false]\n * @extends AbstractDeltaArrayBuilder<'array', import('./ops.js').DeltaArrayOps<ArrayContent,WithText>>\n */\nexport class DeltaArray extends AbstractDeltaArrayBuilder {\n /**\n * @param {s.Schema<ArrayContent>} $insert\n * @param {WithText} withText\n */\n constructor ($insert, withText) {\n super('array', $insert)\n this.withText = withText\n }\n}\n\n/**\n * @template ArrayContent\n * @template {boolean} [WithText=false]\n * @param {s.Schema<ArrayContent>} $insert\n * @param {WithText} [withText]\n * @return {s.Schema<DeltaArray<ArrayContent, WithText>>}\n */\nexport const $array = ($insert, withText) => /** @type {any} */ (s.$instanceOf(AbstractDeltaArrayBuilder, o => o.type === 'array' && o.ops.every(op => {\n if (ops.$textOp.check(op)) return !!withText\n if (ops.$insertOp.check(op)) return op.insert.every(opi => $insert.check(opi))\n return true\n})))\n/**\n * @type {s.Schema<DeltaArray<any,any>>}\n */\nexport const $arrayAny = /** @type {any} */ (s.$instanceOf(AbstractDeltaArrayBuilder, o => o.type === 'array'))\n\n/**\n * @template [V=any]\n * @template {boolean} [WithText=any]\n * @param {s.Schema<V>} $insert\n * @param {WithText} [withText]\n * @return {DeltaArray<V,WithText>}\n */\nexport const array = ($insert = s.$any, withText) => /** @type {DeltaArray<V,WithText>} */ (new DeltaArray($insert, withText ?? true))\n"],"names":["AbstractDeltaArrayBuilder","s.$instanceOf","ops.$textOp","ops.$insertOp","s.$any"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACO,MAAM,UAAU,SAASA,uCAAyB,CAAC;AAC1D;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE;AAClC,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,SAAQ;AAC5B,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,OAAO,EAAE,QAAQ,yBAAyBC,kBAAa,CAACD,uCAAyB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI;AACvJ,EAAE,IAAIE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ;AAC9C,EAAE,IAAIC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChF,EAAE,OAAO,IAAI;AACb,CAAC,CAAC,CAAC,EAAC;AACJ;AACA;AACA;AACY,MAAC,SAAS,uBAAuBF,kBAAa,CAACD,uCAAyB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,CAAC,OAAO,GAAGI,WAAM,EAAE,QAAQ,4CAA4C,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;;;;;;;"}
1
+ {"version":3,"file":"array.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/binding.cjs CHANGED
@@ -3,34 +3,120 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var observable = require('./observable.cjs');
6
- var ops = require('./ops.cjs');
7
- require('./abstract.cjs');
8
- require('./array.cjs');
9
- var node = require('./node.cjs');
10
- require('./map.cjs');
11
- require('./text.cjs');
12
- require('./value.cjs');
13
- require('./transformer.cjs');
14
- var dom = require('./dom-f5047a64.cjs');
6
+ var delta = require('./delta.cjs');
7
+ require('./testing.cjs');
8
+ var schema = require('./schema.cjs');
9
+ var dom = require('./dom-cad267af.cjs');
15
10
  var set = require('./set-5b47859e.cjs');
16
11
  var map = require('./map-24d263c0.cjs');
17
12
  var error = require('./error-0c1f634f.cjs');
18
13
  var math = require('./math-96d5e8c4.cjs');
19
14
  var mutex = require('./mutex-63f09c81.cjs');
20
- var schema = require('./schema.cjs');
21
15
  require('./array-78849c95.cjs');
22
- require('./object-18980796.cjs');
23
- require('./traits.cjs');
24
- require('./function-e7d18feb.cjs');
25
16
  require('./list.cjs');
26
- require('./environment-90227ead.cjs');
17
+ require('./function-b4e49016.cjs');
18
+ require('./object-dec41ef9.cjs');
19
+ require('./equality.cjs');
20
+ require('./fingerprint.cjs');
21
+ require('./encoding-1a745c43.cjs');
22
+ require('./number-1fb57bba.cjs');
23
+ require('./binary-ac8e39e2.cjs');
27
24
  require('./string-fddc5f8b.cjs');
25
+ require('./rabin.cjs');
26
+ require('./buffer-8d110bf4.cjs');
27
+ require('./environment-98bcf64f.cjs');
28
28
  require('./conditions-f5c0c102.cjs');
29
29
  require('./storage.cjs');
30
- require('./abstract-array.cjs');
30
+ require('./decoding-76e75827.cjs');
31
+ require('./patience.cjs');
32
+ require('./prng-aa81e812.cjs');
33
+ require('lib0/logging');
34
+ require('./diff-dc7bdc65.cjs');
35
+ require('./random.cjs');
36
+ require('lib0/webcrypto');
37
+ require('./statistics-65f6114b.cjs');
38
+ require('./json-092190a1.cjs');
39
+ require('./time-d8438852.cjs');
40
+ require('./metric.cjs');
41
+ require('./promise-cda7b9bb.cjs');
42
+ require('lib0/performance');
31
43
  require('./pair-ab022bc3.cjs');
32
44
 
33
- /* global MutationObserver */
45
+ /* eslint-disable */
46
+
47
+ /**
48
+ * @template {delta.Delta?} DeltaA
49
+ * @template {delta.Delta?} DeltaB
50
+ * @typedef {{ a: DeltaA?, b: DeltaB? }} TransformResult
51
+ */
52
+
53
+ /**
54
+ * @template {delta.DeltaBuilder?} DeltaA
55
+ * @template {delta.DeltaBuilder?} DeltaB
56
+ * @param {DeltaA} a
57
+ * @param {DeltaB} b
58
+ * @return {TransformResult<DeltaA?,DeltaB?>}
59
+ */
60
+ const transformResult = (a, b) => ({ a, b });
61
+
62
+ transformResult(delta.create('x'), null);
63
+
64
+ /**
65
+ * @template {delta.DeltaAny} DeltaA
66
+ * @template {delta.DeltaAny} DeltaB
67
+ * @typedef {(t:{a:DeltaA?,b:DeltaB?})=>({a:DeltaA?,b:DeltaB?})} DeltaTransformer
68
+ */
69
+
70
+ /**
71
+ * @template {delta.Delta<string,any,any,any>} A
72
+ * @template {(A extends delta.Delta<infer NodeName,infer Attrs,infer Children,infer Text> ? delta.Delta<`x-${NodeName}`,Attrs,Children,Text> : never)} B
73
+ * @param {TransformResult<A,B>} t
74
+ * @return {TransformResult<A,B>}
75
+ */
76
+ const rename = t => {
77
+ /**
78
+ * @type {any}
79
+ */
80
+ const tout = /** @type {any} */ (transformResult(null, null));
81
+ if (t.a) {
82
+ const c = /** @type {delta.Delta} */ (t.a.clone());
83
+ c.name = 'x-' + c.name;
84
+ // @ts-ignore
85
+ tout.b = c;
86
+ }
87
+ if (t.b) {
88
+ const c = /** @type {delta.Delta} */ (t.b.clone());
89
+ c.name = c.name.slice(2);
90
+ // @ts-ignore
91
+ tout.a = c;
92
+ }
93
+ return tout
94
+ };
95
+
96
+ delta.create('x', { x: 'dtrn' });
97
+ rename({ a: delta.create('x', { x: 'dtrn' }), b: null });
98
+ //
99
+ // /**
100
+ // * @template {delta.Delta} D
101
+ // * @param {s.Schema<D>} $d
102
+ // * @return {Transformer<D,D>}
103
+ // */
104
+ // const id = ($d) => /** @type {Transformer<D,D>} */ (new Transformer($d))
105
+ //
106
+ // const q = id(delta.$delta({ name: 'div' }))
107
+ // const q2 = id(delta.$delta({ name: 'div', attrs: { a: s.$string } })).pipe(t.delta('h1', { color: t => query('a')(t), name:'mystuff' }, t => [query('b')(t)]))
108
+ // const q3 = t.delta('h1', { color: t => query('a')(t), name:'mystuff' }, t => [query('b')(t)])(id(delta.$delta({ name: 'div', attrs: { a: s.$string } }))))
109
+ //
110
+ //
111
+ // /**
112
+ // * @param {Transformer<delta.Delta<any,{ a: string, name: string }>>} t
113
+ // */
114
+ // const dataToH1 = t => t.delta('h1', { color: t => query('a')(t), name:'mystuff' }, t => [query('b')(t)])(t)
115
+ // const q4 = dataToH1(id(delta.$delta({ name: 'div', attrs: { a: s.$string } })))
116
+ //
117
+ // const dataToH1_2 = t => rename('h1')(renameAttr({ a: 'color' })(static(delta.create('h1', { name: 'mystuff' }, 'some content!'))(t)))
118
+
119
+ /* eslint-disable */
34
120
 
35
121
  /**
36
122
  * @template T
@@ -147,7 +233,7 @@ const deltaRDT = $delta => new DeltaRDT($delta);
147
233
  */
148
234
  const domToDelta = domNode => {
149
235
  if (dom.$element.check(domNode)) {
150
- const d = node.node(domNode.nodeName.toLowerCase());
236
+ const d = undefined(domNode.nodeName.toLowerCase());
151
237
  for (let i = 0; i < domNode.attributes.length; i++) {
152
238
  const attr = /** @type {Attr} */ (domNode.attributes.item(i));
153
239
  d.attributes.set(attr.nodeName, attr.value);
@@ -164,17 +250,17 @@ const domToDelta = domNode => {
164
250
  * @param {DomDelta} d
165
251
  */
166
252
  const deltaToDom = d => {
167
- if (node.$nodeAny.check(d)) {
253
+ if (undefined(d)) {
168
254
  const n = dom.element(d.name);
169
255
  d.attributes.forEach(change => {
170
- if (ops.$insertOp.check(change)) {
256
+ if (delta.$insertOp.check(change)) {
171
257
  n.setAttribute(change.key, change.value);
172
258
  }
173
259
  });
174
260
  d.children.forEach(child => {
175
- if (ops.$insertOp.check(child)) {
261
+ if (delta.$insertOp.check(child)) {
176
262
  n.append(...child.insert.map(deltaToDom));
177
- } else if (ops.$textOp.check(child)) {
263
+ } else if (delta.$textOp.check(child)) {
178
264
  n.append(dom.text(child.insert));
179
265
  }
180
266
  });
@@ -189,7 +275,7 @@ const deltaToDom = d => {
189
275
  */
190
276
  const applyDeltaToDom = (el, d) => {
191
277
  d.attributes.forEach(change => {
192
- if (ops.$deleteOp.check(change)) {
278
+ if (delta.$deleteOp.check(change)) {
193
279
  el.removeAttribute(change.key);
194
280
  } else {
195
281
  el.setAttribute(change.key, change.value);
@@ -199,7 +285,7 @@ const applyDeltaToDom = (el, d) => {
199
285
  let childOffset = 0;
200
286
  d.children.forEach(change => {
201
287
  let child = el.childNodes[childIndex] || null;
202
- if (ops.$deleteOp.check(change)) {
288
+ if (delta.$deleteOp.check(change)) {
203
289
  let len = change.length;
204
290
  while (len > 0) {
205
291
  if (dom.$element.check(child)) {
@@ -220,7 +306,7 @@ const applyDeltaToDom = (el, d) => {
220
306
  }
221
307
  }
222
308
  }
223
- } else if (ops.$insertOp.check(change)) {
309
+ } else if (delta.$insertOp.check(change)) {
224
310
  if (childOffset > 0) {
225
311
  const tchild = dom.$text.cast(child);
226
312
  child = tchild.splitText(childOffset);
@@ -228,9 +314,9 @@ const applyDeltaToDom = (el, d) => {
228
314
  childOffset = 0;
229
315
  }
230
316
  el.insertBefore(dom.fragment(change.insert.map(deltaToDom)), child);
231
- } else if (ops.$modifyOp.check(change)) {
317
+ } else if (delta.$modifyOp.check(change)) {
232
318
  applyDeltaToDom(dom.$element.cast(child), change.modify);
233
- } else if (ops.$textOp.check(change)) {
319
+ } else if (delta.$textOp.check(change)) {
234
320
  el.insertBefore(dom.text(change.insert), child);
235
321
  } else {
236
322
  error.unexpectedCase();
@@ -238,7 +324,7 @@ const applyDeltaToDom = (el, d) => {
238
324
  });
239
325
  };
240
326
 
241
- const $domDelta = node.$node(schema.$string, schema.$record(schema.$string, schema.$string), schema.$never, { recursive: true, withText: true });
327
+ const $domDelta = undefined(schema.$string, schema.$record(schema.$string, schema.$string), schema.$never, { recursive: true, withText: true });
242
328
 
243
329
  /**
244
330
  * @param {Element} observedNode
@@ -264,7 +350,7 @@ const _mutationsToDelta = (observedNode, mutations, origin) => {
264
350
  * @param {Node} node
265
351
  * @return {ChangedNodeInfo}
266
352
  */
267
- const getChangedNodeInfo = node$1 => map.setIfUndefined(changedNodes, node$1, () => ({ removedBefore: map.create(), added: set.create(), modified: 0, d: node.node(node$1.nodeName.toLowerCase()) }));
353
+ const getChangedNodeInfo = node => map.setIfUndefined(changedNodes, node, () => ({ removedBefore: map.create(), added: set.create(), modified: 0, d: undefined(node.nodeName.toLowerCase()) }));
268
354
  const observedNodeInfo = getChangedNodeInfo(observedNode);
269
355
  mutations.forEach(mutation => {
270
356
  const target = /** @type {HTMLElement} */ (mutation.target);
@@ -1 +1 @@
1
- {"version":3,"file":"binding.cjs","sources":["../delta/binding.js"],"sourcesContent":["/* global MutationObserver */\nimport { ObservableV2 } from '../observable.js'\nimport * as delta from './index.js'\nimport * as dt from './transformer.js' // eslint-disable-line\nimport * as dom from '../dom.js'\nimport * as set from '../set.js'\nimport * as map from '../map.js'\nimport * as error from '../error.js'\nimport * as math from '../math.js'\nimport * as mux from '../mutex.js'\nimport * as s from '../schema.js'\n\n/**\n * @template T\n * @typedef {import('../schema.js').Schema<T>} Schema\n */\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n */\nexport class Binding {\n /**\n * @param {RDT<DeltaA>} a\n * @param {RDT<DeltaB>} b\n * @param {dt.Template<any,DeltaA,DeltaB>} template\n */\n constructor (a, b, template) {\n /**\n * @type {dt.Transformer<any,DeltaA,DeltaB>}\n */\n this.t = template.init()\n this.a = a\n this.b = b\n this._mux = mux.createMutex()\n this._achanged = this.a.on('change', d => this._mux(() => {\n const tres = this.t.applyA(d)\n if (tres.a) {\n a.update(tres.a)\n }\n if (tres.b) {\n b.update(tres.b)\n }\n }))\n this._bchanged = this.b.on('change', d => this._mux(() => {\n const tres = this.t.applyB(d)\n if (tres.b) {\n this.b.update(tres.b)\n }\n if (tres.a) {\n a.update(tres.a)\n }\n }))\n }\n\n destroy = () => {\n this.a.off('destroy', this.destroy)\n this.b.off('destroy', this.destroy)\n this.a.off('change', this._achanged)\n this.b.off('change', this._bchanged)\n }\n}\n\n/**\n * Abstract Interface for a delta-based Replicated Data Type.\n *\n * @template {delta.AbstractDelta} Delta\n * @typedef {ObservableV2<{ 'change': (delta: Delta) => void, 'destroy': (rdt:RDT<Delta>)=>void }> & { update: (delta: Delta) => any, destroy: () => void }} RDT\n */\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {dt.Template<any,DeltaA,any>} Transformer\n * @param {RDT<DeltaA>} a\n * @param {RDT<Transformer extends dt.Template<any,DeltaA,infer DeltaB> ? DeltaB : never>} b\n * @param {dt.Template<any,DeltaA,any>} template\n */\nexport const bind = (a, b, template) => new Binding(a, b, template)\n\n/**\n * @template {delta.AbstractDelta} Delta\n * @implements RDT<Delta>\n * @extends {ObservableV2<{ change: (delta: Delta) => void, 'destroy': (rdt:DeltaRDT<Delta>)=>void }>}\n */\nclass DeltaRDT extends ObservableV2 {\n /**\n * @param {Schema<Delta>} $delta\n */\n constructor ($delta) {\n super()\n this.$delta = $delta\n /**\n * @type {Delta?}\n */\n this.state = null\n this._mux = mux.createMutex()\n }\n\n /**\n * @param {Delta} delta\n */\n update = delta => delta.isEmpty() || this._mux(() => {\n if (this.state != null) {\n this.state.apply(delta)\n } else {\n this.state = delta\n }\n this.emit('change', [delta])\n })\n\n destroy () {\n this.emit('destroy', [this])\n super.destroy()\n }\n}\n\n/**\n * @template {delta.AbstractDelta} Delta\n * @param {Schema<Delta>} $delta\n */\nexport const deltaRDT = $delta => new DeltaRDT($delta)\n\n/**\n * @param {Node} domNode\n */\nconst domToDelta = domNode => {\n if (dom.$element.check(domNode)) {\n const d = delta.node(domNode.nodeName.toLowerCase())\n for (let i = 0; i < domNode.attributes.length; i++) {\n const attr = /** @type {Attr} */ (domNode.attributes.item(i))\n d.attributes.set(attr.nodeName, attr.value)\n }\n domNode.childNodes.forEach(child => {\n d.children.insert(dom.$text.check(child) ? child.textContent : [domToDelta(child)])\n })\n return d\n }\n error.unexpectedCase()\n}\n\n/**\n * @param {DomDelta} d\n */\nconst deltaToDom = d => {\n if (delta.$nodeAny.check(d)) {\n const n = dom.element(d.name)\n d.attributes.forEach(change => {\n if (delta.$insertOp.check(change)) {\n n.setAttribute(change.key, change.value)\n }\n })\n d.children.forEach(child => {\n if (delta.$insertOp.check(child)) {\n n.append(...child.insert.map(deltaToDom))\n } else if (delta.$textOp.check(child)) {\n n.append(dom.text(child.insert))\n }\n })\n return n\n }\n error.unexpectedCase()\n}\n\n/**\n * @param {Element} el\n * @param {delta.Node<string,any,any,any>} d\n */\nconst applyDeltaToDom = (el, d) => {\n d.attributes.forEach(change => {\n if (delta.$deleteOp.check(change)) {\n el.removeAttribute(change.key)\n } else {\n el.setAttribute(change.key, change.value)\n }\n })\n let childIndex = 0\n let childOffset = 0\n d.children.forEach(change => {\n let child = el.childNodes[childIndex] || null\n if (delta.$deleteOp.check(change)) {\n let len = change.length\n while (len > 0) {\n if (dom.$element.check(child)) {\n child.remove()\n len--\n } else if (dom.$text.check(child)) {\n const childLen = child.length\n if (childOffset === 0 && childLen <= len) {\n child.remove()\n len -= childLen\n } else {\n const spliceLen = math.min(len, childLen - childOffset)\n child.deleteData(childOffset, spliceLen)\n if (child.length <= childOffset) {\n childOffset = 0\n childIndex++\n }\n }\n }\n }\n } else if (delta.$insertOp.check(change)) {\n if (childOffset > 0) {\n const tchild = dom.$text.cast(child)\n child = tchild.splitText(childOffset)\n childIndex++\n childOffset = 0\n }\n el.insertBefore(dom.fragment(change.insert.map(deltaToDom)), child)\n } else if (delta.$modifyOp.check(change)) {\n applyDeltaToDom(dom.$element.cast(child), change.modify)\n } else if (delta.$textOp.check(change)) {\n el.insertBefore(dom.text(change.insert), child)\n } else {\n error.unexpectedCase()\n }\n })\n}\n\nexport const $domDelta = delta.$node(s.$string, s.$record(s.$string, s.$string), s.$never, { recursive: true, withText: true })\n\n/**\n * @param {Element} observedNode\n * @param {MutationRecord[]} mutations\n * @param {any} origin assign this origin to the generated delta\n */\nconst _mutationsToDelta = (observedNode, mutations, origin) => {\n /**\n * @typedef {{ removedBefore: Map<Node?,number>, added: Set<Node>, modified: number, d: delta.Node }} ChangedNodeInfo\n */\n /**\n * Compute all deltas without recursion.\n *\n * 1. mark all changed parents in parentsChanged\n * 2. fill out necessary information for each changed parent ()\n */\n //\n /**\n * @type {Map<Node,ChangedNodeInfo>}\n */\n const changedNodes = map.create()\n /**\n * @param {Node} node\n * @return {ChangedNodeInfo}\n */\n const getChangedNodeInfo = node => map.setIfUndefined(changedNodes, node, () => ({ removedBefore: map.create(), added: set.create(), modified: 0, d: delta.node(node.nodeName.toLowerCase()) }))\n const observedNodeInfo = getChangedNodeInfo(observedNode)\n mutations.forEach(mutation => {\n const target = /** @type {HTMLElement} */ (mutation.target)\n const parent = target.parentNode\n const attrName = /** @type {string} */ (mutation.attributeName)\n const newVal = target.getAttribute(attrName)\n const info = getChangedNodeInfo(target)\n const d = info.d\n // go up the tree and mark that a child has been modified\n for (let changedParent = parent; changedParent != null && getChangedNodeInfo(changedParent).modified++ > 1 && changedParent !== observedNode; changedParent = changedParent.parentNode) {\n // nop\n }\n switch (mutation.type) {\n case 'attributes': {\n const attrs = /** @type {delta.Node<any,any,any>} */ (d).attributes\n if (newVal == null) {\n attrs.delete(attrName)\n } else {\n attrs.set(/** @type {string} */ (attrName), newVal)\n }\n break\n }\n case 'characterData': {\n error.methodUnimplemented()\n break\n }\n case 'childList': {\n const targetInfo = getChangedNodeInfo(target)\n mutation.addedNodes.forEach(node => {\n targetInfo.added.add(node)\n })\n const removed = mutation.removedNodes.length\n if (removed > 0) {\n // @todo this can't work because next can be null\n targetInfo.removedBefore.set(mutation.nextSibling, removed)\n }\n break\n }\n }\n })\n changedNodes.forEach((info, node) => {\n const numOfChildChanges = info.modified + info.removedBefore.size + info.added.size\n const d = /** @type {delta.Node<any,any,any>} */ (info.d)\n if (numOfChildChanges > 0) {\n node.childNodes.forEach(nchild => {\n if (info.removedBefore.has(nchild)) { // can happen separately\n d.children.delete(/** @type {number} */ (info.removedBefore.get(nchild)))\n }\n if (info.added.has(nchild)) {\n d.children.insert(dom.$text.check(nchild) ? nchild.textContent : [domToDelta(nchild)])\n } else if (changedNodes.has(nchild)) {\n d.children.modify(getChangedNodeInfo(nchild).d)\n }\n })\n // remove items to the end, if necessary\n d.children.delete(info.removedBefore.get(null) ?? 0)\n }\n d.done()\n })\n observedNodeInfo.d.origin = origin\n return observedNodeInfo.d\n}\n\n/**\n * @typedef {delta.RecursiveNode<string, { [key:string]: string }, never, true>} DomDelta\n */\n\n/**\n * @template {DomDelta} [D=DomDelta]\n * @implements RDT<D>\n * @extends {ObservableV2<{ change: (delta: D)=>void, destroy: (rdt:DomRDT<D>)=>void }>}>}\n */\nclass DomRDT extends ObservableV2 {\n /**\n * @param {Element} observedNode\n */\n constructor (observedNode) {\n super()\n this.observedNode = observedNode\n this._mux = mux.createMutex()\n this.observer = new MutationObserver(this._mutationHandler)\n this.observer.observe(observedNode, {\n subtree: true,\n childList: true,\n attributes: true,\n characterDataOldValue: true\n })\n }\n\n /**\n * @param {MutationRecord[]} mutations\n */\n _mutationHandler = mutations =>\n mutations.length > 0 && this._mux(() => {\n this.emit('change', [/** @type {D} */(_mutationsToDelta(this.observedNode, mutations, this))])\n })\n\n /**\n * @param {D} delta\n */\n update = delta => {\n if (delta.origin !== this) {\n // @todo the retrieved changes must be transformed agains the updated changes. need a proper\n // transaction system\n this._mutationHandler(this.observer.takeRecords())\n this._mux(() => {\n applyDeltaToDom(this.observedNode, delta)\n const mutations = this.observer.takeRecords()\n this.emit('change', [/** @type {D} */(_mutationsToDelta(this.observedNode, mutations, delta.origin))])\n })\n }\n }\n\n destroy () {\n this.emit('destroy', [this])\n super.destroy()\n this.observer.disconnect()\n }\n}\n\n/**\n * @param {Element} dom\n */\nexport const domRDT = dom => new DomRDT(dom)\n"],"names":["mux.createMutex","ObservableV2","dom.$element","delta.node","dom.$text","error.unexpectedCase","delta.$nodeAny","dom.element","delta.$insertOp","delta.$textOp","dom.text","delta.$deleteOp","math.min","dom.fragment","delta.$modifyOp","delta.$node","s.$string","s.$record","s.$never","map.create","node","map.setIfUndefined","set.create","error.methodUnimplemented"],"mappings":"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"}
1
+ {"version":3,"file":"binding.cjs","sources":["../delta/t3.test.js","../delta/binding.js"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\nimport * as t from '../testing.js'\nimport * as delta from './delta.js'\nimport * as s from '../schema.js'\nimport * as array from '../array.js'\n\n/**\n * @template {delta.Delta?} DeltaA\n * @template {delta.Delta?} DeltaB\n * @typedef {{ a: DeltaA?, b: DeltaB? }} TransformResult\n */\n\n/**\n * @template {delta.DeltaBuilder?} DeltaA\n * @template {delta.DeltaBuilder?} DeltaB\n * @param {DeltaA} a\n * @param {DeltaB} b\n * @return {TransformResult<DeltaA?,DeltaB?>}\n */\nexport const transformResult = (a, b) => ({ a, b })\nexport const transformResultEmpty = transformResult(null, null)\n\nlet x = transformResult(delta.create('x'), null)\nx = transformResult(null, null)\n\n/**\n * @template {delta.DeltaAny} DeltaA\n * @template {delta.DeltaAny} DeltaB\n * @typedef {(t:{a:DeltaA?,b:DeltaB?})=>({a:DeltaA?,b:DeltaB?})} DeltaTransformer\n */\n\n/**\n * @template {delta.Delta<string,any,any,any>} A\n * @template {(A extends delta.Delta<infer NodeName,infer Attrs,infer Children,infer Text> ? delta.Delta<`x-${NodeName}`,Attrs,Children,Text> : never)} B\n * @param {TransformResult<A,B>} t\n * @return {TransformResult<A,B>}\n */\nconst rename = t => {\n /**\n * @type {any}\n */\n const tout = /** @type {any} */ (transformResult(null, null))\n if (t.a) {\n const c = /** @type {delta.Delta} */ (t.a.clone())\n c.name = 'x-' + c.name\n // @ts-ignore\n tout.b = c\n }\n if (t.b) {\n const c = /** @type {delta.Delta} */ (t.b.clone())\n c.name = c.name.slice(2)\n // @ts-ignore\n tout.a = c\n }\n return tout\n}\n\n/**\n * @param {Set<string>} allowed\n */\nconst filter = (allowed) => {\n /**\n * contains inserted items that didn't make it into t.b\n */\n const diff = delta.create()\n /**\n * @template {delta.Delta<string,any,any,any>?} A\n * @template {(A extends delta.Delta<infer NodeName,infer Attrs,infer Children,infer Text> ? delta.Delta<`x-${NodeName}`,Attrs,Children,Text> : never)} B\n * @param {{ a: A?, b: B? }} t\n * @return {{ a: A?, b: B? }}\n */\n return t => {\n /**\n * @type {any}\n */\n const tout = /** @type {any} */ (transformResult(null, null))\n if (t.a) {\n const c = delta.create()\n let index = 0\n /**\n * Split delta into two parts: hidden and visible. hidden contains all \"hidden\" changes (filtered inserts).\n * visible everything else.\n *\n * return visible.rebaseAgainstInverse(diff)\n * apply `diff.apply(merge)`\n *\n */\n for (const child of t.a.children) {\n if (delta.$insertOp.check(child)) {\n for (let i = 0; i < child.insert.length; i++) {\n const ins = child.insert[i]\n if (delta.$deltaAny.check(ins) && allowed.has(ins.name)) {\n ins\n } else {\n\n }\n ins\n }\n }\n if (!delta.$deleteOp.check(child)) {\n index += child.length\n }\n }\n }\n if (t.b) {\n }\n return tout\n }\n}\n\nconst dd = delta.create('x', { x: 'dtrn' })\nconst y = rename({ a: delta.create('x', { x: 'dtrn' }), b: null })\n\n/**\n * @template {delta.DeltaAny} DeltaA\n * @template {delta.DeltaAny} Delta_\n * @template {delta.DeltaAny} DeltaB\n * @param {(t:TransformResult<DeltaA,Delta_>)=>TransformResult<DeltaA,Delta_>} t1\n * @param {(t:TransformResult<Delta_,DeltaB>)=>TransformResult<Delta_,DeltaB>} t2\n * @return {(dx:TransformResult<DeltaA,DeltaB>)=>TransformResult<Delta_,DeltaB>}\n */\nconst pipe = (t1, t2) => (dx) => {\n return /** @type {any} */ (null)\n}\n\n// next idea: Transform object that changes typings\n\n/**\n * Transforms should..\n * - transform from a->b->c->b->a\n * - extendable mod(Transform<A,B>):Transform<A,C>\n * - i can start with id: mod(Id($d))\n */\n\n/**\n * @template {delta.Delta} DeltaA\n * @template {delta.Delta} DeltaB\n * @typedef {{ applyA: (da:DeltaA)=>TransformResult<DeltaA,DeltaB>, applyB: (db:DeltaB)=>TransformResult<DeltaA,DeltaB> }} Transform\n */\n\n/**\n * @template {delta.DeltaBuilder} A\n * @template {delta.DeltaBuilder} B\n */\nclass Transformer {\n /**\n * @param {s.Schema<A>} $da\n */\n constructor ($da) {\n this.$da = $da\n /**\n * @type {Array<Transform<any,any>>}\n */\n this._tr = []\n }\n\n /**\n * @param {TransformResult<A,B>} d\n * @return {TransformResult<A?,B?>}\n */\n apply ({ a, b }) {\n if (a == null && b == null) return transformResult(null, null)\n /**\n * @type {Array<{ a: delta.DeltaBuilder?, b: delta.DeltaBuilder? }>}\n */\n const pendingApply = array.unfold(this._tr.length + 2, () => ({ a: null, b: null }))\n pendingApply[1].a = a\n pendingApply[pendingApply.length - 2].b = b\n /**\n * @param {number} i\n */\n const applyTransformI = i => {\n const p = pendingApply[i + 1]\n const t = this._tr[i]\n const aout = p.a !== null ? t.applyA(p.a) : transformResult(null, null)\n if (p.b !== null) {\n if (aout.b !== null) {\n p.b = p.b.rebase(aout.b, true)\n }\n const bout = t.applyB(p.b)\n aout.a = delta.mergeDeltas(aout.a, bout.a)\n aout.b = delta.mergeDeltas(aout.b, bout.b)\n }\n // write out.a into prev.b, and out.b into next.a\n pendingApply[i].b = delta.mergeDeltas(pendingApply[i].b, aout.a)\n pendingApply[i + 2].a = delta.mergeDeltas(pendingApply[i + 2].a, aout.b)\n return aout\n }\n let needsBackwardTransform = a != null\n let needsForwardTransform = b != null\n while (needsBackwardTransform || needsForwardTransform) {\n if (needsForwardTransform) {\n for (let i = 0; i < this._tr.length; i++) {\n const r = applyTransformI(i)\n if (i != null) {\n needsBackwardTransform = needsBackwardTransform || r.a != null\n }\n }\n needsForwardTransform = false\n }\n if (needsBackwardTransform) {\n for (let i = this._tr.length - 1; i >= 0; i--) {\n const r = applyTransformI(i)\n if (i != null) {\n needsForwardTransform = needsForwardTransform || r.b != null\n }\n }\n needsBackwardTransform = false\n }\n }\n return /** @type {TransformResult<A,B>} */ (transformResult(pendingApply[0].b, pendingApply[pendingApply.length - 1].a))\n }\n}\n//\n// /**\n// * @template {delta.Delta} D\n// * @param {s.Schema<D>} $d\n// * @return {Transformer<D,D>}\n// */\n// const id = ($d) => /** @type {Transformer<D,D>} */ (new Transformer($d))\n//\n// const q = id(delta.$delta({ name: 'div' }))\n// const q2 = id(delta.$delta({ name: 'div', attrs: { a: s.$string } })).pipe(t.delta('h1', { color: t => query('a')(t), name:'mystuff' }, t => [query('b')(t)]))\n// const q3 = t.delta('h1', { color: t => query('a')(t), name:'mystuff' }, t => [query('b')(t)])(id(delta.$delta({ name: 'div', attrs: { a: s.$string } }))))\n//\n//\n// /**\n// * @param {Transformer<delta.Delta<any,{ a: string, name: string }>>} t\n// */\n// const dataToH1 = t => t.delta('h1', { color: t => query('a')(t), name:'mystuff' }, t => [query('b')(t)])(t)\n// const q4 = dataToH1(id(delta.$delta({ name: 'div', attrs: { a: s.$string } })))\n//\n// const dataToH1_2 = t => rename('h1')(renameAttr({ a: 'color' })(static(delta.create('h1', { name: 'mystuff' }, 'some content!'))(t)))\n","/* eslint-disable */\n// @ts-nocheck\n// @todo remove all @ts-nocheck and eslint-disable\n/* global MutationObserver */\nimport { ObservableV2 } from '../observable.js'\nimport * as delta from './delta.js'\nimport * as dt from './t3.test.js' // eslint-disable-line\nimport * as dom from '../dom.js'\nimport * as set from '../set.js'\nimport * as map from '../map.js'\nimport * as error from '../error.js'\nimport * as math from '../math.js'\nimport * as mux from '../mutex.js'\nimport * as s from '../schema.js'\n\n/**\n * @template T\n * @typedef {import('../schema.js').Schema<T>} Schema\n */\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n */\nexport class Binding {\n /**\n * @param {RDT<DeltaA>} a\n * @param {RDT<DeltaB>} b\n * @param {dt.Template<any,DeltaA,DeltaB>} template\n */\n constructor (a, b, template) {\n /**\n * @type {dt.Transformer<any,DeltaA,DeltaB>}\n */\n this.t = template.init()\n this.a = a\n this.b = b\n this._mux = mux.createMutex()\n this._achanged = this.a.on('change', d => this._mux(() => {\n const tres = this.t.applyA(d)\n if (tres.a) {\n a.update(tres.a)\n }\n if (tres.b) {\n b.update(tres.b)\n }\n }))\n this._bchanged = this.b.on('change', d => this._mux(() => {\n const tres = this.t.applyB(d)\n if (tres.b) {\n this.b.update(tres.b)\n }\n if (tres.a) {\n a.update(tres.a)\n }\n }))\n }\n\n destroy = () => {\n this.a.off('destroy', this.destroy)\n this.b.off('destroy', this.destroy)\n this.a.off('change', this._achanged)\n this.b.off('change', this._bchanged)\n }\n}\n\n/**\n * Abstract Interface for a delta-based Replicated Data Type.\n *\n * @template {delta.AbstractDelta} Delta\n * @typedef {ObservableV2<{ 'change': (delta: Delta) => void, 'destroy': (rdt:RDT<Delta>)=>void }> & { update: (delta: Delta) => any, destroy: () => void }} RDT\n */\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {dt.Template<any,DeltaA,any>} Transformer\n * @param {RDT<DeltaA>} a\n * @param {RDT<Transformer extends dt.Template<any,DeltaA,infer DeltaB> ? DeltaB : never>} b\n * @param {dt.Template<any,DeltaA,any>} template\n */\nexport const bind = (a, b, template) => new Binding(a, b, template)\n\n/**\n * @template {delta.AbstractDelta} Delta\n * @implements RDT<Delta>\n * @extends {ObservableV2<{ change: (delta: Delta) => void, 'destroy': (rdt:DeltaRDT<Delta>)=>void }>}\n */\nclass DeltaRDT extends ObservableV2 {\n /**\n * @param {Schema<Delta>} $delta\n */\n constructor ($delta) {\n super()\n this.$delta = $delta\n /**\n * @type {Delta?}\n */\n this.state = null\n this._mux = mux.createMutex()\n }\n\n /**\n * @param {Delta} delta\n */\n update = delta => delta.isEmpty() || this._mux(() => {\n if (this.state != null) {\n this.state.apply(delta)\n } else {\n this.state = delta\n }\n this.emit('change', [delta])\n })\n\n destroy () {\n this.emit('destroy', [this])\n super.destroy()\n }\n}\n\n/**\n * @template {delta.AbstractDelta} Delta\n * @param {Schema<Delta>} $delta\n */\nexport const deltaRDT = $delta => new DeltaRDT($delta)\n\n/**\n * @param {Node} domNode\n */\nconst domToDelta = domNode => {\n if (dom.$element.check(domNode)) {\n const d = delta.node(domNode.nodeName.toLowerCase())\n for (let i = 0; i < domNode.attributes.length; i++) {\n const attr = /** @type {Attr} */ (domNode.attributes.item(i))\n d.attributes.set(attr.nodeName, attr.value)\n }\n domNode.childNodes.forEach(child => {\n d.children.insert(dom.$text.check(child) ? child.textContent : [domToDelta(child)])\n })\n return d\n }\n error.unexpectedCase()\n}\n\n/**\n * @param {DomDelta} d\n */\nconst deltaToDom = d => {\n if (delta.$nodeAny.check(d)) {\n const n = dom.element(d.name)\n d.attributes.forEach(change => {\n if (delta.$insertOp.check(change)) {\n n.setAttribute(change.key, change.value)\n }\n })\n d.children.forEach(child => {\n if (delta.$insertOp.check(child)) {\n n.append(...child.insert.map(deltaToDom))\n } else if (delta.$textOp.check(child)) {\n n.append(dom.text(child.insert))\n }\n })\n return n\n }\n error.unexpectedCase()\n}\n\n/**\n * @param {Element} el\n * @param {delta.Node<string,any,any,any>} d\n */\nconst applyDeltaToDom = (el, d) => {\n d.attributes.forEach(change => {\n if (delta.$deleteOp.check(change)) {\n el.removeAttribute(change.key)\n } else {\n el.setAttribute(change.key, change.value)\n }\n })\n let childIndex = 0\n let childOffset = 0\n d.children.forEach(change => {\n let child = el.childNodes[childIndex] || null\n if (delta.$deleteOp.check(change)) {\n let len = change.length\n while (len > 0) {\n if (dom.$element.check(child)) {\n child.remove()\n len--\n } else if (dom.$text.check(child)) {\n const childLen = child.length\n if (childOffset === 0 && childLen <= len) {\n child.remove()\n len -= childLen\n } else {\n const spliceLen = math.min(len, childLen - childOffset)\n child.deleteData(childOffset, spliceLen)\n if (child.length <= childOffset) {\n childOffset = 0\n childIndex++\n }\n }\n }\n }\n } else if (delta.$insertOp.check(change)) {\n if (childOffset > 0) {\n const tchild = dom.$text.cast(child)\n child = tchild.splitText(childOffset)\n childIndex++\n childOffset = 0\n }\n el.insertBefore(dom.fragment(change.insert.map(deltaToDom)), child)\n } else if (delta.$modifyOp.check(change)) {\n applyDeltaToDom(dom.$element.cast(child), change.modify)\n } else if (delta.$textOp.check(change)) {\n el.insertBefore(dom.text(change.insert), child)\n } else {\n error.unexpectedCase()\n }\n })\n}\n\nexport const $domDelta = delta.$node(s.$string, s.$record(s.$string, s.$string), s.$never, { recursive: true, withText: true })\n\n/**\n * @param {Element} observedNode\n * @param {MutationRecord[]} mutations\n * @param {any} origin assign this origin to the generated delta\n */\nconst _mutationsToDelta = (observedNode, mutations, origin) => {\n /**\n * @typedef {{ removedBefore: Map<Node?,number>, added: Set<Node>, modified: number, d: delta.Node }} ChangedNodeInfo\n */\n /**\n * Compute all deltas without recursion.\n *\n * 1. mark all changed parents in parentsChanged\n * 2. fill out necessary information for each changed parent ()\n */\n //\n /**\n * @type {Map<Node,ChangedNodeInfo>}\n */\n const changedNodes = map.create()\n /**\n * @param {Node} node\n * @return {ChangedNodeInfo}\n */\n const getChangedNodeInfo = node => map.setIfUndefined(changedNodes, node, () => ({ removedBefore: map.create(), added: set.create(), modified: 0, d: delta.node(node.nodeName.toLowerCase()) }))\n const observedNodeInfo = getChangedNodeInfo(observedNode)\n mutations.forEach(mutation => {\n const target = /** @type {HTMLElement} */ (mutation.target)\n const parent = target.parentNode\n const attrName = /** @type {string} */ (mutation.attributeName)\n const newVal = target.getAttribute(attrName)\n const info = getChangedNodeInfo(target)\n const d = info.d\n // go up the tree and mark that a child has been modified\n for (let changedParent = parent; changedParent != null && getChangedNodeInfo(changedParent).modified++ > 1 && changedParent !== observedNode; changedParent = changedParent.parentNode) {\n // nop\n }\n switch (mutation.type) {\n case 'attributes': {\n const attrs = /** @type {delta.Node<any,any,any>} */ (d).attributes\n if (newVal == null) {\n attrs.delete(attrName)\n } else {\n attrs.set(/** @type {string} */ (attrName), newVal)\n }\n break\n }\n case 'characterData': {\n error.methodUnimplemented()\n break\n }\n case 'childList': {\n const targetInfo = getChangedNodeInfo(target)\n mutation.addedNodes.forEach(node => {\n targetInfo.added.add(node)\n })\n const removed = mutation.removedNodes.length\n if (removed > 0) {\n // @todo this can't work because next can be null\n targetInfo.removedBefore.set(mutation.nextSibling, removed)\n }\n break\n }\n }\n })\n changedNodes.forEach((info, node) => {\n const numOfChildChanges = info.modified + info.removedBefore.size + info.added.size\n const d = /** @type {delta.Node<any,any,any>} */ (info.d)\n if (numOfChildChanges > 0) {\n node.childNodes.forEach(nchild => {\n if (info.removedBefore.has(nchild)) { // can happen separately\n d.children.delete(/** @type {number} */ (info.removedBefore.get(nchild)))\n }\n if (info.added.has(nchild)) {\n d.children.insert(dom.$text.check(nchild) ? nchild.textContent : [domToDelta(nchild)])\n } else if (changedNodes.has(nchild)) {\n d.children.modify(getChangedNodeInfo(nchild).d)\n }\n })\n // remove items to the end, if necessary\n d.children.delete(info.removedBefore.get(null) ?? 0)\n }\n d.done()\n })\n observedNodeInfo.d.origin = origin\n return observedNodeInfo.d\n}\n\n/**\n * @typedef {delta.RecursiveNode<string, { [key:string]: string }, never, true>} DomDelta\n */\n\n/**\n * @template {DomDelta} [D=DomDelta]\n * @implements RDT<D>\n * @extends {ObservableV2<{ change: (delta: D)=>void, destroy: (rdt:DomRDT<D>)=>void }>}>}\n */\nclass DomRDT extends ObservableV2 {\n /**\n * @param {Element} observedNode\n */\n constructor (observedNode) {\n super()\n this.observedNode = observedNode\n this._mux = mux.createMutex()\n this.observer = new MutationObserver(this._mutationHandler)\n this.observer.observe(observedNode, {\n subtree: true,\n childList: true,\n attributes: true,\n characterDataOldValue: true\n })\n }\n\n /**\n * @param {MutationRecord[]} mutations\n */\n _mutationHandler = mutations =>\n mutations.length > 0 && this._mux(() => {\n this.emit('change', [/** @type {D} */(_mutationsToDelta(this.observedNode, mutations, this))])\n })\n\n /**\n * @param {D} delta\n */\n update = delta => {\n if (delta.origin !== this) {\n // @todo the retrieved changes must be transformed agains the updated changes. need a proper\n // transaction system\n this._mutationHandler(this.observer.takeRecords())\n this._mux(() => {\n applyDeltaToDom(this.observedNode, delta)\n const mutations = this.observer.takeRecords()\n this.emit('change', [/** @type {D} */(_mutationsToDelta(this.observedNode, mutations, delta.origin))])\n })\n }\n }\n\n destroy () {\n this.emit('destroy', [this])\n super.destroy()\n this.observer.disconnect()\n }\n}\n\n/**\n * @param {Element} dom\n */\nexport const domRDT = dom => new DomRDT(dom)\n"],"names":["delta.create","mux.createMutex","ObservableV2","dom.$element","delta.node","dom.$text","error.unexpectedCase","delta.$nodeAny.check","dom.element","delta.$insertOp","delta.$textOp","dom.text","delta.$deleteOp","math.min","dom.fragment","delta.$modifyOp","delta.$node","s.$string","s.$record","s.$never","map.create","map.setIfUndefined","set.create","error.methodUnimplemented"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var map = require('./map-24d263c0.cjs');
4
4
  var set = require('./set-5b47859e.cjs');
5
- var buffer = require('./buffer-7f6fa8fa.cjs');
5
+ var buffer = require('./buffer-8d110bf4.cjs');
6
6
  var storage = require('./storage.cjs');
7
7
 
8
8
  /* eslint-env browser */
@@ -125,4 +125,4 @@ exports.broadcastchannel = broadcastchannel;
125
125
  exports.publish = publish;
126
126
  exports.subscribe = subscribe;
127
127
  exports.unsubscribe = unsubscribe;
128
- //# sourceMappingURL=broadcastchannel-d0c108a2.cjs.map
128
+ //# sourceMappingURL=broadcastchannel-94897809.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"broadcastchannel-d0c108a2.cjs","sources":["../broadcastchannel.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set<function(any, any):any>} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map<string, Channel>}\n */\nconst channels = new Map()\n\n/* c8 ignore start */\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:Uint8Array}):void}\n */\n this.onmessage = null\n /**\n * @param {any} e\n */\n this._onChange = e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') })\n storage.onChange(this._onChange)\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n\n close () {\n storage.offChange(this._onChange)\n }\n}\n/* c8 ignore stop */\n\n// Use BroadcastChannel or Polyfill\n/* c8 ignore next */\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = set.create()\n const bc = new BC(room)\n /**\n * @param {{data:ArrayBuffer}} e\n */\n /* c8 ignore next */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => {\n getChannel(room).subs.add(f)\n return f\n}\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => {\n const channel = getChannel(room)\n const unsubscribed = channel.subs.delete(f)\n if (unsubscribed && channel.subs.size === 0) {\n channel.bc.close()\n channels.delete(room)\n }\n return unsubscribed\n}\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n"],"names":["buffer.fromBase64","storage.onChange","storage.varStorage","buffer.toBase64","buffer.createUint8ArrayFromArrayBuffer","storage.offChange","map.setIfUndefined","set.create"],"mappings":"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"}
1
+ {"version":3,"file":"broadcastchannel-94897809.cjs","sources":["../broadcastchannel.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set<function(any, any):any>} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map<string, Channel>}\n */\nconst channels = new Map()\n\n/* c8 ignore start */\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:Uint8Array}):void}\n */\n this.onmessage = null\n /**\n * @param {any} e\n */\n this._onChange = e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') })\n storage.onChange(this._onChange)\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n\n close () {\n storage.offChange(this._onChange)\n }\n}\n/* c8 ignore stop */\n\n// Use BroadcastChannel or Polyfill\n/* c8 ignore next */\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = set.create()\n const bc = new BC(room)\n /**\n * @param {{data:ArrayBuffer}} e\n */\n /* c8 ignore next */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => {\n getChannel(room).subs.add(f)\n return f\n}\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => {\n const channel = getChannel(room)\n const unsubscribed = channel.subs.delete(f)\n if (unsubscribed && channel.subs.size === 0) {\n channel.bc.close()\n channels.delete(room)\n }\n return unsubscribed\n}\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n"],"names":["buffer.fromBase64","storage.onChange","storage.varStorage","buffer.toBase64","buffer.createUint8ArrayFromArrayBuffer","storage.offChange","map.setIfUndefined","set.create"],"mappings":";;;;;;;AAAA;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAE;AAC1B;AACA;AACA,MAAM,oBAAoB,CAAC;AAC3B;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,GAAG,KAAI;AACzB;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAEA,iBAAiB,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EAAC;AACpI,IAAIC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAC;AACpC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE;AACpB,IAAIC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAEC,eAAe,CAACC,sCAAsC,CAAC,GAAG,CAAC,CAAC,EAAC;AACvG,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAIC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAC;AACrC,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,EAAE,GAAG,OAAO,gBAAgB,KAAK,WAAW,GAAG,oBAAoB,GAAG,iBAAgB;AAC5F;AACA;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG,IAAI;AACvB,EAAEC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM;AAC3C,IAAI,MAAM,IAAI,GAAGC,UAAU,GAAE;AAC7B,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,EAAC;AAC3B;AACA;AACA;AACA;AACA,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAC;AAC5E,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,IAAI;AACd,KAAK;AACL,GAAG,EAAC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;AAC9B,EAAE,OAAO,CAAC;AACV,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK;AACxC,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAC;AAClC,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC;AAC7C,EAAE,IAAI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;AAC/C,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAE;AACtB,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAC;AACzB,GAAG;AACH,EAAE,OAAO,YAAY;AACrB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK;AACtD,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAC;AAC5B,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAC;AACxB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAC;AAC1C;;;;;;;;;;;;;;"}
@@ -4,16 +4,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./map-24d263c0.cjs');
6
6
  require('./set-5b47859e.cjs');
7
- require('./buffer-7f6fa8fa.cjs');
7
+ require('./buffer-8d110bf4.cjs');
8
8
  require('./storage.cjs');
9
- var broadcastchannel = require('./broadcastchannel-d0c108a2.cjs');
9
+ var broadcastchannel = require('./broadcastchannel-94897809.cjs');
10
10
  require('./string-fddc5f8b.cjs');
11
11
  require('./array-78849c95.cjs');
12
- require('./environment-90227ead.cjs');
12
+ require('./environment-98bcf64f.cjs');
13
13
  require('./conditions-f5c0c102.cjs');
14
- require('./function-e7d18feb.cjs');
15
- require('./object-18980796.cjs');
16
- require('./traits.cjs');
14
+ require('./function-b4e49016.cjs');
15
+ require('./object-dec41ef9.cjs');
16
+ require('./equality.cjs');
17
17
  require('./math-96d5e8c4.cjs');
18
18
  require('./encoding-1a745c43.cjs');
19
19
  require('./number-1fb57bba.cjs');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var string = require('./string-fddc5f8b.cjs');
4
- var environment = require('./environment-90227ead.cjs');
4
+ var environment = require('./environment-98bcf64f.cjs');
5
5
  var array = require('./array-78849c95.cjs');
6
6
  var math = require('./math-96d5e8c4.cjs');
7
7
  var encoding = require('./encoding-1a745c43.cjs');
@@ -195,4 +195,4 @@ exports.shiftNBitsLeft = shiftNBitsLeft;
195
195
  exports.toBase64 = toBase64;
196
196
  exports.toBase64UrlEncoded = toBase64UrlEncoded;
197
197
  exports.toHexString = toHexString;
198
- //# sourceMappingURL=buffer-7f6fa8fa.cjs.map
198
+ //# sourceMappingURL=buffer-8d110bf4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-7f6fa8fa.cjs","sources":["../buffer.js"],"sourcesContent":["/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as array from './array.js'\nimport * as math from './math.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* c8 ignore start */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* c8 ignore start */\n/**\n * @param {string} s\n * @return {Uint8Array<ArrayBuffer>}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* c8 ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* c8 ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5\n * @param {Uint8Array} buf\n */\nexport const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '')\n\n/**\n * @param {string} base64\n */\nexport const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'))\n\n/**\n * Base64 is always a more efficient choice. This exists for utility purposes only.\n *\n * @param {Uint8Array} buf\n */\nexport const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('')\n\n/**\n * Note: This function expects that the hex doesn't start with 0x..\n *\n * @param {string} hex\n */\nexport const fromHexString = hex => {\n const hlen = hex.length\n const buf = new Uint8Array(math.ceil(hlen / 2))\n for (let i = 0; i < hlen; i += 2) {\n buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16)\n }\n return buf\n}\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data =>\n encoding.encode(encoder => encoding.writeAny(encoder, data))\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n\n/**\n * Shift Byte Array {N} bits to the left. Does not expand byte array.\n *\n * @param {Uint8Array} bs\n * @param {number} N should be in the range of [0-7]\n */\nexport const shiftNBitsLeft = (bs, N) => {\n if (N === 0) return bs\n bs = new Uint8Array(bs)\n bs[0] <<= N\n for (let i = 1; i < bs.length; i++) {\n bs[i - 1] |= bs[i] >>> (8 - N)\n bs[i] <<= N\n }\n return bs\n}\n"],"names":["string.fromCharCode","env.isBrowser","array.map","math.ceil","encoding.encode","encoding.writeAny","decoding.readAny","decoding.createDecoder"],"mappings":"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"}
1
+ {"version":3,"file":"buffer-8d110bf4.cjs","sources":["../buffer.js"],"sourcesContent":["/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as array from './array.js'\nimport * as math from './math.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* c8 ignore start */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* c8 ignore start */\n/**\n * @param {string} s\n * @return {Uint8Array<ArrayBuffer>}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* c8 ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* c8 ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5\n * @param {Uint8Array} buf\n */\nexport const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '')\n\n/**\n * @param {string} base64\n */\nexport const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'))\n\n/**\n * Base64 is always a more efficient choice. This exists for utility purposes only.\n *\n * @param {Uint8Array} buf\n */\nexport const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('')\n\n/**\n * Note: This function expects that the hex doesn't start with 0x..\n *\n * @param {string} hex\n */\nexport const fromHexString = hex => {\n const hlen = hex.length\n const buf = new Uint8Array(math.ceil(hlen / 2))\n for (let i = 0; i < hlen; i += 2) {\n buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16)\n }\n return buf\n}\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data =>\n encoding.encode(encoder => encoding.writeAny(encoder, data))\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n\n/**\n * Shift Byte Array {N} bits to the left. Does not expand byte array.\n *\n * @param {Uint8Array} bs\n * @param {number} N should be in the range of [0-7]\n */\nexport const shiftNBitsLeft = (bs, N) => {\n if (N === 0) return bs\n bs = new Uint8Array(bs)\n bs[0] <<= N\n for (let i = 1; i < bs.length; i++) {\n bs[i - 1] |= bs[i] >>> (8 - N)\n bs[i] <<= N\n }\n return bs\n}\n"],"names":["string.fromCharCode","env.isBrowser","array.map","math.ceil","encoding.encode","encoding.writeAny","decoding.readAny","decoding.createDecoder"],"mappings":"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"}
package/dist/buffer.cjs CHANGED
@@ -3,18 +3,18 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./string-fddc5f8b.cjs');
6
- require('./environment-90227ead.cjs');
6
+ require('./environment-98bcf64f.cjs');
7
7
  require('./array-78849c95.cjs');
8
8
  require('./math-96d5e8c4.cjs');
9
9
  require('./encoding-1a745c43.cjs');
10
10
  require('./decoding-76e75827.cjs');
11
- var buffer = require('./buffer-7f6fa8fa.cjs');
11
+ var buffer = require('./buffer-8d110bf4.cjs');
12
12
  require('./map-24d263c0.cjs');
13
13
  require('./conditions-f5c0c102.cjs');
14
14
  require('./storage.cjs');
15
- require('./function-e7d18feb.cjs');
16
- require('./object-18980796.cjs');
17
- require('./traits.cjs');
15
+ require('./function-b4e49016.cjs');
16
+ require('./object-dec41ef9.cjs');
17
+ require('./equality.cjs');
18
18
  require('./set-5b47859e.cjs');
19
19
  require('./number-1fb57bba.cjs');
20
20
  require('./binary-ac8e39e2.cjs');
package/dist/cache.cjs CHANGED
@@ -5,11 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var list = require('./list.cjs');
6
6
  var map = require('./map-24d263c0.cjs');
7
7
  var time = require('./time-d8438852.cjs');
8
- require('./function-e7d18feb.cjs');
8
+ require('./function-b4e49016.cjs');
9
9
  require('./array-78849c95.cjs');
10
10
  require('./set-5b47859e.cjs');
11
- require('./object-18980796.cjs');
12
- require('./traits.cjs');
11
+ require('./object-dec41ef9.cjs');
12
+ require('./equality.cjs');
13
13
  require('./error-0c1f634f.cjs');
14
14
  require('./metric.cjs');
15
15
  require('./math-96d5e8c4.cjs');
@@ -2,25 +2,29 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dom = require('./dom-f5047a64.cjs');
6
- var diff = require('./diff-1832cb43.cjs');
7
- var object = require('./object-18980796.cjs');
5
+ var dom = require('./dom-cad267af.cjs');
6
+ var diff = require('./diff-dc7bdc65.cjs');
7
+ var object = require('./object-dec41ef9.cjs');
8
8
  var json = require('./json-092190a1.cjs');
9
9
  var string = require('./string-fddc5f8b.cjs');
10
10
  var array = require('./array-78849c95.cjs');
11
11
  var number = require('./number-1fb57bba.cjs');
12
- var _function = require('./function-e7d18feb.cjs');
12
+ var _function = require('./function-b4e49016.cjs');
13
13
  require('./pair-ab022bc3.cjs');
14
14
  require('./map-24d263c0.cjs');
15
15
  require('./schema.cjs');
16
16
  require('./error-0c1f634f.cjs');
17
- require('./environment-90227ead.cjs');
17
+ require('./environment-98bcf64f.cjs');
18
18
  require('./conditions-f5c0c102.cjs');
19
19
  require('./storage.cjs');
20
- require('./traits.cjs');
21
- require('./set-5b47859e.cjs');
22
- require('./math-96d5e8c4.cjs');
20
+ require('./equality.cjs');
21
+ require('./prng-aa81e812.cjs');
23
22
  require('./binary-ac8e39e2.cjs');
23
+ require('./math-96d5e8c4.cjs');
24
+ require('./buffer-8d110bf4.cjs');
25
+ require('./encoding-1a745c43.cjs');
26
+ require('./decoding-76e75827.cjs');
27
+ require('./set-5b47859e.cjs');
24
28
 
25
29
  /* eslint-env browser */
26
30