@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storacha/md-merge",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
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,