lib0 0.2.112 → 0.2.115-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +1 -1
  2. package/broadcastchannel.js +1 -1
  3. package/buffer.d.ts +3 -3
  4. package/buffer.d.ts.map +1 -1
  5. package/buffer.js +1 -1
  6. package/coverage/tmp/coverage-27667-1761218530660-0.json +1 -0
  7. package/coverage/tmp/{coverage-20055-1752683207886-0.json → coverage-27668-1761218485882-0.json} +1 -1
  8. package/crypto/aes-gcm.d.ts +4 -4
  9. package/crypto/aes-gcm.d.ts.map +1 -1
  10. package/crypto/aes-gcm.js +6 -6
  11. package/crypto/common.d.ts +1 -1
  12. package/crypto/common.d.ts.map +1 -1
  13. package/crypto/common.js +1 -1
  14. package/crypto/ecdsa.d.ts +2 -2
  15. package/crypto/ecdsa.d.ts.map +1 -1
  16. package/crypto/ecdsa.js +4 -4
  17. package/crypto/rsa-oaep.d.ts +2 -2
  18. package/crypto/rsa-oaep.d.ts.map +1 -1
  19. package/crypto/rsa-oaep.js +3 -3
  20. package/decoding.d.ts +27 -14
  21. package/decoding.d.ts.map +1 -1
  22. package/decoding.js +12 -8
  23. package/delta/abstract-array.d.ts +166 -0
  24. package/delta/abstract-array.d.ts.map +1 -0
  25. package/delta/abstract-array.js +421 -0
  26. package/delta/abstract.d.ts +69 -0
  27. package/delta/abstract.d.ts.map +1 -0
  28. package/delta/abstract.js +102 -0
  29. package/delta/array.d.ts +23 -0
  30. package/delta/array.d.ts.map +1 -0
  31. package/delta/array.js +45 -0
  32. package/delta/array.test.d.ts +2 -0
  33. package/delta/array.test.d.ts.map +1 -0
  34. package/delta/binding.d.ts +105 -0
  35. package/delta/binding.d.ts.map +1 -0
  36. package/delta/binding.js +369 -0
  37. package/delta/binding.test.d.ts +5 -0
  38. package/delta/binding.test.d.ts.map +1 -0
  39. package/delta/d2.d.ts +705 -0
  40. package/delta/d2.d.ts.map +1 -0
  41. package/delta/d2.js +1309 -0
  42. package/delta/d2.test.d.ts +15 -0
  43. package/delta/d2.test.d.ts.map +1 -0
  44. package/delta/index.d.ts +14 -0
  45. package/delta/index.d.ts.map +1 -0
  46. package/delta/index.js +79 -0
  47. package/delta/map.d.ts +230 -0
  48. package/delta/map.d.ts.map +1 -0
  49. package/delta/map.js +304 -0
  50. package/delta/node.d.ts +119 -0
  51. package/delta/node.d.ts.map +1 -0
  52. package/delta/node.js +183 -0
  53. package/delta/node.test.d.ts +4 -0
  54. package/delta/node.test.d.ts.map +1 -0
  55. package/delta/ops.d.ts +466 -0
  56. package/delta/ops.d.ts.map +1 -0
  57. package/delta/ops.js +544 -0
  58. package/delta/readme.md +129 -0
  59. package/delta/text.d.ts +43 -0
  60. package/delta/text.d.ts.map +1 -0
  61. package/delta/text.js +54 -0
  62. package/delta/text.test.d.ts +6 -0
  63. package/delta/text.test.d.ts.map +1 -0
  64. package/delta/transformer.d.ts +164 -0
  65. package/delta/transformer.d.ts.map +1 -0
  66. package/delta/transformer.js +888 -0
  67. package/delta/transformer.test.d.ts +13 -0
  68. package/delta/transformer.test.d.ts.map +1 -0
  69. package/delta/value.d.ts +84 -0
  70. package/delta/value.d.ts.map +1 -0
  71. package/delta/value.js +168 -0
  72. package/dist/abstract-array.cjs +433 -0
  73. package/dist/abstract-array.cjs.map +1 -0
  74. package/dist/abstract.cjs +122 -0
  75. package/dist/abstract.cjs.map +1 -0
  76. package/dist/aes-gcm.cjs +12 -12
  77. package/dist/aes-gcm.cjs.map +1 -1
  78. package/dist/array.cjs +60 -17
  79. package/dist/array.cjs.map +1 -1
  80. package/dist/array2.cjs +26 -0
  81. package/dist/array2.cjs.map +1 -0
  82. package/dist/binding.cjs +398 -0
  83. package/dist/binding.cjs.map +1 -0
  84. package/dist/{broadcastchannel-2c4b0a1c.cjs → broadcastchannel-b4eaea6e.cjs} +4 -4
  85. package/dist/broadcastchannel-b4eaea6e.cjs.map +1 -0
  86. package/dist/broadcastchannel.cjs +12 -12
  87. package/dist/{buffer-a74f7330.cjs → buffer-adc4e6ea.cjs} +7 -7
  88. package/dist/buffer-adc4e6ea.cjs.map +1 -0
  89. package/dist/buffer.cjs +11 -11
  90. package/dist/buffer.d.ts +3 -3
  91. package/dist/buffer.d.ts.map +1 -1
  92. package/dist/cache.cjs +6 -6
  93. package/dist/common.cjs +1 -1
  94. package/dist/common.cjs.map +1 -1
  95. package/dist/component.cjs +14 -9
  96. package/dist/component.cjs.map +1 -1
  97. package/dist/crypto/aes-gcm.d.ts +4 -4
  98. package/dist/crypto/aes-gcm.d.ts.map +1 -1
  99. package/dist/crypto/common.d.ts +1 -1
  100. package/dist/crypto/common.d.ts.map +1 -1
  101. package/dist/crypto/ecdsa.d.ts +2 -2
  102. package/dist/crypto/ecdsa.d.ts.map +1 -1
  103. package/dist/crypto/rsa-oaep.d.ts +2 -2
  104. package/dist/crypto/rsa-oaep.d.ts.map +1 -1
  105. package/dist/d2.cjs +1347 -0
  106. package/dist/d2.cjs.map +1 -0
  107. package/dist/{decoding-2b136346.cjs → decoding-50b9ce38.cjs} +18 -14
  108. package/dist/decoding-50b9ce38.cjs.map +1 -0
  109. package/dist/decoding.cjs +6 -6
  110. package/dist/decoding.d.ts +27 -14
  111. package/dist/decoding.d.ts.map +1 -1
  112. package/dist/delta/abstract-array.d.ts +166 -0
  113. package/dist/delta/abstract-array.d.ts.map +1 -0
  114. package/dist/delta/abstract.d.ts +69 -0
  115. package/dist/delta/abstract.d.ts.map +1 -0
  116. package/dist/delta/array.d.ts +23 -0
  117. package/dist/delta/array.d.ts.map +1 -0
  118. package/dist/delta/array.test.d.ts +2 -0
  119. package/dist/delta/array.test.d.ts.map +1 -0
  120. package/dist/delta/binding.d.ts +105 -0
  121. package/dist/delta/binding.d.ts.map +1 -0
  122. package/dist/delta/binding.test.d.ts +5 -0
  123. package/dist/delta/binding.test.d.ts.map +1 -0
  124. package/dist/delta/d2.d.ts +705 -0
  125. package/dist/delta/d2.d.ts.map +1 -0
  126. package/dist/delta/d2.test.d.ts +15 -0
  127. package/dist/delta/d2.test.d.ts.map +1 -0
  128. package/dist/delta/index.d.ts +14 -0
  129. package/dist/delta/index.d.ts.map +1 -0
  130. package/dist/delta/map.d.ts +230 -0
  131. package/dist/delta/map.d.ts.map +1 -0
  132. package/dist/delta/node.d.ts +119 -0
  133. package/dist/delta/node.d.ts.map +1 -0
  134. package/dist/delta/node.test.d.ts +4 -0
  135. package/dist/delta/node.test.d.ts.map +1 -0
  136. package/dist/delta/ops.d.ts +466 -0
  137. package/dist/delta/ops.d.ts.map +1 -0
  138. package/dist/delta/text.d.ts +43 -0
  139. package/dist/delta/text.d.ts.map +1 -0
  140. package/dist/delta/text.test.d.ts +6 -0
  141. package/dist/delta/text.test.d.ts.map +1 -0
  142. package/dist/delta/transformer.d.ts +164 -0
  143. package/dist/delta/transformer.d.ts.map +1 -0
  144. package/dist/delta/transformer.test.d.ts +13 -0
  145. package/dist/delta/transformer.test.d.ts.map +1 -0
  146. package/dist/delta/value.d.ts +84 -0
  147. package/dist/delta/value.d.ts.map +1 -0
  148. package/dist/{diff-77c4cf8e.cjs → diff-f0776c15.cjs} +2 -2
  149. package/dist/{diff-77c4cf8e.cjs.map → diff-f0776c15.cjs.map} +1 -1
  150. package/dist/diff.cjs +3 -3
  151. package/dist/{dom-16daf1a0.cjs → dom-2b123630.cjs} +31 -2
  152. package/dist/dom-2b123630.cjs.map +1 -0
  153. package/dist/dom.cjs +17 -2
  154. package/dist/dom.cjs.map +1 -1
  155. package/dist/dom.d.ts +17 -0
  156. package/dist/dom.d.ts.map +1 -1
  157. package/dist/ecdsa.cjs +4 -4
  158. package/dist/ecdsa.cjs.map +1 -1
  159. package/dist/{encoding-1acb59c4.cjs → encoding-7f85922c.cjs} +5 -5
  160. package/dist/encoding-7f85922c.cjs.map +1 -0
  161. package/dist/encoding.cjs +4 -4
  162. package/dist/encoding.d.ts +6 -6
  163. package/dist/encoding.d.ts.map +1 -1
  164. package/dist/{environment-2de08e0e.cjs → environment-90227ead.cjs} +4 -4
  165. package/dist/{environment-2de08e0e.cjs.map → environment-90227ead.cjs.map} +1 -1
  166. package/dist/environment.cjs +5 -5
  167. package/dist/{error-8582d695.cjs → error-0c1f634f.cjs} +10 -2
  168. package/dist/error-0c1f634f.cjs.map +1 -0
  169. package/dist/error.cjs +2 -1
  170. package/dist/error.cjs.map +1 -1
  171. package/dist/error.d.ts +1 -0
  172. package/dist/error.d.ts.map +1 -1
  173. package/dist/{eventloop-b299a889.cjs → eventloop-a0168106.cjs} +2 -2
  174. package/dist/{eventloop-b299a889.cjs.map → eventloop-a0168106.cjs.map} +1 -1
  175. package/dist/eventloop.cjs +3 -3
  176. package/dist/{function-09b8292c.cjs → function-e7d18feb.cjs} +2 -2
  177. package/dist/{function-09b8292c.cjs.map → function-e7d18feb.cjs.map} +1 -1
  178. package/dist/function.cjs +2 -2
  179. package/dist/index.cjs +23 -22
  180. package/dist/index.cjs.map +1 -1
  181. package/dist/index2.cjs +71 -0
  182. package/dist/index2.cjs.map +1 -0
  183. package/dist/{indexeddb-0cbb4d6f.cjs → indexeddb-46d1e737.cjs} +3 -3
  184. package/dist/{indexeddb-0cbb4d6f.cjs.map → indexeddb-46d1e737.cjs.map} +1 -1
  185. package/dist/indexeddb.cjs +5 -5
  186. package/dist/indexeddbV2.cjs +2 -1
  187. package/dist/indexeddbV2.cjs.map +1 -1
  188. package/dist/jwt.cjs +12 -12
  189. package/dist/list.cjs +39 -12
  190. package/dist/list.cjs.map +1 -1
  191. package/dist/list.d.ts +13 -3
  192. package/dist/list.d.ts.map +1 -1
  193. package/dist/logging.cjs +11 -9
  194. package/dist/logging.cjs.map +1 -1
  195. package/dist/logging.common.cjs +7 -7
  196. package/dist/logging.node.cjs +7 -7
  197. package/dist/{map-0dabcc55.cjs → map-24d263c0.cjs} +7 -1
  198. package/dist/map-24d263c0.cjs.map +1 -0
  199. package/dist/map.cjs +314 -7
  200. package/dist/map.cjs.map +1 -1
  201. package/dist/map.d.ts +1 -0
  202. package/dist/map.d.ts.map +1 -1
  203. package/dist/map2.cjs +15 -0
  204. package/dist/map2.cjs.map +1 -0
  205. package/dist/{math-08e068f9.cjs → math-96d5e8c4.cjs} +4 -2
  206. package/dist/math-96d5e8c4.cjs.map +1 -0
  207. package/dist/math.cjs +1 -1
  208. package/dist/math.d.ts.map +1 -1
  209. package/dist/metric.cjs +1 -1
  210. package/dist/node.cjs +206 -0
  211. package/dist/node.cjs.map +1 -0
  212. package/dist/{number-466d8922.cjs → number-1fb57bba.cjs} +2 -2
  213. package/dist/{number-466d8922.cjs.map → number-1fb57bba.cjs.map} +1 -1
  214. package/dist/number.cjs +2 -2
  215. package/dist/{object-491858d1.cjs → object-18980796.cjs} +12 -2
  216. package/dist/object-18980796.cjs.map +1 -0
  217. package/dist/object.cjs +3 -1
  218. package/dist/object.cjs.map +1 -1
  219. package/dist/object.d.ts +3 -0
  220. package/dist/object.d.ts.map +1 -1
  221. package/dist/observable.cjs +1 -1
  222. package/dist/ops.cjs +575 -0
  223. package/dist/ops.cjs.map +1 -0
  224. package/dist/patience.cjs +2 -2
  225. package/dist/performance.node.cjs +4 -4
  226. package/dist/pledge.cjs +2 -1
  227. package/dist/pledge.cjs.map +1 -1
  228. package/dist/{prng-24dfe0bf.cjs → prng-004c76e8.cjs} +5 -5
  229. package/dist/{prng-24dfe0bf.cjs.map → prng-004c76e8.cjs.map} +1 -1
  230. package/dist/prng.cjs +12 -12
  231. package/dist/prng.d.ts +1 -1
  232. package/dist/prng.d.ts.map +1 -1
  233. package/dist/{promise-7d13a97c.cjs → promise-cda7b9bb.cjs} +2 -2
  234. package/dist/{promise-7d13a97c.cjs.map → promise-cda7b9bb.cjs.map} +1 -1
  235. package/dist/promise.cjs +3 -3
  236. package/dist/rabin-gf2-polynomial.cjs +11 -11
  237. package/dist/rabin-uncached.cjs +11 -11
  238. package/dist/rabin.cjs +11 -11
  239. package/dist/random.cjs +1 -1
  240. package/dist/rsa-oaep.cjs +3 -3
  241. package/dist/rsa-oaep.cjs.map +1 -1
  242. package/dist/schema.cjs +572 -167
  243. package/dist/schema.cjs.map +1 -1
  244. package/dist/schema.d.ts +326 -122
  245. package/dist/schema.d.ts.map +1 -1
  246. package/dist/schema.test.d.ts +5 -0
  247. package/dist/schema.test.d.ts.map +1 -1
  248. package/dist/{sort-b8702761.cjs → sort-812cc211.cjs} +2 -2
  249. package/dist/{sort-b8702761.cjs.map → sort-812cc211.cjs.map} +1 -1
  250. package/dist/sort.cjs +2 -2
  251. package/dist/{statistics-c2316dca.cjs → statistics-65f6114b.cjs} +2 -2
  252. package/dist/{statistics-c2316dca.cjs.map → statistics-65f6114b.cjs.map} +1 -1
  253. package/dist/statistics.cjs +2 -2
  254. package/dist/{string-b2827a90.cjs → string-fddc5f8b.cjs} +3 -3
  255. package/dist/string-fddc5f8b.cjs.map +1 -0
  256. package/dist/string.cjs +1 -1
  257. package/dist/string.d.ts +3 -3
  258. package/dist/string.d.ts.map +1 -1
  259. package/dist/testing.cjs +16 -16
  260. package/dist/text.cjs +79 -0
  261. package/dist/text.cjs.map +1 -0
  262. package/dist/{time-bc2081b9.cjs → time-d8438852.cjs} +2 -2
  263. package/dist/{time-bc2081b9.cjs.map → time-d8438852.cjs.map} +1 -1
  264. package/dist/time.cjs +2 -2
  265. package/dist/traits.cjs +22 -0
  266. package/dist/traits.cjs.map +1 -1
  267. package/dist/traits.d.ts +1 -0
  268. package/dist/traits.d.ts.map +1 -1
  269. package/dist/traits.test.d.ts.map +1 -1
  270. package/dist/transformer.cjs +930 -0
  271. package/dist/transformer.cjs.map +1 -0
  272. package/dist/url.cjs +2 -1
  273. package/dist/url.cjs.map +1 -1
  274. package/dist/value.cjs +187 -0
  275. package/dist/value.cjs.map +1 -0
  276. package/dist/webcrypto.d.ts +1 -1
  277. package/dist/webcrypto.d.ts.map +1 -1
  278. package/dist/{websocket-40a601d4.cjs → websocket-b073d0fc.cjs} +3 -3
  279. package/dist/{websocket-40a601d4.cjs.map → websocket-b073d0fc.cjs.map} +1 -1
  280. package/dist/websocket.cjs +4 -4
  281. package/dom.d.ts +17 -0
  282. package/dom.d.ts.map +1 -1
  283. package/dom.js +21 -0
  284. package/encoding.d.ts +6 -6
  285. package/encoding.d.ts.map +1 -1
  286. package/encoding.js +1 -1
  287. package/error.d.ts +1 -0
  288. package/error.d.ts.map +1 -1
  289. package/error.js +6 -0
  290. package/list.d.ts +13 -3
  291. package/list.d.ts.map +1 -1
  292. package/list.js +36 -8
  293. package/map.d.ts +1 -0
  294. package/map.d.ts.map +1 -1
  295. package/map.js +6 -0
  296. package/math.d.ts.map +1 -1
  297. package/math.js +3 -1
  298. package/object.d.ts +3 -0
  299. package/object.d.ts.map +1 -1
  300. package/object.js +9 -1
  301. package/package.json +9 -3
  302. package/prng.d.ts +1 -1
  303. package/prng.d.ts.map +1 -1
  304. package/prng.js +1 -1
  305. package/schema.d.ts +326 -122
  306. package/schema.d.ts.map +1 -1
  307. package/schema.js +513 -141
  308. package/schema.test.d.ts +5 -0
  309. package/schema.test.d.ts.map +1 -1
  310. package/string.d.ts +3 -3
  311. package/string.d.ts.map +1 -1
  312. package/string.js +2 -2
  313. package/test.html +1 -0
  314. package/test.js +13 -1
  315. package/traits.d.ts +1 -0
  316. package/traits.d.ts.map +1 -1
  317. package/traits.js +21 -0
  318. package/traits.test.d.ts.map +1 -1
  319. package/webcrypto.d.ts +1 -1
  320. package/webcrypto.d.ts.map +1 -1
  321. package/coverage/tmp/coverage-20054-1752683240888-0.json +0 -1
  322. package/dist/broadcastchannel-2c4b0a1c.cjs.map +0 -1
  323. package/dist/buffer-a74f7330.cjs.map +0 -1
  324. package/dist/decoding-2b136346.cjs.map +0 -1
  325. package/dist/dom-16daf1a0.cjs.map +0 -1
  326. package/dist/encoding-1acb59c4.cjs.map +0 -1
  327. package/dist/error-8582d695.cjs.map +0 -1
  328. package/dist/map-0dabcc55.cjs.map +0 -1
  329. package/dist/math-08e068f9.cjs.map +0 -1
  330. package/dist/object-491858d1.cjs.map +0 -1
  331. package/dist/string-b2827a90.cjs.map +0 -1
@@ -0,0 +1,164 @@
1
+ export function transformResult<DeltaA extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null, DeltaB extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null>(a: DeltaA, b: DeltaB): TransformResult<DeltaA, DeltaB>;
2
+ export const transformResultEmpty: TransformResult<null, null>;
3
+ /**
4
+ * @template {any} State
5
+ * @template {s.Unwrap<delta.$delta>} DeltaA
6
+ * @template {s.Unwrap<delta.$delta>} DeltaB
7
+ * @typedef {object} TransformerDef
8
+ * @property {s.Schema<DeltaA>} TransformerDef.$in
9
+ * @property {s.Schema<DeltaB>} TransformerDef.$out
10
+ * @property {function (this: Template<State,DeltaA,DeltaB>): State} TransformerDef.state
11
+ * @property {(deltaIn:NoInfer<DeltaA>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyA
12
+ * @property {(deltaOut:NoInfer<DeltaB>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyB
13
+ */
14
+ /**
15
+ * A Delta Transformer ensures that it keeps two sources A and B in-sync, even if they use a
16
+ * different update format.
17
+ *
18
+ * @template {any} State
19
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaA
20
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaB
21
+ */
22
+ export class Transformer<State extends unknown, DeltaA extends s.Unwrap<typeof delta.$delta>, DeltaB extends s.Unwrap<typeof delta.$delta>> {
23
+ /**
24
+ * @param {Template<State,DeltaA,DeltaB>} t
25
+ * @param {State} s
26
+ */
27
+ constructor(t: Template<State, DeltaA, DeltaB>, s: State);
28
+ t: Template<State, DeltaA, DeltaB>;
29
+ _state: State;
30
+ /**
31
+ * Pending a op, for internal use only
32
+ * @type {DeltaA?}
33
+ */
34
+ _pa: DeltaA | null;
35
+ /**
36
+ * Pending a op, for internal use only
37
+ * @type {DeltaB?}
38
+ */
39
+ _pb: DeltaB | null;
40
+ /**
41
+ * Whether this transformer value has been initially consumebd by the parent transformer.
42
+ */
43
+ _init: boolean;
44
+ /**
45
+ * @type {Transformer<any,any,any>?}
46
+ */
47
+ parent: Transformer<any, any, any> | null;
48
+ /**
49
+ * @param {DeltaA} deltaA
50
+ * @return {TransformResult<DeltaA?,DeltaB?>}
51
+ */
52
+ applyA(deltaA: DeltaA): TransformResult<DeltaA | null, DeltaB | null>;
53
+ /**
54
+ * @param {DeltaB} deltaB
55
+ * @return {TransformResult<DeltaA?,DeltaB?>}
56
+ */
57
+ applyB(deltaB: DeltaB): TransformResult<DeltaA | null, DeltaB | null>;
58
+ }
59
+ /**
60
+ * @template State
61
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaA
62
+ * @template {s.Unwrap<typeof delta.$delta>} DeltaB
63
+ */
64
+ export class Template<State, DeltaA extends s.Unwrap<typeof delta.$delta>, DeltaB extends s.Unwrap<typeof delta.$delta>> {
65
+ /**
66
+ * @param {TransformerDef<State,DeltaA,DeltaB>} def
67
+ */
68
+ constructor({ $in, $out, state, applyA, applyB }: TransformerDef<State, DeltaA, DeltaB>);
69
+ /**
70
+ * @type {s.Schema<DeltaA>}
71
+ */
72
+ $in: s.Schema<DeltaA>;
73
+ /**
74
+ * @type {s.Schema<DeltaB>}
75
+ */
76
+ $out: s.Schema<DeltaB>;
77
+ /**
78
+ * @type {() => State}
79
+ */
80
+ _state: () => State;
81
+ /**
82
+ * @type {typeof applyA}
83
+ */
84
+ _applyA: (deltaIn: NoInfer<DeltaA>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
85
+ /**
86
+ * @type {typeof applyB}
87
+ */
88
+ _applyB: (deltaOut: NoInfer<DeltaB>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
89
+ /**
90
+ * Cache for stateless transformers.
91
+ *
92
+ * @type {Transformer<State,DeltaA,DeltaB>?}
93
+ */
94
+ _tr: Transformer<State, DeltaA, DeltaB> | null;
95
+ /**
96
+ * @template {delta.AbstractDelta} R
97
+ * @param {($d: s.Schema<DeltaB>) => Template<any,DeltaB,R>} t
98
+ * @return {Template<any,DeltaA,R>}
99
+ */
100
+ pipe<R extends delta.AbstractDelta>(t: ($d: s.Schema<DeltaB>) => Template<any, DeltaB, R>): Template<any, DeltaA, R>;
101
+ init(): Transformer<State, DeltaA, DeltaB>;
102
+ }
103
+ export function $template<DeltaA extends delta.AbstractDelta, DeltaB extends delta.AbstractDelta>($deltaA: s.Schema<DeltaA>, $deltaB: s.Schema<DeltaB>): s.Schema<Template<any, DeltaA, DeltaB>>;
104
+ export const $templateAny: s.Schema<Template<any, any, any>>;
105
+ export function maybeFixedToTemplate<MaybeFixed>(maybeFixed: MaybeFixed): MaybeFixed extends Template<any, any, delta.Delta> ? (Extract<MaybeFixed, Template<any, any, any>>) : Template<any, any, MaybeFixed extends delta.Delta ? Extract<MaybeFixed, delta.Delta> : delta.Array<MaybeFixed[keyof MaybeFixed]>>;
106
+ export function transformStatic<DeltaA extends delta.AbstractDelta, Tr extends Template<any, DeltaA, any>>(_$deltaA: s.Schema<DeltaA>, transformer: Tr): <DA extends DeltaA>($d: s.Schema<DA>) => Tr extends Template<any, any, infer DeltaB> ? Template<any, DA, DeltaB> : never;
107
+ export function transform<DeltaA extends delta.AbstractDelta, TF extends <DA extends DeltaA>($deltaA: s.Schema<DA>) => Template<any, DA, any>>(_$deltaA: s.Schema<DeltaA>, transformerFactory: TF): TF;
108
+ export function pipe<DeltaA extends delta.AbstractDelta, DeltaB extends delta.AbstractDelta, DeltaC extends delta.AbstractDelta>(t1: ($s: s.Schema<DeltaA>) => Template<any, DeltaA, DeltaB>, t2: ($s: s.Schema<DeltaB>) => Template<any, DeltaB, DeltaC>): ($d: s.Schema<DeltaA>) => Template<any, DeltaA, DeltaC>;
109
+ export function template<State extends unknown, DeltaIn extends s.Unwrap<typeof delta.$delta>, DeltaOut extends s.Unwrap<typeof delta.$delta>>(def: TransformerDef<State, DeltaIn, DeltaOut>): Template<State, DeltaIn, DeltaOut>;
110
+ export function fixed<FixedContent>(fixedContent: FixedContent): Template<any, any, FixedContent extends delta.AbstractDelta ? FixedContent : delta.Value<FixedContent>>;
111
+ export function map<T extends {
112
+ [key: string]: any;
113
+ }>(definition: T): MapDefToTemplate<T> extends Template<any, infer A, infer B> ? Template<any, A, B> : never;
114
+ export function array<T extends Array<any>>(definition: T): Template<any, AnyArrayToTemplate<T>[number] extends Template<any, infer DeltaA, any> ? DeltaA : never, delta.Array<AnyArrayToTemplate<T>[number] extends Template<any, any, infer DeltaB> ? delta.ValueUnwrap<DeltaB> : never>>;
115
+ export function node<NodeName extends string, Attrs extends {
116
+ [key: string]: any;
117
+ } | Template<any, any, delta.Map<{
118
+ [key: string]: any;
119
+ }>>, Children extends Template<any, any, delta.Array<any, any>> | Array<any>>(name: NodeName, attributes: Attrs, children: Children): Template<any, MapOrMapDefToTemplate<Attrs> extends Template<any, infer A, any> ? A : never, delta.Node<NodeName, MapOrMapDefToTemplate<Attrs> extends Template<any, any, delta.Map<infer M>> ? M : never, MaybeFixedTemplateToTemplate<Children> extends Template<any, any, delta.Array<infer BChildren, any>> ? BChildren : never, any>>;
120
+ export function query<Path extends Array<string>>(...path: Path): <DA extends PathToDelta<Path>>($in: s.Schema<DA>) => Template<any, DA, delta.Value<QueryFollowPath<DA, Path>>>;
121
+ export function id<Delta extends delta.AbstractDelta>($in: s.Schema<Delta>): Template<null, Delta, Delta>;
122
+ /**
123
+ * Creates a transformer template after receiving schema for DeltaA.
124
+ */
125
+ export type TransformerFactory<DeltaA extends delta.AbstractDelta> = <DA extends DeltaA>($deltaA: s.Schema<DA>) => Template<any, DA, any>;
126
+ export type DeltaBFromTransformerFactory<T extends TransformerFactory<any>, DeltaA extends delta.AbstractDelta> = T extends (($deltaA: s.Schema<DeltaA>) => Template<any, DeltaA, infer DeltaB>) ? DeltaB : never;
127
+ export type TransformResult<DeltaA extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null = delta.AbstractDelta | null, DeltaB extends s.Unwrap<s.Schema<delta.AbstractDelta>> | null = delta.AbstractDelta | null> = {
128
+ a: DeltaA;
129
+ b: DeltaB;
130
+ };
131
+ export type TransformerDef<State extends unknown, DeltaA extends s.Unwrap<s.Schema<delta.AbstractDelta>>, DeltaB extends s.Unwrap<s.Schema<delta.AbstractDelta>>> = {
132
+ $in: s.Schema<DeltaA>;
133
+ $out: s.Schema<DeltaB>;
134
+ state: (this: Template<State, DeltaA, DeltaB>) => State;
135
+ applyA: (deltaIn: NoInfer<DeltaA>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
136
+ applyB: (deltaOut: NoInfer<DeltaB>, s: NoInfer<State>) => TransformResult<NoInfer<DeltaA> | null, NoInfer<DeltaB> | null>;
137
+ };
138
+ export type MaybeFixedTemplate<DeltaA extends delta.AbstractDelta, DeltaB extends delta.AbstractDelta> = Template<any, DeltaA, DeltaB> | (DeltaB extends delta.Map<infer MKV> ? (MKV | DeltaB) : (DeltaB extends delta.Array<infer MArr> ? (MArr | DeltaB) : DeltaB));
139
+ export type UnwrapTemplateForArray<X> = X extends Template<any, any, infer D> ? (D extends delta.Value<infer V> ? V : D) : X;
140
+ export type MaybeFixedTemplateToTemplate<MaybeFixed extends unknown> = MaybeFixed extends Template<any, any, any> ? MaybeFixed : Template<any, any, MaybeFixed extends delta.AbstractDelta ? MaybeFixed : (MaybeFixed extends Array<any> ? delta.Array<UnwrapTemplateForArray<MaybeFixed[number]>> : (MaybeFixed extends {
141
+ [key: string]: any;
142
+ } ? delta.Map<MaybeFixed> : never))>;
143
+ export type AnyToTemplate<MaybeTemplate> = [MaybeTemplate] extends [Template<any, any, any>] ? MaybeTemplate : Template<any, any, [MaybeTemplate] extends [delta.AbstractDelta] ? MaybeTemplate : delta.Value<MaybeTemplate>>;
144
+ export type AnyMapToTemplate<MaybeTemplateMap extends {
145
+ [key: string]: any;
146
+ }> = { [K in keyof MaybeTemplateMap]: AnyToTemplate<MaybeTemplateMap[K]>; };
147
+ export type AnyArrayToTemplate<MaybeTemplateArray extends Array<any>> = { [K in keyof MaybeTemplateArray]: AnyToTemplate<MaybeTemplateArray[K]>; };
148
+ export type MapDefToTemplate<T extends {
149
+ [key: string]: any;
150
+ }> = Template<any, AnyMapToTemplate<T>[keyof T] extends Template<any, infer DeltaA, any> ? DeltaA : never, delta.Map<{ [K in keyof T]: AnyToTemplate<T[K]> extends Template<any, any, infer DeltaB> ? (DeltaB extends delta.Value<infer V> ? V : DeltaB) : AnyToTemplate<T[K]>; }>>;
151
+ export type MapOrMapDefToTemplate<T extends {
152
+ [key: string]: any;
153
+ } | Template<any, any, delta.Map<any>>> = T extends Template<any, any, any> ? T : MapDefToTemplate<T>;
154
+ export type _FollowPath<KV extends {
155
+ [k: string]: any;
156
+ }> = delta.Map<KV> | delta.Node<any, KV, any, any>;
157
+ export type QueryFollowPath<D extends unknown, Path extends string[]> = Path extends [] ? D : Path extends [infer P, ...infer PRest] ? (P extends string ? (D extends _AttrDeltaType<{ [K in P]: infer V; }> ? QueryFollowPath<V, PRest extends string[] ? PRest : never> : never) : never) : never;
158
+ export type _AttrDeltaType<Attrs extends {
159
+ [k: string]: any;
160
+ }> = delta.Map<Partial<Attrs>> | delta.Node<any, Partial<Attrs>, any, any>;
161
+ export type PathToDelta<Path extends Array<string>> = Path extends [infer P, ...infer PRest] ? (_AttrDeltaType<{ [K in (P extends string ? P : any)]: PathToDelta<PRest extends Array<string> ? PRest : any>; }>) : any;
162
+ import * as s from '../schema.js';
163
+ import * as delta from './index.js';
164
+ //# sourceMappingURL=transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../delta/transformer.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export function testBasics(_tc: t.TestCase): void;
2
+ export function testMapBasics(_tc: t.TestCase): void;
3
+ export function testMapQuery(_tc: t.TestCase): void;
4
+ export function testMappingTransformer(): void;
5
+ export function testQuery(): void;
6
+ export function testTransformerCreateUtility(): void;
7
+ export function testStaticContent(): void;
8
+ export function testFixedArray(): void;
9
+ export function testNode(): void;
10
+ export function testNodeTransformer(): void;
11
+ export function testNodeTransformerFromNode(): void;
12
+ import * as t from '../testing.js';
13
+ //# sourceMappingURL=transformer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.test.d.ts","sourceRoot":"","sources":["../../delta/transformer.test.js"],"names":[],"mappings":"AAwDO,gCAFI,CAAC,CAAC,QAAQ,QAgBpB;AAKM,mCAFI,CAAC,CAAC,QAAQ,QAcpB;AAKM,kCAFI,CAAC,CAAC,QAAQ,QAcpB;AAEM,+CAGN;AAEM,kCAMN;AAEM,qDAYN;AAEM,0CAgCN;AAEM,uCAKN;AAEM,iCAMN;AAEM,4CAYN;AAEM,oDAQN;mBA5MkB,eAAe"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @template {any} Vals
3
+ * @typedef {Vals extends AbstractDelta ? ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>|ops.MapModifyOp<Extract<Vals,AbstractDelta>,''> : ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>} ValueOpsFromValues
4
+ */
5
+ /**
6
+ * @template Vals
7
+ * @extends {AbstractDelta}
8
+ */
9
+ export class DeltaValue<Vals> extends AbstractDelta {
10
+ /**
11
+ * @param {s.Schema<Vals>} $vals
12
+ */
13
+ constructor($vals: s.Schema<Vals>);
14
+ $vals: s.Schema<Vals>;
15
+ /**
16
+ * @type {ValueOpsFromValues<Vals>?}
17
+ */
18
+ change: ValueOpsFromValues<Vals> | null;
19
+ get(): Vals | undefined;
20
+ /**
21
+ * @param {DeltaValue<Vals>} other
22
+ * @return {boolean}
23
+ */
24
+ equals(other: DeltaValue<Vals>): boolean;
25
+ /**
26
+ * @param {DeltaValue<Vals>} other
27
+ */
28
+ [traits.EqualityTraitSymbol](other: DeltaValue<Vals>): boolean;
29
+ }
30
+ /**
31
+ * @template Vals
32
+ * @extends DeltaValue<Vals>
33
+ */
34
+ export class DeltaValueBuilder<Vals> extends DeltaValue<Vals> {
35
+ /**
36
+ * @param {Extract<Vals, AbstractDelta>} delta
37
+ */
38
+ modify(delta: Extract<Vals, AbstractDelta>): this;
39
+ /**
40
+ * @param {Vals} newVal
41
+ * @param {Vals|undefined} prevValue
42
+ * @param {import('./abstract.js').Attribution?} attribution
43
+ */
44
+ set(newVal: Vals, prevValue?: Vals | undefined, attribution?: import("./abstract.js").Attribution | null): this;
45
+ /**
46
+ * @param {Vals|undefined} prevValue
47
+ * @param {import('./abstract.js').Attribution?} attribution
48
+ */
49
+ delete(prevValue?: Vals | undefined, attribution?: import("./abstract.js").Attribution | null): this;
50
+ /**
51
+ *
52
+ * - insert vs delete ⇒ insert takes precedence
53
+ * - insert vs modify ⇒ insert takes precedence
54
+ * - insert vs insert ⇒ priority decides
55
+ * - delete vs modify ⇒ delete takes precedence
56
+ * - delete vs delete ⇒ current delete op is removed because item has already been deleted
57
+ * - modify vs modify ⇒ rebase using priority
58
+ *
59
+ * @param {DeltaValueBuilder<Vals>} other
60
+ * @param {boolean} priority
61
+ */
62
+ rebase(other: DeltaValueBuilder<Vals>, priority: boolean): void;
63
+ /**
64
+ * @param {DeltaValue<Vals>} other
65
+ */
66
+ apply(other: DeltaValue<Vals>): void;
67
+ /**
68
+ * @return {this}
69
+ */
70
+ clone(): this;
71
+ done(): DeltaValue<Vals>;
72
+ }
73
+ export function value<Vals = any>($vals?: s.Schema<Vals>): DeltaValueBuilder<Vals>;
74
+ export function $value<Vals extends unknown>($vals: s.Schema<Vals>): s.Schema<DeltaValue<Vals>>;
75
+ /**
76
+ * @type {s.Schema<DeltaValue<any>>}
77
+ */
78
+ export const $valueAny: s.Schema<DeltaValue<any>>;
79
+ export type ValueOpsFromValues<Vals extends unknown> = Vals extends AbstractDelta ? ops.MapInsertOp<Vals, ""> | ops.MapDeleteOp<Vals, ""> | ops.MapModifyOp<Extract<Vals, AbstractDelta>, ""> : ops.MapInsertOp<Vals, ""> | ops.MapDeleteOp<Vals, "">;
80
+ import { AbstractDelta } from './abstract.js';
81
+ import * as s from '../schema.js';
82
+ import * as traits from '../traits.js';
83
+ import * as ops from './ops.js';
84
+ //# sourceMappingURL=value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../delta/value.js"],"names":[],"mappings":"AAMA;;;GAGG;AAEH;;;GAGG;AACH,wBAHa,IAAI;IAIf;;OAEG;IACH,mBAFW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EASxB;IALC,sBAAkB;IAClB;;OAEG;IACH,QAFU,kBAAkB,CAAC,IAAI,CAAC,OAAC,CAEjB;IAGpB,wBAEC;IAED;;;OAGG;IACH,cAHW,UAAU,CAAC,IAAI,CAAC,GACf,OAAO,CAIlB;IAED;;OAEG;IACH,oCAFW,UAAU,CAAC,IAAI,CAAC,WAI1B;CACF;AAED;;;GAGG;AACH,+BAHa,IAAI;IAIf;;OAEG;IACH,cAFW,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,QAKtC;IAED;;;;OAIG;IACH,YAJW,IAAI,cACJ,IAAI,GAAC,SAAS,gBACd,OAAO,eAAe,EAAE,WAAW,OAAC,QAK9C;IAED;;;OAGG;IACH,mBAHW,IAAI,GAAC,SAAS,gBACd,OAAO,eAAe,EAAE,WAAW,OAAC,QAK9C;IAED;;;;;;;;;;;OAWG;IACH,cAHW,iBAAiB,CAAC,IAAI,CAAC,YACvB,OAAO,QAuBjB;IAED;;OAEG;IACH,aAFW,UAAU,CAAC,IAAI,CAAC,QAgB1B;IAED;;OAEG;IACH,SAFY,IAAI,CAQf;IAED,QACoB,UAAU,CAAC,IAAI,CAAC,CACnC;CACF;AAOM,sBAJO,IAAI,gBACP,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GACb,iBAAiB,CAAC,IAAI,CAAC,CAEuD;AAOnF,uBAJY,IAAI,yBACZ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GACb,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAEoE;AAE1G;;GAEG;AACH,wBAFU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAEe;+BAhK/B,IAAI,oBACV,IAAI,SAAS,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,GAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,GAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAC,aAAa,CAAC,EAAC,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,GAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC;8BAJjK,eAAe;mBAF1B,cAAc;wBADT,cAAc;qBAEjB,UAAU"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var _function = require('./function-09b8292c.cjs');
3
+ var _function = require('./function-e7d18feb.cjs');
4
4
 
5
5
  /**
6
6
  * Efficient diffs.
@@ -159,4 +159,4 @@ exports.simpleDiff = simpleDiff;
159
159
  exports.simpleDiffArray = simpleDiffArray;
160
160
  exports.simpleDiffString = simpleDiffString;
161
161
  exports.simpleDiffStringWithCursor = simpleDiffStringWithCursor;
162
- //# sourceMappingURL=diff-77c4cf8e.cjs.map
162
+ //# sourceMappingURL=diff-f0776c15.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-77c4cf8e.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} 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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"}
1
+ {"version":3,"file":"diff-f0776c15.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} 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 CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./function-09b8292c.cjs');
6
- var diff = require('./diff-77c4cf8e.cjs');
5
+ require('./function-e7d18feb.cjs');
6
+ var diff = require('./diff-f0776c15.cjs');
7
7
  require('./array-78849c95.cjs');
8
8
  require('./set-5b47859e.cjs');
9
- require('./object-491858d1.cjs');
9
+ require('./object-18980796.cjs');
10
10
  require('./traits.cjs');
11
11
 
12
12
 
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var pair = require('./pair-ab022bc3.cjs');
4
- var map = require('./map-0dabcc55.cjs');
4
+ var map = require('./map-24d263c0.cjs');
5
+ var schema = require('./schema.cjs');
5
6
 
6
7
  /* eslint-env browser */
7
8
 
@@ -22,6 +23,11 @@ const createElement = name => doc.createElement(name);
22
23
  */
23
24
  const createDocumentFragment = () => doc.createDocumentFragment();
24
25
 
26
+ /**
27
+ * @type {$.Schema<DocumentFragment>}
28
+ */
29
+ const $fragment = schema.$custom(el => el.nodeType === DOCUMENT_FRAGMENT_NODE);
30
+
25
31
  /**
26
32
  * @param {string} text
27
33
  * @return {Text}
@@ -136,6 +142,11 @@ const removeEventListeners = (node, listeners) => {
136
142
  const element = (name, attrs = [], children = []) =>
137
143
  append(setAttributes(createElement(name), attrs), children);
138
144
 
145
+ /**
146
+ * @type {$.Schema<Element>}
147
+ */
148
+ const $element = schema.$custom(el => el.nodeType === ELEMENT_NODE);
149
+
139
150
  /**
140
151
  * @param {number} width
141
152
  * @param {number} height
@@ -153,6 +164,11 @@ const canvas = (width, height) => {
153
164
  */
154
165
  const text = createTextNode;
155
166
 
167
+ /**
168
+ * @type {$.Schema<Text>}
169
+ */
170
+ const $text = schema.$custom(el => el.nodeType === TEXT_NODE);
171
+
156
172
  /**
157
173
  * @param {pair.Pair<string,string>} pair
158
174
  */
@@ -239,6 +255,11 @@ const DOCUMENT_NODE = doc.DOCUMENT_NODE;
239
255
  const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE;
240
256
  const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE;
241
257
 
258
+ /**
259
+ * @type {$.Schema<Node>}
260
+ */
261
+ const $node = schema.$custom(el => el.nodeType === DOCUMENT_NODE);
262
+
242
263
  /**
243
264
  * @param {any} node
244
265
  * @param {number} type
@@ -263,6 +284,7 @@ var dom = /*#__PURE__*/Object.freeze({
263
284
  doc: doc,
264
285
  createElement: createElement,
265
286
  createDocumentFragment: createDocumentFragment,
287
+ $fragment: $fragment,
266
288
  createTextNode: createTextNode,
267
289
  domParser: domParser,
268
290
  emitCustomEvent: emitCustomEvent,
@@ -276,8 +298,10 @@ var dom = /*#__PURE__*/Object.freeze({
276
298
  addEventListeners: addEventListeners,
277
299
  removeEventListeners: removeEventListeners,
278
300
  element: element,
301
+ $element: $element,
279
302
  canvas: canvas,
280
303
  text: text,
304
+ $text: $text,
281
305
  pairToStyleString: pairToStyleString,
282
306
  pairsToStyleString: pairsToStyleString,
283
307
  mapToStyleString: mapToStyleString,
@@ -296,10 +320,15 @@ var dom = /*#__PURE__*/Object.freeze({
296
320
  DOCUMENT_NODE: DOCUMENT_NODE,
297
321
  DOCUMENT_TYPE_NODE: DOCUMENT_TYPE_NODE,
298
322
  DOCUMENT_FRAGMENT_NODE: DOCUMENT_FRAGMENT_NODE,
323
+ $node: $node,
299
324
  checkNodeType: checkNodeType,
300
325
  isParentOf: isParentOf
301
326
  });
302
327
 
328
+ exports.$element = $element;
329
+ exports.$fragment = $fragment;
330
+ exports.$node = $node;
331
+ exports.$text = $text;
303
332
  exports.CDATA_SECTION_NODE = CDATA_SECTION_NODE;
304
333
  exports.COMMENT_NODE = COMMENT_NODE;
305
334
  exports.DOCUMENT_FRAGMENT_NODE = DOCUMENT_FRAGMENT_NODE;
@@ -339,4 +368,4 @@ exports.replaceWith = replaceWith;
339
368
  exports.setAttributes = setAttributes;
340
369
  exports.setAttributesMap = setAttributesMap;
341
370
  exports.text = text;
342
- //# sourceMappingURL=dom-16daf1a0.cjs.map
371
+ //# sourceMappingURL=dom-2b123630.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-2b123630.cjs","sources":["../dom.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Utility module to work with the DOM.\n *\n * @module dom\n */\n\nimport * as pair from './pair.js'\nimport * as map from './map.js'\nimport * as $ from './schema.js'\n\n/* c8 ignore start */\n/**\n * @type {Document}\n */\nexport const doc = /** @type {Document} */ (typeof document !== 'undefined' ? document : {})\n\n/**\n * @param {string} name\n * @return {HTMLElement}\n */\nexport const createElement = name => doc.createElement(name)\n\n/**\n * @return {DocumentFragment}\n */\nexport const createDocumentFragment = () => doc.createDocumentFragment()\n\n/**\n * @type {$.Schema<DocumentFragment>}\n */\nexport const $fragment = $.$custom(el => el.nodeType === DOCUMENT_FRAGMENT_NODE)\n\n/**\n * @param {string} text\n * @return {Text}\n */\nexport const createTextNode = text => doc.createTextNode(text)\n\nexport const domParser = /** @type {DOMParser} */ (typeof DOMParser !== 'undefined' ? new DOMParser() : null)\n\n/**\n * @param {HTMLElement} el\n * @param {string} name\n * @param {Object} opts\n */\nexport const emitCustomEvent = (el, name, opts) => el.dispatchEvent(new CustomEvent(name, opts))\n\n/**\n * @param {Element} el\n * @param {Array<pair.Pair<string,string|boolean>>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributes = (el, attrs) => {\n pair.forEach(attrs, (key, value) => {\n if (value === false) {\n el.removeAttribute(key)\n } else if (value === true) {\n el.setAttribute(key, '')\n } else {\n // @ts-ignore\n el.setAttribute(key, value)\n }\n })\n return el\n}\n\n/**\n * @param {Element} el\n * @param {Map<string, string>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributesMap = (el, attrs) => {\n attrs.forEach((value, key) => { el.setAttribute(key, value) })\n return el\n}\n\n/**\n * @param {Array<Node>|HTMLCollection} children\n * @return {DocumentFragment}\n */\nexport const fragment = children => {\n const fragment = createDocumentFragment()\n for (let i = 0; i < children.length; i++) {\n appendChild(fragment, children[i])\n }\n return fragment\n}\n\n/**\n * @param {Element} parent\n * @param {Array<Node>} nodes\n * @return {Element}\n */\nexport const append = (parent, nodes) => {\n appendChild(parent, fragment(nodes))\n return parent\n}\n\n/**\n * @param {HTMLElement} el\n */\nexport const remove = el => el.remove()\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const addEventListener = (el, name, f) => el.addEventListener(name, f)\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const removeEventListener = (el, name, f) => el.removeEventListener(name, f)\n\n/**\n * @param {Node} node\n * @param {Array<pair.Pair<string,EventListener>>} listeners\n * @return {Node}\n */\nexport const addEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => addEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {Node} node\n * @param {Array<pair.Pair<string,EventListener>>} listeners\n * @return {Node}\n */\nexport const removeEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => removeEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {string} name\n * @param {Array<pair.Pair<string,string>|pair.Pair<string,boolean>>} attrs Array of key-value pairs\n * @param {Array<Node>} children\n * @return {Element}\n */\nexport const element = (name, attrs = [], children = []) =>\n append(setAttributes(createElement(name), attrs), children)\n\n/**\n * @type {$.Schema<Element>}\n */\nexport const $element = $.$custom(el => el.nodeType === ELEMENT_NODE)\n\n/**\n * @param {number} width\n * @param {number} height\n */\nexport const canvas = (width, height) => {\n const c = /** @type {HTMLCanvasElement} */ (createElement('canvas'))\n c.height = height\n c.width = width\n return c\n}\n\n/**\n * @param {string} t\n * @return {Text}\n */\nexport const text = createTextNode\n\n/**\n * @type {$.Schema<Text>}\n */\nexport const $text = $.$custom(el => el.nodeType === TEXT_NODE)\n\n/**\n * @param {pair.Pair<string,string>} pair\n */\nexport const pairToStyleString = pair => `${pair.left}:${pair.right};`\n\n/**\n * @param {Array<pair.Pair<string,string>>} pairs\n * @return {string}\n */\nexport const pairsToStyleString = pairs => pairs.map(pairToStyleString).join('')\n\n/**\n * @param {Map<string,string>} m\n * @return {string}\n */\nexport const mapToStyleString = m => map.map(m, (value, key) => `${key}:${value};`).join('')\n\n/**\n * @todo should always query on a dom element\n *\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {HTMLElement | null}\n */\nexport const querySelector = (el, query) => el.querySelector(query)\n\n/**\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {NodeListOf<HTMLElement>}\n */\nexport const querySelectorAll = (el, query) => el.querySelectorAll(query)\n\n/**\n * @param {string} id\n * @return {HTMLElement}\n */\nexport const getElementById = id => /** @type {HTMLElement} */ (doc.getElementById(id))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nconst _parse = html => domParser.parseFromString(`<html><body>${html}</body></html>`, 'text/html').body\n\n/**\n * @param {string} html\n * @return {DocumentFragment}\n */\nexport const parseFragment = html => fragment(/** @type {any} */ (_parse(html).childNodes))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nexport const parseElement = html => /** @type HTMLElement */ (_parse(html).firstElementChild)\n\n/**\n * @param {HTMLElement} oldEl\n * @param {HTMLElement|DocumentFragment} newEl\n */\nexport const replaceWith = (oldEl, newEl) => oldEl.replaceWith(newEl)\n\n/**\n * @param {HTMLElement} parent\n * @param {HTMLElement} el\n * @param {Node|null} ref\n * @return {HTMLElement}\n */\nexport const insertBefore = (parent, el, ref) => parent.insertBefore(el, ref)\n\n/**\n * @param {Node} parent\n * @param {Node} child\n * @return {Node}\n */\nexport const appendChild = (parent, child) => parent.appendChild(child)\n\nexport const ELEMENT_NODE = doc.ELEMENT_NODE\nexport const TEXT_NODE = doc.TEXT_NODE\nexport const CDATA_SECTION_NODE = doc.CDATA_SECTION_NODE\nexport const COMMENT_NODE = doc.COMMENT_NODE\nexport const DOCUMENT_NODE = doc.DOCUMENT_NODE\nexport const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE\nexport const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE\n\n/**\n * @type {$.Schema<Node>}\n */\nexport const $node = $.$custom(el => el.nodeType === DOCUMENT_NODE)\n\n/**\n * @param {any} node\n * @param {number} type\n */\nexport const checkNodeType = (node, type) => node.nodeType === type\n\n/**\n * @param {Node} parent\n * @param {HTMLElement} child\n */\nexport const isParentOf = (parent, child) => {\n let p = child.parentNode\n while (p && p !== parent) {\n p = p.parentNode\n }\n return p === parent\n}\n/* c8 ignore stop */\n"],"names":["$.$custom","pair.forEach","map.map"],"mappings":"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"}
package/dist/dom.cjs CHANGED
@@ -3,11 +3,26 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./pair-ab022bc3.cjs');
6
- require('./map-0dabcc55.cjs');
7
- var dom = require('./dom-16daf1a0.cjs');
6
+ require('./map-24d263c0.cjs');
7
+ require('./schema.cjs');
8
+ var dom = require('./dom-2b123630.cjs');
9
+ require('./object-18980796.cjs');
10
+ require('./traits.cjs');
11
+ require('./array-78849c95.cjs');
12
+ require('./set-5b47859e.cjs');
13
+ require('./error-0c1f634f.cjs');
14
+ require('./environment-90227ead.cjs');
15
+ require('./string-fddc5f8b.cjs');
16
+ require('./conditions-f5c0c102.cjs');
17
+ require('./storage.cjs');
18
+ require('./function-e7d18feb.cjs');
8
19
 
9
20
 
10
21
 
22
+ exports.$element = dom.$element;
23
+ exports.$fragment = dom.$fragment;
24
+ exports.$node = dom.$node;
25
+ exports.$text = dom.$text;
11
26
  exports.CDATA_SECTION_NODE = dom.CDATA_SECTION_NODE;
12
27
  exports.COMMENT_NODE = dom.COMMENT_NODE;
13
28
  exports.DOCUMENT_FRAGMENT_NODE = dom.DOCUMENT_FRAGMENT_NODE;
package/dist/dom.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dom.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/dom.d.ts CHANGED
@@ -4,6 +4,10 @@
4
4
  export const doc: Document;
5
5
  export function createElement(name: string): HTMLElement;
6
6
  export function createDocumentFragment(): DocumentFragment;
7
+ /**
8
+ * @type {$.Schema<DocumentFragment>}
9
+ */
10
+ export const $fragment: $.Schema<DocumentFragment>;
7
11
  export function createTextNode(text: string): Text;
8
12
  export const domParser: DOMParser;
9
13
  export function emitCustomEvent(el: HTMLElement, name: string, opts: Object): boolean;
@@ -17,8 +21,16 @@ export function removeEventListener(el: EventTarget, name: string, f: EventListe
17
21
  export function addEventListeners(node: Node, listeners: Array<pair.Pair<string, EventListener>>): Node;
18
22
  export function removeEventListeners(node: Node, listeners: Array<pair.Pair<string, EventListener>>): Node;
19
23
  export function element(name: string, attrs?: Array<pair.Pair<string, string> | pair.Pair<string, boolean>>, children?: Array<Node>): Element;
24
+ /**
25
+ * @type {$.Schema<Element>}
26
+ */
27
+ export const $element: $.Schema<Element>;
20
28
  export function canvas(width: number, height: number): HTMLCanvasElement;
21
29
  export function text(text: string): Text;
30
+ /**
31
+ * @type {$.Schema<Text>}
32
+ */
33
+ export const $text: $.Schema<Text>;
22
34
  export function pairToStyleString(pair: pair.Pair<string, string>): string;
23
35
  export function pairsToStyleString(pairs: Array<pair.Pair<string, string>>): string;
24
36
  export function mapToStyleString(m: Map<string, string>): string;
@@ -37,7 +49,12 @@ export const COMMENT_NODE: 8;
37
49
  export const DOCUMENT_NODE: 9;
38
50
  export const DOCUMENT_TYPE_NODE: 10;
39
51
  export const DOCUMENT_FRAGMENT_NODE: 11;
52
+ /**
53
+ * @type {$.Schema<Node>}
54
+ */
55
+ export const $node: $.Schema<Node>;
40
56
  export function checkNodeType(node: any, type: number): boolean;
41
57
  export function isParentOf(parent: Node, child: HTMLElement): boolean;
58
+ import * as $ from './schema.js';
42
59
  import * as pair from './pair.js';
43
60
  //# sourceMappingURL=dom.d.ts.map
package/dist/dom.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../dom.js"],"names":[],"mappings":"AAYA;;GAEG;AACH,kBAFU,QAAQ,CAE0E;AAMrF,oCAHI,MAAM,GACL,WAAW,CAEqC;AAKrD,0CAFK,gBAAgB,CAE4C;AAMjE,qCAHI,MAAM,GACL,IAAI,CAE8C;AAE9D,wBAAoC,SAAS,CAAgE;AAOtG,oCAJI,WAAW,QACX,MAAM,QACN,MAAM,WAE+E;AAOzF,kCAJI,OAAO,SACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,GAAC,OAAO,CAAC,CAAC,GACtC,OAAO,CAclB;AAOM,qCAJI,OAAO,SACP,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAClB,OAAO,CAKlB;AAMM,mCAHI,KAAK,CAAC,IAAI,CAAC,GAAC,cAAc,GACzB,gBAAgB,CAQ3B;AAOM,+BAJI,OAAO,SACP,KAAK,CAAC,IAAI,CAAC,GACV,OAAO,CAKlB;AAKM,2BAFI,WAAW,QAEiB;AAOhC,qCAJI,WAAW,QACX,MAAM,KACN,aAAa,QAEqD;AAOtE,wCAJI,WAAW,QACX,MAAM,KACN,aAAa,QAE2D;AAO5E,wCAJI,IAAI,aACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAKf;AAOM,2CAJI,IAAI,aACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAKf;AAQM,8BALI,MAAM,UACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC,aACzD,KAAK,CAAC,IAAI,CAAC,GACV,OAAO,CAG0C;AAMtD,8BAHI,MAAM,UACN,MAAM,qBAOhB;AAvHM,2BAHI,MAAM,GACL,IAAI,CAE8C;AAkIvD,wCAFI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,UAEmC;AAM/D,0CAHI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC,GAC9B,MAAM,CAE8D;AAMzE,oCAHI,GAAG,CAAC,MAAM,EAAC,MAAM,CAAC,GACjB,MAAM,CAE0E;AASrF,kCAJI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,WAAW,GAAG,IAAI,CAEqC;AAO5D,qCAJI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,UAAU,CAAC,WAAW,CAAC,CAEsC;AAMlE,mCAHI,MAAM,GACL,WAAW,CAEgE;AAYhF,oCAHI,MAAM,GACL,gBAAgB,CAE+D;AAMpF,mCAHI,MAAM,GACL,WAAW,CAEsE;AAMtF,mCAHI,WAAW,SACX,WAAW,GAAC,gBAAgB,QAE8B;AAQ9D,qCALI,WAAW,MACX,WAAW,OACX,IAAI,GAAC,IAAI,GACR,WAAW,CAEsD;AAOtE,oCAJI,IAAI,SACJ,IAAI,GACH,IAAI,CAEuD;AAEvE,6BAA4C;AAC5C,0BAAsC;AACtC,mCAAwD;AACxD,6BAA4C;AAC5C,8BAA8C;AAC9C,oCAAwD;AACxD,wCAAgE;AAMzD,oCAHI,GAAG,QACH,MAAM,WAEkD;AAM5D,mCAHI,IAAI,SACJ,WAAW,WAQrB;sBA7PqB,WAAW"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../dom.js"],"names":[],"mappings":"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"}
package/dist/ecdsa.cjs CHANGED
@@ -49,8 +49,8 @@ const defaultSignAlgorithm = {
49
49
  * Sign a message
50
50
  *
51
51
  * @param {CryptoKey} key
52
- * @param {Uint8Array} data
53
- * @return {PromiseLike<Uint8Array>} signature
52
+ * @param {Uint8Array<ArrayBuffer>} data
53
+ * @return {PromiseLike<Uint8Array<ArrayBuffer>>} signature
54
54
  */
55
55
  const sign = (key, data) =>
56
56
  webcrypto__namespace.subtle.sign(
@@ -65,8 +65,8 @@ const sign = (key, data) =>
65
65
  * Sign a message
66
66
  *
67
67
  * @param {CryptoKey} key
68
- * @param {Uint8Array} signature
69
- * @param {Uint8Array} data
68
+ * @param {Uint8Array<ArrayBuffer>} signature
69
+ * @param {Uint8Array<ArrayBuffer>} data
70
70
  * @return {PromiseLike<boolean>} signature
71
71
  */
72
72
  const verify = (key, signature, data) =>
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsa.cjs","sources":["../crypto/ecdsa.js"],"sourcesContent":["/**\n * ECDSA is an asymmetric key for signing\n */\n\nimport * as webcrypto from 'lib0/webcrypto'\nexport { exportKeyJwk, exportKeyRaw } from './common.js'\n\n/**\n * @typedef {Array<'sign'|'verify'>} Usages\n */\n\n/**\n * @type {Usages}\n */\nconst defaultUsages = ['sign', 'verify']\n\nconst defaultSignAlgorithm = {\n name: 'ECDSA',\n hash: 'SHA-384'\n}\n\n/**\n * @experimental The API is not final!\n *\n * Sign a message\n *\n * @param {CryptoKey} key\n * @param {Uint8Array} data\n * @return {PromiseLike<Uint8Array>} signature\n */\nexport const sign = (key, data) =>\n webcrypto.subtle.sign(\n defaultSignAlgorithm,\n key,\n data\n ).then(signature => new Uint8Array(signature))\n\n/**\n * @experimental The API is not final!\n *\n * Sign a message\n *\n * @param {CryptoKey} key\n * @param {Uint8Array} signature\n * @param {Uint8Array} data\n * @return {PromiseLike<boolean>} signature\n */\nexport const verify = (key, signature, data) =>\n webcrypto.subtle.verify(\n defaultSignAlgorithm,\n key,\n signature,\n data\n )\n\nconst defaultKeyAlgorithm = {\n name: 'ECDSA',\n namedCurve: 'P-384'\n}\n\n/* c8 ignore next */\n/**\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const generateKeyPair = ({ extractable = false, usages = defaultUsages } = {}) =>\n webcrypto.subtle.generateKey(\n defaultKeyAlgorithm,\n extractable,\n usages\n )\n\n/**\n * @param {any} jwk\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const importKeyJwk = (jwk, { extractable = false, usages } = {}) => {\n if (usages == null) {\n /* c8 ignore next 2 */\n usages = jwk.key_ops || defaultUsages\n }\n return webcrypto.subtle.importKey('jwk', jwk, defaultKeyAlgorithm, extractable, /** @type {Usages} */ (usages))\n}\n\n/**\n * Only suited for importing public keys.\n *\n * @param {any} raw\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const importKeyRaw = (raw, { extractable = false, usages = defaultUsages } = {}) =>\n webcrypto.subtle.importKey('raw', raw, defaultKeyAlgorithm, extractable, usages)\n"],"names":["webcrypto"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAC;AACxC;AACA,MAAM,oBAAoB,GAAG;AAC7B,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,IAAI,EAAE,SAAS;AACjB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI;AAC9B,EAAEA,oBAAS,CAAC,MAAM,CAAC,IAAI;AACvB,IAAI,oBAAoB;AACxB,IAAI,GAAG;AACP,IAAI,IAAI;AACR,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,UAAU,CAAC,SAAS,CAAC,EAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI;AAC3C,EAAEA,oBAAS,CAAC,MAAM,CAAC,MAAM;AACzB,IAAI,oBAAoB;AACxB,IAAI,GAAG;AACP,IAAI,SAAS;AACb,IAAI,IAAI;AACR,IAAG;AACH;AACA,MAAM,mBAAmB,GAAG;AAC5B,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,UAAU,EAAE,OAAO;AACrB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,EAAE;AACpF,EAAEA,oBAAS,CAAC,MAAM,CAAC,WAAW;AAC9B,IAAI,mBAAmB;AACvB,IAAI,WAAW;AACf,IAAI,MAAM;AACV,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC3E,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE;AACtB;AACA,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,cAAa;AACzC,GAAG;AACH,EAAE,OAAOA,oBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,yBAAyB,MAAM,EAAE;AACjH,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,EAAE;AACtF,EAAEA,oBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM;;;;;;;;;;"}
1
+ {"version":3,"file":"ecdsa.cjs","sources":["../crypto/ecdsa.js"],"sourcesContent":["/**\n * ECDSA is an asymmetric key for signing\n */\n\nimport * as webcrypto from 'lib0/webcrypto'\nexport { exportKeyJwk, exportKeyRaw } from './common.js'\n\n/**\n * @typedef {Array<'sign'|'verify'>} Usages\n */\n\n/**\n * @type {Usages}\n */\nconst defaultUsages = ['sign', 'verify']\n\nconst defaultSignAlgorithm = {\n name: 'ECDSA',\n hash: 'SHA-384'\n}\n\n/**\n * @experimental The API is not final!\n *\n * Sign a message\n *\n * @param {CryptoKey} key\n * @param {Uint8Array<ArrayBuffer>} data\n * @return {PromiseLike<Uint8Array<ArrayBuffer>>} signature\n */\nexport const sign = (key, data) =>\n webcrypto.subtle.sign(\n defaultSignAlgorithm,\n key,\n data\n ).then(signature => new Uint8Array(signature))\n\n/**\n * @experimental The API is not final!\n *\n * Sign a message\n *\n * @param {CryptoKey} key\n * @param {Uint8Array<ArrayBuffer>} signature\n * @param {Uint8Array<ArrayBuffer>} data\n * @return {PromiseLike<boolean>} signature\n */\nexport const verify = (key, signature, data) =>\n webcrypto.subtle.verify(\n defaultSignAlgorithm,\n key,\n signature,\n data\n )\n\nconst defaultKeyAlgorithm = {\n name: 'ECDSA',\n namedCurve: 'P-384'\n}\n\n/* c8 ignore next */\n/**\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const generateKeyPair = ({ extractable = false, usages = defaultUsages } = {}) =>\n webcrypto.subtle.generateKey(\n defaultKeyAlgorithm,\n extractable,\n usages\n )\n\n/**\n * @param {any} jwk\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const importKeyJwk = (jwk, { extractable = false, usages } = {}) => {\n if (usages == null) {\n /* c8 ignore next 2 */\n usages = jwk.key_ops || defaultUsages\n }\n return webcrypto.subtle.importKey('jwk', jwk, defaultKeyAlgorithm, extractable, /** @type {Usages} */ (usages))\n}\n\n/**\n * Only suited for importing public keys.\n *\n * @param {any} raw\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const importKeyRaw = (raw, { extractable = false, usages = defaultUsages } = {}) =>\n webcrypto.subtle.importKey('raw', raw, defaultKeyAlgorithm, extractable, usages)\n"],"names":["webcrypto"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAC;AACxC;AACA,MAAM,oBAAoB,GAAG;AAC7B,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,IAAI,EAAE,SAAS;AACjB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI;AAC9B,EAAEA,oBAAS,CAAC,MAAM,CAAC,IAAI;AACvB,IAAI,oBAAoB;AACxB,IAAI,GAAG;AACP,IAAI,IAAI;AACR,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,UAAU,CAAC,SAAS,CAAC,EAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI;AAC3C,EAAEA,oBAAS,CAAC,MAAM,CAAC,MAAM;AACzB,IAAI,oBAAoB;AACxB,IAAI,GAAG;AACP,IAAI,SAAS;AACb,IAAI,IAAI;AACR,IAAG;AACH;AACA,MAAM,mBAAmB,GAAG;AAC5B,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,UAAU,EAAE,OAAO;AACrB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,EAAE;AACpF,EAAEA,oBAAS,CAAC,MAAM,CAAC,WAAW;AAC9B,IAAI,mBAAmB;AACvB,IAAI,WAAW;AACf,IAAI,MAAM;AACV,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC3E,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE;AACtB;AACA,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,cAAa;AACzC,GAAG;AACH,EAAE,OAAOA,oBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,yBAAyB,MAAM,EAAE;AACjH,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,EAAE;AACtF,EAAEA,oBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM;;;;;;;;;;"}