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
package/dist/node.cjs
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
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
|
package/dist/node.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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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"}
|