@livestore/common 0.0.0-snapshot-2b8a9de3ec1a701aca891ebc2c98eb328274ae9e → 0.0.0-snapshot-2ef046b02334f52613d31dbe06af53487685edc0

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 (98) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-types.d.ts +4 -11
  3. package/dist/adapter-types.d.ts.map +1 -1
  4. package/dist/adapter-types.js +0 -6
  5. package/dist/adapter-types.js.map +1 -1
  6. package/dist/devtools/devtools-messages-common.d.ts +7 -0
  7. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  8. package/dist/devtools/devtools-messages-common.js +6 -0
  9. package/dist/devtools/devtools-messages-common.js.map +1 -1
  10. package/dist/devtools/devtools-messages-leader.d.ts +1 -1
  11. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  12. package/dist/devtools/devtools-messages-leader.js +1 -2
  13. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  14. package/dist/leader-thread/LeaderSyncProcessor.d.ts +15 -6
  15. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  16. package/dist/leader-thread/LeaderSyncProcessor.js +199 -189
  17. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  18. package/dist/leader-thread/apply-mutation.d.ts +14 -9
  19. package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
  20. package/dist/leader-thread/apply-mutation.js +43 -36
  21. package/dist/leader-thread/apply-mutation.js.map +1 -1
  22. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  23. package/dist/leader-thread/leader-worker-devtools.js +2 -5
  24. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  25. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  26. package/dist/leader-thread/make-leader-thread-layer.js +21 -33
  27. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  28. package/dist/leader-thread/mod.d.ts +1 -1
  29. package/dist/leader-thread/mod.d.ts.map +1 -1
  30. package/dist/leader-thread/mod.js +1 -1
  31. package/dist/leader-thread/mod.js.map +1 -1
  32. package/dist/leader-thread/mutationlog.d.ts +19 -3
  33. package/dist/leader-thread/mutationlog.d.ts.map +1 -1
  34. package/dist/leader-thread/mutationlog.js +105 -12
  35. package/dist/leader-thread/mutationlog.js.map +1 -1
  36. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  37. package/dist/leader-thread/recreate-db.js +4 -3
  38. package/dist/leader-thread/recreate-db.js.map +1 -1
  39. package/dist/leader-thread/types.d.ts +35 -19
  40. package/dist/leader-thread/types.d.ts.map +1 -1
  41. package/dist/leader-thread/types.js.map +1 -1
  42. package/dist/rehydrate-from-mutationlog.d.ts +5 -4
  43. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
  44. package/dist/rehydrate-from-mutationlog.js +7 -9
  45. package/dist/rehydrate-from-mutationlog.js.map +1 -1
  46. package/dist/schema/EventId.d.ts +4 -0
  47. package/dist/schema/EventId.d.ts.map +1 -1
  48. package/dist/schema/EventId.js +7 -1
  49. package/dist/schema/EventId.js.map +1 -1
  50. package/dist/schema/MutationEvent.d.ts +78 -25
  51. package/dist/schema/MutationEvent.d.ts.map +1 -1
  52. package/dist/schema/MutationEvent.js +25 -12
  53. package/dist/schema/MutationEvent.js.map +1 -1
  54. package/dist/schema/schema.js +1 -1
  55. package/dist/schema/schema.js.map +1 -1
  56. package/dist/schema/system-tables.d.ts +67 -0
  57. package/dist/schema/system-tables.d.ts.map +1 -1
  58. package/dist/schema/system-tables.js +12 -1
  59. package/dist/schema/system-tables.js.map +1 -1
  60. package/dist/sync/ClientSessionSyncProcessor.d.ts +9 -1
  61. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  62. package/dist/sync/ClientSessionSyncProcessor.js +23 -19
  63. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  64. package/dist/sync/sync.d.ts +6 -5
  65. package/dist/sync/sync.d.ts.map +1 -1
  66. package/dist/sync/sync.js.map +1 -1
  67. package/dist/sync/syncstate.d.ts +47 -71
  68. package/dist/sync/syncstate.d.ts.map +1 -1
  69. package/dist/sync/syncstate.js +76 -112
  70. package/dist/sync/syncstate.js.map +1 -1
  71. package/dist/sync/syncstate.test.js +67 -139
  72. package/dist/sync/syncstate.test.js.map +1 -1
  73. package/package.json +2 -2
  74. package/src/adapter-types.ts +3 -12
  75. package/src/devtools/devtools-messages-common.ts +9 -0
  76. package/src/devtools/devtools-messages-leader.ts +1 -2
  77. package/src/leader-thread/LeaderSyncProcessor.ts +372 -348
  78. package/src/leader-thread/apply-mutation.ts +81 -71
  79. package/src/leader-thread/leader-worker-devtools.ts +3 -8
  80. package/src/leader-thread/make-leader-thread-layer.ts +26 -41
  81. package/src/leader-thread/mod.ts +1 -1
  82. package/src/leader-thread/mutationlog.ts +166 -13
  83. package/src/leader-thread/recreate-db.ts +4 -3
  84. package/src/leader-thread/types.ts +34 -23
  85. package/src/rehydrate-from-mutationlog.ts +12 -12
  86. package/src/schema/EventId.ts +8 -1
  87. package/src/schema/MutationEvent.ts +32 -16
  88. package/src/schema/schema.ts +1 -1
  89. package/src/schema/system-tables.ts +20 -1
  90. package/src/sync/ClientSessionSyncProcessor.ts +33 -25
  91. package/src/sync/sync.ts +6 -9
  92. package/src/sync/syncstate.test.ts +130 -208
  93. package/src/sync/syncstate.ts +76 -123
  94. package/dist/leader-thread/pull-queue-set.d.ts +0 -7
  95. package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
  96. package/dist/leader-thread/pull-queue-set.js +0 -48
  97. package/dist/leader-thread/pull-queue-set.js.map +0 -1
  98. package/src/leader-thread/pull-queue-set.ts +0 -67
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/common",
3
- "version": "0.0.0-snapshot-2b8a9de3ec1a701aca891ebc2c98eb328274ae9e",
3
+ "version": "0.0.0-snapshot-2ef046b02334f52613d31dbe06af53487685edc0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -54,7 +54,7 @@
54
54
  "graphology": "0.26.0-alpha1",
55
55
  "graphology-dag": "0.4.1",
56
56
  "graphology-types": "0.24.8",
57
- "@livestore/utils": "0.0.0-snapshot-2b8a9de3ec1a701aca891ebc2c98eb328274ae9e"
57
+ "@livestore/utils": "0.0.0-snapshot-2ef046b02334f52613d31dbe06af53487685edc0"
58
58
  },
59
59
  "devDependencies": {
60
60
  "vitest": "^3.0.8"
@@ -41,8 +41,9 @@ export interface ClientSession {
41
41
  export interface ClientSessionLeaderThreadProxy {
42
42
  mutations: {
43
43
  pull: (args: {
44
- cursor: EventId.EventId
45
- }) => Stream.Stream<{ payload: PayloadUpstream; remaining: number }, UnexpectedError>
44
+ /** The merge counter of the leader thread */
45
+ cursor: number
46
+ }) => Stream.Stream<{ payload: typeof PayloadUpstream.Type; mergeCounter: number }, UnexpectedError>
46
47
  /** It's important that a client session doesn't call `push` concurrently. */
47
48
  push(batch: ReadonlyArray<MutationEvent.AnyEncoded>): Effect.Effect<void, UnexpectedError | LeaderAheadError>
48
49
  }
@@ -56,7 +57,6 @@ export interface ClientSessionLeaderThreadProxy {
56
57
  export: Effect.Effect<Uint8Array, UnexpectedError>
57
58
  getMutationLogData: Effect.Effect<Uint8Array, UnexpectedError>
58
59
  getSyncState: Effect.Effect<SyncState, UnexpectedError>
59
- networkStatus: SubscriptionRef.SubscriptionRef<NetworkStatus>
60
60
  /** For debugging purposes it can be useful to manually trigger devtools messages (e.g. to reset the database) */
61
61
  sendDevtoolsMessage: (message: Devtools.Leader.MessageToApp) => Effect.Effect<void, UnexpectedError>
62
62
  }
@@ -108,15 +108,6 @@ export type PersistenceInfo<With extends {} = {}> = typeof PersistenceInfo.Type
108
108
 
109
109
  export type ResetMode = 'all-data' | 'only-app-db'
110
110
 
111
- export const NetworkStatus = Schema.Struct({
112
- isConnected: Schema.Boolean,
113
- timestampMs: Schema.Number,
114
- /** Whether the network status devtools latch is closed. Used to simulate network disconnection. */
115
- latchClosed: Schema.Boolean,
116
- })
117
-
118
- export type NetworkStatus = typeof NetworkStatus.Type
119
-
120
111
  export const BootStateProgress = Schema.Struct({
121
112
  done: Schema.Number,
122
113
  total: Schema.Number,
@@ -2,6 +2,15 @@ import { Schema } from '@livestore/utils/effect'
2
2
 
3
3
  import { liveStoreVersion as pkgVersion } from '../version.js'
4
4
 
5
+ export const NetworkStatus = Schema.Struct({
6
+ isConnected: Schema.Boolean,
7
+ timestampMs: Schema.Number,
8
+ /** Whether the network status devtools latch is closed. Used to simulate network disconnection. */
9
+ latchClosed: Schema.Boolean,
10
+ })
11
+
12
+ export type NetworkStatus = typeof NetworkStatus.Type
13
+
5
14
  export const requestId = Schema.String
6
15
  export const clientId = Schema.String
7
16
  export const sessionId = Schema.String
@@ -1,10 +1,9 @@
1
1
  import { Schema, Transferable } from '@livestore/utils/effect'
2
2
 
3
- import { NetworkStatus } from '../adapter-types.js'
4
3
  import { EventId } from '../schema/mod.js'
5
4
  import * as MutationEvent from '../schema/MutationEvent.js'
6
5
  import * as SyncState from '../sync/syncstate.js'
7
- import { LeaderReqResMessage, LSDMessage, LSDReqResMessage } from './devtools-messages-common.js'
6
+ import { LeaderReqResMessage, LSDMessage, LSDReqResMessage, NetworkStatus } from './devtools-messages-common.js'
8
7
 
9
8
  export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
10
9
  mode: Schema.Literal('all-data', 'only-app-db'),