@livestore/common 0.0.58-dev.6 → 0.0.58-dev.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-types.d.ts +29 -3
  3. package/dist/adapter-types.d.ts.map +1 -1
  4. package/dist/adapter-types.js +5 -0
  5. package/dist/adapter-types.js.map +1 -1
  6. package/dist/debug-info.d.ts +8 -8
  7. package/dist/derived-mutations.d.ts +4 -4
  8. package/dist/derived-mutations.d.ts.map +1 -1
  9. package/dist/derived-mutations.test.js +1 -0
  10. package/dist/derived-mutations.test.js.map +1 -1
  11. package/dist/devtools/devtools-bridge.d.ts +1 -1
  12. package/dist/devtools/devtools-bridge.d.ts.map +1 -1
  13. package/dist/devtools/devtools-messages.d.ts +99 -21
  14. package/dist/devtools/devtools-messages.d.ts.map +1 -1
  15. package/dist/devtools/devtools-messages.js +13 -4
  16. package/dist/devtools/devtools-messages.js.map +1 -1
  17. package/dist/devtools/index.d.ts +1 -0
  18. package/dist/devtools/index.d.ts.map +1 -1
  19. package/dist/devtools/index.js +2 -0
  20. package/dist/devtools/index.js.map +1 -1
  21. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
  22. package/dist/rehydrate-from-mutationlog.js +11 -5
  23. package/dist/rehydrate-from-mutationlog.js.map +1 -1
  24. package/dist/schema/mutations.d.ts +137 -18
  25. package/dist/schema/mutations.d.ts.map +1 -1
  26. package/dist/schema/mutations.js +41 -16
  27. package/dist/schema/mutations.js.map +1 -1
  28. package/dist/schema/system-tables.d.ts +118 -5
  29. package/dist/schema/system-tables.d.ts.map +1 -1
  30. package/dist/schema/system-tables.js +22 -8
  31. package/dist/schema/system-tables.js.map +1 -1
  32. package/dist/schema-management/migrations.js +1 -1
  33. package/dist/schema-management/migrations.js.map +1 -1
  34. package/dist/sync/next/compact-events.d.ts +15 -0
  35. package/dist/sync/next/compact-events.d.ts.map +1 -0
  36. package/dist/sync/next/compact-events.js +176 -0
  37. package/dist/sync/next/compact-events.js.map +1 -0
  38. package/dist/sync/next/facts.d.ts +37 -0
  39. package/dist/sync/next/facts.d.ts.map +1 -0
  40. package/dist/sync/next/facts.js +155 -0
  41. package/dist/sync/next/facts.js.map +1 -0
  42. package/dist/sync/next/graphology.d.ts +8 -0
  43. package/dist/sync/next/graphology.d.ts.map +1 -0
  44. package/dist/sync/next/graphology.js +36 -0
  45. package/dist/sync/next/graphology.js.map +1 -0
  46. package/dist/sync/next/graphology_.d.ts +3 -0
  47. package/dist/sync/next/graphology_.d.ts.map +1 -0
  48. package/dist/sync/next/graphology_.js +3 -0
  49. package/dist/sync/next/graphology_.js.map +1 -0
  50. package/dist/sync/next/history-dag.d.ts +30 -0
  51. package/dist/sync/next/history-dag.d.ts.map +1 -0
  52. package/dist/sync/next/history-dag.js +69 -0
  53. package/dist/sync/next/history-dag.js.map +1 -0
  54. package/dist/sync/next/mod.d.ts +5 -0
  55. package/dist/sync/next/mod.d.ts.map +1 -0
  56. package/dist/sync/next/mod.js +5 -0
  57. package/dist/sync/next/mod.js.map +1 -0
  58. package/dist/sync/next/mutation-fixtures.d.ts +73 -0
  59. package/dist/sync/next/mutation-fixtures.d.ts.map +1 -0
  60. package/dist/sync/next/mutation-fixtures.js +160 -0
  61. package/dist/sync/next/mutation-fixtures.js.map +1 -0
  62. package/dist/sync/next/rebase-events.d.ts +27 -0
  63. package/dist/sync/next/rebase-events.d.ts.map +1 -0
  64. package/dist/sync/next/rebase-events.js +41 -0
  65. package/dist/sync/next/rebase-events.js.map +1 -0
  66. package/dist/sync/next/test/compact-events.calculator.test.d.ts +2 -0
  67. package/dist/sync/next/test/compact-events.calculator.test.d.ts.map +1 -0
  68. package/dist/sync/next/test/compact-events.calculator.test.js +101 -0
  69. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -0
  70. package/dist/sync/next/test/compact-events.test.d.ts +2 -0
  71. package/dist/sync/next/test/compact-events.test.d.ts.map +1 -0
  72. package/dist/sync/next/test/compact-events.test.js +201 -0
  73. package/dist/sync/next/test/compact-events.test.js.map +1 -0
  74. package/dist/sync/next/test/mod.d.ts +2 -0
  75. package/dist/sync/next/test/mod.d.ts.map +1 -0
  76. package/dist/sync/next/test/mod.js +2 -0
  77. package/dist/sync/next/test/mod.js.map +1 -0
  78. package/dist/sync/next/test/mutation-fixtures.d.ts +73 -0
  79. package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -0
  80. package/dist/sync/next/test/mutation-fixtures.js +161 -0
  81. package/dist/sync/next/test/mutation-fixtures.js.map +1 -0
  82. package/dist/sync/sync.d.ts +5 -4
  83. package/dist/sync/sync.d.ts.map +1 -1
  84. package/dist/sync/sync.js.map +1 -1
  85. package/package.json +21 -4
  86. package/src/adapter-types.ts +27 -3
  87. package/src/derived-mutations.test.ts +2 -1
  88. package/src/derived-mutations.ts +5 -5
  89. package/src/devtools/devtools-bridge.ts +1 -1
  90. package/src/devtools/devtools-messages.ts +12 -2
  91. package/src/devtools/index.ts +2 -0
  92. package/src/rehydrate-from-mutationlog.ts +16 -7
  93. package/src/schema/mutations.ts +171 -30
  94. package/src/schema/system-tables.ts +30 -8
  95. package/src/schema-management/migrations.ts +1 -1
  96. package/src/sync/next/ambient.d.ts +3 -0
  97. package/src/sync/next/compact-events.ts +219 -0
  98. package/src/sync/next/facts.ts +228 -0
  99. package/src/sync/next/graphology.ts +49 -0
  100. package/src/sync/next/graphology_.ts +2 -0
  101. package/src/sync/next/history-dag.ts +109 -0
  102. package/src/sync/next/mod.ts +4 -0
  103. package/src/sync/next/rebase-events.ts +97 -0
  104. package/src/sync/next/test/compact-events.calculator.test.ts +121 -0
  105. package/src/sync/next/test/compact-events.test.ts +232 -0
  106. package/src/sync/next/test/mod.ts +1 -0
  107. package/src/sync/next/test/mutation-fixtures.ts +230 -0
  108. package/src/sync/sync.ts +10 -4
  109. package/dist/global-types.d.ts +0 -7
  110. package/dist/global-types.d.ts.map +0 -1
  111. package/dist/global-types.js +0 -2
  112. package/dist/global-types.js.map +0 -1
  113. package/src/global-types.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,MAAM,KAAW,SAAS,CAuCzB;AAvCD,WAAiB,SAAS;IACxB,MAAa,YAAa,SAAQ,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE;QAClF,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,QAAQ,EAAE,MAAM,CAAC,OAAO;KACzB,CAAC;KAAG;IAHQ,sBAAY,eAGpB,CAAA;IAEL,MAAa,aAAc,SAAQ,MAAM,CAAC,YAAY,CAAC,6BAA6B,EAAE;QACpF,UAAU,EAAE,MAAM,CAAC,MAAM;KAC1B,CAAC;KAAG;IAFQ,uBAAa,gBAErB,CAAA;IAEL,MAAa,iBAAkB,SAAQ,MAAM,CAAC,YAAY,CAAC,iCAAiC,EAAE;QAC5F,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB;;;WAGG;QACH,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;KACzB,CAAC;KAAG;IATQ,2BAAiB,oBASzB,CAAA;IAEL,MAAa,qBAAsB,SAAQ,MAAM,CAAC,YAAY,CAAC,qCAAqC,EAAE;QACpG,SAAS,EAAE,MAAM,CAAC,MAAM;KACzB,CAAC;KAAG;IAFQ,+BAAqB,wBAE7B,CAAA;IAEL,4GAA4G;IAC5G,8BAA8B;IAC9B,QAAQ;IAER,MAAa,GAAI,SAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;KAAG;IAAlG,aAAG,MAA+F,CAAA;IAElG,8BAAoB,GAAG,CAClC,GAAY,EACgF,EAAE,CAC9F,UAAU,CAAC,gBAAgB,CAAC;QAC1B,WAAW,EAAE,gCAAgC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACnE,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,GAAG;KAChB,CAAC,CAAA;AACN,CAAC,EAvCgB,SAAS,KAAT,SAAS,QAuCzB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,MAAM,KAAW,SAAS,CAyCzB;AAzCD,WAAiB,SAAS;IACxB,MAAa,YAAa,SAAQ,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE;QAClF,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,0BAA0B;QAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;KACzB,CAAC;KAAG;IAJQ,sBAAY,eAIpB,CAAA;IAEL,MAAa,aAAc,SAAQ,MAAM,CAAC,YAAY,CAAC,6BAA6B,EAAE;QACpF,UAAU,EAAE,MAAM,CAAC,MAAM;KAC1B,CAAC;KAAG;IAFQ,uBAAa,gBAErB,CAAA;IAEL,MAAa,iBAAkB,SAAQ,MAAM,CAAC,YAAY,CAAC,iCAAiC,EAAE;QAC5F,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB;;;WAGG;QACH,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM;KACvB,CAAC;KAAG;IAVQ,2BAAiB,oBAUzB,CAAA;IAEL,MAAa,qBAAsB,SAAQ,MAAM,CAAC,YAAY,CAAC,qCAAqC,EAAE;QACpG,SAAS,EAAE,MAAM,CAAC,MAAM;KACzB,CAAC;KAAG;IAFQ,+BAAqB,wBAE7B,CAAA;IAEL,4GAA4G;IAC5G,8BAA8B;IAC9B,QAAQ;IAER,MAAa,GAAI,SAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;KAAG;IAAlG,aAAG,MAA+F,CAAA;IAElG,8BAAoB,GAAG,CAClC,GAAY,EACgF,EAAE,CAC9F,UAAU,CAAC,gBAAgB,CAAC;QAC1B,WAAW,EAAE,gCAAgC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACnE,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,GAAG;KAChB,CAAC,CAAA;AACN,CAAC,EAzCgB,SAAS,KAAT,SAAS,QAyCzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate-from-mutationlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,KAAK,+BAA+B,EAAE,KAAK,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpH,OAAO,KAAK,EAAE,eAAe,EAAmC,MAAM,mBAAmB,CAAA;AAKzF,eAAO,MAAM,wBAAwB,yDAMlC;IACD,KAAK,EAAE,mBAAmB,CAAA;IAC1B,EAAE,EAAE,mBAAmB,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,gBAAgB,EAAE,+BAA+B,CAAA;IACjD,UAAU,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACxE,gDAmGE,CAAA"}
1
+ {"version":3,"file":"rehydrate-from-mutationlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,KAAK,+BAA+B,EAAE,KAAK,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpH,OAAO,KAAK,EAAE,eAAe,EAAkD,MAAM,mBAAmB,CAAA;AAKxG,eAAO,MAAM,wBAAwB,yDAMlC;IACD,KAAK,EAAE,mBAAmB,CAAA;IAC1B,EAAE,EAAE,mBAAmB,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,gBAAgB,EAAE,+BAA+B,CAAA;IACjD,UAAU,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACxE,gDA4GE,CAAA"}
@@ -23,7 +23,8 @@ This likely means the schema has changed in an incompatible way.
23
23
  `,
24
24
  })));
25
25
  const mutationEventDecoded = {
26
- id: row.id,
26
+ id: { global: row.idGlobal, local: row.idLocal },
27
+ parentId: { global: row.parentIdGlobal, local: row.parentIdLocal },
27
28
  mutation: row.mutation,
28
29
  args: argsDecoded,
29
30
  };
@@ -44,8 +45,8 @@ This likely means the schema has changed in an incompatible way.
44
45
  const CHUNK_SIZE = 100;
45
46
  const stmt = logDb.prepare(sql `\
46
47
  SELECT * FROM ${MUTATION_LOG_META_TABLE}
47
- WHERE id > COALESCE($id, '')
48
- ORDER BY id ASC
48
+ WHERE idGlobal > COALESCE($idGlobal, '') AND idLocal > COALESCE($idLocal, '')
49
+ ORDER BY idGlobal ASC, idLocal ASC
49
50
  LIMIT ${CHUNK_SIZE}
50
51
  `);
51
52
  let processedMutations = 0;
@@ -53,8 +54,13 @@ LIMIT ${CHUNK_SIZE}
53
54
  // End stream if no more rows
54
55
  if (Chunk.isChunk(item) && item.length === 0)
55
56
  return Option.none();
56
- const lastId = Chunk.isChunk(item) ? Chunk.last(item).pipe(Option.getOrUndefined)?.id : undefined;
57
- const nextItem = Chunk.fromIterable(stmt.select({ $id: lastId }));
57
+ const lastId = Chunk.isChunk(item)
58
+ ? Chunk.last(item).pipe(Option.map((_) => ({ global: _.idGlobal, local: _.idLocal })), Option.getOrUndefined)
59
+ : undefined;
60
+ const nextItem = Chunk.fromIterable(stmt.select({
61
+ $idGlobal: lastId?.global,
62
+ $idLocal: lastId?.local,
63
+ }));
58
64
  const prevItem = Chunk.isChunk(item) ? item : Chunk.empty();
59
65
  return Option.some([prevItem, nextItem]);
60
66
  }).pipe(Stream.bufferChunks({ capacity: 2 }), Stream.tap((row) => Effect.gen(function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Schema } from '@livestore/utils/effect';
2
+ import { EventId } from '../adapter-types.js';
2
3
  import type { BindValues } from '../sql-queries/sql-queries.js';
3
4
  import type { LiveStoreSchema } from './index.js';
4
5
  export type MutationDefMap = Map<string | 'livestore.RawSql', MutationDef.Any>;
@@ -21,29 +22,70 @@ export type SingleOrReadonlyArray<T> = T | ReadonlyArray<T>;
21
22
  export type MutationDef<TName extends string, TFrom, TTo> = {
22
23
  name: TName;
23
24
  schema: Schema.Schema<TTo, TFrom>;
24
- sql: MutationDefSqlResult<TTo>;
25
+ sql: MutationDefSqlResult<NoInfer<TTo>>;
25
26
  options: {
27
+ /** Warning: This feature is not fully implemented yet */
28
+ historyId: string;
26
29
  /**
27
30
  * When set to true, the mutation won't be synced over the network
28
31
  */
29
32
  localOnly: boolean;
33
+ /** Warning: This feature is not fully implemented yet */
34
+ facts: FactsCallback<TTo> | undefined;
30
35
  };
31
- /** Helper function to construct mutation event */
32
- (args: TTo): {
36
+ /** Helper function to construct a partial mutation event */
37
+ (args: TTo, options?: {
38
+ id?: number;
39
+ }): {
33
40
  mutation: TName;
34
41
  args: TTo;
35
- id: string;
42
+ id?: EventId;
36
43
  };
37
44
  };
45
+ export type FactsCallback<TTo> = (args: TTo, currentFacts: MutationEventFacts) => {
46
+ modify: {
47
+ set: Iterable<MutationEventFactInput>;
48
+ unset: Iterable<MutationEventFactInput>;
49
+ };
50
+ require: Iterable<MutationEventFactInput>;
51
+ };
38
52
  export declare namespace MutationDef {
39
53
  type Any = MutationDef<string, any, any>;
40
54
  }
41
- export declare const defineMutation: <TName extends string, TFrom, TTo>(name: TName, schema: Schema.Schema<TTo, TFrom>, sql: MutationDefSqlResult<TTo>, options?: {
55
+ export type MutationEventKey = string;
56
+ export type MutationEventFact = string;
57
+ export type MutationEventFacts = ReadonlyMap<string, any>;
58
+ export type MutationEventFactsGroup = {
59
+ modifySet: MutationEventFacts;
60
+ modifyUnset: MutationEventFacts;
61
+ /**
62
+ * Events on independent "dependency" branches are commutative which can facilitate more prioritized syncing
63
+ */
64
+ depRequire: MutationEventFacts;
65
+ depRead: MutationEventFacts;
66
+ };
67
+ export type MutationEventFactsSnapshot = Map<string, any>;
68
+ export type MutationEventFactInput = string | readonly [string, any];
69
+ export declare const defineFacts: <TRecord extends Record<string, MutationEventFactInput | ((...args: any[]) => MutationEventFactInput)>>(record: TRecord) => TRecord;
70
+ export type DefineMutationOptions<TTo> = {
71
+ historyId?: string;
72
+ /** Warning: This feature is not fully implemented yet */
73
+ facts?: (args: TTo, currentFacts: MutationEventFacts) => {
74
+ modify?: {
75
+ set?: Iterable<MutationEventFactInput>;
76
+ unset?: Iterable<MutationEventFactInput>;
77
+ };
78
+ /**
79
+ * Two purposes: constrain history and constrain compaction
80
+ */
81
+ require?: Iterable<MutationEventFactInput>;
82
+ };
42
83
  /**
43
84
  * When set to true, the mutation won't be synced over the network
44
85
  */
45
86
  localOnly?: boolean;
46
- }) => MutationDef<TName, TFrom, TTo>;
87
+ };
88
+ export declare const defineMutation: <TName extends string, TFrom, TTo>(name: TName, schema: Schema.Schema<TTo, TFrom>, sql: MutationDefSqlResult<NoInfer<TTo>>, options?: DefineMutationOptions<TTo>) => MutationDef<TName, TFrom, TTo>;
47
89
  export declare const makeMutationDefRecord: <TInputRecord extends Record<string, MutationDef.Any>>(inputRecord: TInputRecord) => { [K in TInputRecord[keyof TInputRecord]["name"]]: Extract<TInputRecord[keyof TInputRecord], {
48
90
  name: K;
49
91
  }>; };
@@ -54,27 +96,42 @@ export declare const rawSqlMutation: MutationDef<"livestore.RawSql", {
54
96
  } | undefined;
55
97
  readonly writeTables?: readonly string[] | undefined;
56
98
  }, {
57
- readonly sql: string;
58
99
  readonly bindValues?: {
59
100
  readonly [x: string]: any;
60
101
  } | undefined;
102
+ readonly sql: string;
61
103
  readonly writeTables?: ReadonlySet<string> | undefined;
62
104
  }>;
63
105
  export type RawSqlMutation = typeof rawSqlMutation;
64
106
  export type RawSqlMutationEvent = ReturnType<typeof rawSqlMutation>;
107
+ export type MutationEventPartial<TMutationsDef extends MutationDef.Any> = {
108
+ mutation: TMutationsDef['name'];
109
+ args: Schema.Schema.Type<TMutationsDef['schema']>;
110
+ };
111
+ export type MutationEventPartialEncoded<TMutationsDef extends MutationDef.Any> = {
112
+ mutation: TMutationsDef['name'];
113
+ args: Schema.Schema.Encoded<TMutationsDef['schema']>;
114
+ };
65
115
  export type MutationEvent<TMutationsDef extends MutationDef.Any> = {
66
116
  mutation: TMutationsDef['name'];
67
117
  args: Schema.Schema.Type<TMutationsDef['schema']>;
68
- id: string;
118
+ id: EventId;
119
+ parentId: EventId;
69
120
  };
70
121
  export type MutationEventEncoded<TMutationsDef extends MutationDef.Any> = {
71
122
  mutation: TMutationsDef['name'];
72
123
  args: Schema.Schema.Encoded<TMutationsDef['schema']>;
73
- id: string;
124
+ id: EventId;
125
+ parentId: EventId;
74
126
  };
75
127
  export declare namespace MutationEvent {
76
128
  type Any = MutationEvent<MutationDef.Any>;
77
129
  type AnyEncoded = MutationEventEncoded<MutationDef.Any>;
130
+ type PartialAny = MutationEventPartial<MutationDef.Any>;
131
+ type PartialAnyEncoded = MutationEventPartialEncoded<MutationDef.Any>;
132
+ type PartialForSchema<TSchema extends LiveStoreSchema> = {
133
+ [K in keyof TSchema['_MutationDefMapType']]: MutationEventPartial<TSchema['_MutationDefMapType'][K]>;
134
+ }[keyof TSchema['_MutationDefMapType']];
78
135
  type ForSchema<TSchema extends LiveStoreSchema> = {
79
136
  [K in keyof TSchema['_MutationDefMapType']]: MutationEvent<TSchema['_MutationDefMapType'][K]>;
80
137
  }[keyof TSchema['_MutationDefMapType']];
@@ -83,25 +140,87 @@ export type MutationEventSchema<TMutationsDefRecord extends MutationDefRecord> =
83
140
  [K in keyof TMutationsDefRecord]: {
84
141
  mutation: K;
85
142
  args: Schema.Schema.Type<TMutationsDefRecord[K]['schema']>;
86
- id: string;
143
+ id: EventId;
144
+ parentId: EventId;
145
+ };
146
+ }[keyof TMutationsDefRecord], {
147
+ [K in keyof TMutationsDefRecord]: {
148
+ mutation: K;
149
+ args: Schema.Schema.Encoded<TMutationsDefRecord[K]['schema']>;
150
+ id: EventId;
151
+ parentId: EventId;
152
+ };
153
+ }[keyof TMutationsDefRecord]>;
154
+ export type MutationEventPartialSchema<TMutationsDefRecord extends MutationDefRecord> = Schema.Schema<{
155
+ [K in keyof TMutationsDefRecord]: {
156
+ mutation: K;
157
+ args: Schema.Schema.Type<TMutationsDefRecord[K]['schema']>;
87
158
  };
88
159
  }[keyof TMutationsDefRecord], {
89
160
  [K in keyof TMutationsDefRecord]: {
90
161
  mutation: K;
91
162
  args: Schema.Schema.Encoded<TMutationsDefRecord[K]['schema']>;
92
- id: string;
93
163
  };
94
164
  }[keyof TMutationsDefRecord]>;
95
165
  export declare const makeMutationEventSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => MutationEventSchema<TSchema["_MutationDefMapType"]>;
166
+ export declare const makeMutationEventPartialSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => MutationEventPartialSchema<TSchema["_MutationDefMapType"]>;
96
167
  export declare const makeMutationEventSchemaMemo: <TSchema extends LiveStoreSchema>(schema: TSchema) => MutationEventSchema<TSchema["_MutationDefMapType"]>;
97
- export declare const mutationEventSchemaDecodedAny: Schema.Struct<{
98
- mutation: typeof Schema.String;
99
- args: typeof Schema.Any;
100
- id: typeof Schema.String;
101
- }>;
102
- export declare const mutationEventSchemaEncodedAny: Schema.Struct<{
168
+ export declare const mutationEventSchemaAny: Schema.Struct<{
103
169
  mutation: typeof Schema.String;
104
170
  args: typeof Schema.Any;
105
- id: typeof Schema.String;
171
+ id: Schema.Struct<{
172
+ global: typeof Schema.Number;
173
+ local: typeof Schema.Number;
174
+ }>;
175
+ parentId: Schema.Struct<{
176
+ global: typeof Schema.Number;
177
+ local: typeof Schema.Number;
178
+ }>;
106
179
  }>;
180
+ export declare const mutationEventSchemaDecodedAny: Schema.SchemaClass<{
181
+ readonly id: {
182
+ readonly global: number;
183
+ readonly local: number;
184
+ };
185
+ readonly mutation: string;
186
+ readonly args: any;
187
+ readonly parentId: {
188
+ readonly global: number;
189
+ readonly local: number;
190
+ };
191
+ }, {
192
+ readonly id: {
193
+ readonly global: number;
194
+ readonly local: number;
195
+ };
196
+ readonly mutation: string;
197
+ readonly args: any;
198
+ readonly parentId: {
199
+ readonly global: number;
200
+ readonly local: number;
201
+ };
202
+ }, never>;
203
+ export declare const mutationEventSchemaEncodedAny: Schema.SchemaClass<{
204
+ readonly id: {
205
+ readonly global: number;
206
+ readonly local: number;
207
+ };
208
+ readonly mutation: string;
209
+ readonly args: any;
210
+ readonly parentId: {
211
+ readonly global: number;
212
+ readonly local: number;
213
+ };
214
+ }, {
215
+ readonly id: {
216
+ readonly global: number;
217
+ readonly local: number;
218
+ };
219
+ readonly mutation: string;
220
+ readonly args: any;
221
+ readonly parentId: {
222
+ readonly global: number;
223
+ readonly local: number;
224
+ };
225
+ }, never>;
107
226
  //# sourceMappingURL=mutations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,32 @@
1
1
  import { memoizeByRef } from '@livestore/utils';
2
- import { cuid } from '@livestore/utils/cuid';
3
2
  import { Schema } from '@livestore/utils/effect';
3
+ import { EventId } from '../adapter-types.js';
4
+ export const defineFacts = (record) => record;
4
5
  // TODO possibly also allow for mutation event subsumption behaviour
5
6
  export const defineMutation = (name, schema, sql, options) => {
6
- const makeEvent = (args) => ({ mutation: name, args, id: cuid() });
7
- Object.defineProperty(makeEvent, 'name', { value: name });
8
- Object.defineProperty(makeEvent, 'schema', { value: schema });
9
- Object.defineProperty(makeEvent, 'sql', { value: sql });
10
- Object.defineProperty(makeEvent, 'options', { value: { localOnly: options?.localOnly ?? false } });
11
- return makeEvent;
7
+ const makePartialEvent = (args, options) => ({ mutation: name, args, ...options });
8
+ Object.defineProperty(makePartialEvent, 'name', { value: name });
9
+ Object.defineProperty(makePartialEvent, 'schema', { value: schema });
10
+ Object.defineProperty(makePartialEvent, 'sql', { value: sql });
11
+ Object.defineProperty(makePartialEvent, 'options', {
12
+ value: {
13
+ historyId: options?.historyId ?? 'main',
14
+ localOnly: options?.localOnly ?? false,
15
+ facts: options?.facts
16
+ ? (args, currentFacts) => {
17
+ const res = options.facts(args, currentFacts);
18
+ return {
19
+ modify: {
20
+ set: res.modify?.set ? new Set(res.modify.set) : new Set(),
21
+ unset: res.modify?.unset ? new Set(res.modify.unset) : new Set(),
22
+ },
23
+ require: res.require ? new Set(res.require) : new Set(),
24
+ };
25
+ }
26
+ : undefined,
27
+ },
28
+ });
29
+ return makePartialEvent;
12
30
  };
13
31
  export const makeMutationDefRecord = (inputRecord) => {
14
32
  const result = {};
@@ -26,17 +44,24 @@ export const rawSqlMutation = defineMutation('livestore.RawSql', Schema.Struct({
26
44
  export const makeMutationEventSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
27
45
  mutation: Schema.Literal(def.name),
28
46
  args: def.schema,
29
- id: Schema.String,
47
+ id: EventId,
48
+ parentId: EventId,
30
49
  }))).annotations({ title: 'MutationEventSchema' });
50
+ export const makeMutationEventPartialSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
51
+ mutation: Schema.Literal(def.name),
52
+ args: def.schema,
53
+ }))).annotations({ title: 'MutationEventSchemaPartial' });
31
54
  export const makeMutationEventSchemaMemo = memoizeByRef(makeMutationEventSchema);
32
- export const mutationEventSchemaDecodedAny = Schema.Struct({
33
- mutation: Schema.String,
34
- args: Schema.Any,
35
- id: Schema.String,
36
- }).annotations({ title: 'MutationEventSchema.DecodedAny' });
37
- export const mutationEventSchemaEncodedAny = Schema.Struct({
55
+ export const mutationEventSchemaAny = Schema.Struct({
38
56
  mutation: Schema.String,
39
57
  args: Schema.Any,
40
- id: Schema.String,
41
- }).annotations({ title: 'MutationEventSchema.EncodedAny' });
58
+ id: EventId,
59
+ parentId: EventId,
60
+ }).annotations({ title: 'MutationEventSchema.Any' });
61
+ export const mutationEventSchemaDecodedAny = Schema.typeSchema(mutationEventSchemaAny).annotations({
62
+ title: 'MutationEventSchema.DecodedAny',
63
+ });
64
+ export const mutationEventSchemaEncodedAny = Schema.encodedSchema(mutationEventSchemaAny).annotations({
65
+ title: 'MutationEventSchema.EncodedAny',
66
+ });
42
67
  //# sourceMappingURL=mutations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,48 @@ export declare const schemaMutationsMetaTable: import("./table-def.js").TableDef
77
77
  readonly updatedAt: string;
78
78
  }, never>>;
79
79
  export type SchemaMutationsMetaRow = FromTable.RowDecoded<typeof schemaMutationsMetaTable>;
80
+ /**
81
+ * Table which stores SQLite changeset blobs which is used for rolling back
82
+ * read-model state during rebasing.
83
+ */
84
+ export declare const SESSION_CHANGESET_META_TABLE = "__livestore_session_changeset";
85
+ export declare const sessionChangesetMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_session_changeset", {
86
+ idGlobal: {
87
+ columnType: "integer";
88
+ schema: Schema.Schema<number, number, never>;
89
+ default: import("effect/Option").None<never>;
90
+ nullable: false;
91
+ primaryKey: true;
92
+ };
93
+ idLocal: {
94
+ columnType: "integer";
95
+ schema: Schema.Schema<number, number, never>;
96
+ default: import("effect/Option").None<never>;
97
+ nullable: false;
98
+ primaryKey: true;
99
+ };
100
+ changeset: {
101
+ columnType: "blob";
102
+ schema: Schema.Schema<Uint8Array, Uint8Array, never>;
103
+ default: import("effect/Option").None<never>;
104
+ nullable: false;
105
+ primaryKey: false;
106
+ };
107
+ }>, false, {
108
+ isSingleton: false;
109
+ disableAutomaticIdColumn: true;
110
+ deriveMutations: never;
111
+ isSingleColumn: false;
112
+ }, Schema.Schema<{
113
+ readonly idGlobal: number;
114
+ readonly idLocal: number;
115
+ readonly changeset: Uint8Array;
116
+ }, {
117
+ readonly idGlobal: number;
118
+ readonly idLocal: number;
119
+ readonly changeset: Uint8Array;
120
+ }, never>>;
121
+ export type SessionChangesetMetaRow = FromTable.RowDecoded<typeof sessionChangesetMetaTable>;
80
122
  export declare const systemTables: (import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_schema", {
81
123
  tableName: {
82
124
  columnType: "text";
@@ -147,18 +189,74 @@ export declare const systemTables: (import("./table-def.js").TableDef<SqliteDsl.
147
189
  readonly mutationName: string;
148
190
  readonly schemaHash: number;
149
191
  readonly updatedAt: string;
192
+ }, never>> | import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_session_changeset", {
193
+ idGlobal: {
194
+ columnType: "integer";
195
+ schema: Schema.Schema<number, number, never>;
196
+ default: import("effect/Option").None<never>;
197
+ nullable: false;
198
+ primaryKey: true;
199
+ };
200
+ idLocal: {
201
+ columnType: "integer";
202
+ schema: Schema.Schema<number, number, never>;
203
+ default: import("effect/Option").None<never>;
204
+ nullable: false;
205
+ primaryKey: true;
206
+ };
207
+ changeset: {
208
+ columnType: "blob";
209
+ schema: Schema.Schema<Uint8Array, Uint8Array, never>;
210
+ default: import("effect/Option").None<never>;
211
+ nullable: false;
212
+ primaryKey: false;
213
+ };
214
+ }>, false, {
215
+ isSingleton: false;
216
+ disableAutomaticIdColumn: true;
217
+ deriveMutations: never;
218
+ isSingleColumn: false;
219
+ }, Schema.Schema<{
220
+ readonly idGlobal: number;
221
+ readonly idLocal: number;
222
+ readonly changeset: Uint8Array;
223
+ }, {
224
+ readonly idGlobal: number;
225
+ readonly idLocal: number;
226
+ readonly changeset: Uint8Array;
150
227
  }, never>>)[];
151
228
  export declare const SyncStatus: Schema.Literal<["synced", "pending", "error", "localOnly"]>;
152
229
  export type SyncStatus = typeof SyncStatus.Type;
153
230
  export declare const MUTATION_LOG_META_TABLE = "mutation_log";
154
231
  export declare const mutationLogMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"mutation_log", {
155
- id: {
156
- columnType: "text";
157
- schema: Schema.Schema<string, string, never>;
232
+ idGlobal: {
233
+ columnType: "integer";
234
+ schema: Schema.Schema<number, number, never>;
235
+ default: import("effect/Option").None<never>;
236
+ nullable: false;
237
+ primaryKey: true;
238
+ };
239
+ idLocal: {
240
+ columnType: "integer";
241
+ schema: Schema.Schema<number, number, never>;
158
242
  default: import("effect/Option").None<never>;
159
243
  nullable: false;
160
244
  primaryKey: true;
161
245
  };
246
+ parentIdGlobal: {
247
+ columnType: "integer";
248
+ schema: Schema.Schema<number, number, never>;
249
+ default: import("effect/Option").None<never>;
250
+ nullable: false;
251
+ primaryKey: false;
252
+ };
253
+ parentIdLocal: {
254
+ columnType: "integer";
255
+ schema: Schema.Schema<number, number, never>;
256
+ default: import("effect/Option").None<never>;
257
+ nullable: false;
258
+ primaryKey: false;
259
+ };
162
260
  mutation: {
163
261
  columnType: "text";
164
262
  schema: Schema.Schema<string, string, never>;
@@ -180,6 +278,13 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<Sql
180
278
  nullable: false;
181
279
  primaryKey: false;
182
280
  };
281
+ orderKey: {
282
+ columnType: "integer";
283
+ schema: Schema.Schema<number, number, never>;
284
+ default: import("effect/Option").None<never>;
285
+ nullable: false;
286
+ primaryKey: false;
287
+ };
183
288
  createdAt: {
184
289
  columnType: "text";
185
290
  schema: Schema.Schema<string, string, never>;
@@ -207,18 +312,26 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<Sql
207
312
  deriveMutations: never;
208
313
  isSingleColumn: false;
209
314
  }, Schema.Schema<{
210
- readonly id: string;
315
+ readonly idGlobal: number;
316
+ readonly idLocal: number;
317
+ readonly parentIdGlobal: number;
318
+ readonly parentIdLocal: number;
211
319
  readonly mutation: string;
212
320
  readonly argsJson: any;
213
321
  readonly schemaHash: number;
322
+ readonly orderKey: number;
214
323
  readonly createdAt: string;
215
324
  readonly syncStatus: "synced" | "pending" | "error" | "localOnly";
216
325
  readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
217
326
  }, {
218
- readonly id: string;
327
+ readonly idGlobal: number;
328
+ readonly idLocal: number;
329
+ readonly parentIdGlobal: number;
330
+ readonly parentIdLocal: number;
219
331
  readonly mutation: string;
220
332
  readonly argsJson: string;
221
333
  readonly schemaHash: number;
334
+ readonly orderKey: number;
222
335
  readonly createdAt: string;
223
336
  readonly syncStatus: "synced" | "pending" | "error" | "localOnly";
224
337
  readonly syncMetadataJson: string;
@@ -1 +1 @@
1
- {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAiC,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA8C,CAAA;AAIvE,eAAO,MAAM,UAAU,6DAA4D,CAAA;AACnF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAchC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAiC,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQrC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAyE,CAAA;AAIlG,eAAO,MAAM,UAAU,6DAA4D,CAAA;AACnF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAkBhC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
@@ -16,19 +16,33 @@ export const schemaMutationsMetaTable = table(SCHEMA_MUTATIONS_META_TABLE, {
16
16
  /** ISO date format */
17
17
  updatedAt: SqliteDsl.text({ nullable: false }),
18
18
  }, { disableAutomaticIdColumn: true });
19
- export const systemTables = [schemaMetaTable, schemaMutationsMetaTable];
19
+ /**
20
+ * Table which stores SQLite changeset blobs which is used for rolling back
21
+ * read-model state during rebasing.
22
+ */
23
+ export const SESSION_CHANGESET_META_TABLE = '__livestore_session_changeset';
24
+ export const sessionChangesetMetaTable = table(SESSION_CHANGESET_META_TABLE, {
25
+ idGlobal: SqliteDsl.integer({ primaryKey: true }),
26
+ idLocal: SqliteDsl.integer({ primaryKey: true }),
27
+ changeset: SqliteDsl.blob({}),
28
+ }, { disableAutomaticIdColumn: true });
29
+ export const systemTables = [schemaMetaTable, schemaMutationsMetaTable, sessionChangesetMetaTable];
20
30
  /// Mutation log DB
21
31
  export const SyncStatus = Schema.Literal('synced', 'pending', 'error', 'localOnly');
22
32
  export const MUTATION_LOG_META_TABLE = 'mutation_log';
23
33
  export const mutationLogMetaTable = table(MUTATION_LOG_META_TABLE, {
24
- // TODO add parent ids (see https://vlcn.io/blog/crdt-substrate)
25
- id: SqliteDsl.text({ primaryKey: true }),
26
- mutation: SqliteDsl.text({ nullable: false }),
27
- argsJson: SqliteDsl.text({ nullable: false, schema: Schema.parseJson(Schema.Any) }),
28
- schemaHash: SqliteDsl.integer({ nullable: false }),
34
+ idGlobal: SqliteDsl.integer({ primaryKey: true }),
35
+ idLocal: SqliteDsl.integer({ primaryKey: true }),
36
+ parentIdGlobal: SqliteDsl.integer({}),
37
+ parentIdLocal: SqliteDsl.integer({}),
38
+ mutation: SqliteDsl.text({}),
39
+ argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
40
+ schemaHash: SqliteDsl.integer({}),
41
+ /** Local only, used for ordered queries to avoid recursive id traversal */
42
+ orderKey: SqliteDsl.integer({}),
29
43
  /** ISO date format */
30
- createdAt: SqliteDsl.text({ nullable: false }),
44
+ createdAt: SqliteDsl.text({}),
31
45
  syncStatus: SqliteDsl.text({ schema: SyncStatus }),
32
46
  syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
33
- }, { disableAutomaticIdColumn: true });
47
+ }, { disableAutomaticIdColumn: true, indexes: [{ columns: ['orderKey'], name: 'mutation_log_order_key_idx' }] });
34
48
  //# sourceMappingURL=system-tables.js.map