@matter/general 0.14.0 → 0.14.1-alpha.0-20250606-a9bcd03f9
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/DerCodec.js +2 -2
- package/dist/cjs/codec/DerCodec.js.map +1 -1
- package/dist/cjs/codec/DnsCodec.js +14 -14
- package/dist/cjs/codec/DnsCodec.js.map +1 -1
- package/dist/cjs/net/Network.d.ts +1 -0
- package/dist/cjs/net/Network.d.ts.map +1 -1
- package/dist/cjs/net/Network.js +3 -1
- package/dist/cjs/net/Network.js.map +1 -1
- package/dist/cjs/net/UdpChannel.d.ts +5 -2
- package/dist/cjs/net/UdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/UdpChannel.js.map +1 -1
- package/dist/cjs/net/UdpInterface.d.ts +6 -6
- package/dist/cjs/net/UdpInterface.d.ts.map +1 -1
- package/dist/cjs/net/UdpInterface.js +32 -18
- package/dist/cjs/net/UdpInterface.js.map +1 -1
- package/dist/cjs/net/UdpMulticastServer.d.ts.map +1 -1
- package/dist/cjs/net/UdpMulticastServer.js +9 -8
- package/dist/cjs/net/UdpMulticastServer.js.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +2 -0
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.js +4 -0
- package/dist/cjs/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/cjs/time/Time.d.ts +2 -0
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +7 -0
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/util/DataReadQueue.d.ts +1 -0
- package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
- package/dist/cjs/util/DataReadQueue.js +3 -0
- package/dist/cjs/util/DataReadQueue.js.map +1 -1
- package/dist/cjs/util/DataReader.d.ts +2 -2
- package/dist/cjs/util/DataReader.d.ts.map +1 -1
- package/dist/cjs/util/DataReader.js.map +1 -1
- package/dist/cjs/util/DataWriter.d.ts +2 -2
- package/dist/cjs/util/DataWriter.d.ts.map +1 -1
- package/dist/cjs/util/DataWriter.js.map +1 -1
- package/dist/cjs/util/Ip.d.ts +1 -0
- package/dist/cjs/util/Ip.d.ts.map +1 -1
- package/dist/cjs/util/Ip.js +45 -0
- package/dist/cjs/util/Ip.js.map +1 -1
- package/dist/cjs/util/Map.d.ts +24 -0
- package/dist/cjs/util/Map.d.ts.map +1 -0
- package/dist/cjs/util/Map.js +72 -0
- package/dist/cjs/util/Map.js.map +6 -0
- package/dist/cjs/util/Set.d.ts +52 -0
- package/dist/cjs/util/Set.d.ts.map +1 -1
- package/dist/cjs/util/Set.js +136 -10
- package/dist/cjs/util/Set.js.map +2 -2
- 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/codec/DerCodec.js +3 -3
- package/dist/esm/codec/DerCodec.js.map +1 -1
- package/dist/esm/codec/DnsCodec.js +15 -15
- package/dist/esm/codec/DnsCodec.js.map +1 -1
- package/dist/esm/net/Network.d.ts +1 -0
- package/dist/esm/net/Network.d.ts.map +1 -1
- package/dist/esm/net/Network.js +3 -1
- package/dist/esm/net/Network.js.map +1 -1
- package/dist/esm/net/UdpChannel.d.ts +5 -2
- package/dist/esm/net/UdpChannel.d.ts.map +1 -1
- package/dist/esm/net/UdpChannel.js.map +1 -1
- package/dist/esm/net/UdpInterface.d.ts +6 -6
- package/dist/esm/net/UdpInterface.d.ts.map +1 -1
- package/dist/esm/net/UdpInterface.js +32 -18
- package/dist/esm/net/UdpInterface.js.map +1 -1
- package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -1
- package/dist/esm/net/UdpMulticastServer.js +9 -8
- package/dist/esm/net/UdpMulticastServer.js.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts +2 -0
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.js +4 -0
- package/dist/esm/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/esm/time/Time.d.ts +2 -0
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +7 -0
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/util/DataReadQueue.d.ts +1 -0
- package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
- package/dist/esm/util/DataReadQueue.js +3 -0
- package/dist/esm/util/DataReadQueue.js.map +1 -1
- package/dist/esm/util/DataReader.d.ts +2 -2
- package/dist/esm/util/DataReader.d.ts.map +1 -1
- package/dist/esm/util/DataReader.js.map +1 -1
- package/dist/esm/util/DataWriter.d.ts +2 -2
- package/dist/esm/util/DataWriter.d.ts.map +1 -1
- package/dist/esm/util/DataWriter.js.map +1 -1
- package/dist/esm/util/Ip.d.ts +1 -0
- package/dist/esm/util/Ip.d.ts.map +1 -1
- package/dist/esm/util/Ip.js +45 -0
- package/dist/esm/util/Ip.js.map +1 -1
- package/dist/esm/util/Map.d.ts +24 -0
- package/dist/esm/util/Map.d.ts.map +1 -0
- package/dist/esm/util/Map.js +52 -0
- package/dist/esm/util/Map.js.map +6 -0
- package/dist/esm/util/Set.d.ts +52 -0
- package/dist/esm/util/Set.d.ts.map +1 -1
- package/dist/esm/util/Set.js +136 -10
- package/dist/esm/util/Set.js.map +2 -2
- 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/codec/DerCodec.ts +5 -5
- package/src/codec/DnsCodec.ts +14 -14
- package/src/net/Network.ts +2 -0
- package/src/net/UdpChannel.ts +6 -2
- package/src/net/UdpInterface.ts +36 -17
- package/src/net/UdpMulticastServer.ts +8 -7
- package/src/net/mock/MockUdpChannel.ts +8 -0
- package/src/time/Time.ts +10 -0
- package/src/util/DataReadQueue.ts +4 -0
- package/src/util/DataReader.ts +2 -2
- package/src/util/DataWriter.ts +2 -2
- package/src/util/Ip.ts +50 -0
- package/src/util/Map.ts +65 -0
- package/src/util/Set.ts +169 -3
- package/src/util/index.ts +1 -0
package/dist/esm/time/Time.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export declare class Time {
|
|
|
21
21
|
static readonly now: () => Date;
|
|
22
22
|
nowMs(): number;
|
|
23
23
|
static readonly nowMs: () => number;
|
|
24
|
+
nowUs(): number;
|
|
25
|
+
static readonly nowUs: () => number;
|
|
24
26
|
/**
|
|
25
27
|
* Create a timer that will call callback after durationMs has passed.
|
|
26
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKlD;;;;;GAKG;AACH,qBAAa,IAAI;IACb,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;IAEvB,MAAM,CAAC,OAAO;;;MAGZ;IAEF,GAAG;IAGH,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAO,IAAI,CAAqB;IAEnD,KAAK;IAGL,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAO,MAAM,CAAuB;IAEzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAG3E,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAEpD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAGnF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAE5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAgB1D,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI7C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK;IAI9B,MAAM,KAAK,MAAM,eAEhB;CACJ;
|
|
1
|
+
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKlD;;;;;GAKG;AACH,qBAAa,IAAI;IACb,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;IAEvB,MAAM,CAAC,OAAO;;;MAGZ;IAEF,GAAG;IAGH,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAO,IAAI,CAAqB;IAEnD,KAAK;IAGL,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAO,MAAM,CAAuB;IAEzD,KAAK;IAGL,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAO,MAAM,CAAuB;IAEzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAG3E,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAEpD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAGnF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAE5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAgB1D,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI7C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK;IAI9B,MAAM,KAAK,MAAM,eAEhB;CACJ;AAWD,MAAM,WAAW,KAAK;IAClB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAElB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IAEnB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IAEpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAE7B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,KAAK,IAAI,KAAK,CAAC;IAEf,mCAAmC;IACnC,IAAI,IAAI,KAAK,CAAC;CACjB;AAED,yBAAiB,KAAK,CAAC;IACnB,KAAY,QAAQ,GAAG,MAAM,GAAG,CAAC;CACpC;AAED,qBAAa,aAAc,YAAW,KAAK;;IAUnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO;IAVhC,SAAS,UAAS;IAElB,IAAI,QAAQ,WAEX;gBAGY,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EACV,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAChC,UAAU,EAAE,OAAO;IAShC,IAAI,OAAO,IAIU,OAAO,CAF3B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAgB3B;IAED,KAAK;IAcL,IAAI;CAMP"}
|
package/dist/esm/time/Time.js
CHANGED
|
@@ -23,6 +23,10 @@ class Time {
|
|
|
23
23
|
return this.now().getTime();
|
|
24
24
|
}
|
|
25
25
|
static nowMs = () => Time.get().nowMs();
|
|
26
|
+
nowUs() {
|
|
27
|
+
return Math.floor(performance.now() + performance.timeOrigin) * 1e3;
|
|
28
|
+
}
|
|
29
|
+
static nowUs = () => Time.get().nowUs();
|
|
26
30
|
/**
|
|
27
31
|
* Create a timer that will call callback after durationMs has passed.
|
|
28
32
|
*/
|
|
@@ -69,6 +73,9 @@ class Time {
|
|
|
69
73
|
return registry;
|
|
70
74
|
}
|
|
71
75
|
}
|
|
76
|
+
if (!performance || typeof performance.now !== "function" || typeof performance.timeOrigin !== "number") {
|
|
77
|
+
Time.prototype.nowUs = () => Time.nowMs() * 1e3;
|
|
78
|
+
}
|
|
72
79
|
const time = new Time();
|
|
73
80
|
Time.startup.systemMs = Time.startup.processMs = time.nowMs();
|
|
74
81
|
class StandardTimer {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/time/Time.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -10,6 +10,7 @@ export declare class DataReadQueue<T> implements Stream<T> {
|
|
|
10
10
|
#private;
|
|
11
11
|
read(timeoutMs?: number): Promise<T>;
|
|
12
12
|
write(data: T): Promise<void>;
|
|
13
|
+
get size(): number;
|
|
13
14
|
/**
|
|
14
15
|
* Same as write but doesn't require the await required to satisfy {@link Stream#write}.
|
|
15
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataReadQueue.d.ts","sourceRoot":"","sources":["../../../src/util/DataReadQueue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAA4C,MAAM,EAAE,MAAM,aAAa,CAAC;AAE/E,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;;IAKxC,IAAI,CAAC,SAAS,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAkBpC,KAAK,CAAC,IAAI,EAAE,CAAC;IAInB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC;IAWZ,KAAK;CAOR"}
|
|
1
|
+
{"version":3,"file":"DataReadQueue.d.ts","sourceRoot":"","sources":["../../../src/util/DataReadQueue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAA4C,MAAM,EAAE,MAAM,aAAa,CAAC;AAE/E,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;;IAKxC,IAAI,CAAC,SAAS,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAkBpC,KAAK,CAAC,IAAI,EAAE,CAAC;IAInB,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC;IAWZ,KAAK;CAOR"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/DataReadQueue.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,uBAAuB;AAChC,SAAS,YAAmB;AAC5B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB,8BAAsC;AAE1D,MAAM,cAAsC;AAAA,EACtC,SAAS,IAAI,MAAS;AAAA,EAC/B;AAAA,EACA,UAAU;AAAA,EAEV,MAAM,KAAK,YAAY,KAAoB;AACvC,UAAM,EAAE,SAAS,UAAU,SAAS,IAAI,cAAiB;AACzD,QAAI,KAAK,QAAS,OAAM,IAAI,iBAAiB;AAC7C,UAAM,OAAO,KAAK,OAAO,MAAM;AAC/B,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AACA,QAAI,KAAK,iBAAiB,OAAW,OAAM,IAAI,gBAAgB,oCAAoC;AACnG,SAAK,eAAe;AAAA,MAChB;AAAA,MACA;AAAA,MACA,cAAc,KAAK;AAAA,QAAS;AAAA,QAAiB;AAAA,QAAW,MACpD,SAAS,IAAI,uBAAuB,oDAAoD,SAAS,IAAI,CAAC;AAAA,MAC1G,EAAE,MAAM;AAAA,IACZ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,MAAM,MAAS;AACjB,SAAK,KAAK,IAAI;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,MAAS;AACV,QAAI,KAAK,QAAS,OAAM,IAAI,iBAAiB;AAC7C,QAAI,KAAK,iBAAiB,QAAW;AACjC,WAAK,aAAa,cAAc,KAAK;AACrC,WAAK,aAAa,SAAS,IAAI;AAC/B,WAAK,eAAe;AACpB;AAAA,IACJ;AACA,SAAK,OAAO,KAAK,IAAI;AAAA,EACzB;AAAA,EAEA,QAAQ;AACJ,QAAI,KAAK,QAAS;AAClB,SAAK,UAAU;AACf,QAAI,KAAK,iBAAiB,OAAW;AACrC,SAAK,aAAa,cAAc,KAAK;AACrC,SAAK,aAAa,SAAS,IAAI,iBAAiB,CAAC;AAAA,EACrD;AACJ;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,uBAAuB;AAChC,SAAS,YAAmB;AAC5B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB,8BAAsC;AAE1D,MAAM,cAAsC;AAAA,EACtC,SAAS,IAAI,MAAS;AAAA,EAC/B;AAAA,EACA,UAAU;AAAA,EAEV,MAAM,KAAK,YAAY,KAAoB;AACvC,UAAM,EAAE,SAAS,UAAU,SAAS,IAAI,cAAiB;AACzD,QAAI,KAAK,QAAS,OAAM,IAAI,iBAAiB;AAC7C,UAAM,OAAO,KAAK,OAAO,MAAM;AAC/B,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AACA,QAAI,KAAK,iBAAiB,OAAW,OAAM,IAAI,gBAAgB,oCAAoC;AACnG,SAAK,eAAe;AAAA,MAChB;AAAA,MACA;AAAA,MACA,cAAc,KAAK;AAAA,QAAS;AAAA,QAAiB;AAAA,QAAW,MACpD,SAAS,IAAI,uBAAuB,oDAAoD,SAAS,IAAI,CAAC;AAAA,MAC1G,EAAE,MAAM;AAAA,IACZ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,MAAM,MAAS;AACjB,SAAK,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,MAAS;AACV,QAAI,KAAK,QAAS,OAAM,IAAI,iBAAiB;AAC7C,QAAI,KAAK,iBAAiB,QAAW;AACjC,WAAK,aAAa,cAAc,KAAK;AACrC,WAAK,aAAa,SAAS,IAAI;AAC/B,WAAK,eAAe;AACpB;AAAA,IACJ;AACA,SAAK,OAAO,KAAK,IAAI;AAAA,EACzB;AAAA,EAEA,QAAQ;AACJ,QAAI,KAAK,QAAS;AAClB,SAAK,UAAU;AACf,QAAI,KAAK,iBAAiB,OAAW;AACrC,SAAK,aAAa,cAAc,KAAK;AACrC,SAAK,aAAa,SAAS,IAAI,iBAAiB,CAAC;AAAA,EACrD;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Endian } from "./Bytes.js";
|
|
7
7
|
/** Reader that auto-increments its offset after each read. */
|
|
8
|
-
export declare class DataReader<E extends Endian> {
|
|
8
|
+
export declare class DataReader<E extends Endian = Endian.Big> {
|
|
9
9
|
#private;
|
|
10
|
-
constructor(buffer: Uint8Array, endian
|
|
10
|
+
constructor(buffer: Uint8Array, endian?: E);
|
|
11
11
|
readUInt8(): number;
|
|
12
12
|
readUInt16(): number;
|
|
13
13
|
readUInt32(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataReader.d.ts","sourceRoot":"","sources":["../../../src/util/DataReader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3C,8DAA8D;AAC9D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM;;
|
|
1
|
+
{"version":3,"file":"DataReader.d.ts","sourceRoot":"","sources":["../../../src/util/DataReader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3C,8DAA8D;AAC9D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAAG;;gBAMrC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;IAM1C,SAAS;IAIT,UAAU;IAIV,UAAU;IAIV,UAAU;IAIV,QAAQ;IAIR,SAAS;IAIT,SAAS;IAIT,SAAS;IAIT,SAAS;IAIT,UAAU;IAIV,cAAc,CAAC,MAAM,EAAE,MAAM;IAK7B,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,IAAI,mBAAmB,WAEtB;IAED,IAAI,cAAc,gCAEjB;IAED,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAKxB;IAED,IAAI,MAAM,IAPS,MAAM,CASxB;IAED,OAAO,CAAC,mBAAmB;CAQ9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/DataReader.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,cAAc;AAGvB,MAAM,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,cAAc;AAGvB,MAAM,WAA0C;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACT,UAAU;AAAA,EAEV,YAAY,QAAoB,QAAY;AACxC,SAAK,UAAU;AACf,SAAK,YAAY,MAAM,WAAW,KAAK,OAAO;AAC9C,SAAK,gBAAgB,WAAW,OAAO;AAAA,EAC3C;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,CAAC;AAAA,EAC9D;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,UAAU,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACnF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,UAAU,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACnF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,aAAa,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACtF;AAAA,EAEA,WAAW;AACP,WAAO,KAAK,UAAU,QAAQ,KAAK,oBAAoB,CAAC,CAAC;AAAA,EAC7D;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EAClF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EAClF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,YAAY,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACrF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,WAAW,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACpF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,WAAW,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACpF;AAAA,EAEA,eAAe,QAAgB;AAC3B,UAAM,SAAS,KAAK,oBAAoB,MAAM;AAC9C,WAAO,IAAI,YAAY,EAAE,OAAO,KAAK,QAAQ,SAAS,QAAQ,SAAS,MAAM,CAAC;AAAA,EAClF;AAAA,EAEA,cAAc,QAAgB;AAC1B,UAAM,SAAS,KAAK,oBAAoB,MAAM;AAC9C,WAAO,KAAK,QAAQ,SAAS,QAAQ,SAAS,MAAM;AAAA,EACxD;AAAA,EAEA,IAAI,sBAAsB;AACtB,WAAO,KAAK,UAAU,aAAa,KAAK;AAAA,EAC5C;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,QAAQ,SAAS,KAAK,OAAO;AAAA,EAC7C;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAO,QAAgB;AACvB,QAAI,SAAS,KAAK,UAAU,YAAY;AACpC,YAAM,IAAI,MAAM,UAAU,MAAM,oBAAoB;AAAA,IACxD;AACA,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEQ,oBAAoB,MAAc;AACtC,UAAM,SAAS,KAAK;AACpB,SAAK,WAAW;AAChB,QAAI,KAAK,UAAU,KAAK,UAAU,YAAY;AAC1C,WAAK,UAAU,KAAK,UAAU;AAAA,IAClC;AACA,WAAO;AAAA,EACX;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Endian } from "./Bytes.js";
|
|
7
7
|
/** Writer that auto-increments its offset after each write. */
|
|
8
|
-
export declare class DataWriter<E extends Endian> {
|
|
8
|
+
export declare class DataWriter<E extends Endian = Endian.Big> {
|
|
9
9
|
private readonly littleEndian;
|
|
10
10
|
private length;
|
|
11
11
|
private readonly chunks;
|
|
12
|
-
constructor(endian
|
|
12
|
+
constructor(endian?: E);
|
|
13
13
|
writeUInt8(value: number | bigint): void;
|
|
14
14
|
writeUInt16(value: number | bigint): void;
|
|
15
15
|
writeUInt32(value: number | bigint): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataWriter.d.ts","sourceRoot":"","sources":["../../../src/util/DataWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,+DAA+D;AAE/D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM;
|
|
1
|
+
{"version":3,"file":"DataWriter.d.ts","sourceRoot":"","sources":["../../../src/util/DataWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,+DAA+D;AAE/D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAAG;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,CAAC,EAAE,CAAC;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM;IAOxB,WAAW,CAAC,KAAK,EAAE,MAAM;IAOzB,cAAc,CAAC,KAAK,EAAE,UAAU;IAKhC,WAAW;CAed"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/DataWriter.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,UAAU,gBAAgB;AAI5B,MAAM,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,UAAU,gBAAgB;AAI5B,MAAM,WAA0C;AAAA,EAClC;AAAA,EACT,SAAS;AAAA,EACA,SAAS,IAAI,MAAkB;AAAA,EAEhD,YAAY,QAAY;AACpB,SAAK,eAAe,WAAW,OAAO;AAAA,EAC1C;AAAA,EAEA,WAAW,OAAwB;AAC/B,SAAK,OAAO,KAAK,IAAI,WAAW,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;AAClD,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,YAAY,OAAwB;AAChC,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,KAAK,GAAG,KAAK,YAAY;AAChF,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,YAAY,OAAwB;AAChC,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,KAAK,GAAG,KAAK,YAAY;AAChF,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,YAAY,OAAwB;AAChC,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS,KAAK,GAAG,KAAK,YAAY;AACnF,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,UAAU,OAAwB;AAC9B,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,KAAK,CAAC;AAC3D,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,WAAW,OAAwB;AAC/B,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,KAAK,GAAG,KAAK,YAAY;AAC/E,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,WAAW,OAAwB;AAC/B,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,KAAK,GAAG,KAAK,YAAY;AAC/E,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,WAAW,OAAwB;AAC/B,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,YAAY,GAAG,SAAS,KAAK,GAAG,KAAK,YAAY;AAClF,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,WAAW,OAAe;AACtB,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,KAAK,YAAY;AACvE,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,YAAY,OAAe;AACvB,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,KAAK,YAAY;AACvE,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,eAAe,OAAmB;AAC9B,SAAK,OAAO,KAAK,KAAK;AACtB,SAAK,UAAU,MAAM;AAAA,EACzB;AAAA,EAEA,cAAc;AACV,QAAI,KAAK,OAAO,WAAW,EAAG,QAAO,IAAI,WAAW,CAAC;AACrD,QAAI,KAAK,OAAO,WAAW,EAAG,QAAO,KAAK,OAAO,CAAC;AAElD,UAAM,SAAS,IAAI,WAAW,KAAK,MAAM;AACzC,QAAI,SAAS;AACb,SAAK,OAAO,QAAQ,WAAS;AACzB,aAAO,IAAI,OAAO,MAAM;AACxB,gBAAU,MAAM;AAAA,IACpB,CAAC;AACD,SAAK,OAAO,SAAS;AACrB,SAAK,OAAO,KAAK,MAAM;AAEvB,WAAO;AAAA,EACX;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/util/Ip.d.ts
CHANGED
|
@@ -4,5 +4,6 @@ export declare function ipv4ToNumber(ip: string): number;
|
|
|
4
4
|
export declare function ipv4ToBytes(ip: string): Uint8Array<ArrayBuffer>;
|
|
5
5
|
export declare function ipv6ToArray(ip: string): Uint16Array<ArrayBuffer>;
|
|
6
6
|
export declare function ipv6ToBytes(ip: string): Uint8Array<ArrayBuffer>;
|
|
7
|
+
export declare function ipv6BytesToString(bytes: Uint8Array): string;
|
|
7
8
|
export declare function onSameNetwork(ip1: string, ip2: string, mask: string): boolean | undefined;
|
|
8
9
|
//# sourceMappingURL=Ip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ip.d.ts","sourceRoot":"","sources":["../../../src/util/Ip.ts"],"names":[],"mappings":"AAOA,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,WAEhC;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,WAEhC;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,UAGtC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,2BAOrC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,4BAarC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,2BAErC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,uBAsBnE"}
|
|
1
|
+
{"version":3,"file":"Ip.d.ts","sourceRoot":"","sources":["../../../src/util/Ip.ts"],"names":[],"mappings":"AAOA,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,WAEhC;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,WAEhC;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,UAGtC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,2BAOrC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,4BAarC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,2BAErC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAgD3D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,uBAsBnE"}
|
package/dist/esm/util/Ip.js
CHANGED
|
@@ -39,6 +39,50 @@ function ipv6ToArray(ip) {
|
|
|
39
39
|
function ipv6ToBytes(ip) {
|
|
40
40
|
return Uint8Array.from(Array.from(ipv6ToArray(ip)).flatMap((value) => [value >> 8, value & 255]));
|
|
41
41
|
}
|
|
42
|
+
function ipv6BytesToString(bytes) {
|
|
43
|
+
if (bytes.length !== 16) {
|
|
44
|
+
throw new Error("IPv6 address must be 16 bytes");
|
|
45
|
+
}
|
|
46
|
+
const blocks = [];
|
|
47
|
+
for (let i = 0; i < 16; i += 2) {
|
|
48
|
+
blocks.push((bytes[i] << 8 | bytes[i + 1]).toString(16));
|
|
49
|
+
}
|
|
50
|
+
let bestStart = -1;
|
|
51
|
+
let bestLen = 0;
|
|
52
|
+
let currStart = -1;
|
|
53
|
+
let currLen = 0;
|
|
54
|
+
for (let i = 0; i < 8; i++) {
|
|
55
|
+
if (blocks[i] === "0") {
|
|
56
|
+
if (currStart === -1) {
|
|
57
|
+
currStart = i;
|
|
58
|
+
currLen = 1;
|
|
59
|
+
} else {
|
|
60
|
+
currLen++;
|
|
61
|
+
}
|
|
62
|
+
} else {
|
|
63
|
+
if (currLen > bestLen) {
|
|
64
|
+
bestStart = currStart;
|
|
65
|
+
bestLen = currLen;
|
|
66
|
+
}
|
|
67
|
+
currStart = -1;
|
|
68
|
+
currLen = 0;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (currLen > bestLen) {
|
|
72
|
+
bestStart = currStart;
|
|
73
|
+
bestLen = currLen;
|
|
74
|
+
}
|
|
75
|
+
if (bestLen > 1) {
|
|
76
|
+
blocks.splice(bestStart, bestLen, "");
|
|
77
|
+
if (bestStart === 0) {
|
|
78
|
+
blocks.unshift("");
|
|
79
|
+
}
|
|
80
|
+
if (bestStart + bestLen === 8) {
|
|
81
|
+
blocks.push("");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return blocks.join(":").replace(/:{3,}/, "::").toLowerCase();
|
|
85
|
+
}
|
|
42
86
|
function onSameNetwork(ip1, ip2, mask) {
|
|
43
87
|
if (isIPv4(ip1)) {
|
|
44
88
|
if (!isIPv4(ip2) || !isIPv4(mask)) return false;
|
|
@@ -61,6 +105,7 @@ function onSameNetwork(ip1, ip2, mask) {
|
|
|
61
105
|
export {
|
|
62
106
|
ipv4ToBytes,
|
|
63
107
|
ipv4ToNumber,
|
|
108
|
+
ipv6BytesToString,
|
|
64
109
|
ipv6ToArray,
|
|
65
110
|
ipv6ToBytes,
|
|
66
111
|
isIPv4,
|
package/dist/esm/util/Ip.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/Ip.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,aAAa;AAEf,SAAS,OAAO,IAAY;AAC/B,SAAO,GAAG,SAAS,GAAG;AAC1B;AAEO,SAAS,OAAO,IAAY;AAC/B,SAAO,GAAG,SAAS,GAAG;AAC1B;AAEO,SAAS,aAAa,IAAY;AACrC,QAAM,WAAW,MAAM,WAAW,YAAY,EAAE,CAAC;AACjD,SAAO,SAAS,UAAU,CAAC;AAC/B;AAEO,SAAS,YAAY,IAAY;AACpC,QAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAM,UAAU,GAAG,MAAM,GAAG;AAC5B,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AACxB,UAAM,CAAC,IAAI,SAAS,QAAQ,CAAC,CAAC;AAAA,EAClC;AACA,SAAO;AACX;AAEO,SAAS,YAAY,IAAY;AACpC,QAAM,QAAQ,IAAI,YAAY,CAAC;AAC/B,MAAI,UAAU,GAAG,MAAM,GAAG;AAC1B,QAAM,aAAa,QAAQ,OAAO,WAAS,UAAU,EAAE,EAAE;AACzD,MAAI,eAAe,GAAG;AAClB,cAAU,GAAG,QAAQ,MAAM,IAAI,QAAQ,IAAI,cAAc,IAAI,GAAG,IAAI,CAAC,EAAE,MAAM,GAAG;AAAA,EACpF;AACA,MAAI,QAAQ;AACZ,UAAQ,QAAQ,UAAQ;AACpB,QAAI,SAAS,GAAI;AACjB,UAAM,OAAO,IAAI,SAAS,MAAM,EAAE;AAAA,EACtC,CAAC;AACD,SAAO;AACX;AAEO,SAAS,YAAY,IAAY;AACpC,SAAO,WAAW,KAAK,MAAM,KAAK,YAAY,EAAE,CAAC,EAAE,QAAQ,WAAS,CAAC,SAAS,GAAG,QAAQ,GAAI,CAAC,CAAC;AACnG;AAEO,SAAS,cAAc,KAAa,KAAa,MAAc;AAClE,MAAI,OAAO,GAAG,GAAG;AAEb,QAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAG,QAAO;AAC1C,UAAM,YAAY,aAAa,GAAG;AAClC,UAAM,YAAY,aAAa,GAAG;AAClC,UAAM,aAAa,aAAa,IAAI;AAEpC,YAAQ,YAAY,iBAAiB,YAAY;AAAA,EACrD,OAAO;AAEH,QAAI,OAAO,GAAG,KAAK,OAAO,IAAI,EAAG,QAAO;AACxC,UAAM,WAAW,YAAY,GAAG;AAChC,UAAM,WAAW,YAAY,GAAG;AAChC,UAAM,YAAY,YAAY,IAAI;AAElC,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AACzB,YAAMA,QAAO,UAAU,CAAC;AACxB,UAAIA,UAAS,EAAG,QAAO;AACvB,WAAK,SAAS,CAAC,IAAIA,YAAW,SAAS,CAAC,IAAIA,OAAO,QAAO;AAAA,IAC9D;AAAA,EACJ;AACJ;",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["mask"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Observable } from "#util/Observable.js";
|
|
7
|
+
/**
|
|
8
|
+
* Set change events.
|
|
9
|
+
*/
|
|
10
|
+
export interface ObservableMap<K, V> {
|
|
11
|
+
get added(): Observable<[key: K, newValue: V]>;
|
|
12
|
+
get deleted(): Observable<[key: K, oldValue: V]>;
|
|
13
|
+
get changed(): Observable<[key: K, newValue: V, oldValue: V]>;
|
|
14
|
+
}
|
|
15
|
+
/** Map extension to get added, deleted or changed events */
|
|
16
|
+
export declare class BasicMap<K, V> extends Map<K, V> implements ObservableMap<K, V> {
|
|
17
|
+
#private;
|
|
18
|
+
set(key: K, value: V): this;
|
|
19
|
+
delete(key: K): boolean;
|
|
20
|
+
get added(): Observable<[K, V], void>;
|
|
21
|
+
get deleted(): Observable<[K, V], void>;
|
|
22
|
+
get changed(): Observable<[K, V, V], void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=Map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../../src/util/Map.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IAC/B,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;CACjE;AAED,4DAA4D;AAC5D,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAK/D,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAc3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAQhC,IAAI,KAAK,6BAKR;IAED,IAAI,OAAO,6BAKV;IAED,IAAI,OAAO,gCAKV;CACJ"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Observable } from "#util/Observable.js";
|
|
7
|
+
class BasicMap extends Map {
|
|
8
|
+
#added;
|
|
9
|
+
#deleted;
|
|
10
|
+
#changed;
|
|
11
|
+
set(key, value) {
|
|
12
|
+
const existing = this.get(key);
|
|
13
|
+
if (existing !== void 0) {
|
|
14
|
+
if (existing === value) {
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
this.#changed?.emit(key, value, existing);
|
|
18
|
+
} else {
|
|
19
|
+
this.#added?.emit(key, value);
|
|
20
|
+
}
|
|
21
|
+
return super.set(key, value);
|
|
22
|
+
}
|
|
23
|
+
delete(key) {
|
|
24
|
+
const existing = this.get(key);
|
|
25
|
+
if (existing !== void 0) {
|
|
26
|
+
this.#deleted?.emit(key, existing);
|
|
27
|
+
}
|
|
28
|
+
return super.delete(key);
|
|
29
|
+
}
|
|
30
|
+
get added() {
|
|
31
|
+
if (this.#added === void 0) {
|
|
32
|
+
this.#added = Observable();
|
|
33
|
+
}
|
|
34
|
+
return this.#added;
|
|
35
|
+
}
|
|
36
|
+
get deleted() {
|
|
37
|
+
if (this.#deleted === void 0) {
|
|
38
|
+
this.#deleted = Observable();
|
|
39
|
+
}
|
|
40
|
+
return this.#deleted;
|
|
41
|
+
}
|
|
42
|
+
get changed() {
|
|
43
|
+
if (this.#changed === void 0) {
|
|
44
|
+
this.#changed = Observable();
|
|
45
|
+
}
|
|
46
|
+
return this.#changed;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
BasicMap
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=Map.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/Map.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,kBAAkB;AAYpB,MAAM,iBAAuB,IAAyC;AAAA,EACzE;AAAA,EACA;AAAA,EACA;AAAA,EAES,IAAI,KAAQ,OAAgB;AACjC,UAAM,WAAW,KAAK,IAAI,GAAG;AAC7B,QAAI,aAAa,QAAW;AACxB,UAAI,aAAa,OAAO;AAEpB,eAAO;AAAA,MACX;AACA,WAAK,UAAU,KAAK,KAAK,OAAO,QAAQ;AAAA,IAC5C,OAAO;AACH,WAAK,QAAQ,KAAK,KAAK,KAAK;AAAA,IAChC;AACA,WAAO,MAAM,IAAI,KAAK,KAAK;AAAA,EAC/B;AAAA,EAES,OAAO,KAAiB;AAC7B,UAAM,WAAW,KAAK,IAAI,GAAG;AAC7B,QAAI,aAAa,QAAW;AACxB,WAAK,UAAU,KAAK,KAAK,QAAQ;AAAA,IACrC;AACA,WAAO,MAAM,OAAO,GAAG;AAAA,EAC3B;AAAA,EAEA,IAAI,QAAQ;AACR,QAAI,KAAK,WAAW,QAAW;AAC3B,WAAK,SAAS,WAAW;AAAA,IAC7B;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,QAAI,KAAK,aAAa,QAAW;AAC7B,WAAK,WAAW,WAAW;AAAA,IAC/B;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,QAAI,KAAK,aAAa,QAAW;AAC7B,WAAK,WAAW,WAAW;AAAA,IAC/B;AACA,WAAO,KAAK;AAAA,EAChB;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/esm/util/Set.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { ImplementationError } from "#MatterError.js";
|
|
6
7
|
import { Observable } from "./Observable.js";
|
|
7
8
|
/**
|
|
8
9
|
* A read-only set.
|
|
@@ -31,9 +32,19 @@ export interface ObservableSet<T> {
|
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
34
|
* An interface for index set lookup.
|
|
35
|
+
*
|
|
36
|
+
* Note that this interface only supports a single item for each key. If multiple items associate with a key only the
|
|
37
|
+
* first is returned.
|
|
34
38
|
*/
|
|
35
39
|
export interface IndexedSet<T> {
|
|
40
|
+
/**
|
|
41
|
+
* Retrieve an item with the named {@link field} set to {@link value}.
|
|
42
|
+
*/
|
|
36
43
|
get<F extends keyof T>(field: F, value: T[F]): T | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Obtain a {@link Map} of values in {@link field} to the associated item in the set.
|
|
46
|
+
*/
|
|
47
|
+
mapOf<F extends keyof T>(field: F): Map<T[F], T>;
|
|
37
48
|
}
|
|
38
49
|
/**
|
|
39
50
|
* A generic set implementation supporting all interfaces in this module.
|
|
@@ -51,10 +62,51 @@ export declare class BasicSet<T, AddT = T> implements ImmutableSet<T>, MutableSe
|
|
|
51
62
|
has(item: T): boolean;
|
|
52
63
|
add(item: AddT): void;
|
|
53
64
|
get<F extends keyof T>(field: F, value: T[F]): T | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Obtain key/value map using specific field as key.
|
|
67
|
+
*
|
|
68
|
+
* Note we use {@link This} to constrain usage to sets where {@link T} === {@link AddT} as required by {@link Map}.
|
|
69
|
+
*/
|
|
70
|
+
mapOf<This extends BasicSet<T, T>, F extends keyof T>(this: This, field: F): Map<T[F], T>;
|
|
54
71
|
delete(item: T): boolean;
|
|
72
|
+
delete<F extends keyof T>(field: keyof T, value: T[F]): boolean;
|
|
55
73
|
clear(): void;
|
|
56
74
|
get added(): Observable<[T], void>;
|
|
57
75
|
get deleted(): Observable<[T], void>;
|
|
58
76
|
protected create(definition: AddT): T;
|
|
59
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* A {@link Map} backed by an {@link IndexedSet}.
|
|
80
|
+
*
|
|
81
|
+
* This supports the common case where sets must be looked up by key. Implementations like {@link BasicSet} offer
|
|
82
|
+
* efficient lookup by key using {@link IndexedSet#get}, but usage like a {@link Map} is still cumbersome. This class
|
|
83
|
+
* works as an adapter to make key/value access patterns more natural.
|
|
84
|
+
*/
|
|
85
|
+
export declare class MapOfIndexedSet<T, S extends ImmutableSet<T> & MutableSet<T> & IndexedSet<T>, K extends keyof T> implements Map<T[K], T> {
|
|
86
|
+
#private;
|
|
87
|
+
/**
|
|
88
|
+
* Create a new map.
|
|
89
|
+
*
|
|
90
|
+
* @param set the backing data
|
|
91
|
+
* @param key a property of {@link T} used as the key
|
|
92
|
+
* @param index optional index that optimizes lookup by bypassing {@link IndexedSet#get}
|
|
93
|
+
*/
|
|
94
|
+
constructor(set: S, key: K, index?: Map<T[K], T>);
|
|
95
|
+
clear(): void;
|
|
96
|
+
delete(key: T[K]): boolean;
|
|
97
|
+
forEach(callbackfn: (value: T, key: T[K], map: Map<T[K], T>) => void, thisArg?: any): void;
|
|
98
|
+
get(key: T[K]): T | undefined;
|
|
99
|
+
has(key: T[K]): boolean;
|
|
100
|
+
set(key: T[K], value: T): this;
|
|
101
|
+
get size(): number;
|
|
102
|
+
entries(): MapIterator<[T[K], T]>;
|
|
103
|
+
keys(): MapIterator<T[K]>;
|
|
104
|
+
values(): MapIterator<T>;
|
|
105
|
+
[Symbol.iterator](): MapIterator<[T[K], T]>;
|
|
106
|
+
[Symbol.toStringTag]: string;
|
|
107
|
+
}
|
|
108
|
+
export declare namespace MapOfIndexedSet {
|
|
109
|
+
class KeyValueMismatchError extends ImplementationError {
|
|
110
|
+
}
|
|
111
|
+
}
|
|
60
112
|
//# sourceMappingURL=Set.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../../../src/util/Set.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAChD,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IACtB,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC;IACjE,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC;IACnC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC;IAC/B,KAAK,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC5B,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC;AAED
|
|
1
|
+
{"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../../../src/util/Set.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/util/Set.js
CHANGED
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { ImplementationError } from "#MatterError.js";
|
|
6
7
|
import { Observable } from "./Observable.js";
|
|
7
8
|
class BasicSet {
|
|
8
9
|
#entries = /* @__PURE__ */ new Set();
|
|
9
10
|
#added;
|
|
10
11
|
#deleted;
|
|
11
12
|
#indices;
|
|
13
|
+
#maps;
|
|
12
14
|
constructor(...initialItems) {
|
|
13
15
|
for (const item of initialItems) {
|
|
14
16
|
this.add(item);
|
|
@@ -64,6 +66,9 @@ class BasicSet {
|
|
|
64
66
|
this.#added?.emit(created);
|
|
65
67
|
}
|
|
66
68
|
get(field, value) {
|
|
69
|
+
return this.#indexOf(field).get(value);
|
|
70
|
+
}
|
|
71
|
+
#indexOf(field) {
|
|
67
72
|
if (!this.#indices) {
|
|
68
73
|
this.#indices = {};
|
|
69
74
|
}
|
|
@@ -71,29 +76,54 @@ class BasicSet {
|
|
|
71
76
|
if (index === void 0) {
|
|
72
77
|
index = /* @__PURE__ */ new Map();
|
|
73
78
|
for (const item of this) {
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
79
|
+
const value = item[field];
|
|
80
|
+
if (value === void 0 || index.has(value)) {
|
|
76
81
|
continue;
|
|
77
82
|
}
|
|
78
|
-
index.set(
|
|
83
|
+
index.set(value, item);
|
|
79
84
|
}
|
|
80
85
|
this.#indices[field] = index;
|
|
81
86
|
}
|
|
82
|
-
return index
|
|
87
|
+
return index;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Obtain key/value map using specific field as key.
|
|
91
|
+
*
|
|
92
|
+
* Note we use {@link This} to constrain usage to sets where {@link T} === {@link AddT} as required by {@link Map}.
|
|
93
|
+
*/
|
|
94
|
+
mapOf(field) {
|
|
95
|
+
if (!this.#maps) {
|
|
96
|
+
this.#maps = {};
|
|
97
|
+
}
|
|
98
|
+
let map = this.#maps[field];
|
|
99
|
+
if (map === void 0) {
|
|
100
|
+
map = new MapOfIndexedSet(this, field, this.#indexOf(field));
|
|
101
|
+
this.#maps[field] = map;
|
|
102
|
+
}
|
|
103
|
+
return map;
|
|
83
104
|
}
|
|
84
|
-
delete(
|
|
105
|
+
delete(itemOrField, value) {
|
|
106
|
+
let item;
|
|
107
|
+
if (value === void 0) {
|
|
108
|
+
item = itemOrField;
|
|
109
|
+
} else {
|
|
110
|
+
item = this.get(itemOrField, value);
|
|
111
|
+
if (item === void 0) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
85
115
|
if (!this.#entries.delete(item)) {
|
|
86
116
|
return false;
|
|
87
117
|
}
|
|
88
118
|
if (this.#indices) {
|
|
89
119
|
for (const field in this.#indices) {
|
|
90
|
-
const
|
|
91
|
-
if (
|
|
120
|
+
const value2 = item[field];
|
|
121
|
+
if (value2 === void 0) {
|
|
92
122
|
continue;
|
|
93
123
|
}
|
|
94
124
|
const index = this.#indices[field];
|
|
95
|
-
if (index !== void 0 && index.get(
|
|
96
|
-
index.delete(
|
|
125
|
+
if (index !== void 0 && index.get(value2) === item) {
|
|
126
|
+
index.delete(value2);
|
|
97
127
|
}
|
|
98
128
|
}
|
|
99
129
|
}
|
|
@@ -119,7 +149,103 @@ class BasicSet {
|
|
|
119
149
|
return definition;
|
|
120
150
|
}
|
|
121
151
|
}
|
|
152
|
+
class MapOfIndexedSet {
|
|
153
|
+
#set;
|
|
154
|
+
#key;
|
|
155
|
+
// This is an optimization for lookup
|
|
156
|
+
#index;
|
|
157
|
+
/**
|
|
158
|
+
* Create a new map.
|
|
159
|
+
*
|
|
160
|
+
* @param set the backing data
|
|
161
|
+
* @param key a property of {@link T} used as the key
|
|
162
|
+
* @param index optional index that optimizes lookup by bypassing {@link IndexedSet#get}
|
|
163
|
+
*/
|
|
164
|
+
constructor(set, key, index) {
|
|
165
|
+
this.#set = set;
|
|
166
|
+
this.#key = key;
|
|
167
|
+
this.#index = index;
|
|
168
|
+
}
|
|
169
|
+
clear() {
|
|
170
|
+
this.#set.clear();
|
|
171
|
+
}
|
|
172
|
+
delete(key) {
|
|
173
|
+
const item = this.get(key);
|
|
174
|
+
if (item) {
|
|
175
|
+
return this.#set.delete(item);
|
|
176
|
+
}
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
forEach(callbackfn, thisArg) {
|
|
180
|
+
if (thisArg) {
|
|
181
|
+
callbackfn = callbackfn.bind(thisArg);
|
|
182
|
+
}
|
|
183
|
+
for (const [k, v] of this) {
|
|
184
|
+
callbackfn(v, k, this);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
get(key) {
|
|
188
|
+
if (this.#index) {
|
|
189
|
+
return this.#index.get(key);
|
|
190
|
+
}
|
|
191
|
+
return this.#set.get(this.#key, key);
|
|
192
|
+
}
|
|
193
|
+
has(key) {
|
|
194
|
+
return this.#index ? this.#index.has(key) : this.#set.get(this.#key, key) !== void 0;
|
|
195
|
+
}
|
|
196
|
+
set(key, value) {
|
|
197
|
+
if (value[this.#key] !== key) {
|
|
198
|
+
throw new MapOfIndexedSet.KeyValueMismatchError(
|
|
199
|
+
`Cannot set key "${key}" because value property ${String(this.#key)} is "${value[this.#key]}"`
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
if (this.has(key)) {
|
|
203
|
+
if (this.get(key) === value) {
|
|
204
|
+
return this;
|
|
205
|
+
}
|
|
206
|
+
this.#set.delete(this.#index ? this.#index.get(key) : this.#set.get(this.#key, key));
|
|
207
|
+
}
|
|
208
|
+
this.#set.add(value);
|
|
209
|
+
return this;
|
|
210
|
+
}
|
|
211
|
+
get size() {
|
|
212
|
+
return this.#set.size;
|
|
213
|
+
}
|
|
214
|
+
entries() {
|
|
215
|
+
return this[Symbol.iterator]();
|
|
216
|
+
}
|
|
217
|
+
keys() {
|
|
218
|
+
if (this.#index) {
|
|
219
|
+
return this.#index.keys();
|
|
220
|
+
}
|
|
221
|
+
const keys = [...this.#set].map((item) => item[this.#key]).filter((key) => key !== void 0);
|
|
222
|
+
return keys[Symbol.iterator]();
|
|
223
|
+
}
|
|
224
|
+
values() {
|
|
225
|
+
if (this.#index) {
|
|
226
|
+
return this.#index.values();
|
|
227
|
+
}
|
|
228
|
+
const values = [...this.#set].map((item) => item);
|
|
229
|
+
return values[Symbol.iterator]();
|
|
230
|
+
}
|
|
231
|
+
*[Symbol.iterator]() {
|
|
232
|
+
for (const item of this.#set) {
|
|
233
|
+
const k = item[this.#key];
|
|
234
|
+
if (k === void 0) {
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
yield [k, item];
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
[Symbol.toStringTag] = "Map";
|
|
241
|
+
}
|
|
242
|
+
((MapOfIndexedSet2) => {
|
|
243
|
+
class KeyValueMismatchError extends ImplementationError {
|
|
244
|
+
}
|
|
245
|
+
MapOfIndexedSet2.KeyValueMismatchError = KeyValueMismatchError;
|
|
246
|
+
})(MapOfIndexedSet || (MapOfIndexedSet = {}));
|
|
122
247
|
export {
|
|
123
|
-
BasicSet
|
|
248
|
+
BasicSet,
|
|
249
|
+
MapOfIndexedSet
|
|
124
250
|
};
|
|
125
251
|
//# sourceMappingURL=Set.js.map
|