lib0 0.2.115-4 → 0.2.115-5
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/coverage/tmp/coverage-42121-1764767245409-0.json +1 -0
- package/coverage/tmp/{coverage-32703-1763495370274-0.json → coverage-42122-1764767192180-0.json} +1 -1
- package/delta/binding.d.ts +11 -9
- package/delta/binding.d.ts.map +1 -1
- package/delta/binding.js +5 -2
- package/delta/binding.test.d.ts.map +1 -1
- package/delta/delta-pitch.test.d.ts +5 -0
- package/delta/delta-pitch.test.d.ts.map +1 -0
- package/delta/{d2.d.ts → delta.d.ts} +117 -34
- package/delta/delta.d.ts.map +1 -0
- package/delta/{d2.js → delta.js} +244 -53
- package/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
- package/delta/delta.test.d.ts.map +1 -0
- package/delta/t3.test.d.ts +1 -1
- package/delta/t3.test.d.ts.map +1 -1
- package/dist/array.cjs +17 -60
- package/dist/array.cjs.map +1 -1
- package/dist/binding.cjs +114 -28
- package/dist/binding.cjs.map +1 -1
- package/dist/{broadcastchannel-d0c108a2.cjs → broadcastchannel-94897809.cjs} +2 -2
- package/dist/{broadcastchannel-d0c108a2.cjs.map → broadcastchannel-94897809.cjs.map} +1 -1
- package/dist/broadcastchannel.cjs +6 -6
- package/dist/{buffer-7f6fa8fa.cjs → buffer-8d110bf4.cjs} +2 -2
- package/dist/{buffer-7f6fa8fa.cjs.map → buffer-8d110bf4.cjs.map} +1 -1
- package/dist/buffer.cjs +5 -5
- package/dist/cache.cjs +3 -3
- package/dist/component.cjs +12 -8
- package/dist/component.cjs.map +1 -1
- package/dist/delta/binding.d.ts +11 -9
- package/dist/delta/binding.d.ts.map +1 -1
- package/dist/delta/binding.test.d.ts.map +1 -1
- package/dist/delta/delta-pitch.test.d.ts +5 -0
- package/dist/delta/delta-pitch.test.d.ts.map +1 -0
- package/dist/delta/{d2.d.ts → delta.d.ts} +117 -34
- package/dist/delta/delta.d.ts.map +1 -0
- package/dist/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
- package/dist/delta/delta.test.d.ts.map +1 -0
- package/dist/delta/t3.test.d.ts +1 -1
- package/dist/delta/t3.test.d.ts.map +1 -1
- package/dist/{d2.cjs → delta.cjs} +253 -58
- package/dist/delta.cjs.map +1 -0
- package/dist/{diff-1832cb43.cjs → diff-dc7bdc65.cjs} +2 -2
- package/dist/{diff-1832cb43.cjs.map → diff-dc7bdc65.cjs.map} +1 -1
- package/dist/diff.cjs +4 -4
- package/dist/{dom-f5047a64.cjs → dom-cad267af.cjs} +1 -1
- package/dist/{dom-f5047a64.cjs.map → dom-cad267af.cjs.map} +1 -1
- package/dist/dom.cjs +12 -5
- package/dist/dom.cjs.map +1 -1
- package/dist/{environment-90227ead.cjs → environment-98bcf64f.cjs} +2 -2
- package/dist/{environment-90227ead.cjs.map → environment-98bcf64f.cjs.map} +1 -1
- package/dist/environment.cjs +4 -4
- package/dist/equality.cjs +34 -0
- package/dist/equality.cjs.map +1 -0
- package/dist/fingerprint.cjs +44 -0
- package/dist/fingerprint.cjs.map +1 -0
- package/dist/{function-e7d18feb.cjs → function-b4e49016.cjs} +6 -6
- package/dist/function-b4e49016.cjs.map +1 -0
- package/dist/function.cjs +3 -3
- package/dist/index.cjs +9 -9
- package/dist/indexeddbV2.cjs +2 -2
- package/dist/jwt.cjs +5 -5
- package/dist/list.cjs +18 -5
- package/dist/list.cjs.map +1 -1
- package/dist/list.d.ts +9 -2
- package/dist/list.d.ts.map +1 -1
- package/dist/list.test.d.ts.map +1 -1
- package/dist/logging.cjs +11 -5
- package/dist/logging.cjs.map +1 -1
- package/dist/logging.common.cjs +4 -4
- package/dist/logging.node.cjs +4 -4
- package/dist/map.cjs +7 -314
- package/dist/map.cjs.map +1 -1
- package/dist/{object-18980796.cjs → object-dec41ef9.cjs} +3 -3
- package/dist/object-dec41ef9.cjs.map +1 -0
- package/dist/object.cjs +2 -2
- package/dist/object.d.ts.map +1 -1
- package/dist/performance.node.cjs +3 -3
- package/dist/pledge.cjs +2 -2
- package/dist/{prng-99204216.cjs → prng-aa81e812.cjs} +2 -2
- package/dist/{prng-99204216.cjs.map → prng-aa81e812.cjs.map} +1 -1
- package/dist/prng.cjs +6 -6
- package/dist/rabin-gf2-polynomial.cjs +5 -5
- package/dist/rabin-uncached.cjs +5 -5
- package/dist/rabin.cjs +5 -5
- package/dist/schema.cjs +202 -22
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.ts +86 -29
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.test.d.ts +4 -0
- package/dist/schema.test.d.ts.map +1 -1
- package/dist/testing.cjs +9 -9
- package/dist/testing.cjs.map +1 -1
- package/dist/{traits.d.ts → trait/equality.d.ts} +1 -1
- package/dist/trait/equality.d.ts.map +1 -0
- package/dist/trait/fingerprint.d.ts +13 -0
- package/dist/trait/fingerprint.d.ts.map +1 -0
- package/dist/trait/traits.d.ts +3 -0
- package/dist/trait/traits.d.ts.map +1 -0
- package/dist/trait/traits.test.d.ts +5 -0
- package/dist/trait/traits.test.d.ts.map +1 -0
- package/dist/traits.cjs +23 -26
- package/dist/traits.cjs.map +1 -1
- package/dist/url.cjs +2 -2
- package/function.js +4 -4
- package/list.d.ts +9 -2
- package/list.d.ts.map +1 -1
- package/list.js +17 -3
- package/list.test.d.ts.map +1 -1
- package/object.d.ts.map +1 -1
- package/object.js +2 -2
- package/package.json +8 -10
- package/schema.d.ts +86 -29
- package/schema.d.ts.map +1 -1
- package/schema.js +191 -20
- package/schema.test.d.ts +4 -0
- package/schema.test.d.ts.map +1 -1
- package/test.html +2 -4
- package/test.js +7 -13
- package/testing.js +3 -3
- package/{traits.d.ts → trait/equality.d.ts} +1 -1
- package/trait/equality.d.ts.map +1 -0
- package/trait/fingerprint.d.ts +13 -0
- package/trait/fingerprint.d.ts.map +1 -0
- package/trait/fingerprint.js +21 -0
- package/trait/traits.d.ts +3 -0
- package/trait/traits.d.ts.map +1 -0
- package/trait/traits.js +2 -0
- package/trait/traits.test.d.ts +5 -0
- package/{traits.test.d.ts.map → trait/traits.test.d.ts.map} +1 -1
- package/delta/abstract-array.d.ts +0 -166
- package/delta/abstract-array.d.ts.map +0 -1
- package/delta/abstract-array.js +0 -421
- package/delta/abstract.d.ts +0 -69
- package/delta/abstract.d.ts.map +0 -1
- package/delta/abstract.js +0 -102
- package/delta/array.d.ts +0 -23
- package/delta/array.d.ts.map +0 -1
- package/delta/array.js +0 -45
- package/delta/array.test.d.ts +0 -2
- package/delta/array.test.d.ts.map +0 -1
- package/delta/d2.d.ts.map +0 -1
- package/delta/d2.test.d.ts.map +0 -1
- package/delta/index.d.ts +0 -14
- package/delta/index.d.ts.map +0 -1
- package/delta/index.js +0 -79
- package/delta/map.d.ts +0 -226
- package/delta/map.d.ts.map +0 -1
- package/delta/map.js +0 -304
- package/delta/node.d.ts +0 -117
- package/delta/node.d.ts.map +0 -1
- package/delta/node.js +0 -183
- package/delta/node.test.d.ts +0 -4
- package/delta/node.test.d.ts.map +0 -1
- package/delta/ops.d.ts +0 -464
- package/delta/ops.d.ts.map +0 -1
- package/delta/ops.js +0 -544
- package/delta/t2.d.ts +0 -184
- package/delta/t2.d.ts.map +0 -1
- package/delta/t2.js +0 -890
- package/delta/text.d.ts +0 -43
- package/delta/text.d.ts.map +0 -1
- package/delta/text.js +0 -54
- package/delta/text.test.d.ts +0 -6
- package/delta/text.test.d.ts.map +0 -1
- package/delta/transformer.d.ts +0 -164
- package/delta/transformer.d.ts.map +0 -1
- package/delta/transformer.js +0 -888
- package/delta/transformer.test.d.ts +0 -13
- package/delta/transformer.test.d.ts.map +0 -1
- package/delta/value.d.ts +0 -84
- package/delta/value.d.ts.map +0 -1
- package/delta/value.js +0 -168
- package/dist/abstract-array.cjs +0 -433
- package/dist/abstract-array.cjs.map +0 -1
- package/dist/abstract.cjs +0 -122
- package/dist/abstract.cjs.map +0 -1
- package/dist/array2.cjs +0 -26
- package/dist/array2.cjs.map +0 -1
- package/dist/d2.cjs.map +0 -1
- package/dist/delta/abstract-array.d.ts +0 -166
- package/dist/delta/abstract-array.d.ts.map +0 -1
- package/dist/delta/abstract.d.ts +0 -69
- package/dist/delta/abstract.d.ts.map +0 -1
- package/dist/delta/array.d.ts +0 -23
- package/dist/delta/array.d.ts.map +0 -1
- package/dist/delta/array.test.d.ts +0 -2
- package/dist/delta/array.test.d.ts.map +0 -1
- package/dist/delta/d2.d.ts.map +0 -1
- package/dist/delta/d2.test.d.ts.map +0 -1
- package/dist/delta/index.d.ts +0 -14
- package/dist/delta/index.d.ts.map +0 -1
- package/dist/delta/map.d.ts +0 -226
- package/dist/delta/map.d.ts.map +0 -1
- package/dist/delta/node.d.ts +0 -117
- package/dist/delta/node.d.ts.map +0 -1
- package/dist/delta/node.test.d.ts +0 -4
- package/dist/delta/node.test.d.ts.map +0 -1
- package/dist/delta/ops.d.ts +0 -464
- package/dist/delta/ops.d.ts.map +0 -1
- package/dist/delta/t2.d.ts +0 -184
- package/dist/delta/t2.d.ts.map +0 -1
- package/dist/delta/text.d.ts +0 -43
- package/dist/delta/text.d.ts.map +0 -1
- package/dist/delta/text.test.d.ts +0 -6
- package/dist/delta/text.test.d.ts.map +0 -1
- package/dist/delta/transformer.d.ts +0 -164
- package/dist/delta/transformer.d.ts.map +0 -1
- package/dist/delta/transformer.test.d.ts +0 -13
- package/dist/delta/transformer.test.d.ts.map +0 -1
- package/dist/delta/value.d.ts +0 -84
- package/dist/delta/value.d.ts.map +0 -1
- package/dist/function-e7d18feb.cjs.map +0 -1
- package/dist/index2.cjs +0 -71
- package/dist/index2.cjs.map +0 -1
- package/dist/map2.cjs +0 -15
- package/dist/map2.cjs.map +0 -1
- package/dist/node.cjs +0 -206
- package/dist/node.cjs.map +0 -1
- package/dist/object-18980796.cjs.map +0 -1
- package/dist/ops.cjs +0 -575
- package/dist/ops.cjs.map +0 -1
- package/dist/t2.cjs +0 -932
- package/dist/t2.cjs.map +0 -1
- package/dist/text.cjs +0 -79
- package/dist/text.cjs.map +0 -1
- package/dist/traits.d.ts.map +0 -1
- package/dist/traits.test.d.ts +0 -4
- package/dist/traits.test.d.ts.map +0 -1
- package/dist/transformer.cjs +0 -930
- package/dist/transformer.cjs.map +0 -1
- package/dist/value.cjs +0 -187
- package/dist/value.cjs.map +0 -1
- package/traits.d.ts.map +0 -1
- package/traits.test.d.ts +0 -4
- /package/{traits.js → trait/equality.js} +0 -0
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export function testBasics(_tc: t.TestCase): void;
|
|
2
|
-
export function testMapBasics(_tc: t.TestCase): void;
|
|
3
|
-
export function testMapQuery(_tc: t.TestCase): void;
|
|
4
|
-
export function testMappingTransformer(): void;
|
|
5
|
-
export function testQuery(): void;
|
|
6
|
-
export function testTransformerCreateUtility(): void;
|
|
7
|
-
export function testStaticContent(): void;
|
|
8
|
-
export function testFixedArray(): void;
|
|
9
|
-
export function testNode(): void;
|
|
10
|
-
export function testNodeTransformer(): void;
|
|
11
|
-
export function testNodeTransformerFromNode(): void;
|
|
12
|
-
import * as t from '../testing.js';
|
|
13
|
-
//# sourceMappingURL=transformer.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.test.d.ts","sourceRoot":"","sources":["transformer.test.js"],"names":[],"mappings":"AAwDO,gCAFI,CAAC,CAAC,QAAQ,QAgBpB;AAKM,mCAFI,CAAC,CAAC,QAAQ,QAcpB;AAKM,kCAFI,CAAC,CAAC,QAAQ,QAcpB;AAEM,+CAGN;AAEM,kCAMN;AAEM,qDAYN;AAEM,0CAgCN;AAEM,uCAKN;AAEM,iCAMN;AAEM,4CAYN;AAEM,oDAQN;mBA5MkB,eAAe"}
|
package/delta/value.d.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @template {any} Vals
|
|
3
|
-
* @typedef {Vals extends AbstractDelta ? ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>|ops.MapModifyOp<Extract<Vals,AbstractDelta>,''> : ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>} ValueOpsFromValues
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @template Vals
|
|
7
|
-
* @extends {AbstractDelta}
|
|
8
|
-
*/
|
|
9
|
-
export class DeltaValue<Vals> extends AbstractDelta {
|
|
10
|
-
/**
|
|
11
|
-
* @param {s.Schema<Vals>} $vals
|
|
12
|
-
*/
|
|
13
|
-
constructor($vals: s.Schema<Vals>);
|
|
14
|
-
$vals: s.Schema<Vals>;
|
|
15
|
-
/**
|
|
16
|
-
* @type {ValueOpsFromValues<Vals>?}
|
|
17
|
-
*/
|
|
18
|
-
change: ValueOpsFromValues<Vals> | null;
|
|
19
|
-
get(): Vals | undefined;
|
|
20
|
-
/**
|
|
21
|
-
* @param {DeltaValue<Vals>} other
|
|
22
|
-
* @return {boolean}
|
|
23
|
-
*/
|
|
24
|
-
equals(other: DeltaValue<Vals>): boolean;
|
|
25
|
-
/**
|
|
26
|
-
* @param {DeltaValue<Vals>} other
|
|
27
|
-
*/
|
|
28
|
-
[traits.EqualityTraitSymbol](other: DeltaValue<Vals>): boolean;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* @template Vals
|
|
32
|
-
* @extends DeltaValue<Vals>
|
|
33
|
-
*/
|
|
34
|
-
export class DeltaValueBuilder<Vals> extends DeltaValue<Vals> {
|
|
35
|
-
/**
|
|
36
|
-
* @param {Extract<Vals, AbstractDelta>} delta
|
|
37
|
-
*/
|
|
38
|
-
modify(delta: Extract<Vals, AbstractDelta>): this;
|
|
39
|
-
/**
|
|
40
|
-
* @param {Vals} newVal
|
|
41
|
-
* @param {Vals|undefined} prevValue
|
|
42
|
-
* @param {import('./abstract.js').Attribution?} attribution
|
|
43
|
-
*/
|
|
44
|
-
set(newVal: Vals, prevValue?: Vals | undefined, attribution?: import("./abstract.js").Attribution | null): this;
|
|
45
|
-
/**
|
|
46
|
-
* @param {Vals|undefined} prevValue
|
|
47
|
-
* @param {import('./abstract.js').Attribution?} attribution
|
|
48
|
-
*/
|
|
49
|
-
delete(prevValue?: Vals | undefined, attribution?: import("./abstract.js").Attribution | null): this;
|
|
50
|
-
/**
|
|
51
|
-
*
|
|
52
|
-
* - insert vs delete ⇒ insert takes precedence
|
|
53
|
-
* - insert vs modify ⇒ insert takes precedence
|
|
54
|
-
* - insert vs insert ⇒ priority decides
|
|
55
|
-
* - delete vs modify ⇒ delete takes precedence
|
|
56
|
-
* - delete vs delete ⇒ current delete op is removed because item has already been deleted
|
|
57
|
-
* - modify vs modify ⇒ rebase using priority
|
|
58
|
-
*
|
|
59
|
-
* @param {DeltaValueBuilder<Vals>} other
|
|
60
|
-
* @param {boolean} priority
|
|
61
|
-
*/
|
|
62
|
-
rebase(other: DeltaValueBuilder<Vals>, priority: boolean): void;
|
|
63
|
-
/**
|
|
64
|
-
* @param {DeltaValue<Vals>} other
|
|
65
|
-
*/
|
|
66
|
-
apply(other: DeltaValue<Vals>): void;
|
|
67
|
-
/**
|
|
68
|
-
* @return {this}
|
|
69
|
-
*/
|
|
70
|
-
clone(): this;
|
|
71
|
-
done(): DeltaValue<Vals>;
|
|
72
|
-
}
|
|
73
|
-
export function value<Vals = any>($vals?: s.Schema<Vals>): DeltaValueBuilder<Vals>;
|
|
74
|
-
export function $value<Vals extends unknown>($vals: s.Schema<Vals>): s.Schema<DeltaValue<Vals>>;
|
|
75
|
-
/**
|
|
76
|
-
* @type {s.Schema<DeltaValue<any>>}
|
|
77
|
-
*/
|
|
78
|
-
export const $valueAny: s.Schema<DeltaValue<any>>;
|
|
79
|
-
export type ValueOpsFromValues<Vals extends unknown> = Vals extends AbstractDelta ? ops.MapInsertOp<Vals, ""> | ops.MapDeleteOp<Vals, ""> | ops.MapModifyOp<Extract<Vals, AbstractDelta>, ""> : ops.MapInsertOp<Vals, ""> | ops.MapDeleteOp<Vals, "">;
|
|
80
|
-
import { AbstractDelta } from './abstract.js';
|
|
81
|
-
import * as s from '../schema.js';
|
|
82
|
-
import * as traits from '../traits.js';
|
|
83
|
-
import * as ops from './ops.js';
|
|
84
|
-
//# sourceMappingURL=value.d.ts.map
|
package/delta/value.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["value.js"],"names":[],"mappings":"AAMA;;;GAGG;AAEH;;;GAGG;AACH,wBAHa,IAAI;IAIf;;OAEG;IACH,mBAFW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EASxB;IALC,sBAAkB;IAClB;;OAEG;IACH,QAFU,kBAAkB,CAAC,IAAI,CAAC,OAAC,CAEjB;IAGpB,wBAEC;IAED;;;OAGG;IACH,cAHW,UAAU,CAAC,IAAI,CAAC,GACf,OAAO,CAIlB;IAED;;OAEG;IACH,oCAFW,UAAU,CAAC,IAAI,CAAC,WAI1B;CACF;AAED;;;GAGG;AACH,+BAHa,IAAI;IAIf;;OAEG;IACH,cAFW,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,QAKtC;IAED;;;;OAIG;IACH,YAJW,IAAI,cACJ,IAAI,GAAC,SAAS,gBACd,OAAO,eAAe,EAAE,WAAW,OAAC,QAK9C;IAED;;;OAGG;IACH,mBAHW,IAAI,GAAC,SAAS,gBACd,OAAO,eAAe,EAAE,WAAW,OAAC,QAK9C;IAED;;;;;;;;;;;OAWG;IACH,cAHW,iBAAiB,CAAC,IAAI,CAAC,YACvB,OAAO,QAuBjB;IAED;;OAEG;IACH,aAFW,UAAU,CAAC,IAAI,CAAC,QAgB1B;IAED;;OAEG;IACH,SAFY,IAAI,CAQf;IAED,QACoB,UAAU,CAAC,IAAI,CAAC,CACnC;CACF;AAOM,sBAJO,IAAI,gBACP,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GACb,iBAAiB,CAAC,IAAI,CAAC,CAEuD;AAOnF,uBAJY,IAAI,yBACZ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GACb,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAEoE;AAE1G;;GAEG;AACH,wBAFU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAEe;+BAhK/B,IAAI,oBACV,IAAI,SAAS,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,GAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,GAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAC,aAAa,CAAC,EAAC,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC,GAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC,EAAE,CAAC;8BAJjK,eAAe;mBAF1B,cAAc;wBADT,cAAc;qBAEjB,UAAU"}
|
package/delta/value.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import * as fun from '../function.js'
|
|
2
|
-
import * as traits from '../traits.js'
|
|
3
|
-
import * as s from '../schema.js'
|
|
4
|
-
import * as ops from './ops.js'
|
|
5
|
-
import { AbstractDelta } from './abstract.js'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @template {any} Vals
|
|
9
|
-
* @typedef {Vals extends AbstractDelta ? ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>|ops.MapModifyOp<Extract<Vals,AbstractDelta>,''> : ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>} ValueOpsFromValues
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @template Vals
|
|
14
|
-
* @extends {AbstractDelta}
|
|
15
|
-
*/
|
|
16
|
-
export class DeltaValue extends AbstractDelta {
|
|
17
|
-
/**
|
|
18
|
-
* @param {s.Schema<Vals>} $vals
|
|
19
|
-
*/
|
|
20
|
-
constructor ($vals) {
|
|
21
|
-
super()
|
|
22
|
-
this.$vals = $vals
|
|
23
|
-
/**
|
|
24
|
-
* @type {ValueOpsFromValues<Vals>?}
|
|
25
|
-
*/
|
|
26
|
-
this.change = null
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
get () {
|
|
30
|
-
return ops.$insertOp.check(this.change) ? this.change.value : undefined
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @param {DeltaValue<Vals>} other
|
|
35
|
-
* @return {boolean}
|
|
36
|
-
*/
|
|
37
|
-
equals (other) {
|
|
38
|
-
return this[traits.EqualityTraitSymbol](other)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @param {DeltaValue<Vals>} other
|
|
43
|
-
*/
|
|
44
|
-
[traits.EqualityTraitSymbol] (other) {
|
|
45
|
-
return fun.equalityDeep(this.change, other.change)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* @template Vals
|
|
51
|
-
* @extends DeltaValue<Vals>
|
|
52
|
-
*/
|
|
53
|
-
export class DeltaValueBuilder extends DeltaValue {
|
|
54
|
-
/**
|
|
55
|
-
* @param {Extract<Vals, AbstractDelta>} delta
|
|
56
|
-
*/
|
|
57
|
-
modify (delta) {
|
|
58
|
-
this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapModifyOp('', delta))
|
|
59
|
-
return this
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* @param {Vals} newVal
|
|
64
|
-
* @param {Vals|undefined} prevValue
|
|
65
|
-
* @param {import('./abstract.js').Attribution?} attribution
|
|
66
|
-
*/
|
|
67
|
-
set (newVal, prevValue = undefined, attribution = null) {
|
|
68
|
-
this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapInsertOp('', this.$vals.cast(newVal), prevValue && this.$vals.cast(prevValue), attribution))
|
|
69
|
-
return this
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* @param {Vals|undefined} prevValue
|
|
74
|
-
* @param {import('./abstract.js').Attribution?} attribution
|
|
75
|
-
*/
|
|
76
|
-
delete (prevValue = undefined, attribution = null) {
|
|
77
|
-
this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapDeleteOp('', prevValue && this.$vals.cast(prevValue), attribution))
|
|
78
|
-
return this
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
*
|
|
83
|
-
* - insert vs delete ⇒ insert takes precedence
|
|
84
|
-
* - insert vs modify ⇒ insert takes precedence
|
|
85
|
-
* - insert vs insert ⇒ priority decides
|
|
86
|
-
* - delete vs modify ⇒ delete takes precedence
|
|
87
|
-
* - delete vs delete ⇒ current delete op is removed because item has already been deleted
|
|
88
|
-
* - modify vs modify ⇒ rebase using priority
|
|
89
|
-
*
|
|
90
|
-
* @param {DeltaValueBuilder<Vals>} other
|
|
91
|
-
* @param {boolean} priority
|
|
92
|
-
*/
|
|
93
|
-
rebase (other, priority) {
|
|
94
|
-
const c = this.change
|
|
95
|
-
if (ops.$insertOp.check(c)) {
|
|
96
|
-
if (other.change?.constructor === ops.MapInsertOp && !priority) {
|
|
97
|
-
this.change = null
|
|
98
|
-
}
|
|
99
|
-
} else if (ops.$deleteOp.check(c)) {
|
|
100
|
-
const otherOp = other.change
|
|
101
|
-
if (otherOp?.constructor === ops.MapInsertOp) {
|
|
102
|
-
this.change = null
|
|
103
|
-
}
|
|
104
|
-
} else if (ops.$modifyOp.check(c)) {
|
|
105
|
-
const otherOp = other.change
|
|
106
|
-
if (otherOp == null) {
|
|
107
|
-
// nop
|
|
108
|
-
} else if (otherOp.constructor === ops.MapModifyOp) {
|
|
109
|
-
c.value.rebase(otherOp.value, priority)
|
|
110
|
-
} else {
|
|
111
|
-
this.change = null
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* @param {DeltaValue<Vals>} other
|
|
118
|
-
*/
|
|
119
|
-
apply (other) {
|
|
120
|
-
const oop = other.change
|
|
121
|
-
const c = this.change
|
|
122
|
-
if (ops.$modifyOp.check(oop)) {
|
|
123
|
-
if (c != null && (ops.$modifyOp.check(c) || ops.$insertOp.check(c)) && $valueAny.check(c.value)) {
|
|
124
|
-
/** @type {DeltaValue<any>} */ (c.value).apply(oop.value)
|
|
125
|
-
} else {
|
|
126
|
-
// then this is a simple modify
|
|
127
|
-
this.change = oop
|
|
128
|
-
}
|
|
129
|
-
} else if (oop != null) {
|
|
130
|
-
oop.prevValue = c?.value
|
|
131
|
-
this.change = oop
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* @return {this}
|
|
137
|
-
*/
|
|
138
|
-
clone () {
|
|
139
|
-
const d = /** @type {this} */ (new DeltaValueBuilder(this.$vals))
|
|
140
|
-
d.change = /** @type {ValueOpsFromValues<Vals>} */ (this.change?.clone())
|
|
141
|
-
d.origin = this.origin
|
|
142
|
-
d.isDiff = this.isDiff
|
|
143
|
-
return d
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
done () {
|
|
147
|
-
return /** @type {DeltaValue<Vals>} */ (this)
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* @template [Vals=any]
|
|
153
|
-
* @param {s.Schema<Vals>} $vals
|
|
154
|
-
* @return {DeltaValueBuilder<Vals>}
|
|
155
|
-
*/
|
|
156
|
-
export const value = ($vals = s.$any) => /** @type {any} */ (new DeltaValueBuilder($vals))
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* @template {any} Vals
|
|
160
|
-
* @param {s.Schema<Vals>} $vals
|
|
161
|
-
* @return {s.Schema<DeltaValue<Vals>>}
|
|
162
|
-
*/
|
|
163
|
-
export const $value = $vals => /** @type {any} */ (s.$instanceOf(DeltaValue, o => $vals.extends(o.$vals)))
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* @type {s.Schema<DeltaValue<any>>}
|
|
167
|
-
*/
|
|
168
|
-
export const $valueAny = s.$instanceOf(DeltaValue)
|