@matter/general 0.13.0-alpha.0-20250311-3eb0af5f2 → 0.13.0-alpha.0-20250322-f085fa576
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/dist/cjs/codec/DnsCodec.js +1 -1
- package/dist/cjs/codec/DnsCodec.js.map +1 -1
- package/dist/cjs/log/Logger.d.ts +11 -6
- package/dist/cjs/log/Logger.d.ts.map +1 -1
- package/dist/cjs/log/Logger.js +19 -8
- package/dist/cjs/log/Logger.js.map +1 -1
- package/dist/cjs/time/Time.d.ts +1 -0
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +3 -0
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/transaction/Participant.d.ts +3 -3
- package/dist/cjs/transaction/Participant.d.ts.map +1 -1
- package/dist/cjs/transaction/Transaction.d.ts +20 -20
- package/dist/cjs/transaction/Tx.js +3 -3
- package/dist/cjs/transaction/Tx.js.map +1 -1
- package/dist/cjs/util/Construction.js +2 -2
- package/dist/cjs/util/Construction.js.map +1 -1
- package/dist/cjs/util/DataReadQueue.d.ts +4 -0
- package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
- package/dist/cjs/util/DataReadQueue.js +6 -0
- package/dist/cjs/util/DataReadQueue.js.map +1 -1
- package/dist/cjs/util/FormattedText.js +4 -2
- package/dist/cjs/util/FormattedText.js.map +1 -1
- package/dist/cjs/util/Observable.d.ts +137 -12
- package/dist/cjs/util/Observable.d.ts.map +1 -1
- package/dist/cjs/util/Observable.js +297 -35
- package/dist/cjs/util/Observable.js.map +2 -2
- package/dist/esm/codec/DnsCodec.js +1 -1
- package/dist/esm/codec/DnsCodec.js.map +1 -1
- package/dist/esm/log/Logger.d.ts +11 -6
- package/dist/esm/log/Logger.d.ts.map +1 -1
- package/dist/esm/log/Logger.js +19 -8
- package/dist/esm/log/Logger.js.map +1 -1
- package/dist/esm/time/Time.d.ts +1 -0
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +3 -0
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/transaction/Participant.d.ts +3 -3
- package/dist/esm/transaction/Participant.d.ts.map +1 -1
- package/dist/esm/transaction/Transaction.d.ts +20 -20
- package/dist/esm/transaction/Tx.js +3 -3
- package/dist/esm/transaction/Tx.js.map +1 -1
- package/dist/esm/util/Construction.js +2 -2
- package/dist/esm/util/Construction.js.map +1 -1
- package/dist/esm/util/DataReadQueue.d.ts +4 -0
- package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
- package/dist/esm/util/DataReadQueue.js +6 -0
- package/dist/esm/util/DataReadQueue.js.map +1 -1
- package/dist/esm/util/FormattedText.js +4 -2
- package/dist/esm/util/FormattedText.js.map +1 -1
- package/dist/esm/util/Observable.d.ts +137 -12
- package/dist/esm/util/Observable.d.ts.map +1 -1
- package/dist/esm/util/Observable.js +297 -35
- package/dist/esm/util/Observable.js.map +2 -2
- package/package.json +2 -2
- package/src/codec/DnsCodec.ts +1 -1
- package/src/log/Logger.ts +26 -11
- package/src/time/Time.ts +4 -0
- package/src/transaction/Participant.ts +3 -3
- package/src/transaction/Transaction.ts +1 -1
- package/src/transaction/Tx.ts +3 -3
- package/src/util/Construction.ts +2 -2
- package/src/util/DataReadQueue.ts +7 -0
- package/src/util/FormattedText.ts +4 -2
- package/src/util/Observable.ts +453 -47
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Time } from "#time/Time.js";
|
|
6
7
|
import { ImplementationError } from "../MatterError.js";
|
|
7
8
|
import { Logger } from "../log/Logger.js";
|
|
8
9
|
import "../polyfills/disposable.js";
|
|
@@ -14,26 +15,63 @@ function defaultErrorHandler(error) {
|
|
|
14
15
|
throw error;
|
|
15
16
|
}
|
|
16
17
|
class BasicObservable {
|
|
17
|
-
#
|
|
18
|
+
#handleError;
|
|
19
|
+
#isAsync;
|
|
20
|
+
#handlePromise;
|
|
18
21
|
#observers;
|
|
19
22
|
#once;
|
|
20
|
-
#isAsync;
|
|
21
23
|
#joinIteration;
|
|
22
24
|
#removeIterator;
|
|
23
25
|
#stopIteration;
|
|
24
|
-
constructor(
|
|
25
|
-
this
|
|
26
|
-
|
|
26
|
+
constructor(handleError, asyncConfig) {
|
|
27
|
+
this.handleError = handleError ?? defaultErrorHandler;
|
|
28
|
+
if (typeof asyncConfig === "function") {
|
|
29
|
+
this.handlePromise = asyncConfig;
|
|
30
|
+
} else {
|
|
31
|
+
this.isAsync = asyncConfig ?? false;
|
|
32
|
+
}
|
|
27
33
|
}
|
|
28
34
|
[Symbol.dispose]() {
|
|
29
35
|
this.#observers = this.#once = void 0;
|
|
30
36
|
this.#stopIteration?.();
|
|
31
37
|
}
|
|
32
|
-
|
|
33
|
-
|
|
38
|
+
set handleError(handleError) {
|
|
39
|
+
this.#handleError = handleError;
|
|
40
|
+
}
|
|
41
|
+
get handleError() {
|
|
42
|
+
return this.#handleError;
|
|
34
43
|
}
|
|
35
44
|
set isAsync(isAsync) {
|
|
36
45
|
this.#isAsync = isAsync;
|
|
46
|
+
if (isAsync) {
|
|
47
|
+
this.#handlePromise = (promise) => promise;
|
|
48
|
+
} else {
|
|
49
|
+
this.#handlePromise = (promise, observer) => {
|
|
50
|
+
promise.catch((error) => {
|
|
51
|
+
let identity;
|
|
52
|
+
if (observer.name) {
|
|
53
|
+
identity = ` "${observer.name}"`;
|
|
54
|
+
} else {
|
|
55
|
+
identity = "";
|
|
56
|
+
}
|
|
57
|
+
if (this.#handleError === defaultErrorHandler) {
|
|
58
|
+
logger.error(`Unhandled error in async observer${identity}:`, error);
|
|
59
|
+
} else {
|
|
60
|
+
this.#handleError(error, observer);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
get isAsync() {
|
|
67
|
+
return this.#isAsync;
|
|
68
|
+
}
|
|
69
|
+
set handlePromise(handlePromise) {
|
|
70
|
+
this.isAsync = true;
|
|
71
|
+
this.#handlePromise = handlePromise;
|
|
72
|
+
}
|
|
73
|
+
get handlePromise() {
|
|
74
|
+
return this.#handlePromise;
|
|
37
75
|
}
|
|
38
76
|
get isObserved() {
|
|
39
77
|
if (this.#observers) {
|
|
@@ -70,7 +108,7 @@ class BasicObservable {
|
|
|
70
108
|
try {
|
|
71
109
|
result = observer(...payload);
|
|
72
110
|
} catch (e) {
|
|
73
|
-
this.#
|
|
111
|
+
this.#handleError(asError(e), observer);
|
|
74
112
|
}
|
|
75
113
|
if (this.#once?.has(observer)) {
|
|
76
114
|
this.#once.delete(observer);
|
|
@@ -80,25 +118,18 @@ class BasicObservable {
|
|
|
80
118
|
continue;
|
|
81
119
|
}
|
|
82
120
|
if (MaybePromise.is(result)) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
);
|
|
121
|
+
result = this.#handlePromise(Promise.resolve(result), observer);
|
|
122
|
+
if (MaybePromise.is(result)) {
|
|
123
|
+
return result.then((result2) => {
|
|
124
|
+
if (result2 === void 0) {
|
|
125
|
+
return emitNext();
|
|
126
|
+
}
|
|
127
|
+
return result2;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
if (result === void 0) {
|
|
94
131
|
continue;
|
|
95
132
|
}
|
|
96
|
-
return result.then((result2) => {
|
|
97
|
-
if (result2 === void 0) {
|
|
98
|
-
return emitNext();
|
|
99
|
-
}
|
|
100
|
-
return result2;
|
|
101
|
-
});
|
|
102
133
|
}
|
|
103
134
|
return result;
|
|
104
135
|
}
|
|
@@ -175,12 +206,12 @@ class BasicObservable {
|
|
|
175
206
|
};
|
|
176
207
|
}
|
|
177
208
|
}
|
|
178
|
-
function constructObservable(
|
|
179
|
-
return new BasicObservable(
|
|
209
|
+
function constructObservable(handleError) {
|
|
210
|
+
return new BasicObservable(handleError);
|
|
180
211
|
}
|
|
181
212
|
const Observable = constructObservable;
|
|
182
|
-
function constructAsyncObservable(
|
|
183
|
-
return new BasicObservable(
|
|
213
|
+
function constructAsyncObservable(handleError) {
|
|
214
|
+
return new BasicObservable(handleError, true);
|
|
184
215
|
}
|
|
185
216
|
const AsyncObservable = constructAsyncObservable;
|
|
186
217
|
function event(emitter, name) {
|
|
@@ -191,6 +222,8 @@ function event(emitter, name) {
|
|
|
191
222
|
return observer;
|
|
192
223
|
}
|
|
193
224
|
class EventEmitter {
|
|
225
|
+
// True private screws up TS types
|
|
226
|
+
events;
|
|
194
227
|
emit(name, ...payload) {
|
|
195
228
|
event(this, name).emit(...payload);
|
|
196
229
|
}
|
|
@@ -200,13 +233,32 @@ class EventEmitter {
|
|
|
200
233
|
removeListener(name, handler) {
|
|
201
234
|
event(this, name).off(handler);
|
|
202
235
|
}
|
|
236
|
+
addEvent(name, event2) {
|
|
237
|
+
if (!this.events) {
|
|
238
|
+
this.events = {};
|
|
239
|
+
}
|
|
240
|
+
this.events[name] = event2;
|
|
241
|
+
}
|
|
242
|
+
getEvent(name) {
|
|
243
|
+
if (!this.events || !(name in this.events)) {
|
|
244
|
+
throw new ImplementationError(`No such event ${name}`);
|
|
245
|
+
}
|
|
246
|
+
return this.events[name] ?? (this.events[name] = Observable());
|
|
247
|
+
}
|
|
248
|
+
hasEvent(name, onlyIfInitialized = false) {
|
|
249
|
+
return this.events && (onlyIfInitialized ? this.events[name] : name in this.events);
|
|
250
|
+
}
|
|
203
251
|
get eventNames() {
|
|
204
|
-
return Object.keys(this
|
|
252
|
+
return this.events ? Object.keys(this.events) : [];
|
|
205
253
|
}
|
|
206
254
|
[Symbol.dispose]() {
|
|
207
|
-
|
|
208
|
-
|
|
255
|
+
if (!this.events) {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
for (const event2 of Object.values(this.events)) {
|
|
259
|
+
event2?.[Symbol.dispose]?.();
|
|
209
260
|
}
|
|
261
|
+
this.events = void 0;
|
|
210
262
|
}
|
|
211
263
|
}
|
|
212
264
|
class ObservableProxy extends BasicObservable {
|
|
@@ -227,13 +279,13 @@ class ObservableProxy extends BasicObservable {
|
|
|
227
279
|
this.#target.off(this.#emitter);
|
|
228
280
|
super[Symbol.dispose]();
|
|
229
281
|
}
|
|
230
|
-
get isAsync() {
|
|
231
|
-
return this.#target.isAsync;
|
|
232
|
-
}
|
|
233
282
|
get isObserved() {
|
|
234
283
|
return this.#target.isObserved;
|
|
235
284
|
}
|
|
236
285
|
emit;
|
|
286
|
+
get target() {
|
|
287
|
+
return this.#target;
|
|
288
|
+
}
|
|
237
289
|
}
|
|
238
290
|
class ObserverGroup {
|
|
239
291
|
#defaultTarget;
|
|
@@ -305,6 +357,215 @@ class ObserverGroup {
|
|
|
305
357
|
this.#boundObservers.clear();
|
|
306
358
|
}
|
|
307
359
|
}
|
|
360
|
+
class QuietObservable extends BasicObservable {
|
|
361
|
+
#emitAutomatically = QuietObservable.defaults.emitAutomatically;
|
|
362
|
+
#suppressionEnabled = QuietObservable.defaults.suppressionEnabled;
|
|
363
|
+
#minimumEmitIntervalMs = QuietObservable.defaults.minimumEmitIntervalMs;
|
|
364
|
+
#shouldEmit;
|
|
365
|
+
#source;
|
|
366
|
+
#sink;
|
|
367
|
+
#sourceObserver;
|
|
368
|
+
#sinkObserver;
|
|
369
|
+
#deferredPayload;
|
|
370
|
+
#lastEmitAt;
|
|
371
|
+
#emitTimer;
|
|
372
|
+
constructor(config) {
|
|
373
|
+
super();
|
|
374
|
+
if (config) {
|
|
375
|
+
this.config = config;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
get config() {
|
|
379
|
+
return this;
|
|
380
|
+
}
|
|
381
|
+
set config(config) {
|
|
382
|
+
const { suppressionEnabled, minimumEmitIntervalMs, emitAutomatically } = config;
|
|
383
|
+
if (emitAutomatically !== void 0) {
|
|
384
|
+
this.emitAutomatically = emitAutomatically;
|
|
385
|
+
}
|
|
386
|
+
if (suppressionEnabled !== void 0) {
|
|
387
|
+
this.suppressionEnabled = suppressionEnabled;
|
|
388
|
+
}
|
|
389
|
+
if (minimumEmitIntervalMs !== void 0) {
|
|
390
|
+
this.minimumEmitIntervalMs = minimumEmitIntervalMs;
|
|
391
|
+
}
|
|
392
|
+
if ("shouldEmit" in config) {
|
|
393
|
+
this.shouldEmit = config.shouldEmit;
|
|
394
|
+
}
|
|
395
|
+
if ("source" in config) {
|
|
396
|
+
this.source = config.source;
|
|
397
|
+
}
|
|
398
|
+
if ("sink" in config) {
|
|
399
|
+
this.sink = config.sink;
|
|
400
|
+
}
|
|
401
|
+
if ("handleError" in config) {
|
|
402
|
+
this.handleError = config.handleError ?? defaultErrorHandler;
|
|
403
|
+
}
|
|
404
|
+
if ("handlePromise" in config && config.handlePromise) {
|
|
405
|
+
this.handlePromise = config.handlePromise;
|
|
406
|
+
} else {
|
|
407
|
+
this.isAsync = config.isAsync ?? false;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
get emitAutomatically() {
|
|
411
|
+
return this.#emitAutomatically;
|
|
412
|
+
}
|
|
413
|
+
set emitAutomatically(value) {
|
|
414
|
+
this.#emitAutomatically = value;
|
|
415
|
+
if (value) {
|
|
416
|
+
this.emitSoon();
|
|
417
|
+
} else if (this.#emitTimer) {
|
|
418
|
+
this.#stop();
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
get suppressionEnabled() {
|
|
422
|
+
return this.#suppressionEnabled;
|
|
423
|
+
}
|
|
424
|
+
set suppressionEnabled(value) {
|
|
425
|
+
this.#suppressionEnabled = value;
|
|
426
|
+
}
|
|
427
|
+
get minimumEmitIntervalMs() {
|
|
428
|
+
return this.#minimumEmitIntervalMs;
|
|
429
|
+
}
|
|
430
|
+
set minimumEmitIntervalMs(value) {
|
|
431
|
+
if (this.#minimumEmitIntervalMs === value) {
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
const needStart = this.#emitTimer !== void 0;
|
|
435
|
+
if (needStart) {
|
|
436
|
+
this.#stop();
|
|
437
|
+
}
|
|
438
|
+
this.#minimumEmitIntervalMs = value;
|
|
439
|
+
if (needStart) {
|
|
440
|
+
this.#start();
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
get source() {
|
|
444
|
+
return this.#source;
|
|
445
|
+
}
|
|
446
|
+
set source(source) {
|
|
447
|
+
if (this.#source === source) {
|
|
448
|
+
return;
|
|
449
|
+
}
|
|
450
|
+
if (this.#source && this.#sourceObserver) {
|
|
451
|
+
this.#source.off(this.#sourceObserver);
|
|
452
|
+
} else if (this.#sourceObserver === void 0) {
|
|
453
|
+
this.#sourceObserver = (...payload) => this.emit(...payload);
|
|
454
|
+
}
|
|
455
|
+
this.#source = source;
|
|
456
|
+
if (source) {
|
|
457
|
+
source.on(this.#sourceObserver);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
get sink() {
|
|
461
|
+
return this.#sink;
|
|
462
|
+
}
|
|
463
|
+
set sink(sink) {
|
|
464
|
+
if (this.#sink === sink) {
|
|
465
|
+
return;
|
|
466
|
+
}
|
|
467
|
+
if (this.#sink && this.#sinkObserver) {
|
|
468
|
+
this.off(this.#sinkObserver);
|
|
469
|
+
}
|
|
470
|
+
this.#sink = sink;
|
|
471
|
+
if (sink) {
|
|
472
|
+
this.#sinkObserver = (...payload) => sink.emit(...payload);
|
|
473
|
+
this.#sinkObserver[observant] = false;
|
|
474
|
+
this.on(this.#sinkObserver);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
get shouldEmit() {
|
|
478
|
+
return this.#shouldEmit;
|
|
479
|
+
}
|
|
480
|
+
set shouldEmit(shouldEmit) {
|
|
481
|
+
this.#shouldEmit = shouldEmit;
|
|
482
|
+
if (this.#deferredPayload && shouldEmit?.(...this.#deferredPayload) === false) {
|
|
483
|
+
this.#deferredPayload = void 0;
|
|
484
|
+
this.#stop();
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
get isObserved() {
|
|
488
|
+
return super.isObserved || this.#sink?.isObserved || false;
|
|
489
|
+
}
|
|
490
|
+
isObservedBy(observer) {
|
|
491
|
+
return this.#sink?.isObservedBy(observer) || this.isObservedBy(observer) || false;
|
|
492
|
+
}
|
|
493
|
+
emit(...payload) {
|
|
494
|
+
const shouldEmit = this.#shouldEmit?.(...payload);
|
|
495
|
+
if (shouldEmit === false) {
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
const immediate = shouldEmit === "now";
|
|
499
|
+
if (!immediate && !this.#emitAutomatically) {
|
|
500
|
+
this.#deferredPayload = payload;
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
const now = Time.nowMs();
|
|
504
|
+
if (immediate || !this.#suppressionEnabled || this.#lastEmitAt === void 0 || this.#lastEmitAt + this.#minimumEmitIntervalMs < now) {
|
|
505
|
+
return this.#emit(payload, now);
|
|
506
|
+
}
|
|
507
|
+
this.#deferredPayload = payload;
|
|
508
|
+
this.#start(now);
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Emit immediately, regardless of suppression configuration.
|
|
512
|
+
*/
|
|
513
|
+
emitNow() {
|
|
514
|
+
this.#stop();
|
|
515
|
+
if (this.#deferredPayload) {
|
|
516
|
+
this.#emit(this.#deferredPayload);
|
|
517
|
+
this.#deferredPayload = void 0;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Emit as soon as allowed by suppression.
|
|
522
|
+
*/
|
|
523
|
+
emitSoon() {
|
|
524
|
+
if (this.#deferredPayload && this.#emitTimer === void 0) {
|
|
525
|
+
this.#start();
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
[Symbol.dispose]() {
|
|
529
|
+
this.#stop();
|
|
530
|
+
}
|
|
531
|
+
#emit(payload, now) {
|
|
532
|
+
this.#deferredPayload = void 0;
|
|
533
|
+
this.#lastEmitAt = now ?? Time.nowMs();
|
|
534
|
+
this.#stop();
|
|
535
|
+
super.emit(...payload);
|
|
536
|
+
}
|
|
537
|
+
#start(now) {
|
|
538
|
+
if (this.#emitTimer || this.#deferredPayload === void 0) {
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
let timeout;
|
|
542
|
+
if (this.#lastEmitAt === void 0) {
|
|
543
|
+
timeout = 0;
|
|
544
|
+
} else {
|
|
545
|
+
timeout = this.#minimumEmitIntervalMs - ((now ?? Time.nowMs()) - this.#lastEmitAt);
|
|
546
|
+
}
|
|
547
|
+
if (timeout <= 0) {
|
|
548
|
+
this.emitNow();
|
|
549
|
+
} else {
|
|
550
|
+
this.#emitTimer = Time.getTimer("delayed emit", timeout, this.emitNow.bind(this));
|
|
551
|
+
this.#emitTimer.start();
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
#stop() {
|
|
555
|
+
if (this.#emitTimer) {
|
|
556
|
+
this.#emitTimer.stop();
|
|
557
|
+
this.#emitTimer = void 0;
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
((QuietObservable2) => {
|
|
562
|
+
QuietObservable2.now = "now";
|
|
563
|
+
QuietObservable2.defaults = {
|
|
564
|
+
emitAutomatically: true,
|
|
565
|
+
suppressionEnabled: true,
|
|
566
|
+
minimumEmitIntervalMs: 1e3
|
|
567
|
+
};
|
|
568
|
+
})(QuietObservable || (QuietObservable = {}));
|
|
308
569
|
export {
|
|
309
570
|
AsyncObservable,
|
|
310
571
|
BasicObservable,
|
|
@@ -312,6 +573,7 @@ export {
|
|
|
312
573
|
Observable,
|
|
313
574
|
ObservableProxy,
|
|
314
575
|
ObserverGroup,
|
|
576
|
+
QuietObservable,
|
|
315
577
|
observant
|
|
316
578
|
};
|
|
317
579
|
//# sourceMappingURL=Observable.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/Observable.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["result", "observers"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["result", "event", "observers", "QuietObservable"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/general",
|
|
3
|
-
"version": "0.13.0-alpha.0-
|
|
3
|
+
"version": "0.13.0-alpha.0-20250322-f085fa576",
|
|
4
4
|
"description": "Non-Matter support for Matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@noble/curves": "^1.8.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@matter/testing": "0.13.0-alpha.0-
|
|
39
|
+
"@matter/testing": "0.13.0-alpha.0-20250322-f085fa576"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*",
|
package/src/codec/DnsCodec.ts
CHANGED
|
@@ -411,7 +411,7 @@ export class DnsCodec {
|
|
|
411
411
|
|
|
412
412
|
static encodeQName(qname: string) {
|
|
413
413
|
const writer = new DataWriter(Endian.Big);
|
|
414
|
-
if (qname.length > 0) {
|
|
414
|
+
if (qname !== undefined && qname.length > 0) {
|
|
415
415
|
// TODO: Implement compression
|
|
416
416
|
qname.split(".").forEach(label => {
|
|
417
417
|
const labelData = Bytes.fromString(label);
|
package/src/log/Logger.ts
CHANGED
|
@@ -16,7 +16,7 @@ import { LogLevel } from "./LogLevel.js";
|
|
|
16
16
|
/**
|
|
17
17
|
* Log messages to the console. This is the default logging mechanism.
|
|
18
18
|
*/
|
|
19
|
-
export function consoleLogger(level: LogLevel, formattedLog: string) {
|
|
19
|
+
export function consoleLogger(level: LogLevel, formattedLog: string, _facility?: string) {
|
|
20
20
|
const console = (<any>consoleLogger).console;
|
|
21
21
|
switch (level) {
|
|
22
22
|
case LogLevel.DEBUG:
|
|
@@ -65,7 +65,7 @@ function logFormatterFor(formatName: string): LoggerDefinition["logFormatter"] {
|
|
|
65
65
|
type LoggerDefinition = {
|
|
66
66
|
logIdentifier: string;
|
|
67
67
|
logFormatter: (now: Date, level: LogLevel, facility: string, prefix: string, ...values: any[]) => string;
|
|
68
|
-
log: (level: LogLevel, formattedLog: string) => void;
|
|
68
|
+
log: (level: LogLevel, formattedLog: string, facility?: string) => void;
|
|
69
69
|
defaultLogLevel: LogLevel;
|
|
70
70
|
logLevels: { [facility: string]: LogLevel };
|
|
71
71
|
context?: Diagnostic.Context;
|
|
@@ -130,11 +130,19 @@ export class Logger {
|
|
|
130
130
|
Logger.logger.splice(index, 1);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Check if a logger with the matching identifier exists.
|
|
135
|
+
* @param identifier The identifier of the logger
|
|
136
|
+
*/
|
|
137
|
+
public static hasLoggerForIdentifier(identifier: string) {
|
|
138
|
+
return Logger.logger.some(logger => logger.logIdentifier === identifier);
|
|
139
|
+
}
|
|
140
|
+
|
|
133
141
|
/**
|
|
134
142
|
* Get the logger with the matching identifier.
|
|
135
143
|
* @param identifier The identifier of the logger
|
|
136
144
|
*/
|
|
137
|
-
public static
|
|
145
|
+
public static getLoggerForIdentifier(identifier: string) {
|
|
138
146
|
const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
|
|
139
147
|
if (logger === undefined) {
|
|
140
148
|
throw new NotImplementedError(`Unknown logger "${identifier}"`);
|
|
@@ -192,7 +200,7 @@ export class Logger {
|
|
|
192
200
|
* Get facility loglevels for the default logger.
|
|
193
201
|
*/
|
|
194
202
|
public static get logLevels() {
|
|
195
|
-
return Logger.
|
|
203
|
+
return Logger.getLoggerForIdentifier("default").logLevels;
|
|
196
204
|
}
|
|
197
205
|
|
|
198
206
|
/**
|
|
@@ -208,7 +216,7 @@ export class Logger {
|
|
|
208
216
|
* Get default loglevel for the default logger.
|
|
209
217
|
*/
|
|
210
218
|
public static get defaultLogLevel() {
|
|
211
|
-
return Logger.
|
|
219
|
+
return Logger.getLoggerForIdentifier("default").defaultLogLevel;
|
|
212
220
|
}
|
|
213
221
|
|
|
214
222
|
/**
|
|
@@ -216,7 +224,7 @@ export class Logger {
|
|
|
216
224
|
*
|
|
217
225
|
* @param log The log function to set
|
|
218
226
|
*/
|
|
219
|
-
public static set log(log: (level: LogLevel, formattedLog: string) => void) {
|
|
227
|
+
public static set log(log: (level: LogLevel, formattedLog: string, facility?: string) => void) {
|
|
220
228
|
Logger.setLogger("default", log);
|
|
221
229
|
}
|
|
222
230
|
|
|
@@ -224,7 +232,7 @@ export class Logger {
|
|
|
224
232
|
* Get the log function for the default logger.
|
|
225
233
|
*/
|
|
226
234
|
public static get log() {
|
|
227
|
-
return Logger.
|
|
235
|
+
return Logger.getLoggerForIdentifier("default").log;
|
|
228
236
|
}
|
|
229
237
|
|
|
230
238
|
/**
|
|
@@ -242,7 +250,7 @@ export class Logger {
|
|
|
242
250
|
* Get the log formatter for the default logger.
|
|
243
251
|
*/
|
|
244
252
|
public static get logFormatter() {
|
|
245
|
-
return Logger.
|
|
253
|
+
return Logger.getLoggerForIdentifier("default").logFormatter;
|
|
246
254
|
}
|
|
247
255
|
|
|
248
256
|
/**
|
|
@@ -296,7 +304,10 @@ export class Logger {
|
|
|
296
304
|
* @param identifier The identifier of the logger
|
|
297
305
|
* @param log The log function to set
|
|
298
306
|
*/
|
|
299
|
-
public static setLogger(
|
|
307
|
+
public static setLogger(
|
|
308
|
+
identifier: string,
|
|
309
|
+
log: (level: LogLevel, formattedLog: string, facility?: string) => void,
|
|
310
|
+
) {
|
|
300
311
|
const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
|
|
301
312
|
if (logger) {
|
|
302
313
|
logger.log = log;
|
|
@@ -415,7 +426,7 @@ export class Logger {
|
|
|
415
426
|
if (!Logger) {
|
|
416
427
|
throw new Error("No logger loaded, cannot capture logs");
|
|
417
428
|
}
|
|
418
|
-
const logger = Logger.
|
|
429
|
+
const logger = Logger.getLoggerForIdentifier(fromLogger);
|
|
419
430
|
const actualLogSettings = {
|
|
420
431
|
logFormatter: logger.logFormatter,
|
|
421
432
|
log: logger.log,
|
|
@@ -465,7 +476,11 @@ export class Logger {
|
|
|
465
476
|
}
|
|
466
477
|
|
|
467
478
|
logger.context.run(() =>
|
|
468
|
-
logger.log(
|
|
479
|
+
logger.log(
|
|
480
|
+
level,
|
|
481
|
+
logger.logFormatter(Time.now(), level, this.#name, nestingPrefix(), values),
|
|
482
|
+
this.#name,
|
|
483
|
+
),
|
|
469
484
|
);
|
|
470
485
|
}
|
|
471
486
|
}
|
package/src/time/Time.ts
CHANGED
|
@@ -35,12 +35,12 @@ export interface Participant {
|
|
|
35
35
|
/**
|
|
36
36
|
* Commit phase one.
|
|
37
37
|
*/
|
|
38
|
-
commit1()
|
|
38
|
+
commit1?: () => MaybePromise;
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* Commit phase two.
|
|
42
42
|
*/
|
|
43
|
-
commit2()
|
|
43
|
+
commit2?: () => MaybePromise;
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
46
|
* Post-commit logic.
|
|
@@ -50,5 +50,5 @@ export interface Participant {
|
|
|
50
50
|
/**
|
|
51
51
|
* Drop isolated writes and revert to original canonical source.
|
|
52
52
|
*/
|
|
53
|
-
rollback()
|
|
53
|
+
rollback?: () => MaybePromise;
|
|
54
54
|
}
|
|
@@ -55,7 +55,7 @@ export interface Transaction {
|
|
|
55
55
|
readonly waitingOn: Iterable<Transaction> | undefined;
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
|
-
* Listen for transaction commit or roll back. This may occur more than once for a given.
|
|
58
|
+
* Listen for transaction commit or roll back. This may occur more than once for a given transaction.
|
|
59
59
|
*/
|
|
60
60
|
onShared(actor: () => void, once?: boolean): void;
|
|
61
61
|
|
package/src/transaction/Tx.ts
CHANGED
|
@@ -564,7 +564,7 @@ class Tx implements Transaction {
|
|
|
564
564
|
};
|
|
565
565
|
|
|
566
566
|
try {
|
|
567
|
-
const result = participant.commit1();
|
|
567
|
+
const result = participant.commit1?.();
|
|
568
568
|
if (MaybePromise.is(result)) {
|
|
569
569
|
if (!asyncCommits) {
|
|
570
570
|
asyncCommits = [];
|
|
@@ -605,7 +605,7 @@ class Tx implements Transaction {
|
|
|
605
605
|
let ongoing: undefined | Array<Promise<void>>;
|
|
606
606
|
for (const participant of this.participants) {
|
|
607
607
|
const promise = MaybePromise.then(
|
|
608
|
-
() => participant.commit2(),
|
|
608
|
+
() => participant.commit2?.(),
|
|
609
609
|
undefined,
|
|
610
610
|
error => {
|
|
611
611
|
logger.error(`Error committing (phase two) ${participant}, state inconsistency possible:`, error);
|
|
@@ -671,7 +671,7 @@ class Tx implements Transaction {
|
|
|
671
671
|
for (const participant of this.participants) {
|
|
672
672
|
// Perform rollback
|
|
673
673
|
const promise = MaybePromise.then(
|
|
674
|
-
() => participant.rollback(),
|
|
674
|
+
() => participant.rollback?.(),
|
|
675
675
|
undefined,
|
|
676
676
|
error => {
|
|
677
677
|
logger.error(`Error rolling back ${participant}, state inconsistency possible:`, error);
|