lib0 0.2.112 → 0.2.115-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +1 -1
  2. package/broadcastchannel.js +1 -1
  3. package/buffer.d.ts +3 -3
  4. package/buffer.d.ts.map +1 -1
  5. package/buffer.js +1 -1
  6. package/coverage/tmp/coverage-27667-1761218530660-0.json +1 -0
  7. package/coverage/tmp/{coverage-20055-1752683207886-0.json → coverage-27668-1761218485882-0.json} +1 -1
  8. package/crypto/aes-gcm.d.ts +4 -4
  9. package/crypto/aes-gcm.d.ts.map +1 -1
  10. package/crypto/aes-gcm.js +6 -6
  11. package/crypto/common.d.ts +1 -1
  12. package/crypto/common.d.ts.map +1 -1
  13. package/crypto/common.js +1 -1
  14. package/crypto/ecdsa.d.ts +2 -2
  15. package/crypto/ecdsa.d.ts.map +1 -1
  16. package/crypto/ecdsa.js +4 -4
  17. package/crypto/rsa-oaep.d.ts +2 -2
  18. package/crypto/rsa-oaep.d.ts.map +1 -1
  19. package/crypto/rsa-oaep.js +3 -3
  20. package/decoding.d.ts +27 -14
  21. package/decoding.d.ts.map +1 -1
  22. package/decoding.js +12 -8
  23. package/delta/abstract-array.d.ts +166 -0
  24. package/delta/abstract-array.d.ts.map +1 -0
  25. package/delta/abstract-array.js +421 -0
  26. package/delta/abstract.d.ts +69 -0
  27. package/delta/abstract.d.ts.map +1 -0
  28. package/delta/abstract.js +102 -0
  29. package/delta/array.d.ts +23 -0
  30. package/delta/array.d.ts.map +1 -0
  31. package/delta/array.js +45 -0
  32. package/delta/array.test.d.ts +2 -0
  33. package/delta/array.test.d.ts.map +1 -0
  34. package/delta/binding.d.ts +105 -0
  35. package/delta/binding.d.ts.map +1 -0
  36. package/delta/binding.js +369 -0
  37. package/delta/binding.test.d.ts +5 -0
  38. package/delta/binding.test.d.ts.map +1 -0
  39. package/delta/d2.d.ts +705 -0
  40. package/delta/d2.d.ts.map +1 -0
  41. package/delta/d2.js +1309 -0
  42. package/delta/d2.test.d.ts +15 -0
  43. package/delta/d2.test.d.ts.map +1 -0
  44. package/delta/index.d.ts +14 -0
  45. package/delta/index.d.ts.map +1 -0
  46. package/delta/index.js +79 -0
  47. package/delta/map.d.ts +230 -0
  48. package/delta/map.d.ts.map +1 -0
  49. package/delta/map.js +304 -0
  50. package/delta/node.d.ts +119 -0
  51. package/delta/node.d.ts.map +1 -0
  52. package/delta/node.js +183 -0
  53. package/delta/node.test.d.ts +4 -0
  54. package/delta/node.test.d.ts.map +1 -0
  55. package/delta/ops.d.ts +466 -0
  56. package/delta/ops.d.ts.map +1 -0
  57. package/delta/ops.js +544 -0
  58. package/delta/readme.md +129 -0
  59. package/delta/text.d.ts +43 -0
  60. package/delta/text.d.ts.map +1 -0
  61. package/delta/text.js +54 -0
  62. package/delta/text.test.d.ts +6 -0
  63. package/delta/text.test.d.ts.map +1 -0
  64. package/delta/transformer.d.ts +164 -0
  65. package/delta/transformer.d.ts.map +1 -0
  66. package/delta/transformer.js +888 -0
  67. package/delta/transformer.test.d.ts +13 -0
  68. package/delta/transformer.test.d.ts.map +1 -0
  69. package/delta/value.d.ts +84 -0
  70. package/delta/value.d.ts.map +1 -0
  71. package/delta/value.js +168 -0
  72. package/dist/abstract-array.cjs +433 -0
  73. package/dist/abstract-array.cjs.map +1 -0
  74. package/dist/abstract.cjs +122 -0
  75. package/dist/abstract.cjs.map +1 -0
  76. package/dist/aes-gcm.cjs +12 -12
  77. package/dist/aes-gcm.cjs.map +1 -1
  78. package/dist/array.cjs +60 -17
  79. package/dist/array.cjs.map +1 -1
  80. package/dist/array2.cjs +26 -0
  81. package/dist/array2.cjs.map +1 -0
  82. package/dist/binding.cjs +398 -0
  83. package/dist/binding.cjs.map +1 -0
  84. package/dist/{broadcastchannel-2c4b0a1c.cjs → broadcastchannel-b4eaea6e.cjs} +4 -4
  85. package/dist/broadcastchannel-b4eaea6e.cjs.map +1 -0
  86. package/dist/broadcastchannel.cjs +12 -12
  87. package/dist/{buffer-a74f7330.cjs → buffer-adc4e6ea.cjs} +7 -7
  88. package/dist/buffer-adc4e6ea.cjs.map +1 -0
  89. package/dist/buffer.cjs +11 -11
  90. package/dist/buffer.d.ts +3 -3
  91. package/dist/buffer.d.ts.map +1 -1
  92. package/dist/cache.cjs +6 -6
  93. package/dist/common.cjs +1 -1
  94. package/dist/common.cjs.map +1 -1
  95. package/dist/component.cjs +14 -9
  96. package/dist/component.cjs.map +1 -1
  97. package/dist/crypto/aes-gcm.d.ts +4 -4
  98. package/dist/crypto/aes-gcm.d.ts.map +1 -1
  99. package/dist/crypto/common.d.ts +1 -1
  100. package/dist/crypto/common.d.ts.map +1 -1
  101. package/dist/crypto/ecdsa.d.ts +2 -2
  102. package/dist/crypto/ecdsa.d.ts.map +1 -1
  103. package/dist/crypto/rsa-oaep.d.ts +2 -2
  104. package/dist/crypto/rsa-oaep.d.ts.map +1 -1
  105. package/dist/d2.cjs +1347 -0
  106. package/dist/d2.cjs.map +1 -0
  107. package/dist/{decoding-2b136346.cjs → decoding-50b9ce38.cjs} +18 -14
  108. package/dist/decoding-50b9ce38.cjs.map +1 -0
  109. package/dist/decoding.cjs +6 -6
  110. package/dist/decoding.d.ts +27 -14
  111. package/dist/decoding.d.ts.map +1 -1
  112. package/dist/delta/abstract-array.d.ts +166 -0
  113. package/dist/delta/abstract-array.d.ts.map +1 -0
  114. package/dist/delta/abstract.d.ts +69 -0
  115. package/dist/delta/abstract.d.ts.map +1 -0
  116. package/dist/delta/array.d.ts +23 -0
  117. package/dist/delta/array.d.ts.map +1 -0
  118. package/dist/delta/array.test.d.ts +2 -0
  119. package/dist/delta/array.test.d.ts.map +1 -0
  120. package/dist/delta/binding.d.ts +105 -0
  121. package/dist/delta/binding.d.ts.map +1 -0
  122. package/dist/delta/binding.test.d.ts +5 -0
  123. package/dist/delta/binding.test.d.ts.map +1 -0
  124. package/dist/delta/d2.d.ts +705 -0
  125. package/dist/delta/d2.d.ts.map +1 -0
  126. package/dist/delta/d2.test.d.ts +15 -0
  127. package/dist/delta/d2.test.d.ts.map +1 -0
  128. package/dist/delta/index.d.ts +14 -0
  129. package/dist/delta/index.d.ts.map +1 -0
  130. package/dist/delta/map.d.ts +230 -0
  131. package/dist/delta/map.d.ts.map +1 -0
  132. package/dist/delta/node.d.ts +119 -0
  133. package/dist/delta/node.d.ts.map +1 -0
  134. package/dist/delta/node.test.d.ts +4 -0
  135. package/dist/delta/node.test.d.ts.map +1 -0
  136. package/dist/delta/ops.d.ts +466 -0
  137. package/dist/delta/ops.d.ts.map +1 -0
  138. package/dist/delta/text.d.ts +43 -0
  139. package/dist/delta/text.d.ts.map +1 -0
  140. package/dist/delta/text.test.d.ts +6 -0
  141. package/dist/delta/text.test.d.ts.map +1 -0
  142. package/dist/delta/transformer.d.ts +164 -0
  143. package/dist/delta/transformer.d.ts.map +1 -0
  144. package/dist/delta/transformer.test.d.ts +13 -0
  145. package/dist/delta/transformer.test.d.ts.map +1 -0
  146. package/dist/delta/value.d.ts +84 -0
  147. package/dist/delta/value.d.ts.map +1 -0
  148. package/dist/{diff-77c4cf8e.cjs → diff-f0776c15.cjs} +2 -2
  149. package/dist/{diff-77c4cf8e.cjs.map → diff-f0776c15.cjs.map} +1 -1
  150. package/dist/diff.cjs +3 -3
  151. package/dist/{dom-16daf1a0.cjs → dom-2b123630.cjs} +31 -2
  152. package/dist/dom-2b123630.cjs.map +1 -0
  153. package/dist/dom.cjs +17 -2
  154. package/dist/dom.cjs.map +1 -1
  155. package/dist/dom.d.ts +17 -0
  156. package/dist/dom.d.ts.map +1 -1
  157. package/dist/ecdsa.cjs +4 -4
  158. package/dist/ecdsa.cjs.map +1 -1
  159. package/dist/{encoding-1acb59c4.cjs → encoding-7f85922c.cjs} +5 -5
  160. package/dist/encoding-7f85922c.cjs.map +1 -0
  161. package/dist/encoding.cjs +4 -4
  162. package/dist/encoding.d.ts +6 -6
  163. package/dist/encoding.d.ts.map +1 -1
  164. package/dist/{environment-2de08e0e.cjs → environment-90227ead.cjs} +4 -4
  165. package/dist/{environment-2de08e0e.cjs.map → environment-90227ead.cjs.map} +1 -1
  166. package/dist/environment.cjs +5 -5
  167. package/dist/{error-8582d695.cjs → error-0c1f634f.cjs} +10 -2
  168. package/dist/error-0c1f634f.cjs.map +1 -0
  169. package/dist/error.cjs +2 -1
  170. package/dist/error.cjs.map +1 -1
  171. package/dist/error.d.ts +1 -0
  172. package/dist/error.d.ts.map +1 -1
  173. package/dist/{eventloop-b299a889.cjs → eventloop-a0168106.cjs} +2 -2
  174. package/dist/{eventloop-b299a889.cjs.map → eventloop-a0168106.cjs.map} +1 -1
  175. package/dist/eventloop.cjs +3 -3
  176. package/dist/{function-09b8292c.cjs → function-e7d18feb.cjs} +2 -2
  177. package/dist/{function-09b8292c.cjs.map → function-e7d18feb.cjs.map} +1 -1
  178. package/dist/function.cjs +2 -2
  179. package/dist/index.cjs +23 -22
  180. package/dist/index.cjs.map +1 -1
  181. package/dist/index2.cjs +71 -0
  182. package/dist/index2.cjs.map +1 -0
  183. package/dist/{indexeddb-0cbb4d6f.cjs → indexeddb-46d1e737.cjs} +3 -3
  184. package/dist/{indexeddb-0cbb4d6f.cjs.map → indexeddb-46d1e737.cjs.map} +1 -1
  185. package/dist/indexeddb.cjs +5 -5
  186. package/dist/indexeddbV2.cjs +2 -1
  187. package/dist/indexeddbV2.cjs.map +1 -1
  188. package/dist/jwt.cjs +12 -12
  189. package/dist/list.cjs +39 -12
  190. package/dist/list.cjs.map +1 -1
  191. package/dist/list.d.ts +13 -3
  192. package/dist/list.d.ts.map +1 -1
  193. package/dist/logging.cjs +11 -9
  194. package/dist/logging.cjs.map +1 -1
  195. package/dist/logging.common.cjs +7 -7
  196. package/dist/logging.node.cjs +7 -7
  197. package/dist/{map-0dabcc55.cjs → map-24d263c0.cjs} +7 -1
  198. package/dist/map-24d263c0.cjs.map +1 -0
  199. package/dist/map.cjs +314 -7
  200. package/dist/map.cjs.map +1 -1
  201. package/dist/map.d.ts +1 -0
  202. package/dist/map.d.ts.map +1 -1
  203. package/dist/map2.cjs +15 -0
  204. package/dist/map2.cjs.map +1 -0
  205. package/dist/{math-08e068f9.cjs → math-96d5e8c4.cjs} +4 -2
  206. package/dist/math-96d5e8c4.cjs.map +1 -0
  207. package/dist/math.cjs +1 -1
  208. package/dist/math.d.ts.map +1 -1
  209. package/dist/metric.cjs +1 -1
  210. package/dist/node.cjs +206 -0
  211. package/dist/node.cjs.map +1 -0
  212. package/dist/{number-466d8922.cjs → number-1fb57bba.cjs} +2 -2
  213. package/dist/{number-466d8922.cjs.map → number-1fb57bba.cjs.map} +1 -1
  214. package/dist/number.cjs +2 -2
  215. package/dist/{object-491858d1.cjs → object-18980796.cjs} +12 -2
  216. package/dist/object-18980796.cjs.map +1 -0
  217. package/dist/object.cjs +3 -1
  218. package/dist/object.cjs.map +1 -1
  219. package/dist/object.d.ts +3 -0
  220. package/dist/object.d.ts.map +1 -1
  221. package/dist/observable.cjs +1 -1
  222. package/dist/ops.cjs +575 -0
  223. package/dist/ops.cjs.map +1 -0
  224. package/dist/patience.cjs +2 -2
  225. package/dist/performance.node.cjs +4 -4
  226. package/dist/pledge.cjs +2 -1
  227. package/dist/pledge.cjs.map +1 -1
  228. package/dist/{prng-24dfe0bf.cjs → prng-004c76e8.cjs} +5 -5
  229. package/dist/{prng-24dfe0bf.cjs.map → prng-004c76e8.cjs.map} +1 -1
  230. package/dist/prng.cjs +12 -12
  231. package/dist/prng.d.ts +1 -1
  232. package/dist/prng.d.ts.map +1 -1
  233. package/dist/{promise-7d13a97c.cjs → promise-cda7b9bb.cjs} +2 -2
  234. package/dist/{promise-7d13a97c.cjs.map → promise-cda7b9bb.cjs.map} +1 -1
  235. package/dist/promise.cjs +3 -3
  236. package/dist/rabin-gf2-polynomial.cjs +11 -11
  237. package/dist/rabin-uncached.cjs +11 -11
  238. package/dist/rabin.cjs +11 -11
  239. package/dist/random.cjs +1 -1
  240. package/dist/rsa-oaep.cjs +3 -3
  241. package/dist/rsa-oaep.cjs.map +1 -1
  242. package/dist/schema.cjs +572 -167
  243. package/dist/schema.cjs.map +1 -1
  244. package/dist/schema.d.ts +326 -122
  245. package/dist/schema.d.ts.map +1 -1
  246. package/dist/schema.test.d.ts +5 -0
  247. package/dist/schema.test.d.ts.map +1 -1
  248. package/dist/{sort-b8702761.cjs → sort-812cc211.cjs} +2 -2
  249. package/dist/{sort-b8702761.cjs.map → sort-812cc211.cjs.map} +1 -1
  250. package/dist/sort.cjs +2 -2
  251. package/dist/{statistics-c2316dca.cjs → statistics-65f6114b.cjs} +2 -2
  252. package/dist/{statistics-c2316dca.cjs.map → statistics-65f6114b.cjs.map} +1 -1
  253. package/dist/statistics.cjs +2 -2
  254. package/dist/{string-b2827a90.cjs → string-fddc5f8b.cjs} +3 -3
  255. package/dist/string-fddc5f8b.cjs.map +1 -0
  256. package/dist/string.cjs +1 -1
  257. package/dist/string.d.ts +3 -3
  258. package/dist/string.d.ts.map +1 -1
  259. package/dist/testing.cjs +16 -16
  260. package/dist/text.cjs +79 -0
  261. package/dist/text.cjs.map +1 -0
  262. package/dist/{time-bc2081b9.cjs → time-d8438852.cjs} +2 -2
  263. package/dist/{time-bc2081b9.cjs.map → time-d8438852.cjs.map} +1 -1
  264. package/dist/time.cjs +2 -2
  265. package/dist/traits.cjs +22 -0
  266. package/dist/traits.cjs.map +1 -1
  267. package/dist/traits.d.ts +1 -0
  268. package/dist/traits.d.ts.map +1 -1
  269. package/dist/traits.test.d.ts.map +1 -1
  270. package/dist/transformer.cjs +930 -0
  271. package/dist/transformer.cjs.map +1 -0
  272. package/dist/url.cjs +2 -1
  273. package/dist/url.cjs.map +1 -1
  274. package/dist/value.cjs +187 -0
  275. package/dist/value.cjs.map +1 -0
  276. package/dist/webcrypto.d.ts +1 -1
  277. package/dist/webcrypto.d.ts.map +1 -1
  278. package/dist/{websocket-40a601d4.cjs → websocket-b073d0fc.cjs} +3 -3
  279. package/dist/{websocket-40a601d4.cjs.map → websocket-b073d0fc.cjs.map} +1 -1
  280. package/dist/websocket.cjs +4 -4
  281. package/dom.d.ts +17 -0
  282. package/dom.d.ts.map +1 -1
  283. package/dom.js +21 -0
  284. package/encoding.d.ts +6 -6
  285. package/encoding.d.ts.map +1 -1
  286. package/encoding.js +1 -1
  287. package/error.d.ts +1 -0
  288. package/error.d.ts.map +1 -1
  289. package/error.js +6 -0
  290. package/list.d.ts +13 -3
  291. package/list.d.ts.map +1 -1
  292. package/list.js +36 -8
  293. package/map.d.ts +1 -0
  294. package/map.d.ts.map +1 -1
  295. package/map.js +6 -0
  296. package/math.d.ts.map +1 -1
  297. package/math.js +3 -1
  298. package/object.d.ts +3 -0
  299. package/object.d.ts.map +1 -1
  300. package/object.js +9 -1
  301. package/package.json +9 -3
  302. package/prng.d.ts +1 -1
  303. package/prng.d.ts.map +1 -1
  304. package/prng.js +1 -1
  305. package/schema.d.ts +326 -122
  306. package/schema.d.ts.map +1 -1
  307. package/schema.js +513 -141
  308. package/schema.test.d.ts +5 -0
  309. package/schema.test.d.ts.map +1 -1
  310. package/string.d.ts +3 -3
  311. package/string.d.ts.map +1 -1
  312. package/string.js +2 -2
  313. package/test.html +1 -0
  314. package/test.js +13 -1
  315. package/traits.d.ts +1 -0
  316. package/traits.d.ts.map +1 -1
  317. package/traits.js +21 -0
  318. package/traits.test.d.ts.map +1 -1
  319. package/webcrypto.d.ts +1 -1
  320. package/webcrypto.d.ts.map +1 -1
  321. package/coverage/tmp/coverage-20054-1752683240888-0.json +0 -1
  322. package/dist/broadcastchannel-2c4b0a1c.cjs.map +0 -1
  323. package/dist/buffer-a74f7330.cjs.map +0 -1
  324. package/dist/decoding-2b136346.cjs.map +0 -1
  325. package/dist/dom-16daf1a0.cjs.map +0 -1
  326. package/dist/encoding-1acb59c4.cjs.map +0 -1
  327. package/dist/error-8582d695.cjs.map +0 -1
  328. package/dist/map-0dabcc55.cjs.map +0 -1
  329. package/dist/math-08e068f9.cjs.map +0 -1
  330. package/dist/object-491858d1.cjs.map +0 -1
  331. package/dist/string-b2827a90.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.cjs","sources":["../delta/transformer.js"],"sourcesContent":["import * as error from '../error.js'\nimport * as delta from './index.js'\nimport * as s from '../schema.js'\n\n/**\n * Creates a transformer template after receiving schema for DeltaA.\n *\n * @template {delta.AbstractDelta} DeltaA\n * @typedef {<DA extends DeltaA> ($deltaA: s.Schema<DA>) => Template<any,DA,any>} TransformerFactory\n */\n\n/**\n * @template {TransformerFactory<any>} T\n * @template {delta.AbstractDelta} DeltaA\n * @typedef {T extends (($deltaA: s.Schema<DeltaA>) => Template<any,DeltaA,infer DeltaB>) ? DeltaB : never } DeltaBFromTransformerFactory\n */\n\n/**\n * @template {s.Unwrap<delta.$delta>|null} [DeltaA=s.Unwrap<delta.$delta>|null]\n * @template {s.Unwrap<delta.$delta>|null} [DeltaB=s.Unwrap<delta.$delta>|null]\n * @typedef {{ a: DeltaA, b: DeltaB }} TransformResult\n */\n\n/**\n * @template {s.Unwrap<delta.$delta>|null} DeltaA\n * @template {s.Unwrap<delta.$delta>|null} 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\n/**\n * @template {any} State\n * @template {s.Unwrap<delta.$delta>} DeltaA\n * @template {s.Unwrap<delta.$delta>} DeltaB\n * @typedef {object} TransformerDef\n * @property {s.Schema<DeltaA>} TransformerDef.$in\n * @property {s.Schema<DeltaB>} TransformerDef.$out\n * @property {function (this: Template<State,DeltaA,DeltaB>): State} TransformerDef.state\n * @property {(deltaIn:NoInfer<DeltaA>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyA\n * @property {(deltaOut:NoInfer<DeltaB>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyB\n */\n\n/**\n * A Delta Transformer ensures that it keeps two sources A and B in-sync, even if they use a\n * different update format.\n *\n * @template {any} State\n * @template {s.Unwrap<typeof delta.$delta>} DeltaA\n * @template {s.Unwrap<typeof delta.$delta>} DeltaB\n */\nexport class Transformer {\n /**\n * @param {Template<State,DeltaA,DeltaB>} t\n * @param {State} s\n */\n constructor (t, s) {\n this.t = t\n this._state = s\n /**\n * Pending a op, for internal use only\n * @type {DeltaA?}\n */\n this._pa = null\n /**\n * Pending a op, for internal use only\n * @type {DeltaB?}\n */\n this._pb = null\n /**\n * Whether this transformer value has been initially consumebd by the parent transformer.\n */\n this._init = false\n /**\n * @type {Transformer<any,any,any>?}\n */\n this.parent = null\n }\n\n /**\n * @param {DeltaA} deltaA\n * @return {TransformResult<DeltaA?,DeltaB?>}\n */\n applyA (deltaA) {\n return this.t._applyA(deltaA, this._state)\n }\n\n /**\n * @param {DeltaB} deltaB\n * @return {TransformResult<DeltaA?,DeltaB?>}\n */\n applyB (deltaB) {\n return this.t._applyB(deltaB, this._state)\n }\n}\n\n/**\n * @param {Array<Transformer<any,delta.AbstractDelta,delta.AbstractDelta>>} trs\n * @param {TransformResult} output\n * @return {boolean}\n */\nconst _forwardPipe = (trs, output) => {\n let again = false\n for (let i = 0; i < trs.length; i++) {\n const tr = trs[i]\n if (tr._pa === null) continue\n const { a, b } = tr.applyA(tr._pa)\n tr._pa = null\n if (a !== null) {\n if (i === 0) {\n output.a = delta.mergeDeltas(output.a, a)\n } else {\n // need to interate back to integrate the produced backwards-change\n again = true\n trs[i - 1]._pb = a\n }\n }\n if (b !== null) {\n if (i === trs.length - 1) {\n output.b = delta.mergeDeltas(output.b, b)\n } else {\n trs[i + 1]._pa = b\n }\n }\n }\n return again\n}\n\n/**\n * @param {Array<Transformer<any,delta.AbstractDelta,delta.AbstractDelta>>} trs\n * @param {TransformResult} output\n * @return {boolean}\n */\nconst _backwardPipe = (trs, output) => {\n let again = false\n for (let i = trs.length - 1; i >= 0; i--) {\n const tr = trs[i]\n if (tr._pb === null) continue\n const { a, b } = tr.applyA(tr._pb)\n tr._pb = null\n if (a !== null) {\n if (i === 0) {\n output.a = delta.mergeDeltas(output.a, a)\n } else {\n // need to interate back to integrate the produced backwards-change\n trs[i - 1]._pb = a\n }\n }\n if (b !== null) {\n if (i === trs.length - 1) {\n output.b = delta.mergeDeltas(output.b, b)\n } else {\n // need to interate back to integrate the produced backwards-change\n again = true\n trs[i + 1]._pa = a\n }\n }\n }\n return again\n}\n\n/**\n * @template State\n * @template {s.Unwrap<typeof delta.$delta>} DeltaA\n * @template {s.Unwrap<typeof delta.$delta>} DeltaB\n */\nexport class Template {\n /**\n * @param {TransformerDef<State,DeltaA,DeltaB>} def\n */\n constructor ({ $in, $out, state, applyA, applyB }) {\n /**\n * @type {s.Schema<DeltaA>}\n */\n this.$in = $in\n /**\n * @type {s.Schema<DeltaB>}\n */\n this.$out = $out\n /**\n * @type {() => State}\n */\n this._state = state\n /**\n * @type {typeof applyA}\n */\n this._applyA = applyA\n /**\n * @type {typeof applyB}\n */\n this._applyB = applyB\n /**\n * Cache for stateless transformers.\n *\n * @type {Transformer<State,DeltaA,DeltaB>?}\n */\n this._tr = null\n }\n\n /**\n * @template {delta.AbstractDelta} R\n * @param {($d: s.Schema<DeltaB>) => Template<any,DeltaB,R>} t\n * @return {Template<any,DeltaA,R>}\n */\n pipe (t) {\n /**\n * @type {TransformerPipeTemplate<any,any>}\n */\n const tpipe = new TransformerPipeTemplate()\n tpipe.templates.push(this, t(this.$out))\n return tpipe\n }\n\n init () {\n if (this._tr != null) return this._tr\n // reuse stateless transformers\n const s = this._state()\n if (s === null) {\n return (this._tr = new Transformer(this, s))\n }\n return new Transformer(this, s)\n }\n}\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n * @param {s.Schema<DeltaA>} $deltaA\n * @param {s.Schema<DeltaB>} $deltaB\n * @return {s.Schema<Template<any,DeltaA,DeltaB>>}\n */\nexport const $template = ($deltaA, $deltaB) => /** @type {s.Schema<Template<any,any,any>>} */ (s.$instanceOf(Template, o => o.$in.extends($deltaA) && o.$out.extends($deltaB)))\nexport const $templateAny = /** @type {s.Schema<Template<any,any,any>>} */ (s.$instanceOf(Template))\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n * @typedef {Template<any,DeltaA,DeltaB>|(\n * DeltaB extends delta.Map<infer MKV>\n * ? (MKV|DeltaB)\n * : (DeltaB extends delta.Array<infer MArr> ? (MArr|DeltaB) : DeltaB))\n * } MaybeFixedTemplate\n */\n\n/**\n * @template X\n * @typedef {X extends Template<any,any,infer D> ? (D extends delta.Value<infer V> ? V : D) : X} UnwrapTemplateForArray\n */\n\n/**\n * @template {any} MaybeFixed\n * @typedef {MaybeFixed extends Template<any,any,any>\n * ? MaybeFixed\n * : Template<any,any,\n * MaybeFixed extends delta.AbstractDelta\n * ? MaybeFixed\n * : (MaybeFixed extends Array<any>\n * ? delta.Array<UnwrapTemplateForArray<MaybeFixed[number]>>\n * : (MaybeFixed extends {[key:string]:any} ? delta.Map<MaybeFixed> : never))\n * >\n * } MaybeFixedTemplateToTemplate\n */\n\n/**\n * @template MaybeFixed\n * @param {MaybeFixed} maybeFixed\n * @return {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]>>}\n */\nexport const maybeFixedToTemplate = maybeFixed => $templateAny.check(maybeFixed)\n ? /** @type {any} */ (maybeFixed)\n : (delta.$delta.check(maybeFixed)\n ? /** @type {any} */ (fixed(maybeFixed))\n : (s.$arrayAny.check(maybeFixed)\n ? /** @type {any} */ (fixed(delta.array().insert(maybeFixed).done()))\n : (s.$objectAny.check(maybeFixed) ? /** @type {any} */ (fixed(delta.map().setMany(maybeFixed).done())) : error.unexpectedCase())\n )\n )\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {Template<any,DeltaA,any>} Tr\n * @param {s.Schema<DeltaA>} _$deltaA\n * @param {Tr} transformer\n * @return {<DA extends DeltaA>($d:s.Schema<DA>) => Tr extends Template<any,any,infer DeltaB> ? Template<any,DA,DeltaB> : never}\n */\nexport const transformStatic = (_$deltaA, transformer) => () => /** @type {any} */ (transformer)\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {<DA extends DeltaA> ($deltaA: s.Schema<DA>) => Template<any,DA,any>} TF\n * @param {s.Schema<DeltaA>} _$deltaA\n * @param {TF} transformerFactory\n * @return {TF}\n */\nexport const transform = (_$deltaA, transformerFactory) => transformerFactory\n\n/**\n * @type {TransformerDef<any,any,any>}\n */\nconst pipeTemplateDef = {\n $in: s.$any,\n $out: s.$any,\n state: function () { return /** @type {TransformerPipeTemplate<any,any>} */ (/** @type {unknown} */ (this)).templates.map(t => t.init()) },\n applyA: (dchange, trs) => {\n const output = transformResult(null, null)\n let again = true\n trs[0]._pa = dchange\n while (again) {\n // apply forwards\n again = _forwardPipe(trs, output)\n // iterate back\n if (again) {\n again = _backwardPipe(trs, output)\n }\n }\n return output\n },\n applyB: (dchange, trs) => {\n const output = transformResult(null, null)\n let again = true\n trs[trs.length - 1]._pb = dchange\n while (again) {\n // iterate back\n again = _backwardPipe(trs, output)\n // apply forwards\n if (again) {\n again = _forwardPipe(trs, output)\n }\n }\n return output\n }\n}\n\n/**\n * @todo just have something like \"previousTemplate\" to implement pipe. This can be assembled when\n * init the template.\n * @template {s.Unwrap<typeof delta.$delta>} DeltaA\n * @template {s.Unwrap<typeof delta.$delta>} DeltaB\n * @extends {Template<any,DeltaA,DeltaB>}\n */\nclass TransformerPipeTemplate extends Template {\n constructor () {\n super(pipeTemplateDef)\n /**\n * @type {Array<Template<any,DeltaA,DeltaB>>}\n */\n this.templates = []\n }\n\n /**\n * @template {delta.AbstractDelta} R\n * @param {($d: s.Schema<DeltaB>) => Template<any,DeltaB,R>} t\n * @return {Template<any,DeltaA,R>}\n */\n pipe (t) {\n /**\n * @type {TransformerPipeTemplate<any,any>}\n */\n const tpipe = new TransformerPipeTemplate()\n tpipe.templates = this.templates.slice()\n tpipe.templates.push(t(this.$out))\n return /** @type {any} */ (tpipe)\n }\n}\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n * @template {delta.AbstractDelta} DeltaC\n * @param {($s: s.Schema<DeltaA>) => Template<any,DeltaA,DeltaB>} t1\n * @param {($s: s.Schema<DeltaB>) => Template<any,DeltaB,DeltaC>} t2\n * @return {($d: s.Schema<DeltaA>) => Template<any,DeltaA,DeltaC>}\n */\nexport const pipe = (t1, t2) => ($d) => {\n /**\n * @type {TransformerPipeTemplate<any,any>}\n */\n const tpipe = new TransformerPipeTemplate()\n const t1t = t1($d)\n tpipe.templates.push(t1t, t2(t1t.$out))\n return tpipe\n}\n\n/**\n * @template {any} State\n * @template {s.Unwrap<typeof delta.$delta>} DeltaIn\n * @template {s.Unwrap<typeof delta.$delta>} DeltaOut\n * @param {TransformerDef<State,DeltaIn,DeltaOut>} def\n * @return {Template<State,DeltaIn,DeltaOut>}\n */\nexport const template = def => new Template(/** @type {any} */ (def))\n\n/**\n * @template FixedContent\n * @param {FixedContent} fixedContent\n * @return {Template<any,any,FixedContent extends delta.AbstractDelta ? FixedContent : delta.Value<FixedContent>>}\n */\nexport const fixed = fixedContent => {\n const staticDelta = delta.$delta.check(fixedContent) ? fixedContent : delta.value().set(fixedContent).done()\n return template({\n $in: s.$any,\n $out: s.$any,\n state: () => ({ e: false }),\n applyA: (_d, s) => {\n if (!s.e) {\n s.e = true\n return transformResult(null, staticDelta)\n }\n return transformResultEmpty\n },\n applyB: () => {\n // @todo should reverse the change and give back\n error.unexpectedCase()\n }\n })\n}\n\n/**\n * @template MaybeTemplate\n * @typedef {[MaybeTemplate] extends [Template<any,any,any>] ? MaybeTemplate : Template<any,any,\n * [MaybeTemplate] extends [delta.AbstractDelta] ? MaybeTemplate : delta.Value<MaybeTemplate>\n * >} AnyToTemplate\n */\n\n/**\n * @template {{ [key: string]: any }} MaybeTemplateMap\n * @typedef {{ [K in keyof MaybeTemplateMap]: AnyToTemplate<MaybeTemplateMap[K]> }} AnyMapToTemplate\n */\n\n/**\n * @template {Array<any>} MaybeTemplateArray\n * @typedef {{ [K in keyof MaybeTemplateArray]: AnyToTemplate<MaybeTemplateArray[K]> }} AnyArrayToTemplate\n */\n\n/**\n * @template {{ [key:string]: any }} T\n * @typedef {Template<\n * any,\n * AnyMapToTemplate<T>[keyof T] extends Template<any, infer DeltaA,any> ? DeltaA : never,\n * delta.Map<{ [K in keyof T]: AnyToTemplate<T[K]> extends Template<any, any, infer DeltaB>\n * ? (DeltaB extends delta.Value<infer V> ? V : DeltaB) : AnyToTemplate<T[K]> }>\n * >} MapDefToTemplate\n */\n\n/**\n * @template {{ [key:string]: any }} T\n * @param {T} definition\n * @return {MapDefToTemplate<T> extends Template<any,infer A,infer B> ? Template<any,A,B> : never}\n */\nexport const map = (definition) => {\n /**\n * @type {{ [key:string]: Template<any,any,any> }}\n */\n const def = {}\n for (const key in definition) {\n const d = definition[key]\n def[key] = $templateAny.check(d) ? d : fixed(d)\n }\n return template({\n $in: s.$any,\n $out: s.$any,\n state: () => {\n const mapState = /** @type {{ [key: string]: Transformer<any,any,any> }} */ ({})\n for (const key in def) {\n mapState[key] = def[key].init()\n }\n return /** @type {{ [key in keyof T]: T extends Template<any,infer SDIn, infer SDOut> ? Transformer<any, SDIn, SDOut>: never }} */ (mapState)\n },\n applyA: (d, state) => {\n return _applyMapOpHelper(state, [{ d, src: null }])\n },\n applyB: (d, state) => {\n s.assert(d, delta.$mapAny)\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n const reverseAChanges = []\n d.forEach(op => {\n if (delta.$deleteOp.check(op)) {\n error.unexpectedCase()\n }\n const src = state[op.key]\n // src expects a delta value\n const res = src.applyB(delta.$modifyOp.check(op) ? delta.value().modify(op.value) : delta.value().set(op.value))\n src._pa = res.a\n src._pb = res.b\n if (res.a != null) {\n reverseAChanges.push({ d: res.a, src })\n }\n })\n return _applyMapOpHelper(state, reverseAChanges)\n }\n })\n}\n\n/**\n * @param {{ [key: string]: Transformer<any, any, any> }} state\n * @param {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>} reverseAChanges\n * @return {TransformResult<delta.AbstractDelta?,delta.Map<any>?>}\n */\nconst _applyMapOpHelper = (state, reverseAChanges) => {\n /**\n * @type {TransformResult<delta.AbstractDelta?,delta.Map<any>?>}\n */\n const applyResult = transformResult(null, null)\n while (reverseAChanges.length > 0) {\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n let nextReverseAChanges = []\n for (const key in state) {\n const s = state[key]\n let transformPriority = false // false until own is found\n for (let i = 0; i < reverseAChanges.length; i++) {\n // changes are applied in reverseAChanges order.\n // rebase against all concurrent (the op stored on transformer), then apply\n const r = reverseAChanges[i]\n if (r.src === s) {\n transformPriority = true // own has less priority, concurrent is applied with higher prio\n continue // don't apply own\n }\n let rd = r.d\n if (s._pa != null) {\n rd = rd.clone()\n rd.rebase(s._pa, transformPriority)\n }\n const res = s.applyA(rd)\n s._pa = res.a\n s._pb = delta.mergeDeltas(s._pb, res.b)\n if (res.a != null) {\n nextReverseAChanges.push({ d: res.a, src: s })\n }\n }\n }\n // merge changes for output\n for (let i = 0; i < reverseAChanges.length; i++) {\n const rc = reverseAChanges[i]\n if (rc.src != null) { // don't apply received deltas\n applyResult.a = delta.mergeDeltas(applyResult.a, rc.d)\n }\n }\n reverseAChanges = nextReverseAChanges\n nextReverseAChanges = []\n }\n // accumulate b changes stored on transformers\n const bRes = delta.map()\n for (const key in state) {\n const s = state[key]\n if (s._pb) {\n if (s._init) {\n bRes.modify(key, s._pb)\n } else {\n s._init = true\n bRes.set(key, s._pb)\n }\n }\n }\n if (bRes._changes.size > 0) {\n // opt values (iff delta is of type DeltaValue, map the change to the map)\n bRes._changes.forEach((change, key) => {\n if (delta.$valueAny.check(change.value)) {\n const changeOp = change.value.change\n if (delta.$insertOp.check(changeOp) || delta.$modifyOp.check(changeOp)) {\n bRes.set(key, changeOp.value)\n } else if (delta.$deleteOp.check(changeOp)) {\n bRes.delete(key)\n } else {\n error.unexpectedCase()\n }\n }\n })\n applyResult.b = bRes\n }\n return applyResult\n}\n\n/**\n * @todo This is similar to dt.map. Consider the similarities and try to merge them.\n *\n * @template {Array<any>} T\n * @param {T} definition\n * @return {Template<\n * any,\n * AnyArrayToTemplate<T>[number] extends Template<any, infer DeltaA, any> ? DeltaA : never,\n * delta.Array<AnyArrayToTemplate<T>[number] extends Template<any, any, infer DeltaB> ? delta.ValueUnwrap<DeltaB> : never>\n * >}\n */\nexport const array = (definition) => {\n /**\n * @type {Array<Template<any,any,any>>}\n */\n const def = []\n for (let i = 0; i < definition.length; i++) {\n const d = definition[i]\n def[i] = $templateAny.check(d) ? d : fixed(d)\n }\n return /** @type {any} */ (template({\n $in: s.$any,\n $out: delta.$arrayAny,\n state: () => {\n const arrState = /** @type {Transformer<any,any,any>[]} */ ([])\n for (let i = 0; i < def.length; i++) {\n arrState[i] = def[i].init()\n }\n return /** @type {(T extends Template<any,infer SDIn, infer SDOut> ? Transformer<any, SDIn, SDOut>: never)[]} */ (arrState)\n },\n applyA: (d, state) => {\n return _applyArrayOpHelper(state, [{ d, src: null }])\n },\n applyB: (d, state) => {\n s.assert(d, delta.$arrayAny)\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n const reverseAChanges = []\n d.forEach((op, index) => {\n if (delta.$deleteOp.check(op) || delta.$insertOp.check(op)) {\n error.unexpectedCase()\n } else if (delta.$modifyOp.check(op)) {\n const src = state[index]\n const res = src.applyB(op.modify)\n src._pa = res.a\n src._pb = res.b\n if (res.a != null) {\n reverseAChanges.push({ d: res.a, src })\n }\n }\n })\n return _applyArrayOpHelper(state, reverseAChanges)\n }\n }))\n}\n\n/**\n * @param {Transformer<any, any, any>[]} state\n * @param {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>} reverseAChanges\n * @return {TransformResult<delta.AbstractDelta?,delta.Array<any>?>}\n */\nconst _applyArrayOpHelper = (state, reverseAChanges) => {\n /**\n * @type {TransformResult<delta.AbstractDelta?,delta.Array<any>?>}\n */\n const applyResult = transformResult(null, null)\n while (reverseAChanges.length > 0) {\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n let nextReverseAChanges = []\n for (let i = 0; i < state.length; i++) {\n const s = state[i]\n let transformPriority = false // false until own is found\n for (let i = 0; i < reverseAChanges.length; i++) {\n // changes are applied in reverseAChanges order.\n // rebase against all concurrent (the op stored on transformer), then apply\n const r = reverseAChanges[i]\n if (r.src === s) {\n transformPriority = true // own has less priority, concurrent is applied with higher prio\n continue // don't apply own\n }\n let rd = r.d\n if (s._pa != null) {\n rd = rd.clone()\n rd.rebase(s._pa, transformPriority)\n }\n const res = s.applyA(rd)\n s._pa = res.a\n s._pb = delta.mergeDeltas(s._pb, res.b)\n if (res.a != null) {\n nextReverseAChanges.push({ d: res.a, src: s })\n }\n }\n }\n // merge changes for output\n for (let i = 0; i < nextReverseAChanges.length; i++) {\n applyResult.a = delta.mergeDeltas(applyResult.a, nextReverseAChanges[i].d)\n }\n reverseAChanges = nextReverseAChanges\n nextReverseAChanges = []\n }\n // accumulate b changes stored on transformers\n const bRes = delta.array()\n let performedChange = false\n for (let i = 0; i < state.length; i++) {\n const s = state[i]\n let spb = s._pb\n if (spb) {\n if (delta.$valueAny.check(spb)) {\n spb = spb.get()\n }\n if (s._init) {\n bRes.modify(spb)\n } else {\n s._init = true\n bRes.insert([spb])\n }\n performedChange = true\n } else {\n bRes.retain(1)\n }\n }\n if (performedChange) {\n applyResult.b = bRes.done()\n }\n return applyResult\n}\n\n/**\n * @param {TransformResult<delta.AbstractDelta?, delta.Node<any,any,any>>} res\n * @param {{ attrs: Transformer<any,any,any>, children: Transformer<any,any,any> }} state\n * @param {delta.AbstractDelta?} nextAAttrs apply this in reverse!\n * @param {delta.AbstractDelta?} nextAChildren\n */\nconst _nodeApplyA = (res, state, nextAAttrs, nextAChildren) => {\n while (nextAAttrs != null || nextAChildren != null) {\n const resChildren = nextAChildren && state.children.applyA(nextAChildren)\n const resAttrs = (nextAAttrs || resChildren?.a) ? state.attrs.applyA(delta.mergeDeltas(nextAAttrs, resChildren?.a)) : null\n nextAChildren = resAttrs?.a\n nextAAttrs = null\n res.a = delta.mergeDeltas(delta.mergeDeltas(res.a, resChildren?.a), resAttrs?.a)\n resChildren?.b && res.b.children.apply(resChildren.b)\n resAttrs?.b && res.b.attributes.apply(resAttrs.b)\n }\n}\n\n/**\n * @template {{ [key:string]: any } | Template<any,any,delta.Map<any>>} T\n * @typedef {T extends Template<any,any,any> ? T : MapDefToTemplate<T>} MapOrMapDefToTemplate\n */\n\n/**\n * @template {string} NodeName\n * @template {{ [key:string]:any } | Template<any,any,delta.Map<{[key:string]:any}>>} Attrs - accepts map or map definition\n * @template {Template<any,any,delta.Array<any,any>> | Array<any>} Children\n * @param {NodeName} name\n * @param {Attrs} attributes\n * @param {Children} children\n * @return {Template<\n * any,\n * MapOrMapDefToTemplate<Attrs> extends Template<any, infer A, any> ? A : never,\n * delta.Node<\n * NodeName,\n * MapOrMapDefToTemplate<Attrs> extends Template<any,any,delta.Map<infer M>> ? M : never,\n * MaybeFixedTemplateToTemplate<Children> extends Template<any,any,delta.Array<infer BChildren,any>> ? BChildren : never,\n * any\n * >\n * >}\n */\nexport const node = (name, attributes, children) => {\n const attrs = /** @type {Template<any,any,delta.Map<any>>} */ ($templateAny.check(attributes) ? attributes : map(attributes))\n const childs = /** @type {Template<any,any,delta.Array<any>>} */ (maybeFixedToTemplate(children))\n // @todo this should be properly inferred\n return /** @type {any} */ (template({\n $in: s.$any,\n $out: delta.$node(s.$literal(name), s.$any, s.$any),\n state: () => ({\n attrs: attrs.init(),\n children: childs.init()\n }),\n applyA: (d, state) => {\n const res = transformResult(null, /** @type {delta.Node<NodeName,any,any,any>} */ (delta.node(name)))\n _nodeApplyA(res, state, d, d)\n return res\n },\n applyB: (d, state) => {\n s.assert(d, delta.$nodeAny)\n const res = transformResult(null, /** @type {delta.Node<NodeName,any,any,any>} */ (delta.node(name)))\n const childrenRes = d.children.ops.length === 0 ? transformResultEmpty : state.children.applyB(/** @type {delta.Array<any,any>} */(d.children))\n const attrsRes = d.attributes._changes.size === 0 ? transformResultEmpty : state.attrs.applyB(d.attributes)\n attrsRes.b && res.b.attributes.apply(attrsRes.b)\n childrenRes.b && res.b.children.apply(/** @type {delta.Array<any,false>} */ (childrenRes.b))\n res.a = delta.mergeDeltas(attrsRes.a, childrenRes.a)\n _nodeApplyA(res, state, childrenRes.a, attrsRes.a)\n return res\n }\n }))\n}\n\n/**\n * @template {{[k:string]:any}} KV\n * @typedef {delta.Map<KV> | delta.Node<any,KV,any,any>} _FollowPath\n */\n\n/**\n * @template {any} D\n * @template {string[]} Path\n * @typedef {Path extends []\n * ? D\n * : Path extends [infer P, ...infer PRest]\n * ? (\n * P extends string ? (D extends _AttrDeltaType<{ [K in P]: infer V }> ? QueryFollowPath<V,PRest extends string[] ? PRest : never> : never) : never\n * )\n * : never\n * } QueryFollowPath\n */\n\n/**\n * @template {{[k:string]:any}} Attrs\n * @typedef {delta.Map<Partial<Attrs>> | delta.Node<any,Partial<Attrs>,any,any>} _AttrDeltaType\n */\n\n/**\n * @template {Array<string>} Path\n * @typedef {Path extends [infer P, ...infer PRest] ? (_AttrDeltaType<{ [K in (P extends string ? P : any)]: PathToDelta<PRest extends Array<string> ? PRest : any> }>) : any} PathToDelta\n */\n\n/**\n * @template {Array<string>} Path\n * @param {Path} path\n * @return {<DA extends PathToDelta<Path>>($in: s.Schema<DA>) => Template<any, DA, delta.Value<QueryFollowPath<DA,Path>>>}\n */\nexport const query = (...path) => transformStatic(s.$any, template({\n $in: delta.$delta,\n $out: delta.$valueAny,\n state: () => null,\n applyA: d => {\n d = delta.$nodeAny.check(d) ? d.attributes : d\n let cd = /** @type {delta.Map<any>?} */ (delta.$mapAny.cast(d))\n let overwritten = false\n for (let i = 0; i < path.length && cd != null; i++) {\n if (delta.$mapAny.check(cd)) {\n const c = cd.get(path[i])\n if (delta.$insertOp.check(c)) {\n overwritten = true\n cd = c.value\n } else if (delta.$deleteOp.check(c)) {\n overwritten = true\n cd = null\n break\n } else if (delta.$modifyOp.check(c)) {\n cd = c.value\n }\n } else {\n cd = null\n }\n }\n const dv = delta.value()\n if (overwritten) {\n // @todo implement some kind of \"ValueDelta\" with insert, delete, modify ops. dmap is supposed\n // to automatically translate this.\n if (cd == null) {\n dv.delete()\n } else {\n dv.set(cd)\n }\n } else {\n dv.modify(cd)\n }\n return transformResult(null, dv)\n },\n applyB: (d) => {\n const dop = d.change\n let resD = delta.map()\n let i = path.length - 1\n const p = path[i]\n if (delta.$modifyOp.check(dop)) {\n resD.modify(p, dop.value)\n } else if (delta.$insertOp.check(dop)) {\n resD.set(p, dop.value)\n } else if (delta.$deleteOp.check(dop)) {\n resD.delete(p)\n }\n for (i--; i >= 0; i--) {\n const tmpDmap = delta.map()\n tmpDmap.modify(p, resD)\n resD = tmpDmap\n }\n return /** @type {TransformResult<any,null>} */ (transformResult(resD, null))\n }\n}))\n\n/**\n * @template {delta.AbstractDelta} Delta\n * @param {s.Schema<Delta>} $in\n * @return {Template<null,Delta,Delta>}\n */\nexport const id = $in => template({\n $in,\n $out: $in,\n state: () => null,\n applyA: d => {\n return transformResult(null, d)\n },\n applyB: d => {\n return transformResult(d, null)\n }\n})\n"],"names":["delta.mergeDeltas","s.$instanceOf","delta.$delta","s.$arrayAny","delta.array","s.$objectAny","delta.map","error.unexpectedCase","s.$any","delta.value","s.assert","delta.$mapAny","delta.$deleteOp","delta.$modifyOp","delta.$valueAny","delta.$insertOp","delta.$arrayAny","delta.$node","s.$literal","delta.node","delta.$nodeAny"],"mappings":"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"}
package/dist/url.cjs CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var object = require('./object-491858d1.cjs');
5
+ var object = require('./object-18980796.cjs');
6
+ require('./traits.cjs');
6
7
 
7
8
  /**
8
9
  * Utility module to work with urls.
package/dist/url.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"url.cjs","sources":["../url.js"],"sourcesContent":["/**\n * Utility module to work with urls.\n *\n * @module url\n */\n\nimport * as object from './object.js'\n\n/**\n * Parse query parameters from an url.\n *\n * @param {string} url\n * @return {Object<string,string>}\n */\nexport const decodeQueryParams = url => {\n /**\n * @type {Object<string,string>}\n */\n const query = {}\n const urlQuerySplit = url.split('?')\n const pairs = urlQuerySplit[urlQuerySplit.length - 1].split('&')\n for (let i = 0; i < pairs.length; i++) {\n const item = pairs[i]\n if (item.length > 0) {\n const pair = item.split('=')\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '')\n }\n }\n return query\n}\n\n/**\n * @param {Object<string,string>} params\n * @return {string}\n */\nexport const encodeQueryParams = params =>\n object.map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&')\n"],"names":["object.map"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,GAAG,IAAI;AACxC;AACA;AACA;AACA,EAAE,MAAM,KAAK,GAAG,GAAE;AAClB,EAAE,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAC;AACtC,EAAE,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAC;AAClE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAC;AACzB,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC;AAClC,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC;AAC5E,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK;AACd,EAAC;AACD;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,MAAM;AACvC,EAAEA,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;;;;;"}
1
+ {"version":3,"file":"url.cjs","sources":["../url.js"],"sourcesContent":["/**\n * Utility module to work with urls.\n *\n * @module url\n */\n\nimport * as object from './object.js'\n\n/**\n * Parse query parameters from an url.\n *\n * @param {string} url\n * @return {Object<string,string>}\n */\nexport const decodeQueryParams = url => {\n /**\n * @type {Object<string,string>}\n */\n const query = {}\n const urlQuerySplit = url.split('?')\n const pairs = urlQuerySplit[urlQuerySplit.length - 1].split('&')\n for (let i = 0; i < pairs.length; i++) {\n const item = pairs[i]\n if (item.length > 0) {\n const pair = item.split('=')\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '')\n }\n }\n return query\n}\n\n/**\n * @param {Object<string,string>} params\n * @return {string}\n */\nexport const encodeQueryParams = params =>\n object.map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&')\n"],"names":["object.map"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,GAAG,IAAI;AACxC;AACA;AACA;AACA,EAAE,MAAM,KAAK,GAAG,GAAE;AAClB,EAAE,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAC;AACtC,EAAE,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAC;AAClE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAC;AACzB,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC;AAClC,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC;AAC5E,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK;AACd,EAAC;AACD;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,MAAM;AACvC,EAAEA,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;;;;;"}
package/dist/value.cjs ADDED
@@ -0,0 +1,187 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _function = require('./function-e7d18feb.cjs');
6
+ var traits = require('./traits.cjs');
7
+ var schema = require('./schema.cjs');
8
+ var ops = require('./ops.cjs');
9
+ var abstract = require('./abstract.cjs');
10
+ require('./array-78849c95.cjs');
11
+ require('./set-5b47859e.cjs');
12
+ require('./object-18980796.cjs');
13
+ require('./error-0c1f634f.cjs');
14
+ require('./environment-90227ead.cjs');
15
+ require('./map-24d263c0.cjs');
16
+ require('./string-fddc5f8b.cjs');
17
+ require('./conditions-f5c0c102.cjs');
18
+ require('./storage.cjs');
19
+ require('./list.cjs');
20
+
21
+ /**
22
+ * @template {any} Vals
23
+ * @typedef {Vals extends AbstractDelta ? ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>|ops.MapModifyOp<Extract<Vals,AbstractDelta>,''> : ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>} ValueOpsFromValues
24
+ */
25
+
26
+ /**
27
+ * @template Vals
28
+ * @extends {AbstractDelta}
29
+ */
30
+ class DeltaValue extends abstract.AbstractDelta {
31
+ /**
32
+ * @param {s.Schema<Vals>} $vals
33
+ */
34
+ constructor ($vals) {
35
+ super();
36
+ this.$vals = $vals;
37
+ /**
38
+ * @type {ValueOpsFromValues<Vals>?}
39
+ */
40
+ this.change = null;
41
+ }
42
+
43
+ get () {
44
+ return ops.$insertOp.check(this.change) ? this.change.value : undefined
45
+ }
46
+
47
+ /**
48
+ * @param {DeltaValue<Vals>} other
49
+ * @return {boolean}
50
+ */
51
+ equals (other) {
52
+ return this[traits.EqualityTraitSymbol](other)
53
+ }
54
+
55
+ /**
56
+ * @param {DeltaValue<Vals>} other
57
+ */
58
+ [traits.EqualityTraitSymbol] (other) {
59
+ return _function.equalityDeep(this.change, other.change)
60
+ }
61
+ }
62
+
63
+ /**
64
+ * @template Vals
65
+ * @extends DeltaValue<Vals>
66
+ */
67
+ class DeltaValueBuilder extends DeltaValue {
68
+ /**
69
+ * @param {Extract<Vals, AbstractDelta>} delta
70
+ */
71
+ modify (delta) {
72
+ this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapModifyOp('', delta));
73
+ return this
74
+ }
75
+
76
+ /**
77
+ * @param {Vals} newVal
78
+ * @param {Vals|undefined} prevValue
79
+ * @param {import('./abstract.js').Attribution?} attribution
80
+ */
81
+ set (newVal, prevValue = undefined, attribution = null) {
82
+ this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapInsertOp('', this.$vals.cast(newVal), prevValue && this.$vals.cast(prevValue), attribution));
83
+ return this
84
+ }
85
+
86
+ /**
87
+ * @param {Vals|undefined} prevValue
88
+ * @param {import('./abstract.js').Attribution?} attribution
89
+ */
90
+ delete (prevValue = undefined, attribution = null) {
91
+ this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapDeleteOp('', prevValue && this.$vals.cast(prevValue), attribution));
92
+ return this
93
+ }
94
+
95
+ /**
96
+ *
97
+ * - insert vs delete ⇒ insert takes precedence
98
+ * - insert vs modify ⇒ insert takes precedence
99
+ * - insert vs insert ⇒ priority decides
100
+ * - delete vs modify ⇒ delete takes precedence
101
+ * - delete vs delete ⇒ current delete op is removed because item has already been deleted
102
+ * - modify vs modify ⇒ rebase using priority
103
+ *
104
+ * @param {DeltaValueBuilder<Vals>} other
105
+ * @param {boolean} priority
106
+ */
107
+ rebase (other, priority) {
108
+ const c = this.change;
109
+ if (ops.$insertOp.check(c)) {
110
+ if (other.change?.constructor === ops.MapInsertOp && !priority) {
111
+ this.change = null;
112
+ }
113
+ } else if (ops.$deleteOp.check(c)) {
114
+ const otherOp = other.change;
115
+ if (otherOp?.constructor === ops.MapInsertOp) {
116
+ this.change = null;
117
+ }
118
+ } else if (ops.$modifyOp.check(c)) {
119
+ const otherOp = other.change;
120
+ if (otherOp == null) ; else if (otherOp.constructor === ops.MapModifyOp) {
121
+ c.value.rebase(otherOp.value, priority);
122
+ } else {
123
+ this.change = null;
124
+ }
125
+ }
126
+ }
127
+
128
+ /**
129
+ * @param {DeltaValue<Vals>} other
130
+ */
131
+ apply (other) {
132
+ const oop = other.change;
133
+ const c = this.change;
134
+ if (ops.$modifyOp.check(oop)) {
135
+ if (c != null && (ops.$modifyOp.check(c) || ops.$insertOp.check(c)) && $valueAny.check(c.value)) {
136
+ /** @type {DeltaValue<any>} */ (c.value).apply(oop.value);
137
+ } else {
138
+ // then this is a simple modify
139
+ this.change = oop;
140
+ }
141
+ } else if (oop != null) {
142
+ oop.prevValue = c?.value;
143
+ this.change = oop;
144
+ }
145
+ }
146
+
147
+ /**
148
+ * @return {this}
149
+ */
150
+ clone () {
151
+ const d = /** @type {this} */ (new DeltaValueBuilder(this.$vals));
152
+ d.change = /** @type {ValueOpsFromValues<Vals>} */ (this.change?.clone());
153
+ d.origin = this.origin;
154
+ d.isDiff = this.isDiff;
155
+ return d
156
+ }
157
+
158
+ done () {
159
+ return /** @type {DeltaValue<Vals>} */ (this)
160
+ }
161
+ }
162
+
163
+ /**
164
+ * @template [Vals=any]
165
+ * @param {s.Schema<Vals>} $vals
166
+ * @return {DeltaValueBuilder<Vals>}
167
+ */
168
+ const value = ($vals = schema.$any) => /** @type {any} */ (new DeltaValueBuilder($vals));
169
+
170
+ /**
171
+ * @template {any} Vals
172
+ * @param {s.Schema<Vals>} $vals
173
+ * @return {s.Schema<DeltaValue<Vals>>}
174
+ */
175
+ const $value = $vals => /** @type {any} */ (schema.$instanceOf(DeltaValue, o => $vals.extends(o.$vals)));
176
+
177
+ /**
178
+ * @type {s.Schema<DeltaValue<any>>}
179
+ */
180
+ const $valueAny = schema.$instanceOf(DeltaValue);
181
+
182
+ exports.$value = $value;
183
+ exports.$valueAny = $valueAny;
184
+ exports.DeltaValue = DeltaValue;
185
+ exports.DeltaValueBuilder = DeltaValueBuilder;
186
+ exports.value = value;
187
+ //# sourceMappingURL=value.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.cjs","sources":["../delta/value.js"],"sourcesContent":["import * as fun from '../function.js'\nimport * as traits from '../traits.js'\nimport * as s from '../schema.js'\nimport * as ops from './ops.js'\nimport { AbstractDelta } from './abstract.js'\n\n/**\n * @template {any} Vals\n * @typedef {Vals extends AbstractDelta ? ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>|ops.MapModifyOp<Extract<Vals,AbstractDelta>,''> : ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>} ValueOpsFromValues\n */\n\n/**\n * @template Vals\n * @extends {AbstractDelta}\n */\nexport class DeltaValue extends AbstractDelta {\n /**\n * @param {s.Schema<Vals>} $vals\n */\n constructor ($vals) {\n super()\n this.$vals = $vals\n /**\n * @type {ValueOpsFromValues<Vals>?}\n */\n this.change = null\n }\n\n get () {\n return ops.$insertOp.check(this.change) ? this.change.value : undefined\n }\n\n /**\n * @param {DeltaValue<Vals>} other\n * @return {boolean}\n */\n equals (other) {\n return this[traits.EqualityTraitSymbol](other)\n }\n\n /**\n * @param {DeltaValue<Vals>} other\n */\n [traits.EqualityTraitSymbol] (other) {\n return fun.equalityDeep(this.change, other.change)\n }\n}\n\n/**\n * @template Vals\n * @extends DeltaValue<Vals>\n */\nexport class DeltaValueBuilder extends DeltaValue {\n /**\n * @param {Extract<Vals, AbstractDelta>} delta\n */\n modify (delta) {\n this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapModifyOp('', delta))\n return this\n }\n\n /**\n * @param {Vals} newVal\n * @param {Vals|undefined} prevValue\n * @param {import('./abstract.js').Attribution?} attribution\n */\n set (newVal, prevValue = undefined, attribution = null) {\n this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapInsertOp('', this.$vals.cast(newVal), prevValue && this.$vals.cast(prevValue), attribution))\n return this\n }\n\n /**\n * @param {Vals|undefined} prevValue\n * @param {import('./abstract.js').Attribution?} attribution\n */\n delete (prevValue = undefined, attribution = null) {\n this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapDeleteOp('', prevValue && this.$vals.cast(prevValue), attribution))\n return this\n }\n\n /**\n *\n * - insert vs delete ⇒ insert takes precedence\n * - insert vs modify ⇒ insert takes precedence\n * - insert vs insert ⇒ priority decides\n * - delete vs modify ⇒ delete takes precedence\n * - delete vs delete ⇒ current delete op is removed because item has already been deleted\n * - modify vs modify ⇒ rebase using priority\n *\n * @param {DeltaValueBuilder<Vals>} other\n * @param {boolean} priority\n */\n rebase (other, priority) {\n const c = this.change\n if (ops.$insertOp.check(c)) {\n if (other.change?.constructor === ops.MapInsertOp && !priority) {\n this.change = null\n }\n } else if (ops.$deleteOp.check(c)) {\n const otherOp = other.change\n if (otherOp?.constructor === ops.MapInsertOp) {\n this.change = null\n }\n } else if (ops.$modifyOp.check(c)) {\n const otherOp = other.change\n if (otherOp == null) {\n // nop\n } else if (otherOp.constructor === ops.MapModifyOp) {\n c.value.rebase(otherOp.value, priority)\n } else {\n this.change = null\n }\n }\n }\n\n /**\n * @param {DeltaValue<Vals>} other\n */\n apply (other) {\n const oop = other.change\n const c = this.change\n if (ops.$modifyOp.check(oop)) {\n if (c != null && (ops.$modifyOp.check(c) || ops.$insertOp.check(c)) && $valueAny.check(c.value)) {\n /** @type {DeltaValue<any>} */ (c.value).apply(oop.value)\n } else {\n // then this is a simple modify\n this.change = oop\n }\n } else if (oop != null) {\n oop.prevValue = c?.value\n this.change = oop\n }\n }\n\n /**\n * @return {this}\n */\n clone () {\n const d = /** @type {this} */ (new DeltaValueBuilder(this.$vals))\n d.change = /** @type {ValueOpsFromValues<Vals>} */ (this.change?.clone())\n d.origin = this.origin\n d.isDiff = this.isDiff\n return d\n }\n\n done () {\n return /** @type {DeltaValue<Vals>} */ (this)\n }\n}\n\n/**\n * @template [Vals=any]\n * @param {s.Schema<Vals>} $vals\n * @return {DeltaValueBuilder<Vals>}\n */\nexport const value = ($vals = s.$any) => /** @type {any} */ (new DeltaValueBuilder($vals))\n\n/**\n * @template {any} Vals\n * @param {s.Schema<Vals>} $vals\n * @return {s.Schema<DeltaValue<Vals>>}\n */\nexport const $value = $vals => /** @type {any} */ (s.$instanceOf(DeltaValue, o => $vals.extends(o.$vals)))\n\n/**\n * @type {s.Schema<DeltaValue<any>>}\n */\nexport const $valueAny = s.$instanceOf(DeltaValue)\n"],"names":["AbstractDelta","ops.$insertOp","traits.EqualityTraitSymbol","fun.equalityDeep","ops.MapModifyOp","ops.MapInsertOp","ops.MapDeleteOp","ops.$deleteOp","ops.$modifyOp","s.$any","s.$instanceOf"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export const subtle: SubtleCrypto;
2
- export const getRandomValues: <T extends ArrayBufferView | null>(array: T) => T;
2
+ export const getRandomValues: <T extends ArrayBufferView>(array: T) => T;
3
3
  //# sourceMappingURL=webcrypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webcrypto.d.ts","sourceRoot":"","sources":["../webcrypto.js"],"names":[],"mappings":"AAEA,kCAAmC;AACnC,gFAAkE"}
1
+ {"version":3,"file":"webcrypto.d.ts","sourceRoot":"","sources":["../webcrypto.js"],"names":[],"mappings":"AAEA,kCAAmC;AACnC,yEAAkE"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var observable = require('./observable.cjs');
4
- var time = require('./time-bc2081b9.cjs');
5
- var math = require('./math-08e068f9.cjs');
4
+ var time = require('./time-d8438852.cjs');
5
+ var math = require('./math-96d5e8c4.cjs');
6
6
 
7
7
  /* eslint-env browser */
8
8
 
@@ -154,4 +154,4 @@ var websocket = /*#__PURE__*/Object.freeze({
154
154
 
155
155
  exports.WebsocketClient = WebsocketClient;
156
156
  exports.websocket = websocket;
157
- //# sourceMappingURL=websocket-40a601d4.cjs.map
157
+ //# sourceMappingURL=websocket-b073d0fc.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-40a601d4.cjs","sources":["../websocket.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Tiny websocket connection handler.\n *\n * Implements exponential backoff reconnects, ping/pong, and a nice event system using [lib0/observable].\n *\n * @module websocket\n */\n\nimport { Observable } from './observable.js'\nimport * as time from './time.js'\nimport * as math from './math.js'\n\nconst reconnectTimeoutBase = 1200\nconst maxReconnectTimeout = 2500\n// @todo - this should depend on awareness.outdatedTime\nconst messageReconnectTimeout = 30000\n\n/**\n * @param {WebsocketClient} wsclient\n */\nconst setupWS = (wsclient) => {\n if (wsclient.shouldConnect && wsclient.ws === null) {\n const websocket = new WebSocket(wsclient.url)\n const binaryType = wsclient.binaryType\n /**\n * @type {any}\n */\n let pingTimeout = null\n if (binaryType) {\n websocket.binaryType = binaryType\n }\n wsclient.ws = websocket\n wsclient.connecting = true\n wsclient.connected = false\n websocket.onmessage = event => {\n wsclient.lastMessageReceived = time.getUnixTime()\n const data = event.data\n const message = typeof data === 'string' ? JSON.parse(data) : data\n if (message && message.type === 'pong') {\n clearTimeout(pingTimeout)\n pingTimeout = setTimeout(sendPing, messageReconnectTimeout / 2)\n }\n wsclient.emit('message', [message, wsclient])\n }\n /**\n * @param {any} error\n */\n const onclose = error => {\n if (wsclient.ws !== null) {\n wsclient.ws = null\n wsclient.connecting = false\n if (wsclient.connected) {\n wsclient.connected = false\n wsclient.emit('disconnect', [{ type: 'disconnect', error }, wsclient])\n } else {\n wsclient.unsuccessfulReconnects++\n }\n // Start with no reconnect timeout and increase timeout by\n // log10(wsUnsuccessfulReconnects).\n // The idea is to increase reconnect timeout slowly and have no reconnect\n // timeout at the beginning (log(1) = 0)\n setTimeout(setupWS, math.min(math.log10(wsclient.unsuccessfulReconnects + 1) * reconnectTimeoutBase, maxReconnectTimeout), wsclient)\n }\n clearTimeout(pingTimeout)\n }\n const sendPing = () => {\n if (wsclient.ws === websocket) {\n wsclient.send({\n type: 'ping'\n })\n }\n }\n websocket.onclose = () => onclose(null)\n websocket.onerror = error => onclose(error)\n websocket.onopen = () => {\n wsclient.lastMessageReceived = time.getUnixTime()\n wsclient.connecting = false\n wsclient.connected = true\n wsclient.unsuccessfulReconnects = 0\n wsclient.emit('connect', [{ type: 'connect' }, wsclient])\n // set ping\n pingTimeout = setTimeout(sendPing, messageReconnectTimeout / 2)\n }\n }\n}\n\n/**\n * @deprecated\n * @extends Observable<string>\n */\nexport class WebsocketClient extends Observable {\n /**\n * @param {string} url\n * @param {object} opts\n * @param {'arraybuffer' | 'blob' | null} [opts.binaryType] Set `ws.binaryType`\n */\n constructor (url, { binaryType } = {}) {\n super()\n this.url = url\n /**\n * @type {WebSocket?}\n */\n this.ws = null\n this.binaryType = binaryType || null\n this.connected = false\n this.connecting = false\n this.unsuccessfulReconnects = 0\n this.lastMessageReceived = 0\n /**\n * Whether to connect to other peers or not\n * @type {boolean}\n */\n this.shouldConnect = true\n this._checkInterval = setInterval(() => {\n if (this.connected && messageReconnectTimeout < time.getUnixTime() - this.lastMessageReceived) {\n // no message received in a long time - not even your own awareness\n // updates (which are updated every 15 seconds)\n /** @type {WebSocket} */ (this.ws).close()\n }\n }, messageReconnectTimeout / 2)\n setupWS(this)\n }\n\n /**\n * @param {any} message\n */\n send (message) {\n if (this.ws) {\n this.ws.send(JSON.stringify(message))\n }\n }\n\n destroy () {\n clearInterval(this._checkInterval)\n this.disconnect()\n super.destroy()\n }\n\n disconnect () {\n this.shouldConnect = false\n if (this.ws !== null) {\n this.ws.close()\n }\n }\n\n connect () {\n this.shouldConnect = true\n if (!this.connected && this.ws === null) {\n setupWS(this)\n }\n }\n}\n"],"names":["time.getUnixTime","math.min","math.log10","Observable"],"mappings":"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"}
1
+ {"version":3,"file":"websocket-b073d0fc.cjs","sources":["../websocket.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Tiny websocket connection handler.\n *\n * Implements exponential backoff reconnects, ping/pong, and a nice event system using [lib0/observable].\n *\n * @module websocket\n */\n\nimport { Observable } from './observable.js'\nimport * as time from './time.js'\nimport * as math from './math.js'\n\nconst reconnectTimeoutBase = 1200\nconst maxReconnectTimeout = 2500\n// @todo - this should depend on awareness.outdatedTime\nconst messageReconnectTimeout = 30000\n\n/**\n * @param {WebsocketClient} wsclient\n */\nconst setupWS = (wsclient) => {\n if (wsclient.shouldConnect && wsclient.ws === null) {\n const websocket = new WebSocket(wsclient.url)\n const binaryType = wsclient.binaryType\n /**\n * @type {any}\n */\n let pingTimeout = null\n if (binaryType) {\n websocket.binaryType = binaryType\n }\n wsclient.ws = websocket\n wsclient.connecting = true\n wsclient.connected = false\n websocket.onmessage = event => {\n wsclient.lastMessageReceived = time.getUnixTime()\n const data = event.data\n const message = typeof data === 'string' ? JSON.parse(data) : data\n if (message && message.type === 'pong') {\n clearTimeout(pingTimeout)\n pingTimeout = setTimeout(sendPing, messageReconnectTimeout / 2)\n }\n wsclient.emit('message', [message, wsclient])\n }\n /**\n * @param {any} error\n */\n const onclose = error => {\n if (wsclient.ws !== null) {\n wsclient.ws = null\n wsclient.connecting = false\n if (wsclient.connected) {\n wsclient.connected = false\n wsclient.emit('disconnect', [{ type: 'disconnect', error }, wsclient])\n } else {\n wsclient.unsuccessfulReconnects++\n }\n // Start with no reconnect timeout and increase timeout by\n // log10(wsUnsuccessfulReconnects).\n // The idea is to increase reconnect timeout slowly and have no reconnect\n // timeout at the beginning (log(1) = 0)\n setTimeout(setupWS, math.min(math.log10(wsclient.unsuccessfulReconnects + 1) * reconnectTimeoutBase, maxReconnectTimeout), wsclient)\n }\n clearTimeout(pingTimeout)\n }\n const sendPing = () => {\n if (wsclient.ws === websocket) {\n wsclient.send({\n type: 'ping'\n })\n }\n }\n websocket.onclose = () => onclose(null)\n websocket.onerror = error => onclose(error)\n websocket.onopen = () => {\n wsclient.lastMessageReceived = time.getUnixTime()\n wsclient.connecting = false\n wsclient.connected = true\n wsclient.unsuccessfulReconnects = 0\n wsclient.emit('connect', [{ type: 'connect' }, wsclient])\n // set ping\n pingTimeout = setTimeout(sendPing, messageReconnectTimeout / 2)\n }\n }\n}\n\n/**\n * @deprecated\n * @extends Observable<string>\n */\nexport class WebsocketClient extends Observable {\n /**\n * @param {string} url\n * @param {object} opts\n * @param {'arraybuffer' | 'blob' | null} [opts.binaryType] Set `ws.binaryType`\n */\n constructor (url, { binaryType } = {}) {\n super()\n this.url = url\n /**\n * @type {WebSocket?}\n */\n this.ws = null\n this.binaryType = binaryType || null\n this.connected = false\n this.connecting = false\n this.unsuccessfulReconnects = 0\n this.lastMessageReceived = 0\n /**\n * Whether to connect to other peers or not\n * @type {boolean}\n */\n this.shouldConnect = true\n this._checkInterval = setInterval(() => {\n if (this.connected && messageReconnectTimeout < time.getUnixTime() - this.lastMessageReceived) {\n // no message received in a long time - not even your own awareness\n // updates (which are updated every 15 seconds)\n /** @type {WebSocket} */ (this.ws).close()\n }\n }, messageReconnectTimeout / 2)\n setupWS(this)\n }\n\n /**\n * @param {any} message\n */\n send (message) {\n if (this.ws) {\n this.ws.send(JSON.stringify(message))\n }\n }\n\n destroy () {\n clearInterval(this._checkInterval)\n this.disconnect()\n super.destroy()\n }\n\n disconnect () {\n this.shouldConnect = false\n if (this.ws !== null) {\n this.ws.close()\n }\n }\n\n connect () {\n this.shouldConnect = true\n if (!this.connected && this.ws === null) {\n setupWS(this)\n }\n }\n}\n"],"names":["time.getUnixTime","math.min","math.log10","Observable"],"mappings":"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"}
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./observable.cjs');
6
- require('./time-bc2081b9.cjs');
7
- require('./math-08e068f9.cjs');
8
- var websocket = require('./websocket-40a601d4.cjs');
9
- require('./map-0dabcc55.cjs');
6
+ require('./time-d8438852.cjs');
7
+ require('./math-96d5e8c4.cjs');
8
+ var websocket = require('./websocket-b073d0fc.cjs');
9
+ require('./map-24d263c0.cjs');
10
10
  require('./set-5b47859e.cjs');
11
11
  require('./array-78849c95.cjs');
12
12
  require('./metric.cjs');
package/dom.d.ts CHANGED
@@ -4,6 +4,10 @@
4
4
  export const doc: Document;
5
5
  export function createElement(name: string): HTMLElement;
6
6
  export function createDocumentFragment(): DocumentFragment;
7
+ /**
8
+ * @type {$.Schema<DocumentFragment>}
9
+ */
10
+ export const $fragment: $.Schema<DocumentFragment>;
7
11
  export function createTextNode(text: string): Text;
8
12
  export const domParser: DOMParser;
9
13
  export function emitCustomEvent(el: HTMLElement, name: string, opts: Object): boolean;
@@ -17,8 +21,16 @@ export function removeEventListener(el: EventTarget, name: string, f: EventListe
17
21
  export function addEventListeners(node: Node, listeners: Array<pair.Pair<string, EventListener>>): Node;
18
22
  export function removeEventListeners(node: Node, listeners: Array<pair.Pair<string, EventListener>>): Node;
19
23
  export function element(name: string, attrs?: Array<pair.Pair<string, string> | pair.Pair<string, boolean>>, children?: Array<Node>): Element;
24
+ /**
25
+ * @type {$.Schema<Element>}
26
+ */
27
+ export const $element: $.Schema<Element>;
20
28
  export function canvas(width: number, height: number): HTMLCanvasElement;
21
29
  export function text(text: string): Text;
30
+ /**
31
+ * @type {$.Schema<Text>}
32
+ */
33
+ export const $text: $.Schema<Text>;
22
34
  export function pairToStyleString(pair: pair.Pair<string, string>): string;
23
35
  export function pairsToStyleString(pairs: Array<pair.Pair<string, string>>): string;
24
36
  export function mapToStyleString(m: Map<string, string>): string;
@@ -37,7 +49,12 @@ export const COMMENT_NODE: 8;
37
49
  export const DOCUMENT_NODE: 9;
38
50
  export const DOCUMENT_TYPE_NODE: 10;
39
51
  export const DOCUMENT_FRAGMENT_NODE: 11;
52
+ /**
53
+ * @type {$.Schema<Node>}
54
+ */
55
+ export const $node: $.Schema<Node>;
40
56
  export function checkNodeType(node: any, type: number): boolean;
41
57
  export function isParentOf(parent: Node, child: HTMLElement): boolean;
58
+ import * as $ from './schema.js';
42
59
  import * as pair from './pair.js';
43
60
  //# sourceMappingURL=dom.d.ts.map
package/dom.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["dom.js"],"names":[],"mappings":"AAYA;;GAEG;AACH,kBAFU,QAAQ,CAE0E;AAMrF,oCAHI,MAAM,GACL,WAAW,CAEqC;AAKrD,0CAFK,gBAAgB,CAE4C;AAMjE,qCAHI,MAAM,GACL,IAAI,CAE8C;AAE9D,wBAAoC,SAAS,CAAgE;AAOtG,oCAJI,WAAW,QACX,MAAM,QACN,MAAM,WAE+E;AAOzF,kCAJI,OAAO,SACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,GAAC,OAAO,CAAC,CAAC,GACtC,OAAO,CAclB;AAOM,qCAJI,OAAO,SACP,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAClB,OAAO,CAKlB;AAMM,mCAHI,KAAK,CAAC,IAAI,CAAC,GAAC,cAAc,GACzB,gBAAgB,CAQ3B;AAOM,+BAJI,OAAO,SACP,KAAK,CAAC,IAAI,CAAC,GACV,OAAO,CAKlB;AAKM,2BAFI,WAAW,QAEiB;AAOhC,qCAJI,WAAW,QACX,MAAM,KACN,aAAa,QAEqD;AAOtE,wCAJI,WAAW,QACX,MAAM,KACN,aAAa,QAE2D;AAO5E,wCAJI,IAAI,aACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAKf;AAOM,2CAJI,IAAI,aACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAKf;AAQM,8BALI,MAAM,UACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC,aACzD,KAAK,CAAC,IAAI,CAAC,GACV,OAAO,CAG0C;AAMtD,8BAHI,MAAM,UACN,MAAM,qBAOhB;AAvHM,2BAHI,MAAM,GACL,IAAI,CAE8C;AAkIvD,wCAFI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,UAEmC;AAM/D,0CAHI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC,GAC9B,MAAM,CAE8D;AAMzE,oCAHI,GAAG,CAAC,MAAM,EAAC,MAAM,CAAC,GACjB,MAAM,CAE0E;AASrF,kCAJI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,WAAW,GAAG,IAAI,CAEqC;AAO5D,qCAJI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,UAAU,CAAC,WAAW,CAAC,CAEsC;AAMlE,mCAHI,MAAM,GACL,WAAW,CAEgE;AAYhF,oCAHI,MAAM,GACL,gBAAgB,CAE+D;AAMpF,mCAHI,MAAM,GACL,WAAW,CAEsE;AAMtF,mCAHI,WAAW,SACX,WAAW,GAAC,gBAAgB,QAE8B;AAQ9D,qCALI,WAAW,MACX,WAAW,OACX,IAAI,GAAC,IAAI,GACR,WAAW,CAEsD;AAOtE,oCAJI,IAAI,SACJ,IAAI,GACH,IAAI,CAEuD;AAEvE,6BAA4C;AAC5C,0BAAsC;AACtC,mCAAwD;AACxD,6BAA4C;AAC5C,8BAA8C;AAC9C,oCAAwD;AACxD,wCAAgE;AAMzD,oCAHI,GAAG,QACH,MAAM,WAEkD;AAM5D,mCAHI,IAAI,SACJ,WAAW,WAQrB;sBA7PqB,WAAW"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["dom.js"],"names":[],"mappings":"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"}
package/dom.js CHANGED
@@ -8,6 +8,7 @@
8
8
 
9
9
  import * as pair from './pair.js'
10
10
  import * as map from './map.js'
11
+ import * as $ from './schema.js'
11
12
 
12
13
  /* c8 ignore start */
13
14
  /**
@@ -26,6 +27,11 @@ export const createElement = name => doc.createElement(name)
26
27
  */
27
28
  export const createDocumentFragment = () => doc.createDocumentFragment()
28
29
 
30
+ /**
31
+ * @type {$.Schema<DocumentFragment>}
32
+ */
33
+ export const $fragment = $.$custom(el => el.nodeType === DOCUMENT_FRAGMENT_NODE)
34
+
29
35
  /**
30
36
  * @param {string} text
31
37
  * @return {Text}
@@ -140,6 +146,11 @@ export const removeEventListeners = (node, listeners) => {
140
146
  export const element = (name, attrs = [], children = []) =>
141
147
  append(setAttributes(createElement(name), attrs), children)
142
148
 
149
+ /**
150
+ * @type {$.Schema<Element>}
151
+ */
152
+ export const $element = $.$custom(el => el.nodeType === ELEMENT_NODE)
153
+
143
154
  /**
144
155
  * @param {number} width
145
156
  * @param {number} height
@@ -157,6 +168,11 @@ export const canvas = (width, height) => {
157
168
  */
158
169
  export const text = createTextNode
159
170
 
171
+ /**
172
+ * @type {$.Schema<Text>}
173
+ */
174
+ export const $text = $.$custom(el => el.nodeType === TEXT_NODE)
175
+
160
176
  /**
161
177
  * @param {pair.Pair<string,string>} pair
162
178
  */
@@ -243,6 +259,11 @@ export const DOCUMENT_NODE = doc.DOCUMENT_NODE
243
259
  export const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE
244
260
  export const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE
245
261
 
262
+ /**
263
+ * @type {$.Schema<Node>}
264
+ */
265
+ export const $node = $.$custom(el => el.nodeType === DOCUMENT_NODE)
266
+
246
267
  /**
247
268
  * @param {any} node
248
269
  * @param {number} type
package/encoding.d.ts CHANGED
@@ -10,10 +10,10 @@ export class Encoder {
10
10
  bufs: Array<Uint8Array>;
11
11
  }
12
12
  export function createEncoder(): Encoder;
13
- export function encode(f: (arg0: Encoder) => void): Uint8Array<ArrayBufferLike>;
13
+ export function encode(f: (arg0: Encoder) => void): Uint8Array<ArrayBuffer>;
14
14
  export function length(encoder: Encoder): number;
15
15
  export function hasContent(encoder: Encoder): boolean;
16
- export function toUint8Array(encoder: Encoder): Uint8Array;
16
+ export function toUint8Array(encoder: Encoder): Uint8Array<ArrayBuffer>;
17
17
  export function verifyLen(encoder: Encoder, len: number): void;
18
18
  export function write(encoder: Encoder, num: number): void;
19
19
  export function set(encoder: Encoder, pos: number, num: number): void;
@@ -143,7 +143,7 @@ export class UintOptRleEncoder {
143
143
  *
144
144
  * Note that this should only be called once.
145
145
  */
146
- toUint8Array(): Uint8Array<ArrayBufferLike>;
146
+ toUint8Array(): Uint8Array<ArrayBuffer>;
147
147
  }
148
148
  /**
149
149
  * Increasing Uint Optimized RLE Encoder
@@ -169,7 +169,7 @@ export class IncUintOptRleEncoder {
169
169
  *
170
170
  * Note that this should only be called once.
171
171
  */
172
- toUint8Array(): Uint8Array<ArrayBufferLike>;
172
+ toUint8Array(): Uint8Array<ArrayBuffer>;
173
173
  }
174
174
  /**
175
175
  * A combination of the IntDiffEncoder and the UintOptRleEncoder.
@@ -205,7 +205,7 @@ export class IntDiffOptRleEncoder {
205
205
  *
206
206
  * Note that this should only be called once.
207
207
  */
208
- toUint8Array(): Uint8Array<ArrayBufferLike>;
208
+ toUint8Array(): Uint8Array<ArrayBuffer>;
209
209
  }
210
210
  /**
211
211
  * Optimized String Encoder.
@@ -228,6 +228,6 @@ export class StringEncoder {
228
228
  * @param {string} string
229
229
  */
230
230
  write(string: string): void;
231
- toUint8Array(): Uint8Array<ArrayBufferLike>;
231
+ toUint8Array(): Uint8Array<ArrayBuffer>;
232
232
  }
233
233
  //# sourceMappingURL=encoding.d.ts.map
package/encoding.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["encoding.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["encoding.js"],"names":[],"mappings":"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"}
package/encoding.js CHANGED
@@ -90,7 +90,7 @@ export const hasContent = encoder => encoder.cpos > 0 || encoder.bufs.length > 0
90
90
  *
91
91
  * @function
92
92
  * @param {Encoder} encoder
93
- * @return {Uint8Array} The created ArrayBuffer.
93
+ * @return {Uint8Array<ArrayBuffer>} The created ArrayBuffer.
94
94
  */
95
95
  export const toUint8Array = encoder => {
96
96
  const uint8arr = new Uint8Array(length(encoder))
package/error.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export function create(s: string): Error;
2
2
  export function methodUnimplemented(): never;
3
3
  export function unexpectedCase(): never;
4
+ export function assert(property: boolean): asserts property is true;
4
5
  //# sourceMappingURL=error.d.ts.map
package/error.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["error.js"],"names":[],"mappings":"AAWO,0BAJI,MAAM,GACL,KAAK,CAGsB;AAOhC,uCAHK,KAAK,CAKhB;AAOM,kCAHK,KAAK,CAKhB"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["error.js"],"names":[],"mappings":"AAWO,0BAJI,MAAM,GACL,KAAK,CAGsB;AAOhC,uCAHK,KAAK,CAKhB;AAOM,kCAHK,KAAK,CAKhB;AAMM,iCAHI,OAAO,GACN,QAAQ,QAAQ,IAAI,IAAI,CAE8C"}