lib0 0.2.116 → 1.0.0-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 (860) hide show
  1. package/package.json +160 -407
  2. package/{array.js → src/array.js} +6 -2
  3. package/{binary.js → src/binary.js} +29 -35
  4. package/{delta → src/delta}/delta.js +474 -410
  5. package/{environment.js → src/environment.js} +30 -16
  6. package/{hash → src/hash}/rabin.js +6 -6
  7. package/{schema.js → src/schema.js} +127 -58
  8. package/{string.js → src/string.js} +47 -26
  9. package/{testing.js → src/testing.js} +3 -1
  10. package/src/ts.js +46 -0
  11. package/{dist → types}/array.d.ts +1 -1
  12. package/types/array.d.ts.map +1 -0
  13. package/{dist → types}/binary.d.ts +31 -37
  14. package/types/binary.d.ts.map +1 -0
  15. package/types/broadcastchannel.d.ts.map +1 -0
  16. package/types/buffer.d.ts.map +1 -0
  17. package/types/cache.d.ts.map +1 -0
  18. package/types/component.d.ts.map +1 -0
  19. package/types/conditions.d.ts.map +1 -0
  20. package/types/decoding.d.ts.map +1 -0
  21. package/types/delta/delta.d.ts +87 -16
  22. package/types/delta/delta.d.ts.map +1 -1
  23. package/types/delta/t3.test.d.ts.map +1 -1
  24. package/types/diff.d.ts.map +1 -0
  25. package/types/dom.d.ts.map +1 -0
  26. package/types/encoding.d.ts.map +1 -0
  27. package/{environment.d.ts → types/environment.d.ts} +2 -0
  28. package/types/environment.d.ts.map +1 -0
  29. package/types/error.d.ts.map +1 -0
  30. package/types/eventloop.d.ts.map +1 -0
  31. package/{function.d.ts → types/function.d.ts} +1 -1
  32. package/types/function.d.ts.map +1 -0
  33. package/types/indexeddb.d.ts.map +1 -0
  34. package/types/indexeddbV2.d.ts.map +1 -0
  35. package/types/iterator.d.ts.map +1 -0
  36. package/types/json.d.ts.map +1 -0
  37. package/types/list.d.ts.map +1 -0
  38. package/types/logging.common.d.ts.map +1 -0
  39. package/types/logging.d.ts.map +1 -0
  40. package/types/logging.node.d.ts.map +1 -0
  41. package/types/map.d.ts.map +1 -0
  42. package/types/math.d.ts.map +1 -0
  43. package/types/metric.d.ts.map +1 -0
  44. package/types/mutex.d.ts.map +1 -0
  45. package/{number.d.ts → types/number.d.ts} +2 -2
  46. package/types/number.d.ts.map +1 -0
  47. package/types/object.d.ts.map +1 -0
  48. package/types/observable.d.ts.map +1 -0
  49. package/types/pair.d.ts.map +1 -0
  50. package/types/performance.d.ts.map +1 -0
  51. package/types/performance.node.d.ts.map +1 -0
  52. package/types/pledge.d.ts.map +1 -0
  53. package/types/prng.d.ts.map +1 -0
  54. package/types/promise.d.ts.map +1 -0
  55. package/types/queue.d.ts.map +1 -0
  56. package/types/random.d.ts.map +1 -0
  57. package/{schema.d.ts → types/schema.d.ts} +65 -59
  58. package/types/schema.d.ts.map +1 -0
  59. package/types/set.d.ts.map +1 -0
  60. package/types/sort.d.ts.map +1 -0
  61. package/types/statistics.d.ts.map +1 -0
  62. package/types/storage.d.ts.map +1 -0
  63. package/{string.d.ts → types/string.d.ts} +3 -8
  64. package/types/string.d.ts.map +1 -0
  65. package/types/symbol.d.ts.map +1 -0
  66. package/{testing.d.ts → types/testing.d.ts} +2 -1
  67. package/types/testing.d.ts.map +1 -0
  68. package/types/time.d.ts.map +1 -0
  69. package/types/trait/equality.d.ts.map +1 -1
  70. package/types/tree.d.ts.map +1 -0
  71. package/types/ts.d.ts +22 -0
  72. package/types/ts.d.ts.map +1 -0
  73. package/types/url.d.ts.map +1 -0
  74. package/types/webcrypto.d.ts.map +1 -0
  75. package/types/webcrypto.deno.d.ts.map +1 -0
  76. package/types/webcrypto.node.d.ts.map +1 -0
  77. package/types/webcrypto.react-native.d.ts.map +1 -0
  78. package/types/websocket.d.ts.map +1 -0
  79. package/.github/workflows/node.js.yml +0 -24
  80. package/.jsdoc.json +0 -18
  81. package/.vscode/launch.json +0 -17
  82. package/array.d.ts +0 -30
  83. package/array.d.ts.map +0 -1
  84. package/array.test.d.ts +0 -13
  85. package/array.test.d.ts.map +0 -1
  86. package/bin/0ecdsa-generate-keypair.d.ts +0 -3
  87. package/bin/0ecdsa-generate-keypair.d.ts.map +0 -1
  88. package/bin/0serve.d.ts +0 -3
  89. package/bin/0serve.d.ts.map +0 -1
  90. package/bin/gendocs.d.ts +0 -3
  91. package/bin/gendocs.d.ts.map +0 -1
  92. package/bin/gentesthtml.d.ts +0 -3
  93. package/bin/gentesthtml.d.ts.map +0 -1
  94. package/binary.d.ts +0 -87
  95. package/binary.d.ts.map +0 -1
  96. package/binary.test.d.ts +0 -4
  97. package/binary.test.d.ts.map +0 -1
  98. package/broadcastchannel.d.ts.map +0 -1
  99. package/broadcastchannel.test.d.ts +0 -3
  100. package/broadcastchannel.test.d.ts.map +0 -1
  101. package/buffer.d.ts.map +0 -1
  102. package/buffer.test.d.ts +0 -6
  103. package/buffer.test.d.ts.map +0 -1
  104. package/cache.d.ts.map +0 -1
  105. package/cache.test.d.ts +0 -3
  106. package/cache.test.d.ts.map +0 -1
  107. package/component.d.ts.map +0 -1
  108. package/conditions.d.ts.map +0 -1
  109. package/coverage/tmp/coverage-54474-1766470859038-0.json +0 -1
  110. package/crypto/aes-gcm.d.ts +0 -17
  111. package/crypto/aes-gcm.d.ts.map +0 -1
  112. package/crypto/common.d.ts +0 -3
  113. package/crypto/common.d.ts.map +0 -1
  114. package/crypto/ecdsa.d.ts +0 -17
  115. package/crypto/ecdsa.d.ts.map +0 -1
  116. package/crypto/jwt.d.ts +0 -10
  117. package/crypto/jwt.d.ts.map +0 -1
  118. package/crypto/rsa-oaep.d.ts +0 -13
  119. package/crypto/rsa-oaep.d.ts.map +0 -1
  120. package/crypto.test.d.ts +0 -9
  121. package/crypto.test.d.ts.map +0 -1
  122. package/decoding.d.ts.map +0 -1
  123. package/delta/binding.d.ts +0 -107
  124. package/delta/binding.d.ts.map +0 -1
  125. package/delta/binding.test.d.ts +0 -5
  126. package/delta/binding.test.d.ts.map +0 -1
  127. package/delta/delta-pitch.test.d.ts +0 -5
  128. package/delta/delta-pitch.test.d.ts.map +0 -1
  129. package/delta/delta.d.ts +0 -1008
  130. package/delta/delta.d.ts.map +0 -1
  131. package/delta/delta.test.d.ts +0 -28
  132. package/delta/delta.test.d.ts.map +0 -1
  133. package/delta/t3.test.d.ts +0 -19
  134. package/delta/t3.test.d.ts.map +0 -1
  135. package/deno.json +0 -12
  136. package/deno.lock +0 -122
  137. package/diff/patience.d.ts +0 -16
  138. package/diff/patience.d.ts.map +0 -1
  139. package/diff/patience.test.d.ts +0 -4
  140. package/diff/patience.test.d.ts.map +0 -1
  141. package/diff.d.ts.map +0 -1
  142. package/diff.test.d.ts +0 -6
  143. package/diff.test.d.ts.map +0 -1
  144. package/dist/aes-gcm.cjs +0 -171
  145. package/dist/aes-gcm.cjs.map +0 -1
  146. package/dist/array-78849c95.cjs +0 -260
  147. package/dist/array-78849c95.cjs.map +0 -1
  148. package/dist/array.cjs +0 -26
  149. package/dist/array.cjs.map +0 -1
  150. package/dist/array.d.ts.map +0 -1
  151. package/dist/array.test.d.ts +0 -13
  152. package/dist/array.test.d.ts.map +0 -1
  153. package/dist/bin/0ecdsa-generate-keypair.d.ts +0 -3
  154. package/dist/bin/0ecdsa-generate-keypair.d.ts.map +0 -1
  155. package/dist/bin/0serve.d.ts +0 -3
  156. package/dist/bin/0serve.d.ts.map +0 -1
  157. package/dist/bin/gendocs.d.ts +0 -3
  158. package/dist/bin/gendocs.d.ts.map +0 -1
  159. package/dist/bin/gentesthtml.d.ts +0 -3
  160. package/dist/bin/gentesthtml.d.ts.map +0 -1
  161. package/dist/binary-ac8e39e2.cjs +0 -229
  162. package/dist/binary-ac8e39e2.cjs.map +0 -1
  163. package/dist/binary.cjs +0 -74
  164. package/dist/binary.cjs.map +0 -1
  165. package/dist/binary.d.ts.map +0 -1
  166. package/dist/binary.test.d.ts +0 -4
  167. package/dist/binary.test.d.ts.map +0 -1
  168. package/dist/binding.cjs +0 -484
  169. package/dist/binding.cjs.map +0 -1
  170. package/dist/broadcastchannel-aca4f606.cjs +0 -128
  171. package/dist/broadcastchannel-aca4f606.cjs.map +0 -1
  172. package/dist/broadcastchannel.cjs +0 -29
  173. package/dist/broadcastchannel.cjs.map +0 -1
  174. package/dist/broadcastchannel.d.ts +0 -8
  175. package/dist/broadcastchannel.d.ts.map +0 -1
  176. package/dist/broadcastchannel.test.d.ts +0 -3
  177. package/dist/broadcastchannel.test.d.ts.map +0 -1
  178. package/dist/buffer-3e750729.cjs +0 -198
  179. package/dist/buffer-3e750729.cjs.map +0 -1
  180. package/dist/buffer.cjs +0 -38
  181. package/dist/buffer.cjs.map +0 -1
  182. package/dist/buffer.d.ts +0 -22
  183. package/dist/buffer.d.ts.map +0 -1
  184. package/dist/buffer.test.d.ts +0 -6
  185. package/dist/buffer.test.d.ts.map +0 -1
  186. package/dist/cache.cjs +0 -223
  187. package/dist/cache.cjs.map +0 -1
  188. package/dist/cache.d.ts +0 -52
  189. package/dist/cache.d.ts.map +0 -1
  190. package/dist/cache.test.d.ts +0 -3
  191. package/dist/cache.test.d.ts.map +0 -1
  192. package/dist/common.cjs +0 -47
  193. package/dist/common.cjs.map +0 -1
  194. package/dist/component.cjs +0 -437
  195. package/dist/component.cjs.map +0 -1
  196. package/dist/component.d.ts +0 -86
  197. package/dist/component.d.ts.map +0 -1
  198. package/dist/conditions-f5c0c102.cjs +0 -24
  199. package/dist/conditions-f5c0c102.cjs.map +0 -1
  200. package/dist/conditions.cjs +0 -10
  201. package/dist/conditions.cjs.map +0 -1
  202. package/dist/conditions.d.ts +0 -2
  203. package/dist/conditions.d.ts.map +0 -1
  204. package/dist/crypto/aes-gcm.d.ts +0 -17
  205. package/dist/crypto/aes-gcm.d.ts.map +0 -1
  206. package/dist/crypto/common.d.ts +0 -3
  207. package/dist/crypto/common.d.ts.map +0 -1
  208. package/dist/crypto/ecdsa.d.ts +0 -17
  209. package/dist/crypto/ecdsa.d.ts.map +0 -1
  210. package/dist/crypto/jwt.d.ts +0 -10
  211. package/dist/crypto/jwt.d.ts.map +0 -1
  212. package/dist/crypto/rsa-oaep.d.ts +0 -13
  213. package/dist/crypto/rsa-oaep.d.ts.map +0 -1
  214. package/dist/crypto.test.d.ts +0 -9
  215. package/dist/crypto.test.d.ts.map +0 -1
  216. package/dist/decoding-76e75827.cjs +0 -795
  217. package/dist/decoding-76e75827.cjs.map +0 -1
  218. package/dist/decoding.cjs +0 -55
  219. package/dist/decoding.cjs.map +0 -1
  220. package/dist/decoding.d.ts +0 -165
  221. package/dist/decoding.d.ts.map +0 -1
  222. package/dist/delta/binding.d.ts +0 -107
  223. package/dist/delta/binding.d.ts.map +0 -1
  224. package/dist/delta/binding.test.d.ts +0 -5
  225. package/dist/delta/binding.test.d.ts.map +0 -1
  226. package/dist/delta/delta-pitch.test.d.ts +0 -5
  227. package/dist/delta/delta-pitch.test.d.ts.map +0 -1
  228. package/dist/delta/delta.d.ts +0 -1008
  229. package/dist/delta/delta.d.ts.map +0 -1
  230. package/dist/delta/delta.test.d.ts +0 -28
  231. package/dist/delta/delta.test.d.ts.map +0 -1
  232. package/dist/delta/t3.test.d.ts +0 -19
  233. package/dist/delta/t3.test.d.ts.map +0 -1
  234. package/dist/delta.cjs +0 -2409
  235. package/dist/delta.cjs.map +0 -1
  236. package/dist/diff/patience.d.ts +0 -16
  237. package/dist/diff/patience.d.ts.map +0 -1
  238. package/dist/diff/patience.test.d.ts +0 -4
  239. package/dist/diff/patience.test.d.ts.map +0 -1
  240. package/dist/diff-9d236524.cjs +0 -162
  241. package/dist/diff-9d236524.cjs.map +0 -1
  242. package/dist/diff.cjs +0 -18
  243. package/dist/diff.cjs.map +0 -1
  244. package/dist/diff.d.ts +0 -36
  245. package/dist/diff.d.ts.map +0 -1
  246. package/dist/diff.test.d.ts +0 -6
  247. package/dist/diff.test.d.ts.map +0 -1
  248. package/dist/dom-7e625b09.cjs +0 -371
  249. package/dist/dom-7e625b09.cjs.map +0 -1
  250. package/dist/dom.cjs +0 -71
  251. package/dist/dom.cjs.map +0 -1
  252. package/dist/dom.d.ts.map +0 -1
  253. package/dist/ecdsa.cjs +0 -130
  254. package/dist/ecdsa.cjs.map +0 -1
  255. package/dist/encoding-1a745c43.cjs +0 -1025
  256. package/dist/encoding-1a745c43.cjs.map +0 -1
  257. package/dist/encoding.cjs +0 -54
  258. package/dist/encoding.cjs.map +0 -1
  259. package/dist/encoding.d.ts.map +0 -1
  260. package/dist/encoding.test.d.ts +0 -50
  261. package/dist/encoding.test.d.ts.map +0 -1
  262. package/dist/environment-1c97264d.cjs +0 -180
  263. package/dist/environment-1c97264d.cjs.map +0 -1
  264. package/dist/environment.cjs +0 -29
  265. package/dist/environment.cjs.map +0 -1
  266. package/dist/environment.d.ts +0 -19
  267. package/dist/environment.d.ts.map +0 -1
  268. package/dist/equality.cjs +0 -34
  269. package/dist/equality.cjs.map +0 -1
  270. package/dist/error-0c1f634f.cjs +0 -53
  271. package/dist/error-0c1f634f.cjs.map +0 -1
  272. package/dist/error.cjs +0 -13
  273. package/dist/error.cjs.map +0 -1
  274. package/dist/error.d.ts.map +0 -1
  275. package/dist/eventloop-a0168106.cjs +0 -151
  276. package/dist/eventloop-a0168106.cjs.map +0 -1
  277. package/dist/eventloop.cjs +0 -19
  278. package/dist/eventloop.cjs.map +0 -1
  279. package/dist/eventloop.d.ts.map +0 -1
  280. package/dist/eventloop.test.d.ts +0 -10
  281. package/dist/eventloop.test.d.ts.map +0 -1
  282. package/dist/fingerprint.cjs +0 -44
  283. package/dist/fingerprint.cjs.map +0 -1
  284. package/dist/function-314580f7.cjs +0 -223
  285. package/dist/function-314580f7.cjs.map +0 -1
  286. package/dist/function.cjs +0 -26
  287. package/dist/function.cjs.map +0 -1
  288. package/dist/function.d.ts +0 -19
  289. package/dist/function.d.ts.map +0 -1
  290. package/dist/function.test.d.ts +0 -5
  291. package/dist/function.test.d.ts.map +0 -1
  292. package/dist/hash/rabin-gf2-polynomial.d.ts +0 -45
  293. package/dist/hash/rabin-gf2-polynomial.d.ts.map +0 -1
  294. package/dist/hash/rabin-uncached.d.ts +0 -29
  295. package/dist/hash/rabin-uncached.d.ts.map +0 -1
  296. package/dist/hash/rabin.d.ts +0 -27
  297. package/dist/hash/rabin.d.ts.map +0 -1
  298. package/dist/hash/rabin.test.d.ts +0 -8
  299. package/dist/hash/rabin.test.d.ts.map +0 -1
  300. package/dist/hash/sha256.d.ts +0 -2
  301. package/dist/hash/sha256.d.ts.map +0 -1
  302. package/dist/hash/sha256.node.d.ts +0 -2
  303. package/dist/hash/sha256.node.d.ts.map +0 -1
  304. package/dist/hash/sha256.test.d.ts +0 -7
  305. package/dist/hash/sha256.test.d.ts.map +0 -1
  306. package/dist/index.cjs +0 -99
  307. package/dist/index.cjs.map +0 -1
  308. package/dist/index.d.ts +0 -35
  309. package/dist/index.d.ts.map +0 -1
  310. package/dist/indexeddb-46d1e737.cjs +0 -311
  311. package/dist/indexeddb-46d1e737.cjs.map +0 -1
  312. package/dist/indexeddb.cjs +0 -37
  313. package/dist/indexeddb.cjs.map +0 -1
  314. package/dist/indexeddb.d.ts.map +0 -1
  315. package/dist/indexeddb.test.d.ts +0 -3
  316. package/dist/indexeddb.test.d.ts.map +0 -1
  317. package/dist/indexeddbV2.cjs +0 -288
  318. package/dist/indexeddbV2.cjs.map +0 -1
  319. package/dist/indexeddbV2.d.ts.map +0 -1
  320. package/dist/indexeddbV2.test.d.ts +0 -3
  321. package/dist/indexeddbV2.test.d.ts.map +0 -1
  322. package/dist/isomorphic.cjs +0 -17
  323. package/dist/isomorphic.cjs.map +0 -1
  324. package/dist/iterator-9fc627c1.cjs +0 -78
  325. package/dist/iterator-9fc627c1.cjs.map +0 -1
  326. package/dist/iterator.cjs +0 -13
  327. package/dist/iterator.cjs.map +0 -1
  328. package/dist/iterator.d.ts.map +0 -1
  329. package/dist/json-092190a1.cjs +0 -34
  330. package/dist/json-092190a1.cjs.map +0 -1
  331. package/dist/json.cjs +0 -11
  332. package/dist/json.cjs.map +0 -1
  333. package/dist/json.d.ts.map +0 -1
  334. package/dist/jwt.cjs +0 -96
  335. package/dist/jwt.cjs.map +0 -1
  336. package/dist/list.cjs +0 -266
  337. package/dist/list.cjs.map +0 -1
  338. package/dist/list.d.ts.map +0 -1
  339. package/dist/list.test.d.ts +0 -6
  340. package/dist/list.test.d.ts.map +0 -1
  341. package/dist/logging.cjs +0 -428
  342. package/dist/logging.cjs.map +0 -1
  343. package/dist/logging.common.cjs +0 -132
  344. package/dist/logging.common.cjs.map +0 -1
  345. package/dist/logging.common.d.ts.map +0 -1
  346. package/dist/logging.d.ts.map +0 -1
  347. package/dist/logging.node.cjs +0 -203
  348. package/dist/logging.node.cjs.map +0 -1
  349. package/dist/logging.node.d.ts.map +0 -1
  350. package/dist/logging.test.d.ts +0 -3
  351. package/dist/logging.test.d.ts.map +0 -1
  352. package/dist/map-24d263c0.cjs +0 -139
  353. package/dist/map-24d263c0.cjs.map +0 -1
  354. package/dist/map.cjs +0 -15
  355. package/dist/map.cjs.map +0 -1
  356. package/dist/map.d.ts.map +0 -1
  357. package/dist/map.test.d.ts +0 -4
  358. package/dist/map.test.d.ts.map +0 -1
  359. package/dist/math-96d5e8c4.cjs +0 -103
  360. package/dist/math-96d5e8c4.cjs.map +0 -1
  361. package/dist/math.cjs +0 -26
  362. package/dist/math.cjs.map +0 -1
  363. package/dist/math.d.ts.map +0 -1
  364. package/dist/math.test.d.ts +0 -3
  365. package/dist/math.test.d.ts.map +0 -1
  366. package/dist/metric.cjs +0 -83
  367. package/dist/metric.cjs.map +0 -1
  368. package/dist/metric.d.ts.map +0 -1
  369. package/dist/metric.test.d.ts +0 -3
  370. package/dist/metric.test.d.ts.map +0 -1
  371. package/dist/mutex-63f09c81.cjs +0 -54
  372. package/dist/mutex-63f09c81.cjs.map +0 -1
  373. package/dist/mutex.cjs +0 -10
  374. package/dist/mutex.cjs.map +0 -1
  375. package/dist/mutex.d.ts.map +0 -1
  376. package/dist/mutex.test.d.ts +0 -3
  377. package/dist/mutex.test.d.ts.map +0 -1
  378. package/dist/number-1fb57bba.cjs +0 -64
  379. package/dist/number-1fb57bba.cjs.map +0 -1
  380. package/dist/number.cjs +0 -20
  381. package/dist/number.cjs.map +0 -1
  382. package/dist/number.d.ts +0 -10
  383. package/dist/number.d.ts.map +0 -1
  384. package/dist/number.test.d.ts +0 -4
  385. package/dist/number.test.d.ts.map +0 -1
  386. package/dist/object-c0c9435b.cjs +0 -212
  387. package/dist/object-c0c9435b.cjs.map +0 -1
  388. package/dist/object.cjs +0 -27
  389. package/dist/object.cjs.map +0 -1
  390. package/dist/object.d.ts.map +0 -1
  391. package/dist/object.test.d.ts +0 -6
  392. package/dist/object.test.d.ts.map +0 -1
  393. package/dist/observable.cjs +0 -169
  394. package/dist/observable.cjs.map +0 -1
  395. package/dist/observable.d.ts.map +0 -1
  396. package/dist/observable.test.d.ts +0 -3
  397. package/dist/observable.test.d.ts.map +0 -1
  398. package/dist/pair-ab022bc3.cjs +0 -69
  399. package/dist/pair-ab022bc3.cjs.map +0 -1
  400. package/dist/pair.cjs +0 -14
  401. package/dist/pair.cjs.map +0 -1
  402. package/dist/pair.d.ts.map +0 -1
  403. package/dist/pair.test.d.ts +0 -3
  404. package/dist/pair.test.d.ts.map +0 -1
  405. package/dist/patience.cjs +0 -236
  406. package/dist/patience.cjs.map +0 -1
  407. package/dist/performance.cjs +0 -14
  408. package/dist/performance.cjs.map +0 -1
  409. package/dist/performance.d.ts.map +0 -1
  410. package/dist/performance.node.cjs +0 -36
  411. package/dist/performance.node.cjs.map +0 -1
  412. package/dist/performance.node.d.ts.map +0 -1
  413. package/dist/pledge.cjs +0 -308
  414. package/dist/pledge.cjs.map +0 -1
  415. package/dist/pledge.d.ts.map +0 -1
  416. package/dist/pledge.test.d.ts +0 -6
  417. package/dist/pledge.test.d.ts.map +0 -1
  418. package/dist/prng/Mt19937.d.ts +0 -29
  419. package/dist/prng/Mt19937.d.ts.map +0 -1
  420. package/dist/prng/Xoroshiro128plus.d.ts +0 -27
  421. package/dist/prng/Xoroshiro128plus.d.ts.map +0 -1
  422. package/dist/prng/Xorshift32.d.ts +0 -21
  423. package/dist/prng/Xorshift32.d.ts.map +0 -1
  424. package/dist/prng-37d48618.cjs +0 -387
  425. package/dist/prng-37d48618.cjs.map +0 -1
  426. package/dist/prng.cjs +0 -44
  427. package/dist/prng.cjs.map +0 -1
  428. package/dist/prng.d.ts.map +0 -1
  429. package/dist/prng.test.d.ts +0 -6
  430. package/dist/prng.test.d.ts.map +0 -1
  431. package/dist/promise-cda7b9bb.cjs +0 -145
  432. package/dist/promise-cda7b9bb.cjs.map +0 -1
  433. package/dist/promise.cjs +0 -22
  434. package/dist/promise.cjs.map +0 -1
  435. package/dist/promise.d.ts.map +0 -1
  436. package/dist/promise.test.d.ts +0 -5
  437. package/dist/promise.test.d.ts.map +0 -1
  438. package/dist/queue.cjs +0 -97
  439. package/dist/queue.cjs.map +0 -1
  440. package/dist/queue.d.ts.map +0 -1
  441. package/dist/queue.test.d.ts +0 -3
  442. package/dist/queue.test.d.ts.map +0 -1
  443. package/dist/rabin-gf2-polynomial.cjs +0 -440
  444. package/dist/rabin-gf2-polynomial.cjs.map +0 -1
  445. package/dist/rabin-uncached.cjs +0 -90
  446. package/dist/rabin-uncached.cjs.map +0 -1
  447. package/dist/rabin.cjs +0 -128
  448. package/dist/rabin.cjs.map +0 -1
  449. package/dist/random.cjs +0 -48
  450. package/dist/random.cjs.map +0 -1
  451. package/dist/random.d.ts.map +0 -1
  452. package/dist/random.test.d.ts +0 -7
  453. package/dist/random.test.d.ts.map +0 -1
  454. package/dist/rollup.config.d.ts +0 -13
  455. package/dist/rollup.config.d.ts.map +0 -1
  456. package/dist/rsa-oaep.cjs +0 -112
  457. package/dist/rsa-oaep.cjs.map +0 -1
  458. package/dist/schema.cjs +0 -1223
  459. package/dist/schema.cjs.map +0 -1
  460. package/dist/schema.d.ts +0 -595
  461. package/dist/schema.d.ts.map +0 -1
  462. package/dist/schema.test.d.ts +0 -15
  463. package/dist/schema.test.d.ts.map +0 -1
  464. package/dist/set-5b47859e.cjs +0 -45
  465. package/dist/set-5b47859e.cjs.map +0 -1
  466. package/dist/set.cjs +0 -13
  467. package/dist/set.cjs.map +0 -1
  468. package/dist/set.d.ts.map +0 -1
  469. package/dist/set.test.d.ts +0 -3
  470. package/dist/set.test.d.ts.map +0 -1
  471. package/dist/sha256.cjs +0 -183
  472. package/dist/sha256.cjs.map +0 -1
  473. package/dist/sha256.node.cjs +0 -17
  474. package/dist/sha256.node.cjs.map +0 -1
  475. package/dist/sort-812cc211.cjs +0 -103
  476. package/dist/sort-812cc211.cjs.map +0 -1
  477. package/dist/sort.cjs +0 -13
  478. package/dist/sort.cjs.map +0 -1
  479. package/dist/sort.d.ts.map +0 -1
  480. package/dist/sort.test.d.ts +0 -7
  481. package/dist/sort.test.d.ts.map +0 -1
  482. package/dist/statistics-65f6114b.cjs +0 -32
  483. package/dist/statistics-65f6114b.cjs.map +0 -1
  484. package/dist/statistics.cjs +0 -12
  485. package/dist/statistics.cjs.map +0 -1
  486. package/dist/statistics.d.ts.map +0 -1
  487. package/dist/statistics.test.d.ts +0 -3
  488. package/dist/statistics.test.d.ts.map +0 -1
  489. package/dist/storage.cjs +0 -81
  490. package/dist/storage.cjs.map +0 -1
  491. package/dist/storage.d.ts.map +0 -1
  492. package/dist/storage.test.d.ts +0 -3
  493. package/dist/storage.test.d.ts.map +0 -1
  494. package/dist/string-fddc5f8b.cjs +0 -209
  495. package/dist/string-fddc5f8b.cjs.map +0 -1
  496. package/dist/string.cjs +0 -32
  497. package/dist/string.cjs.map +0 -1
  498. package/dist/string.d.ts +0 -28
  499. package/dist/string.d.ts.map +0 -1
  500. package/dist/string.test.d.ts +0 -9
  501. package/dist/string.test.d.ts.map +0 -1
  502. package/dist/symbol-9c439012.cjs +0 -29
  503. package/dist/symbol-9c439012.cjs.map +0 -1
  504. package/dist/symbol.cjs +0 -11
  505. package/dist/symbol.cjs.map +0 -1
  506. package/dist/symbol.d.ts.map +0 -1
  507. package/dist/symbol.test.d.ts +0 -3
  508. package/dist/symbol.test.d.ts.map +0 -1
  509. package/dist/testing.cjs +0 -709
  510. package/dist/testing.cjs.map +0 -1
  511. package/dist/testing.d.ts +0 -64
  512. package/dist/testing.d.ts.map +0 -1
  513. package/dist/testing.test.d.ts +0 -9
  514. package/dist/testing.test.d.ts.map +0 -1
  515. package/dist/time-d8438852.cjs +0 -63
  516. package/dist/time-d8438852.cjs.map +0 -1
  517. package/dist/time.cjs +0 -14
  518. package/dist/time.cjs.map +0 -1
  519. package/dist/time.d.ts.map +0 -1
  520. package/dist/time.test.d.ts +0 -4
  521. package/dist/time.test.d.ts.map +0 -1
  522. package/dist/trait/equality.d.ts +0 -6
  523. package/dist/trait/equality.d.ts.map +0 -1
  524. package/dist/trait/fingerprint.d.ts +0 -13
  525. package/dist/trait/fingerprint.d.ts.map +0 -1
  526. package/dist/trait/traits.d.ts +0 -3
  527. package/dist/trait/traits.d.ts.map +0 -1
  528. package/dist/trait/traits.test.d.ts +0 -5
  529. package/dist/trait/traits.test.d.ts.map +0 -1
  530. package/dist/traits.cjs +0 -31
  531. package/dist/traits.cjs.map +0 -1
  532. package/dist/tree-9f3c8837.cjs +0 -557
  533. package/dist/tree-9f3c8837.cjs.map +0 -1
  534. package/dist/tree.cjs +0 -10
  535. package/dist/tree.cjs.map +0 -1
  536. package/dist/tree.d.ts.map +0 -1
  537. package/dist/tree.test.d.ts +0 -2
  538. package/dist/tree.test.d.ts.map +0 -1
  539. package/dist/url.cjs +0 -46
  540. package/dist/url.cjs.map +0 -1
  541. package/dist/url.d.ts.map +0 -1
  542. package/dist/url.test.d.ts +0 -3
  543. package/dist/url.test.d.ts.map +0 -1
  544. package/dist/webcrypto.cjs +0 -12
  545. package/dist/webcrypto.cjs.map +0 -1
  546. package/dist/webcrypto.d.ts.map +0 -1
  547. package/dist/webcrypto.deno.cjs +0 -12
  548. package/dist/webcrypto.deno.cjs.map +0 -1
  549. package/dist/webcrypto.deno.d.ts.map +0 -1
  550. package/dist/webcrypto.node.cjs +0 -12
  551. package/dist/webcrypto.node.cjs.map +0 -1
  552. package/dist/webcrypto.node.d.ts.map +0 -1
  553. package/dist/webcrypto.react-native.cjs +0 -20
  554. package/dist/webcrypto.react-native.cjs.map +0 -1
  555. package/dist/webcrypto.react-native.d.ts.map +0 -1
  556. package/dist/websocket-b073d0fc.cjs +0 -157
  557. package/dist/websocket-b073d0fc.cjs.map +0 -1
  558. package/dist/websocket.cjs +0 -17
  559. package/dist/websocket.cjs.map +0 -1
  560. package/dist/websocket.d.ts.map +0 -1
  561. package/dom.d.ts +0 -60
  562. package/dom.d.ts.map +0 -1
  563. package/encoding.d.ts +0 -235
  564. package/encoding.d.ts.map +0 -1
  565. package/encoding.test.d.ts +0 -50
  566. package/encoding.test.d.ts.map +0 -1
  567. package/environment.d.ts.map +0 -1
  568. package/error.d.ts +0 -5
  569. package/error.d.ts.map +0 -1
  570. package/eventloop.d.ts +0 -16
  571. package/eventloop.d.ts.map +0 -1
  572. package/eventloop.test.d.ts +0 -10
  573. package/eventloop.test.d.ts.map +0 -1
  574. package/function.d.ts.map +0 -1
  575. package/function.test.d.ts +0 -5
  576. package/function.test.d.ts.map +0 -1
  577. package/hash/rabin-gf2-polynomial.d.ts +0 -45
  578. package/hash/rabin-gf2-polynomial.d.ts.map +0 -1
  579. package/hash/rabin-uncached.d.ts +0 -29
  580. package/hash/rabin-uncached.d.ts.map +0 -1
  581. package/hash/rabin.d.ts +0 -27
  582. package/hash/rabin.d.ts.map +0 -1
  583. package/hash/rabin.test.d.ts +0 -8
  584. package/hash/rabin.test.d.ts.map +0 -1
  585. package/hash/sha256.d.ts +0 -2
  586. package/hash/sha256.d.ts.map +0 -1
  587. package/hash/sha256.node.d.ts +0 -2
  588. package/hash/sha256.node.d.ts.map +0 -1
  589. package/hash/sha256.test.d.ts +0 -7
  590. package/hash/sha256.test.d.ts.map +0 -1
  591. package/index.d.ts +0 -35
  592. package/index.d.ts.map +0 -1
  593. package/index.js +0 -82
  594. package/indexeddb.d.ts +0 -34
  595. package/indexeddb.d.ts.map +0 -1
  596. package/indexeddb.test.d.ts +0 -3
  597. package/indexeddb.test.d.ts.map +0 -1
  598. package/indexeddbV2.d.ts +0 -35
  599. package/indexeddbV2.d.ts.map +0 -1
  600. package/indexeddbV2.test.d.ts +0 -3
  601. package/indexeddbV2.test.d.ts.map +0 -1
  602. package/isomorphic.js +0 -10
  603. package/iterator.d.ts +0 -5
  604. package/iterator.d.ts.map +0 -1
  605. package/json.d.ts +0 -23
  606. package/json.d.ts.map +0 -1
  607. package/list.d.ts +0 -55
  608. package/list.d.ts.map +0 -1
  609. package/list.test.d.ts +0 -6
  610. package/list.test.d.ts.map +0 -1
  611. package/logging.common.d.ts +0 -12
  612. package/logging.common.d.ts.map +0 -1
  613. package/logging.d.ts +0 -55
  614. package/logging.d.ts.map +0 -1
  615. package/logging.node.d.ts +0 -14
  616. package/logging.node.d.ts.map +0 -1
  617. package/logging.test.d.ts +0 -3
  618. package/logging.test.d.ts.map +0 -1
  619. package/map.d.ts +0 -8
  620. package/map.d.ts.map +0 -1
  621. package/map.test.d.ts +0 -4
  622. package/map.test.d.ts.map +0 -1
  623. package/math.d.ts +0 -23
  624. package/math.d.ts.map +0 -1
  625. package/math.test.d.ts +0 -3
  626. package/math.test.d.ts.map +0 -1
  627. package/metric.d.ts +0 -25
  628. package/metric.d.ts.map +0 -1
  629. package/metric.test.d.ts +0 -3
  630. package/metric.test.d.ts.map +0 -1
  631. package/mutex.d.ts +0 -3
  632. package/mutex.d.ts.map +0 -1
  633. package/mutex.test.d.ts +0 -3
  634. package/mutex.test.d.ts.map +0 -1
  635. package/number.d.ts.map +0 -1
  636. package/number.test.d.ts +0 -4
  637. package/number.test.d.ts.map +0 -1
  638. package/object.d.ts +0 -72
  639. package/object.d.ts.map +0 -1
  640. package/object.test.d.ts +0 -6
  641. package/object.test.d.ts.map +0 -1
  642. package/observable.d.ts +0 -86
  643. package/observable.d.ts.map +0 -1
  644. package/observable.test.d.ts +0 -3
  645. package/observable.test.d.ts.map +0 -1
  646. package/pair.d.ts +0 -22
  647. package/pair.d.ts.map +0 -1
  648. package/pair.test.d.ts +0 -3
  649. package/pair.test.d.ts.map +0 -1
  650. package/performance.d.ts +0 -4
  651. package/performance.d.ts.map +0 -1
  652. package/performance.node.d.ts +0 -14
  653. package/performance.node.d.ts.map +0 -1
  654. package/pledge.d.ts +0 -68
  655. package/pledge.d.ts.map +0 -1
  656. package/pledge.test.d.ts +0 -6
  657. package/pledge.test.d.ts.map +0 -1
  658. package/prng/Mt19937.d.ts +0 -29
  659. package/prng/Mt19937.d.ts.map +0 -1
  660. package/prng/Xoroshiro128plus.d.ts +0 -27
  661. package/prng/Xoroshiro128plus.d.ts.map +0 -1
  662. package/prng/Xorshift32.d.ts +0 -21
  663. package/prng/Xorshift32.d.ts.map +0 -1
  664. package/prng.d.ts +0 -44
  665. package/prng.d.ts.map +0 -1
  666. package/prng.test.d.ts +0 -6
  667. package/prng.test.d.ts.map +0 -1
  668. package/promise.d.ts +0 -22
  669. package/promise.d.ts.map +0 -1
  670. package/promise.test.d.ts +0 -5
  671. package/promise.test.d.ts.map +0 -1
  672. package/queue.d.ts +0 -34
  673. package/queue.d.ts.map +0 -1
  674. package/queue.test.d.ts +0 -3
  675. package/queue.test.d.ts.map +0 -1
  676. package/random.d.ts +0 -6
  677. package/random.d.ts.map +0 -1
  678. package/random.test.d.ts +0 -7
  679. package/random.test.d.ts.map +0 -1
  680. package/rollup.config.d.ts +0 -13
  681. package/rollup.config.d.ts.map +0 -1
  682. package/schema.d.ts.map +0 -1
  683. package/schema.test.d.ts +0 -15
  684. package/schema.test.d.ts.map +0 -1
  685. package/set.d.ts +0 -5
  686. package/set.d.ts.map +0 -1
  687. package/set.test.d.ts +0 -3
  688. package/set.test.d.ts.map +0 -1
  689. package/sort.d.ts +0 -4
  690. package/sort.d.ts.map +0 -1
  691. package/sort.test.d.ts +0 -7
  692. package/sort.test.d.ts.map +0 -1
  693. package/statistics.d.ts +0 -3
  694. package/statistics.d.ts.map +0 -1
  695. package/statistics.test.d.ts +0 -3
  696. package/statistics.test.d.ts.map +0 -1
  697. package/storage.d.ts +0 -15
  698. package/storage.d.ts.map +0 -1
  699. package/storage.test.d.ts +0 -3
  700. package/storage.test.d.ts.map +0 -1
  701. package/string.d.ts.map +0 -1
  702. package/string.test.d.ts +0 -9
  703. package/string.test.d.ts.map +0 -1
  704. package/symbol.d.ts +0 -11
  705. package/symbol.d.ts.map +0 -1
  706. package/symbol.test.d.ts +0 -3
  707. package/symbol.test.d.ts.map +0 -1
  708. package/test.d.ts +0 -2
  709. package/test.d.ts.map +0 -1
  710. package/test.html +0 -168
  711. package/test.js +0 -104
  712. package/testing.d.ts.map +0 -1
  713. package/testing.test.d.ts +0 -9
  714. package/testing.test.d.ts.map +0 -1
  715. package/time.d.ts +0 -9
  716. package/time.d.ts.map +0 -1
  717. package/time.test.d.ts +0 -4
  718. package/time.test.d.ts.map +0 -1
  719. package/trait/equality.d.ts +0 -6
  720. package/trait/equality.d.ts.map +0 -1
  721. package/trait/fingerprint.d.ts +0 -13
  722. package/trait/fingerprint.d.ts.map +0 -1
  723. package/trait/traits.d.ts +0 -3
  724. package/trait/traits.d.ts.map +0 -1
  725. package/trait/traits.test.d.ts +0 -5
  726. package/trait/traits.test.d.ts.map +0 -1
  727. package/tree.d.ts +0 -96
  728. package/tree.d.ts.map +0 -1
  729. package/tree.test.d.ts +0 -2
  730. package/tree.test.d.ts.map +0 -1
  731. package/url.d.ts +0 -7
  732. package/url.d.ts.map +0 -1
  733. package/url.test.d.ts +0 -3
  734. package/url.test.d.ts.map +0 -1
  735. package/webcrypto.d.ts +0 -3
  736. package/webcrypto.d.ts.map +0 -1
  737. package/webcrypto.deno.d.ts +0 -3
  738. package/webcrypto.deno.d.ts.map +0 -1
  739. package/webcrypto.node.d.ts +0 -3
  740. package/webcrypto.node.d.ts.map +0 -1
  741. package/webcrypto.react-native.d.ts +0 -3
  742. package/webcrypto.react-native.d.ts.map +0 -1
  743. package/websocket.d.ts +0 -38
  744. package/websocket.d.ts.map +0 -1
  745. /package/{bin → src/bin}/0ecdsa-generate-keypair.js +0 -0
  746. /package/{bin → src/bin}/0serve.js +0 -0
  747. /package/{bin → src/bin}/gendocs.js +0 -0
  748. /package/{bin → src/bin}/gentesthtml.js +0 -0
  749. /package/{broadcastchannel.js → src/broadcastchannel.js} +0 -0
  750. /package/{buffer.js → src/buffer.js} +0 -0
  751. /package/{cache.js → src/cache.js} +0 -0
  752. /package/{component.js → src/component.js} +0 -0
  753. /package/{conditions.js → src/conditions.js} +0 -0
  754. /package/{crypto → src/crypto}/aes-gcm.js +0 -0
  755. /package/{crypto → src/crypto}/common.js +0 -0
  756. /package/{crypto → src/crypto}/ecdsa.js +0 -0
  757. /package/{crypto → src/crypto}/jwt.js +0 -0
  758. /package/{crypto → src/crypto}/rsa-oaep.js +0 -0
  759. /package/{decoding.js → src/decoding.js} +0 -0
  760. /package/{delta → src/delta}/binding.js +0 -0
  761. /package/{delta → src/delta}/readme.md +0 -0
  762. /package/{diff → src/diff}/patience.js +0 -0
  763. /package/{diff.js → src/diff.js} +0 -0
  764. /package/{dom.js → src/dom.js} +0 -0
  765. /package/{encoding.js → src/encoding.js} +0 -0
  766. /package/{error.js → src/error.js} +0 -0
  767. /package/{eventloop.js → src/eventloop.js} +0 -0
  768. /package/{function.js → src/function.js} +0 -0
  769. /package/{hash → src/hash}/rabin-gf2-polynomial.js +0 -0
  770. /package/{hash → src/hash}/rabin-uncached.js +0 -0
  771. /package/{hash → src/hash}/sha256.js +0 -0
  772. /package/{hash → src/hash}/sha256.node.js +0 -0
  773. /package/{indexeddb.js → src/indexeddb.js} +0 -0
  774. /package/{indexeddbV2.js → src/indexeddbV2.js} +0 -0
  775. /package/{iterator.js → src/iterator.js} +0 -0
  776. /package/{json.js → src/json.js} +0 -0
  777. /package/{list.js → src/list.js} +0 -0
  778. /package/{logging.common.js → src/logging.common.js} +0 -0
  779. /package/{logging.js → src/logging.js} +0 -0
  780. /package/{logging.node.js → src/logging.node.js} +0 -0
  781. /package/{map.js → src/map.js} +0 -0
  782. /package/{math.js → src/math.js} +0 -0
  783. /package/{metric.js → src/metric.js} +0 -0
  784. /package/{mutex.js → src/mutex.js} +0 -0
  785. /package/{number.js → src/number.js} +0 -0
  786. /package/{object.js → src/object.js} +0 -0
  787. /package/{observable.js → src/observable.js} +0 -0
  788. /package/{pair.js → src/pair.js} +0 -0
  789. /package/{performance.js → src/performance.js} +0 -0
  790. /package/{performance.node.js → src/performance.node.js} +0 -0
  791. /package/{pledge.js → src/pledge.js} +0 -0
  792. /package/{prng → src/prng}/Mt19937.js +0 -0
  793. /package/{prng → src/prng}/Xoroshiro128plus.js +0 -0
  794. /package/{prng → src/prng}/Xorshift32.js +0 -0
  795. /package/{prng.js → src/prng.js} +0 -0
  796. /package/{promise.js → src/promise.js} +0 -0
  797. /package/{queue.js → src/queue.js} +0 -0
  798. /package/{random.js → src/random.js} +0 -0
  799. /package/{set.js → src/set.js} +0 -0
  800. /package/{sort.js → src/sort.js} +0 -0
  801. /package/{statistics.js → src/statistics.js} +0 -0
  802. /package/{storage.js → src/storage.js} +0 -0
  803. /package/{symbol.js → src/symbol.js} +0 -0
  804. /package/{time.js → src/time.js} +0 -0
  805. /package/{trait → src/trait}/equality.js +0 -0
  806. /package/{trait → src/trait}/fingerprint.js +0 -0
  807. /package/{trait → src/trait}/traits.js +0 -0
  808. /package/{tree.js → src/tree.js} +0 -0
  809. /package/{url.js → src/url.js} +0 -0
  810. /package/{webcrypto.deno.js → src/webcrypto.deno.js} +0 -0
  811. /package/{webcrypto.js → src/webcrypto.js} +0 -0
  812. /package/{webcrypto.node.js → src/webcrypto.node.js} +0 -0
  813. /package/{webcrypto.react-native.js → src/webcrypto.react-native.js} +0 -0
  814. /package/{websocket.js → src/websocket.js} +0 -0
  815. /package/{broadcastchannel.d.ts → types/broadcastchannel.d.ts} +0 -0
  816. /package/{buffer.d.ts → types/buffer.d.ts} +0 -0
  817. /package/{cache.d.ts → types/cache.d.ts} +0 -0
  818. /package/{component.d.ts → types/component.d.ts} +0 -0
  819. /package/{conditions.d.ts → types/conditions.d.ts} +0 -0
  820. /package/{decoding.d.ts → types/decoding.d.ts} +0 -0
  821. /package/{diff.d.ts → types/diff.d.ts} +0 -0
  822. /package/{dist → types}/dom.d.ts +0 -0
  823. /package/{dist → types}/encoding.d.ts +0 -0
  824. /package/{dist → types}/error.d.ts +0 -0
  825. /package/{dist → types}/eventloop.d.ts +0 -0
  826. /package/{dist → types}/indexeddb.d.ts +0 -0
  827. /package/{dist → types}/indexeddbV2.d.ts +0 -0
  828. /package/{dist → types}/iterator.d.ts +0 -0
  829. /package/{dist → types}/json.d.ts +0 -0
  830. /package/{dist → types}/list.d.ts +0 -0
  831. /package/{dist → types}/logging.common.d.ts +0 -0
  832. /package/{dist → types}/logging.d.ts +0 -0
  833. /package/{dist → types}/logging.node.d.ts +0 -0
  834. /package/{dist → types}/map.d.ts +0 -0
  835. /package/{dist → types}/math.d.ts +0 -0
  836. /package/{dist → types}/metric.d.ts +0 -0
  837. /package/{dist → types}/mutex.d.ts +0 -0
  838. /package/{dist → types}/object.d.ts +0 -0
  839. /package/{dist → types}/observable.d.ts +0 -0
  840. /package/{dist → types}/pair.d.ts +0 -0
  841. /package/{dist → types}/performance.d.ts +0 -0
  842. /package/{dist → types}/performance.node.d.ts +0 -0
  843. /package/{dist → types}/pledge.d.ts +0 -0
  844. /package/{dist → types}/prng.d.ts +0 -0
  845. /package/{dist → types}/promise.d.ts +0 -0
  846. /package/{dist → types}/queue.d.ts +0 -0
  847. /package/{dist → types}/random.d.ts +0 -0
  848. /package/{dist → types}/set.d.ts +0 -0
  849. /package/{dist → types}/sort.d.ts +0 -0
  850. /package/{dist → types}/statistics.d.ts +0 -0
  851. /package/{dist → types}/storage.d.ts +0 -0
  852. /package/{dist → types}/symbol.d.ts +0 -0
  853. /package/{dist → types}/time.d.ts +0 -0
  854. /package/{dist → types}/tree.d.ts +0 -0
  855. /package/{dist → types}/url.d.ts +0 -0
  856. /package/{dist → types}/webcrypto.d.ts +0 -0
  857. /package/{dist → types}/webcrypto.deno.d.ts +0 -0
  858. /package/{dist → types}/webcrypto.node.d.ts +0 -0
  859. /package/{dist → types}/webcrypto.react-native.d.ts +0 -0
  860. /package/{dist → types}/websocket.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"delta.cjs","sources":["../delta/delta.js"],"sourcesContent":["/**\n * @beta this API is about to change\n *\n * ## Mutability\n *\n * Deltas are mutable by default. But references are often shared, by marking a Delta as \"done\". You\n * may only modify deltas by applying other deltas to them. Casting a Delta to a DeltaBuilder\n * manually, will likely modify \"shared\" state.\n */\n\nimport * as list from '../list.js'\nimport * as object from '../object.js'\nimport * as equalityTrait from '../trait/equality.js'\nimport * as fingerprintTrait from '../trait/fingerprint.js'\nimport * as arr from '../array.js'\nimport * as fun from '../function.js'\nimport * as s from '../schema.js'\nimport * as error from '../error.js'\nimport * as math from '../math.js'\nimport * as rabin from '../hash/rabin.js'\nimport * as encoding from '../encoding.js'\nimport * as buffer from '../buffer.js'\nimport * as patience from '../diff/patience.js'\nimport * as prng from '../prng.js'\n\n/**\n * @typedef {{\n * insert?: string[]\n * insertAt?: number\n * delete?: string[]\n * deleteAt?: number\n * format?: Record<string,string[]>\n * formatAt?: number\n * }} Attribution\n */\n\n/**\n * @type {s.Schema<Attribution>}\n */\nexport const $attribution = s.$object({\n insert: s.$array(s.$string).optional,\n insertAt: s.$number.optional,\n delete: s.$array(s.$string).optional,\n deleteAt: s.$number.optional,\n format: s.$record(s.$string, s.$array(s.$string)).optional,\n formatAt: s.$number.optional\n})\n\n/**\n * @typedef {s.Unwrap<$anyOp>} DeltaOps\n */\n\n/**\n * @typedef {{ [key: string]: any }} FormattingAttributes\n */\n\n/**\n * @typedef {{\n * type: 'delta',\n * name?: string,\n * attrs?: { [Key in string|number]: DeltaAttrOpJSON },\n * children?: Array<DeltaListOpJSON>\n * }} DeltaJSON\n */\n\n/**\n * @typedef {{ type: 'insert', insert: string|Array<any>, format?: { [key: string]: any }, attribution?: Attribution } | { delete: number } | { type: 'retain', retain: number, format?: { [key:string]: any }, attribution?: Attribution } | { type: 'modify', value: object }} DeltaListOpJSON\n */\n\n/**\n * @typedef {{ type: 'insert', value: any, prevValue?: any, attribution?: Attribution } | { type: 'delete', prevValue?: any, attribution?: Attribution } | { type: 'modify', value: DeltaJSON }} DeltaAttrOpJSON\n */\n\n/**\n * @typedef {TextOp|InsertOp<any>|DeleteOp|RetainOp|ModifyOp<any>} ChildrenOpAny\n */\n\n/**\n * @typedef {AttrInsertOp<any>|AttrDeleteOp<any>|AttrModifyOp} AttrOpAny\n */\n\n/**\n * @typedef {ChildrenOpAny|AttrOpAny} _OpAny\n */\n\n/**\n * @type {s.Schema<DeltaAttrOpJSON>}\n */\nexport const $deltaMapChangeJson = s.$union(\n s.$object({ type: s.$literal('insert'), value: s.$any, prevValue: s.$any.optional, attribution: $attribution.optional }),\n s.$object({ type: s.$literal('modify'), value: s.$any }),\n s.$object({ type: s.$literal('delete'), prevValue: s.$any.optional, attribution: $attribution.optional })\n)\n\n/**\n * @template {{[key:string]: any} | null} Attrs\n * @param {Attrs} attrs\n * @return {Attrs}\n */\nconst _cloneAttrs = attrs => attrs == null ? attrs : { ...attrs }\n/**\n * @template {any} MaybeDelta\n * @param {MaybeDelta} maybeDelta\n * @return {MaybeDelta}\n */\nconst _markMaybeDeltaAsDone = maybeDelta => $deltaAny.check(maybeDelta) ? /** @type {MaybeDelta} */ (maybeDelta.done()) : maybeDelta\n\nexport class TextOp extends list.ListNode {\n /**\n * @param {string} insert\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (insert, format, attribution) {\n super()\n // Whenever this is modified, make sure to clear _fingerprint\n /**\n * @readonly\n * @type {string}\n */\n this.insert = insert\n /**\n * @readonly\n * @type {FormattingAttributes|null}\n */\n this.format = format\n this.attribution = attribution\n /**\n * @type {string?}\n */\n this._fingerprint = null\n }\n\n /**\n * @param {string} newVal\n */\n _updateInsert (newVal) {\n // @ts-ignore\n this.insert = newVal\n this._fingerprint = null\n }\n\n /**\n * @return {'insert'}\n */\n get type () {\n return 'insert'\n }\n\n get length () {\n return this.insert.length\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 0) // textOp type: 0\n encoding.writeVarString(encoder, this.insert)\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} offset\n * @param {number} len\n */\n _splice (offset, len) {\n this._fingerprint = null\n // @ts-ignore\n this.insert = this.insert.slice(0, offset) + this.insert.slice(offset + len)\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { insert, format, attribution } = this\n return object.assign(/** @type {{type: 'insert', insert: string}} */ ({ type: 'insert', insert }), format != null ? { format } : ({}), attribution != null ? { attribution } : ({}))\n }\n\n /**\n * @param {TextOp} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return fun.equalityDeep(this.insert, other.insert) && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {TextOp}\n */\n clone (start = 0, end = this.length) {\n return new TextOp(this.insert.slice(start, end), _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {fingerprintTrait.Fingerprintable} ArrayContent\n */\nexport class InsertOp extends list.ListNode {\n /**\n * @param {Array<ArrayContent>} insert\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (insert, format, attribution) {\n super()\n /**\n * @readonly\n * @type {Array<ArrayContent>}\n */\n this.insert = insert\n /**\n * @readonly\n * @type {FormattingAttributes?}\n */\n this.format = format\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string?}\n */\n this._fingerprint = null\n }\n\n /**\n * @param {ArrayContent} newVal\n */\n _updateInsert (newVal) {\n // @ts-ignore\n this.insert = newVal\n this._fingerprint = null\n }\n\n /**\n * @return {'insert'}\n */\n get type () {\n return 'insert'\n }\n\n get length () {\n return this.insert.length\n }\n\n /**\n * @param {number} i\n * @return {Extract<ArrayContent,DeltaAny>}\n */\n _modValue (i) {\n /**\n * @type {any}\n */\n let d = this.insert[i]\n this._fingerprint = null\n $deltaAny.expect(d)\n if (d.isDone) {\n // @ts-ignore\n this.insert[i] = (d = clone(d))\n return d\n }\n return d\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 1) // insertOp type: 1\n encoding.writeVarUint(encoder, this.insert.length)\n this.insert.forEach(ins => {\n encoding.writeVarString(encoder, fingerprintTrait.fingerprint(ins))\n })\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} offset\n * @param {number} len\n */\n _splice (offset, len) {\n this._fingerprint = null\n this.insert.splice(offset, len)\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { insert, format, attribution } = this\n return object.assign({ type: /** @type {'insert'} */ ('insert'), insert: insert.map(ins => $deltaAny.check(ins) ? ins.toJSON() : ins) }, format ? { format } : ({}), attribution != null ? { attribution } : ({}))\n }\n\n /**\n * @param {InsertOp<ArrayContent>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return fun.equalityDeep(this.insert, other.insert) && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {InsertOp<ArrayContent>}\n */\n clone (start = 0, end = this.length) {\n return new InsertOp(this.insert.slice(start, end).map(_markMaybeDeltaAsDone), _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {fingerprintTrait.Fingerprintable} [Children=never]\n * @template {string} [Text=never]\n */\nexport class DeleteOp extends list.ListNode {\n /**\n * @param {number} len\n */\n constructor (len) {\n super()\n this.delete = len\n /**\n * @type {(Children|Text) extends never ? null : (Delta<any,{},Children,Text>?)}\n */\n this.prevValue = null\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'delete'}\n */\n get type () {\n return 'delete'\n }\n\n get length () {\n return 0\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 2) // deleteOp type: 2\n encoding.writeVarUint(encoder, this.delete)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} _offset\n * @param {number} len\n */\n _splice (_offset, len) {\n this.prevValue = /** @type {any} */ (this.prevValue?.slice(_offset, len) || null)\n this._fingerprint = null\n this.delete -= len\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n return { delete: this.delete }\n }\n\n /**\n * @param {DeleteOp} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.delete === other.delete\n }\n\n clone (start = 0, end = this.delete) {\n return new DeleteOp(end - start)\n }\n}\n\nexport class RetainOp extends list.ListNode {\n /**\n * @param {number} retain\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (retain, format, attribution) {\n super()\n /**\n * @readonly\n * @type {number}\n */\n this.retain = retain\n /**\n * @readonly\n * @type {FormattingAttributes?}\n */\n this.format = format\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'retain'}\n */\n get type () {\n return 'retain'\n }\n\n get length () {\n return this.retain\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 3) // retainOp type: 3\n encoding.writeVarUint(encoder, this.retain)\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} _offset\n * @param {number} len\n */\n _splice (_offset, len) {\n // @ts-ignore\n this.retain -= len\n this._fingerprint = null\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { retain, format, attribution } = this\n return object.assign({ type: /** @type {'retain'} */ ('retain'), retain }, format ? { format } : {}, attribution != null ? { attribution } : {})\n }\n\n /**\n * @param {RetainOp} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.retain === other.retain && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n clone (start = 0, end = this.retain) {\n return new RetainOp(end - start, _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * Delta that can be applied on a YType Embed\n *\n * @template {DeltaAny} [DTypes=DeltaAny]\n */\nexport class ModifyOp extends list.ListNode {\n /**\n * @param {DTypes} delta\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (delta, format, attribution) {\n super()\n /**\n * @readonly\n * @type {DTypes}\n */\n this.value = delta\n /**\n * @readonly\n * @type {FormattingAttributes?}\n */\n this.format = format\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'modify'}\n */\n get type () {\n return 'modify'\n }\n\n get length () {\n return 1\n }\n\n /**\n * @type {DeltaBuilderAny}\n */\n get _modValue () {\n /**\n * @type {any}\n */\n const d = this.value\n this._fingerprint = null\n if (d.isDone) {\n // @ts-ignore\n return (this.value = clone(d))\n }\n return d\n }\n\n get fingerprint () {\n // don't cache fingerprint because we don't know when delta changes\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 4) // modifyOp type: 4\n encoding.writeVarString(encoder, this.value.fingerprint)\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} _offset\n * @param {number} _len\n */\n _splice (_offset, _len) {\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { value, attribution, format } = this\n return object.assign({ type: /** @type {'modify'} */ ('modify'), value: value.toJSON() }, format ? { format } : {}, attribution != null ? { attribution } : {})\n }\n\n /**\n * @param {ModifyOp<any>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.value[equalityTrait.EqualityTraitSymbol](other.value) && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {ModifyOp<DTypes>}\n */\n clone () {\n return new ModifyOp(/** @type {DTypes} */ (this.value.done()), _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {fingerprintTrait.Fingerprintable} V\n * @template {string|number} [K=any]\n */\nexport class AttrInsertOp {\n /**\n * @param {K} key\n * @param {V} value\n * @param {V|undefined} prevValue\n * @param {Attribution?} attribution\n */\n constructor (key, value, prevValue, attribution) {\n /**\n * @readonly\n * @type {K}\n */\n this.key = key\n /**\n * @readonly\n * @type {V}\n */\n this.value = value\n /**\n * @readonly\n * @type {V|undefined}\n */\n this.prevValue = prevValue\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'insert'}\n */\n get type () { return 'insert' }\n\n /**\n * @type {DeltaBuilderAny}\n */\n get _modValue () {\n /**\n * @type {any}\n */\n const v = this.value\n this._fingerprint = null\n if ($deltaAny.check(v) && v.isDone) {\n // @ts-ignore\n return (this.value = clone(v))\n }\n return v\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 5) // map insert type: 5\n encoding.writeAny(encoder, this.key)\n if ($deltaAny.check(this.value)) {\n encoding.writeUint8(encoder, 0)\n encoding.writeVarString(encoder, this.value.fingerprint)\n } else {\n encoding.writeUint8(encoder, 1)\n encoding.writeAny(encoder, this.value)\n }\n })))\n }\n\n toJSON () {\n const v = this.value\n const prevValue = this.prevValue\n const attribution = this.attribution\n return object.assign({\n type: this.type,\n value: $deltaAny.check(v) ? v.toJSON() : v\n }, attribution != null ? { attribution } : {}, prevValue !== undefined ? { prevValue } : {})\n }\n\n /**\n * @param {AttrInsertOp<V>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.key === other.key && fun.equalityDeep(this.value, other.value) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {AttrInsertOp<V,K>}\n */\n clone () {\n return new AttrInsertOp(this.key, _markMaybeDeltaAsDone(this.value), _markMaybeDeltaAsDone(this.prevValue), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template V\n * @template {string|number} [K=string]\n */\nexport class AttrDeleteOp {\n /**\n * @param {K} key\n * @param {V|undefined} prevValue\n * @param {Attribution?} attribution\n */\n constructor (key, prevValue, attribution) {\n /**\n * @type {K}\n */\n this.key = key\n /**\n * @type {V|undefined}\n */\n this.prevValue = prevValue\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n get value () { return undefined }\n\n /**\n * @type {'delete'}\n */\n get type () { return 'delete' }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 6) // map delete type: 6\n encoding.writeAny(encoder, this.key)\n })))\n }\n\n /**\n * @return {DeltaAttrOpJSON}\n */\n toJSON () {\n const {\n type, attribution, prevValue\n } = this\n return object.assign({ type }, attribution != null ? { attribution } : {}, prevValue !== undefined ? { prevValue } : {})\n }\n\n /**\n * @param {AttrDeleteOp<V>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.key === other.key && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n clone () {\n return new AttrDeleteOp(this.key, _markMaybeDeltaAsDone(this.prevValue), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {DeltaAny} [Modifier=DeltaAny]\n * @template {string|number} [K=string]\n */\nexport class AttrModifyOp {\n /**\n * @param {K} key\n * @param {Modifier} delta\n */\n constructor (key, delta) {\n /**\n * @readonly\n * @type {K}\n */\n this.key = key\n /**\n * @readonly\n * @type {Modifier}\n */\n this.value = delta\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @type {'modify'}\n */\n get type () { return 'modify' }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 7) // map modify type: 7\n encoding.writeAny(encoder, this.key)\n encoding.writeVarString(encoder, this.value.fingerprint)\n })))\n }\n\n /**\n * @return {DeltaBuilder}\n */\n get _modValue () {\n this._fingerprint = null\n if (this.value.isDone) {\n // @ts-ignore\n this.value = /** @type {any} */ (clone(this.value))\n }\n // @ts-ignore\n return this.value\n }\n\n /**\n * @return {DeltaAttrOpJSON}\n */\n toJSON () {\n return {\n type: this.type,\n value: this.value.toJSON()\n }\n }\n\n /**\n * @param {AttrModifyOp<Modifier>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.key === other.key && this.value[equalityTrait.EqualityTraitSymbol](other.value)\n }\n\n /**\n * @return {AttrModifyOp<Modifier,K>}\n */\n clone () {\n return new AttrModifyOp(this.key, /** @type {Modifier} */ (this.value.done()))\n }\n}\n\n/**\n * @type {s.Schema<AttrDeleteOp<any> | DeleteOp>}\n */\nexport const $deleteOp = s.$custom(o => o != null && (o.constructor === DeleteOp || o.constructor === AttrDeleteOp))\n\n/**\n * @type {s.Schema<AttrInsertOp<any> | InsertOp<any>>}\n */\nexport const $insertOp = s.$custom(o => o != null && (o.constructor === AttrInsertOp || o.constructor === InsertOp))\n\n/**\n * @template {fingerprintTrait.Fingerprintable} Content\n * @param {s.Schema<Content>} $content\n * @return {s.Schema<AttrInsertOp<Content> | InsertOp<Content>>}\n */\nexport const $insertOpWith = $content => s.$custom(o =>\n o != null && (\n (o.constructor === AttrInsertOp && $content.check(/** @type {AttrInsertOp<Content>} */ (o).value)) ||\n (o.constructor === InsertOp && /** @type {InsertOp<Content>} */ (o).insert.every(ins => $content.check(ins)))\n )\n)\n\n/**\n * @type {s.Schema<TextOp>}\n */\nexport const $textOp = s.$constructedBy(TextOp)\n\n/**\n * @type {s.Schema<RetainOp>}\n */\nexport const $retainOp = s.$constructedBy(RetainOp)\n\n/**\n * @type {s.Schema<AttrModifyOp | ModifyOp>}\n */\nexport const $modifyOp = s.$custom(o => o != null && (o.constructor === AttrModifyOp || o.constructor === ModifyOp))\n\n/**\n * @template {DeltaAny} Modify\n * @param {s.Schema<Modify>} $content\n * @return {s.Schema<AttrModifyOp<Modify> | ModifyOp<Modify>>}\n */\nexport const $modifyOpWith = $content => s.$custom(o =>\n o != null && (\n (o.constructor === AttrModifyOp && $content.check(/** @type {AttrModifyOp<Modify>} */ (o).value)) ||\n (o.constructor === ModifyOp && $content.check(/** @type {ModifyOp<Modify>} */ (o).value))\n )\n)\n\nexport const $anyOp = s.$union($insertOp, $deleteOp, $textOp, $modifyOp)\n\n/**\n * @template {Array<any>|string} C1\n * @template {Array<any>|string} C2\n * @typedef {Extract<C1 | C2, Array<any>> extends never\n * ? never\n * : (Array<(Extract<C1 | C2,Array<any>> extends Array<infer AC1> ? (unknown extends AC1 ? never : AC1) : never)>)} MergeListArrays\n */\n\n/**\n * @template {{[Key in string|number]: any}} Attrs\n * @template {string|number} Key\n * @template {any} Val\n * @typedef {{ [K in (Key | keyof Attrs)]: (unknown extends Attrs[K] ? never : Attrs[K]) | (Key extends K ? Val : never) }} AddToAttrs\n */\n\n/**\n * @template {{[Key in string|number|symbol]: any}} Attrs\n * @template {{[Key in string|number|symbol]: any}} NewAttrs\n * @typedef {{ [K in (keyof NewAttrs | keyof Attrs)]: (unknown extends Attrs[K] ? never : Attrs[K]) | (unknown extends NewAttrs[K] ? never : NewAttrs[K]) }} MergeAttrs\n */\n\n/**\n * @template X\n * @typedef {0 extends (1 & X) ? null : X} _AnyToNull\n */\n\n/**\n * @template {s.Schema<Delta<any,any,any,any,any>>|null} Schema\n * @typedef {_AnyToNull<Schema> extends null ? Delta<any,{[key:string|number]:any},any,string> : (Schema extends s.Schema<infer D> ? D : never)} AllowedDeltaFromSchema\n */\n\n/**\n * @typedef {Delta<any,{ [k:string|number]: any },any,any,any>} DeltaAny\n */\n/**\n * @typedef {DeltaBuilder<any,{ [k:string|number]: any },any,any,any>} DeltaBuilderAny\n */\n\n/**\n * @template {string} [NodeName=any]\n * @template {{[k:string|number]:any}} [Attrs={}]\n * @template {fingerprintTrait.Fingerprintable} [Children=never]\n * @template {string} [Text=never]\n * @template {s.Schema<Delta<any,any,any,any,any>>|null} [Schema=any]\n */\nexport class Delta {\n /**\n * @param {NodeName} [name]\n * @param {Schema} [$schema]\n */\n constructor (name, $schema) {\n this.name = name || null\n this.$schema = $schema || null\n /**\n * @type {{ [K in keyof Attrs]?: K extends string|number ? (AttrInsertOp<Attrs[K],K>|AttrDeleteOp<Attrs[K],K>|(Delta extends Attrs[K] ? AttrModifyOp<Extract<Attrs[K],DeltaAny>,K> : never)) : never }\n * & { [Symbol.iterator]: () => Iterator<{ [K in keyof Attrs]: K extends string|number ? (AttrInsertOp<Attrs[K],K>|AttrDeleteOp<Attrs[K],K>|(Delta extends Attrs[K] ? AttrModifyOp<Extract<Attrs[K],DeltaAny>,K> : never)) : never }[keyof Attrs]> }\n * }\n */\n this.attrs = /** @type {any} */ ({\n * [Symbol.iterator] () {\n for (const k in this) {\n yield this[k]\n }\n }\n })\n\n /**\n * @type {list.List<\n * RetainOp\n * | DeleteOp\n * | (Text extends never ? never : TextOp)\n * | (Children extends never ? never : InsertOp<Children>)\n * | (Delta extends Children ? ModifyOp<Extract<Children,Delta<any,any,any,any,any>>> : never)\n * >}\n */\n this.children = /** @type {any} */ (list.create())\n this.childCnt = 0\n /**\n * @type {any}\n */\n this.origin = null\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n this.isDone = false\n }\n\n /**\n * @type {string}\n */\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeUint32(encoder, 0xf2ae5680) // \"magic number\" that ensures that different types of content don't yield the same fingerprint\n encoding.writeAny(encoder, this.name)\n /**\n * @type {Array<number|string>}\n */\n const keys = []\n for (const attr of this.attrs) {\n keys.push(attr.key)\n }\n keys.sort((a, b) => {\n const aIsString = s.$string.check(a)\n const bIsString = s.$string.check(b)\n // numbers first\n // in ascending order\n return (aIsString && bIsString)\n ? a.localeCompare(b)\n : (aIsString ? 1 : (bIsString ? -1 : (a - b)))\n })\n encoding.writeVarUint(encoder, keys.length)\n for (const key of keys) {\n encoding.writeVarString(encoder, /** @type {any} */ (this.attrs[/** @type {keyof Attrs} */ (key)]).fingerprint)\n }\n encoding.writeVarUint(encoder, this.children.len)\n for (const child of this.children) {\n encoding.writeVarString(encoder, child.fingerprint)\n }\n return buffer.toBase64(rabin.fingerprint(rabin.StandardIrreducible128, encoding.toUint8Array(encoder)))\n })))\n }\n\n [fingerprintTrait.FingerprintTraitSymbol] () {\n return this.fingerprint\n }\n\n isEmpty () {\n return object.isEmpty(this.attrs) && list.isEmpty(this.children)\n }\n\n /**\n * @return {DeltaJSON}\n */\n toJSON () {\n const name = this.name\n /**\n * @type {any}\n */\n const attrs = {}\n /**\n * @type {any}\n */\n const children = []\n for (const attr of this.attrs) {\n attrs[attr.key] = attr.toJSON()\n }\n this.children.forEach(val => {\n children.push(val.toJSON())\n })\n return object.assign(\n { type: /** @type {'delta'} */ ('delta') },\n (name != null ? { name } : {}),\n (object.isEmpty(attrs) ? {} : { attrs }),\n (children.length > 0 ? { children } : {})\n )\n }\n\n /**\n * @param {Delta<any,any,any,any,any>} other\n * @return {boolean}\n */\n equals (other) {\n return this[equalityTrait.EqualityTraitSymbol](other)\n }\n\n /**\n * @param {any} other\n * @return {boolean}\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n // @todo it is only necessary to compare finrerprints OR do a deep equality check (remove\n // childCnt as well)\n return this.name === other.name && fun.equalityDeep(this.attrs, other.attrs) && fun.equalityDeep(this.children, other.children) && this.childCnt === other.childCnt\n }\n\n /**\n * @return {DeltaBuilder<NodeName,Attrs,Children,Text,Schema>}\n */\n clone () {\n return this.slice(0, this.childCnt)\n }\n\n /**\n * @param {number} start\n * @param {number} end\n * @return {DeltaBuilder<NodeName,Attrs,Children,Text,Schema>}\n */\n slice (start = 0, end = this.childCnt) {\n const cpy = /** @type {DeltaAny} */ (new DeltaBuilder(/** @type {any} */ (this.name), this.$schema))\n cpy.origin = this.origin\n // copy attrs\n for (const op of this.attrs) {\n cpy.attrs[op.key] = /** @type {any} */ (op.clone())\n }\n // copy children\n const slicedLen = end - start\n let remainingLen = slicedLen\n /**\n * @type {ChildrenOpAny?}\n */\n let currNode = this.children.start\n let currNodeOffset = 0\n while (start > 0 && currNode != null) {\n if (currNode.length <= start) {\n start -= currNode.length\n currNode = currNode.next\n } else {\n currNodeOffset = start\n start = 0\n }\n }\n if (currNodeOffset > 0 && currNode) {\n const ncpy = currNode.clone(currNodeOffset, currNodeOffset + math.min(remainingLen, currNode.length - currNodeOffset))\n list.pushEnd(cpy.children, ncpy)\n remainingLen -= ncpy.length\n currNode = currNode.next\n }\n while (currNode != null && currNode.length <= remainingLen) {\n list.pushEnd(cpy.children, currNode.clone())\n currNode = currNode.next\n }\n if (currNode != null && remainingLen > 0) {\n list.pushEnd(cpy.children, currNode.clone(0, remainingLen))\n }\n cpy.childCnt = slicedLen - remainingLen\n // @ts-ignore\n return cpy\n }\n\n /**\n * Mark this delta as done and perform some cleanup (e.g. remove appended retains without\n * formats&attributions). In the future, there might be additional merge operations that can be\n * performed to result in smaller deltas. Set `markAsDone=false` to only perform the cleanup.\n *\n * @return {Delta<NodeName,Attrs,Children,Text,Schema>}\n */\n done (markAsDone = true) {\n if (!this.isDone) {\n this.isDone = markAsDone\n const cs = this.children\n for (let end = cs.end; end !== null && $retainOp.check(end) && end.format == null && end.attribution == null; end = cs.end) {\n this.childCnt -= end.length\n list.popEnd(cs)\n }\n }\n return this\n }\n}\n\n/**\n * @template {DeltaAny} D\n * @param {D} d\n * @return {D extends DeltaBuilder<infer NodeName,infer Attrs,infer Children,infer Text,infer Schema> ? DeltaBuilder<NodeName,Attrs,Children,Text,Schema> : never}\n */\nexport const clone = d => /** @type {any} */ (d.slice(0, d.childCnt))\n\n/**\n * Try merging this op with the previous op\n * @param {list.List<any>} parent\n * @param {InsertOp<any>|RetainOp|DeleteOp|TextOp|ModifyOp<any>} op\n */\nconst tryMergeWithPrev = (parent, op) => {\n const prevOp = op.prev\n if (\n prevOp?.constructor !== op.constructor ||\n (\n (!$deleteOp.check(op) && !$modifyOp.check(op)) && (!fun.equalityDeep(op.format, /** @type {InsertOp<any>} */ (prevOp).format) || !fun.equalityDeep(op.attribution, /** @type {InsertOp<any>} */ (prevOp).attribution))\n )\n ) {\n // constructor mismatch or format/attribution mismatch\n return\n }\n // can be merged\n if ($insertOp.check(op)) {\n /** @type {InsertOp<any>} */ (prevOp).insert.push(...op.insert)\n } else if ($retainOp.check(op)) {\n // @ts-ignore\n /** @type {RetainOp} */ (prevOp).retain += op.retain\n } else if ($deleteOp.check(op)) {\n /** @type {DeleteOp} */ (prevOp).delete += op.delete\n } else if ($textOp.check(op)) {\n /** @type {TextOp} */ (prevOp)._updateInsert(/** @type {TextOp} */ (prevOp).insert + op.insert)\n } else {\n error.unexpectedCase()\n }\n list.remove(parent, op)\n}\n\n/**\n * Ensures that the delta can be edited. clears _fingerprint cache.\n *\n * @param {any} d\n */\nconst modDeltaCheck = d => {\n if (d.isDone) {\n /**\n * You tried to modify a delta after it has been marked as \"done\".\n */\n throw error.create(\"Readonly Delta can't be modified\")\n }\n d._fingerprint = null\n}\n\n/**\n * @template {string} [NodeName=any]\n * @template {{[key:string|number]:any}} [Attrs={}]\n * @template {fingerprintTrait.Fingerprintable} [Children=never]\n * @template {string} [Text=never]\n * @template {s.Schema<Delta<any,any,any,any,any>>|null} [Schema=any]\n * @extends {Delta<NodeName,Attrs,Children,Text,Schema>}\n */\nexport class DeltaBuilder extends Delta {\n /**\n * @param {NodeName} [name]\n * @param {Schema} [$schema]\n */\n constructor (name, $schema) {\n super(name, $schema)\n /**\n * @type {FormattingAttributes?}\n */\n this.usedAttributes = null\n /**\n * @type {Attribution?}\n */\n this.usedAttribution = null\n }\n\n /**\n * @param {Attribution?} attribution\n */\n useAttribution (attribution) {\n modDeltaCheck(this)\n this.usedAttribution = attribution\n return this\n }\n\n /**\n * @param {FormattingAttributes?} attributes\n * @return {this}\n */\n useAttributes (attributes) {\n modDeltaCheck(this)\n this.usedAttributes = attributes\n return this\n }\n\n /**\n * @param {string} name\n * @param {any} value\n */\n updateUsedAttributes (name, value) {\n modDeltaCheck(this)\n if (value == null) {\n this.usedAttributes = object.assign({}, this.usedAttributes)\n delete this.usedAttributes?.[name]\n if (object.isEmpty(this.usedAttributes)) {\n this.usedAttributes = null\n }\n } else if (!fun.equalityDeep(this.usedAttributes?.[name], value)) {\n this.usedAttributes = object.assign({}, this.usedAttributes)\n this.usedAttributes[name] = value\n }\n return this\n }\n\n /**\n * @template {keyof Attribution} NAME\n * @param {NAME} name\n * @param {Attribution[NAME]?} value\n */\n updateUsedAttribution (name, value) {\n modDeltaCheck(this)\n if (value == null) {\n this.usedAttribution = object.assign({}, this.usedAttribution)\n delete this.usedAttribution?.[name]\n if (object.isEmpty(this.usedAttribution)) {\n this.usedAttribution = null\n }\n } else if (!fun.equalityDeep(this.usedAttribution?.[name], value)) {\n this.usedAttribution = object.assign({}, this.usedAttribution)\n this.usedAttribution[name] = value\n }\n return this\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,any,infer Children,infer Text,infer Schema> ? ((Children extends never ? never : Array<Children>) | Text) : never} NewContent\n * @param {NewContent} insert\n * @param {FormattingAttributes?} [formatting]\n * @param {Attribution?} [attribution]\n * @return {DeltaBuilder<\n * NodeName,\n * Attrs,\n * Exclude<NewContent,string>[number]|Children,\n * (Extract<NewContent,string>|Text) extends never ? never : string,\n * Schema\n * >}\n */\n insert (insert, formatting = null, attribution = null) {\n modDeltaCheck(this)\n const mergedAttributes = mergeAttrs(this.usedAttributes, formatting)\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n /**\n * @param {TextOp | InsertOp<any>} lastOp\n */\n const checkMergedEquals = lastOp => (mergedAttributes === lastOp.format || fun.equalityDeep(mergedAttributes, lastOp.format)) && (mergedAttribution === lastOp.attribution || fun.equalityDeep(mergedAttribution, lastOp.attribution))\n const end = this.children.end\n if (s.$string.check(insert)) {\n if ($textOp.check(end) && checkMergedEquals(end)) {\n end._updateInsert(end.insert + insert)\n } else if (insert.length > 0) {\n list.pushEnd(this.children, new TextOp(insert, object.isEmpty(mergedAttributes) ? null : mergedAttributes, object.isEmpty(mergedAttribution) ? null : mergedAttribution))\n }\n this.childCnt += insert.length\n } else if (arr.isArray(insert)) {\n if ($insertOp.check(end) && checkMergedEquals(end)) {\n // @ts-ignore\n end.insert.push(...insert)\n end._fingerprint = null\n } else if (insert.length > 0) {\n list.pushEnd(this.children, new InsertOp(insert, object.isEmpty(mergedAttributes) ? null : mergedAttributes, object.isEmpty(mergedAttribution) ? null : mergedAttribution))\n }\n this.childCnt += insert.length\n }\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,any,infer Children,any,any> ? Extract<Children,Delta<any,any,any,any,any>> : never} NewContent\n * @param {NewContent} modify\n * @param {FormattingAttributes?} formatting\n * @param {Attribution?} attribution\n * @return {DeltaBuilder<\n * NodeName,\n * Attrs,\n * Exclude<NewContent,string>[number]|Children,\n * (Extract<NewContent,string>|Text) extends string ? string : never,\n * Schema\n * >}\n */\n modify (modify, formatting = null, attribution = null) {\n modDeltaCheck(this)\n const mergedAttributes = mergeAttrs(this.usedAttributes, formatting)\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n list.pushEnd(this.children, new ModifyOp(modify, object.isEmpty(mergedAttributes) ? null : mergedAttributes, object.isEmpty(mergedAttribution) ? null : mergedAttribution))\n this.childCnt += 1\n return /** @type {any} */ (this)\n }\n\n /**\n * @param {number} len\n * @param {FormattingAttributes?} [format]\n * @param {Attribution?} [attribution]\n */\n retain (len, format = null, attribution = null) {\n modDeltaCheck(this)\n const mergedFormats = mergeAttrs(this.usedAttributes, format)\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n const lastOp = /** @type {RetainOp|InsertOp<any>} */ (this.children.end)\n if (lastOp instanceof RetainOp && fun.equalityDeep(mergedFormats, lastOp.format) && fun.equalityDeep(mergedAttribution, lastOp.attribution)) {\n // @ts-ignore\n lastOp.retain += len\n } else if (len > 0) {\n list.pushEnd(this.children, new RetainOp(len, mergedFormats, mergedAttribution))\n }\n this.childCnt += len\n return this\n }\n\n /**\n * @param {number} len\n */\n delete (len) {\n modDeltaCheck(this)\n const lastOp = /** @type {DeleteOp|InsertOp<any>} */ (this.children.end)\n if (lastOp instanceof DeleteOp) {\n lastOp.delete += len\n } else if (len > 0) {\n list.pushEnd(this.children, new DeleteOp(len))\n }\n this.childCnt += len\n return this\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer Attrs,any,any,any> ? (keyof Attrs) : never} Key\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer Attrs,any,any,any> ? (Attrs[Key]) : never} Val\n * @param {Key} key\n * @param {Val} val\n * @param {Attribution?} attribution\n * @param {Val|undefined} [prevValue]\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof AddToAttrs<Attrs,Key,Val>]: AddToAttrs<Attrs,Key,Val>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n set (key, val, attribution = null, prevValue) {\n modDeltaCheck(this)\n this.attrs[key] = /** @type {any} */ (new AttrInsertOp(key, val, prevValue, mergeAttrs(this.usedAttribution, attribution)))\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer Attrs,any,any,any> ? Attrs : never} NewAttrs\n * @param {NewAttrs} attrs\n * @param {Attribution?} attribution\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof MergeAttrs<Attrs,NewAttrs>]: MergeAttrs<Attrs,NewAttrs>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n setMany (attrs, attribution = null) {\n modDeltaCheck(this)\n for (const k in attrs) {\n this.set(/** @type {any} */ (k), attrs[k], attribution)\n }\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer As,any,any,any> ? keyof As : never} Key\n * @param {Key} key\n * @param {Attribution?} attribution\n * @param {any} [prevValue]\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof AddToAttrs<Attrs,Key,never>]: AddToAttrs<Attrs,Key,never>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n unset (key, attribution = null, prevValue) {\n modDeltaCheck(this)\n this.attrs[key] = /** @type {any} */ (new AttrDeleteOp(key, prevValue, mergeAttrs(this.usedAttribution, attribution)))\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer As,any,any,any> ? { [K in keyof As]: Extract<As[K],Delta<any,any,any,any,any>> extends never ? never : K }[keyof As] : never} Key\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer As,any,any,any> ? Extract<As[Key],Delta<any,any,any,any,any>> : never} D\n * @param {Key} key\n * @param {D} modify\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof AddToAttrs<Attrs,Key,D>]: AddToAttrs<Attrs,Key,D>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n update (key, modify) {\n modDeltaCheck(this)\n this.attrs[key] = /** @type {any} */ (new AttrModifyOp(key, modify))\n return /** @type {any} */ (this)\n }\n\n /**\n * @param {Delta<NodeName,Attrs,Children,Text,any>} other\n */\n apply (other) {\n modDeltaCheck(this)\n this.$schema?.expect(other)\n // apply attrs\n for (const op of other.attrs) {\n const c = /** @type {AttrInsertOp<any,any>|AttrDeleteOp<any>|AttrModifyOp<any,any>} */ (this.attrs[op.key])\n if ($modifyOp.check(op)) {\n if ($deltaAny.check(c?.value)) {\n c._modValue.apply(op.value)\n } else {\n // then this is a simple modify\n // @ts-ignore\n this.attrs[op.key] = op.clone()\n }\n } else if ($insertOp.check(op)) {\n // @ts-ignore\n op.prevValue = c?.value\n // @ts-ignore\n this.attrs[op.key] = op.clone()\n } else if ($deleteOp.check(op)) {\n op.prevValue = c?.value\n delete this.attrs[op.key]\n }\n }\n // apply children\n /**\n * @type {ChildrenOpAny?}\n */\n let opsI = this.children.start\n let offset = 0\n /**\n * At the end, we will try to merge this op, and op.next op with their respective previous op.\n *\n * Hence, anytime an op is cloned, deleted, or inserted (anytime list.* api is used) we must add\n * an op to maybeMergeable.\n *\n * @type {Array<InsertOp<any>|RetainOp|DeleteOp|TextOp|ModifyOp<any>>}\n */\n const maybeMergeable = []\n /**\n * @template {InsertOp<any>|RetainOp|DeleteOp|TextOp|ModifyOp<any>|null} OP\n * @param {OP} op\n * @return {OP}\n */\n const scheduleForMerge = op => {\n op && maybeMergeable.push(op)\n return op\n }\n other.children.forEach(op => {\n if ($textOp.check(op) || $insertOp.check(op)) {\n if (offset === 0) {\n list.insertBetween(this.children, opsI == null ? this.children.end : opsI.prev, opsI, scheduleForMerge(op.clone()))\n } else {\n // @todo inmplement \"splitHelper\" and \"insertHelper\" - I'm splitting all the time and\n // forget to update opsI\n if (opsI == null) error.unexpectedCase()\n const cpy = scheduleForMerge(opsI.clone(offset))\n opsI._splice(offset, opsI.length - offset)\n list.insertBetween(this.children, opsI, opsI.next || null, cpy)\n list.insertBetween(this.children, opsI, cpy || null, scheduleForMerge(op.clone()))\n opsI = cpy\n offset = 0\n }\n this.childCnt += op.insert.length\n } else if ($retainOp.check(op)) {\n let retainLen = op.length\n\n if (offset > 0 && opsI != null && op.format != null && !$deleteOp.check(opsI) && !object.every(op.format, (v, k) => fun.equalityDeep(v, /** @type {InsertOp<any>|RetainOp|ModifyOp} */ (opsI).format?.[k] || null))) {\n // need to split current op\n const cpy = scheduleForMerge(opsI.clone(offset))\n opsI._splice(offset, opsI.length - offset)\n list.insertBetween(this.children, opsI, opsI.next || null, cpy)\n opsI = cpy\n offset = 0\n }\n\n while (opsI != null && opsI.length - offset <= retainLen) {\n op.format != null && updateOpFormat(opsI, op.format)\n retainLen -= opsI.length - offset\n opsI = opsI?.next || null\n offset = 0\n }\n\n if (opsI != null) {\n if (op.format != null && retainLen > 0) {\n // split current op and apply format\n const cpy = scheduleForMerge(opsI.clone(retainLen))\n opsI._splice(retainLen, opsI.length - retainLen)\n list.insertBetween(this.children, opsI, opsI.next || null, cpy)\n updateOpFormat(opsI, op.format)\n opsI = cpy\n } else {\n offset += retainLen\n }\n } else if (retainLen > 0) {\n list.pushEnd(this.children, scheduleForMerge(new RetainOp(retainLen, op.format, op.attribution)))\n this.childCnt += retainLen\n }\n } else if ($deleteOp.check(op)) {\n let remainingLen = op.delete\n while (remainingLen > 0) {\n if (opsI == null) {\n list.pushEnd(this.children, scheduleForMerge(new DeleteOp(remainingLen)))\n this.childCnt += remainingLen\n break\n } else if (opsI instanceof DeleteOp) {\n const delLen = opsI.length - offset\n // the same content can't be deleted twice, remove duplicated deletes\n if (delLen >= remainingLen) {\n offset = 0\n opsI = opsI.next\n } else {\n offset += remainingLen\n }\n remainingLen -= delLen\n } else { // insert / embed / retain / modify ⇒ replace\n // case1: delete o fully\n // case2: delete some part of beginning\n // case3: delete some part of end\n // case4: delete some part of center\n const delLen = math.min(opsI.length - offset, remainingLen)\n this.childCnt -= delLen\n if (opsI.length === delLen) {\n // case 1\n offset = 0\n scheduleForMerge(opsI.next)\n list.remove(this.children, opsI)\n opsI = opsI.next\n } else if (offset === 0) {\n // case 2\n offset = 0\n opsI._splice(0, delLen)\n } else if (offset + delLen === opsI.length) {\n // case 3\n opsI._splice(offset, delLen)\n offset = 0\n opsI = opsI.next\n } else {\n // case 4\n opsI._splice(offset, delLen)\n }\n remainingLen -= delLen\n }\n }\n } else if ($modifyOp.check(op)) {\n if (opsI == null) {\n list.pushEnd(this.children, op.clone())\n this.childCnt += 1\n return\n }\n if ($modifyOp.check(opsI)) {\n opsI._modValue.apply(op.value)\n } else if ($insertOp.check(opsI)) {\n opsI._modValue(offset).apply(op.value)\n } else if ($retainOp.check(opsI)) {\n if (offset > 0) {\n const cpy = scheduleForMerge(opsI.clone(0, offset)) // skipped len\n opsI._splice(0, offset) // new remainder\n list.insertBetween(this.children, opsI.prev, opsI, cpy) // insert skipped len\n offset = 0\n }\n list.insertBetween(this.children, opsI.prev, opsI, scheduleForMerge(op.clone())) // insert skipped len\n if (opsI.length === 1) {\n list.remove(this.children, opsI)\n } else {\n opsI._splice(0, 1)\n scheduleForMerge(opsI)\n }\n } else if ($deleteOp.check(opsI)) {\n // nop\n } else {\n error.unexpectedCase()\n }\n } else {\n error.unexpectedCase()\n }\n })\n maybeMergeable.forEach(op => {\n // check if this is still integrated\n if (op.prev?.next === op) {\n tryMergeWithPrev(this.children, op)\n op.next && tryMergeWithPrev(this.children, op.next)\n }\n })\n return this\n }\n\n /**\n * @param {DeltaAny} other\n * @param {boolean} priority\n */\n rebase (other, priority) {\n modDeltaCheck(this)\n /**\n * Rebase attributes\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 for (const op of this.attrs) {\n if ($insertOp.check(op)) {\n if ($insertOp.check(other.attrs[op.key]) && !priority) {\n delete this.attrs[op.key]\n }\n } else if ($deleteOp.check(op)) {\n const otherOp = other.attrs[/** @type {any} */ (op.key)]\n if ($insertOp.check(otherOp)) {\n delete this.attrs[otherOp.key]\n }\n } else if ($modifyOp.check(op)) {\n const otherOp = other.attrs[/** @type {any} */ (op.key)]\n if (otherOp == null) {\n // nop\n } else if ($modifyOp.check(otherOp)) {\n op._modValue.rebase(otherOp.value, priority)\n } else {\n delete this.attrs[otherOp.key]\n }\n }\n }\n /**\n * Rebase children.\n *\n * Precedence: insert with higher priority comes first. Op with less priority is transformed to\n * be inserted later.\n *\n * @todo always check if inser OR text\n */\n /**\n * @type {ChildrenOpAny?}\n */\n let currChild = this.children.start\n let currOffset = 0\n /**\n * @type {ChildrenOpAny?}\n */\n let otherChild = other.children.start\n let otherOffset = 0\n while (currChild != null && otherChild != null) {\n if ($insertOp.check(currChild) || $textOp.check(currChild)) {\n /**\n * Transforming *insert*. If other is..\n * - insert: transform based on priority\n * - retain/delete/modify: transform next op against other\n */\n if ($insertOp.check(otherChild) || $modifyOp.check(otherChild) || $textOp.check(otherChild)) {\n if (!priority) {\n list.insertBetween(this.children, currChild.prev, currChild, new RetainOp(otherChild.length, null, null))\n this.childCnt += otherChild.length\n // curr is transformed against other, transform curr against next\n otherOffset = otherChild.length\n } else {\n // curr stays as is, transform next op\n currOffset = currChild.length\n }\n } else { // otherChild = delete | retain | modify - curr stays as is, transform next op\n currOffset = currChild.length\n }\n } else if ($modifyOp.check(currChild)) {\n /**\n * Transforming *modify*. If other is..\n * - insert: adjust position\n * - modify: rebase curr modify on other modify\n * - delete: remove modify\n * - retain: adjust offset\n */\n if ($insertOp.check(otherChild) || $textOp.check(otherChild)) {\n // @todo: with all list changes (retain insertions, removal), try to merge the surrounding\n // ops later\n list.insertBetween(this.children, currChild.prev, currChild, new RetainOp(otherChild.length, null, null))\n this.childCnt += otherChild.length\n // curr is transformed against other, transform curr against next\n otherOffset = otherChild.length\n } else {\n if ($modifyOp.check(otherChild)) {\n /** @type {any} */ (currChild.value).rebase(otherChild, priority)\n } else if ($deleteOp.check(otherChild)) {\n list.remove(this.children, currChild)\n this.childCnt -= 1\n }\n currOffset += 1\n otherOffset += 1\n }\n } else { // DeleteOp | RetainOp\n const maxCommonLen = math.min(currChild.length - currOffset, otherChild.length - otherOffset)\n /**\n * Transforming *retain* OR *delete*. If other is..\n * - retain / modify: adjust offsets\n * - delete: shorten curr op\n * - insert: split curr op and insert retain\n */\n if ($retainOp.check(otherChild) || $modifyOp.check(otherChild)) {\n currOffset += maxCommonLen\n otherOffset += maxCommonLen\n } else if ($deleteOp.check(otherChild)) {\n if ($retainOp.check(currChild)) {\n // @ts-ignore\n currChild.retain -= maxCommonLen\n } else if ($deleteOp.check(currChild)) {\n currChild.delete -= maxCommonLen\n }\n this.childCnt -= maxCommonLen\n } else { // insert/text.check(currOp)\n if (currOffset > 0) {\n const leftPart = currChild.clone(currOffset)\n list.insertBetween(this.children, currChild.prev, currChild, leftPart)\n currChild._splice(currOffset, currChild.length - currOffset)\n currOffset = 0\n }\n list.insertBetween(this.children, currChild.prev, currChild, new RetainOp(otherChild.length, null, null))\n this.childCnt += otherChild.length\n otherOffset = otherChild.length\n }\n }\n if (currOffset >= currChild.length) {\n currChild = currChild.next\n currOffset = 0\n }\n if (otherOffset >= otherChild.length) {\n otherChild = otherChild.next\n otherOffset = 0\n }\n }\n return this\n }\n\n /**\n * Same as doing `delta.rebase(other.inverse())`, without creating a temporary delta.\n *\n * @param {DeltaAny} other\n * @param {boolean} priority\n */\n rebaseOnInverse (other, priority) {\n modDeltaCheck(this)\n // @todo\n console.info('method rebaseOnInverse unimplemented')\n return this\n }\n\n /**\n * Append child ops from one op to the other.\n *\n * delta.create().insert('a').append(delta.create().insert('b')) // => insert \"ab\"\n *\n * @template {DeltaAny} OtherDelta\n * @param {OtherDelta} other\n * @return {CastToDelta<OtherDelta> extends Delta<any,any,infer OtherChildren,infer OtherText,any> ? DeltaBuilder<NodeName,Attrs,Children|OtherChildren,Text|OtherText,Schema> : never}\n */\n append (other) {\n const children = this.children\n const prevLast = children.end\n // @todo Investigate. Above is a typescript issue. It is necessary to cast OtherDelta to a Delta first before\n // inferring type, otherwise Children will contain Text.\n for (const child of other.children) {\n list.pushEnd(children, child.clone())\n }\n this.childCnt += other.childCnt\n prevLast?.next && tryMergeWithPrev(children, prevLast.next)\n // @ts-ignore\n return this\n }\n}\n\n/**\n * @param {ChildrenOpAny} op\n * @param {{[k:string]:any}} formatUpdate\n */\nconst updateOpFormat = (op, formatUpdate) => {\n if (!$deleteOp.check(op)) {\n // apply formatting attributes\n for (const k in formatUpdate) {\n const v = formatUpdate[k]\n if (v != null || $retainOp.check(op)) {\n // never modify formats\n /** @type {any} */ (op).format = object.assign({}, op.format, { [k]: v })\n } else if (op.format != null) {\n const { [k]: _, ...rest } = op.format\n ;/** @type {any} */ (op).format = rest\n }\n }\n }\n}\n\n/**\n * @template {DeltaAny} D\n * @typedef {D extends DeltaBuilder<infer N,infer Attrs,infer Children,infer Text,infer Schema> ? Delta<N,Attrs,Children,Text,Schema> : D} CastToDelta\n */\n\n/**\n * @template {string} NodeName\n * @template {{ [key: string|number]: any }} [Attrs={}]\n * @template {fingerprintTrait.Fingerprintable|never} [Children=never]\n * @template {string|never} [Text=never]\n * @typedef {Delta<NodeName,Attrs,Children|Delta<NodeName,Attrs,Children,Text>|RecursiveDelta<NodeName,Attrs,Children,Text>,Text>} RecursiveDelta\n */\n\n/**\n * @template {string} Name\n * @template {{[k:string|number]:any}} Attrs\n * @template {fingerprintTrait.Fingerprintable} Children\n * @template {boolean} HasText\n * @template {{ [k:string]:any }} Formats\n * @template {boolean} Recursive\n * @extends {s.Schema<Delta<\n * Name,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<Name,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never,\n * any>>}\n */\nexport class $Delta extends s.Schema {\n /**\n * @param {s.Schema<Name>} $name\n * @param {s.Schema<Attrs>} $attrs\n * @param {s.Schema<Children>} $children\n * @param {HasText} hasText\n * @param {s.Schema<Formats>} $formats\n * @param {Recursive} recursive\n */\n constructor ($name, $attrs, $children, hasText, $formats, recursive) {\n super()\n const $attrsPartial = s.$$object.check($attrs) ? $attrs.partial : $attrs\n if (recursive) {\n // @ts-ignore\n $children = s.$union($children, this)\n }\n this.shape = { $name, $attrs: $attrsPartial, $children, hasText, $formats }\n }\n\n /**\n * @param {any} o\n * @param {s.ValidationError} [err]\n * @return {o is Delta<\n * Name,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<Name,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never,\n * any>}\n */\n check (o, err = undefined) {\n const { $name, $attrs, $children, hasText, $formats } = this.shape\n if (!(o instanceof Delta)) {\n err?.extend(null, 'Delta', o?.constructor.name, 'Constructor match failed')\n } else if (o.name != null && !$name.check(o.name, err)) {\n err?.extend('Delta.name', $name.toString(), o.name, 'Unexpected node name')\n } else if (list.toArray(o.children).some(c => (!hasText && $textOp.check(c)) || (hasText && $textOp.check(c) && c.format != null && !$formats.check(c.format)) || ($insertOp.check(c) && !c.insert.every(ins => $children.check(ins))))) {\n err?.extend('Delta.children', '', '', 'Children don\\'t match the schema')\n } else if (object.some(o.attrs, (op, k) => $insertOp.check(op) && !$attrs.check({ [k]: op.value }, err))) {\n err?.extend('Delta.attrs', '', '', 'Attrs don\\'t match the schema')\n } else {\n return true\n }\n return false\n }\n}\n\n/**\n * @template {s.Schema<string>|string|Array<string>} [NodeNameSchema=s.Schema<any>]\n * @template {s.Schema<{ [key: string|number]: any }>|{ [key:string|number]:any }} [AttrsSchema=s.Schema<{}>]\n * @template {any} [ChildrenSchema=s.Schema<never>]\n * @template {boolean} [HasText=false]\n * @template {boolean} [Recursive=false]\n * @template {{ [k:string]:any }} [Formats={[k:string]:any}]\n * @param {object} opts\n * @param {NodeNameSchema?} [opts.name]\n * @param {AttrsSchema?} [opts.attrs] What key-value pairs are included.\n * @param {ChildrenSchema?} [opts.children] The type of content in `insertOp`\n * @param {HasText} [opts.text] Whether this delta contains text using `textOp`\n * @param {Formats} [opts.formats]\n * @param {Recursive} [opts.recursive]\n * @return {[s.Unwrap<s.ReadSchema<NodeNameSchema>>,s.Unwrap<s.ReadSchema<AttrsSchema>>,s.Unwrap<s.ReadSchema<ChildrenSchema>>] extends [infer NodeName, infer Attrs, infer Children] ? s.Schema<Delta<\n * NodeName,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<NodeName,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never\n * >> : never}\n */\nexport const $delta = ({ name, attrs, children, text, formats, recursive }) => /** @type {any} */ (new $Delta(\n name == null ? s.$any : s.$(name),\n /** @type {any} */ (attrs == null ? s.$object({}) : s.$(attrs)),\n /** @type {any} */ (children == null ? s.$never : s.$(children)),\n text ?? false,\n formats == null ? s.$any : s.$(formats),\n recursive ?? false\n))\n\nexport const $$delta = s.$constructedBy($Delta)\n\n/**\n * @todo remove this\n *\n * @template {s.Schema<string>|string|Array<string>} [NodeNameSchema=s.Schema<any>]\n * @template {s.Schema<{ [key: string|number]: any }>|{ [key:string|number]:any }} [AttrsSchema=s.Schema<{}>]\n * @template {any} [ChildrenSchema=s.Schema<never>]\n * @template {boolean} [HasText=false]\n * @template {boolean} [Recursive=false]\n * @param {object} opts\n * @param {NodeNameSchema?} [opts.name]\n * @param {AttrsSchema?} [opts.attrs]\n * @param {ChildrenSchema?} [opts.children]\n * @param {HasText} [opts.text]\n * @param {Recursive} [opts.recursive]\n * @return {[s.Unwrap<s.ReadSchema<NodeNameSchema>>,s.Unwrap<s.ReadSchema<AttrsSchema>>,s.Unwrap<s.ReadSchema<ChildrenSchema>>] extends [infer NodeName, infer Attrs, infer Children] ? s.Schema<Delta<\n * NodeName,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<NodeName,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never\n * >> : never}\n */\nexport const _$delta = ({ name, attrs, children, text, recursive }) => {\n /**\n * @type {s.Schema<Array<any>>}\n */\n let $arrContent = children == null ? s.$never : s.$array(s.$(children))\n const $name = name == null ? s.$any : s.$(name)\n const $attrsPartial = attrs == null ? s.$object({}) : (s.$$record.check(attrs) ? attrs : /** @type {any} */ (s.$(attrs)).partial)\n const $d = s.$instanceOf(Delta, /** @param {Delta<any,any,any,any,any>} d */ d => {\n if (\n !$name.check(d.name) ||\n object.some(d.attrs,\n (op, k) => $insertOp.check(op) && !$attrsPartial.check({ [k]: op.value })\n )\n ) return false\n for (const op of d.children) {\n if ((!text && $textOp.check(op)) || ($insertOp.check(op) && !$arrContent.check(op.insert))) {\n return false\n }\n }\n return true\n })\n if (recursive) {\n $arrContent = children == null ? s.$array($d) : s.$array(s.$(children), $d)\n }\n return /** @type {any} */ ($d)\n}\n\n/**\n * @type {s.Schema<DeltaAny>}\n */\nexport const $deltaAny = /** @type {any} */ (s.$instanceOf(Delta))\n\n/**\n * @type {s.Schema<DeltaBuilderAny>}\n */\nexport const $deltaBuilderAny = /** @type {any} */ (s.$instanceOf(DeltaBuilder))\n\n/**\n * Helper function to merge attribution and attributes. The latter input \"wins\".\n *\n * @template {{ [key: string]: any }} T\n * @param {T | null} a\n * @param {T | null} b\n */\nexport const mergeAttrs = (a, b) => object.isEmpty(a)\n ? (object.isEmpty(b) ? null : b)\n : (object.isEmpty(b) ? a : object.assign({}, a, b))\n\n/**\n * @template {DeltaAny|null} D\n * @param {D} a\n * @param {D} b\n * @return {D}\n */\nexport const mergeDeltas = (a, b) => {\n if (a != null && b != null) {\n const c = clone(a)\n c.apply(b)\n return /** @type {any} */ (c)\n }\n return a == null ? b : (a || null)\n}\n\n/**\n * @template {DeltaAny} D\n * @param {prng.PRNG} gen\n * @param {s.Schema<D>} $d\n * @return {D extends Delta<infer NodeName,infer Attrs,infer Children,infer Text,infer Schema> ? DeltaBuilder<NodeName,Attrs,Children,Text,Schema> : never}\n */\nexport const random = (gen, $d) => {\n const { $name, $attrs, $children, hasText, $formats: $formats_ } = /** @type {$Delta<any,any,any,boolean,any,any>} */ (/** @type {any} */ ($d)).shape\n const d = s.$$any.check($name) ? create($deltaAny) : create(s.random(gen, $name), $deltaAny)\n const $formats = s.$$any.check($formats_) ? s.$null : $formats_\n prng.bool(gen) && d.setMany(s.random(gen, $attrs))\n for (let i = prng.uint32(gen, 0, 5); i > 0; i--) {\n if (hasText && prng.bool(gen)) {\n d.insert(prng.word(gen), s.random(gen, $formats))\n } else if (!s.$$never.check($children)) {\n /**\n * @type {Array<any>}\n */\n const ins = []\n let insN = prng.int32(gen, 0, 5)\n while (insN--) {\n ins.push(s.random(gen, $children))\n }\n d.insert(ins, s.random(gen, $formats))\n }\n }\n return /** @type {any} */ (d)\n}\n\n/**\n * @overload\n * @return {DeltaBuilder<any,{},never,never,null>}\n */\n/**\n * @template {string} NodeName\n * @overload\n * @param {NodeName} nodeName\n * @return {DeltaBuilder<NodeName,{},never,never,null>}\n */\n/**\n * @template {string} NodeName\n * @template {s.Schema<DeltaAny>} Schema\n * @overload\n * @param {NodeName} nodeName\n * @param {Schema} schema\n * @return {Schema extends s.Schema<Delta<infer N,infer Attrs,infer Children,infer Text,any>> ? DeltaBuilder<NodeName,Attrs,Children,Text,Schema> : never}\n */\n/**\n * @template {s.Schema<DeltaAny>} Schema\n * @overload\n * @param {Schema} schema\n * @return {Schema extends s.Schema<Delta<infer N,infer Attrs,infer Children,infer Text,any>> ? DeltaBuilder<N,Attrs,Children,Text,Schema> : never}\n */\n/**\n * @template {string|null} NodeName\n * @template {{[k:string|number]:any}|null} Attrs\n * @template {Array<any>|string} [Children=never]\n * @overload\n * @param {NodeName} nodeName\n * @param {Attrs} attrs\n * @param {Children} [children]\n * @return {DeltaBuilder<\n * NodeName extends null ? any : NodeName,\n * Attrs extends null ? {} : Attrs,\n * Extract<Children,Array<any>> extends Array<infer Ac> ? (unknown extends Ac ? never : Ac) : never,\n * Extract<Children,string>,\n * null\n * >}\n */\n/**\n * @param {string|s.Schema<DeltaAny>} [nodeNameOrSchema]\n * @param {{[K:string|number]:any}|s.Schema<DeltaAny>} [attrsOrSchema]\n * @param {(Array<any>|string)} [children]\n * @return {DeltaBuilder<any,any,any,any,any>}\n */\nexport const create = (nodeNameOrSchema, attrsOrSchema, children) => {\n const nodeName = /** @type {any} */ (s.$string.check(nodeNameOrSchema) ? nodeNameOrSchema : null)\n const schema = /** @type {any} */ (s.$$schema.check(nodeNameOrSchema) ? nodeNameOrSchema : (s.$$schema.check(attrsOrSchema) ? attrsOrSchema : null))\n const d = /** @type {DeltaBuilder<any,any,any,string,null>} */ (new DeltaBuilder(nodeName, schema))\n if (s.$objectAny.check(attrsOrSchema)) {\n d.setMany(attrsOrSchema)\n }\n children && d.insert(children)\n return d\n}\n\n// DELTA TEXT\n\n/**\n * @template {fingerprintTrait.Fingerprintable} [Embeds=never]\n * @typedef {Delta<any,{},Embeds,string>} TextDelta\n */\n\n/**\n * @template {fingerprintTrait.Fingerprintable} [Embeds=never]\n * @typedef {DeltaBuilder<any,{},Embeds,string>} TextDeltaBuilder\n */\n\n/**\n * @template {Array<s.Schema<any>>} [$Embeds=any]\n * @param {$Embeds} $embeds\n * @return {s.Schema<TextDelta<_AnyToNull<$Embeds> extends null ? never : ($Embeds extends Array<s.Schema<infer $C>> ? $C : never)>>}\n */\nexport const $text = (...$embeds) => /** @type {any} */ ($delta({ children: s.$union(...$embeds), text: true }))\nexport const $textOnly = $text()\n\n/**\n * @template {s.Schema<Delta<any,{},any,any,null>>} [Schema=s.Schema<Delta<any,{},never,string,null>>]\n * @param {Schema} [$schema]\n * @return {Schema extends s.Schema<Delta<infer N,infer Attrs,infer Children,infer Text,any>> ? DeltaBuilder<N,Attrs,Children,Text,Schema> : never}\n */\nexport const text = $schema => /** @type {any} */ (create($schema || $textOnly))\n\n/**\n * @template {fingerprintTrait.Fingerprintable} Children\n * @typedef {Delta<any,{},Children,never>} ArrayDelta\n */\n\n/**\n * @template {fingerprintTrait.Fingerprintable} Children\n * @typedef {DeltaBuilder<any,{},Children,never>} ArrayDeltaBuilder\n */\n\n/**\n * @template {any|s.Schema<any>} $Children\n * @param {$Children} [$children]\n * @return {s.Schema<ArrayDelta<s.Unwrap<s.ReadSchema<$Children>>>>}\n */\nexport const $array = $children => /** @type {any} */ ($delta({ children: $children }))\n\n/**\n * @template {s.Schema<ArrayDelta<any>>} [$Schema=never]\n * @param {$Schema} $schema\n * @return {$Schema extends never ? ArrayDeltaBuilder<never> : DeltaBuilder<any,{},never,never,$Schema>}\n */\nexport const array = $schema => /** @type {any} */ ($schema ? create($schema) : create())\n\n/**\n * @template {{ [K: string|number]: any }} Attrs\n * @typedef {Delta<any,Attrs,never,never>} MapDelta\n */\n\n/**\n * @template {{ [K: string|number]: any }} Attrs\n * @typedef {DeltaBuilder<any,Attrs,never,never>} MapDeltaBuilder\n */\n\n/**\n * @template {{ [K: string|number]: any }} $Attrs\n * @param {s.Schema<$Attrs>} $attrs\n * @return {s.Schema<MapDelta<$Attrs>>}\n */\nexport const $map = $attrs => /** @type {any} */ ($delta({ attrs: $attrs }))\n\n/**\n * @template {s.Schema<MapDelta<any>>|undefined} [$Schema=undefined]\n * @param {$Schema} [$schema]\n * @return {$Schema extends s.Schema<MapDelta<infer Attrs>> ? DeltaBuilder<any,Attrs,never,never,$Schema> : MapDeltaBuilder<{}>}\n */\nexport const map = $schema => /** @type {any} */ (create(/** @type {any} */ ($schema)))\n\n/**\n * @template {DeltaAny} D\n * @param {D} d1\n * @param {NoInfer<D>} d2\n * @return {D extends Delta<infer N,infer Attrs,infer Children,infer Text,any> ? DeltaBuilder<N,Attrs,Children,Text,null> : never}\n */\nexport const diff = (d1, d2) => {\n /**\n * @type {DeltaBuilderAny}\n */\n const d = create()\n if (d1.fingerprint !== d2.fingerprint) {\n let left1 = d1.children.start\n let left2 = d2.children.start\n let right1 = d1.children.end\n let right2 = d2.children.end\n let commonPrefixOffset = 0\n // perform a patience sort\n // 1) remove common prefix and suffix\n while (left1 != null && left1.fingerprint === left2?.fingerprint) {\n if (!$deleteOp.check(left1)) {\n commonPrefixOffset += left1.length\n }\n left1 = left1.next\n left2 = left2.next\n }\n while (right1 !== null && right1 !== left1 && right1.fingerprint === right2?.fingerprint) {\n right1 = right1.prev\n right2 = right2.prev\n }\n /**\n * @type {Array<ChildrenOpAny>}\n */\n const ops1 = []\n /**\n * @type {Array<ChildrenOpAny>}\n */\n const ops2 = []\n while (left1 !== null && left1 !== right1?.next) {\n ops1.push(left1)\n left1 = left1.next\n }\n while (left2 !== null && left2 !== right2?.next) {\n ops2.push(left2)\n left2 = left2.next\n }\n const fprints1 = ops1.map(op => op.fingerprint)\n const fprints2 = ops2.map(op => op.fingerprint)\n const changeset = patience.diff(fprints1, fprints2)\n d.retain(commonPrefixOffset)\n for (let i = 0, lastIndex1 = 0, currIndexOffset2 = 0; i < changeset.length; i++) {\n const change = changeset[i]\n d.retain(change.index - lastIndex1)\n // insert minimal diff at curred position in d\n /**\n *\n * @todo it would be better if these would be slices of delta (an actual delta)\n *\n * @param {ChildrenOpAny[]} opsIs\n * @param {ChildrenOpAny[]} opsShould\n */\n const diffAndApply = (opsIs, opsShould) => {\n const d = create()\n // @todo unoptimized implementation. Convert content to array and diff that based on\n // generated fingerprints. We probably could do better and cache more information.\n // - benchmark\n // - cache fingerprints in ops\n /**\n * @type {Array<string|DeltaAny|fingerprintTrait.Fingerprintable>}\n */\n const isContent = opsIs.flatMap(op => $insertOp.check(op) ? op.insert : ($textOp.check(op) ? op.insert.split('') : error.unexpectedCase()))\n /**\n * @type {Array<string|DeltaAny|fingerprintTrait.Fingerprintable>}\n */\n const shouldContent = opsShould.flatMap(op => $insertOp.check(op) ? op.insert : ($textOp.check(op) ? op.insert.split('') : error.unexpectedCase()))\n const isContentFingerprinted = isContent.map(c => s.$string.check(c) ? c : fingerprintTrait.fingerprint(c))\n const shouldContentFingerprinted = shouldContent.map(c => s.$string.check(c) ? c : fingerprintTrait.fingerprint(c))\n const hasFormatting = opsIs.some(op => !$deleteOp.check(op) && op.format != null) || opsShould.some(op => !$deleteOp.check(op) && op.format != null)\n /**\n * @type {{ index: number, insert: Array<string|DeltaAny|fingerprintTrait.Fingerprintable>, remove: Array<string|DeltaAny|fingerprintTrait.Fingerprintable> }[]}\n */\n const cdiff = patience.diff(isContentFingerprinted, shouldContentFingerprinted)\n // overwrite fingerprinted content with actual content\n for (let i = 0, adj = 0; i < cdiff.length; i++) {\n const cd = cdiff[i]\n cd.remove = isContent.slice(cd.index, cd.index + cd.remove.length)\n cd.insert = shouldContent.slice(cd.index + adj, cd.index + adj + cd.insert.length)\n adj += cd.remove.length - cd.insert.length\n }\n for (let i = 0, lastIndex = 0; i < cdiff.length; i++) {\n const cd = cdiff[i]\n d.retain(cd.index - lastIndex)\n let cdii = 0\n let cdri = 0\n // try to match as much content as possible, preferring to skip over non-deltas\n for (; cdii < cd.insert.length && cdri < cd.remove.length;) {\n const a = cd.insert[cdii]\n const b = cd.remove[cdri]\n if ($deltaAny.check(a) && $deltaAny.check(b) && a.name === b.name) {\n d.modify(diff(b, a))\n cdii++\n cdri++\n } else if ($deltaAny.check(b)) {\n d.insert(s.$string.check(a) ? a : [a])\n cdii++\n } else {\n d.delete(1)\n cdri++\n }\n }\n for (; cdii < cd.insert.length; cdii++) {\n const a = cd.insert[cdii]\n d.insert(s.$string.check(a) ? a : [a])\n }\n d.delete(cd.remove.length - cdri)\n }\n // create the diff for formatting\n if (hasFormatting) {\n const formattingDiff = create()\n // update opsIs with content diff. then we can figure out the formatting diff.\n const isUpdated = create()\n // copy opsIs to fresh delta\n opsIs.forEach(op => {\n isUpdated.childCnt += op.length\n list.pushEnd(isUpdated.children, op.clone())\n })\n isUpdated.apply(d)\n let shouldI = 0\n let shouldOffset = 0\n let isOp = isUpdated.children.start\n let isOffset = 0\n while (shouldI < opsShould.length && isOp != null) {\n const shouldOp = opsShould[shouldI]\n if (!$deleteOp.check(shouldOp) && !$deleteOp.check(isOp)) {\n const isFormat = isOp.format\n const minForward = math.min(shouldOp.length - shouldOffset, isOp.length - isOffset)\n shouldOffset += minForward\n isOffset += minForward\n if (fun.equalityDeep(shouldOp.format, isFormat)) {\n formattingDiff.retain(minForward)\n } else {\n /**\n * @type {FormattingAttributes}\n */\n const fupdate = {}\n shouldOp.format != null && object.forEach(shouldOp.format, (v, k) => {\n if (!fun.equalityDeep(v, isFormat?.[k] || null)) {\n fupdate[k] = v\n }\n })\n isFormat && object.forEach(isFormat, (_, k) => {\n if (shouldOp?.format?.[k] === undefined) {\n fupdate[k] = null\n }\n })\n formattingDiff.retain(minForward, fupdate)\n }\n // update offset and iterators\n if (shouldOffset >= shouldOp.length) {\n shouldI++\n shouldOffset = 0\n }\n if (isOffset >= isOp.length) {\n isOp = isOp.next\n isOffset = 0\n }\n }\n }\n d.apply(formattingDiff)\n }\n return d\n }\n const subd = diffAndApply(ops1.slice(change.index, change.index + change.remove.length), ops2.slice(change.index + currIndexOffset2, change.index + currIndexOffset2 + change.insert.length))\n d.append(subd)\n lastIndex1 = change.index + change.remove.length\n currIndexOffset2 += change.insert.length - change.remove.length\n }\n for (const attr2 of d2.attrs) {\n const attr1 = d1.attrs[attr2.key]\n if (attr1 == null || (attr1.fingerprint !== attr2.fingerprint)) {\n /* c8 ignore else */\n if ($insertOp.check(attr2)) {\n d.set(attr2.key, attr2.value)\n } else {\n /* c8 ignore next 2 */\n error.unexpectedCase()\n }\n }\n }\n for (const attr1 of d1.attrs) {\n if (d2.attrs[attr1.key] == null) {\n d.unset(attr1.key)\n }\n }\n }\n return /** @type {any} */ (d.done(false))\n}\n"],"names":["s.$object","s.$array","s.$string","s.$number","s.$record","s.$union","s.$literal","s.$any","list.ListNode","buffer.toBase64","encoding.encode","encoding.writeVarUint","encoding.writeVarString","encoding.writeAny","object.assign","equalityTrait.EqualityTraitSymbol","fun.equalityDeep","fingerprintTrait.fingerprint","encoding.writeUint8","s.$custom","s.$constructedBy","list.create","encoding.writeUint32","rabin.fingerprint","rabin.StandardIrreducible128","encoding.toUint8Array","fingerprintTrait.FingerprintTraitSymbol","object.isEmpty","list.isEmpty","math.min","list.pushEnd","list.popEnd","error.unexpectedCase","list.remove","error.create","arr.isArray","list.insertBetween","object.every","s.Schema","s.$$object","list.toArray","object.some","s.$","s.$never","s.$$record","s.$instanceOf","s.$$any","s.random","s.$null","prng.bool","prng.uint32","prng.word","s.$$never","prng.int32","schema","s.$$schema","s.$objectAny","patience.diff","object.forEach"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- export function diff(as: Array<string>, bs: Array<string>): Array<{
2
- index: number;
3
- remove: Array<string>;
4
- insert: Array<string>;
5
- }>;
6
- export function diffSplitBy(a: string, b: string, _regexp: RegExp | string): {
7
- index: number;
8
- remove: string;
9
- insert: string;
10
- }[];
11
- export function diffAuto(a: string, b: string): {
12
- insert: string;
13
- remove: string;
14
- index: number;
15
- }[];
16
- //# sourceMappingURL=patience.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patience.d.ts","sourceRoot":"","sources":["../../diff/patience.js"],"names":[],"mappings":"AAoBO,yBAJI,KAAK,CAAC,MAAM,CAAC,MACb,KAAK,CAAC,MAAM,CAAC,GACZ,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAC,CAAC,CAShF;AAOM,+BAJI,MAAM,KACN,MAAM,WACN,MAAM,GAAC,MAAM;;;;IAqBvB;AAWM,4BAHI,MAAM,KACN,MAAM;;;;IASP"}
@@ -1,4 +0,0 @@
1
- export function testDiffing(_tc: t.TestCase): void;
2
- export function testRepeatRandomWordReplace(tc: t.TestCase): void;
3
- import * as t from '../testing.js';
4
- //# sourceMappingURL=patience.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patience.test.d.ts","sourceRoot":"","sources":["../../diff/patience.test.js"],"names":[],"mappings":"AAmBO,iCAFI,CAAC,CAAC,QAAQ,QAwGpB;AAKM,gDAFI,CAAC,CAAC,QAAQ,QAgDpB;mBA3KkB,eAAe"}
@@ -1,162 +0,0 @@
1
- 'use strict';
2
-
3
- var _function = require('./function-314580f7.cjs');
4
-
5
- /**
6
- * Efficient diffs.
7
- *
8
- * @module diff
9
- */
10
-
11
- /**
12
- * A SimpleDiff describes a change on a String.
13
- *
14
- * ```js
15
- * console.log(a) // the old value
16
- * console.log(b) // the updated value
17
- * // Apply changes of diff (pseudocode)
18
- * a.remove(diff.index, diff.remove) // Remove `diff.remove` characters
19
- * a.insert(diff.index, diff.insert) // Insert `diff.insert`
20
- * a === b // values match
21
- * ```
22
- *
23
- * @template {string|Array<any>} T
24
- * @typedef {Object} SimpleDiff
25
- * @property {Number} index The index where changes were applied
26
- * @property {Number} remove The number of characters to delete starting
27
- * at `index`.
28
- * @property {T} insert The new text to insert at `index` after applying
29
- */
30
-
31
- const highSurrogateRegex = /[\uD800-\uDBFF]/;
32
- const lowSurrogateRegex = /[\uDC00-\uDFFF]/;
33
-
34
- /**
35
- * Create a diff between two strings. This diff implementation is highly
36
- * efficient, but not very sophisticated.
37
- *
38
- * @function
39
- *
40
- * @param {string} a The old version of the string
41
- * @param {string} b The updated version of the string
42
- * @return {SimpleDiff<string>} The diff description.
43
- */
44
- const simpleDiffString = (a, b) => {
45
- let left = 0; // number of same characters counting from left
46
- let right = 0; // number of same characters counting from right
47
- while (left < a.length && left < b.length && a[left] === b[left]) {
48
- left++;
49
- }
50
- // If the last same character is a high surrogate, we need to rollback to the previous character
51
- if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--;
52
- while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {
53
- right++;
54
- }
55
- // If the last same character is a low surrogate, we need to rollback to the previous character
56
- if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--;
57
- return {
58
- index: left,
59
- remove: a.length - left - right,
60
- insert: b.slice(left, b.length - right)
61
- }
62
- };
63
-
64
- /**
65
- * @todo Remove in favor of simpleDiffString
66
- * @deprecated
67
- */
68
- const simpleDiff = simpleDiffString;
69
-
70
- /**
71
- * Create a diff between two arrays. This diff implementation is highly
72
- * efficient, but not very sophisticated.
73
- *
74
- * Note: This is basically the same function as above. Another function was created so that the runtime
75
- * can better optimize these function calls.
76
- *
77
- * @function
78
- * @template T
79
- *
80
- * @param {Array<T>} a The old version of the array
81
- * @param {Array<T>} b The updated version of the array
82
- * @param {function(T, T):boolean} [compare]
83
- * @return {SimpleDiff<Array<T>>} The diff description.
84
- */
85
- const simpleDiffArray = (a, b, compare = _function.equalityStrict) => {
86
- let left = 0; // number of same characters counting from left
87
- let right = 0; // number of same characters counting from right
88
- while (left < a.length && left < b.length && compare(a[left], b[left])) {
89
- left++;
90
- }
91
- while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {
92
- right++;
93
- }
94
- return {
95
- index: left,
96
- remove: a.length - left - right,
97
- insert: b.slice(left, b.length - right)
98
- }
99
- };
100
-
101
- /**
102
- * Diff text and try to diff at the current cursor position.
103
- *
104
- * @param {string} a
105
- * @param {string} b
106
- * @param {number} cursor This should refer to the current left cursor-range position
107
- */
108
- const simpleDiffStringWithCursor = (a, b, cursor) => {
109
- let left = 0; // number of same characters counting from left
110
- let right = 0; // number of same characters counting from right
111
- // Iterate left to the right until we find a changed character
112
- // First iteration considers the current cursor position
113
- while (
114
- left < a.length &&
115
- left < b.length &&
116
- a[left] === b[left] &&
117
- left < cursor
118
- ) {
119
- left++;
120
- }
121
- // If the last same character is a high surrogate, we need to rollback to the previous character
122
- if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--;
123
- // Iterate right to the left until we find a changed character
124
- while (
125
- right + left < a.length &&
126
- right + left < b.length &&
127
- a[a.length - right - 1] === b[b.length - right - 1]
128
- ) {
129
- right++;
130
- }
131
- // If the last same character is a low surrogate, we need to rollback to the previous character
132
- if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--;
133
- // Try to iterate left further to the right without caring about the current cursor position
134
- while (
135
- right + left < a.length &&
136
- right + left < b.length &&
137
- a[left] === b[left]
138
- ) {
139
- left++;
140
- }
141
- if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--;
142
- return {
143
- index: left,
144
- remove: a.length - left - right,
145
- insert: b.slice(left, b.length - right)
146
- }
147
- };
148
-
149
- var diff = /*#__PURE__*/Object.freeze({
150
- __proto__: null,
151
- simpleDiffString: simpleDiffString,
152
- simpleDiff: simpleDiff,
153
- simpleDiffArray: simpleDiffArray,
154
- simpleDiffStringWithCursor: simpleDiffStringWithCursor
155
- });
156
-
157
- exports.diff = diff;
158
- exports.simpleDiff = simpleDiff;
159
- exports.simpleDiffArray = simpleDiffArray;
160
- exports.simpleDiffString = simpleDiffString;
161
- exports.simpleDiffStringWithCursor = simpleDiffStringWithCursor;
162
- //# sourceMappingURL=diff-9d236524.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff-9d236524.cjs","sources":["../diff.js"],"sourcesContent":["/**\n * Efficient diffs.\n *\n * @module diff\n */\n\nimport { equalityStrict } from './function.js'\n\n/**\n * A SimpleDiff describes a change on a String.\n *\n * ```js\n * console.log(a) // the old value\n * console.log(b) // the updated value\n * // Apply changes of diff (pseudocode)\n * a.remove(diff.index, diff.remove) // Remove `diff.remove` characters\n * a.insert(diff.index, diff.insert) // Insert `diff.insert`\n * a === b // values match\n * ```\n *\n * @template {string|Array<any>} T\n * @typedef {Object} SimpleDiff\n * @property {Number} index The index where changes were applied\n * @property {Number} remove The number of characters to delete starting\n * at `index`.\n * @property {T} insert The new text to insert at `index` after applying\n */\n\nconst highSurrogateRegex = /[\\uD800-\\uDBFF]/\nconst lowSurrogateRegex = /[\\uDC00-\\uDFFF]/\n\n/**\n * Create a diff between two strings. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * @function\n *\n * @param {string} a The old version of the string\n * @param {string} b The updated version of the string\n * @return {SimpleDiff<string>} The diff description.\n */\nexport const simpleDiffString = (a, b) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && a[left] === b[left]) {\n left++\n }\n // If the last same character is a high surrogate, we need to rollback to the previous character\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {\n right++\n }\n // If the last same character is a low surrogate, we need to rollback to the previous character\n if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * @todo Remove in favor of simpleDiffString\n * @deprecated\n */\nexport const simpleDiff = simpleDiffString\n\n/**\n * Create a diff between two arrays. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * Note: This is basically the same function as above. Another function was created so that the runtime\n * can better optimize these function calls.\n *\n * @function\n * @template T\n *\n * @param {Array<T>} a The old version of the array\n * @param {Array<T>} b The updated version of the array\n * @param {function(T, T):boolean} [compare]\n * @return {SimpleDiff<Array<T>>} The diff description.\n */\nexport const simpleDiffArray = (a, b, compare = equalityStrict) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && compare(a[left], b[left])) {\n left++\n }\n while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {\n right++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * Diff text and try to diff at the current cursor position.\n *\n * @param {string} a\n * @param {string} b\n * @param {number} cursor This should refer to the current left cursor-range position\n */\nexport const simpleDiffStringWithCursor = (a, b, cursor) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n // Iterate left to the right until we find a changed character\n // First iteration considers the current cursor position\n while (\n left < a.length &&\n left < b.length &&\n a[left] === b[left] &&\n left < cursor\n ) {\n left++\n }\n // If the last same character is a high surrogate, we need to rollback to the previous character\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n // Iterate right to the left until we find a changed character\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[a.length - right - 1] === b[b.length - right - 1]\n ) {\n right++\n }\n // If the last same character is a low surrogate, we need to rollback to the previous character\n if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--\n // Try to iterate left further to the right without caring about the current cursor position\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[left] === b[left]\n ) {\n left++\n }\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n"],"names":["equalityStrict"],"mappings":"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"}
package/dist/diff.cjs DELETED
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- require('./function-314580f7.cjs');
6
- var diff = require('./diff-9d236524.cjs');
7
- require('./array-78849c95.cjs');
8
- require('./set-5b47859e.cjs');
9
- require('./object-c0c9435b.cjs');
10
- require('./equality.cjs');
11
-
12
-
13
-
14
- exports.simpleDiff = diff.simpleDiff;
15
- exports.simpleDiffArray = diff.simpleDiffArray;
16
- exports.simpleDiffString = diff.simpleDiffString;
17
- exports.simpleDiffStringWithCursor = diff.simpleDiffStringWithCursor;
18
- //# sourceMappingURL=diff.cjs.map
package/dist/diff.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
package/dist/diff.d.ts DELETED
@@ -1,36 +0,0 @@
1
- export function simpleDiffString(a: string, b: string): SimpleDiff<string>;
2
- export function simpleDiff(a: string, b: string): SimpleDiff<string>;
3
- export function simpleDiffArray<T>(a: Array<T>, b: Array<T>, compare?: (arg0: T, arg1: T) => boolean): SimpleDiff<Array<T>>;
4
- export function simpleDiffStringWithCursor(a: string, b: string, cursor: number): {
5
- index: number;
6
- remove: number;
7
- insert: string;
8
- };
9
- /**
10
- * A SimpleDiff describes a change on a String.
11
- *
12
- * ```js
13
- * console.log(a) // the old value
14
- * console.log(b) // the updated value
15
- * // Apply changes of diff (pseudocode)
16
- * a.remove(diff.index, diff.remove) // Remove `diff.remove` characters
17
- * a.insert(diff.index, diff.insert) // Insert `diff.insert`
18
- * a === b // values match
19
- * ```
20
- */
21
- export type SimpleDiff<T extends string | Array<any>> = {
22
- /**
23
- * The index where changes were applied
24
- */
25
- index: number;
26
- /**
27
- * The number of characters to delete starting
28
- * at `index`.
29
- */
30
- remove: number;
31
- /**
32
- * The new text to insert at `index` after applying
33
- */
34
- insert: T;
35
- };
36
- //# sourceMappingURL=diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../diff.js"],"names":[],"mappings":"AAyCO,oCAJI,MAAM,KACN,MAAM,GACL,UAAU,CAAC,MAAM,CAAC,CAoB7B;AAlBM,8BAJI,MAAM,KACN,MAAM,GACL,UAAU,CAAC,MAAM,CAAC,CAoB7B;AAuBM,gCAPM,CAAC,KAEH,KAAK,CAAC,CAAC,CAAC,KACR,KAAK,CAAC,CAAC,CAAC,YACR,CAAS,IAAC,EAAD,CAAC,EAAE,IAAC,EAAD,CAAC,KAAE,OAAO,GACrB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAgB/B;AASM,8CAJI,MAAM,KACN,MAAM,UACN,MAAM;;;;EAyChB;;;;;;;;;;;;;uBA5HgC,CAAC,SAApB,MAAM,GAAC,KAAK,CAAC,GAAG,CAAE;;;;;;;;;;;;;YAKlB,CAAC"}
@@ -1,6 +0,0 @@
1
- export function testDiffing(tc: t.TestCase): void;
2
- export function testRepeatDiffing(tc: t.TestCase): void;
3
- export function testSimpleDiffWithCursor(tc: t.TestCase): void;
4
- export function testArrayDiffing(tc: t.TestCase): void;
5
- import * as t from './testing.js';
6
- //# sourceMappingURL=diff.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.test.d.ts","sourceRoot":"","sources":["../diff.test.js"],"names":[],"mappings":"AA0BO,gCAFI,CAAC,CAAC,QAAQ,QAmBpB;AAKM,sCAFI,CAAC,CAAC,QAAQ,QAQpB;AAKM,6CAFI,CAAC,CAAC,QAAQ,QA4CpB;AAKM,qCAFI,CAAC,CAAC,QAAQ,QAQpB;mBA7GkB,cAAc"}