lib0 0.2.112 → 0.2.115-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/README.md +1 -1
- package/broadcastchannel.js +1 -1
- package/buffer.d.ts +3 -3
- package/buffer.d.ts.map +1 -1
- package/buffer.js +1 -1
- package/coverage/tmp/coverage-27667-1761218530660-0.json +1 -0
- package/coverage/tmp/{coverage-20055-1752683207886-0.json → coverage-27668-1761218485882-0.json} +1 -1
- package/crypto/aes-gcm.d.ts +4 -4
- package/crypto/aes-gcm.d.ts.map +1 -1
- package/crypto/aes-gcm.js +6 -6
- package/crypto/common.d.ts +1 -1
- package/crypto/common.d.ts.map +1 -1
- package/crypto/common.js +1 -1
- package/crypto/ecdsa.d.ts +2 -2
- package/crypto/ecdsa.d.ts.map +1 -1
- package/crypto/ecdsa.js +4 -4
- package/crypto/rsa-oaep.d.ts +2 -2
- package/crypto/rsa-oaep.d.ts.map +1 -1
- package/crypto/rsa-oaep.js +3 -3
- package/decoding.d.ts +27 -14
- package/decoding.d.ts.map +1 -1
- package/decoding.js +12 -8
- package/delta/abstract-array.d.ts +166 -0
- package/delta/abstract-array.d.ts.map +1 -0
- package/delta/abstract-array.js +421 -0
- package/delta/abstract.d.ts +69 -0
- package/delta/abstract.d.ts.map +1 -0
- package/delta/abstract.js +102 -0
- package/delta/array.d.ts +23 -0
- package/delta/array.d.ts.map +1 -0
- package/delta/array.js +45 -0
- package/delta/array.test.d.ts +2 -0
- package/delta/array.test.d.ts.map +1 -0
- package/delta/binding.d.ts +105 -0
- package/delta/binding.d.ts.map +1 -0
- package/delta/binding.js +369 -0
- package/delta/binding.test.d.ts +5 -0
- package/delta/binding.test.d.ts.map +1 -0
- package/delta/d2.d.ts +705 -0
- package/delta/d2.d.ts.map +1 -0
- package/delta/d2.js +1309 -0
- package/delta/d2.test.d.ts +15 -0
- package/delta/d2.test.d.ts.map +1 -0
- package/delta/index.d.ts +14 -0
- package/delta/index.d.ts.map +1 -0
- package/delta/index.js +79 -0
- package/delta/map.d.ts +230 -0
- package/delta/map.d.ts.map +1 -0
- package/delta/map.js +304 -0
- package/delta/node.d.ts +119 -0
- package/delta/node.d.ts.map +1 -0
- package/delta/node.js +183 -0
- package/delta/node.test.d.ts +4 -0
- package/delta/node.test.d.ts.map +1 -0
- package/delta/ops.d.ts +466 -0
- package/delta/ops.d.ts.map +1 -0
- package/delta/ops.js +544 -0
- package/delta/readme.md +129 -0
- package/delta/text.d.ts +43 -0
- package/delta/text.d.ts.map +1 -0
- package/delta/text.js +54 -0
- package/delta/text.test.d.ts +6 -0
- package/delta/text.test.d.ts.map +1 -0
- package/delta/transformer.d.ts +164 -0
- package/delta/transformer.d.ts.map +1 -0
- package/delta/transformer.js +888 -0
- package/delta/transformer.test.d.ts +13 -0
- package/delta/transformer.test.d.ts.map +1 -0
- package/delta/value.d.ts +84 -0
- package/delta/value.d.ts.map +1 -0
- package/delta/value.js +168 -0
- package/dist/abstract-array.cjs +433 -0
- package/dist/abstract-array.cjs.map +1 -0
- package/dist/abstract.cjs +122 -0
- package/dist/abstract.cjs.map +1 -0
- package/dist/aes-gcm.cjs +12 -12
- package/dist/aes-gcm.cjs.map +1 -1
- package/dist/array.cjs +60 -17
- package/dist/array.cjs.map +1 -1
- package/dist/array2.cjs +26 -0
- package/dist/array2.cjs.map +1 -0
- package/dist/binding.cjs +398 -0
- package/dist/binding.cjs.map +1 -0
- package/dist/{broadcastchannel-2c4b0a1c.cjs → broadcastchannel-b4eaea6e.cjs} +4 -4
- package/dist/broadcastchannel-b4eaea6e.cjs.map +1 -0
- package/dist/broadcastchannel.cjs +12 -12
- package/dist/{buffer-a74f7330.cjs → buffer-adc4e6ea.cjs} +7 -7
- package/dist/buffer-adc4e6ea.cjs.map +1 -0
- package/dist/buffer.cjs +11 -11
- package/dist/buffer.d.ts +3 -3
- package/dist/buffer.d.ts.map +1 -1
- package/dist/cache.cjs +6 -6
- package/dist/common.cjs +1 -1
- package/dist/common.cjs.map +1 -1
- package/dist/component.cjs +14 -9
- package/dist/component.cjs.map +1 -1
- package/dist/crypto/aes-gcm.d.ts +4 -4
- package/dist/crypto/aes-gcm.d.ts.map +1 -1
- package/dist/crypto/common.d.ts +1 -1
- package/dist/crypto/common.d.ts.map +1 -1
- package/dist/crypto/ecdsa.d.ts +2 -2
- package/dist/crypto/ecdsa.d.ts.map +1 -1
- package/dist/crypto/rsa-oaep.d.ts +2 -2
- package/dist/crypto/rsa-oaep.d.ts.map +1 -1
- package/dist/d2.cjs +1347 -0
- package/dist/d2.cjs.map +1 -0
- package/dist/{decoding-2b136346.cjs → decoding-50b9ce38.cjs} +18 -14
- package/dist/decoding-50b9ce38.cjs.map +1 -0
- package/dist/decoding.cjs +6 -6
- package/dist/decoding.d.ts +27 -14
- package/dist/decoding.d.ts.map +1 -1
- package/dist/delta/abstract-array.d.ts +166 -0
- package/dist/delta/abstract-array.d.ts.map +1 -0
- package/dist/delta/abstract.d.ts +69 -0
- package/dist/delta/abstract.d.ts.map +1 -0
- package/dist/delta/array.d.ts +23 -0
- package/dist/delta/array.d.ts.map +1 -0
- package/dist/delta/array.test.d.ts +2 -0
- package/dist/delta/array.test.d.ts.map +1 -0
- package/dist/delta/binding.d.ts +105 -0
- package/dist/delta/binding.d.ts.map +1 -0
- package/dist/delta/binding.test.d.ts +5 -0
- package/dist/delta/binding.test.d.ts.map +1 -0
- package/dist/delta/d2.d.ts +705 -0
- package/dist/delta/d2.d.ts.map +1 -0
- package/dist/delta/d2.test.d.ts +15 -0
- package/dist/delta/d2.test.d.ts.map +1 -0
- package/dist/delta/index.d.ts +14 -0
- package/dist/delta/index.d.ts.map +1 -0
- package/dist/delta/map.d.ts +230 -0
- package/dist/delta/map.d.ts.map +1 -0
- package/dist/delta/node.d.ts +119 -0
- package/dist/delta/node.d.ts.map +1 -0
- package/dist/delta/node.test.d.ts +4 -0
- package/dist/delta/node.test.d.ts.map +1 -0
- package/dist/delta/ops.d.ts +466 -0
- package/dist/delta/ops.d.ts.map +1 -0
- package/dist/delta/text.d.ts +43 -0
- package/dist/delta/text.d.ts.map +1 -0
- package/dist/delta/text.test.d.ts +6 -0
- package/dist/delta/text.test.d.ts.map +1 -0
- package/dist/delta/transformer.d.ts +164 -0
- package/dist/delta/transformer.d.ts.map +1 -0
- package/dist/delta/transformer.test.d.ts +13 -0
- package/dist/delta/transformer.test.d.ts.map +1 -0
- package/dist/delta/value.d.ts +84 -0
- package/dist/delta/value.d.ts.map +1 -0
- package/dist/{diff-77c4cf8e.cjs → diff-f0776c15.cjs} +2 -2
- package/dist/{diff-77c4cf8e.cjs.map → diff-f0776c15.cjs.map} +1 -1
- package/dist/diff.cjs +3 -3
- package/dist/{dom-16daf1a0.cjs → dom-2b123630.cjs} +31 -2
- package/dist/dom-2b123630.cjs.map +1 -0
- package/dist/dom.cjs +17 -2
- package/dist/dom.cjs.map +1 -1
- package/dist/dom.d.ts +17 -0
- package/dist/dom.d.ts.map +1 -1
- package/dist/ecdsa.cjs +4 -4
- package/dist/ecdsa.cjs.map +1 -1
- package/dist/{encoding-1acb59c4.cjs → encoding-7f85922c.cjs} +5 -5
- package/dist/encoding-7f85922c.cjs.map +1 -0
- package/dist/encoding.cjs +4 -4
- package/dist/encoding.d.ts +6 -6
- package/dist/encoding.d.ts.map +1 -1
- package/dist/{environment-2de08e0e.cjs → environment-90227ead.cjs} +4 -4
- package/dist/{environment-2de08e0e.cjs.map → environment-90227ead.cjs.map} +1 -1
- package/dist/environment.cjs +5 -5
- package/dist/{error-8582d695.cjs → error-0c1f634f.cjs} +10 -2
- package/dist/error-0c1f634f.cjs.map +1 -0
- package/dist/error.cjs +2 -1
- package/dist/error.cjs.map +1 -1
- package/dist/error.d.ts +1 -0
- package/dist/error.d.ts.map +1 -1
- package/dist/{eventloop-b299a889.cjs → eventloop-a0168106.cjs} +2 -2
- package/dist/{eventloop-b299a889.cjs.map → eventloop-a0168106.cjs.map} +1 -1
- package/dist/eventloop.cjs +3 -3
- package/dist/{function-09b8292c.cjs → function-e7d18feb.cjs} +2 -2
- package/dist/{function-09b8292c.cjs.map → function-e7d18feb.cjs.map} +1 -1
- package/dist/function.cjs +2 -2
- package/dist/index.cjs +23 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index2.cjs +71 -0
- package/dist/index2.cjs.map +1 -0
- package/dist/{indexeddb-0cbb4d6f.cjs → indexeddb-46d1e737.cjs} +3 -3
- package/dist/{indexeddb-0cbb4d6f.cjs.map → indexeddb-46d1e737.cjs.map} +1 -1
- package/dist/indexeddb.cjs +5 -5
- package/dist/indexeddbV2.cjs +2 -1
- package/dist/indexeddbV2.cjs.map +1 -1
- package/dist/jwt.cjs +12 -12
- package/dist/list.cjs +39 -12
- package/dist/list.cjs.map +1 -1
- package/dist/list.d.ts +13 -3
- package/dist/list.d.ts.map +1 -1
- package/dist/logging.cjs +11 -9
- package/dist/logging.cjs.map +1 -1
- package/dist/logging.common.cjs +7 -7
- package/dist/logging.node.cjs +7 -7
- package/dist/{map-0dabcc55.cjs → map-24d263c0.cjs} +7 -1
- package/dist/map-24d263c0.cjs.map +1 -0
- package/dist/map.cjs +314 -7
- package/dist/map.cjs.map +1 -1
- package/dist/map.d.ts +1 -0
- package/dist/map.d.ts.map +1 -1
- package/dist/map2.cjs +15 -0
- package/dist/map2.cjs.map +1 -0
- package/dist/{math-08e068f9.cjs → math-96d5e8c4.cjs} +4 -2
- package/dist/math-96d5e8c4.cjs.map +1 -0
- package/dist/math.cjs +1 -1
- package/dist/math.d.ts.map +1 -1
- package/dist/metric.cjs +1 -1
- package/dist/node.cjs +206 -0
- package/dist/node.cjs.map +1 -0
- package/dist/{number-466d8922.cjs → number-1fb57bba.cjs} +2 -2
- package/dist/{number-466d8922.cjs.map → number-1fb57bba.cjs.map} +1 -1
- package/dist/number.cjs +2 -2
- package/dist/{object-491858d1.cjs → object-18980796.cjs} +12 -2
- package/dist/object-18980796.cjs.map +1 -0
- package/dist/object.cjs +3 -1
- package/dist/object.cjs.map +1 -1
- package/dist/object.d.ts +3 -0
- package/dist/object.d.ts.map +1 -1
- package/dist/observable.cjs +1 -1
- package/dist/ops.cjs +575 -0
- package/dist/ops.cjs.map +1 -0
- package/dist/patience.cjs +2 -2
- package/dist/performance.node.cjs +4 -4
- package/dist/pledge.cjs +2 -1
- package/dist/pledge.cjs.map +1 -1
- package/dist/{prng-24dfe0bf.cjs → prng-004c76e8.cjs} +5 -5
- package/dist/{prng-24dfe0bf.cjs.map → prng-004c76e8.cjs.map} +1 -1
- package/dist/prng.cjs +12 -12
- package/dist/prng.d.ts +1 -1
- package/dist/prng.d.ts.map +1 -1
- package/dist/{promise-7d13a97c.cjs → promise-cda7b9bb.cjs} +2 -2
- package/dist/{promise-7d13a97c.cjs.map → promise-cda7b9bb.cjs.map} +1 -1
- package/dist/promise.cjs +3 -3
- package/dist/rabin-gf2-polynomial.cjs +11 -11
- package/dist/rabin-uncached.cjs +11 -11
- package/dist/rabin.cjs +11 -11
- package/dist/random.cjs +1 -1
- package/dist/rsa-oaep.cjs +3 -3
- package/dist/rsa-oaep.cjs.map +1 -1
- package/dist/schema.cjs +572 -167
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.ts +326 -122
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.test.d.ts +5 -0
- package/dist/schema.test.d.ts.map +1 -1
- package/dist/{sort-b8702761.cjs → sort-812cc211.cjs} +2 -2
- package/dist/{sort-b8702761.cjs.map → sort-812cc211.cjs.map} +1 -1
- package/dist/sort.cjs +2 -2
- package/dist/{statistics-c2316dca.cjs → statistics-65f6114b.cjs} +2 -2
- package/dist/{statistics-c2316dca.cjs.map → statistics-65f6114b.cjs.map} +1 -1
- package/dist/statistics.cjs +2 -2
- package/dist/{string-b2827a90.cjs → string-fddc5f8b.cjs} +3 -3
- package/dist/string-fddc5f8b.cjs.map +1 -0
- package/dist/string.cjs +1 -1
- package/dist/string.d.ts +3 -3
- package/dist/string.d.ts.map +1 -1
- package/dist/testing.cjs +16 -16
- package/dist/text.cjs +79 -0
- package/dist/text.cjs.map +1 -0
- package/dist/{time-bc2081b9.cjs → time-d8438852.cjs} +2 -2
- package/dist/{time-bc2081b9.cjs.map → time-d8438852.cjs.map} +1 -1
- package/dist/time.cjs +2 -2
- package/dist/traits.cjs +22 -0
- package/dist/traits.cjs.map +1 -1
- package/dist/traits.d.ts +1 -0
- package/dist/traits.d.ts.map +1 -1
- package/dist/traits.test.d.ts.map +1 -1
- package/dist/transformer.cjs +930 -0
- package/dist/transformer.cjs.map +1 -0
- package/dist/url.cjs +2 -1
- package/dist/url.cjs.map +1 -1
- package/dist/value.cjs +187 -0
- package/dist/value.cjs.map +1 -0
- package/dist/webcrypto.d.ts +1 -1
- package/dist/webcrypto.d.ts.map +1 -1
- package/dist/{websocket-40a601d4.cjs → websocket-b073d0fc.cjs} +3 -3
- package/dist/{websocket-40a601d4.cjs.map → websocket-b073d0fc.cjs.map} +1 -1
- package/dist/websocket.cjs +4 -4
- package/dom.d.ts +17 -0
- package/dom.d.ts.map +1 -1
- package/dom.js +21 -0
- package/encoding.d.ts +6 -6
- package/encoding.d.ts.map +1 -1
- package/encoding.js +1 -1
- package/error.d.ts +1 -0
- package/error.d.ts.map +1 -1
- package/error.js +6 -0
- package/list.d.ts +13 -3
- package/list.d.ts.map +1 -1
- package/list.js +36 -8
- package/map.d.ts +1 -0
- package/map.d.ts.map +1 -1
- package/map.js +6 -0
- package/math.d.ts.map +1 -1
- package/math.js +3 -1
- package/object.d.ts +3 -0
- package/object.d.ts.map +1 -1
- package/object.js +9 -1
- package/package.json +9 -3
- package/prng.d.ts +1 -1
- package/prng.d.ts.map +1 -1
- package/prng.js +1 -1
- package/schema.d.ts +326 -122
- package/schema.d.ts.map +1 -1
- package/schema.js +513 -141
- package/schema.test.d.ts +5 -0
- package/schema.test.d.ts.map +1 -1
- package/string.d.ts +3 -3
- package/string.d.ts.map +1 -1
- package/string.js +2 -2
- package/test.html +1 -0
- package/test.js +13 -1
- package/traits.d.ts +1 -0
- package/traits.d.ts.map +1 -1
- package/traits.js +21 -0
- package/traits.test.d.ts.map +1 -1
- package/webcrypto.d.ts +1 -1
- package/webcrypto.d.ts.map +1 -1
- package/coverage/tmp/coverage-20054-1752683240888-0.json +0 -1
- package/dist/broadcastchannel-2c4b0a1c.cjs.map +0 -1
- package/dist/buffer-a74f7330.cjs.map +0 -1
- package/dist/decoding-2b136346.cjs.map +0 -1
- package/dist/dom-16daf1a0.cjs.map +0 -1
- package/dist/encoding-1acb59c4.cjs.map +0 -1
- package/dist/error-8582d695.cjs.map +0 -1
- package/dist/map-0dabcc55.cjs.map +0 -1
- package/dist/math-08e068f9.cjs.map +0 -1
- package/dist/object-491858d1.cjs.map +0 -1
- package/dist/string-b2827a90.cjs.map +0 -1
package/delta/node.d.ts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @template {string|undefined} [NodeName=string]
|
|
3
|
+
* @template {{[key:string]:any}} [Attrs={[key:string]:any}]
|
|
4
|
+
* @template [Children=any]
|
|
5
|
+
* @template {boolean} [WithText=true]
|
|
6
|
+
*/
|
|
7
|
+
export class DeltaNode<NodeName extends string | undefined = string, Attrs extends {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
} = {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}, Children = any, WithText extends boolean = true> extends dabstract.AbstractDelta {
|
|
12
|
+
/**
|
|
13
|
+
* @param {NodeName} nodeName
|
|
14
|
+
* @param {dmap.DeltaMap<Attrs>} attributes
|
|
15
|
+
* @param {darray.DeltaArray<Children,WithText>} children
|
|
16
|
+
*/
|
|
17
|
+
constructor(nodeName: NodeName, attributes: dmap.DeltaMap<Attrs>, children: darray.DeltaArray<Children, WithText>);
|
|
18
|
+
name: NodeName;
|
|
19
|
+
/**
|
|
20
|
+
* @type {dmap.DeltaMap<Attrs>}
|
|
21
|
+
*/
|
|
22
|
+
attributes: dmap.DeltaMap<Attrs>;
|
|
23
|
+
/**
|
|
24
|
+
* @type {darray.DeltaArray<Children,WithText>}
|
|
25
|
+
*/
|
|
26
|
+
children: darray.DeltaArray<Children, WithText>;
|
|
27
|
+
/**
|
|
28
|
+
* @return {this}
|
|
29
|
+
*/
|
|
30
|
+
clone(): this;
|
|
31
|
+
/**
|
|
32
|
+
* @param {(WithText extends true ? string : never) | Array<Children>} insert
|
|
33
|
+
*/
|
|
34
|
+
insert(insert: (WithText extends true ? string : never) | Array<Children>): this;
|
|
35
|
+
/**
|
|
36
|
+
* @template {keyof Attrs} K
|
|
37
|
+
* @param {K} key
|
|
38
|
+
* @param {Attrs[K]} newVal
|
|
39
|
+
* @param {Attrs[K]|undefined} prevVal
|
|
40
|
+
* @param {import('./abstract.js').Attribution?} attribution
|
|
41
|
+
*/
|
|
42
|
+
set<K extends keyof Attrs>(key: K, newVal: Attrs[K], prevVal: Attrs[K] | undefined, attribution: import("./abstract.js").Attribution | null): this;
|
|
43
|
+
/**
|
|
44
|
+
* @param {import('./abstract.js').Attribution?} attribution
|
|
45
|
+
* @param {Partial<Attrs>} kv
|
|
46
|
+
*/
|
|
47
|
+
setMany(kv: Partial<Attrs>, attribution?: import("./abstract.js").Attribution | null): this;
|
|
48
|
+
toJSON(): {
|
|
49
|
+
name: NodeName;
|
|
50
|
+
attributes: {
|
|
51
|
+
[x: string]: ({
|
|
52
|
+
attribution?: ({
|
|
53
|
+
insert?: string[] | undefined;
|
|
54
|
+
insertAt?: number | undefined;
|
|
55
|
+
delete?: string[] | undefined;
|
|
56
|
+
deleteAt?: number | undefined;
|
|
57
|
+
attributes?: {
|
|
58
|
+
[x: string]: string[];
|
|
59
|
+
} | undefined;
|
|
60
|
+
attributesAt?: number | undefined;
|
|
61
|
+
} & {}) | null | undefined;
|
|
62
|
+
} & {
|
|
63
|
+
type: "insert";
|
|
64
|
+
value: any;
|
|
65
|
+
}) | ({} & {
|
|
66
|
+
type: "modify";
|
|
67
|
+
value: any;
|
|
68
|
+
}) | ({
|
|
69
|
+
attribution?: ({
|
|
70
|
+
insert?: string[] | undefined;
|
|
71
|
+
insertAt?: number | undefined;
|
|
72
|
+
delete?: string[] | undefined;
|
|
73
|
+
deleteAt?: number | undefined;
|
|
74
|
+
attributes?: {
|
|
75
|
+
[x: string]: string[];
|
|
76
|
+
} | undefined;
|
|
77
|
+
attributesAt?: number | undefined;
|
|
78
|
+
} & {}) | null | undefined;
|
|
79
|
+
} & {
|
|
80
|
+
type: "delete";
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
children: import("./abstract-array.js").DeltaJson;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* @return {DeltaNode<NodeName, Attrs, Children, WithText>}
|
|
87
|
+
*/
|
|
88
|
+
done(): DeltaNode<NodeName, Attrs, Children, WithText>;
|
|
89
|
+
/**
|
|
90
|
+
* @param {DeltaNode<NodeName,Partial<Attrs>,Children,WithText>} other
|
|
91
|
+
*/
|
|
92
|
+
[traits.EqualityTraitSymbol](other: DeltaNode<NodeName, Partial<Attrs>, Children, WithText>): boolean;
|
|
93
|
+
}
|
|
94
|
+
export function node<NodeName extends string | undefined = string, Attrs extends {
|
|
95
|
+
[key: string]: any;
|
|
96
|
+
} | dmap.DeltaMap<any> = {
|
|
97
|
+
[key: string]: any;
|
|
98
|
+
}, Children extends Array<any> | string | darray.DeltaArray<any, any> = any[]>(nodeName: NodeName, attributes?: Attrs, children?: Children): DeltaNode<NodeName, Attrs extends dmap.DeltaMap<infer AttrsDef> ? AttrsDef : Attrs, Children extends Array<infer ChildTypes> ? ChildTypes : (Children extends darray.DeltaArray<infer ChildTypes, any> ? ChildTypes : never)>;
|
|
99
|
+
export function $node<NodeName extends string, Attributes extends {
|
|
100
|
+
[key: string]: any;
|
|
101
|
+
}, Children, Recursive extends boolean = false, WithText extends boolean = false>($nodeName: s.Schema<NodeName>, $attributes: s.Schema<Attributes>, $children: s.Schema<Children>, { recursive, withText }?: {
|
|
102
|
+
recursive?: Recursive | undefined;
|
|
103
|
+
withText?: WithText | undefined;
|
|
104
|
+
}): s.Schema<Recursive extends true ? RecursiveDeltaNode<NodeName, Partial<Attributes>, Children, WithText> : DeltaNode<NodeName, Partial<Attributes>, Children, WithText | undefined>>;
|
|
105
|
+
/**
|
|
106
|
+
* @type {s.Schema<DeltaNode<any,{[key:string]: any},any,any>>}
|
|
107
|
+
*/
|
|
108
|
+
export const $nodeAny: s.Schema<DeltaNode<any, {
|
|
109
|
+
[key: string]: any;
|
|
110
|
+
}, any, any>>;
|
|
111
|
+
export type RecursiveDeltaNode<NodeName extends string, Attributes extends {
|
|
112
|
+
[key: string]: any;
|
|
113
|
+
}, Children, WithText extends boolean> = DeltaNode<NodeName, Attributes, Children | RecursiveDeltaNode<NodeName, Attributes, Children, WithText>, WithText>;
|
|
114
|
+
import * as dabstract from './abstract.js';
|
|
115
|
+
import * as dmap from './map.js';
|
|
116
|
+
import * as darray from './array.js';
|
|
117
|
+
import * as traits from '../traits.js';
|
|
118
|
+
import * as s from '../schema.js';
|
|
119
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["node.js"],"names":[],"mappings":"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"}
|
package/delta/node.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import * as traits from '../traits.js'
|
|
2
|
+
import * as dabstract from './abstract.js'
|
|
3
|
+
import * as darray from './array.js'
|
|
4
|
+
import * as dmap from './map.js'
|
|
5
|
+
import * as s from '../schema.js'
|
|
6
|
+
import * as error from '../error.js'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @template {string|undefined} [NodeName=string]
|
|
10
|
+
* @template {{[key:string]:any}} [Attrs={[key:string]:any}]
|
|
11
|
+
* @template [Children=any]
|
|
12
|
+
* @template {boolean} [WithText=true]
|
|
13
|
+
*/
|
|
14
|
+
export class DeltaNode extends dabstract.AbstractDelta {
|
|
15
|
+
/**
|
|
16
|
+
* @param {NodeName} nodeName
|
|
17
|
+
* @param {dmap.DeltaMap<Attrs>} attributes
|
|
18
|
+
* @param {darray.DeltaArray<Children,WithText>} children
|
|
19
|
+
*/
|
|
20
|
+
constructor (nodeName, attributes, children) {
|
|
21
|
+
super()
|
|
22
|
+
this.name = nodeName
|
|
23
|
+
/**
|
|
24
|
+
* @type {dmap.DeltaMap<Attrs>}
|
|
25
|
+
*/
|
|
26
|
+
this.attributes = /** @type {any} */ (attributes)
|
|
27
|
+
/**
|
|
28
|
+
* @type {darray.DeltaArray<Children,WithText>}
|
|
29
|
+
*/
|
|
30
|
+
this.children = /** @type {any} */ (children)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
isEmpty () {
|
|
34
|
+
return this.children.isEmpty() && this.attributes.isEmpty()
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @return {this}
|
|
39
|
+
*/
|
|
40
|
+
clone () {
|
|
41
|
+
return /** @type {this} */ (new DeltaNode(this.name, this.attributes.clone(), this.children.clone()))
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @param {(WithText extends true ? string : never) | Array<Children>} insert
|
|
46
|
+
*/
|
|
47
|
+
insert (insert) {
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
this.children.insert(insert)
|
|
50
|
+
return this
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @template {keyof Attrs} K
|
|
55
|
+
* @param {K} key
|
|
56
|
+
* @param {Attrs[K]} newVal
|
|
57
|
+
* @param {Attrs[K]|undefined} prevVal
|
|
58
|
+
* @param {import('./abstract.js').Attribution?} attribution
|
|
59
|
+
*/
|
|
60
|
+
set (key, newVal, prevVal, attribution) {
|
|
61
|
+
this.attributes.set(key, newVal, prevVal, attribution)
|
|
62
|
+
return this
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @param {import('./abstract.js').Attribution?} attribution
|
|
67
|
+
* @param {Partial<Attrs>} kv
|
|
68
|
+
*/
|
|
69
|
+
setMany (kv, attribution = null) {
|
|
70
|
+
this.attributes.setMany(kv, attribution)
|
|
71
|
+
return this
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @param {dabstract.AbstractDelta} other
|
|
76
|
+
*/
|
|
77
|
+
apply (other) {
|
|
78
|
+
if ($nodeAny.check(other)) {
|
|
79
|
+
// @ts-ignore
|
|
80
|
+
this.attributes.apply(other.attributes)
|
|
81
|
+
// @ts-ignore
|
|
82
|
+
this.children.apply(other.children)
|
|
83
|
+
} else if (dmap.$mapAny.check(other)) {
|
|
84
|
+
// @ts-ignore
|
|
85
|
+
this.attributes.apply(other)
|
|
86
|
+
} else if (darray.$arrayAny.check(other)) {
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
this.children.apply(other)
|
|
89
|
+
} else {
|
|
90
|
+
error.unexpectedCase()
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
toJSON () {
|
|
95
|
+
return {
|
|
96
|
+
name: this.name,
|
|
97
|
+
attributes: this.attributes.toJSON(),
|
|
98
|
+
children: this.children.toJSON()
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* @return {DeltaNode<NodeName, Attrs, Children, WithText>}
|
|
104
|
+
*/
|
|
105
|
+
done () {
|
|
106
|
+
/** @type {darray.DeltaArray<any>} */ (this.children).done()
|
|
107
|
+
;/** @type {dmap.DeltaMap<any>} */ (this.attributes).done()
|
|
108
|
+
return /** @type {any} */ (this)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @param {DeltaNode<NodeName,Partial<Attrs>,Children,WithText>} other
|
|
113
|
+
*/
|
|
114
|
+
[traits.EqualityTraitSymbol] (other) {
|
|
115
|
+
return this.name === other.name && this.children[traits.EqualityTraitSymbol](other.children) && this.attributes[traits.EqualityTraitSymbol](other.attributes)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @template {string|undefined} [NodeName=string]
|
|
121
|
+
* @template {{[key:string]:any} | dmap.DeltaMap<any>} [Attrs={[key:string]:any}]
|
|
122
|
+
* @template {Array<any> | string | darray.DeltaArray<any,any>} [Children=Array<any>]
|
|
123
|
+
* @param {NodeName} nodeName
|
|
124
|
+
* @param {Attrs} [attributes]
|
|
125
|
+
* @param {Children} [children]
|
|
126
|
+
* @return {DeltaNode<NodeName,Attrs extends dmap.DeltaMap<infer AttrsDef> ? AttrsDef : Attrs,Children extends Array<infer ChildTypes> ? ChildTypes : (Children extends darray.DeltaArray<infer ChildTypes,any> ? ChildTypes : never)>}
|
|
127
|
+
*/
|
|
128
|
+
export const node = (nodeName, attributes, children) =>
|
|
129
|
+
new DeltaNode(
|
|
130
|
+
nodeName,
|
|
131
|
+
attributes == null
|
|
132
|
+
? dmap.map()
|
|
133
|
+
: (dmap.$mapAny.check(attributes)
|
|
134
|
+
? /** @type {dmap.DeltaMap<any>} */ (attributes)
|
|
135
|
+
: dmap.map().setMany(/** @type {any} */ (attributes))
|
|
136
|
+
),
|
|
137
|
+
children == null
|
|
138
|
+
? darray.array()
|
|
139
|
+
: (darray.$arrayAny.check(children)
|
|
140
|
+
? /** @type {darray.DeltaArray<any>} */ (children)
|
|
141
|
+
: darray.array().insert(children)
|
|
142
|
+
)
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @template {string} NodeName
|
|
147
|
+
* @template {{ [key:string]: any }} Attributes
|
|
148
|
+
* @template Children
|
|
149
|
+
* @template {boolean} WithText
|
|
150
|
+
* @typedef {DeltaNode<NodeName, Attributes, Children | RecursiveDeltaNode<NodeName,Attributes,Children,WithText>, WithText>} RecursiveDeltaNode
|
|
151
|
+
*/
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* @template {string} NodeName
|
|
155
|
+
* @template {{ [key:string]: any }} Attributes
|
|
156
|
+
* @template Children
|
|
157
|
+
* @template {boolean} [Recursive=false]
|
|
158
|
+
* @template {boolean} [WithText=false]
|
|
159
|
+
* @param {s.Schema<NodeName>} $nodeName
|
|
160
|
+
* @param {s.Schema<Children>} $children
|
|
161
|
+
* @param {s.Schema<Attributes>} $attributes
|
|
162
|
+
* @param {object} [opts]
|
|
163
|
+
* @param {Recursive} [opts.recursive]
|
|
164
|
+
* @param {WithText} [opts.withText]
|
|
165
|
+
* @return {s.Schema<Recursive extends true ? RecursiveDeltaNode<NodeName, Partial<Attributes>, Children, WithText> : DeltaNode<NodeName, Partial<Attributes>, Children, withText>>}
|
|
166
|
+
*/
|
|
167
|
+
export const $node = ($nodeName, $attributes, $children, { recursive, withText } = {}) => {
|
|
168
|
+
/**
|
|
169
|
+
* @type {s.Schema<darray.DeltaArray<any,any>>}
|
|
170
|
+
*/
|
|
171
|
+
let $dchildren = darray.$array($children)
|
|
172
|
+
const $dattrs = dmap.$map($attributes)
|
|
173
|
+
const $nodeSchema = /** @type {s.Schema<DeltaNode<NodeName, any, any, any>>} */ (s.$instanceOf(DeltaNode, o => $nodeName.check(o.name) && $dchildren.check(o.children) && $dattrs.check(o.attributes)))
|
|
174
|
+
if (recursive) {
|
|
175
|
+
$dchildren = darray.$array(s.$union($children, $nodeSchema), withText)
|
|
176
|
+
}
|
|
177
|
+
return /** @type {any} */ ($nodeSchema)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* @type {s.Schema<DeltaNode<any,{[key:string]: any},any,any>>}
|
|
182
|
+
*/
|
|
183
|
+
export const $nodeAny = s.$constructedBy(DeltaNode)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.test.d.ts","sourceRoot":"","sources":["node.test.js"],"names":[],"mappings":"AAOO,mCAFI,CAAC,CAAC,QAAQ,QAgCpB;AAEM,0CAqBN;mBA5DkB,cAAc"}
|