@storacha/md-merge 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codec.d.ts +20 -0
- package/dist/codec.js +4 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/package.json +1 -1
- package/src/codec.ts +6 -6
- package/src/index.ts +15 -0
package/dist/codec.d.ts
CHANGED
|
@@ -5,9 +5,29 @@
|
|
|
5
5
|
* adding recursive handling of nested RGA children in tree nodes.
|
|
6
6
|
*/
|
|
7
7
|
import { type RGAEvent, type EventComparator } from './crdt/rga.js';
|
|
8
|
+
import { type SerializedRGA, type SerializedNodeId } from './crdt/codec.js';
|
|
8
9
|
import type { RGATreeRoot } from './types.js';
|
|
9
10
|
import type { RGAChangeSet } from './types.js';
|
|
10
11
|
export { encodeRGA, decodeRGA } from './crdt/codec.js';
|
|
12
|
+
export declare function serializeTree<E extends RGAEvent>(root: RGATreeRoot<E>): unknown;
|
|
13
|
+
export declare function deserializeTree<E extends RGAEvent>(raw: {
|
|
14
|
+
type: string;
|
|
15
|
+
children: SerializedRGA;
|
|
16
|
+
}, parseEvent: (s: string) => E, compareEvents: EventComparator<E>): RGATreeRoot<E>;
|
|
17
|
+
export interface SerializedRGAChangeSet {
|
|
18
|
+
event: string;
|
|
19
|
+
changes: SerializedRGAChange[];
|
|
20
|
+
}
|
|
21
|
+
export interface SerializedRGAChange {
|
|
22
|
+
type: 'insert' | 'delete' | 'modify';
|
|
23
|
+
parentPath: SerializedNodeId[];
|
|
24
|
+
targetId?: SerializedNodeId | null;
|
|
25
|
+
afterId?: SerializedNodeId | null;
|
|
26
|
+
nodes?: unknown[];
|
|
27
|
+
before?: unknown[];
|
|
28
|
+
}
|
|
29
|
+
export declare function serializeChangeSet<E extends RGAEvent>(cs: RGAChangeSet<E>): SerializedRGAChangeSet;
|
|
30
|
+
export declare function deserializeChangeSet<E extends RGAEvent>(raw: SerializedRGAChangeSet, parseEvent: (s: string) => E): RGAChangeSet<E>;
|
|
11
31
|
export declare function encodeTree<E extends RGAEvent>(root: RGATreeRoot<E>): Promise<import("multiformats").BlockView<unknown, 113, 18, 1>>;
|
|
12
32
|
export declare function decodeTree<E extends RGAEvent>(block: {
|
|
13
33
|
bytes: Uint8Array;
|
package/dist/codec.js
CHANGED
|
@@ -31,7 +31,7 @@ function serializeTreeNodeValue(node) {
|
|
|
31
31
|
}
|
|
32
32
|
return node;
|
|
33
33
|
}
|
|
34
|
-
function serializeTree(root) {
|
|
34
|
+
export function serializeTree(root) {
|
|
35
35
|
return {
|
|
36
36
|
type: 'root',
|
|
37
37
|
children: serializeRGA(root.children, (n) => serializeTreeNodeValue(n)),
|
|
@@ -50,13 +50,13 @@ function deserializeTreeNodeValue(raw, parseEvent, compareEvents) {
|
|
|
50
50
|
function deserializeTreeRGA(raw, parseEvent, compareEvents) {
|
|
51
51
|
return deserializeRGA(raw, parseEvent, (v) => deserializeTreeNodeValue(v, parseEvent, compareEvents), compareEvents);
|
|
52
52
|
}
|
|
53
|
-
function deserializeTree(raw, parseEvent, compareEvents) {
|
|
53
|
+
export function deserializeTree(raw, parseEvent, compareEvents) {
|
|
54
54
|
return {
|
|
55
55
|
type: 'root',
|
|
56
56
|
children: deserializeTreeRGA(raw.children, parseEvent, compareEvents),
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
function serializeChangeSet(cs) {
|
|
59
|
+
export function serializeChangeSet(cs) {
|
|
60
60
|
return {
|
|
61
61
|
event: cs.event.toString(),
|
|
62
62
|
changes: cs.changes.map(c => ({
|
|
@@ -69,7 +69,7 @@ function serializeChangeSet(cs) {
|
|
|
69
69
|
})),
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
-
function deserializeChangeSet(raw, parseEvent) {
|
|
72
|
+
export function deserializeChangeSet(raw, parseEvent) {
|
|
73
73
|
return {
|
|
74
74
|
event: parseEvent(raw.event),
|
|
75
75
|
changes: raw.changes.map(c => {
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,8 @@ import type { RGAEvent, EventComparator } from "./crdt/rga.js";
|
|
|
9
9
|
export { parse, stringify, stringifyNode, fingerprint } from "./parse.js";
|
|
10
10
|
export { diff, applyChangeSet } from "./diff.js";
|
|
11
11
|
export { toRGATree, toMdast, applyMdastToRGATree, generateRGAChangeSet, applyRGAChangeSet, mergeRGATrees, } from "./rga-tree.js";
|
|
12
|
-
export { encodeTree, decodeTree, encodeChangeSet, decodeChangeSet, encodeRGA, decodeRGA, } from "./codec.js";
|
|
12
|
+
export { encodeTree, decodeTree, encodeChangeSet, decodeChangeSet, encodeRGA, decodeRGA, serializeTree, deserializeTree, serializeChangeSet, deserializeChangeSet, type SerializedRGAChangeSet, type SerializedRGAChange, } from "./codec.js";
|
|
13
|
+
export { stripUndefined, serializeRGA, deserializeRGA, serializeNodeId, deserializeNodeId, type SerializedRGA, type SerializedNodeId, } from "./crdt/codec.js";
|
|
13
14
|
export type { ChangeSet, Change, RGAChangeSet, RGAChange, RGATreeRoot, RGATreeNode, RGAParentNode, RGALeafNode, } from "./types.js";
|
|
14
15
|
export { RGA, type RGAEvent, type RGANodeId, type EventComparator, } from "./types.js";
|
|
15
16
|
/**
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,8 @@ import { toRGATree, toMdast, generateRGAChangeSet, applyRGAChangeSet, } from "./
|
|
|
10
10
|
export { parse, stringify, stringifyNode, fingerprint } from "./parse.js";
|
|
11
11
|
export { diff, applyChangeSet } from "./diff.js";
|
|
12
12
|
export { toRGATree, toMdast, applyMdastToRGATree, generateRGAChangeSet, applyRGAChangeSet, mergeRGATrees, } from "./rga-tree.js";
|
|
13
|
-
export { encodeTree, decodeTree, encodeChangeSet, decodeChangeSet, encodeRGA, decodeRGA, } from "./codec.js";
|
|
13
|
+
export { encodeTree, decodeTree, encodeChangeSet, decodeChangeSet, encodeRGA, decodeRGA, serializeTree, deserializeTree, serializeChangeSet, deserializeChangeSet, } from "./codec.js";
|
|
14
|
+
export { stripUndefined, serializeRGA, deserializeRGA, serializeNodeId, deserializeNodeId, } from "./crdt/codec.js";
|
|
14
15
|
export { RGA, } from "./types.js";
|
|
15
16
|
/**
|
|
16
17
|
* Compute an RGA-addressed changeset between an existing RGA tree and new markdown.
|
package/package.json
CHANGED
package/src/codec.ts
CHANGED
|
@@ -51,7 +51,7 @@ function serializeTreeNodeValue<E extends RGAEvent>(node: RGATreeNode<E>): unkno
|
|
|
51
51
|
return node
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
function serializeTree<E extends RGAEvent>(root: RGATreeRoot<E>): unknown {
|
|
54
|
+
export function serializeTree<E extends RGAEvent>(root: RGATreeRoot<E>): unknown {
|
|
55
55
|
return {
|
|
56
56
|
type: 'root',
|
|
57
57
|
children: serializeRGA(root.children, (n: RGATreeNode<E>) => serializeTreeNodeValue(n)),
|
|
@@ -86,7 +86,7 @@ function deserializeTreeRGA<E extends RGAEvent>(
|
|
|
86
86
|
)
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
function deserializeTree<E extends RGAEvent>(
|
|
89
|
+
export function deserializeTree<E extends RGAEvent>(
|
|
90
90
|
raw: { type: string; children: SerializedRGA },
|
|
91
91
|
parseEvent: (s: string) => E,
|
|
92
92
|
compareEvents: EventComparator<E>,
|
|
@@ -99,12 +99,12 @@ function deserializeTree<E extends RGAEvent>(
|
|
|
99
99
|
|
|
100
100
|
// ---- RGAChangeSet serialization ----
|
|
101
101
|
|
|
102
|
-
interface SerializedRGAChangeSet {
|
|
102
|
+
export interface SerializedRGAChangeSet {
|
|
103
103
|
event: string
|
|
104
104
|
changes: SerializedRGAChange[]
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
interface SerializedRGAChange {
|
|
107
|
+
export interface SerializedRGAChange {
|
|
108
108
|
type: 'insert' | 'delete' | 'modify'
|
|
109
109
|
parentPath: SerializedNodeId[]
|
|
110
110
|
targetId?: SerializedNodeId | null
|
|
@@ -113,7 +113,7 @@ interface SerializedRGAChange {
|
|
|
113
113
|
before?: unknown[]
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
function serializeChangeSet<E extends RGAEvent>(cs: RGAChangeSet<E>): SerializedRGAChangeSet {
|
|
116
|
+
export function serializeChangeSet<E extends RGAEvent>(cs: RGAChangeSet<E>): SerializedRGAChangeSet {
|
|
117
117
|
return {
|
|
118
118
|
event: cs.event.toString(),
|
|
119
119
|
changes: cs.changes.map(c => ({
|
|
@@ -127,7 +127,7 @@ function serializeChangeSet<E extends RGAEvent>(cs: RGAChangeSet<E>): Serialized
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
function deserializeChangeSet<E extends RGAEvent>(
|
|
130
|
+
export function deserializeChangeSet<E extends RGAEvent>(
|
|
131
131
|
raw: SerializedRGAChangeSet,
|
|
132
132
|
parseEvent: (s: string) => E,
|
|
133
133
|
): RGAChangeSet<E> {
|
package/src/index.ts
CHANGED
|
@@ -33,7 +33,22 @@ export {
|
|
|
33
33
|
decodeChangeSet,
|
|
34
34
|
encodeRGA,
|
|
35
35
|
decodeRGA,
|
|
36
|
+
serializeTree,
|
|
37
|
+
deserializeTree,
|
|
38
|
+
serializeChangeSet,
|
|
39
|
+
deserializeChangeSet,
|
|
40
|
+
type SerializedRGAChangeSet,
|
|
41
|
+
type SerializedRGAChange,
|
|
36
42
|
} from "./codec.js";
|
|
43
|
+
export {
|
|
44
|
+
stripUndefined,
|
|
45
|
+
serializeRGA,
|
|
46
|
+
deserializeRGA,
|
|
47
|
+
serializeNodeId,
|
|
48
|
+
deserializeNodeId,
|
|
49
|
+
type SerializedRGA,
|
|
50
|
+
type SerializedNodeId,
|
|
51
|
+
} from "./crdt/codec.js";
|
|
37
52
|
export type {
|
|
38
53
|
ChangeSet,
|
|
39
54
|
Change,
|