@homeostate/core 0.0.0 → 0.1.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.
- package/CHANGELOG.md +7 -0
- package/README.md +34 -4
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/apply.d.ts +37 -0
- package/dist/apply.d.ts.map +1 -0
- package/dist/apply.js +58 -0
- package/dist/apply.js.map +1 -0
- package/dist/change.d.ts +6 -3
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +0 -2
- package/dist/change.js.map +1 -1
- package/dist/diff.d.ts +2 -3
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +156 -166
- package/dist/diff.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/memory-backend.d.ts +11 -0
- package/dist/memory-backend.d.ts.map +1 -0
- package/dist/memory-backend.js +26 -0
- package/dist/memory-backend.js.map +1 -0
- package/dist/patching.d.ts +6 -16
- package/dist/patching.d.ts.map +1 -1
- package/dist/patching.js +46 -137
- package/dist/patching.js.map +1 -1
- package/dist/sync-engine.d.ts +14 -8
- package/dist/sync-engine.d.ts.map +1 -1
- package/dist/sync-engine.js +67 -93
- package/dist/sync-engine.js.map +1 -1
- package/dist/types.d.ts +42 -16
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -3
- package/dist/types.js.map +1 -1
- package/package.json +4 -10
- package/dist/mapping.d.ts +0 -19
- package/dist/mapping.d.ts.map +0 -1
- package/dist/mapping.js +0 -45
- package/dist/mapping.js.map +0 -1
package/dist/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AAItD,MAAM,
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
export { createSyncEngine } from
|
|
2
|
-
export {
|
|
3
|
-
export type {
|
|
1
|
+
export { createSyncEngine } from "./sync-engine.js";
|
|
2
|
+
export { createMemoryBackend } from "./memory-backend.js";
|
|
3
|
+
export type { MemoryBackend } from "./memory-backend.js";
|
|
4
|
+
export { getChanges } from "./diff.js";
|
|
5
|
+
export { applyChanges, applyStringChanges } from "./apply.js";
|
|
6
|
+
export type { ApplyOps } from "./apply.js";
|
|
7
|
+
export type { Diffable } from "./diff.js";
|
|
8
|
+
export { ChangeType } from "./change.js";
|
|
9
|
+
export type { Change } from "./change.js";
|
|
10
|
+
export { defaultSyncFilter } from "./types.js";
|
|
11
|
+
export type { CrdtBackend, SeedStrategy, StoreAdapter, SyncEngine, SyncEngineConfig, Unsubscribe, } from "./types.js";
|
|
4
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
export { createSyncEngine } from
|
|
2
|
-
export {
|
|
1
|
+
export { createSyncEngine } from "./sync-engine.js";
|
|
2
|
+
export { createMemoryBackend } from "./memory-backend.js";
|
|
3
|
+
export { getChanges } from "./diff.js";
|
|
4
|
+
export { applyChanges, applyStringChanges } from "./apply.js";
|
|
5
|
+
export { ChangeType } from "./change.js";
|
|
6
|
+
export { defaultSyncFilter } from "./types.js";
|
|
3
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CrdtBackend } from "./types.js";
|
|
2
|
+
export interface MemoryBackend extends CrdtBackend {
|
|
3
|
+
/** Replace the held state as if a remote peer had written it, then notify subscribers */
|
|
4
|
+
receive: (next: unknown) => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Plain-JSON backend with no replication. It proves the engine has no
|
|
8
|
+
* CRDT-library assumptions and gives tests a fast in-process peer.
|
|
9
|
+
*/
|
|
10
|
+
export declare const createMemoryBackend: (initial?: unknown) => MemoryBackend;
|
|
11
|
+
//# sourceMappingURL=memory-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-backend.d.ts","sourceRoot":"","sources":["../src/memory-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,yFAAyF;IACzF,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAKD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAS,OAAY,KAAG,aAuB3D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const clone = (value) => value === undefined ? value : JSON.parse(JSON.stringify(value));
|
|
2
|
+
/**
|
|
3
|
+
* Plain-JSON backend with no replication. It proves the engine has no
|
|
4
|
+
* CRDT-library assumptions and gives tests a fast in-process peer.
|
|
5
|
+
*/
|
|
6
|
+
export const createMemoryBackend = (initial = {}) => {
|
|
7
|
+
let state = clone(initial);
|
|
8
|
+
const listeners = new Set();
|
|
9
|
+
return {
|
|
10
|
+
read: () => clone(state),
|
|
11
|
+
write: (next) => {
|
|
12
|
+
state = clone(next);
|
|
13
|
+
},
|
|
14
|
+
subscribe: (onRemoteChange) => {
|
|
15
|
+
listeners.add(onRemoteChange);
|
|
16
|
+
return () => {
|
|
17
|
+
listeners.delete(onRemoteChange);
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
receive: (next) => {
|
|
21
|
+
state = clone(next);
|
|
22
|
+
listeners.forEach((listener) => listener());
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=memory-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-backend.js","sourceRoot":"","sources":["../src/memory-backend.ts"],"names":[],"mappings":"AAOA,MAAM,KAAK,GAAG,CAAI,KAAQ,EAAK,EAAE,CAC/B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAmB,EAAE,EAAiB,EAAE;IAC1E,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;QAExB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,SAAS,EAAE,CAAC,cAAc,EAAe,EAAE;YACzC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9B,OAAO,GAAG,EAAE;gBACV,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACnC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/patching.d.ts
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
import * as Y from 'yjs';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @param sharedType The Yjs shared type to patch.
|
|
9
|
-
* @param newState The new state to patch the shared type into.
|
|
10
|
-
*/
|
|
11
|
-
export declare const patchSharedType: (sharedType: Y.Map<unknown> | Y.Array<unknown> | Y.Text, newState: unknown) => void;
|
|
12
|
-
/**
|
|
13
|
-
* Patches oldState to be identical to newState. This function recurses when
|
|
14
|
-
* an array or object is encountered. If oldState and newState are already
|
|
15
|
-
* identical (indicated by an empty diff), then oldState is returned.
|
|
2
|
+
* Returns a value identical to newState, built from oldState by copying every
|
|
3
|
+
* container along a changed path and sharing every unchanged subtree. Neither
|
|
4
|
+
* input is mutated. If oldState and newState are already identical (indicated
|
|
5
|
+
* by an empty diff), then oldState itself is returned.
|
|
16
6
|
*
|
|
17
7
|
* @param oldState The state we want to patch.
|
|
18
|
-
* @param newState The state we want
|
|
8
|
+
* @param newState The state we want the result to match.
|
|
19
9
|
*
|
|
20
|
-
* @returns The patched
|
|
10
|
+
* @returns The patched state, identical to newState.
|
|
21
11
|
*/
|
|
22
12
|
export declare const patchState: <T>(oldState: T, newState: T) => T;
|
|
23
13
|
//# sourceMappingURL=patching.d.ts.map
|
package/dist/patching.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patching.d.ts","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"patching.d.ts","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"AAqEA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,KAAG,CAKxD,CAAC"}
|
package/dist/patching.js
CHANGED
|
@@ -1,159 +1,68 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ChangeType } from
|
|
3
|
-
import { getChanges } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const changes = getChanges(sharedType.toJSON(), newState);
|
|
16
|
-
changes.forEach(([type, property, value]) => {
|
|
1
|
+
import { applyStringChanges } from "./apply.js";
|
|
2
|
+
import { ChangeType } from "./change.js";
|
|
3
|
+
import { getChanges } from "./diff.js";
|
|
4
|
+
const applyChanges = (state, changes) => {
|
|
5
|
+
if (typeof state === "string")
|
|
6
|
+
return applyStringChanges(state, changes);
|
|
7
|
+
if (Array.isArray(state))
|
|
8
|
+
return applyChangesToArray(state, changes);
|
|
9
|
+
return applyChangesToObject(state, changes);
|
|
10
|
+
};
|
|
11
|
+
const applyChangesToArray = (array, changes) => {
|
|
12
|
+
const revised = [...array];
|
|
13
|
+
for (const [type, index, value] of changes) {
|
|
14
|
+
const i = index;
|
|
17
15
|
switch (type) {
|
|
18
16
|
case ChangeType.INSERT:
|
|
17
|
+
revised.splice(i, 0, value);
|
|
18
|
+
break;
|
|
19
19
|
case ChangeType.UPDATE:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
else if (value instanceof Array)
|
|
25
|
-
sharedType.set(property, arrayToYArray(value));
|
|
26
|
-
else if (value instanceof Object)
|
|
27
|
-
sharedType.set(property, objectToYMap(value));
|
|
28
|
-
else
|
|
29
|
-
sharedType.set(property, value);
|
|
30
|
-
}
|
|
31
|
-
else if (sharedType instanceof Y.Array) {
|
|
32
|
-
const index = property;
|
|
33
|
-
if (type === ChangeType.UPDATE)
|
|
34
|
-
sharedType.delete(index);
|
|
35
|
-
if (typeof value === 'string')
|
|
36
|
-
sharedType.insert(index, [stringToYText(value)]);
|
|
37
|
-
else if (value instanceof Array)
|
|
38
|
-
sharedType.insert(index, [arrayToYArray(value)]);
|
|
39
|
-
else if (value instanceof Object)
|
|
40
|
-
sharedType.insert(index, [objectToYMap(value)]);
|
|
41
|
-
else
|
|
42
|
-
sharedType.insert(index, [value]);
|
|
43
|
-
}
|
|
44
|
-
else if (sharedType instanceof Y.Text)
|
|
45
|
-
sharedType.insert(property, value);
|
|
46
|
-
}
|
|
20
|
+
revised[i] = value;
|
|
21
|
+
break;
|
|
22
|
+
case ChangeType.PENDING:
|
|
23
|
+
revised[i] = applyChanges(revised[i], value);
|
|
47
24
|
break;
|
|
48
25
|
case ChangeType.DELETE:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
26
|
+
revised.splice(i, 1);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return revised;
|
|
31
|
+
};
|
|
32
|
+
const applyChangesToObject = (object, changes) => {
|
|
33
|
+
const revised = { ...object };
|
|
34
|
+
for (const [type, property, value] of changes) {
|
|
35
|
+
const key = property;
|
|
36
|
+
switch (type) {
|
|
37
|
+
case ChangeType.INSERT:
|
|
38
|
+
case ChangeType.UPDATE:
|
|
39
|
+
revised[key] = value;
|
|
58
40
|
break;
|
|
59
41
|
case ChangeType.PENDING:
|
|
60
|
-
|
|
61
|
-
patchSharedType(sharedType.get(property), newState[property]);
|
|
62
|
-
}
|
|
63
|
-
else if (sharedType instanceof Y.Array) {
|
|
64
|
-
patchSharedType(sharedType.get(property), newState[property]);
|
|
65
|
-
}
|
|
42
|
+
revised[key] = applyChanges(object[key], value);
|
|
66
43
|
break;
|
|
67
|
-
|
|
44
|
+
case ChangeType.DELETE:
|
|
45
|
+
delete revised[key];
|
|
68
46
|
break;
|
|
69
47
|
}
|
|
70
|
-
}
|
|
48
|
+
}
|
|
49
|
+
return revised;
|
|
71
50
|
};
|
|
72
51
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
52
|
+
* Returns a value identical to newState, built from oldState by copying every
|
|
53
|
+
* container along a changed path and sharing every unchanged subtree. Neither
|
|
54
|
+
* input is mutated. If oldState and newState are already identical (indicated
|
|
55
|
+
* by an empty diff), then oldState itself is returned.
|
|
76
56
|
*
|
|
77
57
|
* @param oldState The state we want to patch.
|
|
78
|
-
* @param newState The state we want
|
|
58
|
+
* @param newState The state we want the result to match.
|
|
79
59
|
*
|
|
80
|
-
* @returns The patched
|
|
60
|
+
* @returns The patched state, identical to newState.
|
|
81
61
|
*/
|
|
82
62
|
export const patchState = (oldState, newState) => {
|
|
83
63
|
const changes = getChanges(oldState, newState);
|
|
84
|
-
const applyChanges = (state, changes) => {
|
|
85
|
-
if (typeof state === 'string')
|
|
86
|
-
return applyChangesToString(state, changes);
|
|
87
|
-
else if (state instanceof Array)
|
|
88
|
-
return applyChangesToArray(state, changes);
|
|
89
|
-
else if (state instanceof Object)
|
|
90
|
-
return applyChangesToObject(state, changes);
|
|
91
|
-
};
|
|
92
|
-
const applyChangesToArray = (array, changes) => changes
|
|
93
|
-
.sort(([, indexA], [, indexB]) => Math.sign(indexA - indexB))
|
|
94
|
-
.reduce((revisedArray, [type, index, value]) => {
|
|
95
|
-
switch (type) {
|
|
96
|
-
case ChangeType.INSERT: {
|
|
97
|
-
revisedArray.splice(index, 0, value);
|
|
98
|
-
return revisedArray;
|
|
99
|
-
}
|
|
100
|
-
case ChangeType.UPDATE: {
|
|
101
|
-
revisedArray[index] = value;
|
|
102
|
-
return revisedArray;
|
|
103
|
-
}
|
|
104
|
-
case ChangeType.PENDING: {
|
|
105
|
-
revisedArray[index] = applyChanges(array[index], value);
|
|
106
|
-
return revisedArray;
|
|
107
|
-
}
|
|
108
|
-
case ChangeType.DELETE: {
|
|
109
|
-
revisedArray.splice(index, 1);
|
|
110
|
-
return revisedArray;
|
|
111
|
-
}
|
|
112
|
-
case ChangeType.NONE:
|
|
113
|
-
default:
|
|
114
|
-
return revisedArray;
|
|
115
|
-
}
|
|
116
|
-
}, array);
|
|
117
|
-
const applyChangesToObject = (object, changes) => changes.reduce((revisedObject, [type, property, value]) => {
|
|
118
|
-
switch (type) {
|
|
119
|
-
case ChangeType.INSERT:
|
|
120
|
-
case ChangeType.UPDATE: {
|
|
121
|
-
revisedObject[property] = value;
|
|
122
|
-
return revisedObject;
|
|
123
|
-
}
|
|
124
|
-
case ChangeType.PENDING: {
|
|
125
|
-
revisedObject[property] = applyChanges(object[property], value);
|
|
126
|
-
return revisedObject;
|
|
127
|
-
}
|
|
128
|
-
case ChangeType.DELETE: {
|
|
129
|
-
delete revisedObject[property];
|
|
130
|
-
return revisedObject;
|
|
131
|
-
}
|
|
132
|
-
case ChangeType.NONE:
|
|
133
|
-
default:
|
|
134
|
-
return revisedObject;
|
|
135
|
-
}
|
|
136
|
-
}, object);
|
|
137
|
-
const applyChangesToString = (string, changes) => changes.reduce((revisedString, [type, index, value]) => {
|
|
138
|
-
switch (type) {
|
|
139
|
-
case ChangeType.INSERT: {
|
|
140
|
-
const left = revisedString.slice(0, index);
|
|
141
|
-
const right = revisedString.slice(index);
|
|
142
|
-
return left + value + right;
|
|
143
|
-
}
|
|
144
|
-
case ChangeType.DELETE: {
|
|
145
|
-
const left = revisedString.slice(0, index);
|
|
146
|
-
const right = revisedString.slice(index + 1);
|
|
147
|
-
return left + right;
|
|
148
|
-
}
|
|
149
|
-
default: {
|
|
150
|
-
return revisedString;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}, string);
|
|
154
64
|
if (changes.length === 0)
|
|
155
65
|
return oldState;
|
|
156
|
-
|
|
157
|
-
return applyChanges(oldState, changes);
|
|
66
|
+
return applyChanges(oldState, changes);
|
|
158
67
|
};
|
|
159
68
|
//# sourceMappingURL=patching.js.map
|
package/dist/patching.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAiB,MAAM,WAAW,CAAC;AAEtD,MAAM,YAAY,GAAG,CAAC,KAAe,EAAE,OAAiB,EAAY,EAAE;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrE,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAAgB,EAChB,OAAiB,EACN,EAAE;IACb,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,KAAe,CAAC;QAE1B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC5B,MAAM;YAER,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACnB,MAAM;YAER,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAa,EAAE,KAAiB,CAAC,CAAC;gBACrE,MAAM;YAER,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,MAA+B,EAC/B,OAAiB,EACQ,EAAE;IAC3B,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,QAAkB,CAAC;QAE/B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,UAAU,CAAC,MAAM,CAAC;YACvB,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrB,MAAM;YAER,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAa,EAAE,KAAiB,CAAC,CAAC;gBACxE,MAAM;YAER,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,QAAW,EAAE,QAAW,EAAK,EAAE;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,QAAoB,EAAE,QAAoB,CAAC,CAAC;IAEvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,YAAY,CAAC,QAAoB,EAAE,OAAO,CAAM,CAAC;AAC1D,CAAC,CAAC"}
|
package/dist/sync-engine.d.ts
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { StoreAdapter, SyncEngine, SyncEngineConfig } from './types.js';
|
|
1
|
+
import type { CrdtBackend, StoreAdapter, SyncEngine, SyncEngineConfig } from "./types.js";
|
|
3
2
|
/**
|
|
4
|
-
* Creates a sync engine that
|
|
5
|
-
*
|
|
3
|
+
* Creates a sync engine that keeps a store (via its adapter) and a CRDT backend
|
|
4
|
+
* in sync in both directions.
|
|
6
5
|
*
|
|
7
|
-
* This is the core abstraction that makes the sync logic state-manager
|
|
6
|
+
* This is the core abstraction that makes the sync logic state-manager and
|
|
7
|
+
* CRDT-library agnostic.
|
|
8
|
+
*
|
|
9
|
+
* On `connect()` the two sides are reconciled per key over the filtered view: a key the
|
|
10
|
+
* backend holds wins over the store's value, and a synced key the backend lacks stays in
|
|
11
|
+
* the store and is seeded into the backend unless `seed` is `'never'`. Afterwards the
|
|
12
|
+
* backend owns the synced document: every write replaces it with the store's filtered
|
|
13
|
+
* state, and a key removed from the backend is removed from the store.
|
|
8
14
|
*
|
|
9
15
|
* @example
|
|
10
16
|
* ```typescript
|
|
11
|
-
* const
|
|
17
|
+
* const backend = createYjsBackend(new Y.Doc(), 'shared');
|
|
12
18
|
* const adapter = new ZustandAdapter(store);
|
|
13
|
-
* const engine = createSyncEngine(
|
|
19
|
+
* const engine = createSyncEngine(backend, adapter);
|
|
14
20
|
* engine.connect();
|
|
15
21
|
* ```
|
|
16
22
|
*/
|
|
17
|
-
export declare function createSyncEngine<S>(
|
|
23
|
+
export declare function createSyncEngine<S extends object>(backend: CrdtBackend, adapter: StoreAdapter<S>, config?: SyncEngineConfig): SyncEngine;
|
|
18
24
|
//# sourceMappingURL=sync-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../src/sync-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../src/sync-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,MAAM,GAAE,gBAAqB,GAC5B,UAAU,CAiGZ"}
|