@cr_docs_t/dts 0.28.0 → 0.29.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/dts/FugueTree/FTree.d.ts +1 -0
- package/dist/dts/FugueTree/FTree.d.ts.map +1 -1
- package/dist/dts/FugueTree/FTree.js +9 -16
- package/dist/dts/FugueTree/FugueTree.d.ts +2 -1
- package/dist/dts/FugueTree/FugueTree.d.ts.map +1 -1
- package/dist/dts/FugueTree/FugueTree.js +5 -0
- package/dist/dts/Serailizers/Fugue/State.d.ts.map +1 -1
- package/dist/dts/Serailizers/Fugue/State.js +4 -5
- package/dist/treesitter/parser.d.ts.map +1 -1
- package/dist/treesitter/parser.js +0 -1
- package/dist/types/FugueTree/Message.d.ts +1 -1
- package/dist/types/FugueTree/Message.d.ts.map +1 -1
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +23 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FTree.d.ts","sourceRoot":"","sources":["../../../src/dts/FugueTree/FTree.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjC;;;GAGG;AACH,MAAM,MAAM,EAAE,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,qBAAa,KAAK;IAGd,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAGrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;;IAgBpD;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK;IAStB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAiC9F;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAiDd;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IAU1B;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ5C;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK;IAkC7C;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IAoCpC;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK;IAMtC;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI;IAoB5C;;;OAGG;IACF,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"FTree.d.ts","sourceRoot":"","sources":["../../../src/dts/FugueTree/FTree.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjC;;;GAGG;AACH,MAAM,MAAM,EAAE,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,qBAAa,KAAK;IAGd,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAGrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;;IAgBpD;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK;IAStB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAiC9F;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAiDd;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IAU1B;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ5C;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK;IAkC7C;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IAoCpC;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK;IAMtC;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI;IAoB5C;;;OAGG;IACF,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAiChD;;;;;OAKG;IACH,IAAI,IAAI,UAAU;IAqBlB;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,EAAE,UAAU;IA2EzB,QAAQ;CAGX"}
|
|
@@ -317,9 +317,7 @@ export class FTree {
|
|
|
317
317
|
*/
|
|
318
318
|
*traverse(node) {
|
|
319
319
|
let current = node;
|
|
320
|
-
// Stack
|
|
321
|
-
// We don't need to store node because we can infer it from the
|
|
322
|
-
// current node's parent etc.
|
|
320
|
+
// Stack based inorder traversal
|
|
323
321
|
const S = [{ side: "L", childIndex: 0 }];
|
|
324
322
|
while (true) {
|
|
325
323
|
const top = S[S.length - 1];
|
|
@@ -377,7 +375,7 @@ export class FTree {
|
|
|
377
375
|
return nodeSave;
|
|
378
376
|
});
|
|
379
377
|
}
|
|
380
|
-
return new
|
|
378
|
+
return new TextEncoder().encode(JSON.stringify(save)); //allows us to encode from the frontend
|
|
381
379
|
}
|
|
382
380
|
/**
|
|
383
381
|
* Load the tree from a Uint8Array containing serialized tree data in the format produced by the save() method.
|
|
@@ -387,8 +385,7 @@ export class FTree {
|
|
|
387
385
|
*/
|
|
388
386
|
load(saveData) {
|
|
389
387
|
const save = JSON.parse(new TextDecoder().decode(saveData));
|
|
390
|
-
//
|
|
391
|
-
// rightOrigin).
|
|
388
|
+
// Create nodes without pointers
|
|
392
389
|
for (const [sender, bySenderSave] of Object.entries(save)) {
|
|
393
390
|
if (sender === "") {
|
|
394
391
|
// Root node. Just set its size.
|
|
@@ -406,7 +403,7 @@ export class FTree {
|
|
|
406
403
|
rightChildren: [],
|
|
407
404
|
})));
|
|
408
405
|
}
|
|
409
|
-
//
|
|
406
|
+
// Fill in the parent and rightOrigin pointers.
|
|
410
407
|
for (const [sender, bySender] of this.nodes) {
|
|
411
408
|
if (sender === "")
|
|
412
409
|
continue;
|
|
@@ -422,14 +419,8 @@ export class FTree {
|
|
|
422
419
|
}
|
|
423
420
|
}
|
|
424
421
|
}
|
|
425
|
-
//
|
|
426
|
-
//
|
|
427
|
-
// We must be careful to wait until after doing so for node.rightOrigin
|
|
428
|
-
// and its ancestors, since insertIntoSiblings references the existing list order
|
|
429
|
-
// on node.rightOrigin.
|
|
430
|
-
// Nodes go from "pending" -> "ready" (rightOrigin valid) ->
|
|
431
|
-
// "valid" (insertIntoSiblings called).
|
|
432
|
-
// readyNodes is a stack; pendingNodes maps from a node to its dependencies.
|
|
422
|
+
// Call insertIntoSiblings on each node to fill in the children arrays. Making sure to buffer nodes
|
|
423
|
+
// until their rightOrigin exists because insertIntoSiblings uses it to maintain sibling order
|
|
433
424
|
const readyNodes = [];
|
|
434
425
|
const pendingNodes = new Map();
|
|
435
426
|
for (const [sender, bySender] of this.nodes) {
|
|
@@ -454,7 +445,6 @@ export class FTree {
|
|
|
454
445
|
while (readyNodes.length !== 0) {
|
|
455
446
|
const node = readyNodes.pop();
|
|
456
447
|
this.insertIntoSiblings(node);
|
|
457
|
-
// node's dependencies are now ready.
|
|
458
448
|
const deps = pendingNodes.get(node);
|
|
459
449
|
if (deps !== undefined)
|
|
460
450
|
readyNodes.push(...deps);
|
|
@@ -464,4 +454,7 @@ export class FTree {
|
|
|
464
454
|
throw new Error("Failed to validate all nodes");
|
|
465
455
|
}
|
|
466
456
|
}
|
|
457
|
+
getNodes() {
|
|
458
|
+
return this.nodes;
|
|
459
|
+
}
|
|
467
460
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FugueMessage } from "../../types/FugueTree/Message.js";
|
|
2
|
-
import { FNode, ID } from "./FTree.js";
|
|
2
|
+
import { FNode, FTree, ID } from "./FTree.js";
|
|
3
3
|
/**
|
|
4
4
|
* A Fugue Tree CRDT, with insert and delete operations.
|
|
5
5
|
*/
|
|
@@ -123,5 +123,6 @@ export declare class FugueTree {
|
|
|
123
123
|
* @returns the index of the given node in the visible string
|
|
124
124
|
*/
|
|
125
125
|
getVisibleIndex(node: FNode): number;
|
|
126
|
+
getState(): FTree;
|
|
126
127
|
}
|
|
127
128
|
//# sourceMappingURL=FugueTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FugueTree.d.ts","sourceRoot":"","sources":["../../../src/dts/FugueTree/FugueTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"FugueTree.d.ts","sourceRoot":"","sources":["../../../src/dts/FugueTree/FugueTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAQ;IACpB,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,SAAS,SAAmB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,4BAAmC;IAE9C,QAAQ,CAAC,SAAS,OAAO;gBAEb,EAAE,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAO1E;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAIlB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IA+ClB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA+B5C;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOnC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAsBlB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA4B5C;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM;IAKpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgCnB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY,EAAE,GAAG,YAAY,EAAE;IAuB1D;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAS1B;;;OAGG;IACH,MAAM,IAAI,MAAM;IAIhB;;;OAGG;IACH,OAAO,IAAI,MAAM;IAWjB;;;OAGG;IACH,IAAI,IAAI,UAAU;IAKlB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAK5B;;;;;OAKG;IACH,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,EAAE;IAId;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK;IAI3B,QAAQ;CAGX"}
|
|
@@ -207,6 +207,7 @@ export class FugueTree {
|
|
|
207
207
|
return true;
|
|
208
208
|
}
|
|
209
209
|
catch (e) {
|
|
210
|
+
//console.log('Error from insert -> ', e);
|
|
210
211
|
return false;
|
|
211
212
|
}
|
|
212
213
|
case Operation.DELETE:
|
|
@@ -220,6 +221,7 @@ export class FugueTree {
|
|
|
220
221
|
return true;
|
|
221
222
|
}
|
|
222
223
|
catch (e) {
|
|
224
|
+
//console.log('Error from delete -> ', e);
|
|
223
225
|
return false;
|
|
224
226
|
}
|
|
225
227
|
default:
|
|
@@ -348,4 +350,7 @@ export class FugueTree {
|
|
|
348
350
|
getVisibleIndex(node) {
|
|
349
351
|
return this.tree.getVisibleIndex(node);
|
|
350
352
|
}
|
|
353
|
+
getState() {
|
|
354
|
+
return this.tree;
|
|
355
|
+
}
|
|
351
356
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/dts/Serailizers/Fugue/State.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/dts/Serailizers/Fugue/State.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,iBAAS,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,CAKzE;AAED,iBAAS,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAIhF;AAED,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { encode, decode } from "@msgpack/msgpack";
|
|
2
|
-
import { compress, decompress } from "lz4js";
|
|
3
2
|
function serialize(state) {
|
|
4
3
|
// const flat = state.flatMap((c) => c.map((n) => [n.position, n.value]));
|
|
5
4
|
const bin = encode(state);
|
|
6
|
-
const com = compress(bin);
|
|
7
|
-
return
|
|
5
|
+
// const com = compress(bin);
|
|
6
|
+
return bin;
|
|
8
7
|
}
|
|
9
8
|
function deserialize(compressed) {
|
|
10
|
-
const raw = decompress(compressed);
|
|
11
|
-
const state = decode(
|
|
9
|
+
// const raw = decompress(compressed);
|
|
10
|
+
const state = decode(compressed);
|
|
12
11
|
return state;
|
|
13
12
|
}
|
|
14
13
|
export const FugueStateSerializer = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/treesitter/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAI1D,eAAO,MAAM,SAAS,GAAU,qBAAqB,MAAM,EAAE,eAAe,MAAM;YAF/C,MAAM;WAAS,KAAK;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/treesitter/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAI1D,eAAO,MAAM,SAAS,GAAU,qBAAqB,MAAM,EAAE,eAAe,MAAM;YAF/C,MAAM;WAAS,KAAK;EA6BtD,CAAC"}
|
|
@@ -24,7 +24,6 @@ export interface FugueMessage extends BaseFugueMessage<Operation.INSERT | Operat
|
|
|
24
24
|
}
|
|
25
25
|
export interface FugueJoinMessage extends BaseFugueMessage<Operation.INITIAL_SYNC> {
|
|
26
26
|
state: Uint8Array<ArrayBufferLike> | null;
|
|
27
|
-
bufferedOperations?: Buffer<ArrayBuffer>[];
|
|
28
27
|
}
|
|
29
28
|
export interface FugueRejectMessage extends BaseFugueMessage<Operation.REJECT> {
|
|
30
29
|
documentID: string;
|
|
@@ -36,6 +35,7 @@ export interface FugueLeaveMessage extends BaseFugueMessage<Operation.LEAVE> {
|
|
|
36
35
|
}
|
|
37
36
|
export interface FugueUserJoinMessage extends BaseFugueMessage<Operation.USER_JOIN> {
|
|
38
37
|
collaborators: string[];
|
|
38
|
+
offlineState?: Uint8Array<ArrayBufferLike>;
|
|
39
39
|
}
|
|
40
40
|
export type FugueMessageType = FugueMessage | FugueJoinMessage | FugueRejectMessage | FugueLeaveMessage | FugueUserJoinMessage;
|
|
41
41
|
export type FugueMutationMessageTypes = Extract<FugueMessageType, FugueMessage | FugueJoinMessage>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../src/types/FugueTree/Message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEzD,oBAAY,SAAS;IACjB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,YAAY,IAAA;IACZ,SAAS,IAAA;IACT,MAAM,IAAA;IACN,KAAK,IAAA;CACR;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAiBvD;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAG1B,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC7D,SAAS,EAAE,CAAC,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACvF,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,EAAE,CAAC;IACZ,WAAW,CAAC,EAAE,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC;IAC9E,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../src/types/FugueTree/Message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEzD,oBAAY,SAAS;IACjB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,YAAY,IAAA;IACZ,SAAS,IAAA;IACT,MAAM,IAAA;IACN,KAAK,IAAA;CACR;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAiBvD;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAG1B,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC7D,SAAS,EAAE,CAAC,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACvF,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,EAAE,CAAC;IACZ,WAAW,CAAC,EAAE,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC;IAC9E,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;CAE7C;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC;IAC/E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,gBAAgB,GACtB,YAAY,GACZ,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE,YAAY,GAAG,gBAAgB,CAAC,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
import { FNode, FTree } from "../dts";
|
|
1
2
|
export declare function randomString(length?: number): string;
|
|
3
|
+
/**
|
|
4
|
+
* Provides a list of ndes that are in tree A that are not in tree B
|
|
5
|
+
*/
|
|
6
|
+
export declare function diff(treeA: FTree, treeB: FTree): FNode[];
|
|
2
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEtC,wBAAgB,YAAY,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAIxD;AAWD;;GAEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,CAgBxD"}
|
package/dist/utils/index.js
CHANGED
|
@@ -4,3 +4,26 @@ export function randomString(length = 10) {
|
|
|
4
4
|
res[i] = String.fromCharCode(97 + Math.floor(Math.random() * 26));
|
|
5
5
|
return res.join("");
|
|
6
6
|
}
|
|
7
|
+
function buildValueSet(nodes) {
|
|
8
|
+
const set = new Map();
|
|
9
|
+
for (const node of nodes) {
|
|
10
|
+
set.set(JSON.stringify(node.id), node);
|
|
11
|
+
}
|
|
12
|
+
return set;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Provides a list of ndes that are in tree A that are not in tree B
|
|
16
|
+
*/
|
|
17
|
+
export function diff(treeA, treeB) {
|
|
18
|
+
const nodesA = Array.from(treeA.getNodes().values()).flat();
|
|
19
|
+
const nodesB = Array.from(treeB.getNodes().values()).flat();
|
|
20
|
+
const setA = buildValueSet(nodesA);
|
|
21
|
+
const setB = buildValueSet(nodesB);
|
|
22
|
+
const nodeDiff = [];
|
|
23
|
+
for (const [key, node] of setA.entries()) {
|
|
24
|
+
if (!setB.has(key)) {
|
|
25
|
+
nodeDiff.push(node);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return nodeDiff;
|
|
29
|
+
}
|