silentium-components 0.0.26 → 0.0.28
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/CHANGELOG.md +34 -0
- package/dist/silentium-components.cjs +570 -342
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +169 -30
- package/dist/silentium-components.js +546 -319
- package/dist/silentium-components.js.map +1 -1
- package/dist/silentium-components.min.js +1 -1
- package/dist/silentium-components.min.mjs +1 -1
- package/dist/silentium-components.min.mjs.map +1 -1
- package/dist/silentium-components.mjs +546 -319
- package/dist/silentium-components.mjs.map +1 -1
- package/package.json +2 -2
- package/src/behaviors/Branch._main.test.ts +22 -0
- package/src/behaviors/Branch.branchesDontAffectResult.test.ts +11 -11
- package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +15 -17
- package/src/behaviors/Branch.ts +28 -21
- package/src/behaviors/{Deadline.test.ts → Deadline._main.test.ts} +5 -5
- package/src/behaviors/Deadline._value.test.ts +6 -6
- package/src/behaviors/Deadline.ts +45 -41
- package/src/behaviors/Deferred.test.ts +14 -14
- package/src/behaviors/Deferred.ts +21 -15
- package/src/behaviors/Dirty.test.ts +8 -8
- package/src/behaviors/Dirty.ts +43 -35
- package/src/behaviors/Loading.test.ts +8 -8
- package/src/behaviors/Loading.ts +24 -14
- package/src/behaviors/Lock.test.ts +14 -14
- package/src/behaviors/Lock.ts +21 -14
- package/src/behaviors/Memo.test.ts +16 -14
- package/src/behaviors/Memo.ts +20 -12
- package/src/behaviors/OnlyChanged.test.ts +7 -7
- package/src/behaviors/OnlyChanged.ts +22 -15
- package/src/behaviors/Path._main.test.ts +14 -0
- package/src/behaviors/Path.index.test.ts +4 -4
- package/src/behaviors/Path.nested.test.ts +4 -4
- package/src/behaviors/Path.ts +27 -22
- package/src/behaviors/Shot._main.test.ts +29 -0
- package/src/behaviors/Shot._onlyChanged.test.ts +15 -13
- package/src/behaviors/Shot.ts +24 -15
- package/src/behaviors/Sync.test.ts +10 -0
- package/src/behaviors/Sync.ts +38 -15
- package/src/behaviors/Tick.test.ts +8 -8
- package/src/behaviors/Tick.ts +20 -12
- package/src/boolean/And.test.ts +12 -12
- package/src/boolean/And.ts +18 -14
- package/src/boolean/Bool.ts +11 -2
- package/src/boolean/Not.test.ts +6 -6
- package/src/boolean/Not.ts +15 -10
- package/src/boolean/Or.test.ts +12 -12
- package/src/boolean/Or.ts +18 -14
- package/src/boolean/index.ts +1 -0
- package/src/formats/FromJson.test.ts +11 -0
- package/src/formats/FromJson.ts +22 -15
- package/src/formats/ToJson.test.ts +11 -0
- package/src/formats/ToJson.ts +23 -16
- package/src/lists/First.test.ts +4 -4
- package/src/lists/First.ts +11 -6
- package/src/navigation/Router.test.ts +13 -13
- package/src/navigation/Router.ts +36 -29
- package/src/strings/Concatenated.test.ts +6 -6
- package/src/strings/Concatenated.ts +18 -14
- package/src/structures/HashTable.test.ts +7 -7
- package/src/structures/HashTable.ts +17 -11
- package/src/structures/Record._main.test.ts +28 -0
- package/src/structures/Record.concatenated.test.ts +17 -15
- package/src/structures/Record.nested.test.ts +10 -10
- package/src/structures/RecordOf.ts +29 -0
- package/src/structures/index.ts +1 -1
- package/src/system/RegexpMatch._group.test.ts +9 -6
- package/src/system/RegexpMatch._main.test.ts +16 -0
- package/src/system/RegexpMatch.ts +20 -17
- package/src/system/RegexpMatched.test.ts +6 -6
- package/src/system/RegexpMatched.ts +19 -16
- package/src/system/RegexpReplaced.test.ts +10 -6
- package/src/system/RegexpReplaced.ts +25 -18
- package/src/system/Set.test.ts +6 -6
- package/src/system/Set.ts +20 -17
- package/src/behaviors/Branch.test.ts +0 -22
- package/src/behaviors/Path.test.ts +0 -14
- package/src/behaviors/Shot.test.ts +0 -29
- package/src/structures/Record.test.ts +0 -28
- package/src/structures/Record.ts +0 -22
- package/src/system/RegexpMatch.test.ts +0 -13
|
@@ -2,97 +2,139 @@
|
|
|
2
2
|
|
|
3
3
|
var silentium = require('silentium');
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
5
|
+
var __defProp$1 = Object.defineProperty;
|
|
6
|
+
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
+
var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, key + "" , value);
|
|
8
|
+
class Dirty extends silentium.TheInformation {
|
|
9
|
+
constructor(baseEntitySource, alwaysKeep = [], excludeKeys = []) {
|
|
10
|
+
super([baseEntitySource]);
|
|
11
|
+
this.baseEntitySource = baseEntitySource;
|
|
12
|
+
this.alwaysKeep = alwaysKeep;
|
|
13
|
+
this.excludeKeys = excludeKeys;
|
|
14
|
+
__publicField$1(this, "comparingSrc", new silentium.Late());
|
|
15
|
+
}
|
|
16
|
+
value(o) {
|
|
17
|
+
const comparingDetached = new silentium.Applied(
|
|
18
|
+
this.comparingSrc,
|
|
19
|
+
(value) => JSON.parse(JSON.stringify(value))
|
|
20
|
+
);
|
|
21
|
+
const allSrc = new silentium.All(comparingDetached, this.baseEntitySource).value(
|
|
22
|
+
new silentium.From(([comparing, base]) => {
|
|
23
|
+
if (!comparing) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
o.give(
|
|
27
|
+
Object.fromEntries(
|
|
28
|
+
Object.entries(comparing).filter(([key, value]) => {
|
|
29
|
+
if (this.alwaysKeep.includes(key)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
if (this.excludeKeys.includes(key)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return value !== base[key];
|
|
36
|
+
})
|
|
37
|
+
)
|
|
38
|
+
);
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
this.addDep(allSrc);
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
owner() {
|
|
45
|
+
return this.comparingSrc.owner();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
36
48
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
class Loading extends silentium.TheInformation {
|
|
50
|
+
constructor(loadingStartSrc, loadingFinishSrc) {
|
|
51
|
+
super(loadingFinishSrc, loadingStartSrc);
|
|
52
|
+
this.loadingStartSrc = loadingStartSrc;
|
|
53
|
+
this.loadingFinishSrc = loadingFinishSrc;
|
|
54
|
+
}
|
|
55
|
+
value(o) {
|
|
56
|
+
this.loadingStartSrc.value(
|
|
57
|
+
new silentium.From(() => {
|
|
58
|
+
o.give(true);
|
|
59
|
+
})
|
|
60
|
+
);
|
|
61
|
+
this.loadingFinishSrc.value(
|
|
62
|
+
new silentium.From(() => {
|
|
63
|
+
o.give(false);
|
|
64
|
+
})
|
|
65
|
+
);
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
47
69
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
70
|
+
class Path extends silentium.TheInformation {
|
|
71
|
+
constructor(baseSrc, keySrc) {
|
|
72
|
+
super(baseSrc, keySrc);
|
|
73
|
+
this.baseSrc = baseSrc;
|
|
74
|
+
this.keySrc = keySrc;
|
|
75
|
+
}
|
|
76
|
+
value(o) {
|
|
77
|
+
const allSrc = new silentium.All(this.baseSrc, this.keySrc).value(
|
|
78
|
+
new silentium.From(([base, key]) => {
|
|
79
|
+
const keyChunks = key.split(".");
|
|
80
|
+
let value = base;
|
|
81
|
+
keyChunks.forEach((keyChunk) => {
|
|
82
|
+
value = value[keyChunk];
|
|
83
|
+
});
|
|
84
|
+
if (value !== void 0 && value !== base) {
|
|
85
|
+
o.give(value);
|
|
86
|
+
}
|
|
87
|
+
})
|
|
88
|
+
);
|
|
89
|
+
this.addDep(allSrc);
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
65
93
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
94
|
+
class Deadline extends silentium.TheInformation {
|
|
95
|
+
constructor(error, baseSrc, timeoutSrc) {
|
|
96
|
+
super([error, baseSrc, timeoutSrc]);
|
|
97
|
+
this.error = error;
|
|
98
|
+
this.baseSrc = baseSrc;
|
|
99
|
+
this.timeoutSrc = timeoutSrc;
|
|
100
|
+
}
|
|
101
|
+
value(o) {
|
|
102
|
+
let timerHead = null;
|
|
103
|
+
const s = new silentium.Shared(this.baseSrc, true);
|
|
104
|
+
this.addDep(s);
|
|
105
|
+
this.timeoutSrc.value(
|
|
106
|
+
new silentium.From((timeout) => {
|
|
107
|
+
if (timerHead) {
|
|
108
|
+
clearTimeout(timerHead);
|
|
78
109
|
}
|
|
79
|
-
timeoutReached =
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
110
|
+
let timeoutReached = false;
|
|
111
|
+
timerHead = setTimeout(() => {
|
|
112
|
+
if (timeoutReached) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
timeoutReached = true;
|
|
116
|
+
this.error.give(new Error("Timeout reached in Deadline class"));
|
|
117
|
+
}, timeout);
|
|
118
|
+
const f = new silentium.Filtered(s, () => !timeoutReached);
|
|
119
|
+
this.addDep(f);
|
|
120
|
+
f.value(o);
|
|
121
|
+
s.value(
|
|
122
|
+
new silentium.From(() => {
|
|
123
|
+
timeoutReached = true;
|
|
124
|
+
})
|
|
125
|
+
);
|
|
126
|
+
})
|
|
127
|
+
);
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
93
131
|
|
|
94
|
-
|
|
95
|
-
|
|
132
|
+
class Tick extends silentium.TheInformation {
|
|
133
|
+
constructor(baseSrc) {
|
|
134
|
+
super(baseSrc);
|
|
135
|
+
this.baseSrc = baseSrc;
|
|
136
|
+
}
|
|
137
|
+
value(o) {
|
|
96
138
|
let microtaskScheduled = false;
|
|
97
139
|
let lastValue = null;
|
|
98
140
|
const scheduleMicrotask = () => {
|
|
@@ -100,290 +142,476 @@ const tick = (baseSrc) => {
|
|
|
100
142
|
queueMicrotask(() => {
|
|
101
143
|
microtaskScheduled = false;
|
|
102
144
|
if (lastValue !== null) {
|
|
103
|
-
o(lastValue);
|
|
145
|
+
o.give(lastValue);
|
|
104
146
|
lastValue = null;
|
|
105
147
|
}
|
|
106
148
|
});
|
|
107
149
|
};
|
|
108
|
-
baseSrc(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
150
|
+
this.baseSrc.value(
|
|
151
|
+
new silentium.From((v) => {
|
|
152
|
+
lastValue = v;
|
|
153
|
+
if (!microtaskScheduled) {
|
|
154
|
+
scheduleMicrotask();
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
);
|
|
158
|
+
return this;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
116
161
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
162
|
+
var __defProp = Object.defineProperty;
|
|
163
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
164
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
165
|
+
class Sync extends silentium.TheInformation {
|
|
166
|
+
constructor(baseSrc) {
|
|
167
|
+
super(baseSrc);
|
|
168
|
+
this.baseSrc = baseSrc;
|
|
169
|
+
__publicField(this, "theValue");
|
|
170
|
+
__publicField(this, "isInit", false);
|
|
171
|
+
}
|
|
172
|
+
value(o) {
|
|
173
|
+
this.baseSrc.value(o);
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
176
|
+
valueExisted() {
|
|
177
|
+
this.initOwner();
|
|
178
|
+
return silentium.isFilled(this.theValue);
|
|
179
|
+
}
|
|
180
|
+
valueSync() {
|
|
181
|
+
this.initOwner();
|
|
182
|
+
if (!silentium.isFilled(this.theValue)) {
|
|
183
|
+
throw new Error("no value in sync");
|
|
184
|
+
}
|
|
185
|
+
return this.theValue;
|
|
186
|
+
}
|
|
187
|
+
initOwner() {
|
|
188
|
+
if (!this.isInit) {
|
|
189
|
+
this.isInit = true;
|
|
190
|
+
this.value(
|
|
191
|
+
new silentium.From((v) => {
|
|
192
|
+
this.theValue = v;
|
|
193
|
+
})
|
|
194
|
+
);
|
|
128
195
|
}
|
|
129
|
-
|
|
130
|
-
}
|
|
196
|
+
return this;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
131
199
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
200
|
+
class Deferred extends silentium.TheInformation {
|
|
201
|
+
constructor(baseSrc, triggerSrc) {
|
|
202
|
+
super();
|
|
203
|
+
this.baseSrc = baseSrc;
|
|
204
|
+
this.triggerSrc = triggerSrc;
|
|
205
|
+
}
|
|
206
|
+
value(o) {
|
|
207
|
+
const baseSync = new Sync(this.baseSrc).initOwner();
|
|
208
|
+
this.triggerSrc.value(
|
|
209
|
+
new silentium.From(() => {
|
|
210
|
+
if (silentium.isFilled(baseSync.valueSync())) {
|
|
211
|
+
o.give(baseSync.valueSync());
|
|
212
|
+
}
|
|
213
|
+
})
|
|
214
|
+
);
|
|
215
|
+
return this;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
142
218
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
219
|
+
class Branch extends silentium.TheInformation {
|
|
220
|
+
constructor(conditionSrc, leftSrc, rightSrc) {
|
|
221
|
+
super([conditionSrc, leftSrc, rightSrc]);
|
|
222
|
+
this.conditionSrc = conditionSrc;
|
|
223
|
+
this.leftSrc = leftSrc;
|
|
224
|
+
this.rightSrc = rightSrc;
|
|
225
|
+
}
|
|
226
|
+
value(o) {
|
|
227
|
+
const leftSync = new Sync(this.leftSrc).initOwner();
|
|
146
228
|
let rightSync;
|
|
147
|
-
if (
|
|
148
|
-
rightSync =
|
|
229
|
+
if (this.rightSrc !== void 0) {
|
|
230
|
+
rightSync = new Sync(this.rightSrc).initOwner();
|
|
149
231
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
232
|
+
this.conditionSrc.value(
|
|
233
|
+
new silentium.From((v) => {
|
|
234
|
+
if (v) {
|
|
235
|
+
o.give(leftSync.valueSync());
|
|
236
|
+
} else if (rightSync) {
|
|
237
|
+
o.give(rightSync.valueSync());
|
|
238
|
+
}
|
|
239
|
+
})
|
|
240
|
+
);
|
|
241
|
+
return this;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
159
244
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
baseSrc
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
245
|
+
class Memo extends silentium.TheInformation {
|
|
246
|
+
constructor(baseSrc) {
|
|
247
|
+
super(baseSrc);
|
|
248
|
+
this.baseSrc = baseSrc;
|
|
249
|
+
}
|
|
250
|
+
value(o) {
|
|
251
|
+
let lastValue = null;
|
|
252
|
+
this.baseSrc.value(
|
|
253
|
+
new silentium.From((v) => {
|
|
254
|
+
if (v !== lastValue) {
|
|
255
|
+
o.give(v);
|
|
256
|
+
lastValue = v;
|
|
257
|
+
}
|
|
258
|
+
})
|
|
259
|
+
);
|
|
260
|
+
return this;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
171
263
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
lockSrc
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
264
|
+
class Lock extends silentium.TheInformation {
|
|
265
|
+
constructor(baseSrc, lockSrc) {
|
|
266
|
+
super(baseSrc, lockSrc);
|
|
267
|
+
this.baseSrc = baseSrc;
|
|
268
|
+
this.lockSrc = lockSrc;
|
|
269
|
+
}
|
|
270
|
+
value(o) {
|
|
271
|
+
let locked = false;
|
|
272
|
+
this.lockSrc.value(
|
|
273
|
+
new silentium.From((newLock) => {
|
|
274
|
+
locked = newLock;
|
|
275
|
+
})
|
|
276
|
+
);
|
|
277
|
+
const i = new silentium.Filtered(this.baseSrc, () => !locked);
|
|
278
|
+
this.addDep(i);
|
|
279
|
+
i.value(o);
|
|
280
|
+
return this;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
182
283
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
284
|
+
class Shot extends silentium.TheInformation {
|
|
285
|
+
constructor(targetSrc, triggerSrc) {
|
|
286
|
+
super(targetSrc, triggerSrc);
|
|
287
|
+
this.targetSrc = targetSrc;
|
|
288
|
+
this.triggerSrc = triggerSrc;
|
|
289
|
+
}
|
|
290
|
+
value(o) {
|
|
291
|
+
const targetSync = new Sync(this.targetSrc);
|
|
292
|
+
targetSync.initOwner();
|
|
293
|
+
this.triggerSrc.value(
|
|
294
|
+
new silentium.From(() => {
|
|
295
|
+
if (targetSync.valueExisted()) {
|
|
296
|
+
o.give(targetSync.valueSync());
|
|
297
|
+
}
|
|
298
|
+
})
|
|
299
|
+
);
|
|
300
|
+
return this;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
193
303
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
baseSrc
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
304
|
+
class OnlyChanged extends silentium.TheInformation {
|
|
305
|
+
constructor(baseSrc) {
|
|
306
|
+
super(baseSrc);
|
|
307
|
+
this.baseSrc = baseSrc;
|
|
308
|
+
}
|
|
309
|
+
value(o) {
|
|
310
|
+
let firstValue = false;
|
|
311
|
+
this.baseSrc.value(
|
|
312
|
+
new silentium.From((v) => {
|
|
313
|
+
if (firstValue === false) {
|
|
314
|
+
firstValue = true;
|
|
315
|
+
} else {
|
|
316
|
+
o.give(v);
|
|
317
|
+
}
|
|
318
|
+
})
|
|
319
|
+
);
|
|
320
|
+
return this;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
206
323
|
|
|
207
|
-
|
|
208
|
-
|
|
324
|
+
class HashTable extends silentium.TheInformation {
|
|
325
|
+
constructor(baseSrc) {
|
|
326
|
+
super(baseSrc);
|
|
327
|
+
this.baseSrc = baseSrc;
|
|
328
|
+
}
|
|
329
|
+
value(o) {
|
|
209
330
|
const record = {};
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
331
|
+
this.baseSrc.value(
|
|
332
|
+
new silentium.From(([key, value]) => {
|
|
333
|
+
record[key] = value;
|
|
334
|
+
o.give(record);
|
|
335
|
+
})
|
|
336
|
+
);
|
|
337
|
+
return this;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
216
340
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
341
|
+
class RecordOf extends silentium.TheInformation {
|
|
342
|
+
constructor(recordSrc) {
|
|
343
|
+
super(...Object.values(recordSrc));
|
|
344
|
+
this.recordSrc = recordSrc;
|
|
345
|
+
}
|
|
346
|
+
value(o) {
|
|
347
|
+
const keys = Object.keys(this.recordSrc);
|
|
348
|
+
new silentium.All(...Object.values(this.recordSrc)).value(
|
|
349
|
+
new silentium.From((entries) => {
|
|
350
|
+
const record = {};
|
|
351
|
+
entries.forEach((entry, index) => {
|
|
352
|
+
record[keys[index]] = entry;
|
|
353
|
+
});
|
|
354
|
+
o.give(record);
|
|
355
|
+
})
|
|
356
|
+
);
|
|
357
|
+
return this;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
229
360
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
361
|
+
class Concatenated extends silentium.TheInformation {
|
|
362
|
+
constructor(sources, joinPartSrc = new silentium.Of("")) {
|
|
363
|
+
super(...sources, joinPartSrc);
|
|
364
|
+
this.sources = sources;
|
|
365
|
+
this.joinPartSrc = joinPartSrc;
|
|
366
|
+
}
|
|
367
|
+
value(o) {
|
|
368
|
+
new silentium.All(this.joinPartSrc, ...this.sources).value(
|
|
369
|
+
new silentium.From(([joinPart, ...strings]) => {
|
|
370
|
+
o.give(strings.join(joinPart));
|
|
371
|
+
})
|
|
372
|
+
);
|
|
373
|
+
return this;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
240
376
|
|
|
241
|
-
|
|
242
|
-
silentium.
|
|
243
|
-
patternSrc,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
377
|
+
class RegexpMatched extends silentium.TheInformation {
|
|
378
|
+
constructor(patternSrc, valueSrc, flagsSrc = new silentium.Of("")) {
|
|
379
|
+
super(patternSrc, valueSrc, flagsSrc);
|
|
380
|
+
this.patternSrc = patternSrc;
|
|
381
|
+
this.valueSrc = valueSrc;
|
|
382
|
+
this.flagsSrc = flagsSrc;
|
|
383
|
+
}
|
|
384
|
+
value(o) {
|
|
385
|
+
new silentium.All(this.patternSrc, this.valueSrc, this.flagsSrc).value(
|
|
386
|
+
new silentium.From(([pattern, value, flags]) => {
|
|
387
|
+
o.give(new RegExp(pattern, flags).test(value));
|
|
388
|
+
})
|
|
389
|
+
);
|
|
390
|
+
return this;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
250
393
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
394
|
+
class RegexpReplaced extends silentium.TheInformation {
|
|
395
|
+
constructor(valueSrc, patternSrc, replaceValueSrc, flagsSrc = new silentium.Of("")) {
|
|
396
|
+
super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);
|
|
397
|
+
this.valueSrc = valueSrc;
|
|
398
|
+
this.patternSrc = patternSrc;
|
|
399
|
+
this.replaceValueSrc = replaceValueSrc;
|
|
400
|
+
this.flagsSrc = flagsSrc;
|
|
401
|
+
}
|
|
402
|
+
value(o) {
|
|
403
|
+
new silentium.All(
|
|
404
|
+
this.patternSrc,
|
|
405
|
+
this.valueSrc,
|
|
406
|
+
this.replaceValueSrc,
|
|
407
|
+
this.flagsSrc
|
|
408
|
+
).value(
|
|
409
|
+
new silentium.From(([pattern, value, replaceValue, flags]) => {
|
|
410
|
+
o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));
|
|
411
|
+
})
|
|
412
|
+
);
|
|
413
|
+
return this;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
270
416
|
|
|
271
|
-
|
|
272
|
-
silentium.
|
|
273
|
-
patternSrc,
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
flagsSrc
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
417
|
+
class RegexpMatch extends silentium.TheInformation {
|
|
418
|
+
constructor(patternSrc, valueSrc, flagsSrc = new silentium.Of("")) {
|
|
419
|
+
super(patternSrc, valueSrc, flagsSrc);
|
|
420
|
+
this.patternSrc = patternSrc;
|
|
421
|
+
this.valueSrc = valueSrc;
|
|
422
|
+
this.flagsSrc = flagsSrc;
|
|
423
|
+
}
|
|
424
|
+
value(o) {
|
|
425
|
+
new silentium.All(this.patternSrc, this.valueSrc, this.flagsSrc).value(
|
|
426
|
+
new silentium.From(([pattern, value, flags]) => {
|
|
427
|
+
const result = new RegExp(pattern, flags).exec(value);
|
|
428
|
+
o.give(result ?? []);
|
|
429
|
+
})
|
|
430
|
+
);
|
|
431
|
+
return this;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
281
434
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
435
|
+
class Set extends silentium.TheInformation {
|
|
436
|
+
constructor(baseSrc, keySrc, valueSrc) {
|
|
437
|
+
super(baseSrc, keySrc, valueSrc);
|
|
438
|
+
this.baseSrc = baseSrc;
|
|
439
|
+
this.keySrc = keySrc;
|
|
440
|
+
this.valueSrc = valueSrc;
|
|
441
|
+
}
|
|
442
|
+
value(o) {
|
|
443
|
+
new silentium.All(this.baseSrc, this.keySrc, this.valueSrc).value(
|
|
444
|
+
new silentium.From(([base, key, value]) => {
|
|
445
|
+
base[key] = value;
|
|
446
|
+
o.give(base);
|
|
447
|
+
})
|
|
448
|
+
);
|
|
449
|
+
return this;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
292
452
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
453
|
+
class Router extends silentium.TheInformation {
|
|
454
|
+
constructor(urlSrc, routesSrc, defaultSrc) {
|
|
455
|
+
super(urlSrc, routesSrc, defaultSrc);
|
|
456
|
+
this.urlSrc = urlSrc;
|
|
457
|
+
this.routesSrc = routesSrc;
|
|
458
|
+
this.defaultSrc = defaultSrc;
|
|
459
|
+
}
|
|
460
|
+
value(o) {
|
|
461
|
+
this.routesSrc.value(
|
|
462
|
+
new silentium.From((routes) => {
|
|
463
|
+
new silentium.Any(
|
|
464
|
+
new silentium.Chain(this.urlSrc, this.defaultSrc),
|
|
465
|
+
...routes.map((r) => {
|
|
466
|
+
return new Branch(
|
|
467
|
+
new RegexpMatched(
|
|
468
|
+
new silentium.Of(r.pattern),
|
|
469
|
+
this.urlSrc,
|
|
470
|
+
r.patternFlags ? new silentium.Of(r.patternFlags) : void 0
|
|
471
|
+
),
|
|
472
|
+
r.template instanceof silentium.TheInformation ? r.template : new silentium.Of(r.template)
|
|
473
|
+
);
|
|
474
|
+
})
|
|
475
|
+
).value(o);
|
|
476
|
+
})
|
|
477
|
+
);
|
|
478
|
+
return this;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
305
481
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
482
|
+
class And extends silentium.TheInformation {
|
|
483
|
+
constructor(oneSrc, twoSrc) {
|
|
484
|
+
super(oneSrc, twoSrc);
|
|
485
|
+
this.oneSrc = oneSrc;
|
|
486
|
+
this.twoSrc = twoSrc;
|
|
487
|
+
}
|
|
488
|
+
value(o) {
|
|
489
|
+
new silentium.All(this.oneSrc, this.twoSrc).value(
|
|
490
|
+
new silentium.From(([one, two]) => {
|
|
491
|
+
o.give(one && two);
|
|
492
|
+
})
|
|
493
|
+
);
|
|
494
|
+
return this;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
316
497
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
498
|
+
class Or extends silentium.TheInformation {
|
|
499
|
+
constructor(oneSrc, twoSrc) {
|
|
500
|
+
super(oneSrc, twoSrc);
|
|
501
|
+
this.oneSrc = oneSrc;
|
|
502
|
+
this.twoSrc = twoSrc;
|
|
503
|
+
}
|
|
504
|
+
value(o) {
|
|
505
|
+
new silentium.All(this.oneSrc, this.twoSrc).value(
|
|
506
|
+
new silentium.From(([one, two]) => {
|
|
507
|
+
o.give(one || two);
|
|
508
|
+
})
|
|
509
|
+
);
|
|
510
|
+
return this;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
327
513
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
baseSrc
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
514
|
+
class Not extends silentium.TheInformation {
|
|
515
|
+
constructor(baseSrc) {
|
|
516
|
+
super(baseSrc);
|
|
517
|
+
this.baseSrc = baseSrc;
|
|
518
|
+
}
|
|
519
|
+
value(o) {
|
|
520
|
+
this.baseSrc.value(
|
|
521
|
+
new silentium.From((v) => {
|
|
522
|
+
o.give(!v);
|
|
523
|
+
})
|
|
524
|
+
);
|
|
525
|
+
return this;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
335
528
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
};
|
|
529
|
+
class Bool extends silentium.TheInformation {
|
|
530
|
+
constructor(baseSrc) {
|
|
531
|
+
super(baseSrc);
|
|
532
|
+
this.baseSrc = baseSrc;
|
|
533
|
+
}
|
|
534
|
+
value(o) {
|
|
535
|
+
new silentium.Applied(this.baseSrc, Boolean).value(o);
|
|
536
|
+
return this;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
347
539
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
540
|
+
class FromJson extends silentium.TheInformation {
|
|
541
|
+
constructor(jsonSrc, errorOwner) {
|
|
542
|
+
super(jsonSrc);
|
|
543
|
+
this.jsonSrc = jsonSrc;
|
|
544
|
+
this.errorOwner = errorOwner;
|
|
545
|
+
}
|
|
546
|
+
value(o) {
|
|
547
|
+
this.jsonSrc.value(
|
|
548
|
+
new silentium.From((json) => {
|
|
549
|
+
try {
|
|
550
|
+
o.give(JSON.parse(json));
|
|
551
|
+
} catch (error) {
|
|
552
|
+
this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));
|
|
553
|
+
}
|
|
554
|
+
})
|
|
555
|
+
);
|
|
556
|
+
return this;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
class ToJson extends silentium.TheInformation {
|
|
561
|
+
constructor(dataSrc, errorOwner) {
|
|
562
|
+
super(dataSrc);
|
|
563
|
+
this.dataSrc = dataSrc;
|
|
564
|
+
this.errorOwner = errorOwner;
|
|
565
|
+
}
|
|
566
|
+
value(o) {
|
|
567
|
+
this.dataSrc.value(
|
|
568
|
+
new silentium.From((data) => {
|
|
569
|
+
try {
|
|
570
|
+
o.give(JSON.stringify(data));
|
|
571
|
+
} catch {
|
|
572
|
+
this.errorOwner?.give(new Error("Failed to convert to JSON"));
|
|
573
|
+
}
|
|
574
|
+
})
|
|
575
|
+
);
|
|
576
|
+
return this;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
359
579
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
580
|
+
class First extends silentium.TheInformation {
|
|
581
|
+
constructor(baseSrc) {
|
|
582
|
+
super(baseSrc);
|
|
583
|
+
this.baseSrc = baseSrc;
|
|
584
|
+
}
|
|
585
|
+
value(o) {
|
|
586
|
+
new silentium.Applied(this.baseSrc, (a) => a[0]).value(o);
|
|
587
|
+
return this;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
363
590
|
|
|
364
|
-
exports.
|
|
365
|
-
exports.
|
|
366
|
-
exports.
|
|
367
|
-
exports.
|
|
368
|
-
exports.
|
|
369
|
-
exports.
|
|
370
|
-
exports.
|
|
371
|
-
exports.
|
|
372
|
-
exports.
|
|
373
|
-
exports.
|
|
374
|
-
exports.
|
|
375
|
-
exports.
|
|
376
|
-
exports.
|
|
377
|
-
exports.
|
|
378
|
-
exports.
|
|
379
|
-
exports.
|
|
380
|
-
exports.
|
|
381
|
-
exports.
|
|
382
|
-
exports.
|
|
383
|
-
exports.
|
|
384
|
-
exports.
|
|
385
|
-
exports.
|
|
386
|
-
exports.
|
|
387
|
-
exports.
|
|
388
|
-
exports.
|
|
591
|
+
exports.And = And;
|
|
592
|
+
exports.Bool = Bool;
|
|
593
|
+
exports.Branch = Branch;
|
|
594
|
+
exports.Concatenated = Concatenated;
|
|
595
|
+
exports.Deadline = Deadline;
|
|
596
|
+
exports.Deferred = Deferred;
|
|
597
|
+
exports.Dirty = Dirty;
|
|
598
|
+
exports.First = First;
|
|
599
|
+
exports.FromJson = FromJson;
|
|
600
|
+
exports.HashTable = HashTable;
|
|
601
|
+
exports.Loading = Loading;
|
|
602
|
+
exports.Lock = Lock;
|
|
603
|
+
exports.Memo = Memo;
|
|
604
|
+
exports.Not = Not;
|
|
605
|
+
exports.OnlyChanged = OnlyChanged;
|
|
606
|
+
exports.Or = Or;
|
|
607
|
+
exports.Path = Path;
|
|
608
|
+
exports.RecordOf = RecordOf;
|
|
609
|
+
exports.RegexpMatch = RegexpMatch;
|
|
610
|
+
exports.RegexpMatched = RegexpMatched;
|
|
611
|
+
exports.RegexpReplaced = RegexpReplaced;
|
|
612
|
+
exports.Router = Router;
|
|
613
|
+
exports.Set = Set;
|
|
614
|
+
exports.Shot = Shot;
|
|
615
|
+
exports.Tick = Tick;
|
|
616
|
+
exports.ToJson = ToJson;
|
|
389
617
|
//# sourceMappingURL=silentium-components.cjs.map
|