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

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 (117) 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 +121 -8
  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/table-def.d.ts +1 -1
  33. package/dist/schema-management/migrations.js +1 -1
  34. package/dist/schema-management/migrations.js.map +1 -1
  35. package/dist/sql-queries/types.d.ts +1 -1
  36. package/dist/sql-queries/types.d.ts.map +1 -1
  37. package/dist/sync/next/compact-events.d.ts +15 -0
  38. package/dist/sync/next/compact-events.d.ts.map +1 -0
  39. package/dist/sync/next/compact-events.js +176 -0
  40. package/dist/sync/next/compact-events.js.map +1 -0
  41. package/dist/sync/next/facts.d.ts +37 -0
  42. package/dist/sync/next/facts.d.ts.map +1 -0
  43. package/dist/sync/next/facts.js +155 -0
  44. package/dist/sync/next/facts.js.map +1 -0
  45. package/dist/sync/next/graphology.d.ts +8 -0
  46. package/dist/sync/next/graphology.d.ts.map +1 -0
  47. package/dist/sync/next/graphology.js +36 -0
  48. package/dist/sync/next/graphology.js.map +1 -0
  49. package/dist/sync/next/graphology_.d.ts +3 -0
  50. package/dist/sync/next/graphology_.d.ts.map +1 -0
  51. package/dist/sync/next/graphology_.js +3 -0
  52. package/dist/sync/next/graphology_.js.map +1 -0
  53. package/dist/sync/next/history-dag.d.ts +30 -0
  54. package/dist/sync/next/history-dag.d.ts.map +1 -0
  55. package/dist/sync/next/history-dag.js +69 -0
  56. package/dist/sync/next/history-dag.js.map +1 -0
  57. package/dist/sync/next/mod.d.ts +5 -0
  58. package/dist/sync/next/mod.d.ts.map +1 -0
  59. package/dist/sync/next/mod.js +5 -0
  60. package/dist/sync/next/mod.js.map +1 -0
  61. package/dist/sync/next/mutation-fixtures.d.ts +73 -0
  62. package/dist/sync/next/mutation-fixtures.d.ts.map +1 -0
  63. package/dist/sync/next/mutation-fixtures.js +160 -0
  64. package/dist/sync/next/mutation-fixtures.js.map +1 -0
  65. package/dist/sync/next/rebase-events.d.ts +27 -0
  66. package/dist/sync/next/rebase-events.d.ts.map +1 -0
  67. package/dist/sync/next/rebase-events.js +41 -0
  68. package/dist/sync/next/rebase-events.js.map +1 -0
  69. package/dist/sync/next/test/compact-events.calculator.test.d.ts +2 -0
  70. package/dist/sync/next/test/compact-events.calculator.test.d.ts.map +1 -0
  71. package/dist/sync/next/test/compact-events.calculator.test.js +101 -0
  72. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -0
  73. package/dist/sync/next/test/compact-events.test.d.ts +2 -0
  74. package/dist/sync/next/test/compact-events.test.d.ts.map +1 -0
  75. package/dist/sync/next/test/compact-events.test.js +201 -0
  76. package/dist/sync/next/test/compact-events.test.js.map +1 -0
  77. package/dist/sync/next/test/mod.d.ts +2 -0
  78. package/dist/sync/next/test/mod.d.ts.map +1 -0
  79. package/dist/sync/next/test/mod.js +2 -0
  80. package/dist/sync/next/test/mod.js.map +1 -0
  81. package/dist/sync/next/test/mutation-fixtures.d.ts +73 -0
  82. package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -0
  83. package/dist/sync/next/test/mutation-fixtures.js +161 -0
  84. package/dist/sync/next/test/mutation-fixtures.js.map +1 -0
  85. package/dist/sync/sync.d.ts +5 -4
  86. package/dist/sync/sync.d.ts.map +1 -1
  87. package/dist/sync/sync.js.map +1 -1
  88. package/package.json +21 -4
  89. package/src/adapter-types.ts +27 -3
  90. package/src/derived-mutations.test.ts +2 -1
  91. package/src/derived-mutations.ts +5 -5
  92. package/src/devtools/devtools-bridge.ts +1 -1
  93. package/src/devtools/devtools-messages.ts +12 -2
  94. package/src/devtools/index.ts +2 -0
  95. package/src/rehydrate-from-mutationlog.ts +16 -7
  96. package/src/schema/mutations.ts +171 -30
  97. package/src/schema/system-tables.ts +30 -8
  98. package/src/schema-management/migrations.ts +1 -1
  99. package/src/sql-queries/types.ts +1 -1
  100. package/src/sync/next/ambient.d.ts +3 -0
  101. package/src/sync/next/compact-events.ts +218 -0
  102. package/src/sync/next/facts.ts +228 -0
  103. package/src/sync/next/graphology.ts +49 -0
  104. package/src/sync/next/graphology_.ts +2 -0
  105. package/src/sync/next/history-dag.ts +109 -0
  106. package/src/sync/next/mod.ts +4 -0
  107. package/src/sync/next/rebase-events.ts +97 -0
  108. package/src/sync/next/test/compact-events.calculator.test.ts +121 -0
  109. package/src/sync/next/test/compact-events.test.ts +232 -0
  110. package/src/sync/next/test/mod.ts +1 -0
  111. package/src/sync/next/test/mutation-fixtures.ts +230 -0
  112. package/src/sync/sync.ts +10 -4
  113. package/dist/global-types.d.ts +0 -7
  114. package/dist/global-types.d.ts.map +0 -1
  115. package/dist/global-types.js +0 -2
  116. package/dist/global-types.js.map +0 -1
  117. package/src/global-types.d.ts +0 -5
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"system-tables.js","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;AAG3E,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,UAAU;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAClC,iBAAiB,EACjB;IACE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC/C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA;AAID,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAA;AAEzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAC3C,2BAA2B,EAC3B;IACE,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAClD,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC/C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA;AAID,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAA;AAEvE,mBAAmB;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAGnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAA;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CACvC,uBAAuB,EACvB;IACE,gEAAgE;IAChE,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACxC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7C,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACnF,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC9C,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAClD,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;CAChG,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA"}
1
+ {"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ export type TableOptions = {
59
59
  /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
60
60
  isSingleColumn: boolean;
61
61
  };
62
- export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, const TOptionsInput extends TableOptionsInput = Partial<Omit<TableOptions, "isSingleColumn" | "deriveMutations"> & {
62
+ export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, const TOptionsInput extends TableOptionsInput = Partial<Omit<TableOptions, "deriveMutations" | "isSingleColumn"> & {
63
63
  indexes: SqliteDsl.Index[];
64
64
  deriveMutations: boolean | {
65
65
  enabled: true;
@@ -86,7 +86,7 @@ export const migrateTable = ({ db, tableAst, schemaHash = SqliteAst.hash(tableAs
86
86
  }).pipe(Effect.withSpan('@livestore/common:migrateTable', { attributes: { tableName: tableAst.name } }));
87
87
  const createIndexFromDefinition = (tableName, index) => {
88
88
  const uniqueStr = index.unique ? 'UNIQUE' : '';
89
- return sql `create ${uniqueStr} index ${index.name} on ${tableName} (${index.columns.join(', ')})`;
89
+ return sql `create ${uniqueStr} index if not exists ${index.name} on ${tableName} (${index.columns.join(', ')})`;
90
90
  };
91
91
  export const makeColumnSpec = (tableAst) => {
92
92
  const primaryKeys = tableAst.columns.filter((_) => _.primaryKey).map((_) => _.name);
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/schema-management/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/schema-management/migrations.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export type WhereValuesForColumns<TColumns extends SqliteDsl.Columns> = PartialO
39
39
  [K in keyof EncodedValuesForColumns<TColumns>]: WhereValueForDecoded<DecodedValuesForColumnsAll<TColumns>[K]>;
40
40
  }>;
41
41
  export type GetNullableColumnNames<TColumns extends SqliteDsl.Columns> = keyof {
42
- [K in keyof TColumns as TColumns[K] extends SqliteDsl.ColumnDefinition<any, true> ? K : never]: {};
42
+ [K in keyof TColumns as TColumns[K] extends SqliteDsl.ColumnDefinition<any, true> ? K : never]: unknown;
43
43
  };
44
44
  export type PartialOrNull<T> = {
45
45
  [P in keyof T]?: T[P] | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sql-queries/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sql-queries/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { HistoryDag } from './history-dag.js';
2
+ /**
3
+ * Idea:
4
+ * - iterate over all events from leaves to root
5
+ * - for each event
6
+ * - gradually make sub dags by following the event's fact dependencies
7
+ * - for each sub dag check and remove sub dags further up in the history dag that are a subset of the current sub dag
8
+ *
9
+ * TODO: try to implement this function on top of SQLite
10
+ */
11
+ export declare const compactEvents: (inputDag: HistoryDag) => {
12
+ dag: HistoryDag;
13
+ compactedEventCount: number;
14
+ };
15
+ //# sourceMappingURL=compact-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-events.d.ts","sourceRoot":"","sources":["../../../src/sync/next/compact-events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGlD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,aAAc,UAAU,KAAG;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAkDlG,CAAA"}
@@ -0,0 +1,176 @@
1
+ import { replacesFacts } from './facts.js';
2
+ import { graphologyDag } from './graphology_.js';
3
+ import { emptyHistoryDag, eventIdToString } from './history-dag.js';
4
+ /**
5
+ * Idea:
6
+ * - iterate over all events from leaves to root
7
+ * - for each event
8
+ * - gradually make sub dags by following the event's fact dependencies
9
+ * - for each sub dag check and remove sub dags further up in the history dag that are a subset of the current sub dag
10
+ *
11
+ * TODO: try to implement this function on top of SQLite
12
+ */
13
+ export const compactEvents = (inputDag) => {
14
+ const dag = inputDag.copy();
15
+ const compactedEventCount = 0;
16
+ const orderedEventIdStrs = graphologyDag.topologicalSort(dag).reverse();
17
+ // drop root
18
+ orderedEventIdStrs.pop();
19
+ for (const eventIdStr of orderedEventIdStrs) {
20
+ if (dag.hasNode(eventIdStr) === false) {
21
+ continue;
22
+ }
23
+ const subDagsForEvent = Array.from(makeSubDagsForEvent(dag, eventIdStr));
24
+ for (const subDag of subDagsForEvent) {
25
+ let shouldRetry = true;
26
+ while (shouldRetry) {
27
+ const subDagsInHistory = findSubDagsInHistory(dag, subDag, eventIdStr);
28
+ // console.debug(
29
+ // 'subDagsInHistory',
30
+ // eventIdStr,
31
+ // 'target',
32
+ // subDag.nodes(),
33
+ // 'found',
34
+ // ...subDagsInHistory.subDags.map((_) => _.nodes()),
35
+ // )
36
+ for (const subDagInHistory of subDagsInHistory.subDags) {
37
+ if (dagDependsOnDag(subDag, subDagInHistory, dag) === false) {
38
+ dropFromDag(dag, subDagInHistory);
39
+ }
40
+ }
41
+ // Sometimes some sub dags are ommitted because they depended on other sub dags in same batch.
42
+ // We can retry to also remove those.
43
+ // Implementation: retry if outsideDependencies overlap with deleted sub dags
44
+ if (subDagsInHistory.allOutsideDependencies.some((outsideDependencies) => outsideDependencies.every((dep) => subDagsInHistory.subDags.some((subDag) => subDag.hasNode(dep)))) === false) {
45
+ shouldRetry = false;
46
+ }
47
+ }
48
+ }
49
+ }
50
+ return { dag, compactedEventCount };
51
+ };
52
+ function* makeSubDagsForEvent(inputDag, eventIdStr) {
53
+ /** Map from eventIdStr to array of eventIdStrs that are dependencies */
54
+ let nextIterationEls = new Map([[eventIdStr, []]]);
55
+ let previousDag;
56
+ while (nextIterationEls.size > 0) {
57
+ // start with a copy of the last sub dag to build on top of
58
+ const subDag = previousDag?.copy() ?? emptyHistoryDag();
59
+ const currentIterationEls = new Map(nextIterationEls);
60
+ nextIterationEls = new Map();
61
+ for (const [currentEventIdStr, edgeTargetIdStrs] of currentIterationEls) {
62
+ const node = inputDag.getNodeAttributes(currentEventIdStr);
63
+ if (subDag.hasNode(currentEventIdStr) === false) {
64
+ subDag.addNode(currentEventIdStr, { ...node });
65
+ }
66
+ for (const edgeTargetIdStr of edgeTargetIdStrs) {
67
+ subDag.addEdge(currentEventIdStr, edgeTargetIdStr, { type: 'facts' });
68
+ }
69
+ for (const depEdge of inputDag.outboundEdgeEntries(currentEventIdStr)) {
70
+ if (depEdge.attributes.type === 'facts') {
71
+ const depEventIdStr = depEdge.target;
72
+ nextIterationEls.set(depEventIdStr, [...(nextIterationEls.get(depEventIdStr) ?? []), currentEventIdStr]);
73
+ }
74
+ }
75
+ }
76
+ previousDag = subDag;
77
+ // console.debug('subDag yield', subDag.nodes())
78
+ yield subDag;
79
+ }
80
+ }
81
+ /**
82
+ * Iterates over all events from root to `upToExclEventIdStr`
83
+ * and collects all valid sub dags that are replaced by `targetSubDag`.
84
+ */
85
+ const findSubDagsInHistory = (inputDag, targetSubDag, upToExclEventIdStr) => {
86
+ const subDags = [];
87
+ const allOutsideDependencies = [];
88
+ for (const eventIdStr of graphologyDag.topologicalSort(inputDag)) {
89
+ if (eventIdStr === upToExclEventIdStr) {
90
+ break;
91
+ }
92
+ for (const subDag of makeSubDagsForEvent(inputDag, eventIdStr)) {
93
+ // console.debug('findSubDagsInHistory', 'target', targetSubDag.nodes(), 'subDag', subDag.nodes())
94
+ if (subDag.size < targetSubDag.size) {
95
+ continue;
96
+ }
97
+ const outsideDependencies = outsideDependenciesForDag(subDag, inputDag);
98
+ if (outsideDependencies.length > 0) {
99
+ allOutsideDependencies.push(outsideDependencies);
100
+ }
101
+ if (outsideDependencies.length === 0 && dagReplacesDag(subDag, targetSubDag)) {
102
+ subDags.push(subDag);
103
+ }
104
+ else {
105
+ break;
106
+ }
107
+ }
108
+ }
109
+ return { subDags, allOutsideDependencies };
110
+ };
111
+ const dropFromDag = (dag, subDag) => {
112
+ for (const nodeIdStr of subDag.nodes()) {
113
+ removeEvent(dag, nodeIdStr);
114
+ }
115
+ };
116
+ /** Returns outside dependencies of `subDag` (but inside `inputDag`) */
117
+ const outsideDependenciesForDag = (subDag, inputDag) => {
118
+ const outsideDependencies = [];
119
+ for (const nodeIdStr of subDag.nodes()) {
120
+ for (const edgeEntry of inputDag.outboundEdgeEntries(nodeIdStr)) {
121
+ if (edgeEntry.attributes.type === 'facts') {
122
+ const depEventIdStr = edgeEntry.target;
123
+ if (subDag.hasNode(depEventIdStr) === false) {
124
+ outsideDependencies.push(depEventIdStr);
125
+ }
126
+ }
127
+ }
128
+ }
129
+ return outsideDependencies;
130
+ };
131
+ /** Checks whether dagA depends on dagB */
132
+ const dagDependsOnDag = (dagA, dagB, inputDag) => {
133
+ for (const nodeAIdStr of dagA.nodes()) {
134
+ for (const edgeEntryA of inputDag.inboundEdgeEntries(nodeAIdStr)) {
135
+ if (edgeEntryA.attributes.type === 'facts') {
136
+ const depNodeIdStr = edgeEntryA.target;
137
+ if (dagB.hasNode(depNodeIdStr)) {
138
+ return true;
139
+ }
140
+ }
141
+ }
142
+ }
143
+ return false;
144
+ };
145
+ /** Checks if dagA replaces dagB */
146
+ const dagReplacesDag = (dagA, dagB) => {
147
+ if (dagA.size !== dagB.size) {
148
+ return false;
149
+ }
150
+ // TODO write tests that covers deterministic order when DAGs have branches
151
+ const nodeEntriesA = graphologyDag.topologicalSort(dagA).map((nodeId) => dagA.getNodeAttributes(nodeId));
152
+ const nodeEntriesB = graphologyDag.topologicalSort(dagB).map((nodeId) => dagB.getNodeAttributes(nodeId));
153
+ for (let i = 0; i < nodeEntriesA.length; i++) {
154
+ const nodeA = nodeEntriesA[i];
155
+ const nodeB = nodeEntriesB[i];
156
+ if (replacesFacts(nodeA.factsGroup, nodeB.factsGroup) === false) {
157
+ return false;
158
+ }
159
+ }
160
+ return true;
161
+ };
162
+ const removeEvent = (dag, eventIdStr) => {
163
+ // console.debug('removing event', eventIdStr)
164
+ const event = dag.getNodeAttributes(eventIdStr);
165
+ const parentIdStr = eventIdToString(event.parentId);
166
+ const childEdges = dag.outboundEdgeEntries(eventIdStr);
167
+ for (const childEdge of childEdges) {
168
+ if (childEdge.attributes.type === 'parent') {
169
+ const childEvent = dag.getNodeAttributes(childEdge.target);
170
+ childEvent.parentId = { ...event.parentId };
171
+ dag.addEdge(parentIdStr, eventIdToString(childEvent.id), { type: 'parent' });
172
+ }
173
+ }
174
+ dag.dropNode(eventIdStr);
175
+ };
176
+ //# sourceMappingURL=compact-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-events.js","sourceRoot":"","sources":["../../../src/sync/next/compact-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { EventId } from '../../adapter-types.js';
2
+ import type { FactsCallback, MutationEventFacts, MutationEventFactsGroup, MutationEventFactsSnapshot } from '../../schema/mutations.js';
3
+ import { type HistoryDag, type HistoryDagNode } from './history-dag.js';
4
+ export declare const factsSnapshotForEvents: (events: HistoryDagNode[], endEventId: EventId) => MutationEventFactsSnapshot;
5
+ export declare const factsSnapshotForDag: (dag: HistoryDag, endEventId: EventId | undefined) => MutationEventFactsSnapshot;
6
+ export type FactValidationResult = {
7
+ success: true;
8
+ } | {
9
+ success: false;
10
+ /** Index of the item that caused the validation to fail */
11
+ index: number;
12
+ requiredFacts: MutationEventFacts;
13
+ mismatch: {
14
+ existing: MutationEventFacts;
15
+ required: MutationEventFacts;
16
+ };
17
+ currentSnapshot: MutationEventFacts;
18
+ };
19
+ export declare const validateFacts: ({ factGroups, initialSnapshot, }: {
20
+ factGroups: MutationEventFactsGroup[];
21
+ initialSnapshot: MutationEventFactsSnapshot;
22
+ }) => FactValidationResult;
23
+ export declare const applyFactGroups: (factGroups: MutationEventFactsGroup[], snapshot: MutationEventFactsSnapshot) => void;
24
+ export declare const applyFactGroup: (factGroup: MutationEventFactsGroup, snapshot: MutationEventFactsSnapshot) => void;
25
+ /** Check if groupA depends on groupB */
26
+ export declare const dependsOn: (groupA: MutationEventFactsGroup, groupB: MutationEventFactsGroup) => boolean;
27
+ export declare const replacesFacts: (groupA: MutationEventFactsGroup, groupB: MutationEventFactsGroup) => boolean;
28
+ export declare const isSameMapByKey: (set: MutationEventFacts, otherSet: MutationEventFacts) => boolean;
29
+ export declare const factsToString: (facts: MutationEventFacts) => string;
30
+ export declare const factsIntersect: (setA: MutationEventFacts, setB: MutationEventFacts) => boolean;
31
+ export declare const getFactsGroupForMutationArgs: ({ factsCallback, args, currentFacts, }: {
32
+ factsCallback: FactsCallback<any> | undefined;
33
+ args: any;
34
+ currentFacts: MutationEventFactsSnapshot;
35
+ }) => MutationEventFactsGroup;
36
+ export declare const compareEventIds: (a: EventId, b: EventId) => number;
37
+ //# sourceMappingURL=facts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../../../src/sync/next/facts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAoB,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEzF,eAAO,MAAM,sBAAsB,WAAY,cAAc,EAAE,cAAc,OAAO,KAAG,0BAYtF,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAS,UAAU,cAAc,OAAO,GAAG,SAAS,KAAG,0BAetF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,OAAO,EAAE,IAAI,CAAA;CACd,GACD;IACE,OAAO,EAAE,KAAK,CAAA;IACd,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,kBAAkB,CAAA;IACjC,QAAQ,EAAE;QACR,QAAQ,EAAE,kBAAkB,CAAA;QAC5B,QAAQ,EAAE,kBAAkB,CAAA;KAC7B,CAAA;IACD,eAAe,EAAE,kBAAkB,CAAA;CACpC,CAAA;AAEL,eAAO,MAAM,aAAa,qCAGvB;IACD,UAAU,EAAE,uBAAuB,EAAE,CAAA;IACrC,eAAe,EAAE,0BAA0B,CAAA;CAC5C,KAAG,oBA8BH,CAAA;AAED,eAAO,MAAM,eAAe,eAAgB,uBAAuB,EAAE,YAAY,0BAA0B,SAI1G,CAAA;AAED,eAAO,MAAM,cAAc,cAAe,uBAAuB,YAAY,0BAA0B,SAQtG,CAAA;AAsBD,wCAAwC;AACxC,eAAO,MAAM,SAAS,WAAY,uBAAuB,UAAU,uBAAuB,KAAG,OAItC,CAAA;AAEvD,eAAO,MAAM,aAAa,WAAY,uBAAuB,UAAU,uBAAuB,KAAG,OAYhG,CAAA;AAED,eAAO,MAAM,cAAc,QAAS,kBAAkB,YAAY,kBAAkB,YACrB,CAAA;AAE/D,eAAO,MAAM,aAAa,UAAW,kBAAkB,WAItD,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,kBAAkB,QAAQ,kBAAkB,KAAG,OAOnF,CAAA;AAED,eAAO,MAAM,4BAA4B,2CAItC;IACD,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IAC7C,IAAI,EAAE,GAAG,CAAA;IACT,YAAY,EAAE,0BAA0B,CAAA;CACzC,KAAG,uBAwCH,CAAA;AAED,eAAO,MAAM,eAAe,MAAO,OAAO,KAAK,OAAO,WAKrD,CAAA"}
@@ -0,0 +1,155 @@
1
+ import { graphologyDag, notYetImplemented } from '@overtone/utils';
2
+ import { EMPTY_FACT_VALUE } from './history-dag.js';
3
+ export const factsSnapshotForEvents = (events, endEventId) => {
4
+ const facts = new Map();
5
+ for (const event of events) {
6
+ if (compareEventIds(event.id, endEventId) > 0) {
7
+ return facts;
8
+ }
9
+ applyFactGroup(event.factsGroup, facts);
10
+ }
11
+ return facts;
12
+ };
13
+ export const factsSnapshotForDag = (dag, endEventId) => {
14
+ const facts = new Map();
15
+ const orderedEventIdStrs = graphologyDag.topologicalSort(dag);
16
+ for (let i = 0; i < orderedEventIdStrs.length; i++) {
17
+ const event = dag.getNodeAttributes(orderedEventIdStrs[i]);
18
+ if (endEventId !== undefined && compareEventIds(event.id, endEventId) > 0) {
19
+ return facts;
20
+ }
21
+ applyFactGroup(event.factsGroup, facts);
22
+ }
23
+ return facts;
24
+ };
25
+ export const validateFacts = ({ factGroups, initialSnapshot, }) => {
26
+ const currentSnapshot = new Map(initialSnapshot);
27
+ for (const [index, factGroup] of factGroups.entries()) {
28
+ if (isSubSetMapByValue(factGroup.depRequire, currentSnapshot) === false) {
29
+ const existing = new Map();
30
+ const required = new Map();
31
+ for (const [key, value] of factGroup.depRequire) {
32
+ if (currentSnapshot.get(key) !== value) {
33
+ existing.set(key, currentSnapshot.get(key));
34
+ required.set(key, value);
35
+ }
36
+ }
37
+ return {
38
+ success: false,
39
+ index,
40
+ requiredFacts: factGroup.depRequire,
41
+ currentSnapshot,
42
+ mismatch: { existing, required },
43
+ };
44
+ }
45
+ applyFactGroup(factGroup, currentSnapshot);
46
+ }
47
+ return {
48
+ success: true,
49
+ };
50
+ };
51
+ export const applyFactGroups = (factGroups, snapshot) => {
52
+ for (const factGroup of factGroups) {
53
+ applyFactGroup(factGroup, snapshot);
54
+ }
55
+ };
56
+ export const applyFactGroup = (factGroup, snapshot) => {
57
+ for (const [key, value] of factGroup.modifySet) {
58
+ snapshot.set(key, value);
59
+ }
60
+ for (const [key, _value] of factGroup.modifyUnset) {
61
+ snapshot.delete(key);
62
+ }
63
+ };
64
+ /** Check if setA is a subset of setB */
65
+ const isSubSetMapByValue = (setA, setB) => {
66
+ for (const [key, value] of setA) {
67
+ if (setB.get(key) !== value) {
68
+ return false;
69
+ }
70
+ }
71
+ return true;
72
+ };
73
+ /** Check if setA is a subset of setB */
74
+ const isSubSetMapByKey = (setA, setB) => {
75
+ for (const [key, _value] of setA) {
76
+ if (!setB.has(key)) {
77
+ return false;
78
+ }
79
+ }
80
+ return true;
81
+ };
82
+ /** Check if groupA depends on groupB */
83
+ export const dependsOn = (groupA, groupB) => factsIntersect(groupA.depRead, groupB.modifySet) ||
84
+ factsIntersect(groupA.depRead, groupB.modifyUnset) ||
85
+ factsIntersect(groupA.depRequire, groupB.modifySet) ||
86
+ factsIntersect(groupA.depRequire, groupB.modifyUnset);
87
+ export const replacesFacts = (groupA, groupB) => {
88
+ const replaces = (a, b) => a.size > 0 && b.size > 0 && isSameMapByKey(a, b);
89
+ const noFactsOrSame = (a, b) => a.size === 0 || b.size === 0 || isSameMapByKey(a, b);
90
+ return ((replaces(groupA.modifySet, groupB.modifySet) && noFactsOrSame(groupA.modifyUnset, groupB.modifyUnset)) ||
91
+ (replaces(groupA.modifySet, groupB.modifyUnset) && noFactsOrSame(groupA.modifyUnset, groupB.modifySet)) ||
92
+ (replaces(groupA.modifyUnset, groupB.modifySet) && noFactsOrSame(groupA.modifySet, groupB.modifyUnset)) ||
93
+ (replaces(groupA.modifyUnset, groupB.modifyUnset) && noFactsOrSame(groupA.modifySet, groupB.modifySet)));
94
+ };
95
+ export const isSameMapByKey = (set, otherSet) => set.size === otherSet.size && isSubSetMapByKey(set, otherSet);
96
+ export const factsToString = (facts) => {
97
+ return Array.from(facts)
98
+ .map(([key, value]) => (value === EMPTY_FACT_VALUE ? key : `${key}=${value}`))
99
+ .join(', ');
100
+ };
101
+ export const factsIntersect = (setA, setB) => {
102
+ for (const [key, _value] of setA) {
103
+ if (setB.has(key)) {
104
+ return true;
105
+ }
106
+ }
107
+ return false;
108
+ };
109
+ export const getFactsGroupForMutationArgs = ({ factsCallback, args, currentFacts, }) => {
110
+ const depRead = new Map();
111
+ const factsSnapshotProxy = new Proxy(currentFacts, {
112
+ get: (target, prop) => {
113
+ if (prop === 'has') {
114
+ return (key) => {
115
+ depRead.set(key, EMPTY_FACT_VALUE);
116
+ return target.has(key);
117
+ };
118
+ }
119
+ else if (prop === 'get') {
120
+ return (key) => {
121
+ depRead.set(key, EMPTY_FACT_VALUE);
122
+ return target.get(key);
123
+ };
124
+ }
125
+ notYetImplemented(`getFactsGroupForMutationArgs: ${prop.toString()} is not yet implemented`);
126
+ },
127
+ });
128
+ const factsRes = factsCallback?.(args, factsSnapshotProxy);
129
+ const iterableToMap = (iterable) => {
130
+ const map = new Map();
131
+ for (const item of iterable) {
132
+ if (typeof item === 'string') {
133
+ map.set(item, EMPTY_FACT_VALUE);
134
+ }
135
+ else {
136
+ map.set(item[0], item[1]);
137
+ }
138
+ }
139
+ return map;
140
+ };
141
+ const facts = {
142
+ modifySet: factsRes?.modify.set ? iterableToMap(factsRes.modify.set) : new Map(),
143
+ modifyUnset: factsRes?.modify.unset ? iterableToMap(factsRes.modify.unset) : new Map(),
144
+ depRequire: factsRes?.require ? iterableToMap(factsRes.require) : new Map(),
145
+ depRead,
146
+ };
147
+ return facts;
148
+ };
149
+ export const compareEventIds = (a, b) => {
150
+ if (a.global !== b.global) {
151
+ return a.global - b.global;
152
+ }
153
+ return a.local - b.local;
154
+ };
155
+ //# sourceMappingURL=facts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facts.js","sourceRoot":"","sources":["../../../src/sync/next/facts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type * as graphologyTypes from 'graphology-types';
2
+ export declare const graphology: any;
3
+ export declare class IGraph<NodeAttributes extends graphologyTypes.Attributes = graphologyTypes.Attributes, EdgeAttributes extends graphologyTypes.Attributes = graphologyTypes.Attributes, GraphAttributes extends graphologyTypes.Attributes = graphologyTypes.Attributes> extends graphologyTypes.AbstractGraph<NodeAttributes, EdgeAttributes, GraphAttributes> {
4
+ constructor(options?: graphologyTypes.GraphOptions);
5
+ }
6
+ export declare const DirectedGraph: typeof IGraph;
7
+ export declare const Graph: typeof IGraph;
8
+ //# sourceMappingURL=graphology.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphology.d.ts","sourceRoot":"","sources":["../../../src/sync/next/graphology.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,eAAe,MAAM,kBAAkB,CAAA;AAExD,eAAO,MAAM,UAAU,EAAkB,GAAG,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,MAAM,CACzB,cAAc,SAAS,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,EAC9E,cAAc,SAAS,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,EAC9E,eAAe,SAAS,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAC/E,SAAQ,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC;gBAC1E,OAAO,CAAC,EAAE,eAAe,CAAC,YAAY;CACnD;AAED,eAAO,MAAM,aAAa,EAIrB,OAAO,MAAM,CAAA;AAElB,eAAO,MAAM,KAAK,EAIb,OAAO,MAAM,CAAA"}
@@ -0,0 +1,36 @@
1
+ // TODO re-enable when `graphology` supports ESM `exports` and `.js` import/export syntax
2
+ // import {} from 'graphology'
3
+ import * as graphology_ from 'graphology';
4
+ export const graphology = graphology_;
5
+ export const DirectedGraph = class DirectedGraph extends graphology.DirectedGraph {
6
+ constructor(options) {
7
+ super(options);
8
+ }
9
+ };
10
+ export const Graph = class Graph extends graphology.Graph {
11
+ constructor(options) {
12
+ super(options);
13
+ }
14
+ };
15
+ // export const graphology = graphology_ as graphologyTypes
16
+ /*
17
+
18
+ Example usage:
19
+
20
+ const dag = new graphology.DirectedGraph({ allowSelfLoops: false })
21
+
22
+ nodes.forEach((node) => dag.addNode(node.id, { width: node.data.label.length * 100, height: 40 }))
23
+ edges.forEach((edge) => {
24
+ // TODO do this filtering earlier
25
+ if (!nodeIds.has(edge.source) || !nodeIds.has(edge.target)) return
26
+
27
+ dag.addEdge(edge.source, edge.target)
28
+ })
29
+
30
+ graphologyLayout.random.assign(dag) // needed for initial `x`, `y` values
31
+ const sensibleSettings = forceAtlas2.inferSettings(dag)
32
+ // forceAtlas2.assign(dag, { iterations: 100, settings: { adjustSizes: true, } })
33
+ forceAtlas2.assign(dag, { iterations: 100, settings: sensibleSettings })
34
+
35
+ */
36
+ //# sourceMappingURL=graphology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphology.js","sourceRoot":"","sources":["../../../src/sync/next/graphology.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,8BAA8B;AAC9B,OAAO,KAAK,WAAW,MAAM,YAAY,CAAA;AAGzC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAkB,CAAA;AAU5C,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,aAAc,SAAQ,UAAU,CAAC,aAAa;IAC/E,YAAY,OAAsC;QAChD,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;CACe,CAAA;AAElB,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,KAAM,SAAQ,UAAU,CAAC,KAAK;IACvD,YAAY,OAAsC;QAChD,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;CACe,CAAA;AAElB,2DAA2D;AAE3D;;;;;;;;;;;;;;;;;;;EAmBE"}
@@ -0,0 +1,3 @@
1
+ export * as graphology from './graphology.js';
2
+ export { default as graphologyDag } from 'graphology-dag';
3
+ //# sourceMappingURL=graphology_.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphology_.d.ts","sourceRoot":"","sources":["../../../src/sync/next/graphology_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * as graphology from './graphology.js';
2
+ export { default as graphologyDag } from 'graphology-dag';
3
+ //# sourceMappingURL=graphology_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphology_.js","sourceRoot":"","sources":["../../../src/sync/next/graphology_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA"}