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
|
@@ -0,0 +1,13 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
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)
|