@livestore/adapter-node 0.4.0-dev.9 → 0.5.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/client-session/adapter.d.ts +69 -3
  3. package/dist/client-session/adapter.d.ts.map +1 -1
  4. package/dist/client-session/adapter.js +160 -62
  5. package/dist/client-session/adapter.js.map +1 -1
  6. package/dist/devtools/devtools-server.d.ts.map +1 -1
  7. package/dist/devtools/devtools-server.js +25 -19
  8. package/dist/devtools/devtools-server.js.map +1 -1
  9. package/dist/devtools/mod.d.ts +1 -1
  10. package/dist/devtools/mod.d.ts.map +1 -1
  11. package/dist/devtools/mod.js +1 -1
  12. package/dist/devtools/mod.js.map +1 -1
  13. package/dist/devtools/vite-dev-server.d.ts +22 -4
  14. package/dist/devtools/vite-dev-server.d.ts.map +1 -1
  15. package/dist/devtools/vite-dev-server.js +45 -11
  16. package/dist/devtools/vite-dev-server.js.map +1 -1
  17. package/dist/leader-thread-shared.d.ts +8 -7
  18. package/dist/leader-thread-shared.d.ts.map +1 -1
  19. package/dist/leader-thread-shared.js +19 -16
  20. package/dist/leader-thread-shared.js.map +1 -1
  21. package/dist/make-leader-worker.d.ts +5 -3
  22. package/dist/make-leader-worker.d.ts.map +1 -1
  23. package/dist/make-leader-worker.js +75 -59
  24. package/dist/make-leader-worker.js.map +1 -1
  25. package/dist/rpc-worker.d.ts +8 -0
  26. package/dist/rpc-worker.d.ts.map +1 -0
  27. package/dist/rpc-worker.js +5 -0
  28. package/dist/rpc-worker.js.map +1 -0
  29. package/dist/shutdown-channel.d.ts.map +1 -1
  30. package/dist/shutdown-channel.js.map +1 -1
  31. package/dist/webchannel.d.ts +1 -1
  32. package/dist/webchannel.d.ts.map +1 -1
  33. package/dist/webchannel.js +17 -18
  34. package/dist/webchannel.js.map +1 -1
  35. package/dist/worker-schema.d.ts +274 -138
  36. package/dist/worker-schema.d.ts.map +1 -1
  37. package/dist/worker-schema.js +79 -45
  38. package/dist/worker-schema.js.map +1 -1
  39. package/package.json +51 -20
  40. package/src/client-session/adapter.ts +228 -124
  41. package/src/devtools/devtools-server.ts +50 -35
  42. package/src/devtools/mod.ts +1 -1
  43. package/src/devtools/vite-dev-server.ts +65 -15
  44. package/src/leader-thread-shared.ts +37 -34
  45. package/src/make-leader-worker.ts +164 -115
  46. package/src/rpc-worker.ts +28 -0
  47. package/src/shutdown-channel.ts +1 -0
  48. package/src/webchannel.ts +21 -28
  49. package/src/worker-schema.ts +132 -117
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-server.js","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devtools-server.js","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { startDevtoolsServer } from './devtools-server.ts';
2
2
  export type { ViteDevtoolsOptions } from './vite-dev-server.ts';
3
- export { makeViteMiddleware } from './vite-dev-server.ts';
3
+ export { DevtoolsViteNotInstalledError, makeViteMiddleware } from './vite-dev-server.ts';
4
4
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export { startDevtoolsServer } from "./devtools-server.js";
2
- export { makeViteMiddleware } from "./vite-dev-server.js";
2
+ export { DevtoolsViteNotInstalledError, makeViteMiddleware } from "./vite-dev-server.js";
3
3
  //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1,7 +1,24 @@
1
1
  import type { Devtools } from '@livestore/common';
2
- import { UnexpectedError } from '@livestore/common';
3
- import { Effect } from '@livestore/utils/effect';
4
- import * as Vite from 'vite';
2
+ import { UnknownError } from '@livestore/common';
3
+ import { Effect, Schema } from '@livestore/utils/effect';
4
+ import type * as Vite from 'vite';
5
+ declare const DevtoolsViteNotInstalledError_base: Schema.Class<DevtoolsViteNotInstalledError, Schema.TaggedStruct<"DevtoolsViteNotInstalledError", {
6
+ readonly cause: Schema.Defect;
7
+ }>, import("effect/Cause").YieldableError>;
8
+ /**
9
+ * Error thrown when @livestore/devtools-vite is not installed.
10
+ * This is a peer dependency that must be installed separately.
11
+ */
12
+ export declare class DevtoolsViteNotInstalledError extends DevtoolsViteNotInstalledError_base {
13
+ get message(): string;
14
+ }
15
+ declare const ViteNotInstalledError_base: Schema.Class<ViteNotInstalledError, Schema.TaggedStruct<"ViteNotInstalledError", {
16
+ readonly cause: Schema.Defect;
17
+ }>, import("effect/Cause").YieldableError>;
18
+ /** Error thrown when vite is not installed for the devtools server path. */
19
+ export declare class ViteNotInstalledError extends ViteNotInstalledError_base {
20
+ get message(): string;
21
+ }
5
22
  export type ViteDevtoolsOptions = {
6
23
  viteConfig?: (config: Vite.UserConfig) => Vite.UserConfig;
7
24
  /**
@@ -20,5 +37,6 @@ export type ViteDevtoolsOptions = {
20
37
  _tag: 'node';
21
38
  }>;
22
39
  };
23
- export declare const makeViteMiddleware: (options: ViteDevtoolsOptions) => Effect.Effect<Vite.ViteDevServer, UnexpectedError>;
40
+ export declare const makeViteMiddleware: (options: ViteDevtoolsOptions) => Effect.Effect<Vite.ViteDevServer, DevtoolsViteNotInstalledError | ViteNotInstalledError | UnknownError>;
41
+ export {};
24
42
  //# sourceMappingURL=vite-dev-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAA;IACzD;;;;;OAKG;IACH,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAC1C;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvD,CAAA;AAGD,eAAO,MAAM,kBAAkB,GAAI,SAAS,mBAAmB,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAqCtC,CAAA"}
1
+ {"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAA;;;;AAEjC;;;GAGG;AACH,qBAAa,6BAA8B,SAAQ,kCAIjD;IACA,IAAa,OAAO,IAAI,MAAM,CAM7B;CACF;;;;AAED,4EAA4E;AAC5E,qBAAa,qBAAsB,SAAQ,0BAIzC;IACA,IAAa,OAAO,IAAI,MAAM,CAK7B;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAA;IACzD;;;;;OAKG;IACH,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAC1C;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvD,CAAA;AAGD,eAAO,MAAM,kBAAkB,GAC7B,SAAS,mBAAmB,KAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,6BAA6B,GAAG,qBAAqB,GAAG,YAAY,CAuC5B,CAAA"}
@@ -1,14 +1,35 @@
1
1
  import path from 'node:path';
2
- import { UnexpectedError } from '@livestore/common';
3
- import { livestoreDevtoolsPlugin } from '@livestore/devtools-vite';
4
- import { isReadonlyArray } from '@livestore/utils';
5
- import { Effect } from '@livestore/utils/effect';
2
+ import { UnknownError } from '@livestore/common';
3
+ import { Effect, Schema } from '@livestore/utils/effect';
6
4
  import { getFreePort } from '@livestore/utils/node';
7
- import * as Vite from 'vite';
5
+ /**
6
+ * Error thrown when @livestore/devtools-vite is not installed.
7
+ * This is a peer dependency that must be installed separately.
8
+ */
9
+ export class DevtoolsViteNotInstalledError extends Schema.TaggedError('~@livestore/adapter-node/DevtoolsViteNotInstalledError')('DevtoolsViteNotInstalledError', {
10
+ cause: Schema.Defect(),
11
+ }) {
12
+ get message() {
13
+ return (`@livestore/devtools-vite is required for devtools but not installed. ` +
14
+ `Install it with: pnpm add @livestore/devtools-vite@<version>. ` +
15
+ `Make sure to use the same version as @livestore/adapter-node.`);
16
+ }
17
+ }
18
+ /** Error thrown when vite is not installed for the devtools server path. */
19
+ export class ViteNotInstalledError extends Schema.TaggedError('~@livestore/adapter-node/ViteNotInstalledError')('ViteNotInstalledError', {
20
+ cause: Schema.Defect(),
21
+ }) {
22
+ get message() {
23
+ return (`vite is required for @livestore/adapter-node/devtools but not installed. ` +
24
+ `Install it with: pnpm add -D vite@<version>.`);
25
+ }
26
+ }
8
27
  // NOTE this is currently also used in @livestore/devtools-expo
9
28
  export const makeViteMiddleware = (options) => Effect.gen(function* () {
29
+ const { livestoreDevtoolsPlugin } = yield* importDevtoolsVite();
30
+ const Vite = yield* importVite();
10
31
  const cwd = process.cwd();
11
- const hmrPort = yield* getFreePort.pipe(UnexpectedError.mapToUnexpectedError);
32
+ const hmrPort = yield* getFreePort.pipe(UnknownError.mapToUnknownError);
12
33
  const defaultViteConfig = Vite.defineConfig({
13
34
  server: {
14
35
  middlewareMode: true,
@@ -16,15 +37,15 @@ export const makeViteMiddleware = (options) => Effect.gen(function* () {
16
37
  port: hmrPort,
17
38
  },
18
39
  // Relaxing fs access for monorepo setup
19
- fs: { strict: process.env.LS_DEV ? false : true },
40
+ fs: { strict: process.env.LS_DEV !== undefined ? false : true },
20
41
  },
21
42
  appType: 'spa',
22
43
  base: '/_livestore/',
23
44
  plugins: [
24
45
  livestoreDevtoolsPlugin({
25
- schemaPath: isReadonlyArray(options.schemaPath)
26
- ? options.schemaPath.map((schemaPath) => path.resolve(cwd, schemaPath))
27
- : path.resolve(cwd, options.schemaPath),
46
+ schemaPath: typeof options.schemaPath === 'string'
47
+ ? path.resolve(cwd, options.schemaPath)
48
+ : options.schemaPath.map((schemaPath) => path.resolve(cwd, schemaPath)),
28
49
  mode: options.mode,
29
50
  path: '/',
30
51
  }),
@@ -33,7 +54,20 @@ export const makeViteMiddleware = (options) => Effect.gen(function* () {
33
54
  logLevel: 'silent',
34
55
  });
35
56
  const viteConfig = options.viteConfig?.(defaultViteConfig) ?? defaultViteConfig;
36
- const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(UnexpectedError.mapToUnexpectedError);
57
+ const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(UnknownError.mapToUnknownError);
37
58
  return viteServer;
38
59
  }).pipe(Effect.withSpan('@livestore/adapter-node:devtools:makeViteServer'));
60
+ /**
61
+ * Dynamically imports @livestore/devtools-vite.
62
+ * This package is a peer dependency and may not be installed.
63
+ */
64
+ const importDevtoolsVite = () => Effect.tryPromise({
65
+ try: () => import('@livestore/devtools-vite'),
66
+ catch: (cause) => new DevtoolsViteNotInstalledError({ cause }),
67
+ });
68
+ /** Dynamically imports vite for the devtools-only server path. */
69
+ const importVite = () => Effect.tryPromise({
70
+ try: () => import('vite'),
71
+ catch: (cause) => new ViteNotInstalledError({ cause }),
72
+ });
39
73
  //# sourceMappingURL=vite-dev-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAmB5B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAA4B,EAAsD,EAAE,CACrH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA;IAE7E,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1C,MAAM,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE;gBACH,IAAI,EAAE,OAAO;aACd;YACD,wCAAwC;YACxC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;SAClD;QACD,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP,uBAAuB,CAAC;gBACtB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;oBAC7C,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;oBACvE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC;gBACzC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,GAAG;aACV,CAAC;SACH;QACD,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAA;IAE/E,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAChF,eAAe,CAAC,oBAAoB,CACrC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { ClientSessionLeaderThreadProxy, MakeSqliteDb, SqliteDb, SyncOptions } from '@livestore/common';
2
- import { UnexpectedError } from '@livestore/common';
2
+ import { UnknownError } from '@livestore/common';
3
3
  import type { LeaderThreadCtx } from '@livestore/common/leader-thread';
4
4
  import type { LiveStoreSchema } from '@livestore/common/schema';
5
5
  import type { MakeNodeSqliteDb } from '@livestore/sqlite-wasm/node';
6
- import type { FileSystem, HttpClient, Layer, Schema, Scope } from '@livestore/utils/effect';
7
- import { Effect } from '@livestore/utils/effect';
6
+ import type { FileSystem, HttpClient, Schema, Scope } from '@livestore/utils/effect';
7
+ import { Effect, Layer } from '@livestore/utils/effect';
8
8
  import type * as WorkerSchema from './worker-schema.ts';
9
9
  export type TestingOverrides = {
10
10
  clientSession?: {
@@ -13,7 +13,7 @@ export type TestingOverrides = {
13
13
  makeLeaderThread?: (makeSqliteDb: MakeSqliteDb) => Effect.Effect<{
14
14
  dbEventlog: SqliteDb;
15
15
  dbState: SqliteDb;
16
- }, UnexpectedError>;
16
+ }, UnknownError>;
17
17
  };
18
18
  export interface MakeLeaderThreadArgs {
19
19
  storeId: string;
@@ -21,10 +21,11 @@ export interface MakeLeaderThreadArgs {
21
21
  syncOptions: SyncOptions | undefined;
22
22
  storage: WorkerSchema.StorageType;
23
23
  makeSqliteDb: MakeNodeSqliteDb;
24
- devtools: WorkerSchema.LeaderWorkerInnerInitialMessage['devtools'];
24
+ devtools: WorkerSchema.LeaderWorkerInnerInitialMessagePayload['devtools'];
25
25
  schema: LiveStoreSchema;
26
- syncPayload: Schema.JsonValue | undefined;
26
+ syncPayloadEncoded: Schema.Json | undefined;
27
+ syncPayloadSchema: Schema.Schema<any> | undefined;
27
28
  testing: TestingOverrides | undefined;
28
29
  }
29
- export declare const makeLeaderThread: ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayload, testing, }: MakeLeaderThreadArgs) => Effect.Effect<Layer.Layer<LeaderThreadCtx, UnexpectedError, Scope.Scope | HttpClient.HttpClient | FileSystem.FileSystem>, UnexpectedError, Scope.Scope>;
30
+ export declare const makeLeaderThread: ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayloadEncoded, syncPayloadSchema, testing, }: MakeLeaderThreadArgs) => Effect.Effect<Layer.Layer<LeaderThreadCtx, UnknownError, Scope.Scope | HttpClient.HttpClient | FileSystem.FileSystem>, UnknownError, Scope.Scope>;
30
31
  //# sourceMappingURL=leader-thread-shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"leader-thread-shared.d.ts","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5G,OAAO,EAAsD,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACvG,OAAO,KAAK,EAAmC,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEvG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE;QACd,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,8BAA8B,CAAC,8BAA8B,KACpE,OAAO,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,CAAA;KAC5E,CAAA;IACD,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAC9D;QACE,UAAU,EAAE,QAAQ,CAAA;QACpB,OAAO,EAAE,QAAQ,CAAA;KAClB,EACD,eAAe,CAChB,CAAA;CACF,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;IACpC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAA;IACjC,YAAY,EAAE,gBAAgB,CAAA;IAC9B,QAAQ,EAAE,YAAY,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAA;IAClE,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;IACzC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CACtC;AAED,eAAO,MAAM,gBAAgB,GAAI,oGAU9B,oBAAoB,KAAG,MAAM,CAAC,MAAM,CACrC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,EAC1G,eAAe,EACf,KAAK,CAAC,KAAK,CA8DV,CAAA"}
1
+ {"version":3,"file":"leader-thread-shared.d.ts","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5G,OAAO,EAAiE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,KAAK,EAAmC,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEvG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAIvD,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE;QACd,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,8BAA8B,CAAC,8BAA8B,KACpE,OAAO,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,CAAA;KAC5E,CAAA;IACD,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAC9D;QACE,UAAU,EAAE,QAAQ,CAAA;QACpB,OAAO,EAAE,QAAQ,CAAA;KAClB,EACD,YAAY,CACb,CAAA;CACF,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;IACpC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAA;IACjC,YAAY,EAAE,gBAAgB,CAAA;IAC9B,QAAQ,EAAE,YAAY,CAAC,sCAAsC,CAAC,UAAU,CAAC,CAAA;IACzE,MAAM,EAAE,eAAe,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAC,IAAI,GAAG,SAAS,CAAA;IAC3C,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IACjD,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CACtC;AAED,eAAO,MAAM,gBAAgB,GAAI,8HAW9B,oBAAoB,KAAG,MAAM,CAAC,MAAM,CACrC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,EACvG,YAAY,EACZ,KAAK,CAAC,KAAK,CA+DV,CAAA"}
@@ -1,19 +1,19 @@
1
1
  import inspector from 'node:inspector';
2
2
  import path from 'node:path';
3
- if (process.execArgv.includes('--inspect')) {
3
+ if (process.execArgv.includes('--inspect') === true) {
4
4
  inspector.open();
5
5
  inspector.waitForDebugger();
6
6
  }
7
- import { Devtools, liveStoreStorageFormatVersion, migrateDb, UnexpectedError } from '@livestore/common';
7
+ import { Devtools, liveStoreStorageFormatVersion, migrateDb, StateHead, UnknownError } from '@livestore/common';
8
8
  import { configureConnection, makeLeaderThreadLayer } from '@livestore/common/leader-thread';
9
- import { Effect } from '@livestore/utils/effect';
9
+ import { getStateDbBaseName } from '@livestore/common/schema';
10
+ import { Effect, Layer } from '@livestore/utils/effect';
10
11
  import * as Webmesh from '@livestore/webmesh';
11
12
  import { makeShutdownChannel } from "./shutdown-channel.js";
12
- export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayload, testing, }) => Effect.gen(function* () {
13
- const runtime = yield* Effect.runtime();
14
- const schemaHashSuffix = schema.state.sqlite.migrations.strategy === 'manual' ? 'fixed' : schema.state.sqlite.hash.toString();
13
+ export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayloadEncoded, syncPayloadSchema, testing, }) => Effect.gen(function* () {
14
+ const services = yield* Effect.context();
15
15
  const makeDb = (kind) => {
16
- if (testing?.makeLeaderThread) {
16
+ if (testing?.makeLeaderThread !== undefined) {
17
17
  return testing
18
18
  .makeLeaderThread(makeSqliteDb)
19
19
  .pipe(Effect.map(({ dbEventlog, dbState }) => (kind === 'state' ? dbState : dbEventlog)));
@@ -21,15 +21,17 @@ export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb,
21
21
  return storage.type === 'in-memory'
22
22
  ? makeSqliteDb({
23
23
  _tag: 'in-memory',
24
- configureDb: (db) => configureConnection(db, { foreignKeys: true }).pipe(Effect.provide(runtime), Effect.runSync),
24
+ configureDb: (db) => configureConnection(db, { foreignKeys: true }).pipe(Effect.runSyncWith(services)),
25
25
  })
26
- : makeSqliteDb({
26
+ : Effect.acquireRelease(makeSqliteDb({
27
27
  _tag: 'fs',
28
28
  directory: path.join(storage.baseDirectory ?? '', storeId),
29
- fileName: kind === 'state' ? getStateDbFileName(schemaHashSuffix) : `eventlog@${liveStoreStorageFormatVersion}.db`,
29
+ fileName: kind === 'state'
30
+ ? `${getStateDbBaseName(schema)}@${liveStoreStorageFormatVersion}.db`
31
+ : `eventlog@${liveStoreStorageFormatVersion}.db`,
30
32
  // TODO enable WAL for nodejs
31
- configureDb: (db) => configureConnection(db, { foreignKeys: true }).pipe(Effect.provide(runtime), Effect.runSync),
32
- }).pipe(Effect.acquireRelease((db) => Effect.sync(() => db.close())));
33
+ configureDb: (db) => configureConnection(db, { foreignKeys: true }).pipe(Effect.runSyncWith(services)),
34
+ }), (db) => Effect.sync(() => db.close()));
33
35
  };
34
36
  // Might involve some async work, so we're running them concurrently
35
37
  const [dbState, dbEventlog] = yield* Effect.all([makeDb('state'), makeDb('eventlog')], { concurrency: 2 });
@@ -49,12 +51,12 @@ export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb,
49
51
  dbEventlog,
50
52
  devtoolsOptions,
51
53
  shutdownChannel,
52
- syncPayload,
53
- });
54
- }).pipe(Effect.tapCauseLogPretty, UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:makeLeaderThread', {
54
+ syncPayloadEncoded,
55
+ syncPayloadSchema: syncPayloadSchema,
56
+ }).pipe(Layer.provide(StateHead.layer({ dbState })));
57
+ }).pipe(Effect.tapCauseLogPretty, UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:makeLeaderThread', {
55
58
  attributes: { storeId, clientId, storage, devtools, syncOptions },
56
59
  }));
57
- const getStateDbFileName = (suffix) => `state${suffix}@${liveStoreStorageFormatVersion}.db`;
58
60
  const makeDevtoolsOptions = ({ dbState, dbEventlog, storeId, clientId, devtools, }) => Effect.gen(function* () {
59
61
  if (devtools.enabled === false) {
60
62
  return {
@@ -76,6 +78,7 @@ const makeDevtoolsOptions = ({ dbState, dbEventlog, storeId, clientId, devtools,
76
78
  sessionId: 'static', // TODO make this dynamic
77
79
  schemaAlias: devtools.schemaAlias,
78
80
  isLeader: true,
81
+ origin: undefined,
79
82
  }),
80
83
  port: devtools.port,
81
84
  host: devtools.host,
@@ -1 +1 @@
1
- {"version":3,"file":"leader-thread-shared.js","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leader-thread-shared.js","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import './thread-polyfill.ts';
2
2
  import type { SyncOptions } from '@livestore/common';
3
+ import { LogConfig } from '@livestore/common';
3
4
  import type { LiveStoreSchema } from '@livestore/common/schema';
4
5
  import { Effect, Schema } from '@livestore/utils/effect';
5
6
  import type * as otel from '@opentelemetry/api';
@@ -7,19 +8,20 @@ import type { TestingOverrides } from './leader-thread-shared.ts';
7
8
  export type WorkerOptions = {
8
9
  schema: LiveStoreSchema;
9
10
  sync?: SyncOptions;
11
+ syncPayloadSchema?: Schema.Schema<any>;
10
12
  otelOptions?: {
11
13
  tracer?: otel.Tracer;
12
14
  /** @default 'livestore-node-leader-thread' */
13
15
  serviceName?: string;
14
16
  };
15
17
  testing?: TestingOverrides;
16
- };
18
+ } & LogConfig.LoggerOptions;
17
19
  export declare const getWorkerArgs: () => {
18
20
  readonly clientId: string;
19
21
  readonly storeId: string;
20
22
  readonly sessionId: string;
21
- readonly extraArgs: Schema.JsonValue | undefined;
23
+ readonly extraArgs?: Schema.Json | undefined;
22
24
  };
23
25
  export declare const makeWorker: (options: WorkerOptions) => void;
24
- export declare const makeWorkerEffect: (options: WorkerOptions) => Effect.Effect<void, import("@effect/platform/WorkerError").WorkerError, never>;
26
+ export declare const makeWorkerEffect: (options: WorkerOptions) => Effect.Effect<never, import("effect/unstable/workers/WorkerError").WorkerError, never>;
25
27
  //# sourceMappingURL=make-leader-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAS7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI/D,OAAO,EACL,MAAM,EAON,MAAM,EAGP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAIjE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,aAAa;;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,GAAI,SAAS,aAAa,SAKhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,aAAa,mFA+GtD,CAAA"}
1
+ {"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAQ7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAgB,MAAM,mBAAmB,CAAA;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAK/D,OAAO,EACL,MAAM,EAQN,MAAM,EAGP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAIjE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B,GAAG,SAAS,CAAC,aAAa,CAAA;AAE3B,eAAO,MAAM,aAAa;;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,GAAI,SAAS,aAAa,SAEhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,aAAa,2FA6BtD,CAAA"}
@@ -1,86 +1,102 @@
1
1
  import "./thread-polyfill.js";
2
2
  import inspector from 'node:inspector';
3
- if (process.execArgv.includes('--inspect')) {
3
+ if (process.execArgv.includes('--inspect') === true) {
4
4
  inspector.open();
5
5
  inspector.waitForDebugger();
6
6
  }
7
- import { UnexpectedError } from '@livestore/common';
8
- import { Eventlog, LeaderThreadCtx } from '@livestore/common/leader-thread';
7
+ import { LogConfig, UnknownError } from '@livestore/common';
8
+ import { Eventlog, LeaderThreadCtx, streamEventsWithSyncState } from '@livestore/common/leader-thread';
9
9
  import { LiveStoreEvent } from '@livestore/common/schema';
10
10
  import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
11
11
  import { sqliteDbFactory } from '@livestore/sqlite-wasm/node';
12
- import { Effect, FetchHttpClient, identity, Layer, Logger, LogLevel, OtelTracer, Schema, Stream, WorkerRunner, } from '@livestore/utils/effect';
12
+ import { isDevEnv } from '@livestore/utils';
13
+ import { Effect, FetchHttpClient, Layer, OtelTracer, Queue, References, RpcServer, RpcWorker, Schema, Scope, Stream, } from '@livestore/utils/effect';
13
14
  import { PlatformNode } from '@livestore/utils/node';
14
15
  import { makeLeaderThread } from "./leader-thread-shared.js";
15
16
  import * as WorkerSchema from "./worker-schema.js";
16
17
  export const getWorkerArgs = () => Schema.decodeSync(WorkerSchema.WorkerArgv)(process.argv[2]);
17
18
  export const makeWorker = (options) => {
18
- makeWorkerEffect(options).pipe(Effect.provide(Logger.prettyWithThread(options.otelOptions?.serviceName ?? 'livestore-node-leader-thread')), PlatformNode.NodeRuntime.runMain);
19
+ makeWorkerEffect(options).pipe(PlatformNode.NodeRuntime.runMain);
19
20
  };
20
21
  export const makeWorkerEffect = (options) => {
21
- const TracingLive = options.otelOptions?.tracer
22
- ? Layer.unwrapEffect(Effect.map(OtelTracer.make, Layer.setTracer)).pipe(Layer.provideMerge(Layer.succeed(OtelTracer.OtelTracer, options.otelOptions.tracer)))
23
- : undefined;
24
- return WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerInnerRequest, {
25
- InitialMessage: (args) => Effect.gen(function* () {
26
- const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm()).pipe(Effect.withSpan('@livestore/adapter-node:leader-thread:loadSqlite3Wasm'));
27
- const makeSqliteDb = yield* sqliteDbFactory({ sqlite3 });
28
- return yield* makeLeaderThread({
29
- ...args,
30
- syncOptions: options.sync,
31
- schema: options.schema,
32
- testing: options.testing,
33
- makeSqliteDb,
34
- });
35
- }).pipe(Layer.unwrapScoped),
36
- PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, (_) => _.syncProcessor.push(batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)),
37
- // We'll wait in order to keep back pressure on the client session
38
- { waitForProcessing: true })).pipe(Effect.uninterruptible, Effect.withSpan('@livestore/adapter-node:worker:PushToLeader')),
39
- BootStatusStream: () => Effect.andThen(LeaderThreadCtx, (_) => Stream.fromQueue(_.bootStatusQueue)).pipe(Stream.unwrap),
22
+ const TracingLive = options.otelOptions?.tracer !== undefined
23
+ ? OtelTracer.layerWithoutOtelTracer.pipe(Layer.provideMerge(Layer.succeed(OtelTracer.OtelTracer, options.otelOptions.tracer)))
24
+ : Layer.empty;
25
+ // Merge the runtime dependencies once so we can provide them together without chaining Effect.provide.
26
+ const runtimeLayer = Layer.mergeAll(FetchHttpClient.layer, PlatformNode.NodeFileSystem.layer, TracingLive);
27
+ return RpcServer.make(WorkerSchema.LeaderWorkerInnerRpcs).pipe(Effect.provide(makeWorkerRunnerInner(options)), Effect.provide(RpcServer.layerProtocolWorkerRunner), Effect.provide(PlatformNode.NodeWorkerRunner.layer), Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({
28
+ thread: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread',
29
+ processId: process.pid,
30
+ }), Effect.provide(Layer.mergeAll(options.logger ?? Layer.empty, Layer.succeed(References.MinimumLogLevel, options.logLevel ?? (isDevEnv() === true ? 'Debug' : 'Info')))), Effect.provide(runtimeLayer));
31
+ };
32
+ const makeWorkerRunnerInner = (options) => WorkerSchema.LeaderWorkerInnerRpcs.toLayer(Effect.gen(function* () {
33
+ const leaderThreadScope = yield* Scope.make();
34
+ yield* Effect.addFinalizer((exit) => Scope.close(leaderThreadScope, exit));
35
+ const leaderThreadContextOnce = yield* Effect.cached(Effect.gen(function* () {
36
+ const { storeId, clientId, storage, devtools, syncPayloadEncoded } = yield* RpcWorker.initialMessage(WorkerSchema.LeaderWorkerInnerInitialMessage.payloadSchema);
37
+ const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm()).pipe(Effect.withSpan('@livestore/adapter-node:leader-thread:loadSqlite3Wasm'));
38
+ const makeSqliteDb = yield* sqliteDbFactory({ sqlite3 });
39
+ const layer = yield* makeLeaderThread({
40
+ storeId,
41
+ clientId,
42
+ storage,
43
+ devtools,
44
+ syncOptions: options.sync,
45
+ schema: options.schema,
46
+ testing: options.testing,
47
+ makeSqliteDb,
48
+ syncPayloadEncoded,
49
+ syncPayloadSchema: options.syncPayloadSchema,
50
+ });
51
+ return yield* Layer.buildWithScope(layer, leaderThreadScope);
52
+ }).pipe(Scope.provide(leaderThreadScope), Effect.tapCauseLogPretty, UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:InitialMessage'), Effect.orDie));
53
+ const provideLeaderThread = (effect) => Effect.gen(function* () {
54
+ const leaderThreadContext = yield* leaderThreadContextOnce;
55
+ return yield* effect.pipe(Effect.provide(leaderThreadContext));
56
+ });
57
+ return WorkerSchema.LeaderWorkerInnerRpcs.of({
58
+ GetRecreateSnapshot: () => Effect.gen(function* () {
59
+ const workerCtx = yield* LeaderThreadCtx;
60
+ const snapshot = workerCtx.dbState.export();
61
+ return { snapshot, migrationsReport: workerCtx.initialState.migrationsReport };
62
+ }).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetRecreateSnapshot')),
40
63
  PullStream: ({ cursor }) => Effect.gen(function* () {
41
64
  const { syncProcessor } = yield* LeaderThreadCtx;
42
65
  return syncProcessor.pull({ cursor });
43
- }).pipe(Stream.unwrapScoped),
44
- Export: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbState.export()).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:Export')),
45
- ExportEventlog: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbEventlog.export()).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:ExportEventlog')),
66
+ }).pipe(provideLeaderThread, Stream.unwrap),
67
+ PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, ({ syncProcessor }) => syncProcessor.push(batch.map((event) => new LiveStoreEvent.Client.EncodedWithMeta(event)))).pipe(provideLeaderThread, Effect.uninterruptible, Effect.withSpan('@livestore/adapter-node:worker:PushToLeader')),
68
+ StreamEvents: (options) => LeaderThreadCtx.pipe(Effect.map(({ dbEventlog, syncProcessor }) => streamEventsWithSyncState({
69
+ dbEventlog,
70
+ syncState: syncProcessor.syncState,
71
+ options: options,
72
+ })), provideLeaderThread, Stream.unwrap, Stream.withSpan('@livestore/adapter-node:worker:StreamEvents')),
73
+ Export: () => LeaderThreadCtx.pipe(Effect.flatMap((_) => Effect.sync(() => _.dbState.export())), provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:Export')),
74
+ ExportEventlog: () => LeaderThreadCtx.pipe(Effect.flatMap((_) => Effect.sync(() => _.dbEventlog.export())), provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:ExportEventlog')),
75
+ BootStatusStream: () => LeaderThreadCtx.pipe(Effect.map((_) => Stream.fromQueue(_.bootStatusQueue)), provideLeaderThread, Stream.unwrap),
46
76
  GetLeaderHead: () => Effect.gen(function* () {
47
77
  const workerCtx = yield* LeaderThreadCtx;
48
78
  return Eventlog.getClientHeadFromDb(workerCtx.dbEventlog);
49
- }).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderHead')),
79
+ }).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderHead')),
50
80
  GetLeaderSyncState: () => Effect.gen(function* () {
51
81
  const workerCtx = yield* LeaderThreadCtx;
52
82
  return yield* workerCtx.syncProcessor.syncState;
53
- }).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderSyncState')),
54
- GetRecreateSnapshot: () => Effect.gen(function* () {
83
+ }).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderSyncState')),
84
+ SyncStateStream: () => Effect.gen(function* () {
55
85
  const workerCtx = yield* LeaderThreadCtx;
56
- // const result = yield* Deferred.await(workerCtx.initialSetupDeferred)
57
- // NOTE we can only return the cached snapshot once as it's transferred (i.e. disposed), so we need to set it to undefined
58
- // const cachedSnapshot =
59
- // result._tag === 'Recreate' ? yield* Ref.getAndSet(result.snapshotRef, undefined) : undefined
60
- // return cachedSnapshot ?? workerCtx.db.export()
61
- const snapshot = workerCtx.dbState.export();
62
- return { snapshot, migrationsReport: workerCtx.initialState.migrationsReport };
63
- }).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:GetRecreateSnapshot')),
64
- Shutdown: () => Effect.gen(function* () {
65
- // const { db, dbEventlog } = yield* LeaderThreadCtx
86
+ return workerCtx.syncProcessor.syncState.changes;
87
+ }).pipe(provideLeaderThread, Stream.unwrap),
88
+ GetNetworkStatus: () => Effect.gen(function* () {
89
+ const workerCtx = yield* LeaderThreadCtx;
90
+ return yield* workerCtx.networkStatus;
91
+ }).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetNetworkStatus')),
92
+ NetworkStatusStream: () => Effect.gen(function* () {
93
+ const workerCtx = yield* LeaderThreadCtx;
94
+ return workerCtx.networkStatus.changes;
95
+ }).pipe(provideLeaderThread, Stream.unwrap),
96
+ Shutdown: Effect.fn('@livestore/adapter-node:worker:Shutdown')(function* () {
66
97
  yield* Effect.logDebug('[@livestore/adapter-node:worker] Shutdown');
67
- // if (devtools.enabled) {
68
- // yield* FiberSet.clear(devtools.connections)
69
- // }
70
- // db.close()
71
- // dbEventlog.close()
72
- // Buy some time for Otel to flush
73
- // TODO find a cleaner way to do this
74
- // yield* Effect.sleep(1000)
75
- }).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:Shutdown')),
76
- ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => _.extraIncomingMessagesQueue.offer(message)).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:ExtraDevtoolsMessage')),
77
- }).pipe(Layer.provide(PlatformNode.NodeWorkerRunner.layer), WorkerRunner.launch, Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({
78
- thread: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread',
79
- processId: process.pid,
80
- }),
81
- // TODO bring back with Effect 4 once it's easier to work with replacing loggers.
82
- // We basically only want to provide this logger if it's replacing the default logger, not if there's a custom logger already provided.
83
- // Effect.provide(Logger.prettyWithThread(options.otelOptions?.serviceName ?? 'livestore-node-leader-thread')),
84
- Effect.provide(FetchHttpClient.layer), Effect.provide(PlatformNode.NodeFileSystem.layer), TracingLive ? Effect.provide(TracingLive) : identity, Logger.withMinimumLogLevel(LogLevel.Debug));
85
- };
98
+ }),
99
+ ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => Queue.offer(_.extraIncomingMessagesQueue, message)).pipe(provideLeaderThread, Effect.asVoid, Effect.withSpan('@livestore/adapter-node:worker:ExtraDevtoolsMessage')),
100
+ });
101
+ }));
86
102
  //# sourceMappingURL=make-leader-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAE7B,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3C,SAAS,CAAC,IAAI,EAAE,CAAA;IAChB,SAAS,CAAC,eAAe,EAAE,CAAA;AAC7B,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,MAAM,EACN,eAAe,EACf,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,GACb,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAalD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAsB,EAAE,EAAE;IACnD,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,IAAI,8BAA8B,CAAC,CAAC,EAC3G,YAAY,CAAC,WAAW,CAAC,OAAO,CACjC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,EAAE;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM;QAC7C,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACnE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CACrF;QACH,CAAC,CAAC,SAAS,CAAA;IAEb,OAAO,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,wBAAwB,EAAE;QACzE,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CACjE,MAAM,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CACzE,CAAA;YACD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;YACxD,OAAO,KAAK,CAAC,CAAC,gBAAgB,CAAC;gBAC7B,GAAG,IAAI;gBACP,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,YAAY;aACb,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAC7B,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CACpC,CAAC,CAAC,aAAa,CAAC,IAAI,CAClB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7D,kEAAkE;QAClE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;QAChG,gBAAgB,EAAE,GAAG,EAAE,CACrB,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACjG,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YAChD,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC7D,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CACzD;QACH,cAAc,EAAE,GAAG,EAAE,CACnB,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAChE,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CACjE;QACH,aAAa,EAAE,GAAG,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,OAAO,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAChH,kBAAkB,EAAE,GAAG,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAA;QACjD,CAAC,CAAC,CAAC,IAAI,CACL,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CACrE;QACH,mBAAmB,EAAE,GAAG,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,uEAAuE;YACvE,0HAA0H;YAC1H,yBAAyB;YACzB,iGAAiG;YACjG,iDAAiD;YACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;YAC3C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAA;QAChF,CAAC,CAAC,CAAC,IAAI,CACL,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CACtE;QACH,QAAQ,EAAE,GAAG,EAAE,CACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,oDAAoD;YACpD,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAA;YAEnE,0BAA0B;YAC1B,gDAAgD;YAChD,IAAI;YACJ,aAAa;YACb,qBAAqB;YAErB,kCAAkC;YAClC,qCAAqC;YACrC,4BAA4B;QAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;QAC3G,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACpC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACtF,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CACvE;KACJ,CAAC,CAAC,IAAI,CACL,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAClD,YAAY,CAAC,MAAM,EACnB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,YAAY,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,IAAI,8BAA8B;QAC1E,SAAS,EAAE,OAAO,CAAC,GAAG;KACvB,CAAC;IACF,iFAAiF;IACjF,uIAAuI;IACvI,+GAA+G;IAC/G,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EACrC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,EACjD,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EACpD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC3C,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;IACpD,SAAS,CAAC,IAAI,EAAE,CAAA;IAChB,SAAS,CAAC,eAAe,EAAE,CAAA;AAC7B,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAEtG,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EACL,MAAM,EACN,eAAe,EACf,KAAK,EACL,UAAU,EACV,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,GACP,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAclD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAsB,EAAE,EAAE;IACnD,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAClE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,EAAE;IACzD,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,EAAE,MAAM,KAAK,SAAS;QACvC,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CACpC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CACrF;QACH,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;IAEjB,uGAAuG;IACvG,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAE1G,OAAO,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAC5D,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAC9C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,EACnD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACnD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,YAAY,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,IAAI,8BAA8B;QAC1E,SAAS,EAAE,OAAO,CAAC,GAAG;KACvB,CAAC,EACF,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,QAAQ,CACZ,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAC7B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CACxG,CACF,EACD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAC7B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,OAAsB,EAAE,EAAE,CACvD,YAAY,CAAC,qBAAqB,CAAC,OAAO,CACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAC7C,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE1E,MAAM,uBAAuB,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAClD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAClG,YAAY,CAAC,+BAA+B,CAAC,aAAa,CAC3D,CAAA;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CACjE,MAAM,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CACzE,CAAA;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAExD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;YACpC,OAAO;YACP,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY;YACZ,kBAAkB;YAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC,CAAA;QAEF,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAC,IAAI,CACL,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAChC,MAAM,CAAC,iBAAiB,EACxB,YAAY,CAAC,iBAAiB,EAC9B,MAAM,CAAC,QAAQ,CAAC,+CAA+C,CAAC,EAChE,MAAM,CAAC,KAAK,CACb,CACF,CAAA;IAED,MAAM,mBAAmB,GAAG,CAAU,MAA8B,EAAE,EAAE,CACtE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,uBAAuB,CAAA;QAC1D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEJ,OAAO,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3C,mBAAmB,EAAE,GAAG,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;YAC3C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAA;QAChF,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC;QACrG,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YAChD,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CACpD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAC3F,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;QACrH,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CACxB,eAAe,CAAC,IAAI,CAClB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,CAC3C,yBAAyB,CAAC;YACxB,UAAU;YACV,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,OAAO,EAAE,OAA8B;SACxC,CAAC,CACH,EACD,mBAAmB,EACnB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAC/D;QACH,MAAM,EAAE,GAAG,EAAE,CACX,eAAe,CAAC,IAAI,CAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAC5D,mBAAmB,EACnB,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CACzD;QACH,cAAc,EAAE,GAAG,EAAE,CACnB,eAAe,CAAC,IAAI,CAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAC/D,mBAAmB,EACnB,MAAM,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CACjE;QACH,gBAAgB,EAAE,GAAG,EAAE,CACrB,eAAe,CAAC,IAAI,CAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EACtD,mBAAmB,EACnB,MAAM,CAAC,MAAM,CACd;QACH,aAAa,EAAE,GAAG,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,OAAO,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAC/F,kBAAkB,EAAE,GAAG,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAA;QACjD,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAAC;QACpG,eAAe,EAAE,GAAG,EAAE,CACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,OAAO,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAA;QAClD,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,gBAAgB,EAAE,GAAG,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAA;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;QAClG,mBAAmB,EAAE,GAAG,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;YACxC,OAAO,SAAS,CAAC,aAAa,CAAC,OAAO,CAAA;QACxC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,yCAAyC,CAAC,CAAC,QAAQ,CAAC;YACtE,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAA;QACrE,CAAC,CAAC;QACF,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACpC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAC7F,mBAAmB,EACnB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CACvE;KACJ,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA"}