@livestore/cli 0.4.0 → 0.5.0-dev.1

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 (125) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixtures/mock-config.d.ts +8 -9
  3. package/dist/__tests__/fixtures/mock-config.d.ts.map +1 -1
  4. package/dist/__tests__/fixtures/mock-config.js +18 -8
  5. package/dist/__tests__/fixtures/mock-config.js.map +1 -1
  6. package/dist/__tests__/sync-operations.test.js +32 -22
  7. package/dist/__tests__/sync-operations.test.js.map +1 -1
  8. package/dist/bin.js +7 -6
  9. package/dist/bin.js.map +1 -1
  10. package/dist/cli.d.ts +2 -23
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +4 -4
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/__fixtures__/mcp-protocol-server.d.ts +2 -0
  15. package/dist/commands/__fixtures__/mcp-protocol-server.d.ts.map +1 -0
  16. package/dist/commands/__fixtures__/mcp-protocol-server.js +10 -0
  17. package/dist/commands/__fixtures__/mcp-protocol-server.js.map +1 -0
  18. package/dist/commands/import-export.d.ts +5 -19
  19. package/dist/commands/import-export.d.ts.map +1 -1
  20. package/dist/commands/import-export.js +13 -13
  21. package/dist/commands/import-export.js.map +1 -1
  22. package/dist/commands/mcp-coach.d.ts +8 -7
  23. package/dist/commands/mcp-coach.d.ts.map +1 -1
  24. package/dist/commands/mcp-coach.js +11 -11
  25. package/dist/commands/mcp-coach.js.map +1 -1
  26. package/dist/commands/mcp-protocols.d.ts +7 -0
  27. package/dist/commands/mcp-protocols.d.ts.map +1 -0
  28. package/dist/commands/mcp-protocols.js +12 -0
  29. package/dist/commands/mcp-protocols.js.map +1 -0
  30. package/dist/commands/mcp-protocols.test.d.ts +2 -0
  31. package/dist/commands/mcp-protocols.test.d.ts.map +1 -0
  32. package/dist/commands/mcp-protocols.test.js +60 -0
  33. package/dist/commands/mcp-protocols.test.js.map +1 -0
  34. package/dist/commands/mcp-stdio.test.d.ts +2 -0
  35. package/dist/commands/mcp-stdio.test.d.ts.map +1 -0
  36. package/dist/commands/mcp-stdio.test.js +79 -0
  37. package/dist/commands/mcp-stdio.test.js.map +1 -0
  38. package/dist/commands/mcp-tool-handlers.d.ts +1 -1
  39. package/dist/commands/mcp-tool-handlers.d.ts.map +1 -1
  40. package/dist/commands/mcp-tool-handlers.js +9 -8
  41. package/dist/commands/mcp-tool-handlers.js.map +1 -1
  42. package/dist/commands/mcp-tools-defs.d.ts +74 -73
  43. package/dist/commands/mcp-tools-defs.d.ts.map +1 -1
  44. package/dist/commands/mcp-tools-defs.js +64 -57
  45. package/dist/commands/mcp-tools-defs.js.map +1 -1
  46. package/dist/commands/mcp-tools-defs.test.d.ts +2 -0
  47. package/dist/commands/mcp-tools-defs.test.d.ts.map +1 -0
  48. package/dist/commands/mcp-tools-defs.test.js +11 -0
  49. package/dist/commands/mcp-tools-defs.test.js.map +1 -0
  50. package/dist/commands/mcp.d.ts +1 -3
  51. package/dist/commands/mcp.d.ts.map +1 -1
  52. package/dist/commands/mcp.js +15 -14
  53. package/dist/commands/mcp.js.map +1 -1
  54. package/dist/commands/new-project.d.ts +19 -27
  55. package/dist/commands/new-project.d.ts.map +1 -1
  56. package/dist/commands/new-project.js +19 -18
  57. package/dist/commands/new-project.js.map +1 -1
  58. package/dist/mcp-content/architecture.d.ts +1 -1
  59. package/dist/mcp-content/architecture.d.ts.map +1 -1
  60. package/dist/mcp-content/architecture.js +3 -3
  61. package/dist/mcp-content/features.d.ts +1 -1
  62. package/dist/mcp-content/features.d.ts.map +1 -1
  63. package/dist/mcp-content/features.js +1 -1
  64. package/dist/mcp-content/getting-started.d.ts +1 -1
  65. package/dist/mcp-content/getting-started.d.ts.map +1 -1
  66. package/dist/mcp-content/getting-started.js +37 -37
  67. package/dist/mcp-content/overview.d.ts +1 -1
  68. package/dist/mcp-content/overview.d.ts.map +1 -1
  69. package/dist/mcp-content/overview.js +6 -6
  70. package/dist/mcp-content/schemas/blog.d.ts +1 -1
  71. package/dist/mcp-content/schemas/blog.d.ts.map +1 -1
  72. package/dist/mcp-content/schemas/blog.js +25 -25
  73. package/dist/mcp-content/schemas/ecommerce.d.ts +1 -1
  74. package/dist/mcp-content/schemas/ecommerce.d.ts.map +1 -1
  75. package/dist/mcp-content/schemas/ecommerce.js +67 -67
  76. package/dist/mcp-content/schemas/social.d.ts +1 -1
  77. package/dist/mcp-content/schemas/social.d.ts.map +1 -1
  78. package/dist/mcp-content/schemas/social.js +48 -48
  79. package/dist/mcp-content/schemas/todo.d.ts +1 -1
  80. package/dist/mcp-content/schemas/todo.d.ts.map +1 -1
  81. package/dist/mcp-content/schemas/todo.js +35 -35
  82. package/dist/mcp-runtime/runtime.d.ts +5 -5
  83. package/dist/mcp-runtime/runtime.d.ts.map +1 -1
  84. package/dist/mcp-runtime/runtime.js +5 -5
  85. package/dist/mcp-runtime/runtime.js.map +1 -1
  86. package/dist/mod.js +1 -1
  87. package/dist/module-loader.d.ts +2 -2
  88. package/dist/module-loader.d.ts.map +1 -1
  89. package/dist/module-loader.js +8 -8
  90. package/dist/module-loader.js.map +1 -1
  91. package/dist/package-manager.d.ts +3 -3
  92. package/dist/package-manager.d.ts.map +1 -1
  93. package/dist/package-manager.test.js +1 -1
  94. package/dist/sync-operations.d.ts +24 -30
  95. package/dist/sync-operations.d.ts.map +1 -1
  96. package/dist/sync-operations.js +15 -15
  97. package/dist/sync-operations.js.map +1 -1
  98. package/package.json +45 -59
  99. package/src/__tests__/fixtures/.gitignore +1 -0
  100. package/src/__tests__/fixtures/mock-config.ts +21 -10
  101. package/src/__tests__/sync-operations.test.ts +36 -35
  102. package/src/bin.ts +7 -6
  103. package/src/cli.ts +1 -1
  104. package/src/commands/__fixtures__/mcp-protocol-server.ts +12 -0
  105. package/src/commands/import-export.ts +29 -29
  106. package/src/commands/mcp-coach.ts +13 -12
  107. package/src/commands/mcp-protocols.test.ts +76 -0
  108. package/src/commands/mcp-protocols.ts +12 -0
  109. package/src/commands/mcp-stdio.test.ts +93 -0
  110. package/src/commands/mcp-tool-handlers.ts +11 -8
  111. package/src/commands/mcp-tools-defs.test.ts +13 -0
  112. package/src/commands/mcp-tools-defs.ts +57 -55
  113. package/src/commands/mcp.ts +9 -4
  114. package/src/commands/new-project.ts +50 -37
  115. package/src/mcp-content/architecture.ts +3 -3
  116. package/src/mcp-content/features.ts +1 -1
  117. package/src/mcp-content/getting-started.ts +37 -37
  118. package/src/mcp-content/overview.ts +6 -6
  119. package/src/mcp-content/schemas/blog.ts +25 -25
  120. package/src/mcp-content/schemas/ecommerce.ts +67 -67
  121. package/src/mcp-content/schemas/social.ts +48 -48
  122. package/src/mcp-content/schemas/todo.ts +35 -35
  123. package/src/mcp-runtime/runtime.ts +7 -7
  124. package/src/module-loader.ts +11 -12
  125. package/src/sync-operations.ts +26 -19
@@ -1 +1 @@
1
- {"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;GAGG;AACH,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,0BAA0B,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AASpE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,UAAU,GAGX,EAAoE,EAAE,CACrE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;IAEvG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;IACzE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,6BAA6B,GAAG,EAAE;YACzC,IAAI,EAAE,uDAAuD;SAC9D,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACnC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,kCAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;QAC1C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,YAAY,CAAC,IAAI,CAAC;YAChB,KAAK;YACL,IAAI,EAAE,8BAA8B,GAAG,EAAE;SAC1C,CAAC;KACL,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,CAAA;IAC1B,IAAI,iBAAiB,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,aAAa,GAAG,yCAAyC;YAChE,IAAI,EAAE,wDAAwD;SAC/D,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,sBAAsB,GAAG,GAAG,EAAE,WAAW,CAAA;IAC/C,IAAI,OAAO,sBAAsB,KAAK,UAAU,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,aAAa,GAAG,0CAA0C;YACjE,IAAI,EAAE,oDAAoD;SAC3D,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,uBAAuB,GAAG,GAAG,EAAE,iBAAiB,CAAA;IACtD,MAAM,iBAAiB,GACrB,uBAAuB,KAAK,SAAS;QACnC,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,IAAI;YACjD,CAAC,CAAE,uBAAkE;YACrE,CAAC,CAAC,iBAAiB,CACf,qCAAqC,GAAG,uCAAuC,OAAO,uBAAuB,IAAI,CAClH,CAAA;IAET,MAAM,iBAAiB,GAAG,GAAG,EAAE,WAAW,CAAA;IAC1C,MAAM,WAAW,GACf,iBAAiB,KAAK,SAAS;QAC7B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;IAElH,OAAO;QACL,MAAM;QACN,sBAAsB;QACtB,iBAAiB;QACjB,WAAW;KACZ,CAAA;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAA"}
@@ -25,9 +25,9 @@ export declare const detectPackageManager: (userAgent?: string) => DetectPackage
25
25
  /** Package manager command templates */
26
26
  export declare const pmCommands: {
27
27
  readonly install: {
28
- readonly npm: "npm install";
29
- readonly pnpm: "pnpm install";
30
- readonly bun: "bun install";
28
+ readonly npm: 'npm install';
29
+ readonly pnpm: 'pnpm install';
30
+ readonly bun: 'bun install';
31
31
  };
32
32
  readonly run: {
33
33
  readonly npm: (script: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAEnD;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAExH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,kBAAmD,KAClD,0BAQF,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,UAAU;;;;;;;+BAOL,MAAM;gCACL,MAAM;+BACP,MAAM;;CAEd,CAAA"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAEnD;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAExH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,0BAE9B,0BAQF,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,UAAU;aACrB,OAAO;iBACL,GAAG,EAAE,aAAa;iBAClB,IAAI,EAAE,cAAc;iBACpB,GAAG,EAAE,aAAa;;aAEpB,GAAG;iBACD,GAAG,WAAW,MAAM;iBACpB,IAAI,WAAW,MAAM;iBACrB,GAAG,WAAW,MAAM;;CAEd,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Vitest } from '@livestore/utils-dev/node-vitest';
2
- import { detectPackageManager, pmCommands } from "./package-manager.js";
2
+ import { detectPackageManager, pmCommands } from './package-manager.js';
3
3
  Vitest.describe('detectPackageManager', () => {
4
4
  Vitest.it('detects npm from user agent', () => {
5
5
  const result = detectPackageManager('npm/10.2.4 node/v20.11.0 darwin arm64 workspaces/false');
@@ -4,53 +4,47 @@
4
4
  */
5
5
  import type { SyncBackend } from '@livestore/common';
6
6
  import { UnknownError } from '@livestore/common';
7
- import { Effect, type FileSystem, type HttpClient, Schema, type Scope } from '@livestore/utils/effect';
7
+ import { Cause, Effect, type FileSystem, type HttpClient, Schema, type Scope } from '@livestore/utils/effect';
8
8
  /**
9
9
  * Schema for the export file format.
10
10
  * Contains metadata about the export and an array of events in global encoded format.
11
11
  */
12
12
  export declare const ExportFileSchema: Schema.Struct<{
13
13
  /** Format version for future compatibility */
14
- version: Schema.Literal<[1]>;
14
+ readonly version: Schema.Literal<1>;
15
15
  /** Store identifier */
16
- storeId: typeof Schema.String;
16
+ readonly storeId: Schema.String;
17
17
  /** ISO timestamp of when the export was created */
18
- exportedAt: typeof Schema.String;
18
+ readonly exportedAt: Schema.String;
19
19
  /** Total number of events in the export */
20
- eventCount: typeof Schema.Number;
20
+ readonly eventCount: Schema.Finite;
21
21
  /** Array of events in global encoded format */
22
- events: Schema.Array$<Schema.Struct<{
23
- name: typeof Schema.String;
24
- args: typeof Schema.Any;
25
- seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
26
- parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
27
- clientId: typeof Schema.String;
28
- sessionId: typeof Schema.String;
22
+ readonly events: Schema.$Array<Schema.Struct<{
23
+ readonly name: Schema.String;
24
+ readonly args: Schema.Any;
25
+ readonly seqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
26
+ readonly parentSeqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
27
+ readonly clientId: Schema.String;
28
+ readonly sessionId: Schema.String;
29
29
  }>>;
30
30
  }>;
31
31
  export type ExportFile = typeof ExportFileSchema.Type;
32
- declare const ConnectionError_base: Schema.TaggedErrorClass<ConnectionError, "ConnectionError", {
33
- readonly _tag: Schema.tag<"ConnectionError">;
34
- } & {
35
- cause: typeof Schema.Defect;
36
- note: typeof Schema.String;
37
- }>;
32
+ declare const ConnectionError_base: Schema.Class<ConnectionError, Schema.TaggedStruct<"ConnectionError", {
33
+ readonly cause: Schema.Defect;
34
+ readonly note: Schema.String;
35
+ }>, Cause.YieldableError>;
38
36
  export declare class ConnectionError extends ConnectionError_base {
39
37
  }
40
- declare const ExportError_base: Schema.TaggedErrorClass<ExportError, "ExportError", {
41
- readonly _tag: Schema.tag<"ExportError">;
42
- } & {
43
- cause: typeof Schema.Defect;
44
- note: typeof Schema.String;
45
- }>;
38
+ declare const ExportError_base: Schema.Class<ExportError, Schema.TaggedStruct<"ExportError", {
39
+ readonly cause: Schema.Defect;
40
+ readonly note: Schema.String;
41
+ }>, Cause.YieldableError>;
46
42
  export declare class ExportError extends ExportError_base {
47
43
  }
48
- declare const ImportError_base: Schema.TaggedErrorClass<ImportError, "ImportError", {
49
- readonly _tag: Schema.tag<"ImportError">;
50
- } & {
51
- cause: typeof Schema.Defect;
52
- note: typeof Schema.String;
53
- }>;
44
+ declare const ImportError_base: Schema.Class<ImportError, Schema.TaggedStruct<"ImportError", {
45
+ readonly cause: Schema.Defect;
46
+ readonly note: Schema.String;
47
+ }>, Cause.YieldableError>;
54
48
  export declare class ImportError extends ImportError_base {
55
49
  }
56
50
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sync-operations.d.ts","sourceRoot":"","sources":["../src/sync-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-operations.d.ts","sourceRoot":"","sources":["../src/sync-operations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EACL,KAAK,EACL,MAAM,EACN,KAAK,UAAU,EACf,KAAK,UAAU,EAGf,MAAM,EACN,KAAK,KAAK,EAGX,MAAM,yBAAyB,CAAA;AAOhC;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B,8CAA8C;;IAE9C,uBAAuB;;IAEvB,mDAAmD;;IAEnD,2CAA2C;;IAE3C,+CAA+C;;;;;;;;;EAE/C,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;;;;;AAErD,qBAAa,eAAgB,SAAQ,oBAMpC;CAAG;;;;;AAEJ,qBAAa,WAAY,SAAQ,gBAG/B;CAAG;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAG/B;CAAG;AAEL;;;GAGG;AACH,eAAO,MAAM,eAAe,uCAIzB;IACD,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;CACjB,KAAG,MAAM,CAAC,MAAM,CACf,WAAW,CAAC,WAAW,EACvB,YAAY,GAAG,eAAe,EAC9B,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CA6CzD,CAAA;AAeJ,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,4EAA4E;IAC5E,IAAI,EAAE,UAAU,CAAA;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uCAInC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,KAAG,MAAM,CAAC,MAAM,CACf,YAAY,EACZ,WAAW,GAAG,YAAY,GAAG,eAAe,EAC5C,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAwCjB,CAAA;AAE5C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,6BAG5B;IACD,IAAI,EAAE,OAAO,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;CACtB,KAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAkBjD,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,uBAAuB,wEAQjC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACpE,KAAG,MAAM,CAAC,MAAM,CACf,YAAY,EACZ,WAAW,GAAG,YAAY,GAAG,eAAe,EAC5C,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CA2FjB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { UnknownError } from '@livestore/common';
2
2
  import { LiveStoreEvent } from '@livestore/common/schema';
3
- import { Cause, Chunk, Effect, KeyValueStore, Option, Schema, Stream, SubscriptionRef, } from '@livestore/utils/effect';
4
- import { loadModuleConfig } from "./module-loader.js";
3
+ import { Cause, Effect, KeyValueStore, Option, Schema, Stream, SubscriptionRef, } from '@livestore/utils/effect';
4
+ import { loadModuleConfig } from './module-loader.js';
5
5
  /** Connection timeout for sync backend ping (5 seconds) */
6
6
  const CONNECTION_TIMEOUT_MS = 5000;
7
7
  /**
@@ -16,22 +16,22 @@ export const ExportFileSchema = Schema.Struct({
16
16
  /** ISO timestamp of when the export was created */
17
17
  exportedAt: Schema.String,
18
18
  /** Total number of events in the export */
19
- eventCount: Schema.Number,
19
+ eventCount: Schema.Finite,
20
20
  /** Array of events in global encoded format */
21
21
  events: Schema.Array(LiveStoreEvent.Global.Encoded),
22
22
  });
23
23
  export class ConnectionError extends Schema.TaggedError('~@livestore/cli/ConnectionError')('ConnectionError', {
24
- cause: Schema.Defect,
24
+ cause: Schema.Defect(),
25
25
  note: Schema.String,
26
26
  }) {
27
27
  }
28
28
  export class ExportError extends Schema.TaggedError('~@livestore/cli/ExportError')('ExportError', {
29
- cause: Schema.Defect,
29
+ cause: Schema.Defect(),
30
30
  note: Schema.String,
31
31
  }) {
32
32
  }
33
33
  export class ImportError extends Schema.TaggedError('~@livestore/cli/ImportError')('ImportError', {
34
- cause: Schema.Defect,
34
+ cause: Schema.Defect(),
35
35
  note: Schema.String,
36
36
  }) {
37
37
  }
@@ -53,8 +53,8 @@ export const makeSyncBackend = ({ configPath, storeId, clientId, }) => Effect.ge
53
53
  note: `Failed to connect to sync backend: ${cause._tag === 'IsOfflineError' ? 'Backend is offline or unreachable' : String(cause)}`,
54
54
  })));
55
55
  /** Verify connectivity with a ping (with timeout) */
56
- yield* syncBackend.ping.pipe(Effect.timeout(CONNECTION_TIMEOUT_MS), Effect.catchAll((cause) => {
57
- if (Cause.isTimeoutException(cause) === true) {
56
+ yield* syncBackend.ping.pipe(Effect.timeout(CONNECTION_TIMEOUT_MS), Effect.catch((cause) => {
57
+ if (Cause.isTimeoutError(cause) === true) {
58
58
  return Effect.fail(new ConnectionError({
59
59
  cause,
60
60
  note: `Connection timeout: Sync backend did not respond within ${CONNECTION_TIMEOUT_MS}ms`,
@@ -69,8 +69,10 @@ export const makeSyncBackend = ({ configPath, storeId, clientId, }) => Effect.ge
69
69
  });
70
70
  const releaseSyncBackend = (syncBackend) => {
71
71
  const maybeDisconnect = syncBackend.disconnect;
72
- const releaseEffect = maybeDisconnect ?? SubscriptionRef.set(syncBackend.isConnected, false);
73
- return releaseEffect.pipe(Effect.orElse(() => Effect.void));
72
+ const releaseEffect = maybeDisconnect !== undefined && Effect.isEffect(maybeDisconnect) === true
73
+ ? maybeDisconnect
74
+ : SubscriptionRef.set(syncBackend.isConnected, false);
75
+ return releaseEffect.pipe(Effect.ignore);
74
76
  };
75
77
  /**
76
78
  * Core export operation - pulls all events from sync backend.
@@ -82,9 +84,7 @@ export const pullEventsFromSyncBackend = ({ configPath, storeId, clientId, }) =>
82
84
  cause,
83
85
  note: `Failed to pull events from sync backend: ${String(cause)}`,
84
86
  })));
85
- const events = Chunk.toReadonlyArray(batchesChunk)
86
- .flatMap((item) => item.batch)
87
- .map((item) => item.eventEncoded);
87
+ const events = batchesChunk.flatMap((item) => item.batch).map((item) => item.eventEncoded);
88
88
  const exportedAt = new Date().toISOString();
89
89
  const exportData = {
90
90
  version: 1,
@@ -106,7 +106,7 @@ export const pullEventsFromSyncBackend = ({ configPath, storeId, clientId, }) =>
106
106
  * Returns validation info without actually importing.
107
107
  */
108
108
  export const validateExportData = ({ data, targetStoreId, }) => Effect.gen(function* () {
109
- const exportData = yield* Schema.decodeUnknown(ExportFileSchema)(data).pipe(Effect.mapError((cause) => new ImportError({
109
+ const exportData = yield* Schema.decodeUnknownEffect(ExportFileSchema)(data).pipe(Effect.mapError((cause) => new ImportError({
110
110
  cause: new Error(`Invalid export file format: ${String(cause)}`),
111
111
  note: `Invalid export file format: ${String(cause)}`,
112
112
  })));
@@ -122,7 +122,7 @@ export const validateExportData = ({ data, targetStoreId, }) => Effect.gen(funct
122
122
  * Validates that the backend is empty before importing.
123
123
  */
124
124
  export const pushEventsToSyncBackend = ({ configPath, storeId, clientId, data, force, dryRun, onProgress, }) => Effect.acquireUseRelease(makeSyncBackend({ configPath, storeId, clientId }), (syncBackend) => Effect.gen(function* () {
125
- const exportData = yield* Schema.decodeUnknown(ExportFileSchema)(data).pipe(Effect.mapError((cause) => new ImportError({
125
+ const exportData = yield* Schema.decodeUnknownEffect(ExportFileSchema)(data).pipe(Effect.mapError((cause) => new ImportError({
126
126
  cause: new Error(`Invalid export file format: ${String(cause)}`),
127
127
  note: `Invalid export file format: ${String(cause)}`,
128
128
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"sync-operations.js","sourceRoot":"","sources":["../src/sync-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-operations.js","sourceRoot":"","sources":["../src/sync-operations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,33 @@
1
1
  {
2
+ "$genie": {
3
+ "source": "package.json.genie.ts",
4
+ "warning": "DO NOT EDIT - changes will be overwritten",
5
+ "workspaceClosureDirs": [
6
+ "packages/@livestore/adapter-node",
7
+ "packages/@livestore/cli",
8
+ "repos/livestore/packages/@livestore/adapter-web",
9
+ "repos/livestore/packages/@livestore/common",
10
+ "repos/livestore/packages/@livestore/common-cf",
11
+ "repos/livestore/packages/@livestore/livestore",
12
+ "repos/livestore/packages/@livestore/peer-deps",
13
+ "repos/livestore/packages/@livestore/sqlite-wasm",
14
+ "repos/livestore/packages/@livestore/utils",
15
+ "repos/livestore/packages/@livestore/utils-dev",
16
+ "repos/livestore/packages/@livestore/wa-sqlite",
17
+ "repos/livestore/packages/@livestore/webmesh"
18
+ ]
19
+ },
2
20
  "name": "@livestore/cli",
3
- "version": "0.4.0",
21
+ "version": "0.5.0-dev.1",
22
+ "type": "module",
23
+ "sideEffects": false,
4
24
  "license": "Apache-2.0",
5
25
  "repository": {
6
26
  "type": "git",
7
- "url": "git+https://github.com/livestorejs/livestore.git"
27
+ "url": "git+https://github.com/livestorejs/livestore-contrib.git"
28
+ },
29
+ "exports": {
30
+ ".": "./dist/mod.js"
8
31
  },
9
32
  "bin": {
10
33
  "livestore": "./dist/bin.js"
@@ -14,73 +37,36 @@
14
37
  "package.json",
15
38
  "src"
16
39
  ],
17
- "type": "module",
18
- "sideEffects": false,
19
- "exports": {
20
- ".": "./dist/mod.js"
21
- },
22
- "publishConfig": {
23
- "access": "public"
24
- },
25
40
  "dependencies": {
26
- "@effect/ai": "0.35.0",
27
- "@effect/ai-openai": "0.39.0",
28
- "@effect/experimental": "0.60.0",
29
- "@effect/opentelemetry": "0.63.0",
30
- "@effect/platform": "0.96.1",
31
- "@effect/rpc": "0.75.1",
32
- "effect": "3.21.2",
33
- "@livestore/common": "^0.4.0",
34
- "@livestore/adapter-node": "^0.4.0",
35
- "@livestore/peer-deps": "^0.4.0",
36
- "@livestore/utils": "^0.4.0",
37
- "@livestore/livestore": "^0.4.0"
41
+ "@effect/ai-openai": "4.0.3",
42
+ "@effect/opentelemetry": "4.0.3",
43
+ "@livestore/adapter-node": "0.5.0-dev.1",
44
+ "@livestore/common": "0.5.0-dev.1",
45
+ "@livestore/livestore": "0.5.0-dev.1",
46
+ "@livestore/peer-deps": "0.5.0-dev.1",
47
+ "@livestore/utils": "0.5.0-dev.1",
48
+ "effect": "4.0.3"
38
49
  },
39
50
  "devDependencies": {
51
+ "@livestore/utils-dev": "0.5.0-dev.1",
40
52
  "@types/node": "25.3.3",
41
- "typescript": "5.9.3",
42
- "vitest": "3.2.4",
43
- "@livestore/utils-dev": "^0.4.0"
53
+ "typescript": "7.0.2",
54
+ "vitest": "4.1.9"
44
55
  },
45
56
  "peerDependencies": {
46
- "@effect/ai": "^0.35.0",
47
- "@effect/cli": "^0.75.1",
48
- "@effect/cluster": "^0.58.2",
49
- "@effect/experimental": "^0.60.0",
50
- "@effect/opentelemetry": "^0.63.0",
51
- "@effect/platform": "^0.96.1",
52
- "@effect/platform-browser": "^0.76.0",
53
- "@effect/platform-bun": "^0.89.0",
54
- "@effect/platform-node": "^0.106.0",
55
- "@effect/printer": "^0.49.0",
56
- "@effect/printer-ansi": "^0.49.0",
57
- "@effect/rpc": "^0.75.1",
58
- "@effect/sql": "^0.51.1",
59
- "@effect/typeclass": "^0.40.0",
60
- "@effect/vitest": "^0.29.0",
57
+ "@effect/opentelemetry": "^4.0.3",
58
+ "@effect/platform-browser": "^4.0.3",
59
+ "@effect/platform-bun": "^4.0.3",
60
+ "@effect/platform-node": "^4.0.3",
61
+ "@effect/platform-node-shared": "^4.0.3",
62
+ "@effect/vitest": "^4.0.3",
61
63
  "@opentelemetry/api": "^1.9.0",
62
64
  "@opentelemetry/resources": "^2.2.0",
63
65
  "@standard-schema/spec": "^1.1.0",
64
- "effect": "^3.21.2"
66
+ "effect": "^4.0.3"
65
67
  },
66
- "$genie": {
67
- "source": "package.json.genie.ts",
68
- "warning": "DO NOT EDIT - changes will be overwritten",
69
- "workspaceClosureDirs": [
70
- "packages/@livestore/adapter-node",
71
- "packages/@livestore/adapter-web",
72
- "packages/@livestore/cli",
73
- "packages/@livestore/common",
74
- "packages/@livestore/common-cf",
75
- "packages/@livestore/devtools-web-common",
76
- "packages/@livestore/livestore",
77
- "packages/@livestore/peer-deps",
78
- "packages/@livestore/sqlite-wasm",
79
- "packages/@livestore/utils",
80
- "packages/@livestore/utils-dev",
81
- "packages/@livestore/wa-sqlite",
82
- "packages/@livestore/webmesh"
83
- ]
68
+ "publishConfig": {
69
+ "access": "public"
84
70
  },
85
71
  "scripts": {
86
72
  "build": "tsc",
@@ -0,0 +1 @@
1
+ .tmp-test-configs/
@@ -4,12 +4,12 @@ import { fileURLToPath, pathToFileURL } from 'node:url'
4
4
  import { Events, makeSchema, State } from '@livestore/common/schema'
5
5
  import type { MockSyncBackend } from '@livestore/common/sync'
6
6
  import { EventFactory } from '@livestore/common/testing'
7
- import { Effect, FileSystem, type Mailbox, Schema } from '@livestore/utils/effect'
7
+ import { Effect, FileSystem, type Queue, Schema, type SubscriptionRef } from '@livestore/utils/effect'
8
8
 
9
9
  const __dirname = path.dirname(fileURLToPath(import.meta.url))
10
10
 
11
11
  class DynamicImportError extends Schema.TaggedError<DynamicImportError>()('DynamicImportError', {
12
- cause: Schema.Defect,
12
+ cause: Schema.Defect(),
13
13
  path: Schema.String,
14
14
  }) {}
15
15
 
@@ -49,21 +49,26 @@ const makeTempConfig = () => {
49
49
  const moduleSource = `
50
50
  import { schema } from ${JSON.stringify(schemaModuleUrl)}
51
51
  import { makeMockSyncBackend } from '@livestore/common/sync'
52
- import { Effect, Mailbox } from '@livestore/utils/effect'
52
+ import { Effect, Queue, SubscriptionRef } from '@livestore/utils/effect'
53
53
 
54
54
  export const mockBackend = await Effect.runPromise(Effect.scoped(makeMockSyncBackend({ startConnected: true })))
55
- export const connectionEvents = await Effect.runPromise(Mailbox.make<'connect' | 'disconnect'>())
55
+ export const connectionEvents = await Effect.runPromise(Queue.make<'connect' | 'disconnect'>())
56
+ export const disconnectShouldFail = await Effect.runPromise(SubscriptionRef.make(false))
56
57
 
57
58
  export { schema }
58
59
 
59
60
  export const syncBackend = (_args) =>
60
61
  mockBackend.makeSyncBackend.pipe(
61
- Effect.tap(() => connectionEvents.offer('connect')),
62
+ Effect.tap(() => Queue.offer(connectionEvents, 'connect')),
62
63
  Effect.map((backend) => {
63
- const disconnect = backend.disconnect ?? Effect.void
64
+ const disconnect = SubscriptionRef.get(disconnectShouldFail).pipe(
65
+ Effect.flatMap((shouldFail) =>
66
+ shouldFail ? Effect.fail(new Error('disconnect failed')) : (backend.disconnect ?? Effect.void),
67
+ ),
68
+ )
64
69
  return {
65
70
  ...backend,
66
- disconnect: disconnect.pipe(Effect.tap(() => connectionEvents.offer('disconnect'))),
71
+ disconnect: disconnect.pipe(Effect.tap(() => Queue.offer(connectionEvents, 'disconnect'))),
67
72
  }
68
73
  }),
69
74
  )
@@ -92,15 +97,21 @@ export const useMockConfig = Effect.acquireRelease(
92
97
  catch: (cause) => new DynamicImportError({ cause, path: tempPath }),
93
98
  })) as {
94
99
  mockBackend: MockSyncBackend
95
- connectionEvents: Mailbox.Mailbox<'connect' | 'disconnect'>
100
+ connectionEvents: Queue.Queue<'connect' | 'disconnect'>
101
+ disconnectShouldFail: SubscriptionRef.SubscriptionRef<boolean>
96
102
  }
97
103
 
98
- return { configPath: tempPath, mockBackend: mod.mockBackend, connectionEvents: mod.connectionEvents }
104
+ return {
105
+ configPath: tempPath,
106
+ mockBackend: mod.mockBackend,
107
+ connectionEvents: mod.connectionEvents,
108
+ disconnectShouldFail: mod.disconnectShouldFail,
109
+ }
99
110
  }),
100
111
  ({ configPath }) =>
101
112
  Effect.gen(function* () {
102
113
  const fs = yield* FileSystem.FileSystem
103
- yield* fs.remove(configPath, { recursive: false }).pipe(Effect.catchAll(() => Effect.void))
114
+ yield* fs.remove(configPath, { recursive: false }).pipe(Effect.ignore)
104
115
  }),
105
116
  )
106
117
 
@@ -1,9 +1,7 @@
1
- import { expect } from 'vitest'
2
-
3
- import type { LiveStoreEvent } from '@livestore/common/schema'
4
- import { Vitest } from '@livestore/utils-dev/node-vitest'
5
- import { Chunk, Effect, FetchHttpClient, Layer, Mailbox, Stream } from '@livestore/utils/effect'
1
+ import { Effect, FetchHttpClient, Layer, type Queue, Stream, SubscriptionRef } from '@livestore/utils/effect'
6
2
  import { PlatformNode } from '@livestore/utils/node'
3
+ import { Vitest } from '@livestore/utils-dev/node-vitest'
4
+ import { expect } from 'vitest'
7
5
 
8
6
  import { pullEventsFromSyncBackend, pushEventsToSyncBackend } from '../sync-operations.ts'
9
7
  import { makeEventFactory, useMockConfig } from './fixtures/mock-config.ts'
@@ -18,15 +16,11 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
18
16
 
19
17
  /** Collects the connect + disconnect lifecycle emitted by the mock sync backend. */
20
18
  const expectConnectLifecycle = (
21
- mailbox: Mailbox.Mailbox<'connect' | 'disconnect'>,
19
+ mailbox: Queue.Queue<'connect' | 'disconnect'>,
22
20
  ): Effect.Effect<ReadonlyArray<'connect' | 'disconnect'>> =>
23
- Mailbox.toStream(mailbox).pipe(
24
- Stream.take(2),
25
- Stream.runCollect,
26
- Effect.map((chunk) => Chunk.toReadonlyArray(chunk)),
27
- )
21
+ Stream.fromQueue(mailbox).pipe(Stream.take(2), Stream.runCollect)
28
22
 
29
- Vitest.scopedLive('exports events and releases the backend connection', (test: Vitest.TestContext) =>
23
+ Vitest.live('exports events and releases the backend connection', (test: Vitest.TestContext) =>
30
24
  Effect.gen(function* () {
31
25
  const { mockBackend, connectionEvents, configPath } = yield* useMockConfig
32
26
  const factory = makeEventFactory()
@@ -52,7 +46,22 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
52
46
  }).pipe(withTestCtx(test)),
53
47
  )
54
48
 
55
- Vitest.scopedLive('fails import when backend is not empty', (test: Vitest.TestContext) =>
49
+ Vitest.live('preserves a successful export when backend disconnect fails', (test: Vitest.TestContext) =>
50
+ Effect.gen(function* () {
51
+ const { configPath, disconnectShouldFail } = yield* useMockConfig
52
+ yield* SubscriptionRef.set(disconnectShouldFail, true)
53
+
54
+ const result = yield* pullEventsFromSyncBackend({
55
+ configPath,
56
+ storeId,
57
+ clientId,
58
+ })
59
+
60
+ expect(result.eventCount).toBe(0)
61
+ }).pipe(withTestCtx(test)),
62
+ )
63
+
64
+ Vitest.live('fails import when backend is not empty', (test: Vitest.TestContext) =>
56
65
  Effect.gen(function* () {
57
66
  const { mockBackend, connectionEvents, configPath } = yield* useMockConfig
58
67
  const factory = makeEventFactory()
@@ -77,11 +86,11 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
77
86
  },
78
87
  force: false,
79
88
  dryRun: false,
80
- }).pipe(Effect.either)
89
+ }).pipe(Effect.result)
81
90
 
82
- expect(result._tag).toBe('Left')
83
- if (result._tag === 'Left') {
84
- expect(result.left._tag).toBe('ImportError')
91
+ expect(result._tag).toBe('Failure')
92
+ if (result._tag === 'Failure') {
93
+ expect(result.failure._tag).toBe('ImportError')
85
94
  }
86
95
 
87
96
  const lifecycle = yield* expectConnectLifecycle(connectionEvents)
@@ -89,7 +98,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
89
98
  }).pipe(withTestCtx(test)),
90
99
  )
91
100
 
92
- Vitest.scopedLive('supports dry-run import and releases backend', (test: Vitest.TestContext) =>
101
+ Vitest.live('supports dry-run import and releases backend', (test: Vitest.TestContext) =>
93
102
  Effect.gen(function* () {
94
103
  const { configPath, connectionEvents } = yield* useMockConfig
95
104
  const factory = makeEventFactory()
@@ -118,7 +127,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
118
127
  }).pipe(withTestCtx(test)),
119
128
  )
120
129
 
121
- Vitest.scopedLive('imports events into empty backend with progress and batching', (test: Vitest.TestContext) =>
130
+ Vitest.live('imports events into empty backend with progress and batching', (test: Vitest.TestContext) =>
122
131
  Effect.gen(function* () {
123
132
  const { mockBackend, configPath, connectionEvents } = yield* useMockConfig
124
133
  const factory = makeEventFactory()
@@ -151,11 +160,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
151
160
  { pushed: 120, total: 120 },
152
161
  ])
153
162
 
154
- const pushedEvents = yield* mockBackend.pushedEvents.pipe(
155
- Stream.take(importBatch.length),
156
- Stream.runCollect,
157
- Effect.map((chunk: Chunk.Chunk<LiveStoreEvent.Global.Encoded>) => Chunk.toReadonlyArray(chunk)),
158
- )
163
+ const pushedEvents = yield* mockBackend.pushedEvents.pipe(Stream.take(importBatch.length), Stream.runCollect)
159
164
  expect(pushedEvents.map((event) => event.seqNum)).toHaveLength(importBatch.length)
160
165
 
161
166
  const lifecycle = yield* expectConnectLifecycle(connectionEvents)
@@ -163,7 +168,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
163
168
  }).pipe(withTestCtx(test)),
164
169
  )
165
170
 
166
- Vitest.scopedLive('allows force import on store ID mismatch', (test: Vitest.TestContext) =>
171
+ Vitest.live('allows force import on store ID mismatch', (test: Vitest.TestContext) =>
167
172
  Effect.gen(function* () {
168
173
  const { mockBackend, configPath, connectionEvents } = yield* useMockConfig
169
174
  const factory = makeEventFactory()
@@ -187,11 +192,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
187
192
  expect(result.dryRun).toBe(false)
188
193
  expect(result.eventCount).toBe(importBatch.length)
189
194
 
190
- const pushedEvents = yield* mockBackend.pushedEvents.pipe(
191
- Stream.take(1),
192
- Stream.runCollect,
193
- Effect.map((chunk: Chunk.Chunk<LiveStoreEvent.Global.Encoded>) => Chunk.toReadonlyArray(chunk)),
194
- )
195
+ const pushedEvents = yield* mockBackend.pushedEvents.pipe(Stream.take(1), Stream.runCollect)
195
196
  expect(pushedEvents).toHaveLength(1)
196
197
 
197
198
  const lifecycle = yield* expectConnectLifecycle(connectionEvents)
@@ -199,7 +200,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
199
200
  }).pipe(withTestCtx(test)),
200
201
  )
201
202
 
202
- Vitest.scopedLive('rejects store ID mismatch without force', (test: Vitest.TestContext) =>
203
+ Vitest.live('rejects store ID mismatch without force', (test: Vitest.TestContext) =>
203
204
  Effect.gen(function* () {
204
205
  const { configPath, connectionEvents } = yield* useMockConfig
205
206
  const factory = makeEventFactory()
@@ -218,11 +219,11 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
218
219
  },
219
220
  force: false,
220
221
  dryRun: false,
221
- }).pipe(Effect.either)
222
+ }).pipe(Effect.result)
222
223
 
223
- expect(result._tag).toBe('Left')
224
- if (result._tag === 'Left') {
225
- expect(result.left._tag).toBe('ImportError')
224
+ expect(result._tag).toBe('Failure')
225
+ if (result._tag === 'Failure') {
226
+ expect(result.failure._tag).toBe('ImportError')
226
227
  }
227
228
 
228
229
  const lifecycle = yield* expectConnectLifecycle(connectionEvents)