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/delta/text.js ADDED
@@ -0,0 +1,54 @@
1
+ import * as s from '../schema.js'
2
+ import { AbstractDeltaArrayBuilder } from './abstract-array.js'
3
+
4
+ /**
5
+ * @template Embeds
6
+ * @typedef {import('./abstract-array.js').AbstractDeltaArray<'text',import('./ops.js').DeltaTextOps<Embeds>>} DeltaText
7
+ */
8
+
9
+ /**
10
+ * @template {any} Embeds
11
+ * @extends {AbstractDeltaArrayBuilder<'text',import('./ops.js').DeltaTextOps<Embeds>>}
12
+ */
13
+ export class DeltaTextBuilder extends AbstractDeltaArrayBuilder {
14
+ /**
15
+ * @param {s.Schema<Embeds>} $embeds
16
+ */
17
+ constructor ($embeds) {
18
+ super('text', $embeds)
19
+ }
20
+ }
21
+
22
+ /**
23
+ * @overload
24
+ * @return {DeltaTextBuilder<never>}
25
+ */
26
+ /**
27
+ * @overload
28
+ * @param {string} [content]
29
+ * @return {DeltaTextBuilder<never>}
30
+ */
31
+ /**
32
+ * @template Embeds
33
+ * @overload
34
+ * @param {s.Schema<Embeds>} [$embeds]
35
+ * @return {DeltaTextBuilder<Embeds>}
36
+ */
37
+ /**
38
+ * @template {s.Schema<any>|string|undefined} Arg1
39
+ * @param {Arg1} arg1
40
+ * @return {DeltaTextBuilder<Arg1 extends s.Schema<infer Embeds> ? Embeds : never>}
41
+ */
42
+ export const text = arg1 => s.$$schema.check(arg1) ? new DeltaTextBuilder(/** @type {s.Schema<any>} */ (arg1)) : (s.$string.check(arg1) ? new DeltaTextBuilder(s.$never).insert(arg1) : new DeltaTextBuilder(s.$never))
43
+
44
+ /**
45
+ * @template {{ [key:string]: any }} Vals
46
+ * @param {s.Schema<Vals>} $embeds
47
+ * @return {s.Schema<DeltaText<Vals>>}
48
+ */
49
+ export const $text = $embeds => /** @type {s.Schema<DeltaText<Vals>>} */ (s.$instanceOf(DeltaTextBuilder, o => $embeds.extends(o.$insert)))
50
+
51
+ /**
52
+ * @return {s.Schema<DeltaText<any>>}
53
+ */
54
+ export const $textAny = /** @type {s.Schema<DeltaText<any>>} */ (s.$instanceOf(DeltaTextBuilder))
@@ -0,0 +1,6 @@
1
+ export function testDelta(_tc: t.TestCase): void;
2
+ export function testDeltaMerging(_tc: t.TestCase): void;
3
+ export function testUseAttributes(_tc: t.TestCase): void;
4
+ export function testUseAttribution(_tc: t.TestCase): void;
5
+ import * as t from 'lib0/testing';
6
+ //# sourceMappingURL=text.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.test.d.ts","sourceRoot":"","sources":["text.test.js"],"names":[],"mappings":"AAOO,+BAFI,CAAC,CAAC,QAAQ,QAKpB;AAKM,sCAFI,CAAC,CAAC,QAAQ,QAYpB;AAKM,uCAFI,CAAC,CAAC,QAAQ,QAwBpB;AAKM,wCAFI,CAAC,CAAC,QAAQ,QAwBpB;mBA/EkB,cAAc"}
@@ -0,0 +1,164 @@
1
+ export function transformResult<DeltaA extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null, DeltaB extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null>(a: DeltaA, b: DeltaB): TransformResult<DeltaA, DeltaB>;
2
+ export const transformResultEmpty: TransformResult<null, null>;
3
+ /**
4
+ * @template {any} State
5
+ * @template {s.Unwrap<delta.$delta>} DeltaA
6
+ * @template {s.Unwrap<delta.$delta>} DeltaB
7
+ * @typedef {object} TransformerDef
8
+ * @property {s.Schema<DeltaA>} TransformerDef.$in
9
+ * @property {s.Schema<DeltaB>} TransformerDef.$out
10
+ * @property {function (this: Template<State,DeltaA,DeltaB>): State} TransformerDef.state
11
+ * @property {(deltaIn:NoInfer<DeltaA>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyA
12
+ * @property {(deltaOut:NoInfer<DeltaB>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyB
13
+ */
14
+ /**
15
+ * A Delta Transformer ensures that it keeps two sources A and B in-sync, even if they use a
16
+ * different update format.
17
+ *
18
+ * @template {any} State
19
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaA
20
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaB
21
+ */
22
+ export class Transformer<State extends unknown, DeltaA extends s.Unwrap<typeof delta.$delta>, DeltaB extends s.Unwrap<typeof delta.$delta>> {
23
+ /**
24
+ * @param {Template<State,DeltaA,DeltaB>} t
25
+ * @param {State} s
26
+ */
27
+ constructor(t: Template<State, DeltaA, DeltaB>, s: State);
28
+ t: Template<State, DeltaA, DeltaB>;
29
+ _state: State;
30
+ /**
31
+ * Pending a op, for internal use only
32
+ * @type {DeltaA?}
33
+ */
34
+ _pa: DeltaA | null;
35
+ /**
36
+ * Pending a op, for internal use only
37
+ * @type {DeltaB?}
38
+ */
39
+ _pb: DeltaB | null;
40
+ /**
41
+ * Whether this transformer value has been initially consumebd by the parent transformer.
42
+ */
43
+ _init: boolean;
44
+ /**
45
+ * @type {Transformer<any,any,any>?}
46
+ */
47
+ parent: Transformer<any, any, any> | null;
48
+ /**
49
+ * @param {DeltaA} deltaA
50
+ * @return {TransformResult<DeltaA?,DeltaB?>}
51
+ */
52
+ applyA(deltaA: DeltaA): TransformResult<DeltaA | null, DeltaB | null>;
53
+ /**
54
+ * @param {DeltaB} deltaB
55
+ * @return {TransformResult<DeltaA?,DeltaB?>}
56
+ */
57
+ applyB(deltaB: DeltaB): TransformResult<DeltaA | null, DeltaB | null>;
58
+ }
59
+ /**
60
+ * @template State
61
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaA
62
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaB
63
+ */
64
+ export class Template<State, DeltaA extends s.Unwrap<typeof delta.$delta>, DeltaB extends s.Unwrap<typeof delta.$delta>> {
65
+ /**
66
+ * @param {TransformerDef<State,DeltaA,DeltaB>} def
67
+ */
68
+ constructor({ $in, $out, state, applyA, applyB }: TransformerDef<State, DeltaA, DeltaB>);
69
+ /**
70
+ * @type {s.Schema<DeltaA>}
71
+ */
72
+ $in: s.Schema<DeltaA>;
73
+ /**
74
+ * @type {s.Schema<DeltaB>}
75
+ */
76
+ $out: s.Schema<DeltaB>;
77
+ /**
78
+ * @type {() => State}
79
+ */
80
+ _state: () => State;
81
+ /**
82
+ * @type {typeof applyA}
83
+ */
84
+ _applyA: (deltaIn: NoInfer<DeltaA>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
85
+ /**
86
+ * @type {typeof applyB}
87
+ */
88
+ _applyB: (deltaOut: NoInfer<DeltaB>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
89
+ /**
90
+ * Cache for stateless transformers.
91
+ *
92
+ * @type {Transformer<State,DeltaA,DeltaB>?}
93
+ */
94
+ _tr: Transformer<State, DeltaA, DeltaB> | null;
95
+ /**
96
+ * @template {delta.AbstractDelta} R
97
+ * @param {($d: s.Schema<DeltaB>) => Template<any,DeltaB,R>} t
98
+ * @return {Template<any,DeltaA,R>}
99
+ */
100
+ pipe<R extends delta.AbstractDelta>(t: ($d: s.Schema<DeltaB>) => Template<any, DeltaB, R>): Template<any, DeltaA, R>;
101
+ init(): Transformer<State, DeltaA, DeltaB>;
102
+ }
103
+ export function $template<DeltaA extends delta.AbstractDelta, DeltaB extends delta.AbstractDelta>($deltaA: s.Schema<DeltaA>, $deltaB: s.Schema<DeltaB>): s.Schema<Template<any, DeltaA, DeltaB>>;
104
+ export const $templateAny: s.Schema<Template<any, any, any>>;
105
+ export function maybeFixedToTemplate<MaybeFixed>(maybeFixed: MaybeFixed): MaybeFixed extends Template<any, any, delta.Delta> ? (Extract<MaybeFixed, Template<any, any, any>>) : Template<any, any, MaybeFixed extends delta.Delta ? Extract<MaybeFixed, delta.Delta> : delta.Array<MaybeFixed[keyof MaybeFixed]>>;
106
+ export function transformStatic<DeltaA extends delta.AbstractDelta, Tr extends Template<any, DeltaA, any>>(_$deltaA: s.Schema<DeltaA>, transformer: Tr): <DA extends DeltaA>($d: s.Schema<DA>) => Tr extends Template<any, any, infer DeltaB> ? Template<any, DA, DeltaB> : never;
107
+ export function transform<DeltaA extends delta.AbstractDelta, TF extends <DA extends DeltaA>($deltaA: s.Schema<DA>) => Template<any, DA, any>>(_$deltaA: s.Schema<DeltaA>, transformerFactory: TF): TF;
108
+ export function pipe<DeltaA extends delta.AbstractDelta, DeltaB extends delta.AbstractDelta, DeltaC extends delta.AbstractDelta>(t1: ($s: s.Schema<DeltaA>) => Template<any, DeltaA, DeltaB>, t2: ($s: s.Schema<DeltaB>) => Template<any, DeltaB, DeltaC>): ($d: s.Schema<DeltaA>) => Template<any, DeltaA, DeltaC>;
109
+ export function template<State extends unknown, DeltaIn extends s.Unwrap<typeof delta.$delta>, DeltaOut extends s.Unwrap<typeof delta.$delta>>(def: TransformerDef<State, DeltaIn, DeltaOut>): Template<State, DeltaIn, DeltaOut>;
110
+ export function fixed<FixedContent>(fixedContent: FixedContent): Template<any, any, FixedContent extends delta.AbstractDelta ? FixedContent : delta.Value<FixedContent>>;
111
+ export function map<T extends {
112
+ [key: string]: any;
113
+ }>(definition: T): MapDefToTemplate<T> extends Template<any, infer A, infer B> ? Template<any, A, B> : never;
114
+ export function array<T extends Array<any>>(definition: T): Template<any, AnyArrayToTemplate<T>[number] extends Template<any, infer DeltaA, any> ? DeltaA : never, delta.Array<AnyArrayToTemplate<T>[number] extends Template<any, any, infer DeltaB> ? delta.ValueUnwrap<DeltaB> : never>>;
115
+ export function node<NodeName extends string, Attrs extends {
116
+ [key: string]: any;
117
+ } | Template<any, any, delta.Map<{
118
+ [key: string]: any;
119
+ }>>, Children extends Template<any, any, delta.Array<any, any>> | Array<any>>(name: NodeName, attributes: Attrs, children: Children): Template<any, MapOrMapDefToTemplate<Attrs> extends Template<any, infer A, any> ? A : never, delta.Node<NodeName, MapOrMapDefToTemplate<Attrs> extends Template<any, any, delta.Map<infer M>> ? M : never, MaybeFixedTemplateToTemplate<Children> extends Template<any, any, delta.Array<infer BChildren, any>> ? BChildren : never, any>>;
120
+ export function query<Path extends Array<string>>(...path: Path): <DA extends PathToDelta<Path>>($in: s.Schema<DA>) => Template<any, DA, delta.Value<QueryFollowPath<DA, Path>>>;
121
+ export function id<Delta extends delta.AbstractDelta>($in: s.Schema<Delta>): Template<null, Delta, Delta>;
122
+ /**
123
+ * Creates a transformer template after receiving schema for DeltaA.
124
+ */
125
+ export type TransformerFactory<DeltaA extends delta.AbstractDelta> = <DA extends DeltaA>($deltaA: s.Schema<DA>) => Template<any, DA, any>;
126
+ export type DeltaBFromTransformerFactory<T extends TransformerFactory<any>, DeltaA extends delta.AbstractDelta> = T extends (($deltaA: s.Schema<DeltaA>) => Template<any, DeltaA, infer DeltaB>) ? DeltaB : never;
127
+ export type TransformResult<DeltaA extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null = delta.AbstractDelta | null, DeltaB extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null = delta.AbstractDelta | null> = {
128
+ a: DeltaA;
129
+ b: DeltaB;
130
+ };
131
+ export type TransformerDef<State extends unknown, DeltaA extends s.Unwrap<s.Schema<delta.AbstractDelta>>, DeltaB extends s.Unwrap<s.Schema<delta.AbstractDelta>>> = {
132
+ $in: s.Schema<DeltaA>;
133
+ $out: s.Schema<DeltaB>;
134
+ state: (this: Template<State, DeltaA, DeltaB>) => State;
135
+ applyA: (deltaIn: NoInfer<DeltaA>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
136
+ applyB: (deltaOut: NoInfer<DeltaB>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
137
+ };
138
+ export type MaybeFixedTemplate<DeltaA extends delta.AbstractDelta, DeltaB extends delta.AbstractDelta> = Template<any, DeltaA, DeltaB> | (DeltaB extends delta.Map<infer MKV> ? (MKV | DeltaB) : (DeltaB extends delta.Array<infer MArr> ? (MArr | DeltaB) : DeltaB));
139
+ export type UnwrapTemplateForArray<X> = X extends Template<any, any, infer D> ? (D extends delta.Value<infer V> ? V : D) : X;
140
+ export type MaybeFixedTemplateToTemplate<MaybeFixed extends unknown> = MaybeFixed extends Template<any, any, any> ? MaybeFixed : Template<any, any, MaybeFixed extends delta.AbstractDelta ? MaybeFixed : (MaybeFixed extends Array<any> ? delta.Array<UnwrapTemplateForArray<MaybeFixed[number]>> : (MaybeFixed extends {
141
+ [key: string]: any;
142
+ } ? delta.Map<MaybeFixed> : never))>;
143
+ export type AnyToTemplate<MaybeTemplate> = [MaybeTemplate] extends [Template<any, any, any>] ? MaybeTemplate : Template<any, any, [MaybeTemplate] extends [delta.AbstractDelta] ? MaybeTemplate : delta.Value<MaybeTemplate>>;
144
+ export type AnyMapToTemplate<MaybeTemplateMap extends {
145
+ [key: string]: any;
146
+ }> = { [K in keyof MaybeTemplateMap]: AnyToTemplate<MaybeTemplateMap[K]>; };
147
+ export type AnyArrayToTemplate<MaybeTemplateArray extends Array<any>> = { [K in keyof MaybeTemplateArray]: AnyToTemplate<MaybeTemplateArray[K]>; };
148
+ export type MapDefToTemplate<T extends {
149
+ [key: string]: any;
150
+ }> = Template<any, AnyMapToTemplate<T>[keyof T] extends Template<any, infer DeltaA, any> ? DeltaA : never, delta.Map<{ [K in keyof T]: AnyToTemplate<T[K]> extends Template<any, any, infer DeltaB> ? (DeltaB extends delta.Value<infer V> ? V : DeltaB) : AnyToTemplate<T[K]>; }>>;
151
+ export type MapOrMapDefToTemplate<T extends {
152
+ [key: string]: any;
153
+ } | Template<any, any, delta.Map<any>>> = T extends Template<any, any, any> ? T : MapDefToTemplate<T>;
154
+ export type _FollowPath<KV extends {
155
+ [k: string]: any;
156
+ }> = delta.Map<KV> | delta.Node<any, KV, any, any>;
157
+ export type QueryFollowPath<D extends unknown, Path extends string[]> = Path extends [] ? D : Path extends [infer P, ...infer PRest] ? (P extends string ? (D extends _AttrDeltaType<{ [K in P]: infer V; }> ? QueryFollowPath<V, PRest extends string[] ? PRest : never> : never) : never) : never;
158
+ export type _AttrDeltaType<Attrs extends {
159
+ [k: string]: any;
160
+ }> = delta.Map<Partial<Attrs>> | delta.Node<any, Partial<Attrs>, any, any>;
161
+ export type PathToDelta<Path extends Array<string>> = Path extends [infer P, ...infer PRest] ? (_AttrDeltaType<{ [K in (P extends string ? P : any)]: PathToDelta<PRest extends Array<string> ? PRest : any>; }>) : any;
162
+ import * as s from '../schema.js';
163
+ import * as delta from './index.js';
164
+ //# sourceMappingURL=transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["transformer.js"],"names":[],"mappings":"AA8BO,gCANoC,MAAM,SAAnC,CAAC,CAAC,MAAM,+BAAc,GAAC,IAAK,EACC,MAAM,SAAnC,CAAC,CAAC,MAAM,+BAAc,GAAC,IAAK,KAC/B,MAAM,KACN,MAAM,GACL,eAAe,CAAC,MAAM,EAAC,MAAM,CAAC,CAES;AACnD,+DAA+D;AAE/D;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,yBAJmB,KAAK,kBACqB,MAAM,SAArC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAE,EACC,MAAM,SAArC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAE;IAG1C;;;OAGG;IACH,eAHW,QAAQ,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAC,KAC7B,KAAK,EAuBf;IApBC,mCAAU;IACV,cAAe;IACf;;;OAGG;IACH,KAFU,MAAM,OAAC,CAEF;IACf;;;OAGG;IACH,KAFU,MAAM,OAAC,CAEF;IACf;;OAEG;IACH,eAAkB;IAClB;;OAEG;IACH,QAFU,WAAW,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,OAAC,CAEjB;IAGpB;;;OAGG;IACH,eAHW,MAAM,GACL,eAAe,CAAC,MAAM,OAAC,EAAC,MAAM,OAAC,CAAC,CAI3C;IAED;;;OAGG;IACH,eAHW,MAAM,GACL,eAAe,CAAC,MAAM,OAAC,EAAC,MAAM,OAAC,CAAC,CAI3C;CACF;AAmED;;;;GAIG;AACH,sBAJa,KAAK,EAC2B,MAAM,SAArC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAE,EACC,MAAM,SAArC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAE;IAG1C;;OAEG;IACH,kDAFW,cAAc,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAC,EA6B7C;IA1BC;;OAEG;IACH,KAFU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAEZ;IACd;;OAEG;IACH,MAFU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAEV;IAChB;;OAEG;IACH,QAFU,MAAM,KAAK,CAEF;IACnB;;OAEG;IACH,0HAAqB;IACrB;;OAEG;IACH,2HAAqB;IACrB;;;;OAIG;IACH,KAFU,WAAW,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAC,OAAC,CAE5B;IAGjB;;;;OAIG;IACH,KAJmC,CAAC,SAAtB,KAAK,CAAC,aAAc,KACvB,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,CAAC,CAAC,GAC/C,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,CAAC,CAAC,CASjC;IAED,2CAQC;CACF;AASM,0BAN4B,MAAM,SAA3B,KAAK,CAAC,aAAc,EACC,MAAM,SAA3B,KAAK,CAAC,aAAc,WACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAChB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GACf,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC,CAE8H;AAC/K,2BAAuC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,CAA8B;AAoC7F,qCAJM,UAAU,cACZ,UAAU,GACT,UAAU,SAAS,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,UAAU,SAAS,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,EAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAUtO;AASE,gCAN4B,MAAM,SAA3B,KAAK,CAAC,aAAc,EACM,EAAE,SAA5B,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,GAAG,CAAE,YAC5B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,eAChB,EAAE,GACD,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,EAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,MAAM,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAC,EAAE,EAAC,MAAM,CAAC,GAAG,KAAK,CAE/B;AASzF,0BAN4B,MAAM,SAA3B,KAAK,CAAC,aAAc,EACiD,EAAE,SAAxE,CAAE,EAAE,SAAS,MAAM,EAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAC,EAAE,EAAC,GAAG,CAAE,YACvE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,sBAChB,EAAE,GACD,EAAE,CAE+D;AA+EtE,qBAP4B,MAAM,SAA3B,KAAK,CAAC,aAAc,EACC,MAAM,SAA3B,KAAK,CAAC,aAAc,EACC,MAAM,SAA3B,KAAK,CAAC,aAAc,MACvB,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,CAAC,MACrD,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,CAAC,GACpD,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,CAAC,CAUhE;AASM,yBANY,KAAK,kBACqB,OAAO,SAAtC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAE,EACC,QAAQ,SAAvC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAE,OACjC,cAAc,CAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,CAAC,GACrC,QAAQ,CAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,CAAC,CAEyB;AAO9D,sBAJM,YAAY,gBACd,YAAY,GACX,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,YAAY,SAAS,KAAK,CAAC,aAAa,GAAG,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAoBhH;AAkCM,oBAJ8B,CAAC,SAAzB;IAAG,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;CAAG,cACzB,CAAC,GACA,gBAAgB,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,KAAK,CA8ChG;AA8FM,sBARmB,CAAC,SAAb,KAAK,CAAC,GAAG,CAAE,cACd,CAAC,GACA,QAAQ,CACnB,GAAO,EACH,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,EACvF,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CACxH,CA8CH;AAoHM,qBAjBe,QAAQ,SAAjB,MAAQ,EACiE,KAAK,SAA7E;IAAE,CAAC,GAAG,EAAC,MAAM,GAAE,GAAG,CAAA;CAAE,GAAG,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,KAAK,CAAC,GAAG,CAAC;IAAC,CAAC,GAAG,EAAC,MAAM,GAAE,GAAG,CAAA;CAAC,CAAC,CAAE,EAClB,QAAQ,SAA7D,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAE,QACvD,QAAQ,cACR,KAAK,YACL,QAAQ,GACP,QAAQ,CACnB,GAAO,EACH,qBAAqB,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,EAC5E,KAAK,CAAC,IAAI,CACR,QAAQ,EACR,qBAAqB,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EACrF,4BAA4B,CAAC,QAAQ,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,KAAK,CAAC,KAAK,CAAC,MAAM,SAAS,EAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,KAAK,EAC3H,GAAS,CACJ,CACF,CA8BH;AAmCM,sBAJsB,IAAI,SAAnB,KAAK,CAAC,MAAM,CAAE,WACjB,IAAI,GACH,CAAC,EAAE,SAAS,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,EAAC,IAAI,CAAC,CAAC,CAAC,CA4DtH;AAOI,mBAJ4B,KAAK,SAA1B,KAAK,CAAC,aAAc,OACvB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACd,QAAQ,CAAC,IAAI,EAAC,KAAK,EAAC,KAAK,CAAC,CAYpC;;;;+BAh3BiC,MAAM,SAA3B,KAAK,CAAC,aAAc,IACrB,CAAC,EAAE,SAAS,MAAM,EAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAC,EAAE,EAAC,GAAG,CAAC;yCAIzC,CAAC,SAA1B,kBAAkB,CAAC,GAAG,CAAE,EACH,MAAM,SAA3B,KAAK,CAAC,aAAc,IACrB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK;4BAI9D,MAAM,SAApC,CAAC,CAAC,MAAM,+BAAc,GAAC,IAAK,+BACE,MAAM,SAApC,CAAC,CAAC,MAAM,+BAAc,GAAC,IAAK,iCAC7B;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;2BAclB,KAAK,kBACc,MAAM,SAA9B,CAAC,CAAC,MAAM,+BAAe,EACC,MAAM,SAA9B,CAAC,CAAC,MAAM,+BAAe;SAEvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;UAChB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;WAChB,CAAU,IAAmC,EAA7B,QAAQ,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAC,KAAG,KAAK;YACrD,CAAC,OAAO,EAAC,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,EAAC,OAAO,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,OAAC,EAAC,OAAO,CAAC,MAAM,CAAC,OAAC,CAAC;YAChG,CAAC,QAAQ,EAAC,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,EAAC,OAAO,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,OAAC,EAAC,OAAO,CAAC,MAAM,CAAC,OAAC,CAAC;;+BAmM5E,MAAM,SAA3B,KAAK,CAAC,aAAc,EACC,MAAM,SAA3B,KAAK,CAAC,aAAc,IACrB,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,CAAC,GAAC,CAClC,MAAM,SAAS,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAC/B,CAAC,GAAG,GAAC,MAAM,CAAC,GACZ,CAAC,MAAM,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,GAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;mCAKhE,CAAC,IACD,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;yCAI5E,UAAU,oBAChB,UAAU,SAAS,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,GAC9C,UAAU,GACV,QAAQ,CAAC,GAAG,EAAC,GAAG,EAChB,UAAU,SAAS,KAAK,CAAC,aAAa,GAClC,UAAU,GACV,CAAC,UAAU,SAAS,KAAK,CAAC,GAAG,CAAC,GAC5B,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GACvD,CAAC,UAAU,SAAS;IAAC,CAAC,GAAG,EAAC,MAAM,GAAE,GAAG,CAAA;CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAC/E;0BA+JO,aAAa,IACb,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,GAAG,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAC,GAAG,EAC9F,CAAK,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAC3F;6BAIkC,gBAAgB,SAAzC;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAG,IACxB,GAAG,CAAC,IAAI,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAE;+BAIxD,kBAAkB,SAA9B,KAAK,CAAC,GAAG,CAAE,IACZ,GAAG,CAAC,IAAI,MAAM,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAE;6BAIjD,CAAC,SAAzB;IAAG,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;CAAG,IACvB,QAAQ,CACpB,GAAO,EACH,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,EAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,EACrF,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC,GACpF,CAAC,MAAM,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAC/E;kCA4RmE,CAAC,SAA3D;IAAE,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,IAC1D,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;wBAoDtC,EAAE,SAArB;IAAE,CAAC,CAAC,EAAC,MAAM,GAAE,GAAG,CAAA;CAAE,IAClB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,CAAC;4BAIpC,CAAC,kBACI,IAAI,SAAd,MAAM,EAAG,IACV,IAAI,SAAS,EAAE,GACrB,CAAC,GACD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,GACpC,CACA,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAC,KAAK,SAAS,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CACjJ,GACC,KAAK;2BAKkB,KAAK,SAAxB;IAAE,CAAC,CAAC,EAAC,MAAM,GAAE,GAAG,CAAA;CAAE,IAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,CAAC,KAAK,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC;wBAIlD,IAAI,SAAnB,KAAK,CAAC,MAAM,CAAE,IACf,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,SAAS,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,GAAE,CAAC,CAAC,GAAG,GAAG;mBAlyB1J,cAAc;uBADV,YAAY"}