@livestore/common 0.3.0-dev.4 → 0.3.0-dev.6

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 (113) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-types.d.ts +26 -23
  3. package/dist/adapter-types.d.ts.map +1 -1
  4. package/dist/adapter-types.js.map +1 -1
  5. package/dist/derived-mutations.d.ts +4 -4
  6. package/dist/derived-mutations.d.ts.map +1 -1
  7. package/dist/derived-mutations.test.js.map +1 -1
  8. package/dist/devtools/devtools-bridge.d.ts +2 -1
  9. package/dist/devtools/devtools-bridge.d.ts.map +1 -1
  10. package/dist/devtools/devtools-messages.d.ts +90 -102
  11. package/dist/devtools/devtools-messages.d.ts.map +1 -1
  12. package/dist/devtools/devtools-messages.js +9 -6
  13. package/dist/devtools/devtools-messages.js.map +1 -1
  14. package/dist/leader-thread/apply-mutation.d.ts +5 -2
  15. package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
  16. package/dist/leader-thread/apply-mutation.js +37 -25
  17. package/dist/leader-thread/apply-mutation.js.map +1 -1
  18. package/dist/leader-thread/leader-sync-processor.d.ts.map +1 -1
  19. package/dist/leader-thread/leader-sync-processor.js +20 -12
  20. package/dist/leader-thread/leader-sync-processor.js.map +1 -1
  21. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  22. package/dist/leader-thread/leader-worker-devtools.js +22 -66
  23. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  24. package/dist/leader-thread/make-leader-thread-layer.d.ts +4 -2
  25. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  26. package/dist/leader-thread/make-leader-thread-layer.js +5 -2
  27. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  28. package/dist/leader-thread/mutationlog.d.ts +4 -17
  29. package/dist/leader-thread/mutationlog.d.ts.map +1 -1
  30. package/dist/leader-thread/mutationlog.js +2 -1
  31. package/dist/leader-thread/mutationlog.js.map +1 -1
  32. package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
  33. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  34. package/dist/leader-thread/recreate-db.js +9 -3
  35. package/dist/leader-thread/recreate-db.js.map +1 -1
  36. package/dist/leader-thread/types.d.ts +7 -5
  37. package/dist/leader-thread/types.d.ts.map +1 -1
  38. package/dist/leader-thread/types.js.map +1 -1
  39. package/dist/mutation.d.ts +9 -2
  40. package/dist/mutation.d.ts.map +1 -1
  41. package/dist/mutation.js +5 -5
  42. package/dist/mutation.js.map +1 -1
  43. package/dist/query-builder/impl.d.ts +1 -1
  44. package/dist/rehydrate-from-mutationlog.d.ts +2 -2
  45. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
  46. package/dist/rehydrate-from-mutationlog.js +13 -19
  47. package/dist/rehydrate-from-mutationlog.js.map +1 -1
  48. package/dist/schema/EventId.d.ts +16 -14
  49. package/dist/schema/EventId.d.ts.map +1 -1
  50. package/dist/schema/EventId.js +15 -7
  51. package/dist/schema/EventId.js.map +1 -1
  52. package/dist/schema/MutationEvent.d.ts +49 -74
  53. package/dist/schema/MutationEvent.d.ts.map +1 -1
  54. package/dist/schema/MutationEvent.js +29 -13
  55. package/dist/schema/MutationEvent.js.map +1 -1
  56. package/dist/schema/system-tables.d.ts +26 -26
  57. package/dist/schema/system-tables.d.ts.map +1 -1
  58. package/dist/schema/system-tables.js +19 -11
  59. package/dist/schema/system-tables.js.map +1 -1
  60. package/dist/schema-management/migrations.js +6 -6
  61. package/dist/schema-management/migrations.js.map +1 -1
  62. package/dist/sync/client-session-sync-processor.d.ts +4 -4
  63. package/dist/sync/client-session-sync-processor.d.ts.map +1 -1
  64. package/dist/sync/next/history-dag-common.d.ts +1 -4
  65. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  66. package/dist/sync/next/history-dag-common.js +1 -1
  67. package/dist/sync/next/history-dag-common.js.map +1 -1
  68. package/dist/sync/next/rebase-events.d.ts +3 -3
  69. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  70. package/dist/sync/next/rebase-events.js +3 -2
  71. package/dist/sync/next/rebase-events.js.map +1 -1
  72. package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
  73. package/dist/sync/next/test/mutation-fixtures.js +3 -9
  74. package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
  75. package/dist/sync/sync.d.ts +6 -6
  76. package/dist/sync/sync.d.ts.map +1 -1
  77. package/dist/sync/sync.js.map +1 -1
  78. package/dist/sync/syncstate.d.ts +10 -10
  79. package/dist/sync/syncstate.test.js +2 -6
  80. package/dist/sync/syncstate.test.js.map +1 -1
  81. package/dist/sync/validate-push-payload.d.ts +2 -2
  82. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  83. package/dist/sync/validate-push-payload.js +2 -2
  84. package/dist/sync/validate-push-payload.js.map +1 -1
  85. package/dist/version.d.ts +1 -1
  86. package/dist/version.js +1 -1
  87. package/package.json +6 -5
  88. package/src/adapter-types.ts +22 -24
  89. package/src/derived-mutations.test.ts +1 -1
  90. package/src/derived-mutations.ts +9 -5
  91. package/src/devtools/devtools-bridge.ts +2 -1
  92. package/src/devtools/devtools-messages.ts +9 -6
  93. package/src/leader-thread/apply-mutation.ts +48 -30
  94. package/src/leader-thread/leader-sync-processor.ts +26 -15
  95. package/src/leader-thread/leader-worker-devtools.ts +30 -109
  96. package/src/leader-thread/make-leader-thread-layer.ts +15 -5
  97. package/src/leader-thread/mutationlog.ts +9 -5
  98. package/src/leader-thread/recreate-db.ts +9 -5
  99. package/src/leader-thread/types.ts +7 -8
  100. package/src/mutation.ts +17 -7
  101. package/src/rehydrate-from-mutationlog.ts +15 -23
  102. package/src/schema/EventId.ts +23 -9
  103. package/src/schema/MutationEvent.ts +40 -20
  104. package/src/schema/system-tables.ts +19 -11
  105. package/src/schema-management/migrations.ts +6 -6
  106. package/src/sync/client-session-sync-processor.ts +4 -4
  107. package/src/sync/next/history-dag-common.ts +1 -1
  108. package/src/sync/next/rebase-events.ts +7 -7
  109. package/src/sync/next/test/mutation-fixtures.ts +3 -10
  110. package/src/sync/sync.ts +4 -2
  111. package/src/sync/syncstate.test.ts +4 -4
  112. package/src/sync/validate-push-payload.ts +7 -4
  113. package/src/version.ts +1 -1
@@ -140,16 +140,9 @@ export const toEventNodes = (
140
140
 
141
141
  let currentEventId: EventId.EventId = EventId.ROOT
142
142
 
143
- const getNextEventId = (mutationDef: MutationDef.Any): EventId.EventId => {
144
- if (mutationDef.options.localOnly) {
145
- return { global: currentEventId.global, local: currentEventId.local + 1 }
146
- }
147
- return { global: currentEventId.global + 1, local: 0 }
148
- }
149
-
150
143
  const eventNodes = partialEvents.map((partialEvent) => {
151
144
  const mutationDef = mutationDefs[partialEvent.mutation]!
152
- const eventId = getNextEventId(mutationDef)
145
+ const eventId = EventId.nextPair(currentEventId, mutationDef.options.localOnly).id
153
146
  currentEventId = eventId
154
147
 
155
148
  const factsSnapshot = factsSnapshotForDag(historyDagFromNodes(nodesAcc, { skipFactsCheck: true }), undefined)
@@ -224,8 +217,8 @@ const getParentId = (eventId: EventId.EventId): EventId.EventId => {
224
217
  const localParentId = eventId.local - 1
225
218
 
226
219
  if (localParentId < 0) {
227
- return { global: globalParentId - 1, local: 0 }
220
+ return EventId.make({ global: globalParentId - 1, local: EventId.localDefault })
228
221
  }
229
222
 
230
- return { global: globalParentId, local: localParentId }
223
+ return EventId.make({ global: globalParentId, local: localParentId })
231
224
  }
package/src/sync/sync.ts CHANGED
@@ -18,7 +18,7 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
18
18
  ) => Stream.Stream<
19
19
  {
20
20
  batch: ReadonlyArray<{
21
- mutationEventEncoded: MutationEvent.AnyEncoded
21
+ mutationEventEncoded: MutationEvent.AnyEncodedGlobal
22
22
  metadata: Option.Option<TSyncMetadata>
23
23
  }>
24
24
  remaining: number
@@ -33,7 +33,7 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
33
33
  * - Number of events: 1-100
34
34
  * - event ids must be in ascending order
35
35
  * */
36
- batch: ReadonlyArray<MutationEvent.AnyEncoded>,
36
+ batch: ReadonlyArray<MutationEvent.AnyEncodedGlobal>,
37
37
  ) => Effect.Effect<
38
38
  {
39
39
  /** Indexes are relative to `batch` */
@@ -46,6 +46,7 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
46
46
  }
47
47
 
48
48
  export class IsOfflineError extends Schema.TaggedError<IsOfflineError>()('IsOfflineError', {}) {}
49
+
49
50
  export class InvalidPushError extends Schema.TaggedError<InvalidPushError>()('InvalidPushError', {
50
51
  reason: Schema.Union(
51
52
  Schema.TaggedStruct('Unexpected', {
@@ -61,6 +62,7 @@ export class InvalidPushError extends Schema.TaggedError<InvalidPushError>()('In
61
62
  }),
62
63
  ),
63
64
  }) {}
65
+
64
66
  export class InvalidPullError extends Schema.TaggedError<InvalidPullError>()('InvalidPullError', {
65
67
  message: Schema.String,
66
68
  }) {}
@@ -7,14 +7,14 @@ import * as SyncState from './syncstate.js'
7
7
 
8
8
  class TestEvent extends MutationEvent.EncodedWithMeta {
9
9
  constructor(
10
- public readonly id: EventId.EventId,
11
- public readonly parentId: EventId.EventId,
10
+ id: EventId.EventId | typeof EventId.EventId.Encoded,
11
+ parentId: EventId.EventId,
12
12
  public readonly payload: string,
13
13
  public readonly isLocal: boolean,
14
14
  ) {
15
15
  super({
16
- id,
17
- parentId,
16
+ id: EventId.make(id),
17
+ parentId: EventId.make(parentId),
18
18
  mutation: 'a',
19
19
  args: payload,
20
20
  meta: {},
@@ -1,17 +1,20 @@
1
1
  import { Effect } from '@livestore/utils/effect'
2
2
 
3
- import type { MutationEvent } from '../schema/mod.js'
3
+ import type { EventId, MutationEvent } from '../schema/mod.js'
4
4
  import { InvalidPushError } from './sync.js'
5
5
 
6
6
  // TODO proper batch validation
7
- export const validatePushPayload = (batch: ReadonlyArray<MutationEvent.AnyEncoded>, currentEventId: number) =>
7
+ export const validatePushPayload = (
8
+ batch: ReadonlyArray<MutationEvent.AnyEncodedGlobal>,
9
+ currentEventId: EventId.GlobalEventId,
10
+ ) =>
8
11
  Effect.gen(function* () {
9
- if (batch[0]!.id.global <= currentEventId) {
12
+ if (batch[0]!.id <= currentEventId) {
10
13
  return yield* InvalidPushError.make({
11
14
  reason: {
12
15
  _tag: 'ServerAhead',
13
16
  minimumExpectedId: currentEventId + 1,
14
- providedId: batch[0]!.id.global,
17
+ providedId: batch[0]!.id,
15
18
  },
16
19
  })
17
20
  }
package/src/version.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // import packageJson from '../package.json' with { type: 'json' }
3
3
  // export const liveStoreVersion = packageJson.version
4
4
 
5
- export const liveStoreVersion = '0.3.0-dev.3' as const
5
+ export const liveStoreVersion = '0.3.0-dev.6' as const
6
6
 
7
7
  /**
8
8
  * This version number is incremented whenever the internal storage format changes in a breaking way.