@livestore/livestore 0.4.0-dev.13 → 0.4.0-dev.15

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.
@@ -4,7 +4,7 @@ import type { Cause, OtelTracer, Scope } from '@livestore/utils/effect';
4
4
  import { Effect, Layer } from '@livestore/utils/effect';
5
5
  import type { LiveStoreContextProps } from '../store/create-store.ts';
6
6
  import { DeferredStoreContext, LiveStoreContextRunning } from '../store/create-store.ts';
7
- export declare const makeLiveStoreContext: <TSchema extends LiveStoreSchema, TContext = {}>({ schema, storeId, context, boot, adapter, disableDevtools, onBootStatus, batchUpdates, }: LiveStoreContextProps<TSchema, TContext>) => Effect.Effect<LiveStoreContextRunning["Type"], UnexpectedError | Cause.TimeoutException, DeferredStoreContext | Scope.Scope | OtelTracer.OtelTracer>;
7
+ export declare const makeLiveStoreContext: <TSchema extends LiveStoreSchema, TContext = {}>({ schema, storeId, context, boot, adapter, disableDevtools, onBootStatus, batchUpdates, syncPayload, syncPayloadSchema, }: LiveStoreContextProps<TSchema, TContext>) => Effect.Effect<LiveStoreContextRunning["Type"], UnexpectedError | Cause.TimeoutException, DeferredStoreContext | Scope.Scope | OtelTracer.OtelTracer>;
8
8
  export declare const LiveStoreContextLayer: <TSchema extends LiveStoreSchema, TContext = {}>(props: LiveStoreContextProps<TSchema, TContext>) => Layer.Layer<LiveStoreContextRunning, UnexpectedError | Cause.TimeoutException, OtelTracer.OtelTracer>;
9
9
  export declare const LiveStoreContextDeferred: Layer.Layer<DeferredStoreContext, never, never>;
10
10
  //# sourceMappingURL=LiveStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAsB,MAAM,EAAE,KAAK,EAAQ,MAAM,yBAAyB,CAAA;AAEjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAe,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAErG,eAAO,MAAM,oBAAoB,GAAI,OAAO,SAAS,eAAe,EAAE,QAAQ,GAAG,EAAE,EAAE,2FASlF,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAG,MAAM,CAAC,MAAM,CACzD,uBAAuB,CAAC,MAAM,CAAC,EAC/B,eAAe,GAAG,KAAK,CAAC,gBAAgB,EACxC,oBAAoB,GAAG,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CA0BzD,CAAA;AAEH,eAAO,MAAM,qBAAqB,GAAI,OAAO,SAAS,eAAe,EAAE,QAAQ,GAAG,EAAE,EAClF,OAAO,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAC9C,KAAK,CAAC,KAAK,CAAC,uBAAuB,EAAE,eAAe,GAAG,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,UAAU,CAIpG,CAAA;AAEH,eAAO,MAAM,wBAAwB,iDAGpC,CAAA"}
1
+ {"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAsB,MAAM,EAAE,KAAK,EAAQ,MAAM,yBAAyB,CAAA;AAEjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAe,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAErG,eAAO,MAAM,oBAAoB,GAAI,OAAO,SAAS,eAAe,EAAE,QAAQ,GAAG,EAAE,EAAE,2HAWlF,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAG,MAAM,CAAC,MAAM,CACzD,uBAAuB,CAAC,MAAM,CAAC,EAC/B,eAAe,GAAG,KAAK,CAAC,gBAAgB,EACxC,oBAAoB,GAAG,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CA0BzD,CAAA;AAEH,eAAO,MAAM,qBAAqB,GAAI,OAAO,SAAS,eAAe,EAAE,QAAQ,GAAG,EAAE,EAClF,OAAO,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAC9C,KAAK,CAAC,KAAK,CAAC,uBAAuB,EAAE,eAAe,GAAG,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,UAAU,CAIpG,CAAA;AAEH,eAAO,MAAM,wBAAwB,iDAGpC,CAAA"}
@@ -1,13 +1,13 @@
1
1
  import { omitUndefineds } from '@livestore/utils';
2
2
  import { Deferred, Duration, Effect, Layer, pipe } from '@livestore/utils/effect';
3
3
  import { createStore, DeferredStoreContext, LiveStoreContextRunning } from "../store/create-store.js";
4
- export const makeLiveStoreContext = ({ schema, storeId = 'default', context, boot, adapter, disableDevtools, onBootStatus, batchUpdates, }) => pipe(Effect.gen(function* () {
4
+ export const makeLiveStoreContext = ({ schema, storeId = 'default', context, boot, adapter, disableDevtools, onBootStatus, batchUpdates, syncPayload, syncPayloadSchema, }) => pipe(Effect.gen(function* () {
5
5
  const store = yield* createStore({
6
6
  schema,
7
7
  storeId,
8
8
  adapter,
9
9
  batchUpdates,
10
- ...omitUndefineds({ context, boot, disableDevtools, onBootStatus }),
10
+ ...omitUndefineds({ context, boot, disableDevtools, onBootStatus, syncPayload, syncPayloadSchema }),
11
11
  });
12
12
  globalThis.__debugLiveStore ??= {};
13
13
  if (Object.keys(globalThis.__debugLiveStore).length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStore.js","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAGjF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAErG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAiD,EACnF,MAAM,EACN,OAAO,GAAG,SAAS,EACnB,OAAO,EACP,IAAI,EACJ,OAAO,EACP,eAAe,EACf,YAAY,EACZ,YAAY,GAC6B,EAIzC,EAAE,CACF,IAAI,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;QAC/B,MAAM;QACN,OAAO;QACP,OAAO;QACP,YAAY;QACZ,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;KACpE,CAAC,CAAA;IAEF,UAAU,CAAC,gBAAgB,KAAK,EAAE,CAAA;IAClC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,UAAU,CAAC,gBAAgB,CAAC,CAAC,GAAG,KAAK,CAAA;IACvC,CAAC;IACD,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;IAE5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAA4C,CAAA;AAC9E,CAAC,CAAC,EACF,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAC9G,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxG,+BAA+B;AAC/B,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACnC,MAAM,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CACpE,CAAA;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAA+C,EACwD,EAAE,CACzG,KAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACrE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3B,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,CACxC,CAAA;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAClD,oBAAoB,EACpB,QAAQ,CAAC,IAAI,EAAoD,CAClE,CAAA"}
1
+ {"version":3,"file":"LiveStore.js","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAGjF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAErG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAiD,EACnF,MAAM,EACN,OAAO,GAAG,SAAS,EACnB,OAAO,EACP,IAAI,EACJ,OAAO,EACP,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GACwB,EAIzC,EAAE,CACF,IAAI,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;QAC/B,MAAM;QACN,OAAO;QACP,OAAO;QACP,YAAY;QACZ,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;KACpG,CAAC,CAAA;IAEF,UAAU,CAAC,gBAAgB,KAAK,EAAE,CAAA;IAClC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,UAAU,CAAC,gBAAgB,CAAC,CAAC,GAAG,KAAK,CAAA;IACvC,CAAC;IACD,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;IAE5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAA4C,CAAA;AAC9E,CAAC,CAAC,EACF,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAC9G,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxG,+BAA+B;AAC/B,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACnC,MAAM,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CACpE,CAAA;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAA+C,EACwD,EAAE,CACzG,KAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACrE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3B,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,CACxC,CAAA;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAClD,oBAAoB,EACpB,QAAQ,CAAC,IAAI,EAAoD,CAClE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { type Adapter, type BootStatus, type ClientSessionSyncProcessorSimulationParams, type MigrationsReport, UnexpectedError } from '@livestore/common';
2
2
  import type { LiveStoreSchema } from '@livestore/common/schema';
3
- import { Context, Deferred, Effect, Layer, OtelTracer, type Schema, Scope } from '@livestore/utils/effect';
3
+ import { Context, Deferred, Effect, Layer, OtelTracer, Schema, Scope } from '@livestore/utils/effect';
4
4
  import * as otel from '@opentelemetry/api';
5
5
  import { Store } from './store.ts';
6
6
  import type { LiveStoreContextRunning as LiveStoreContextRunning_, OtelOptions, ShutdownDeferred } from './store-types.ts';
@@ -14,7 +14,7 @@ export declare class LiveStoreContextRunning extends LiveStoreContextRunning_bas
14
14
  declare const DeferredStoreContext_base: Context.TagClass<DeferredStoreContext, "@livestore/livestore/effect/DeferredStoreContext", Deferred.Deferred<LiveStoreContextRunning_, UnexpectedError>>;
15
15
  export declare class DeferredStoreContext extends DeferredStoreContext_base {
16
16
  }
17
- export type LiveStoreContextProps<TSchema extends LiveStoreSchema, TContext = {}> = {
17
+ export type LiveStoreContextProps<TSchema extends LiveStoreSchema, TContext = {}, TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue> = {
18
18
  schema: TSchema;
19
19
  /**
20
20
  * The `storeId` can be used to isolate multiple stores from each other.
@@ -37,8 +37,27 @@ export type LiveStoreContextProps<TSchema extends LiveStoreSchema, TContext = {}
37
37
  disableDevtools?: boolean | 'auto';
38
38
  onBootStatus?: (status: BootStatus) => void;
39
39
  batchUpdates: (run: () => void) => void;
40
+ /**
41
+ * Schema describing the shape of the sync payload and used to encode it.
42
+ *
43
+ * - If omitted, `Schema.JsonValue` is used (no additional typing/validation).
44
+ * - Prefer exporting a schema from your app (e.g. `export const SyncPayload = Schema.Struct({ authToken: Schema.String })`)
45
+ * and pass it here to get end-to-end type safety and validation.
46
+ */
47
+ syncPayloadSchema?: TSyncPayloadSchema;
48
+ /**
49
+ * Payload that is sent to the sync backend during connection establishment.
50
+ *
51
+ * - Its TypeScript type is inferred from `syncPayloadSchema` (i.e. `typeof SyncPayload.Type`).
52
+ * - At runtime this value is encoded with `syncPayloadSchema` before being handed to the adapter.
53
+ *
54
+ * Example:
55
+ * const SyncPayload = Schema.Struct({ authToken: Schema.String })
56
+ * <LiveStoreProvider syncPayloadSchema={SyncPayload} syncPayload={{ authToken: '...' }} />
57
+ */
58
+ syncPayload?: Schema.Schema.Type<TSyncPayloadSchema>;
40
59
  };
41
- export interface CreateStoreOptions<TSchema extends LiveStoreSchema, TContext = {}> {
60
+ export interface CreateStoreOptions<TSchema extends LiveStoreSchema, TContext = {}, TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue> {
42
61
  schema: TSchema;
43
62
  adapter: Adapter;
44
63
  storeId: string;
@@ -64,11 +83,23 @@ export interface CreateStoreOptions<TSchema extends LiveStoreSchema, TContext =
64
83
  */
65
84
  confirmUnsavedChanges?: boolean;
66
85
  /**
67
- * Payload that will be passed to the sync backend when connecting
86
+ * Schema describing the shape of the sync payload and used to encode it.
87
+ *
88
+ * - If omitted, `Schema.JsonValue` is used (no additional typing/validation).
89
+ * - Prefer exporting a schema from your app (e.g. `export const SyncPayload = Schema.Struct({ authToken: Schema.String })`)
90
+ * and pass it here to get end-to-end type safety and validation.
91
+ */
92
+ syncPayloadSchema?: TSyncPayloadSchema;
93
+ /**
94
+ * Payload that is sent to the sync backend during connection establishment.
95
+ *
96
+ * - Its TypeScript type is inferred from `syncPayloadSchema` (i.e. `typeof SyncPayload.Type`).
97
+ * - At runtime this value is encoded with `syncPayloadSchema` and carried through the adapter
98
+ * to the backend where it can be decoded with the same schema.
68
99
  *
69
100
  * @default undefined
70
101
  */
71
- syncPayload?: Schema.JsonValue;
102
+ syncPayload?: Schema.Schema.Type<TSyncPayloadSchema>;
72
103
  params?: {
73
104
  leaderPushBatchSize?: number;
74
105
  simulation?: {
@@ -80,10 +111,10 @@ export interface CreateStoreOptions<TSchema extends LiveStoreSchema, TContext =
80
111
  };
81
112
  }
82
113
  /** Create a new LiveStore Store */
83
- export declare const createStorePromise: <TSchema extends LiveStoreSchema = LiveStoreSchema.Any, TContext = {}>({ signal, otelOptions, ...options }: CreateStoreOptions<TSchema, TContext> & {
114
+ export declare const createStorePromise: <TSchema extends LiveStoreSchema = LiveStoreSchema.Any, TContext = {}, TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue>({ signal, otelOptions, ...options }: CreateStoreOptions<TSchema, TContext, TSyncPayloadSchema> & {
84
115
  signal?: AbortSignal;
85
116
  otelOptions?: Partial<OtelOptions>;
86
117
  }) => Promise<Store<TSchema, TContext>>;
87
- export declare const createStore: <TSchema extends LiveStoreSchema = LiveStoreSchema.Any, TContext = {}>({ schema, adapter, storeId, context, boot, batchUpdates, disableDevtools, onBootStatus, shutdownDeferred, params, debug, confirmUnsavedChanges, syncPayload, }: CreateStoreOptions<TSchema, TContext>) => Effect.Effect<Store<TSchema, TContext>, UnexpectedError, Scope.Scope | OtelTracer.OtelTracer>;
118
+ export declare const createStore: <TSchema extends LiveStoreSchema = LiveStoreSchema.Any, TContext = {}, TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue>({ schema, adapter, storeId, context, boot, batchUpdates, disableDevtools, onBootStatus, shutdownDeferred, params, debug, confirmUnsavedChanges, syncPayload, syncPayloadSchema, }: CreateStoreOptions<TSchema, TContext, TSyncPayloadSchema>) => Effect.Effect<Store<TSchema, TContext>, UnexpectedError, Scope.Scope | OtelTracer.OtelTracer>;
88
119
  export {};
89
120
  //# sourceMappingURL=create-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-store.d.ts","sourceRoot":"","sources":["../../src/store/create-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,UAAU,EAGf,KAAK,0CAA0C,EAK/C,KAAK,gBAAgB,EAGrB,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EAIN,KAAK,EAGL,UAAU,EAGV,KAAK,MAAM,EACX,KAAK,EAEN,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,EACV,uBAAuB,IAAI,wBAAwB,EACnD,WAAW,EACX,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAEzB,eAAO,MAAM,cAAc;;CAE1B,CAAA;;AAED,qBAAa,uBAAwB,SAAQ,4BAG1C;IACD,MAAM,CAAC,YAAY,8EAIQ;CAC5B;;AAED,qBAAa,oBAAqB,SAAQ,yBAGvC;CAAG;AAEN,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,eAAe,EAAE,QAAQ,GAAG,EAAE,IAAI;IAClF,MAAM,EAAE,OAAO,CAAA;IACf;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,CACL,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,GAAG,uBAAuB,CAAC,CAAA;IAClF,OAAO,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAClC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAC3C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;CACxC,CAAA;AAED,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,eAAe,EAAE,QAAQ,GAAG,EAAE;IAChF,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,CACL,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC/B,GAAG,EAAE;QACH,gBAAgB,EAAE,gBAAgB,CAAA;QAClC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAA;KACtB,KACE,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,GAAG,uBAAuB,CAAC,CAAA;IACjG,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACxC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAClC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IAC9B,MAAM,CAAC,EAAE;QACP,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,UAAU,CAAC,EAAE;YACX,0BAA0B,EAAE,OAAO,0CAA0C,CAAC,IAAI,CAAA;SACnF,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,mCAAmC;AACnC,eAAO,MAAM,kBAAkB,GAAU,OAAO,SAAS,eAAe,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,qCAI5G,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG;IACzC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CACnC,KAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAsBjC,CAAA;AAEH,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,eAAe,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,gKAc/F,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAG,MAAM,CAAC,MAAM,CACtD,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EACxB,eAAe,EACf,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CA2IjC,CAAA"}
1
+ {"version":3,"file":"create-store.d.ts","sourceRoot":"","sources":["../../src/store/create-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,UAAU,EAGf,KAAK,0CAA0C,EAK/C,KAAK,gBAAgB,EAGrB,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EAIN,KAAK,EAGL,UAAU,EAGV,MAAM,EACN,KAAK,EAEN,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,EACV,uBAAuB,IAAI,wBAAwB,EACnD,WAAW,EACX,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAEzB,eAAO,MAAM,cAAc;;CAE1B,CAAA;;AAED,qBAAa,uBAAwB,SAAQ,4BAG1C;IACD,MAAM,CAAC,YAAY,8EAIQ;CAC5B;;AAED,qBAAa,oBAAqB,SAAQ,yBAGvC;CAAG;AAEN,MAAM,MAAM,qBAAqB,CAC/B,OAAO,SAAS,eAAe,EAC/B,QAAQ,GAAG,EAAE,EACb,kBAAkB,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,MAAM,CAAC,SAAS,IACrE;IACF,MAAM,EAAE,OAAO,CAAA;IACf;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,CACL,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,GAAG,uBAAuB,CAAC,CAAA;IAClF,OAAO,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAClC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAC3C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACvC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IACtC;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;CACrD,CAAA;AAED,MAAM,WAAW,kBAAkB,CACjC,OAAO,SAAS,eAAe,EAC/B,QAAQ,GAAG,EAAE,EACb,kBAAkB,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,MAAM,CAAC,SAAS;IAEvE,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,CACL,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC/B,GAAG,EAAE;QACH,gBAAgB,EAAE,gBAAgB,CAAA;QAClC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAA;KACtB,KACE,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,GAAG,uBAAuB,CAAC,CAAA;IACjG,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACxC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAClC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IACtC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE;QACP,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,UAAU,CAAC,EAAE;YACX,0BAA0B,EAAE,OAAO,0CAA0C,CAAC,IAAI,CAAA;SACnF,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,mCAAmC;AACnC,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,eAAe,GAAG,eAAe,CAAC,GAAG,EACrD,QAAQ,GAAG,EAAE,EACb,kBAAkB,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,MAAM,CAAC,SAAS,EACvE,qCAIC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG;IAC7D,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CACnC,KAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAsBjC,CAAA;AAEH,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,eAAe,GAAG,eAAe,CAAC,GAAG,EACrD,QAAQ,GAAG,EAAE,EACb,kBAAkB,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,MAAM,CAAC,SAAS,EACvE,mLAeC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,KAAG,MAAM,CAAC,MAAM,CAC1E,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EACxB,eAAe,EACf,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAkJjC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { provideOtel, UnexpectedError, } from '@livestore/common';
2
2
  import { isDevEnv, LS_DEV, omitUndefineds } from '@livestore/utils';
3
- import { Context, Deferred, Effect, Exit, Fiber, identity, Layer, Logger, LogLevel, OtelTracer, Queue, Runtime, Scope, TaskTracing, } from '@livestore/utils/effect';
3
+ import { Context, Deferred, Effect, Exit, Fiber, identity, Layer, Logger, LogLevel, OtelTracer, Queue, Runtime, Schema, Scope, TaskTracing, } from '@livestore/utils/effect';
4
4
  import { nanoid } from '@livestore/utils/nanoid';
5
5
  import * as otel from '@opentelemetry/api';
6
6
  import { connectDevtoolsToStore } from "./devtools.js";
@@ -30,11 +30,12 @@ export const createStorePromise = async ({ signal, otelOptions, ...options }) =>
30
30
  }).pipe(Effect.withSpan('createStore', {
31
31
  attributes: { storeId: options.storeId, disableDevtools: options.disableDevtools },
32
32
  }), provideOtel(omitUndefineds({ parentSpanContext: otelOptions?.rootSpanContext, otelTracer: otelOptions?.tracer })), Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: 'window' }), Effect.provide(Logger.prettyWithThread('window')), Logger.withMinimumLogLevel(LogLevel.Debug), Effect.runPromise);
33
- export const createStore = ({ schema, adapter, storeId, context = {}, boot, batchUpdates, disableDevtools, onBootStatus, shutdownDeferred, params, debug, confirmUnsavedChanges = true, syncPayload, }) => Effect.gen(function* () {
33
+ export const createStore = ({ schema, adapter, storeId, context = {}, boot, batchUpdates, disableDevtools, onBootStatus, shutdownDeferred, params, debug, confirmUnsavedChanges = true, syncPayload, syncPayloadSchema, }) => Effect.gen(function* () {
34
34
  const lifetimeScope = yield* Scope.make();
35
35
  yield* validateStoreId(storeId);
36
36
  yield* Effect.addFinalizer((_) => Scope.close(lifetimeScope, _));
37
37
  const debugInstanceId = debug?.instanceId ?? nanoid(10);
38
+ const resolvedSyncPayloadSchema = (syncPayloadSchema ?? Schema.JsonValue);
38
39
  return yield* Effect.gen(function* () {
39
40
  const span = yield* OtelTracer.currentOtelSpan.pipe(Effect.orDie);
40
41
  const otelRootSpanContext = otel.trace.setSpan(otel.context.active(), span);
@@ -57,6 +58,9 @@ export const createStore = ({ schema, adapter, storeId, context = {}, boot, batc
57
58
  // Given that the shutdown flow might also interrupt the effect that is calling the shutdown,
58
59
  // we want to detach the shutdown effect so it's not interrupted by itself
59
60
  Effect.runFork, Fiber.join);
61
+ const syncPayloadEncoded = syncPayload === undefined
62
+ ? undefined
63
+ : yield* Schema.encode(resolvedSyncPayloadSchema)(syncPayload).pipe(UnexpectedError.mapToUnexpectedError);
60
64
  const clientSession = yield* adapter({
61
65
  schema,
62
66
  storeId,
@@ -65,7 +69,8 @@ export const createStore = ({ schema, adapter, storeId, context = {}, boot, batc
65
69
  shutdown,
66
70
  connectDevtoolsToStore: connectDevtoolsToStore_,
67
71
  debugInstanceId,
68
- syncPayload,
72
+ syncPayloadSchema: resolvedSyncPayloadSchema,
73
+ syncPayloadEncoded,
69
74
  }).pipe(Effect.withPerformanceMeasure('livestore:makeAdapter'), Effect.withSpan('createStore:makeAdapter'));
70
75
  if (LS_DEV && clientSession.leaderThread.initialState.migrationsReport.migrations.length > 0) {
71
76
  yield* Effect.logDebug('[@livestore/livestore:createStore] migrationsReport', ...clientSession.leaderThread.initialState.migrationsReport.migrations.map((m) => m.hashes.actual === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../src/store/create-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../src/store/create-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/livestore",
3
- "version": "0.4.0-dev.13",
3
+ "version": "0.4.0-dev.15",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -11,8 +11,8 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@opentelemetry/api": "1.9.0",
14
- "@livestore/common": "0.4.0-dev.13",
15
- "@livestore/utils": "0.4.0-dev.13"
14
+ "@livestore/utils": "0.4.0-dev.15",
15
+ "@livestore/common": "0.4.0-dev.15"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@opentelemetry/sdk-trace-base": "^2.0.1",
@@ -20,8 +20,8 @@
20
20
  "typescript": "5.9.2",
21
21
  "vite": "7.1.7",
22
22
  "vitest": "3.2.4",
23
- "@livestore/adapter-web": "0.4.0-dev.13",
24
- "@livestore/utils-dev": "0.4.0-dev.13"
23
+ "@livestore/utils-dev": "0.4.0-dev.15",
24
+ "@livestore/adapter-web": "0.4.0-dev.15"
25
25
  },
26
26
  "files": [
27
27
  "package.json",
@@ -16,6 +16,8 @@ export const makeLiveStoreContext = <TSchema extends LiveStoreSchema, TContext =
16
16
  disableDevtools,
17
17
  onBootStatus,
18
18
  batchUpdates,
19
+ syncPayload,
20
+ syncPayloadSchema,
19
21
  }: LiveStoreContextProps<TSchema, TContext>): Effect.Effect<
20
22
  LiveStoreContextRunning['Type'],
21
23
  UnexpectedError | Cause.TimeoutException,
@@ -28,7 +30,7 @@ export const makeLiveStoreContext = <TSchema extends LiveStoreSchema, TContext =
28
30
  storeId,
29
31
  adapter,
30
32
  batchUpdates,
31
- ...omitUndefineds({ context, boot, disableDevtools, onBootStatus }),
33
+ ...omitUndefineds({ context, boot, disableDevtools, onBootStatus, syncPayload, syncPayloadSchema }),
32
34
  })
33
35
 
34
36
  globalThis.__debugLiveStore ??= {}
@@ -28,7 +28,7 @@ import {
28
28
  OtelTracer,
29
29
  Queue,
30
30
  Runtime,
31
- type Schema,
31
+ Schema,
32
32
  Scope,
33
33
  TaskTracing,
34
34
  } from '@livestore/utils/effect'
@@ -63,7 +63,11 @@ export class DeferredStoreContext extends Context.Tag('@livestore/livestore/effe
63
63
  Deferred.Deferred<LiveStoreContextRunning['Type'], UnexpectedError>
64
64
  >() {}
65
65
 
66
- export type LiveStoreContextProps<TSchema extends LiveStoreSchema, TContext = {}> = {
66
+ export type LiveStoreContextProps<
67
+ TSchema extends LiveStoreSchema,
68
+ TContext = {},
69
+ TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue,
70
+ > = {
67
71
  schema: TSchema
68
72
  /**
69
73
  * The `storeId` can be used to isolate multiple stores from each other.
@@ -88,9 +92,32 @@ export type LiveStoreContextProps<TSchema extends LiveStoreSchema, TContext = {}
88
92
  disableDevtools?: boolean | 'auto'
89
93
  onBootStatus?: (status: BootStatus) => void
90
94
  batchUpdates: (run: () => void) => void
95
+ /**
96
+ * Schema describing the shape of the sync payload and used to encode it.
97
+ *
98
+ * - If omitted, `Schema.JsonValue` is used (no additional typing/validation).
99
+ * - Prefer exporting a schema from your app (e.g. `export const SyncPayload = Schema.Struct({ authToken: Schema.String })`)
100
+ * and pass it here to get end-to-end type safety and validation.
101
+ */
102
+ syncPayloadSchema?: TSyncPayloadSchema
103
+ /**
104
+ * Payload that is sent to the sync backend during connection establishment.
105
+ *
106
+ * - Its TypeScript type is inferred from `syncPayloadSchema` (i.e. `typeof SyncPayload.Type`).
107
+ * - At runtime this value is encoded with `syncPayloadSchema` before being handed to the adapter.
108
+ *
109
+ * Example:
110
+ * const SyncPayload = Schema.Struct({ authToken: Schema.String })
111
+ * <LiveStoreProvider syncPayloadSchema={SyncPayload} syncPayload={{ authToken: '...' }} />
112
+ */
113
+ syncPayload?: Schema.Schema.Type<TSyncPayloadSchema>
91
114
  }
92
115
 
93
- export interface CreateStoreOptions<TSchema extends LiveStoreSchema, TContext = {}> {
116
+ export interface CreateStoreOptions<
117
+ TSchema extends LiveStoreSchema,
118
+ TContext = {},
119
+ TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue,
120
+ > {
94
121
  schema: TSchema
95
122
  adapter: Adapter
96
123
  storeId: string
@@ -119,11 +146,23 @@ export interface CreateStoreOptions<TSchema extends LiveStoreSchema, TContext =
119
146
  */
120
147
  confirmUnsavedChanges?: boolean
121
148
  /**
122
- * Payload that will be passed to the sync backend when connecting
149
+ * Schema describing the shape of the sync payload and used to encode it.
150
+ *
151
+ * - If omitted, `Schema.JsonValue` is used (no additional typing/validation).
152
+ * - Prefer exporting a schema from your app (e.g. `export const SyncPayload = Schema.Struct({ authToken: Schema.String })`)
153
+ * and pass it here to get end-to-end type safety and validation.
154
+ */
155
+ syncPayloadSchema?: TSyncPayloadSchema
156
+ /**
157
+ * Payload that is sent to the sync backend during connection establishment.
158
+ *
159
+ * - Its TypeScript type is inferred from `syncPayloadSchema` (i.e. `typeof SyncPayload.Type`).
160
+ * - At runtime this value is encoded with `syncPayloadSchema` and carried through the adapter
161
+ * to the backend where it can be decoded with the same schema.
123
162
  *
124
163
  * @default undefined
125
164
  */
126
- syncPayload?: Schema.JsonValue
165
+ syncPayload?: Schema.Schema.Type<TSyncPayloadSchema>
127
166
  params?: {
128
167
  leaderPushBatchSize?: number
129
168
  simulation?: {
@@ -136,11 +175,15 @@ export interface CreateStoreOptions<TSchema extends LiveStoreSchema, TContext =
136
175
  }
137
176
 
138
177
  /** Create a new LiveStore Store */
139
- export const createStorePromise = async <TSchema extends LiveStoreSchema = LiveStoreSchema.Any, TContext = {}>({
178
+ export const createStorePromise = async <
179
+ TSchema extends LiveStoreSchema = LiveStoreSchema.Any,
180
+ TContext = {},
181
+ TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue,
182
+ >({
140
183
  signal,
141
184
  otelOptions,
142
185
  ...options
143
- }: CreateStoreOptions<TSchema, TContext> & {
186
+ }: CreateStoreOptions<TSchema, TContext, TSyncPayloadSchema> & {
144
187
  signal?: AbortSignal
145
188
  otelOptions?: Partial<OtelOptions>
146
189
  }): Promise<Store<TSchema, TContext>> =>
@@ -167,7 +210,11 @@ export const createStorePromise = async <TSchema extends LiveStoreSchema = LiveS
167
210
  Effect.runPromise,
168
211
  )
169
212
 
170
- export const createStore = <TSchema extends LiveStoreSchema = LiveStoreSchema.Any, TContext = {}>({
213
+ export const createStore = <
214
+ TSchema extends LiveStoreSchema = LiveStoreSchema.Any,
215
+ TContext = {},
216
+ TSyncPayloadSchema extends Schema.Schema<any> = typeof Schema.JsonValue,
217
+ >({
171
218
  schema,
172
219
  adapter,
173
220
  storeId,
@@ -181,7 +228,8 @@ export const createStore = <TSchema extends LiveStoreSchema = LiveStoreSchema.An
181
228
  debug,
182
229
  confirmUnsavedChanges = true,
183
230
  syncPayload,
184
- }: CreateStoreOptions<TSchema, TContext>): Effect.Effect<
231
+ syncPayloadSchema,
232
+ }: CreateStoreOptions<TSchema, TContext, TSyncPayloadSchema>): Effect.Effect<
185
233
  Store<TSchema, TContext>,
186
234
  UnexpectedError,
187
235
  Scope.Scope | OtelTracer.OtelTracer
@@ -194,6 +242,7 @@ export const createStore = <TSchema extends LiveStoreSchema = LiveStoreSchema.An
194
242
  yield* Effect.addFinalizer((_) => Scope.close(lifetimeScope, _))
195
243
 
196
244
  const debugInstanceId = debug?.instanceId ?? nanoid(10)
245
+ const resolvedSyncPayloadSchema = (syncPayloadSchema ?? Schema.JsonValue) as TSyncPayloadSchema
197
246
 
198
247
  return yield* Effect.gen(function* () {
199
248
  const span = yield* OtelTracer.currentOtelSpan.pipe(Effect.orDie)
@@ -250,6 +299,11 @@ export const createStore = <TSchema extends LiveStoreSchema = LiveStoreSchema.An
250
299
  Fiber.join,
251
300
  )
252
301
 
302
+ const syncPayloadEncoded =
303
+ syncPayload === undefined
304
+ ? undefined
305
+ : yield* Schema.encode(resolvedSyncPayloadSchema)(syncPayload).pipe(UnexpectedError.mapToUnexpectedError)
306
+
253
307
  const clientSession: ClientSession = yield* adapter({
254
308
  schema,
255
309
  storeId,
@@ -258,7 +312,8 @@ export const createStore = <TSchema extends LiveStoreSchema = LiveStoreSchema.An
258
312
  shutdown,
259
313
  connectDevtoolsToStore: connectDevtoolsToStore_,
260
314
  debugInstanceId,
261
- syncPayload,
315
+ syncPayloadSchema: resolvedSyncPayloadSchema,
316
+ syncPayloadEncoded,
262
317
  }).pipe(Effect.withPerformanceMeasure('livestore:makeAdapter'), Effect.withSpan('createStore:makeAdapter'))
263
318
 
264
319
  if (LS_DEV && clientSession.leaderThread.initialState.migrationsReport.migrations.length > 0) {