@livestore/common 0.3.0-dev.2 → 0.3.0-dev.22

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 (328) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixture.d.ts +21 -21
  3. package/dist/adapter-types.d.ts +97 -53
  4. package/dist/adapter-types.d.ts.map +1 -1
  5. package/dist/adapter-types.js +17 -0
  6. package/dist/adapter-types.js.map +1 -1
  7. package/dist/bounded-collections.d.ts +1 -1
  8. package/dist/bounded-collections.d.ts.map +1 -1
  9. package/dist/debug-info.d.ts +1 -1
  10. package/dist/debug-info.d.ts.map +1 -1
  11. package/dist/derived-mutations.d.ts +5 -5
  12. package/dist/derived-mutations.d.ts.map +1 -1
  13. package/dist/derived-mutations.js +3 -3
  14. package/dist/derived-mutations.js.map +1 -1
  15. package/dist/derived-mutations.test.js.map +1 -1
  16. package/dist/devtools/devtools-messages-client-session.d.ts +389 -0
  17. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -0
  18. package/dist/devtools/devtools-messages-client-session.js +96 -0
  19. package/dist/devtools/devtools-messages-client-session.js.map +1 -0
  20. package/dist/devtools/devtools-messages-common.d.ts +61 -0
  21. package/dist/devtools/devtools-messages-common.d.ts.map +1 -0
  22. package/dist/devtools/devtools-messages-common.js +54 -0
  23. package/dist/devtools/devtools-messages-common.js.map +1 -0
  24. package/dist/devtools/devtools-messages-leader.d.ts +393 -0
  25. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -0
  26. package/dist/devtools/devtools-messages-leader.js +148 -0
  27. package/dist/devtools/devtools-messages-leader.js.map +1 -0
  28. package/dist/devtools/devtools-messages.d.ts +3 -592
  29. package/dist/devtools/devtools-messages.d.ts.map +1 -1
  30. package/dist/devtools/devtools-messages.js +3 -171
  31. package/dist/devtools/devtools-messages.js.map +1 -1
  32. package/dist/devtools/devtools-sessioninfo.d.ts +28 -0
  33. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -0
  34. package/dist/devtools/devtools-sessioninfo.js +34 -0
  35. package/dist/devtools/devtools-sessioninfo.js.map +1 -0
  36. package/dist/devtools/mod.d.ts +39 -0
  37. package/dist/devtools/mod.d.ts.map +1 -0
  38. package/dist/devtools/mod.js +27 -0
  39. package/dist/devtools/mod.js.map +1 -0
  40. package/dist/index.d.ts +2 -6
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +2 -2
  43. package/dist/index.js.map +1 -1
  44. package/dist/init-singleton-tables.d.ts +2 -2
  45. package/dist/init-singleton-tables.d.ts.map +1 -1
  46. package/dist/init-singleton-tables.js.map +1 -1
  47. package/dist/leader-thread/LeaderSyncProcessor.d.ts +39 -0
  48. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -0
  49. package/dist/leader-thread/LeaderSyncProcessor.js +527 -0
  50. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -0
  51. package/dist/leader-thread/apply-mutation.d.ts +5 -2
  52. package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
  53. package/dist/leader-thread/apply-mutation.js +55 -35
  54. package/dist/leader-thread/apply-mutation.js.map +1 -1
  55. package/dist/leader-thread/connection.d.ts +34 -6
  56. package/dist/leader-thread/connection.d.ts.map +1 -1
  57. package/dist/leader-thread/connection.js +22 -7
  58. package/dist/leader-thread/connection.js.map +1 -1
  59. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
  60. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  61. package/dist/leader-thread/leader-worker-devtools.js +147 -124
  62. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  63. package/dist/leader-thread/make-leader-thread-layer.d.ts +12 -11
  64. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  65. package/dist/leader-thread/make-leader-thread-layer.js +55 -18
  66. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  67. package/dist/leader-thread/mutationlog.d.ts +6 -19
  68. package/dist/leader-thread/mutationlog.d.ts.map +1 -1
  69. package/dist/leader-thread/mutationlog.js +12 -9
  70. package/dist/leader-thread/mutationlog.js.map +1 -1
  71. package/dist/leader-thread/pull-queue-set.d.ts +3 -3
  72. package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
  73. package/dist/leader-thread/pull-queue-set.js +9 -0
  74. package/dist/leader-thread/pull-queue-set.js.map +1 -1
  75. package/dist/leader-thread/recreate-db.d.ts +4 -2
  76. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  77. package/dist/leader-thread/recreate-db.js +32 -21
  78. package/dist/leader-thread/recreate-db.js.map +1 -1
  79. package/dist/leader-thread/shutdown-channel.d.ts +2 -5
  80. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  81. package/dist/leader-thread/shutdown-channel.js +2 -4
  82. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  83. package/dist/leader-thread/types.d.ts +58 -26
  84. package/dist/leader-thread/types.d.ts.map +1 -1
  85. package/dist/leader-thread/types.js +1 -3
  86. package/dist/leader-thread/types.js.map +1 -1
  87. package/dist/mutation.d.ts +9 -2
  88. package/dist/mutation.d.ts.map +1 -1
  89. package/dist/mutation.js +5 -5
  90. package/dist/mutation.js.map +1 -1
  91. package/dist/otel.d.ts +2 -0
  92. package/dist/otel.d.ts.map +1 -1
  93. package/dist/otel.js +5 -0
  94. package/dist/otel.js.map +1 -1
  95. package/dist/query-builder/api.d.ts +3 -3
  96. package/dist/query-builder/api.d.ts.map +1 -1
  97. package/dist/query-builder/impl.d.ts +4 -4
  98. package/dist/query-builder/impl.d.ts.map +1 -1
  99. package/dist/query-builder/impl.js.map +1 -1
  100. package/dist/query-builder/impl.test.js +16 -1
  101. package/dist/query-builder/impl.test.js.map +1 -1
  102. package/dist/query-info.d.ts +3 -3
  103. package/dist/query-info.d.ts.map +1 -1
  104. package/dist/rehydrate-from-mutationlog.d.ts +5 -5
  105. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
  106. package/dist/rehydrate-from-mutationlog.js +23 -27
  107. package/dist/rehydrate-from-mutationlog.js.map +1 -1
  108. package/dist/schema/EventId.d.ts +27 -16
  109. package/dist/schema/EventId.d.ts.map +1 -1
  110. package/dist/schema/EventId.js +36 -11
  111. package/dist/schema/EventId.js.map +1 -1
  112. package/dist/schema/EventId.test.d.ts +2 -0
  113. package/dist/schema/EventId.test.d.ts.map +1 -0
  114. package/dist/schema/EventId.test.js +11 -0
  115. package/dist/schema/EventId.test.js.map +1 -0
  116. package/dist/schema/MutationEvent.d.ts +76 -82
  117. package/dist/schema/MutationEvent.d.ts.map +1 -1
  118. package/dist/schema/MutationEvent.js +53 -20
  119. package/dist/schema/MutationEvent.js.map +1 -1
  120. package/dist/schema/db-schema/ast/sqlite.d.ts +69 -0
  121. package/dist/schema/db-schema/ast/sqlite.d.ts.map +1 -0
  122. package/dist/schema/db-schema/ast/sqlite.js +71 -0
  123. package/dist/schema/db-schema/ast/sqlite.js.map +1 -0
  124. package/dist/schema/db-schema/ast/validate.d.ts +3 -0
  125. package/dist/schema/db-schema/ast/validate.d.ts.map +1 -0
  126. package/dist/schema/db-schema/ast/validate.js +12 -0
  127. package/dist/schema/db-schema/ast/validate.js.map +1 -0
  128. package/dist/schema/db-schema/dsl/field-defs.d.ts +90 -0
  129. package/dist/schema/db-schema/dsl/field-defs.d.ts.map +1 -0
  130. package/dist/schema/db-schema/dsl/field-defs.js +87 -0
  131. package/dist/schema/db-schema/dsl/field-defs.js.map +1 -0
  132. package/dist/schema/db-schema/dsl/field-defs.test.d.ts +2 -0
  133. package/dist/schema/db-schema/dsl/field-defs.test.d.ts.map +1 -0
  134. package/dist/schema/db-schema/dsl/field-defs.test.js +29 -0
  135. package/dist/schema/db-schema/dsl/field-defs.test.js.map +1 -0
  136. package/dist/schema/db-schema/dsl/mod.d.ts +88 -0
  137. package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -0
  138. package/dist/schema/db-schema/dsl/mod.js +35 -0
  139. package/dist/schema/db-schema/dsl/mod.js.map +1 -0
  140. package/dist/schema/db-schema/hash.d.ts +2 -0
  141. package/dist/schema/db-schema/hash.d.ts.map +1 -0
  142. package/dist/schema/db-schema/hash.js +14 -0
  143. package/dist/schema/db-schema/hash.js.map +1 -0
  144. package/dist/schema/db-schema/mod.d.ts +3 -0
  145. package/dist/schema/db-schema/mod.d.ts.map +1 -0
  146. package/dist/schema/db-schema/mod.js +3 -0
  147. package/dist/schema/db-schema/mod.js.map +1 -0
  148. package/dist/schema/mod.d.ts +1 -0
  149. package/dist/schema/mod.d.ts.map +1 -1
  150. package/dist/schema/mod.js +1 -0
  151. package/dist/schema/mod.js.map +1 -1
  152. package/dist/schema/mutations.d.ts +8 -9
  153. package/dist/schema/mutations.d.ts.map +1 -1
  154. package/dist/schema/mutations.js +2 -2
  155. package/dist/schema/mutations.js.map +1 -1
  156. package/dist/schema/schema-helpers.d.ts.map +1 -1
  157. package/dist/schema/schema-helpers.js +1 -1
  158. package/dist/schema/schema-helpers.js.map +1 -1
  159. package/dist/schema/schema.d.ts +5 -2
  160. package/dist/schema/schema.d.ts.map +1 -1
  161. package/dist/schema/schema.js +20 -9
  162. package/dist/schema/schema.js.map +1 -1
  163. package/dist/schema/system-tables.d.ts +65 -47
  164. package/dist/schema/system-tables.d.ts.map +1 -1
  165. package/dist/schema/system-tables.js +24 -13
  166. package/dist/schema/system-tables.js.map +1 -1
  167. package/dist/schema/table-def.d.ts +18 -24
  168. package/dist/schema/table-def.d.ts.map +1 -1
  169. package/dist/schema/table-def.js +3 -4
  170. package/dist/schema/table-def.js.map +1 -1
  171. package/dist/schema-management/common.d.ts +3 -3
  172. package/dist/schema-management/common.d.ts.map +1 -1
  173. package/dist/schema-management/common.js.map +1 -1
  174. package/dist/schema-management/migrations.d.ts +6 -6
  175. package/dist/schema-management/migrations.d.ts.map +1 -1
  176. package/dist/schema-management/migrations.js +13 -8
  177. package/dist/schema-management/migrations.js.map +1 -1
  178. package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -1
  179. package/dist/schema-management/validate-mutation-defs.js +2 -2
  180. package/dist/schema-management/validate-mutation-defs.js.map +1 -1
  181. package/dist/sql-queries/misc.d.ts.map +1 -1
  182. package/dist/sql-queries/sql-queries.d.ts +1 -1
  183. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  184. package/dist/sql-queries/sql-queries.js.map +1 -1
  185. package/dist/sql-queries/sql-query-builder.d.ts +1 -1
  186. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  187. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  188. package/dist/sql-queries/types.d.ts +2 -1
  189. package/dist/sql-queries/types.d.ts.map +1 -1
  190. package/dist/sql-queries/types.js.map +1 -1
  191. package/dist/sync/{client-session-sync-processor.d.ts → ClientSessionSyncProcessor.d.ts} +25 -14
  192. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -0
  193. package/dist/sync/ClientSessionSyncProcessor.js +199 -0
  194. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -0
  195. package/dist/sync/index.d.ts +1 -1
  196. package/dist/sync/index.d.ts.map +1 -1
  197. package/dist/sync/index.js +1 -1
  198. package/dist/sync/index.js.map +1 -1
  199. package/dist/sync/next/compact-events.d.ts.map +1 -1
  200. package/dist/sync/next/facts.d.ts.map +1 -1
  201. package/dist/sync/next/facts.js +1 -1
  202. package/dist/sync/next/facts.js.map +1 -1
  203. package/dist/sync/next/history-dag-common.d.ts +3 -4
  204. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  205. package/dist/sync/next/history-dag-common.js +3 -1
  206. package/dist/sync/next/history-dag-common.js.map +1 -1
  207. package/dist/sync/next/history-dag.d.ts.map +1 -1
  208. package/dist/sync/next/history-dag.js +1 -1
  209. package/dist/sync/next/history-dag.js.map +1 -1
  210. package/dist/sync/next/rebase-events.d.ts +6 -4
  211. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  212. package/dist/sync/next/rebase-events.js +6 -3
  213. package/dist/sync/next/rebase-events.js.map +1 -1
  214. package/dist/sync/next/test/compact-events.calculator.test.js +12 -12
  215. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
  216. package/dist/sync/next/test/compact-events.test.js +43 -43
  217. package/dist/sync/next/test/compact-events.test.js.map +1 -1
  218. package/dist/sync/next/test/mutation-fixtures.d.ts +4 -4
  219. package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
  220. package/dist/sync/next/test/mutation-fixtures.js +12 -16
  221. package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
  222. package/dist/sync/sync.d.ts +31 -16
  223. package/dist/sync/sync.d.ts.map +1 -1
  224. package/dist/sync/sync.js +7 -3
  225. package/dist/sync/sync.js.map +1 -1
  226. package/dist/sync/syncstate.d.ts +177 -44
  227. package/dist/sync/syncstate.d.ts.map +1 -1
  228. package/dist/sync/syncstate.js +188 -56
  229. package/dist/sync/syncstate.js.map +1 -1
  230. package/dist/sync/syncstate.test.js +162 -92
  231. package/dist/sync/syncstate.test.js.map +1 -1
  232. package/dist/sync/validate-push-payload.d.ts +2 -2
  233. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  234. package/dist/sync/validate-push-payload.js +2 -2
  235. package/dist/sync/validate-push-payload.js.map +1 -1
  236. package/dist/util.d.ts +2 -2
  237. package/dist/util.d.ts.map +1 -1
  238. package/dist/version.d.ts +1 -1
  239. package/dist/version.d.ts.map +1 -1
  240. package/dist/version.js +1 -1
  241. package/dist/version.js.map +1 -1
  242. package/package.json +6 -6
  243. package/src/adapter-types.ts +80 -56
  244. package/src/derived-mutations.test.ts +1 -1
  245. package/src/derived-mutations.ts +13 -9
  246. package/src/devtools/devtools-messages-client-session.ts +141 -0
  247. package/src/devtools/devtools-messages-common.ts +106 -0
  248. package/src/devtools/devtools-messages-leader.ts +192 -0
  249. package/src/devtools/devtools-messages.ts +3 -243
  250. package/src/devtools/devtools-sessioninfo.ts +99 -0
  251. package/src/devtools/mod.ts +36 -0
  252. package/src/index.ts +2 -8
  253. package/src/init-singleton-tables.ts +2 -2
  254. package/src/leader-thread/LeaderSyncProcessor.ts +833 -0
  255. package/src/leader-thread/apply-mutation.ts +87 -43
  256. package/src/leader-thread/connection.ts +54 -9
  257. package/src/leader-thread/leader-worker-devtools.ts +199 -174
  258. package/src/leader-thread/make-leader-thread-layer.ts +89 -35
  259. package/src/leader-thread/mutationlog.ts +20 -14
  260. package/src/leader-thread/pull-queue-set.ts +10 -1
  261. package/src/leader-thread/recreate-db.ts +38 -25
  262. package/src/leader-thread/shutdown-channel.ts +2 -4
  263. package/src/leader-thread/types.ts +68 -34
  264. package/src/mutation.ts +17 -7
  265. package/src/otel.ts +8 -0
  266. package/src/query-builder/api.ts +4 -4
  267. package/src/query-builder/impl.test.ts +22 -1
  268. package/src/query-builder/impl.ts +2 -2
  269. package/src/query-info.ts +3 -3
  270. package/src/rehydrate-from-mutationlog.ts +28 -34
  271. package/src/schema/EventId.test.ts +12 -0
  272. package/src/schema/EventId.ts +49 -15
  273. package/src/schema/MutationEvent.ts +78 -31
  274. package/src/schema/db-schema/ast/sqlite.ts +142 -0
  275. package/src/schema/db-schema/ast/validate.ts +13 -0
  276. package/src/schema/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +206 -0
  277. package/src/schema/db-schema/dsl/field-defs.test.ts +35 -0
  278. package/src/schema/db-schema/dsl/field-defs.ts +242 -0
  279. package/src/schema/db-schema/dsl/mod.ts +195 -0
  280. package/src/schema/db-schema/hash.ts +14 -0
  281. package/src/schema/db-schema/mod.ts +2 -0
  282. package/src/schema/mod.ts +1 -0
  283. package/src/schema/mutations.ts +10 -20
  284. package/src/schema/schema-helpers.ts +1 -1
  285. package/src/schema/schema.ts +22 -10
  286. package/src/schema/system-tables.ts +24 -13
  287. package/src/schema/table-def.ts +17 -17
  288. package/src/schema-management/common.ts +3 -3
  289. package/src/schema-management/migrations.ts +19 -15
  290. package/src/schema-management/validate-mutation-defs.ts +2 -2
  291. package/src/sql-queries/sql-queries.ts +1 -1
  292. package/src/sql-queries/sql-query-builder.ts +1 -2
  293. package/src/sql-queries/types.ts +3 -1
  294. package/src/sync/ClientSessionSyncProcessor.ts +313 -0
  295. package/src/sync/index.ts +1 -1
  296. package/src/sync/next/facts.ts +1 -1
  297. package/src/sync/next/history-dag-common.ts +5 -1
  298. package/src/sync/next/history-dag.ts +1 -1
  299. package/src/sync/next/rebase-events.ts +13 -7
  300. package/src/sync/next/test/compact-events.calculator.test.ts +12 -12
  301. package/src/sync/next/test/compact-events.test.ts +43 -43
  302. package/src/sync/next/test/mutation-fixtures.ts +16 -19
  303. package/src/sync/sync.ts +26 -10
  304. package/src/sync/syncstate.test.ts +178 -98
  305. package/src/sync/syncstate.ts +170 -83
  306. package/src/sync/validate-push-payload.ts +7 -4
  307. package/src/version.ts +1 -1
  308. package/tmp/pack.tgz +0 -0
  309. package/tsconfig.json +1 -1
  310. package/dist/devtools/devtools-bridge.d.ts +0 -12
  311. package/dist/devtools/devtools-bridge.d.ts.map +0 -1
  312. package/dist/devtools/devtools-bridge.js +0 -2
  313. package/dist/devtools/devtools-bridge.js.map +0 -1
  314. package/dist/devtools/index.d.ts +0 -42
  315. package/dist/devtools/index.d.ts.map +0 -1
  316. package/dist/devtools/index.js +0 -48
  317. package/dist/devtools/index.js.map +0 -1
  318. package/dist/leader-thread/leader-sync-processor.d.ts +0 -47
  319. package/dist/leader-thread/leader-sync-processor.d.ts.map +0 -1
  320. package/dist/leader-thread/leader-sync-processor.js +0 -422
  321. package/dist/leader-thread/leader-sync-processor.js.map +0 -1
  322. package/dist/sync/client-session-sync-processor.d.ts.map +0 -1
  323. package/dist/sync/client-session-sync-processor.js +0 -131
  324. package/dist/sync/client-session-sync-processor.js.map +0 -1
  325. package/src/devtools/devtools-bridge.ts +0 -13
  326. package/src/devtools/index.ts +0 -48
  327. package/src/leader-thread/leader-sync-processor.ts +0 -666
  328. package/src/sync/client-session-sync-processor.ts +0 -207
@@ -1 +1 @@
1
- {"version":3,"file":"syncstate.js","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncstate.js","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"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"}
@@ -4,20 +4,17 @@ import * as EventId from '../schema/EventId.js';
4
4
  import * as MutationEvent from '../schema/MutationEvent.js';
5
5
  import * as SyncState from './syncstate.js';
6
6
  class TestEvent extends MutationEvent.EncodedWithMeta {
7
- id;
8
- parentId;
9
7
  payload;
10
8
  isLocal;
11
9
  constructor(id, parentId, payload, isLocal) {
12
10
  super({
13
- id,
14
- parentId,
11
+ id: EventId.make(id),
12
+ parentId: EventId.make(parentId),
15
13
  mutation: 'a',
16
14
  args: payload,
17
- meta: {},
15
+ clientId: 'static-local-id',
16
+ sessionId: undefined,
18
17
  });
19
- this.id = id;
20
- this.parentId = parentId;
21
18
  this.payload = payload;
22
19
  this.isLocal = isLocal;
23
20
  }
@@ -25,13 +22,13 @@ class TestEvent extends MutationEvent.EncodedWithMeta {
25
22
  return this.rebase(parentId, this.isLocal);
26
23
  };
27
24
  }
28
- const e_r_1 = new TestEvent({ global: -1, local: 1 }, EventId.ROOT, 'a', true);
29
- const e_0_0 = new TestEvent({ global: 0, local: 0 }, EventId.ROOT, 'a', false);
30
- const e_0_1 = new TestEvent({ global: 0, local: 1 }, e_0_0.id, 'a', true);
31
- const e_0_2 = new TestEvent({ global: 0, local: 2 }, e_0_1.id, 'a', true);
32
- const e_0_3 = new TestEvent({ global: 0, local: 3 }, e_0_2.id, 'a', true);
33
- const e_1_0 = new TestEvent({ global: 1, local: 0 }, e_0_0.id, 'a', false);
34
- const e_1_1 = new TestEvent({ global: 1, local: 1 }, e_1_0.id, 'a', true);
25
+ const e_r_1 = new TestEvent({ global: -1, client: 1 }, EventId.ROOT, 'a', true);
26
+ const e_0_0 = new TestEvent({ global: 0, client: 0 }, EventId.ROOT, 'a', false);
27
+ const e_0_1 = new TestEvent({ global: 0, client: 1 }, e_0_0.id, 'a', true);
28
+ const e_0_2 = new TestEvent({ global: 0, client: 2 }, e_0_1.id, 'a', true);
29
+ const e_0_3 = new TestEvent({ global: 0, client: 3 }, e_0_2.id, 'a', true);
30
+ const e_1_0 = new TestEvent({ global: 1, client: 0 }, e_0_0.id, 'a', false);
31
+ const e_1_1 = new TestEvent({ global: 1, client: 1 }, e_1_0.id, 'a', true);
35
32
  const isEqualEvent = MutationEvent.isEqualEncoded;
36
33
  const isLocalEvent = (event) => event.isLocal;
37
34
  describe('syncstate', () => {
@@ -39,12 +36,12 @@ describe('syncstate', () => {
39
36
  const run = ({ syncState, payload, ignoreLocalEvents = false, }) => SyncState.updateSyncState({ syncState, payload, isLocalEvent, isEqualEvent, ignoreLocalEvents });
40
37
  describe.each([{ trimRollbackUntil: false }, { trimRollbackUntil: true }])('upstream-rebase (trimRollbackUntil: $trimRollbackUntil)', ({ trimRollbackUntil }) => {
41
38
  it('should rollback until start', () => {
42
- const syncState = {
39
+ const syncState = new SyncState.SyncState({
43
40
  pending: [e_1_0],
44
41
  rollbackTail: [e_0_0, e_0_1],
45
42
  upstreamHead: EventId.ROOT,
46
43
  localHead: e_1_0.id,
47
- };
44
+ });
48
45
  const e_0_0_e_1_0 = e_0_0.rebase_(e_1_0.id);
49
46
  const e_0_1_e_1_1 = e_0_1.rebase_(e_0_0_e_1_0.id);
50
47
  const result = run({
@@ -65,18 +62,18 @@ describe('syncstate', () => {
65
62
  else {
66
63
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0_e_1_0, e_0_1_e_1_1]);
67
64
  }
68
- expect(result.newSyncState.upstreamHead).toBe(e_0_1_e_1_1.id);
65
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_1_e_1_1.id);
69
66
  expect(result.newSyncState.localHead).toMatchObject(e_1_0_e_2_0.id);
70
- expectEventArraysEqual(result.newEvents, [e_0_0_e_1_0, e_0_1_e_1_1]);
67
+ expectEventArraysEqual(result.newEvents, [e_0_0_e_1_0, e_0_1_e_1_1, e_1_0_e_2_0]);
71
68
  expectEventArraysEqual(result.eventsToRollback, [e_0_0, e_0_1, e_1_0]);
72
69
  });
73
70
  it('should rollback only to specified point', () => {
74
- const syncState = {
71
+ const syncState = new SyncState.SyncState({
75
72
  pending: [e_1_0],
76
73
  rollbackTail: [e_0_0, e_0_1],
77
74
  upstreamHead: EventId.ROOT,
78
75
  localHead: e_1_0.id,
79
- };
76
+ });
80
77
  const e_0_1_e_1_0 = e_0_1.rebase_(e_0_0.id);
81
78
  const result = run({
82
79
  syncState,
@@ -96,13 +93,18 @@ describe('syncstate', () => {
96
93
  else {
97
94
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0, e_0_1_e_1_0]);
98
95
  }
99
- expect(result.newSyncState.upstreamHead).toBe(e_0_1_e_1_0.id);
96
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_1_e_1_0.id);
100
97
  expect(result.newSyncState.localHead).toMatchObject(e_1_0_e_2_0.id);
101
- expectEventArraysEqual(result.newEvents, [e_0_1_e_1_0]);
98
+ expectEventArraysEqual(result.newEvents, [e_0_1_e_1_0, e_1_0_e_2_0]);
102
99
  expectEventArraysEqual(result.eventsToRollback, [e_0_1, e_1_0]);
103
100
  });
104
101
  it('should work for empty pending', () => {
105
- const syncState = { pending: [], rollbackTail: [e_0_0], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
102
+ const syncState = new SyncState.SyncState({
103
+ pending: [],
104
+ rollbackTail: [e_0_0],
105
+ upstreamHead: EventId.ROOT,
106
+ localHead: e_0_0.id,
107
+ });
106
108
  const result = run({
107
109
  syncState,
108
110
  payload: { _tag: 'upstream-rebase', rollbackUntil: e_0_0.id, newEvents: [e_1_0] },
@@ -110,19 +112,30 @@ describe('syncstate', () => {
110
112
  expectRebase(result);
111
113
  expectEventArraysEqual(result.newSyncState.pending, []);
112
114
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_1_0]);
113
- expect(result.newSyncState.upstreamHead).toBe(e_1_0.id);
115
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_1_0.id);
114
116
  expect(result.newSyncState.localHead).toMatchObject(e_1_0.id);
115
- expect(result.newEvents).toEqual([e_1_0]);
117
+ expect(result.newEvents).toStrictEqual([e_1_0]);
116
118
  });
117
119
  it('should fail for empty rollback tail', () => {
118
- const syncState = { pending: [], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
119
- expect(() => run({
120
+ const syncState = new SyncState.SyncState({
121
+ pending: [],
122
+ rollbackTail: [],
123
+ upstreamHead: EventId.ROOT,
124
+ localHead: e_0_0.id,
125
+ });
126
+ const result = run({
120
127
  syncState,
121
128
  payload: { _tag: 'upstream-rebase', rollbackUntil: e_0_0.id, newEvents: [e_1_0] },
122
- })).toThrow();
129
+ });
130
+ expect(result).toMatchObject({ _tag: 'unexpected-error' });
123
131
  });
124
132
  it('should work for empty incoming', () => {
125
- const syncState = { pending: [], rollbackTail: [e_0_0], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
133
+ const syncState = new SyncState.SyncState({
134
+ pending: [],
135
+ rollbackTail: [e_0_0],
136
+ upstreamHead: EventId.ROOT,
137
+ localHead: e_0_0.id,
138
+ });
126
139
  const result = run({
127
140
  syncState,
128
141
  payload: { _tag: 'upstream-rebase', rollbackUntil: e_0_0.id, newEvents: [] },
@@ -130,57 +143,84 @@ describe('syncstate', () => {
130
143
  expectRebase(result);
131
144
  expectEventArraysEqual(result.newSyncState.pending, []);
132
145
  expectEventArraysEqual(result.newSyncState.rollbackTail, []);
133
- expect(result.newSyncState.upstreamHead).toBe(EventId.ROOT);
146
+ expect(result.newSyncState.upstreamHead).toMatchObject(EventId.ROOT);
134
147
  expect(result.newSyncState.localHead).toMatchObject(EventId.ROOT);
135
- expect(result.newEvents).toEqual([]);
148
+ expect(result.newEvents).toStrictEqual([]);
136
149
  });
137
150
  });
138
151
  describe('upstream-advance: advance', () => {
139
- it('should throw error if newEvents are not sorted in ascending order by eventId (local)', () => {
140
- const syncState = { pending: [e_0_0], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
141
- expect(() => run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_1, e_0_0] } })).toThrow();
152
+ it('should throw error if newEvents are not sorted in ascending order by eventId (client)', () => {
153
+ const syncState = new SyncState.SyncState({
154
+ pending: [e_0_0],
155
+ rollbackTail: [],
156
+ upstreamHead: EventId.ROOT,
157
+ localHead: e_0_0.id,
158
+ });
159
+ const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_1, e_0_0] } });
160
+ expect(result).toMatchObject({ _tag: 'unexpected-error' });
142
161
  });
143
162
  it('should throw error if newEvents are not sorted in ascending order by eventId (global)', () => {
144
- const syncState = { pending: [e_0_0], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
145
- expect(() => run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_1_0, e_0_0] } })).toThrow();
163
+ const syncState = new SyncState.SyncState({
164
+ pending: [e_0_0],
165
+ rollbackTail: [],
166
+ upstreamHead: EventId.ROOT,
167
+ localHead: e_0_0.id,
168
+ });
169
+ const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_1_0, e_0_0] } });
170
+ expect(result).toMatchObject({ _tag: 'unexpected-error' });
146
171
  });
147
172
  it('should acknowledge pending event when receiving matching event', () => {
148
- const syncState = { pending: [e_0_0], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
173
+ const syncState = new SyncState.SyncState({
174
+ pending: [e_0_0],
175
+ rollbackTail: [],
176
+ upstreamHead: EventId.ROOT,
177
+ localHead: e_0_0.id,
178
+ });
149
179
  const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_0] } });
150
180
  expectAdvance(result);
151
181
  expectEventArraysEqual(result.newSyncState.pending, []);
152
182
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0]);
153
- expect(result.newSyncState.upstreamHead).toBe(e_0_0.id);
183
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_0.id);
154
184
  expect(result.newSyncState.localHead).toMatchObject(e_0_0.id);
155
- expect(result.newEvents).toEqual([]);
185
+ expect(result.newEvents).toStrictEqual([]);
156
186
  });
157
187
  it('should acknowledge partial pending event when receiving matching event', () => {
158
- const syncState = {
188
+ const syncState = new SyncState.SyncState({
159
189
  pending: [e_0_0, e_1_0],
160
190
  rollbackTail: [],
161
191
  upstreamHead: EventId.ROOT,
162
192
  localHead: e_1_0.id,
163
- };
193
+ });
164
194
  const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_0] } });
165
195
  expectAdvance(result);
166
196
  expectEventArraysEqual(result.newSyncState.pending, [e_1_0]);
167
197
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0]);
168
- expect(result.newSyncState.upstreamHead).toBe(e_0_0.id);
198
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_0.id);
169
199
  expect(result.newSyncState.localHead).toMatchObject(e_1_0.id);
170
- expect(result.newEvents).toEqual([]);
200
+ expect(result.newEvents).toStrictEqual([]);
171
201
  });
172
202
  it('should acknowledge pending event and add new event', () => {
173
- const syncState = { pending: [e_0_0], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
203
+ const syncState = new SyncState.SyncState({
204
+ pending: [e_0_0],
205
+ rollbackTail: [],
206
+ upstreamHead: EventId.ROOT,
207
+ localHead: e_0_0.id,
208
+ });
174
209
  const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_0, e_0_1] } });
175
210
  expectAdvance(result);
176
211
  expectEventArraysEqual(result.newSyncState.pending, []);
177
212
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0, e_0_1]);
178
- expect(result.newSyncState.upstreamHead).toBe(e_0_1.id);
213
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_1.id);
179
214
  expect(result.newSyncState.localHead).toMatchObject(e_0_1.id);
180
- expect(result.newEvents).toEqual([e_0_1]);
215
+ expect(result.newEvents).toStrictEqual([e_0_1]);
181
216
  });
182
217
  it('should acknowledge pending event and add multiple new events', () => {
183
- const syncState = { pending: [e_0_1], rollbackTail: [], upstreamHead: e_0_0.id, localHead: e_0_1.id };
218
+ const syncState = new SyncState.SyncState({
219
+ pending: [e_0_1],
220
+ rollbackTail: [],
221
+ upstreamHead: e_0_0.id,
222
+ localHead: e_0_1.id,
223
+ });
184
224
  const result = run({
185
225
  syncState,
186
226
  payload: { _tag: 'upstream-advance', newEvents: [e_0_1, e_0_2, e_0_3, e_1_0, e_1_1] },
@@ -188,17 +228,17 @@ describe('syncstate', () => {
188
228
  expectAdvance(result);
189
229
  expectEventArraysEqual(result.newSyncState.pending, []);
190
230
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_1, e_0_2, e_0_3, e_1_0, e_1_1]);
191
- expect(result.newSyncState.upstreamHead).toBe(e_1_1.id);
231
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_1_1.id);
192
232
  expect(result.newSyncState.localHead).toMatchObject(e_1_1.id);
193
- expect(result.newEvents).toEqual([e_0_2, e_0_3, e_1_0, e_1_1]);
233
+ expect(result.newEvents).toStrictEqual([e_0_2, e_0_3, e_1_0, e_1_1]);
194
234
  });
195
- it('should ignore local events (incoming is subset of pending)', () => {
196
- const syncState = {
235
+ it('should ignore client events (incoming is subset of pending)', () => {
236
+ const syncState = new SyncState.SyncState({
197
237
  pending: [e_r_1, e_0_0],
198
238
  rollbackTail: [],
199
239
  upstreamHead: EventId.ROOT,
200
240
  localHead: e_0_0.id,
201
- };
241
+ });
202
242
  const result = run({
203
243
  syncState,
204
244
  payload: { _tag: 'upstream-advance', newEvents: [e_0_0] },
@@ -207,17 +247,17 @@ describe('syncstate', () => {
207
247
  expectAdvance(result);
208
248
  expectEventArraysEqual(result.newSyncState.pending, []);
209
249
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_r_1, e_0_0]);
210
- expect(result.newSyncState.upstreamHead).toBe(e_0_0.id);
250
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_0.id);
211
251
  expect(result.newSyncState.localHead).toMatchObject(e_0_0.id);
212
- expect(result.newEvents).toEqual([]);
252
+ expect(result.newEvents).toStrictEqual([]);
213
253
  });
214
- it('should ignore local events (incoming is subset of pending case 2)', () => {
215
- const syncState = {
254
+ it('should ignore client events (incoming is subset of pending case 2)', () => {
255
+ const syncState = new SyncState.SyncState({
216
256
  pending: [e_r_1, e_0_0, e_1_0],
217
257
  rollbackTail: [],
218
258
  upstreamHead: EventId.ROOT,
219
259
  localHead: e_0_0.id,
220
- };
260
+ });
221
261
  const result = run({
222
262
  syncState,
223
263
  payload: { _tag: 'upstream-advance', newEvents: [e_0_0] },
@@ -226,17 +266,17 @@ describe('syncstate', () => {
226
266
  expectAdvance(result);
227
267
  expectEventArraysEqual(result.newSyncState.pending, [e_1_0]);
228
268
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_r_1, e_0_0]);
229
- expect(result.newSyncState.upstreamHead).toBe(e_0_0.id);
269
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_0.id);
230
270
  expect(result.newSyncState.localHead).toMatchObject(e_1_0.id);
231
- expect(result.newEvents).toEqual([]);
271
+ expect(result.newEvents).toStrictEqual([]);
232
272
  });
233
- it('should ignore local events (incoming goes beyond pending)', () => {
234
- const syncState = {
273
+ it('should ignore client events (incoming goes beyond pending)', () => {
274
+ const syncState = new SyncState.SyncState({
235
275
  pending: [e_r_1, e_0_0, e_0_1],
236
276
  rollbackTail: [],
237
277
  upstreamHead: EventId.ROOT,
238
278
  localHead: e_0_1.id,
239
- };
279
+ });
240
280
  const result = run({
241
281
  syncState,
242
282
  payload: { _tag: 'upstream-advance', newEvents: [e_0_0, e_1_0] },
@@ -245,27 +285,47 @@ describe('syncstate', () => {
245
285
  expectAdvance(result);
246
286
  expectEventArraysEqual(result.newSyncState.pending, []);
247
287
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_r_1, e_0_0, e_0_1, e_1_0]);
248
- expect(result.newSyncState.upstreamHead).toBe(e_1_0.id);
288
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_1_0.id);
249
289
  expect(result.newSyncState.localHead).toMatchObject(e_1_0.id);
250
- expect(result.newEvents).toEqual([e_1_0]);
290
+ expect(result.newEvents).toStrictEqual([e_1_0]);
291
+ });
292
+ it('should fail if incoming event is ≤ local head', () => {
293
+ const syncState = new SyncState.SyncState({
294
+ pending: [],
295
+ rollbackTail: [],
296
+ upstreamHead: e_1_0.id,
297
+ localHead: e_1_0.id,
298
+ });
299
+ const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_0] } });
300
+ expect(result).toMatchObject({ _tag: 'unexpected-error' });
251
301
  });
252
302
  });
253
303
  describe('upstream-advance: rebase', () => {
254
- it('should rebase single local event to end', () => {
255
- const syncState = { pending: [e_0_0], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
304
+ it('should rebase single client event to end', () => {
305
+ const syncState = new SyncState.SyncState({
306
+ pending: [e_0_0],
307
+ rollbackTail: [],
308
+ upstreamHead: EventId.ROOT,
309
+ localHead: e_0_0.id,
310
+ });
256
311
  const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_1] } });
257
312
  const e_0_0_e_0_2 = e_0_0.rebase_(e_0_1.id);
258
313
  expectRebase(result);
259
314
  expectEventArraysEqual(result.newSyncState.pending, [e_0_0_e_0_2]);
260
315
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_1]);
261
- expect(result.newSyncState.upstreamHead).toBe(e_0_1.id);
316
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_1.id);
262
317
  expect(result.newSyncState.localHead).toMatchObject(e_0_0_e_0_2.id);
263
318
  expectEventArraysEqual(result.eventsToRollback, [e_0_0]);
264
319
  expectEventArraysEqual(result.newEvents, [e_0_1, e_0_0_e_0_2]);
265
320
  });
266
321
  it('should rebase different event with same id (no rollback tail)', () => {
267
- const e_0_0_b = new TestEvent({ global: 0, local: 0 }, EventId.ROOT, '0_0_b', true);
268
- const syncState = { pending: [e_0_0_b], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0_b.id };
322
+ const e_0_0_b = new TestEvent({ global: 0, client: 0 }, EventId.ROOT, '0_0_b', true);
323
+ const syncState = new SyncState.SyncState({
324
+ pending: [e_0_0_b],
325
+ rollbackTail: [],
326
+ upstreamHead: EventId.ROOT,
327
+ localHead: e_0_0_b.id,
328
+ });
269
329
  const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_0_0] } });
270
330
  const e_0_0_e_1_0 = e_0_0_b.rebase_(e_0_0.id);
271
331
  expectRebase(result);
@@ -273,17 +333,17 @@ describe('syncstate', () => {
273
333
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0]);
274
334
  expectEventArraysEqual(result.newEvents, [e_0_0, e_0_0_e_1_0]);
275
335
  expectEventArraysEqual(result.eventsToRollback, [e_0_0_b]);
276
- expect(result.newSyncState.upstreamHead).toBe(e_0_0.id);
336
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_0_0.id);
277
337
  expect(result.newSyncState.localHead).toMatchObject(e_0_0_e_1_0.id);
278
338
  });
279
339
  it('should rebase different event with same id', () => {
280
- const e_1_0_b = new TestEvent({ global: 1, local: 0 }, e_0_0.id, '1_0_b', false);
281
- const syncState = {
340
+ const e_1_0_b = new TestEvent({ global: 1, client: 0 }, e_0_0.id, '1_0_b', false);
341
+ const syncState = new SyncState.SyncState({
282
342
  pending: [e_1_0_b],
283
343
  rollbackTail: [e_0_0, e_0_1],
284
344
  upstreamHead: EventId.ROOT,
285
345
  localHead: e_1_0_b.id,
286
- };
346
+ });
287
347
  const result = run({ syncState, payload: { _tag: 'upstream-advance', newEvents: [e_1_0] } });
288
348
  const e_1_0_e_2_0 = e_1_0_b.rebase_(e_1_0.id);
289
349
  expectRebase(result);
@@ -291,11 +351,16 @@ describe('syncstate', () => {
291
351
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0, e_0_1, e_1_0]);
292
352
  expectEventArraysEqual(result.newEvents, [e_1_0, e_1_0_e_2_0]);
293
353
  expectEventArraysEqual(result.eventsToRollback, [e_0_0, e_0_1, e_1_0_b]);
294
- expect(result.newSyncState.upstreamHead).toBe(e_1_0.id);
354
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_1_0.id);
295
355
  expect(result.newSyncState.localHead).toMatchObject(e_1_0_e_2_0.id);
296
356
  });
297
- it('should rebase single local event to end (more incoming events)', () => {
298
- const syncState = { pending: [e_0_0], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
357
+ it('should rebase single client event to end (more incoming events)', () => {
358
+ const syncState = new SyncState.SyncState({
359
+ pending: [e_0_0],
360
+ rollbackTail: [],
361
+ upstreamHead: EventId.ROOT,
362
+ localHead: e_0_0.id,
363
+ });
299
364
  const result = run({
300
365
  syncState,
301
366
  payload: { _tag: 'upstream-advance', newEvents: [e_0_1, e_0_2, e_0_3, e_1_0] },
@@ -304,16 +369,16 @@ describe('syncstate', () => {
304
369
  expectRebase(result);
305
370
  expectEventArraysEqual(result.newSyncState.pending, [e_0_0_e_2_0]);
306
371
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_1, e_0_2, e_0_3, e_1_0]);
307
- expect(result.newSyncState.upstreamHead).toBe(e_1_0.id);
372
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_1_0.id);
308
373
  expect(result.newSyncState.localHead).toMatchObject(e_0_0_e_2_0.id);
309
374
  });
310
375
  it('should only rebase divergent events when first event matches', () => {
311
- const syncState = {
376
+ const syncState = new SyncState.SyncState({
312
377
  pending: [e_0_0, e_0_1],
313
378
  rollbackTail: [],
314
379
  upstreamHead: EventId.ROOT,
315
380
  localHead: e_0_0.id,
316
- };
381
+ });
317
382
  const result = run({
318
383
  syncState,
319
384
  payload: { _tag: 'upstream-advance', newEvents: [e_0_0, e_0_2, e_0_3, e_1_0] },
@@ -324,16 +389,16 @@ describe('syncstate', () => {
324
389
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_0, e_0_2, e_0_3, e_1_0]);
325
390
  expectEventArraysEqual(result.eventsToRollback, [e_0_1]);
326
391
  expectEventArraysEqual(result.newEvents, [e_0_2, e_0_3, e_1_0, e_0_1_e_1_1]);
327
- expect(result.newSyncState.upstreamHead).toBe(e_1_0.id);
392
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_1_0.id);
328
393
  expect(result.newSyncState.localHead).toMatchObject(e_0_1_e_1_1.id);
329
394
  });
330
- it('should rebase all local events when incoming chain starts differently', () => {
331
- const syncState = {
395
+ it('should rebase all client events when incoming chain starts differently', () => {
396
+ const syncState = new SyncState.SyncState({
332
397
  pending: [e_0_0, e_0_1],
333
398
  rollbackTail: [],
334
399
  upstreamHead: EventId.ROOT,
335
400
  localHead: e_0_1.id,
336
- };
401
+ });
337
402
  const result = run({
338
403
  syncState,
339
404
  payload: { _tag: 'upstream-advance', newEvents: [e_0_1, e_0_2, e_0_3, e_1_0] },
@@ -345,30 +410,35 @@ describe('syncstate', () => {
345
410
  expectEventArraysEqual(result.newSyncState.rollbackTail, [e_0_1, e_0_2, e_0_3, e_1_0]);
346
411
  expectEventArraysEqual(result.newEvents, [e_0_1, e_0_2, e_0_3, e_1_0, e_0_0_e_1_1, e_0_1_e_1_2]);
347
412
  expectEventArraysEqual(result.eventsToRollback, [e_0_0, e_0_1]);
348
- expect(result.newSyncState.upstreamHead).toBe(e_1_0.id);
413
+ expect(result.newSyncState.upstreamHead).toMatchObject(e_1_0.id);
349
414
  expect(result.newSyncState.localHead).toMatchObject(e_0_1_e_1_2.id);
350
415
  });
351
416
  describe('local-push', () => {
352
417
  describe('advance', () => {
353
418
  it('should advance with new events', () => {
354
- const syncState = { pending: [e_0_0], rollbackTail: [], upstreamHead: EventId.ROOT, localHead: e_0_0.id };
419
+ const syncState = new SyncState.SyncState({
420
+ pending: [e_0_0],
421
+ rollbackTail: [],
422
+ upstreamHead: EventId.ROOT,
423
+ localHead: e_0_0.id,
424
+ });
355
425
  const result = run({ syncState, payload: { _tag: 'local-push', newEvents: [e_0_1, e_0_2, e_0_3] } });
356
426
  expectAdvance(result);
357
427
  expectEventArraysEqual(result.newSyncState.pending, [e_0_0, e_0_1, e_0_2, e_0_3]);
358
428
  expectEventArraysEqual(result.newSyncState.rollbackTail, []);
359
- expect(result.newSyncState.upstreamHead).toBe(EventId.ROOT);
429
+ expect(result.newSyncState.upstreamHead).toMatchObject(EventId.ROOT);
360
430
  expect(result.newSyncState.localHead).toMatchObject(e_0_3.id);
361
431
  expectEventArraysEqual(result.newEvents, [e_0_1, e_0_2, e_0_3]);
362
432
  });
363
433
  });
364
434
  describe('reject', () => {
365
435
  it('should reject when new events are greater than pending events', () => {
366
- const syncState = {
436
+ const syncState = new SyncState.SyncState({
367
437
  pending: [e_0_0, e_0_1],
368
438
  rollbackTail: [],
369
439
  upstreamHead: EventId.ROOT,
370
440
  localHead: e_0_1.id,
371
- };
441
+ });
372
442
  const result = run({ syncState, payload: { _tag: 'local-push', newEvents: [e_0_1, e_0_2] } });
373
443
  expectReject(result);
374
444
  expect(result.expectedMinimumId).toMatchObject(e_0_2.id);
@@ -381,10 +451,10 @@ describe('syncstate', () => {
381
451
  const expectEventArraysEqual = (actual, expected) => {
382
452
  expect(actual.length).toBe(expected.length);
383
453
  actual.forEach((event, i) => {
384
- expect(event.id).toEqual(expected[i].id);
385
- expect(event.parentId).toEqual(expected[i].parentId);
386
- expect(event.mutation).toEqual(expected[i].mutation);
387
- expect(event.args).toEqual(expected[i].args);
454
+ expect(event.id).toStrictEqual(expected[i].id);
455
+ expect(event.parentId).toStrictEqual(expected[i].parentId);
456
+ expect(event.mutation).toStrictEqual(expected[i].mutation);
457
+ expect(event.args).toStrictEqual(expected[i].args);
388
458
  });
389
459
  };
390
460
  function expectAdvance(result) {