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/dist/node.cjs
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var traits = require('./traits.cjs');
|
|
6
|
+
var abstract = require('./abstract.cjs');
|
|
7
|
+
var array = require('./array.cjs');
|
|
8
|
+
var map = require('./map.cjs');
|
|
9
|
+
var schema = require('./schema.cjs');
|
|
10
|
+
var error = require('./error-0c1f634f.cjs');
|
|
11
|
+
require('./object-18980796.cjs');
|
|
12
|
+
require('./array-78849c95.cjs');
|
|
13
|
+
require('./set-5b47859e.cjs');
|
|
14
|
+
require('./environment-90227ead.cjs');
|
|
15
|
+
require('./map-24d263c0.cjs');
|
|
16
|
+
require('./string-fddc5f8b.cjs');
|
|
17
|
+
require('./conditions-f5c0c102.cjs');
|
|
18
|
+
require('./storage.cjs');
|
|
19
|
+
require('./function-e7d18feb.cjs');
|
|
20
|
+
require('./abstract-array.cjs');
|
|
21
|
+
require('./ops.cjs');
|
|
22
|
+
require('./list.cjs');
|
|
23
|
+
require('./math-96d5e8c4.cjs');
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @template {string|undefined} [NodeName=string]
|
|
27
|
+
* @template {{[key:string]:any}} [Attrs={[key:string]:any}]
|
|
28
|
+
* @template [Children=any]
|
|
29
|
+
* @template {boolean} [WithText=true]
|
|
30
|
+
*/
|
|
31
|
+
class DeltaNode extends abstract.AbstractDelta {
|
|
32
|
+
/**
|
|
33
|
+
* @param {NodeName} nodeName
|
|
34
|
+
* @param {dmap.DeltaMap<Attrs>} attributes
|
|
35
|
+
* @param {darray.DeltaArray<Children,WithText>} children
|
|
36
|
+
*/
|
|
37
|
+
constructor (nodeName, attributes, children) {
|
|
38
|
+
super();
|
|
39
|
+
this.name = nodeName;
|
|
40
|
+
/**
|
|
41
|
+
* @type {dmap.DeltaMap<Attrs>}
|
|
42
|
+
*/
|
|
43
|
+
this.attributes = /** @type {any} */ (attributes);
|
|
44
|
+
/**
|
|
45
|
+
* @type {darray.DeltaArray<Children,WithText>}
|
|
46
|
+
*/
|
|
47
|
+
this.children = /** @type {any} */ (children);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
isEmpty () {
|
|
51
|
+
return this.children.isEmpty() && this.attributes.isEmpty()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @return {this}
|
|
56
|
+
*/
|
|
57
|
+
clone () {
|
|
58
|
+
return /** @type {this} */ (new DeltaNode(this.name, this.attributes.clone(), this.children.clone()))
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @param {(WithText extends true ? string : never) | Array<Children>} insert
|
|
63
|
+
*/
|
|
64
|
+
insert (insert) {
|
|
65
|
+
// @ts-ignore
|
|
66
|
+
this.children.insert(insert);
|
|
67
|
+
return this
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @template {keyof Attrs} K
|
|
72
|
+
* @param {K} key
|
|
73
|
+
* @param {Attrs[K]} newVal
|
|
74
|
+
* @param {Attrs[K]|undefined} prevVal
|
|
75
|
+
* @param {import('./abstract.js').Attribution?} attribution
|
|
76
|
+
*/
|
|
77
|
+
set (key, newVal, prevVal, attribution) {
|
|
78
|
+
this.attributes.set(key, newVal, prevVal, attribution);
|
|
79
|
+
return this
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @param {import('./abstract.js').Attribution?} attribution
|
|
84
|
+
* @param {Partial<Attrs>} kv
|
|
85
|
+
*/
|
|
86
|
+
setMany (kv, attribution = null) {
|
|
87
|
+
this.attributes.setMany(kv, attribution);
|
|
88
|
+
return this
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @param {dabstract.AbstractDelta} other
|
|
93
|
+
*/
|
|
94
|
+
apply (other) {
|
|
95
|
+
if ($nodeAny.check(other)) {
|
|
96
|
+
// @ts-ignore
|
|
97
|
+
this.attributes.apply(other.attributes);
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
this.children.apply(other.children);
|
|
100
|
+
} else if (map.$mapAny.check(other)) {
|
|
101
|
+
// @ts-ignore
|
|
102
|
+
this.attributes.apply(other);
|
|
103
|
+
} else if (array.$arrayAny.check(other)) {
|
|
104
|
+
// @ts-ignore
|
|
105
|
+
this.children.apply(other);
|
|
106
|
+
} else {
|
|
107
|
+
error.unexpectedCase();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
toJSON () {
|
|
112
|
+
return {
|
|
113
|
+
name: this.name,
|
|
114
|
+
attributes: this.attributes.toJSON(),
|
|
115
|
+
children: this.children.toJSON()
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @return {DeltaNode<NodeName, Attrs, Children, WithText>}
|
|
121
|
+
*/
|
|
122
|
+
done () {
|
|
123
|
+
/** @type {darray.DeltaArray<any>} */ (this.children).done()
|
|
124
|
+
;/** @type {dmap.DeltaMap<any>} */ (this.attributes).done();
|
|
125
|
+
return /** @type {any} */ (this)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @param {DeltaNode<NodeName,Partial<Attrs>,Children,WithText>} other
|
|
130
|
+
*/
|
|
131
|
+
[traits.EqualityTraitSymbol] (other) {
|
|
132
|
+
return this.name === other.name && this.children[traits.EqualityTraitSymbol](other.children) && this.attributes[traits.EqualityTraitSymbol](other.attributes)
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* @template {string|undefined} [NodeName=string]
|
|
138
|
+
* @template {{[key:string]:any} | dmap.DeltaMap<any>} [Attrs={[key:string]:any}]
|
|
139
|
+
* @template {Array<any> | string | darray.DeltaArray<any,any>} [Children=Array<any>]
|
|
140
|
+
* @param {NodeName} nodeName
|
|
141
|
+
* @param {Attrs} [attributes]
|
|
142
|
+
* @param {Children} [children]
|
|
143
|
+
* @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)>}
|
|
144
|
+
*/
|
|
145
|
+
const node = (nodeName, attributes, children) =>
|
|
146
|
+
new DeltaNode(
|
|
147
|
+
nodeName,
|
|
148
|
+
attributes == null
|
|
149
|
+
? map.map()
|
|
150
|
+
: (map.$mapAny.check(attributes)
|
|
151
|
+
? /** @type {dmap.DeltaMap<any>} */ (attributes)
|
|
152
|
+
: map.map().setMany(/** @type {any} */ (attributes))
|
|
153
|
+
),
|
|
154
|
+
children == null
|
|
155
|
+
? array.array()
|
|
156
|
+
: (array.$arrayAny.check(children)
|
|
157
|
+
? /** @type {darray.DeltaArray<any>} */ (children)
|
|
158
|
+
: array.array().insert(children)
|
|
159
|
+
)
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* @template {string} NodeName
|
|
164
|
+
* @template {{ [key:string]: any }} Attributes
|
|
165
|
+
* @template Children
|
|
166
|
+
* @template {boolean} WithText
|
|
167
|
+
* @typedef {DeltaNode<NodeName, Attributes, Children | RecursiveDeltaNode<NodeName,Attributes,Children,WithText>, WithText>} RecursiveDeltaNode
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @template {string} NodeName
|
|
172
|
+
* @template {{ [key:string]: any }} Attributes
|
|
173
|
+
* @template Children
|
|
174
|
+
* @template {boolean} [Recursive=false]
|
|
175
|
+
* @template {boolean} [WithText=false]
|
|
176
|
+
* @param {s.Schema<NodeName>} $nodeName
|
|
177
|
+
* @param {s.Schema<Children>} $children
|
|
178
|
+
* @param {s.Schema<Attributes>} $attributes
|
|
179
|
+
* @param {object} [opts]
|
|
180
|
+
* @param {Recursive} [opts.recursive]
|
|
181
|
+
* @param {WithText} [opts.withText]
|
|
182
|
+
* @return {s.Schema<Recursive extends true ? RecursiveDeltaNode<NodeName, Partial<Attributes>, Children, WithText> : DeltaNode<NodeName, Partial<Attributes>, Children, withText>>}
|
|
183
|
+
*/
|
|
184
|
+
const $node = ($nodeName, $attributes, $children, { recursive, withText } = {}) => {
|
|
185
|
+
/**
|
|
186
|
+
* @type {s.Schema<darray.DeltaArray<any,any>>}
|
|
187
|
+
*/
|
|
188
|
+
let $dchildren = array.$array($children);
|
|
189
|
+
const $dattrs = map.$map($attributes);
|
|
190
|
+
const $nodeSchema = /** @type {s.Schema<DeltaNode<NodeName, any, any, any>>} */ (schema.$instanceOf(DeltaNode, o => $nodeName.check(o.name) && $dchildren.check(o.children) && $dattrs.check(o.attributes)));
|
|
191
|
+
if (recursive) {
|
|
192
|
+
$dchildren = array.$array(schema.$union($children, $nodeSchema), withText);
|
|
193
|
+
}
|
|
194
|
+
return /** @type {any} */ ($nodeSchema)
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* @type {s.Schema<DeltaNode<any,{[key:string]: any},any,any>>}
|
|
199
|
+
*/
|
|
200
|
+
const $nodeAny = schema.$constructedBy(DeltaNode);
|
|
201
|
+
|
|
202
|
+
exports.$node = $node;
|
|
203
|
+
exports.$nodeAny = $nodeAny;
|
|
204
|
+
exports.DeltaNode = DeltaNode;
|
|
205
|
+
exports.node = node;
|
|
206
|
+
//# sourceMappingURL=node.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.cjs","sources":["../delta/node.js"],"sourcesContent":["import * as traits from '../traits.js'\nimport * as dabstract from './abstract.js'\nimport * as darray from './array.js'\nimport * as dmap from './map.js'\nimport * as s from '../schema.js'\nimport * as error from '../error.js'\n\n/**\n * @template {string|undefined} [NodeName=string]\n * @template {{[key:string]:any}} [Attrs={[key:string]:any}]\n * @template [Children=any]\n * @template {boolean} [WithText=true]\n */\nexport class DeltaNode extends dabstract.AbstractDelta {\n /**\n * @param {NodeName} nodeName\n * @param {dmap.DeltaMap<Attrs>} attributes\n * @param {darray.DeltaArray<Children,WithText>} children\n */\n constructor (nodeName, attributes, children) {\n super()\n this.name = nodeName\n /**\n * @type {dmap.DeltaMap<Attrs>}\n */\n this.attributes = /** @type {any} */ (attributes)\n /**\n * @type {darray.DeltaArray<Children,WithText>}\n */\n this.children = /** @type {any} */ (children)\n }\n\n isEmpty () {\n return this.children.isEmpty() && this.attributes.isEmpty()\n }\n\n /**\n * @return {this}\n */\n clone () {\n return /** @type {this} */ (new DeltaNode(this.name, this.attributes.clone(), this.children.clone()))\n }\n\n /**\n * @param {(WithText extends true ? string : never) | Array<Children>} insert\n */\n insert (insert) {\n // @ts-ignore\n this.children.insert(insert)\n return this\n }\n\n /**\n * @template {keyof Attrs} K\n * @param {K} key\n * @param {Attrs[K]} newVal\n * @param {Attrs[K]|undefined} prevVal\n * @param {import('./abstract.js').Attribution?} attribution\n */\n set (key, newVal, prevVal, attribution) {\n this.attributes.set(key, newVal, prevVal, attribution)\n return this\n }\n\n /**\n * @param {import('./abstract.js').Attribution?} attribution\n * @param {Partial<Attrs>} kv\n */\n setMany (kv, attribution = null) {\n this.attributes.setMany(kv, attribution)\n return this\n }\n\n /**\n * @param {dabstract.AbstractDelta} other\n */\n apply (other) {\n if ($nodeAny.check(other)) {\n // @ts-ignore\n this.attributes.apply(other.attributes)\n // @ts-ignore\n this.children.apply(other.children)\n } else if (dmap.$mapAny.check(other)) {\n // @ts-ignore\n this.attributes.apply(other)\n } else if (darray.$arrayAny.check(other)) {\n // @ts-ignore\n this.children.apply(other)\n } else {\n error.unexpectedCase()\n }\n }\n\n toJSON () {\n return {\n name: this.name,\n attributes: this.attributes.toJSON(),\n children: this.children.toJSON()\n }\n }\n\n /**\n * @return {DeltaNode<NodeName, Attrs, Children, WithText>}\n */\n done () {\n /** @type {darray.DeltaArray<any>} */ (this.children).done()\n ;/** @type {dmap.DeltaMap<any>} */ (this.attributes).done()\n return /** @type {any} */ (this)\n }\n\n /**\n * @param {DeltaNode<NodeName,Partial<Attrs>,Children,WithText>} other\n */\n [traits.EqualityTraitSymbol] (other) {\n return this.name === other.name && this.children[traits.EqualityTraitSymbol](other.children) && this.attributes[traits.EqualityTraitSymbol](other.attributes)\n }\n}\n\n/**\n * @template {string|undefined} [NodeName=string]\n * @template {{[key:string]:any} | dmap.DeltaMap<any>} [Attrs={[key:string]:any}]\n * @template {Array<any> | string | darray.DeltaArray<any,any>} [Children=Array<any>]\n * @param {NodeName} nodeName\n * @param {Attrs} [attributes]\n * @param {Children} [children]\n * @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)>}\n */\nexport const node = (nodeName, attributes, children) =>\n new DeltaNode(\n nodeName,\n attributes == null\n ? dmap.map()\n : (dmap.$mapAny.check(attributes)\n ? /** @type {dmap.DeltaMap<any>} */ (attributes)\n : dmap.map().setMany(/** @type {any} */ (attributes))\n ),\n children == null\n ? darray.array()\n : (darray.$arrayAny.check(children)\n ? /** @type {darray.DeltaArray<any>} */ (children)\n : darray.array().insert(children)\n )\n )\n\n/**\n * @template {string} NodeName\n * @template {{ [key:string]: any }} Attributes\n * @template Children\n * @template {boolean} WithText\n * @typedef {DeltaNode<NodeName, Attributes, Children | RecursiveDeltaNode<NodeName,Attributes,Children,WithText>, WithText>} RecursiveDeltaNode\n */\n\n/**\n * @template {string} NodeName\n * @template {{ [key:string]: any }} Attributes\n * @template Children\n * @template {boolean} [Recursive=false]\n * @template {boolean} [WithText=false]\n * @param {s.Schema<NodeName>} $nodeName\n * @param {s.Schema<Children>} $children\n * @param {s.Schema<Attributes>} $attributes\n * @param {object} [opts]\n * @param {Recursive} [opts.recursive]\n * @param {WithText} [opts.withText]\n * @return {s.Schema<Recursive extends true ? RecursiveDeltaNode<NodeName, Partial<Attributes>, Children, WithText> : DeltaNode<NodeName, Partial<Attributes>, Children, withText>>}\n */\nexport const $node = ($nodeName, $attributes, $children, { recursive, withText } = {}) => {\n /**\n * @type {s.Schema<darray.DeltaArray<any,any>>}\n */\n let $dchildren = darray.$array($children)\n const $dattrs = dmap.$map($attributes)\n 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)))\n if (recursive) {\n $dchildren = darray.$array(s.$union($children, $nodeSchema), withText)\n }\n return /** @type {any} */ ($nodeSchema)\n}\n\n/**\n * @type {s.Schema<DeltaNode<any,{[key:string]: any},any,any>>}\n */\nexport const $nodeAny = s.$constructedBy(DeltaNode)\n"],"names":["dabstract.AbstractDelta","dmap.$mapAny","darray.$arrayAny","error.unexpectedCase","traits.EqualityTraitSymbol","dmap.map","darray.array","darray.$array","dmap.$map","s.$instanceOf","s.$union","s.$constructedBy"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var math = require('./math-
|
|
3
|
+
var math = require('./math-96d5e8c4.cjs');
|
|
4
4
|
var binary = require('./binary-ac8e39e2.cjs');
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -61,4 +61,4 @@ exports.isInteger = isInteger;
|
|
|
61
61
|
exports.isNaN = isNaN;
|
|
62
62
|
exports.number = number;
|
|
63
63
|
exports.parseInt = parseInt;
|
|
64
|
-
//# sourceMappingURL=number-
|
|
64
|
+
//# sourceMappingURL=number-1fb57bba.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-
|
|
1
|
+
{"version":3,"file":"number-1fb57bba.cjs","sources":["../number.js"],"sourcesContent":["/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\nexport const HIGHEST_INT32 = binary.BITS31\nexport const HIGHEST_UINT32 = binary.BITS32\n\n/* c8 ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n\n/**\n * Count the number of \"1\" bits in an unsigned 32bit number.\n *\n * Super fun bitcount algorithm by Brian Kernighan.\n *\n * @param {number} n\n */\nexport const countBits = n => {\n n &= binary.BITS32\n let count = 0\n while (n) {\n n &= (n - 1)\n count++\n }\n return count\n}\n"],"names":["binary.BITS31","binary.BITS32","math.floor"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AAIA;AACY,MAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAgB;AAC3C,MAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAgB;AACvD;AACY,MAAC,YAAY,GAAG,CAAC,IAAI,GAAE;AACvB,MAAC,aAAa,GAAGA,cAAa;AAC9B,MAAC,cAAc,GAAGC,cAAa;AAC3C;AACA;AACY,MAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAIC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,EAAC;AAC7G,MAAC,KAAK,GAAG,MAAM,CAAC,MAAK;AACrB,MAAC,QAAQ,GAAG,MAAM,CAAC,SAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,SAAS,GAAG,CAAC,IAAI;AAC9B,EAAE,CAAC,IAAID,cAAa;AACpB,EAAE,IAAI,KAAK,GAAG,EAAC;AACf,EAAE,OAAO,CAAC,EAAE;AACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC;AAChB,IAAI,KAAK,GAAE;AACX,GAAG;AACH,EAAE,OAAO,KAAK;AACd;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/number.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('./math-
|
|
5
|
+
require('./math-96d5e8c4.cjs');
|
|
6
6
|
require('./binary-ac8e39e2.cjs');
|
|
7
|
-
var number = require('./number-
|
|
7
|
+
var number = require('./number-1fb57bba.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var traits = require('./traits.cjs');
|
|
4
|
+
|
|
3
5
|
/**
|
|
4
6
|
* Utility functions for working with EcmaScript objects.
|
|
5
7
|
*
|
|
@@ -11,6 +13,12 @@
|
|
|
11
13
|
*/
|
|
12
14
|
const create = () => Object.create(null);
|
|
13
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @param {any} o
|
|
18
|
+
* @return {o is { [k:string]:any }}
|
|
19
|
+
*/
|
|
20
|
+
const isObject = o => typeof o === 'object';
|
|
21
|
+
|
|
14
22
|
/**
|
|
15
23
|
* Object.assign
|
|
16
24
|
*/
|
|
@@ -123,7 +131,7 @@ const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)
|
|
|
123
131
|
* @param {Object<string,any>} b
|
|
124
132
|
* @return {boolean}
|
|
125
133
|
*/
|
|
126
|
-
const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key]
|
|
134
|
+
const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && traits.equals(b[key], val)));
|
|
127
135
|
|
|
128
136
|
/**
|
|
129
137
|
* Make an object immutable. This hurts performance and is usually not needed if you perform good
|
|
@@ -165,6 +173,7 @@ const setIfUndefined = (o, key, createT) => hasProperty(o, key) ? o[key] : (o[ke
|
|
|
165
173
|
var object = /*#__PURE__*/Object.freeze({
|
|
166
174
|
__proto__: null,
|
|
167
175
|
create: create,
|
|
176
|
+
isObject: isObject,
|
|
168
177
|
assign: assign,
|
|
169
178
|
keys: keys,
|
|
170
179
|
values: values,
|
|
@@ -191,6 +200,7 @@ exports.forEach = forEach;
|
|
|
191
200
|
exports.freeze = freeze;
|
|
192
201
|
exports.hasProperty = hasProperty;
|
|
193
202
|
exports.isEmpty = isEmpty;
|
|
203
|
+
exports.isObject = isObject;
|
|
194
204
|
exports.keys = keys;
|
|
195
205
|
exports.length = length;
|
|
196
206
|
exports.map = map;
|
|
@@ -199,4 +209,4 @@ exports.setIfUndefined = setIfUndefined;
|
|
|
199
209
|
exports.size = size;
|
|
200
210
|
exports.some = some;
|
|
201
211
|
exports.values = values;
|
|
202
|
-
//# sourceMappingURL=object-
|
|
212
|
+
//# sourceMappingURL=object-18980796.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-18980796.cjs","sources":["../object.js"],"sourcesContent":["import * as traits from './traits.js'\n\n/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object<string,any>} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * @param {any} o\n * @return {o is { [k:string]:any }}\n */\nexport const isObject = o => typeof o === 'object'\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object<string,any>} obj\n */\nexport const keys = Object.keys\n\n/**\n * @template V\n * @param {{[key:string]: V}} obj\n * @return {Array<V>}\n */\nexport const values = Object.values\n\n/**\n * @template V\n * @param {{[k:string]:V}} obj\n * @param {function(V,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @todo implement mapToArray & map\n *\n * @template R\n * @param {Object<string,any>} obj\n * @param {function(any,string):R} f\n * @return {Array<R>}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @deprecated use object.size instead\n * @param {Object<string,any>} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object<string,any>} obj\n * @return {number}\n */\nexport const size = obj => keys(obj).length\n\n/**\n * @template {{ [key:string|number|symbol]: any }} T\n * @param {T} obj\n * @param {(v:T[keyof T],k:keyof T)=>boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object|null|undefined} obj\n */\nexport const isEmpty = obj => {\n // eslint-disable-next-line no-unreachable-loop\n for (const _k in obj) {\n return false\n }\n return true\n}\n\n/**\n * @template {{ [key:string|number|symbol]: any }} T\n * @param {T} obj\n * @param {(v:T[keyof T],k:keyof T)=>boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|number|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object<string,any>} a\n * @param {Object<string,any>} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && traits.equals(b[key], val)))\n\n/**\n * Make an object immutable. This hurts performance and is usually not needed if you perform good\n * coding practices.\n */\nexport const freeze = Object.freeze\n\n/**\n * Make an object and all its children immutable.\n * This *really* hurts performance and is usually not needed if you perform good coding practices.\n *\n * @template {any} T\n * @param {T} o\n * @return {Readonly<T>}\n */\nexport const deepFreeze = (o) => {\n for (const key in o) {\n const c = o[key]\n if (typeof c === 'object' || typeof c === 'function') {\n deepFreeze(o[key])\n }\n }\n return freeze(o)\n}\n\n/**\n * Get object property. Create T if property is undefined and set T on object.\n *\n * @function\n * @template {object} KV\n * @template {keyof KV} [K=keyof KV]\n * @param {KV} o\n * @param {K} key\n * @param {() => KV[K]} createT\n * @return {KV[K]}\n */\nexport const setIfUndefined = (o, key, createT) => hasProperty(o, key) ? o[key] : (o[key] = createT())\n"],"names":["traits.equals"],"mappings":"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"}
|
package/dist/object.cjs
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
require('./traits.cjs');
|
|
6
|
+
var object = require('./object-18980796.cjs');
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
|
|
@@ -15,6 +16,7 @@ exports.forEach = object.forEach;
|
|
|
15
16
|
exports.freeze = object.freeze;
|
|
16
17
|
exports.hasProperty = object.hasProperty;
|
|
17
18
|
exports.isEmpty = object.isEmpty;
|
|
19
|
+
exports.isObject = object.isObject;
|
|
18
20
|
exports.keys = object.keys;
|
|
19
21
|
exports.length = object.length;
|
|
20
22
|
exports.map = object.map;
|
package/dist/object.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/object.d.ts
CHANGED
package/dist/object.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../object.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../object.js"],"names":[],"mappings":"AAWO;;EAAwC;AAMxC,4BAHI,GAAG,GACF,CAAC,IAAI;IAAE,CAAC,CAAC,EAAC,MAAM,GAAE,GAAG,CAAA;CAAE,CAEe;AAElD;;GAEG;AACH;;;;;EAAmC;AAEnC;;GAEG;AACH;;;EAA+B;AAE/B;;;;GAIG;AACH;;;;;EAAmC;AAO5B,kCAHI;IAAC,CAAC,CAAC,EAAC,MAAM,GAAE,GAAC,CAAA;CAAC,KACd,CAAS,IAAC,EAAD,GAAC,EAAC,IAAM,EAAN,MAAM,KAAE,GAAG,QAMhC;AAUM,oBALM,CAAC;;MAEH,CAAS,IAAG,EAAH,GAAG,EAAC,IAAM,EAAN,MAAM,KAAE,CAAC,GACrB,KAAK,CAAC,CAAC,CAAC,CAQnB;AAOM;;IAFK,MAAM,CAE2B;AAMtC;;IAFK,MAAM,CAEyB;AAQpC,qBAL4C,CAAC,SAAvC;IAAG,CAAC,GAAG,EAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAG,GAAG,CAAA;CAAG,OACvC,CAAC,KACD,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,KAAG,OAAO,GAChC,OAAO,CASlB;AAKM,6BAFI,MAAM,GAAC,IAAI,GAAC,SAAS,WAQ/B;AAQM,sBAL4C,CAAC,SAAvC;IAAG,CAAC,GAAG,EAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAG,GAAG,CAAA;CAAG,OACvC,CAAC,KACD,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,KAAG,OAAO,GAChC,OAAO,CASlB;AASM,iCAJI,GAAG,OACH,MAAM,GAAC,MAAM,GAAC,MAAM,GACnB,OAAO,CAEoE;AAOhF;;;;IAFK,OAAO,CAEoJ;AAEvK;;;GAGG;AACH;;;;;;EAAmC;AAU5B,2BAJY,CAAC,qBACT,CAAC,GACA,QAAQ,CAAC,CAAC,CAAC,CAUtB;AAaM,+BAPe,EAAE,SAAX,MAAQ,EACI,CAAC,SAAb,MAAO,EAAG,gBACZ,EAAE,OACF,CAAC,WACD,MAAM,EAAE,CAAC,CAAC,CAAC,GACV,EAAE,CAAC,CAAC,CAAC,CAEqF"}
|
package/dist/observable.cjs
CHANGED