@matter/general 0.16.1 → 0.16.2-alpha.0-20260114-d3127faee
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/net/ServerAddress.d.ts +52 -14
- package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
- package/dist/cjs/net/ServerAddress.js +41 -6
- package/dist/cjs/net/ServerAddress.js.map +2 -2
- package/dist/cjs/net/ServerAddressSet.d.ts +65 -0
- package/dist/cjs/net/ServerAddressSet.d.ts.map +1 -0
- package/dist/cjs/net/ServerAddressSet.js +144 -0
- package/dist/cjs/net/ServerAddressSet.js.map +6 -0
- package/dist/cjs/net/dns-sd/MdnsSocket.d.ts +40 -0
- package/dist/cjs/net/dns-sd/MdnsSocket.d.ts.map +1 -0
- package/dist/cjs/net/dns-sd/MdnsSocket.js +164 -0
- package/dist/cjs/net/dns-sd/MdnsSocket.js.map +6 -0
- package/dist/cjs/net/dns-sd/index.d.ts +7 -0
- package/dist/cjs/net/dns-sd/index.d.ts.map +1 -0
- package/dist/cjs/net/dns-sd/index.js +24 -0
- package/dist/cjs/net/dns-sd/index.js.map +6 -0
- package/dist/cjs/net/index.d.ts +2 -0
- package/dist/cjs/net/index.d.ts.map +1 -1
- package/dist/cjs/net/index.js +2 -0
- package/dist/cjs/net/index.js.map +1 -1
- package/dist/cjs/util/Abort.d.ts +9 -0
- package/dist/cjs/util/Abort.d.ts.map +1 -1
- package/dist/cjs/util/Abort.js +20 -0
- package/dist/cjs/util/Abort.js.map +1 -1
- package/dist/cjs/util/Heap.d.ts +84 -0
- package/dist/cjs/util/Heap.d.ts.map +1 -0
- package/dist/cjs/util/Heap.js +286 -0
- package/dist/cjs/util/Heap.js.map +6 -0
- package/dist/cjs/util/Observable.d.ts +29 -6
- package/dist/cjs/util/Observable.d.ts.map +1 -1
- package/dist/cjs/util/Observable.js +40 -6
- package/dist/cjs/util/Observable.js.map +1 -1
- package/dist/cjs/util/Promises.d.ts +3 -0
- package/dist/cjs/util/Promises.d.ts.map +1 -1
- package/dist/cjs/util/Promises.js +33 -3
- package/dist/cjs/util/Promises.js.map +2 -2
- package/dist/cjs/util/Set.d.ts.map +1 -1
- package/dist/cjs/util/Set.js +14 -8
- package/dist/cjs/util/Set.js.map +1 -1
- package/dist/cjs/util/index.d.ts +1 -0
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +1 -0
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/esm/net/ServerAddress.d.ts +52 -14
- package/dist/esm/net/ServerAddress.d.ts.map +1 -1
- package/dist/esm/net/ServerAddress.js +41 -6
- package/dist/esm/net/ServerAddress.js.map +2 -2
- package/dist/esm/net/ServerAddressSet.d.ts +65 -0
- package/dist/esm/net/ServerAddressSet.d.ts.map +1 -0
- package/dist/esm/net/ServerAddressSet.js +124 -0
- package/dist/esm/net/ServerAddressSet.js.map +6 -0
- package/dist/esm/net/dns-sd/MdnsSocket.d.ts +40 -0
- package/dist/esm/net/dns-sd/MdnsSocket.d.ts.map +1 -0
- package/dist/esm/net/dns-sd/MdnsSocket.js +149 -0
- package/dist/esm/net/dns-sd/MdnsSocket.js.map +6 -0
- package/dist/esm/net/dns-sd/index.d.ts +7 -0
- package/dist/esm/net/dns-sd/index.d.ts.map +1 -0
- package/dist/esm/net/dns-sd/index.js +7 -0
- package/dist/esm/net/dns-sd/index.js.map +6 -0
- package/dist/esm/net/index.d.ts +2 -0
- package/dist/esm/net/index.d.ts.map +1 -1
- package/dist/esm/net/index.js +2 -0
- package/dist/esm/net/index.js.map +1 -1
- package/dist/esm/util/Abort.d.ts +9 -0
- package/dist/esm/util/Abort.d.ts.map +1 -1
- package/dist/esm/util/Abort.js +20 -0
- package/dist/esm/util/Abort.js.map +1 -1
- package/dist/esm/util/Heap.d.ts +84 -0
- package/dist/esm/util/Heap.d.ts.map +1 -0
- package/dist/esm/util/Heap.js +266 -0
- package/dist/esm/util/Heap.js.map +6 -0
- package/dist/esm/util/Observable.d.ts +29 -6
- package/dist/esm/util/Observable.d.ts.map +1 -1
- package/dist/esm/util/Observable.js +40 -6
- package/dist/esm/util/Observable.js.map +1 -1
- package/dist/esm/util/Promises.d.ts +3 -0
- package/dist/esm/util/Promises.d.ts.map +1 -1
- package/dist/esm/util/Promises.js +33 -3
- package/dist/esm/util/Promises.js.map +2 -2
- package/dist/esm/util/Set.d.ts.map +1 -1
- package/dist/esm/util/Set.js +14 -8
- package/dist/esm/util/Set.js.map +1 -1
- package/dist/esm/util/index.d.ts +1 -0
- package/dist/esm/util/index.d.ts.map +1 -1
- package/dist/esm/util/index.js +1 -0
- package/dist/esm/util/index.js.map +1 -1
- package/package.json +2 -2
- package/src/net/ServerAddress.ts +93 -19
- package/src/net/ServerAddressSet.ts +225 -0
- package/src/net/dns-sd/MdnsSocket.ts +203 -0
- package/src/net/dns-sd/index.ts +7 -0
- package/src/net/index.ts +2 -0
- package/src/util/Abort.ts +25 -0
- package/src/util/Heap.ts +332 -0
- package/src/util/Observable.ts +74 -10
- package/src/util/Promises.ts +61 -4
- package/src/util/Set.ts +15 -8
- package/src/util/index.ts +1 -0
package/dist/cjs/net/index.d.ts
CHANGED
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
export * from "./AppAddress.js";
|
|
7
7
|
export * from "./Channel.js";
|
|
8
8
|
export * from "./ConnectionlessTransport.js";
|
|
9
|
+
export * from "./dns-sd/index.js";
|
|
9
10
|
export * from "./http/index.js";
|
|
10
11
|
export * from "./mock/index.js";
|
|
11
12
|
export * from "./mqtt/index.js";
|
|
12
13
|
export * from "./Network.js";
|
|
13
14
|
export * from "./RetrySchedule.js";
|
|
14
15
|
export * from "./ServerAddress.js";
|
|
16
|
+
export * from "./ServerAddressSet.js";
|
|
15
17
|
export * from "./udp/index.js";
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/net/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/net/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
|
package/dist/cjs/net/index.js
CHANGED
|
@@ -18,12 +18,14 @@ module.exports = __toCommonJS(net_exports);
|
|
|
18
18
|
__reExport(net_exports, require("./AppAddress.js"), module.exports);
|
|
19
19
|
__reExport(net_exports, require("./Channel.js"), module.exports);
|
|
20
20
|
__reExport(net_exports, require("./ConnectionlessTransport.js"), module.exports);
|
|
21
|
+
__reExport(net_exports, require("./dns-sd/index.js"), module.exports);
|
|
21
22
|
__reExport(net_exports, require("./http/index.js"), module.exports);
|
|
22
23
|
__reExport(net_exports, require("./mock/index.js"), module.exports);
|
|
23
24
|
__reExport(net_exports, require("./mqtt/index.js"), module.exports);
|
|
24
25
|
__reExport(net_exports, require("./Network.js"), module.exports);
|
|
25
26
|
__reExport(net_exports, require("./RetrySchedule.js"), module.exports);
|
|
26
27
|
__reExport(net_exports, require("./ServerAddress.js"), module.exports);
|
|
28
|
+
__reExport(net_exports, require("./ServerAddressSet.js"), module.exports);
|
|
27
29
|
__reExport(net_exports, require("./udp/index.js"), module.exports);
|
|
28
30
|
/**
|
|
29
31
|
* @license
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,4BANd;AAOA,wBAAc,yBAPd;AAQA,wBAAc,yCARd;AASA,wBAAc,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,4BANd;AAOA,wBAAc,yBAPd;AAQA,wBAAc,yCARd;AASA,wBAAc,8BATd;AAUA,wBAAc,4BAVd;AAWA,wBAAc,4BAXd;AAYA,wBAAc,4BAZd;AAaA,wBAAc,yBAbd;AAcA,wBAAc,+BAdd;AAeA,wBAAc,+BAfd;AAgBA,wBAAc,kCAhBd;AAiBA,wBAAc,2BAjBd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/cjs/util/Abort.d.ts
CHANGED
|
@@ -28,6 +28,10 @@ export declare class Abort extends Callable<[reason?: Error]> implements AbortCo
|
|
|
28
28
|
* If aborted returns undefined.
|
|
29
29
|
*/
|
|
30
30
|
race<T>(...promises: Array<T | PromiseLike<T>>): Promise<Awaited<T> | void>;
|
|
31
|
+
/**
|
|
32
|
+
* Race with throw on abort.
|
|
33
|
+
*/
|
|
34
|
+
attempt<T>(...promises: Array<T | PromiseLike<T>>): Promise<T>;
|
|
31
35
|
/**
|
|
32
36
|
* Free resources.
|
|
33
37
|
*
|
|
@@ -36,6 +40,7 @@ export declare class Abort extends Callable<[reason?: Error]> implements AbortCo
|
|
|
36
40
|
*/
|
|
37
41
|
close(): void;
|
|
38
42
|
[Symbol.dispose](): void;
|
|
43
|
+
if(condition?: unknown, reason?: Error): void;
|
|
39
44
|
get aborted(): boolean;
|
|
40
45
|
set onabort(onabort: ((this: AbortSignal, ev: Event) => any) | null);
|
|
41
46
|
get onabort(): ((this: AbortSignal, ev: Event) => any) | null;
|
|
@@ -91,6 +96,10 @@ export declare namespace Abort {
|
|
|
91
96
|
* abort reason.
|
|
92
97
|
*/
|
|
93
98
|
function race<T>(signal: Signal | undefined, ...promises: Array<T | PromiseLike<T>>): Promise<Awaited<T> | void>;
|
|
99
|
+
/**
|
|
100
|
+
* Race with throw on abort.
|
|
101
|
+
*/
|
|
102
|
+
function attempt<T>(signal: Signal | undefined, ...promises: Array<T | PromiseLike<T>>): Promise<T>;
|
|
94
103
|
/**
|
|
95
104
|
* Perform abortable sleep.
|
|
96
105
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Abort.d.ts","sourceRoot":"","sources":["../../../src/util/Abort.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Abort.d.ts","sourceRoot":"","sources":["../../../src/util/Abort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;;;;;;;;;;GAWG;AACH,qBAAa,KAAM,SAAQ,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAE,YAAW,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC;;gBAejG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAE,KAAK,CAAC,OAAY;IAyC3D,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG;IAIlB,IAAI,MAAM,gBAET;IAED;;;;OAIG;IACG,IAAI,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAIjF;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAIvD;;;;;OAKG;IACH,KAAK;IASL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK;IAMtC,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,EAElE;IAED,IAAI,OAAO,IAJU,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAMlE;IAED,IAAI,MAAM,UAET;IAED,cAAc;IAId,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAClC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EACzE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GACxE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAQnC,gBAAgB,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAChD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,GAAG,EAChE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI;IACP,gBAAgB,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI;IAKP,mBAAmB,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACnD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,GAAG,EAChE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI;IACP,mBAAmB,CACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI;IAKP,aAAa,CAAC,KAAK,EAAE,KAAK;CAG7B;AAED;;GAEG;AACH,yBAAiB,KAAK,CAAC;IACnB;;OAEG;IACH,UAAiB,OAAO;QACpB;;;;;;;WAOG;QACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAE1B;;;;WAIG;QACH,OAAO,CAAC,EAAE,QAAQ,CAAC;QAEnB;;WAEG;QACH,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;KACtC;IAED;;OAEG;IACH,KAAY,MAAM,GAAG,eAAe,GAAG,WAAW,CAAC;IAEnD;;OAEG;IACH,SAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,uBAU5C;IAED;;;;;OAKG;IACH,SAAgB,IAAI,CAAC,CAAC,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAqB5B;IAED;;OAEG;IACH,SAAsB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,cAOlG;IAED;;OAEG;IACH,SAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,iBAMvF;IAED;;;;;;;OAOG;IACH,SAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAE7E;IAED;;OAEG;IACH,SAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,SAErD;IAED;;OAEG;IACH,SAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,cAoB9D;CACJ"}
|
package/dist/cjs/util/Abort.js
CHANGED
|
@@ -87,6 +87,12 @@ class Abort extends import_Function.Callable {
|
|
|
87
87
|
async race(...promises) {
|
|
88
88
|
return Abort.race(this, ...promises);
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Race with throw on abort.
|
|
92
|
+
*/
|
|
93
|
+
async attempt(...promises) {
|
|
94
|
+
return Abort.attempt(this, ...promises);
|
|
95
|
+
}
|
|
90
96
|
/**
|
|
91
97
|
* Free resources.
|
|
92
98
|
*
|
|
@@ -104,6 +110,11 @@ class Abort extends import_Function.Callable {
|
|
|
104
110
|
[Symbol.dispose]() {
|
|
105
111
|
this.close();
|
|
106
112
|
}
|
|
113
|
+
if(condition, reason) {
|
|
114
|
+
if (condition) {
|
|
115
|
+
this.abort(reason);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
107
118
|
get aborted() {
|
|
108
119
|
return this.signal.aborted;
|
|
109
120
|
}
|
|
@@ -166,6 +177,15 @@ class Abort extends import_Function.Callable {
|
|
|
166
177
|
return import_Promises.SafePromise.race(promises);
|
|
167
178
|
}
|
|
168
179
|
Abort2.race = race;
|
|
180
|
+
async function attempt(signal, ...promises) {
|
|
181
|
+
if (signal && "signal" in signal) {
|
|
182
|
+
signal = signal.signal;
|
|
183
|
+
}
|
|
184
|
+
const result = await race(signal, ...promises);
|
|
185
|
+
signal?.throwIfAborted();
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
Abort2.attempt = attempt;
|
|
169
189
|
function sleep(description, abort, duration) {
|
|
170
190
|
let timer;
|
|
171
191
|
const rested = new Promise((resolve) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/Abort.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAA2C;AAE3C,kBAA4B;AAC5B,mBAAwB;AACxB,sBAAyB;AACzB,sBAA4B;AAX5B;AAAA;AAAA;AAAA;AAAA;AAyBO,MAAM,cAAc,yBAAuF;AAAA;AAAA,EAE9G;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EAEA,YAAY,EAAE,OAAO,SAAS,QAAQ,IAAmB,CAAC,GAAG;AACzD,UAAM,MAAM,KAAK,MAAM,CAAC;AAExB,SAAK,cAAc,IAAI,gBAAgB;AAEvC,UAAM,OAAO,CAAC,WAAiB;AAC3B,WAAK,MAAM,MAAM;AAAA,IACrB;AACA,WAAO,eAAe,MAAM,OAAO,eAAe,IAAI,CAAC;AAEvD,QAAI,SAAS,CAAC,MAAM,QAAQ,KAAK,GAAG;AAChC,cAAQ,CAAC,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,QAAQ;AACf,YAAM,aAAa,MAAM,IAAI,CAAAA,WAAU,YAAYA,SAAQA,OAAM,SAASA,MAAM;AAChF,WAAK,cAAc;AAEnB,WAAK,YAAY,CAAC,WAAgB,KAAK,MAAM,MAAM;AACnD,iBAAW,aAAa,YAAY;AAChC,kBAAU,iBAAiB,SAAS,KAAK,SAAS;AAAA,MACtD;AAAA,IACJ;AAEA,QAAI,SAAS;AACT,WAAK,WAAW,iBAAK,iBAAiB,mBAAmB,SAAS,MAAM;AACpE,YAAI,KAAK,SAAS;AACd;AAAA,QACJ;AAEA,aAAK,MAAM,IAAI,gCAAa,CAAC;AAAA,MACjC,CAAC;AAED,WAAK,SAAS,MAAM;AAAA,IACxB;AAEA,QAAI,SAAS;AACT,WAAK,iBAAiB,SAAS,MAAM,QAAQ,KAAK,MAAM,CAAC;AAAA,IAC7D;AAAA,EACJ;AAAA,EAEA,MAAM,QAAc;AAChB,SAAK,YAAY,MAAM,UAAU,IAAI,gCAAa,CAAC;AAAA,EACvD;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,YAAY;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QAAW,UAAiE;AAC9E,WAAO,MAAM,KAAK,MAAM,GAAG,QAAQ;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAc,UAAqC;AACrD,WAAO,MAAM,QAAQ,MAAM,GAAG,QAAQ;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAQ;AACJ,SAAK,UAAU,KAAK;AACpB,QAAI,KAAK,aAAa,KAAK,aAAa;AACpC,iBAAW,aAAa,KAAK,aAAa;AACtC,kBAAU,oBAAoB,SAAS,KAAK,SAAS;AAAA,MACzD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,CAAC,OAAO,OAAO,IAAI;AACf,SAAK,MAAM;AAAA,EACf;AAAA,EAEA,GAAG,WAAqB,QAAgB;AACpC,QAAI,WAAW;AACX,WAAK,MAAM,MAAM;AAAA,IACrB;AAAA,EACJ;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,IAAI,QAAQ,SAAyD;AACjE,SAAK,OAAO,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,IAAI,SAAS;AACT,eAAO,sBAAQ,KAAK,OAAO,MAAM;AAAA,EACrC;AAAA,EAEA,iBAAiB;AACb,SAAK,OAAO,eAAe;AAAA,EAC/B;AAAA,EAEA,KACI,aACA,YACgC;AAChC,QAAI,CAAC,KAAK,UAAU;AAChB,WAAK,WAAW,IAAI,QAAQ,aAAY,KAAK,WAAW,OAAQ;AAChE,WAAK,iBAAiB,SAAS,MAAM,KAAK,aAAU,sBAAQ,KAAK,MAAM,CAAC,CAAC;AAAA,IAC7E;AACA,WAAO,KAAK,SAAS,KAAK,aAAa,UAAU;AAAA,EACrD;AAAA,EAYA,iBAAiB,MAAW,UAAe,SAAe;AACtD,SAAK,OAAO,iBAAiB,MAAM,UAAU,OAAO;AAAA,EACxD;AAAA,EAYA,oBAAoB,MAAW,UAAe,SAAe;AACzD,SAAK,OAAO,iBAAiB,MAAM,UAAU,OAAO;AAAA,EACxD;AAAA,EAEA,cAAc,OAAc;AACxB,WAAO,KAAK,OAAO,cAAc,KAAK;AAAA,EAC1C;AACJ;AAAA,CAKO,CAAUC,WAAV;AAoCI,WAAS,GAAG,QAA4B;AAC3C,QAAI,CAAC,QAAQ;AACT;AAAA,IACJ;AAEA,QAAI,YAAY,QAAQ;AACpB,eAAS,OAAO;AAAA,IACpB;AAEA,WAAO,OAAO;AAAA,EAClB;AAVO,EAAAA,OAAS;AAkBT,WAAS,KACZ,WACG,UACuB;AAC1B,QAAI,QAAQ;AACR,UAAI,YAAY,QAAQ;AACpB,iBAAS,OAAO;AAAA,MACpB;AAEA,UAAI;AACJ,YAAM,UAAU,IAAI,QAAc,aAAW;AACzC,cAAM,UAAU,MAAM,QAAQ;AAC9B,QAAC,OAAuB,iBAAiB,SAAS,OAAO;AACzD,cAAM,MAAO,OAAuB,oBAAoB,SAAS,OAAO;AAAA,MAC5E,CAAC;AAED,aAAO,4BAAY,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,QAAQ,GAAI;AAAA,IAChE;AAEA,QAAI,SAAS,WAAW,GAAG;AACvB,aAAO,QAAQ,QAAQ,SAAS,CAAC,CAAC;AAAA,IACtC;AAEA,WAAO,4BAAY,KAAK,QAAQ;AAAA,EACpC;AAxBO,EAAAA,OAAS;AA6BhB,iBAAsB,QAAW,WAA+B,UAAqC;AACjG,QAAI,UAAU,YAAY,QAAQ;AAC9B,eAAS,OAAO;AAAA,IACpB;AACA,UAAM,SAAS,MAAM,KAAK,QAAQ,GAAG,QAAQ;AAC7C,YAAQ,eAAe;AACvB,WAAO;AAAA,EACX;AAPA,EAAAA,OAAsB;AAYf,WAAS,MAAM,aAAqB,OAA2B,UAAoB;AACtF,QAAI;AACJ,UAAM,SAAS,IAAI,QAAc,aAAW;AACxC,cAAQ,iBAAK,SAAS,aAAa,UAAU,MAAM,QAAQ,CAAC;AAAA,IAChE,CAAC;AACD,WAAO,KAAK,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAK,KAAK,KAAK,CAAC;AAAA,EAC7D;AANO,EAAAA,OAAS;AAgBT,WAAS,QAAQ,QAA4B,SAA2B;AAC3E,WAAO,IAAIA,OAAM,EAAE,OAAO,QAAQ,QAAQ,CAAC;AAAA,EAC/C;AAFO,EAAAA,OAAS;AAOT,WAAS,OAAO,SAAiC;AACpD,WAAO,IAAIA,OAAM,EAAE,OAAO,CAAC,GAAI,QAAQ,OAAO,YAAU,MAAM,CAAc,EAAE,CAAC;AAAA,EACnF;AAFO,EAAAA,OAAS;AAOT,WAAS,WAAW,QAAsC;AAC7D,QAAI,CAAC,QAAQ;AACT,aAAO,MAAM;AAAA,MAAC;AAAA,IAClB;AAEA,QAAI,WAAW,UAAU,OAAO,OAAO,UAAU,UAAU;AACvD,eAAS,OAAO;AAAA,IACpB;AACA,QAAI,CAAC,QAAQ;AACT,aAAO,MAAM;AAAA,MAAC;AAAA,IAClB;AAEA,QAAI,YAAY,QAAQ;AACpB,eAAS,OAAO;AAAA,IACpB;AACA,QAAI,CAAC,QAAQ;AACT,aAAO,MAAM;AAAA,MAAC;AAAA,IAClB;AAEA,WAAQ,OAAuB,eAAe,KAAK,MAAM;AAAA,EAC7D;AApBO,EAAAA,OAAS;AAAA,GA7HH;",
|
|
5
5
|
"names": ["abort", "Abort"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Abort } from "./Abort.js";
|
|
7
|
+
import { Observable } from "./Observable.js";
|
|
8
|
+
/**
|
|
9
|
+
* A heap, useful as a priority queue.
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
*
|
|
13
|
+
* * Configurable as min-heap or max-heap using comparator
|
|
14
|
+
*
|
|
15
|
+
* * O(1) lookup of first item
|
|
16
|
+
*
|
|
17
|
+
* * O(log(n)) enqueue and dequeue
|
|
18
|
+
*
|
|
19
|
+
* * O(1) deletion of arbitrary position, but will add expense of maintaining index of positions
|
|
20
|
+
*
|
|
21
|
+
* * {@link added}, {@link deleted} and {@link firstChanged} events
|
|
22
|
+
*/
|
|
23
|
+
export declare class Heap<T> {
|
|
24
|
+
#private;
|
|
25
|
+
/**
|
|
26
|
+
* Create new heap.
|
|
27
|
+
*
|
|
28
|
+
* @param comparator performs ordering of items in the heap
|
|
29
|
+
* @param normalizer optionally converts items to normal form on insert
|
|
30
|
+
*/
|
|
31
|
+
constructor(comparator: (a: T, b: T) => number, normalizer?: (entry: T) => T);
|
|
32
|
+
/**
|
|
33
|
+
* Return lowest-ranked item.
|
|
34
|
+
*/
|
|
35
|
+
shift(): T | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* The lowest-ranked item.
|
|
38
|
+
*/
|
|
39
|
+
get first(): T | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* The queue length.
|
|
42
|
+
*/
|
|
43
|
+
get size(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Is the heap empty?
|
|
46
|
+
*/
|
|
47
|
+
get isEmpty(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Emits when the head of the queue changes.
|
|
50
|
+
*/
|
|
51
|
+
get firstChanged(): Observable<[T | undefined], void>;
|
|
52
|
+
/**
|
|
53
|
+
* Emits when an item is added to the heap.
|
|
54
|
+
*/
|
|
55
|
+
get added(): Observable<[T], void>;
|
|
56
|
+
/**
|
|
57
|
+
* Emits when an item is deleted.
|
|
58
|
+
*/
|
|
59
|
+
get deleted(): Observable<[T], void>;
|
|
60
|
+
/**
|
|
61
|
+
* Add an item.
|
|
62
|
+
*/
|
|
63
|
+
add(...items: T[]): void;
|
|
64
|
+
/**
|
|
65
|
+
* Delete an item.
|
|
66
|
+
*
|
|
67
|
+
* The first delete is O(n); subsequent deletes are O(1) but insertions and deletions will have additional cost
|
|
68
|
+
* associated.
|
|
69
|
+
*/
|
|
70
|
+
delete(item: T): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Remove all entries.
|
|
73
|
+
*/
|
|
74
|
+
clear(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Stream the first value from the heap until aborted.
|
|
77
|
+
*/
|
|
78
|
+
stream(abort?: Abort.Signal): AsyncGenerator<Awaited<NonNullable<T>>, void, unknown>;
|
|
79
|
+
/**
|
|
80
|
+
* Perform internal validation of queue order.
|
|
81
|
+
*/
|
|
82
|
+
validate(): void;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=Heap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heap.d.ts","sourceRoot":"","sources":["../../../src/util/Heap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,IAAI,CAAC,CAAC;;IAYf;;;;;OAKG;gBACS,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;IAK5E;;OAEG;IACH,KAAK;IAWL;;OAEG;IACH,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAEzB;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,OAAO,YAEV;IAED;;OAEG;IACH,IAAI,YAAY,sCAKf;IAED;;OAEG;IACH,IAAI,KAAK,0BAKR;IAED;;OAEG;IACH,IAAI,OAAO,0BAKV;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;IAajB;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,CAAC;IAyBd;;OAEG;IACH,KAAK;IAIL;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM;IAkClC;;OAEG;IACH,QAAQ;CA4HX"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var Heap_exports = {};
|
|
20
|
+
__export(Heap_exports, {
|
|
21
|
+
Heap: () => Heap
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(Heap_exports);
|
|
24
|
+
var import_MatterError = require("#MatterError.js");
|
|
25
|
+
var import_Abort = require("./Abort.js");
|
|
26
|
+
var import_Observable = require("./Observable.js");
|
|
27
|
+
/**
|
|
28
|
+
* @license
|
|
29
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
30
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
31
|
+
*/
|
|
32
|
+
class Heap {
|
|
33
|
+
// We encode the heap as an array for efficiency. See #leftChildOf and #rightChildOf for how to navigate the tree
|
|
34
|
+
// when encoded this way
|
|
35
|
+
#buffer = Array();
|
|
36
|
+
#compare;
|
|
37
|
+
#normalize;
|
|
38
|
+
#firstChanged;
|
|
39
|
+
#deleted;
|
|
40
|
+
#added;
|
|
41
|
+
#positions;
|
|
42
|
+
/**
|
|
43
|
+
* Create new heap.
|
|
44
|
+
*
|
|
45
|
+
* @param comparator performs ordering of items in the heap
|
|
46
|
+
* @param normalizer optionally converts items to normal form on insert
|
|
47
|
+
*/
|
|
48
|
+
constructor(comparator, normalizer) {
|
|
49
|
+
this.#compare = comparator;
|
|
50
|
+
this.#normalize = normalizer;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Return lowest-ranked item.
|
|
54
|
+
*/
|
|
55
|
+
shift() {
|
|
56
|
+
if (!this.#buffer?.length) {
|
|
57
|
+
return void 0;
|
|
58
|
+
}
|
|
59
|
+
const result = this.first;
|
|
60
|
+
this.#deleteAt(0);
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The lowest-ranked item.
|
|
65
|
+
*/
|
|
66
|
+
get first() {
|
|
67
|
+
return this.#buffer?.[0];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The queue length.
|
|
71
|
+
*/
|
|
72
|
+
get size() {
|
|
73
|
+
return this.#buffer.length;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Is the heap empty?
|
|
77
|
+
*/
|
|
78
|
+
get isEmpty() {
|
|
79
|
+
return !!this.#buffer.length;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Emits when the head of the queue changes.
|
|
83
|
+
*/
|
|
84
|
+
get firstChanged() {
|
|
85
|
+
if (!this.#firstChanged) {
|
|
86
|
+
this.#firstChanged = new import_Observable.Observable();
|
|
87
|
+
}
|
|
88
|
+
return this.#firstChanged;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Emits when an item is added to the heap.
|
|
92
|
+
*/
|
|
93
|
+
get added() {
|
|
94
|
+
if (!this.#added) {
|
|
95
|
+
this.#added = new import_Observable.Observable();
|
|
96
|
+
}
|
|
97
|
+
return this.#added;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Emits when an item is deleted.
|
|
101
|
+
*/
|
|
102
|
+
get deleted() {
|
|
103
|
+
if (!this.#deleted) {
|
|
104
|
+
this.#deleted = new import_Observable.Observable();
|
|
105
|
+
}
|
|
106
|
+
return this.#deleted;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Add an item.
|
|
110
|
+
*/
|
|
111
|
+
add(...items) {
|
|
112
|
+
for (let item of items) {
|
|
113
|
+
if (this.#normalize) {
|
|
114
|
+
item = this.#normalize(item);
|
|
115
|
+
}
|
|
116
|
+
this.#buffer.push(item);
|
|
117
|
+
this.#bubbleUp(this.#buffer.length - 1);
|
|
118
|
+
this.#added?.emit(item);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Delete an item.
|
|
123
|
+
*
|
|
124
|
+
* The first delete is O(n); subsequent deletes are O(1) but insertions and deletions will have additional cost
|
|
125
|
+
* associated.
|
|
126
|
+
*/
|
|
127
|
+
delete(item) {
|
|
128
|
+
if (this.#buffer === void 0) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
if (!this.#positions) {
|
|
132
|
+
this.#positions = /* @__PURE__ */ new Map();
|
|
133
|
+
for (let i = 0; i < this.#buffer.length; i++) {
|
|
134
|
+
this.#positions.set(this.#buffer[i], i);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (this.#normalize) {
|
|
138
|
+
item = this.#normalize(item);
|
|
139
|
+
}
|
|
140
|
+
const pos = this.#positions.get(item);
|
|
141
|
+
if (pos === void 0) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
this.#deleteAt(pos);
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Remove all entries.
|
|
149
|
+
*/
|
|
150
|
+
clear() {
|
|
151
|
+
if (this.#buffer.length) this.#buffer.length = 0;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Stream the first value from the heap until aborted.
|
|
155
|
+
*/
|
|
156
|
+
async *stream(abort) {
|
|
157
|
+
if (import_Abort.Abort.is(abort)) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
while (true) {
|
|
161
|
+
while (this.size) {
|
|
162
|
+
yield this.shift();
|
|
163
|
+
if (import_Abort.Abort.is(abort)) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
let resolve;
|
|
168
|
+
const ready = new Promise((r) => resolve = r);
|
|
169
|
+
try {
|
|
170
|
+
this.added.once(resolve);
|
|
171
|
+
await import_Abort.Abort.race(abort, ready);
|
|
172
|
+
if (import_Abort.Abort.is(abort)) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
} finally {
|
|
176
|
+
this.added.off(resolve);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Perform internal validation of queue order.
|
|
182
|
+
*/
|
|
183
|
+
validate() {
|
|
184
|
+
for (let i = 0; i < this.#buffer.length; i++) {
|
|
185
|
+
const leftChild = this.#leftChildOf(i);
|
|
186
|
+
if (leftChild < this.#buffer.length) {
|
|
187
|
+
if (this.#compare(this.#buffer[i], this.#buffer[leftChild]) > 0) {
|
|
188
|
+
throw new import_MatterError.InternalError(
|
|
189
|
+
`Heap error: buffer #${i} (${this.#buffer[i]}) is greater than left child #${leftChild} (${this.#buffer[leftChild]})`
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
const rightChild = this.#rightChildOf(i);
|
|
193
|
+
if (rightChild < this.#buffer.length) {
|
|
194
|
+
if (this.#compare(this.#buffer[i], this.#buffer[rightChild]) > 0) {
|
|
195
|
+
throw new import_MatterError.InternalError(
|
|
196
|
+
`Heap error: buffer #${i} (${this.#buffer[i]}) is greater than right child #${rightChild} (${this.#buffer[rightChild]})`
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
if (this.#compare(this.#buffer[leftChild], this.#buffer[rightChild]) > 0) {
|
|
200
|
+
throw new import_MatterError.InternalError(
|
|
201
|
+
`Heap error: buffer #${leftChild} (${this.#buffer[leftChild]}) is greater than right sibling #${rightChild} (${this.#buffer[rightChild]})`
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
#deleteAt(index) {
|
|
209
|
+
if (index >= this.#buffer.length) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const item = this.#buffer[index];
|
|
213
|
+
if (this.#buffer.length === 1) {
|
|
214
|
+
this.#buffer.length = 0;
|
|
215
|
+
} else {
|
|
216
|
+
const lastIndex = this.#buffer.length - 1;
|
|
217
|
+
this.#buffer[index] = this.#buffer[lastIndex];
|
|
218
|
+
this.#positions?.set(this.#buffer[index], index);
|
|
219
|
+
this.#buffer.length = lastIndex;
|
|
220
|
+
if (index < this.#buffer.length) {
|
|
221
|
+
if (index) {
|
|
222
|
+
index = this.#bubbleUp(index);
|
|
223
|
+
}
|
|
224
|
+
this.#sinkDown(index);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
this.#positions?.delete(item);
|
|
228
|
+
this.#deleted?.emit(item);
|
|
229
|
+
if (!index) {
|
|
230
|
+
this.#firstChanged?.emit(this.first);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
#sinkDown(index) {
|
|
234
|
+
while (true) {
|
|
235
|
+
let moveTo;
|
|
236
|
+
const leftChild = this.#leftChildOf(index);
|
|
237
|
+
if (leftChild < this.#buffer.length) {
|
|
238
|
+
if (this.#compare(this.#buffer[index], this.#buffer[leftChild]) > 0) {
|
|
239
|
+
moveTo = leftChild;
|
|
240
|
+
}
|
|
241
|
+
const rightChild = this.#rightChildOf(index);
|
|
242
|
+
if (rightChild < this.#buffer.length) {
|
|
243
|
+
if (this.#compare(this.#buffer[moveTo ?? index], this.#buffer[rightChild]) > 0) {
|
|
244
|
+
moveTo = rightChild;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (moveTo === void 0) {
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
this.#swap(index, moveTo);
|
|
252
|
+
index = moveTo;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
#bubbleUp(index) {
|
|
256
|
+
while (index) {
|
|
257
|
+
const parent = this.#parentOf(index);
|
|
258
|
+
if (this.#compare(this.#buffer[parent], this.#buffer[index]) <= 0) {
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
this.#swap(index, parent);
|
|
262
|
+
index = parent;
|
|
263
|
+
}
|
|
264
|
+
if (!index) {
|
|
265
|
+
this.#firstChanged?.emit(this.first);
|
|
266
|
+
}
|
|
267
|
+
return index;
|
|
268
|
+
}
|
|
269
|
+
#swap(index1, index2) {
|
|
270
|
+
[this.#buffer[index1], this.#buffer[index2]] = [this.#buffer[index2], this.#buffer[index1]];
|
|
271
|
+
if (this.#positions) {
|
|
272
|
+
this.#positions.set(this.#buffer[index1], index1);
|
|
273
|
+
this.#positions.set(this.#buffer[index2], index2);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
#leftChildOf(index) {
|
|
277
|
+
return 2 * index + 1;
|
|
278
|
+
}
|
|
279
|
+
#rightChildOf(index) {
|
|
280
|
+
return 2 * index + 2;
|
|
281
|
+
}
|
|
282
|
+
#parentOf(index) {
|
|
283
|
+
return Math.floor((index - 1) / 2);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=Heap.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/Heap.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -41,6 +41,14 @@ export interface Observable<T extends any[] = any[], R = void> extends AsyncIter
|
|
|
41
41
|
* Add an observer.
|
|
42
42
|
*/
|
|
43
43
|
on(observer: Observer<T, R>): void;
|
|
44
|
+
/**
|
|
45
|
+
* Add an observer that may be released via disposal.
|
|
46
|
+
*/
|
|
47
|
+
use(observer: Observer<T, R>): Disposable;
|
|
48
|
+
/**
|
|
49
|
+
* Add a "once" observer that may be released via disposal.
|
|
50
|
+
*/
|
|
51
|
+
useOnce(observer: Observer<T, R>): Disposable;
|
|
44
52
|
/**
|
|
45
53
|
* Remove an observer.
|
|
46
54
|
*/
|
|
@@ -120,6 +128,11 @@ export interface Observable<T extends any[] = any[], R = void> extends AsyncIter
|
|
|
120
128
|
* result in rejection if awaited.
|
|
121
129
|
*/
|
|
122
130
|
export interface ObservableValue<T extends [any, ...any[]] = [boolean], R extends MaybePromise<void> = void> extends Observable<T, R>, Promise<T[0]> {
|
|
131
|
+
/**
|
|
132
|
+
* The current value.
|
|
133
|
+
*
|
|
134
|
+
* Setting the value will resolve the promise interface but you must use {@link emit} to also emit an event.
|
|
135
|
+
*/
|
|
123
136
|
value: T[0] | undefined;
|
|
124
137
|
error?: Error;
|
|
125
138
|
/**
|
|
@@ -130,6 +143,9 @@ export interface ObservableValue<T extends [any, ...any[]] = [boolean], R extend
|
|
|
130
143
|
reject(cause: unknown): void;
|
|
131
144
|
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T[0]) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
|
|
132
145
|
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<T[0] | TResult>;
|
|
146
|
+
onError(handler: (cause: Error) => void): void;
|
|
147
|
+
offError(handler: (cause: Error) => void): void;
|
|
148
|
+
useError(handler: (cause: Error) => void): Disposable;
|
|
133
149
|
}
|
|
134
150
|
/**
|
|
135
151
|
* An observer may designate itself as "not observant" for the purposes of {@link Observable.isObserved} by returning
|
|
@@ -166,6 +182,12 @@ export declare class BasicObservable<T extends any[] = any[], R = void> implemen
|
|
|
166
182
|
isObservedBy(observer: Observer<T, R>): boolean;
|
|
167
183
|
emit(...payload: T): R | undefined;
|
|
168
184
|
on(observer: Observer<T, R>): void;
|
|
185
|
+
use(observer: Observer<T, R>): {
|
|
186
|
+
[Symbol.dispose]: () => void;
|
|
187
|
+
};
|
|
188
|
+
useOnce(observer: Observer<T, R>): {
|
|
189
|
+
[Symbol.dispose]: () => void;
|
|
190
|
+
};
|
|
169
191
|
off(observer: Observer<T, R>): void;
|
|
170
192
|
once(observer: Observer<T, R>): void;
|
|
171
193
|
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T[0]) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
|
|
@@ -190,20 +212,20 @@ export declare const AsyncObservable: {
|
|
|
190
212
|
/**
|
|
191
213
|
* A concrete {@link ObservableValue} implementation.
|
|
192
214
|
*/
|
|
193
|
-
export declare class BasicObservableValue<T extends [any, ...any[]] = [boolean]> extends BasicObservable<T,
|
|
215
|
+
export declare class BasicObservableValue<T extends [any, ...any[]] = [boolean], R extends MaybePromise<void> = void> extends BasicObservable<T, R> implements ObservableValue<T, R> {
|
|
194
216
|
#private;
|
|
195
217
|
constructor(value?: T[0], handleError?: ObserverErrorHandler, asyncConfig?: ObserverPromiseHandler | boolean);
|
|
196
|
-
/**
|
|
197
|
-
* The current value.
|
|
198
|
-
*
|
|
199
|
-
* This will resolve the promise interface but you must use {@link emit} to also emit an event..
|
|
200
|
-
*/
|
|
201
218
|
get value(): T[0] | undefined;
|
|
202
219
|
set value(value: T[0] | undefined);
|
|
203
220
|
get error(): Error | undefined;
|
|
204
221
|
reject(cause: unknown): void;
|
|
205
222
|
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
|
|
206
223
|
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<T | TResult>;
|
|
224
|
+
onError(handler: (cause: Error) => void): void;
|
|
225
|
+
offError(handler: (cause: Error) => void): void;
|
|
226
|
+
useError(handler: (cause: Error) => void): {
|
|
227
|
+
[Symbol.dispose]: () => void;
|
|
228
|
+
};
|
|
207
229
|
finally(onfinally?: (() => void) | null): Promise<T>;
|
|
208
230
|
[Symbol.toStringTag]: string;
|
|
209
231
|
}
|
|
@@ -309,6 +331,7 @@ export declare class ObserverGroup {
|
|
|
309
331
|
* Remove all observers. The instance can be reused afterward to add new observers.
|
|
310
332
|
*/
|
|
311
333
|
close(): void;
|
|
334
|
+
[Symbol.dispose](): void;
|
|
312
335
|
}
|
|
313
336
|
/**
|
|
314
337
|
* {@link Observer}s detached from an {@link Observable}.
|