@matter/protocol 0.14.0-alpha.0-20250521-979eda05d → 0.14.0-alpha.0-20250525-d6ada0d45
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/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.js +1 -14
- package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/cjs/events/OccurrenceManager.d.ts +10 -2
- package/dist/cjs/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/cjs/events/OccurrenceManager.js +57 -11
- package/dist/cjs/events/OccurrenceManager.js.map +1 -1
- package/dist/cjs/fabric/Fabric.d.ts +2 -11
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +1 -38
- package/dist/cjs/fabric/Fabric.js.map +1 -1
- package/dist/cjs/mdns/MdnsScanner.d.ts +23 -1
- package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsScanner.js +124 -11
- package/dist/cjs/mdns/MdnsScanner.js.map +2 -2
- package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.js +2 -15
- package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/esm/events/OccurrenceManager.d.ts +10 -2
- package/dist/esm/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/esm/events/OccurrenceManager.js +62 -12
- package/dist/esm/events/OccurrenceManager.js.map +1 -1
- package/dist/esm/fabric/Fabric.d.ts +2 -11
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +1 -38
- package/dist/esm/fabric/Fabric.js.map +1 -1
- package/dist/esm/mdns/MdnsScanner.d.ts +23 -1
- package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsScanner.js +127 -11
- package/dist/esm/mdns/MdnsScanner.js.map +2 -2
- package/package.json +6 -6
- package/src/action/server/AttributeWriteResponse.ts +2 -20
- package/src/events/OccurrenceManager.ts +91 -11
- package/src/fabric/Fabric.ts +1 -49
- package/src/mdns/MdnsScanner.ts +187 -12
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/events/OccurrenceManager.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,OAIG;AAIP,MAAM,SAAS,OAAO,IAAI,mBAAmB;AAmBtC,MAAM,kBAAkB;AAAA,EAC3B;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA;AAAA,EACA,6BAA6B;AAAA,EAC7B,SAAS,IAAI,WAA6C;AAAA;AAAA;AAAA,EAI1D,eAAe,IAAI,MAAyB;AAAA,EAE5C;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,aAAa,OAAO,SAAmC;AACnD,WAAO,SAAS,mBAAmB,OAAO;AAAA,EAC9C;AAAA,EAEA,YAAY,EAAE,OAAO,aAAa,GAA6B;AAC3D,QAAI,iBAAiB,QAAW;AAC5B,qBAAe,kBAAkB;AAAA,IACrC;AAEA,UAAM,EAAE,mBAAmB,kBAAkB,IAAI;AAEjD,QAAI,oBAAoB,mBAAmB;AACvC,YAAM,IAAI;AAAA,QACN,qBAAqB,iBAAiB,mCAAmC,iBAAiB;AAAA,MAC9F;AAAA,IACJ;AAEA,SAAK,SAAS;AACd,SAAK,gBAAgB;AAErB,SAAK,gBAAgB,aAAa,MAAM,MAAM;AAC1C,aAAO,aAAa,KAAK,KAAK,OAAO,KAAK,GAAG,WAAS;AAClD,aAAK,oBAAoB,MAAM;AAE/B,cAAM;AAAA;AAAA,UAEF,CAAC,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,QAAQ,MAAO,UAAU,UAAU,KAAK,UAAU,UAAU,IAAI;AAAA,QACpG;AACA,aAAK,aAAa,KAAK,GAAG,KAAK;AAC/B,YAAI,KAAK,aAAa,SAAS,KAAK,cAAc,mBAAmB;AACjE,eAAK,WAAW;AAAA,QACpB;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,QAAQ;AACV,UAAM,KAAK;AACX,UAAM,KAAK,OAAO,MAAM;AACxB,SAAK,oBAAoB;AACzB,SAAK,aAAa,SAAS;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,yBAAyB,UAAuB;AAG5C,QAAI,KAAK,aAAa,WAAW,KAAK,WAAW,KAAK,aAAa,KAAK,aAAa,SAAS,CAAC,EAAE,QAAQ;AACrG,aAAO;AAAA,IACX;AACA,QAAI,YAAY,KAAK,aAAa,CAAC,EAAE,QAAQ;AACzC,aAAO;AAAA,IACX;AAEA,QAAI,MAAM,KAAK,aAAa,SAAS;AACrC,QAAI,OAAO;AACX,QAAI,OAAO;AAGX,WAAO,MAAM,KAAK,KAAK,aAAa,GAAG,EAAE,UAAU,UAAU;AACzD,aAAO;AACP,YAAM,KAAK,IAAI,GAAG,MAAM,IAAI;AAC5B,cAAQ;AAAA,IACZ;AAEA,WAAO,OAAO,MAAM;AAChB,YAAM,MAAM,KAAK,OAAO,MAAM,QAAQ,CAAC;AACvC,UAAI,KAAK,aAAa,GAAG,EAAE,SAAS,UAAU;AAC1C,cAAM,MAAM;AAAA,MAChB,OAAO;AACH,eAAO,MAAM;AAAA,MACjB;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MACI,WACA,SACA,sBACkC;AAClC,QAAI,YAAY,UAAa,QAAQ,SAAS,GAAG;AAC7C,YAAM,IAAI,cAAc,gCAAgC;AAAA,IAC5D;AAEA,UAAM,aAAa,SAAS,SAAS,KAAK,yBAAyB,YAAY,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI;AACvG,QAAI,eAAe,IAAI;AACnB,aAAO,CAAC;AAAA,IACZ;AAEA,QAAI,cAAc;AAClB,UAAM,EAAE,YAAY,WAAW,QAAQ,IAAI;AAC3C,UAAM,cAAc,IAAI,MAAwC;AAChE,aAAS,IAAI,YAAY,IAAI,KAAK,aAAa,QAAQ,KAAK;AACxD,YAAM,QAAQ,KAAK,aAAa,CAAC;AACjC,UAAI,eAAe,MAAM,cAAc,cAAc,MAAM,aAAa,YAAY,MAAM,SAAS;AAC/F,YAAI,aAAa,KAAK,OAAO,IAAI,MAAM,MAAM;AAC7C,qBAAa,aAAa,KAAK,YAAY,CAAAA,gBAAc;AACrD,UAAAA,YAAW,SAAS,MAAM;AAC1B,iBAAOA;AAAA,QACX,CAAC;AACD,oBAAY,KAAK,UAAU;AAC3B,YAAI,aAAa,GAAG,UAAU,GAAG;AAC7B,wBAAc;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AAGA,WAAO;AAAA,MACH,OAAO,YAAY,MAAM,eAAe,iBAAiB,SAAS,CAAC,kBAAkB,WAAW,KAAK,OAAO,CAAC;AAAA,IACjH;AAGA,QAAI;AACJ,QAAI,aAAa;AACb,eAAS,QAAQ,IAAI,WAAW;AAAA,IACpC,OAAO;AACH,eAAS;AAAA,IACb;AAGA,QAAI,yBAAyB,QAAW;AACpC,eAAS,aAAa;AAAA,QAAK;AAAA,QAAQ,CAACC,iBAChCA,aAAY,OAAO,CAAC,EAAE,QAAQ,MAAM;AAChC,cAAI,CAAC,SAAS,OAAO,GAAG;AACpB,mBAAO;AAAA,UACX;AACA,gBAAM,EAAE,YAAY,IAAI;AACxB,iBAAO,gBAAgB,UAAa,gBAAgB;AAAA,QACxD,CAAC;AAAA,MACL;AAAA,IACJ;AAGA,aAAS,aAAa,KAAK,QAAQ,CAAAA,iBAAe;AAC9C,UAAI;AACJ,UAAI,SAAS,QAAQ;AACjB,qBAAa,QAAQ,IAAI,CAAC,EAAE,QAAQ,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,KAAK,GAAG;AAAA,MACxF;AACA,UAAI,sBAAsB;AACtB,YAAI,eAAe,QAAW;AAC1B,uBAAa,GAAG,UAAU,gBAAgB,oBAAoB;AAAA,QAClE,OAAO;AACH,uBAAa,WAAW,oBAAoB;AAAA,QAChD;AAAA,MACJ;AAEA,UAAI,YAAY;AACZ,qBAAa,cAAc,UAAU;AAAA,MACzC,OAAO;AACH,qBAAa;AAAA,MACjB;AAEA,aAAO;AAAA,QACH,UAAUA,aAAY,MAAM,cAAcA,aAAY,WAAW,IAAI,KAAK,GAAG,QAAQ,iBAAiB,SAAS,CAAC,GAAG,UAAU;AAAA,MACjI;AACA,aAAOA;AAAA,IACX,CAAC;AAED,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,IAAI,UAAwB;AAC/B,QAAI,KAAK,OAAO;AACZ,YAAM,KAAK;AAAA,IACf;AACA,UAAM,aAAa,aAAa,SAAY,IAAI,KAAK,yBAAyB,QAAQ;AACtF,QAAI,eAAe,IAAI;AACnB;AAAA,IACJ;AACA,SAAK,6BAA6B;AAClC,QAAI;AACA,eAAS,IAAI,YAAY,IAAI,KAAK,aAAa,QAAQ,KAAK;AACxD,cAAM,cAAc,KAAK,aAAa,CAAC,EAAE;AACzC,cAAM,aAAa,KAAK,OAAO,IAAI,WAAW;AAC9C,YAAI,aAAa,GAAG,UAAU,GAAG;AAC7B,gBAAM;AAAA,YACF,GAAI,MAAM;AAAA,YACV,QAAQ;AAAA,UACZ;AAAA,QACJ,OAAO;AACH,gBAAM;AAAA,YACF,GAAG;AAAA,YACH,QAAQ;AAAA,UACZ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,UAAE;AACE,WAAK,6BAA6B;AAAA,IACtC;AAAA,EACJ;AAAA,EAEA,QAA4B;AACxB,iBAAa,KAAK,KAAK,OAAO,MAAM,KAAK,OAAO,MAAM,CAAC;AAAA,EAC3D;AAAA,EAEA,IAAI,YAA0D;AAC1D,WAAO,aAAa,KAAK,KAAK,OAAO,IAAI,UAAU,GAAG,WAAS;AAC3D,aAAO,MAAM,mBAAmB,MAAM,MAAM,KAAK,WAAW,KAAK,UAAU,CAAC,EAAE;AAC9E,WAAK,aAAa,KAAK,KAAK;AAC5B,WAAK;AACL,UAAI,KAAK,oBAAoB,KAAK,cAAc,mBAAmB;AAC/D,aAAK,WAAW;AAAA,MACpB;AACA,YAAM,qBAAqB;AAAA,QACvB,QAAQ,MAAM;AAAA,QACd,GAAG;AAAA,MACP;AACA,WAAK,OAAO,KAAK,kBAAkB;AACnC,aAAO;AAAA,IACX,CAAC;AAAA,EACL;AAAA,EAEA,aAAa;AACT,QAAI,KAAK,SAAS,KAAK,4BAA4B;AAC/C;AAAA,IACJ;AACA,UAAM,OAAO,KAAK,oBAAoB;AACtC,QAAI,aAAa,GAAG,IAAI,GAAG;AACvB,WAAK,QAAQ,QAAQ,QAAQ,IAAI,EAAE,QAAQ,MAAO,KAAK,QAAQ,MAAU;AAAA,IAC7E;AAAA,EACJ;AAAA,EAEA,sBAAsB;AAClB,QAAI,WAAW,KAAK,oBAAoB,KAAK,cAAc;AAC3D,QAAI,YAAY,GAAG;AACf;AAAA,IACJ;AAEA,WAAO,MAAM,iCAAiC,QAAQ,kBAAkB,aAAa,IAAI,MAAM,EAAE,EAAE;AAEnG,UAAM,WAAW;AAAA,MACb,CAAC,cAAc,IAAI,GAAG;AAAA,QAClB,OAAO,KAAK,cAAc,0BAA0B,MAAM;AAAA,QAC1D,aAAa;AAAA,MACjB;AAAA,MACA,CAAC,cAAc,KAAK,GAAG;AAAA,QACnB,OAAO,KAAK,cAAc,0BAA0B,OAAO;AAAA,QAC3D,aAAa;AAAA,MACjB;AAAA,IACJ;AAEA,UAAM,aAAa,MAAyB;AAI5C,aAAS,IAAI,KAAK,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;AACpD,YAAM,EAAE,SAAS,IAAI,KAAK,aAAa,CAAC;AAExC,UAAI,aAAa,cAAc,UAAU;AACrC,cAAM,OAAO,SAAS,QAAQ;AAC9B,YAAI,KAAK,QAAQ,GAAG;AAChB,eAAK;AACL,cAAI,KAAK,UAAU,GAAG;AAClB,iBAAK,cAAc;AACnB,gBACI,SAAS,cAAc,IAAI,EAAE,cAAc,MAC3C,SAAS,cAAc,KAAK,EAAE,cAAc,IAC9C;AAEE;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAOA,UAAM,cAAc,KAAK;AACzB,eAAW,YAAY,CAAC,cAAc,OAAO,cAAc,MAAM,cAAc,QAAQ,GAAG;AACtF,YAAM,YACF,aAAa,cAAc,WAAW,KAAK,oBAAoB,SAAS,QAAQ,EAAE;AACtF,UAAI,cAAc,IAAI;AAElB;AAAA,MACJ;AACA,eAAS,IAAI,GAAG,IAAI,aAAa,WAAW,GAAG,KAAK;AAChD,YAAI,YAAY,CAAC,MAAM,OAAW;AAClC,cAAM,EAAE,UAAU,eAAe,OAAO,IAAI,YAAY,CAAC;AACzD,YAAI,kBAAkB,UAAU;AAC5B,gBAAM,OAAO,aAAa;AAAA,YAAM,KAAK,OAAO,OAAO,MAAM;AAAA,YAAG,WACxD,OAAO,KAAK,8BAA8B,MAAM,KAAK,KAAK,EAAE;AAAA,UAChE;AACA,cAAI,aAAa,GAAG,IAAI,GAAG;AACvB,uBAAW,KAAK,IAAI;AAAA,UACxB;AACA,sBAAY,CAAC,IAAI;AACjB;AAAA,QACJ;AAAA,MACJ;AACA,UAAI,YAAY,GAAG;AACf;AAAA,MACJ;AAAA,IACJ;AACA,SAAK,eAAe,YAAY,OAAO,WAAS,KAAK;AAErD,SAAK,oBAAoB,KAAK,aAAa;AAE3C,QAAI,WAAW,QAAQ;AACnB,aAAO,qBAAqB,WAAW,YAAY,4BAA4B,EAC1E,KAAK,MAAM;AAAA,MAAC,CAAC,EACb,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AAAA,IAC3C;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUC,uBAAV;AA4BI,EAAMA,mBAAA,sBAAoC;AAAA,IAC7C,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,MACvB,MAAM;AAAA,MACN,OAAO;AAAA,IACX;AAAA,EACJ;AAAA,GAnCa;",
|
|
5
5
|
"names": ["occurrence", "occurrences", "OccurrenceManager"]
|
|
6
6
|
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { GroupKeyManagement } from "#clusters/group-key-management";
|
|
7
|
-
import { BinaryKeyPair, Key, MatterError, MaybePromise, PrivateKey
|
|
7
|
+
import { BinaryKeyPair, Key, MatterError, MaybePromise, PrivateKey } from "#general";
|
|
8
8
|
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
9
|
-
import {
|
|
9
|
+
import { FabricId, FabricIndex, NodeId, VendorId } from "#types";
|
|
10
10
|
import { SecureSession } from "../session/SecureSession.js";
|
|
11
11
|
export declare class PublicKeyError extends MatterError {
|
|
12
12
|
}
|
|
@@ -49,12 +49,6 @@ export declare class Fabric {
|
|
|
49
49
|
set persistCallback(callback: (isUpdate?: boolean) => MaybePromise<void>);
|
|
50
50
|
remove(currentSessionId?: number): Promise<void>;
|
|
51
51
|
persist(isUpdate?: boolean): MaybePromise<void> | undefined;
|
|
52
|
-
getScopedClusterDataValue<T>(cluster: Cluster<any, any, any, any, any>, clusterDataKey: string): T | undefined;
|
|
53
|
-
setScopedClusterDataValue<T>(cluster: Cluster<any, any, any, any, any>, clusterDataKey: string, value: T): MaybePromise<void> | undefined;
|
|
54
|
-
deleteScopedClusterDataValue(cluster: Cluster<any, any, any, any, any>, clusterDataKey: string): MaybePromise<void>;
|
|
55
|
-
hasScopedClusterDataValue(cluster: Cluster<any, any, any, any, any>, clusterDataKey: string): boolean;
|
|
56
|
-
deleteScopedClusterData(cluster: Cluster<any, any, any, any, any>): MaybePromise<void> | undefined;
|
|
57
|
-
getScopedClusterDataKeys(cluster: Cluster<any, any, any, any, any>): string[];
|
|
58
52
|
getGroupKeySet(groupKeySetId: number): import("#types").TypeFromFields<{
|
|
59
53
|
groupKeySetId: import("#types").FieldType<number>;
|
|
60
54
|
groupKeySecurityPolicy: import("#types").FieldType<GroupKeyManagement.GroupKeySecurityPolicy>;
|
|
@@ -103,8 +97,6 @@ export declare class FabricBuilder {
|
|
|
103
97
|
build(fabricIndex: FabricIndex): Promise<Fabric>;
|
|
104
98
|
}
|
|
105
99
|
export declare namespace Fabric {
|
|
106
|
-
interface ScopedClusterData extends Map<number, Map<string, SupportedStorageTypes>> {
|
|
107
|
-
}
|
|
108
100
|
type Config = {
|
|
109
101
|
fabricIndex: FabricIndex;
|
|
110
102
|
fabricId: FabricId;
|
|
@@ -120,7 +112,6 @@ export declare namespace Fabric {
|
|
|
120
112
|
intermediateCACert: Uint8Array | undefined;
|
|
121
113
|
operationalCert: Uint8Array;
|
|
122
114
|
label: string;
|
|
123
|
-
scopedClusterData?: ScopedClusterData;
|
|
124
115
|
};
|
|
125
116
|
}
|
|
126
117
|
//# sourceMappingURL=Fabric.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/Fabric.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EACH,aAAa,EAOb,GAAG,EAEH,WAAW,EAEX,YAAY,EACZ,UAAU,
|
|
1
|
+
{"version":3,"file":"Fabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/Fabric.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,7 +69,6 @@ class Fabric {
|
|
|
69
69
|
operationalIdentityProtectionKey;
|
|
70
70
|
intermediateCACert;
|
|
71
71
|
operationalCert;
|
|
72
|
-
#scopedClusterData;
|
|
73
72
|
#keyPair;
|
|
74
73
|
#sessions = /* @__PURE__ */ new Set();
|
|
75
74
|
#label;
|
|
@@ -90,7 +89,6 @@ class Fabric {
|
|
|
90
89
|
this.operationalCert = config.operationalCert;
|
|
91
90
|
this.#label = config.label;
|
|
92
91
|
this.#keyPair = PrivateKey(config.keyPair);
|
|
93
|
-
this.#scopedClusterData = config.scopedClusterData ?? /* @__PURE__ */ new Map();
|
|
94
92
|
}
|
|
95
93
|
get config() {
|
|
96
94
|
return {
|
|
@@ -107,8 +105,7 @@ class Fabric {
|
|
|
107
105
|
operationalIdentityProtectionKey: this.operationalIdentityProtectionKey,
|
|
108
106
|
intermediateCACert: this.intermediateCACert,
|
|
109
107
|
operationalCert: this.operationalCert,
|
|
110
|
-
label: this.#label
|
|
111
|
-
scopedClusterData: this.#scopedClusterData
|
|
108
|
+
label: this.#label
|
|
112
109
|
};
|
|
113
110
|
}
|
|
114
111
|
get label() {
|
|
@@ -182,40 +179,6 @@ class Fabric {
|
|
|
182
179
|
persist(isUpdate = true) {
|
|
183
180
|
return this.#persistCallback?.(isUpdate);
|
|
184
181
|
}
|
|
185
|
-
getScopedClusterDataValue(cluster, clusterDataKey) {
|
|
186
|
-
const dataMap = this.#scopedClusterData.get(cluster.id);
|
|
187
|
-
if (dataMap === void 0) {
|
|
188
|
-
return void 0;
|
|
189
|
-
}
|
|
190
|
-
return dataMap.get(clusterDataKey);
|
|
191
|
-
}
|
|
192
|
-
setScopedClusterDataValue(cluster, clusterDataKey, value) {
|
|
193
|
-
if (!this.#scopedClusterData.has(cluster.id)) {
|
|
194
|
-
this.#scopedClusterData.set(cluster.id, /* @__PURE__ */ new Map());
|
|
195
|
-
}
|
|
196
|
-
this.#scopedClusterData.get(cluster.id).set(clusterDataKey, value);
|
|
197
|
-
return this.persist(false);
|
|
198
|
-
}
|
|
199
|
-
deleteScopedClusterDataValue(cluster, clusterDataKey) {
|
|
200
|
-
if (!this.#scopedClusterData.has(cluster.id)) {
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
this.#scopedClusterData.get(cluster.id).delete(clusterDataKey);
|
|
204
|
-
return this.persist(false);
|
|
205
|
-
}
|
|
206
|
-
hasScopedClusterDataValue(cluster, clusterDataKey) {
|
|
207
|
-
return this.#scopedClusterData.has(cluster.id) && this.#scopedClusterData.get(cluster.id).has(clusterDataKey);
|
|
208
|
-
}
|
|
209
|
-
deleteScopedClusterData(cluster) {
|
|
210
|
-
this.#scopedClusterData.delete(cluster.id);
|
|
211
|
-
return this.persist(false);
|
|
212
|
-
}
|
|
213
|
-
getScopedClusterDataKeys(cluster) {
|
|
214
|
-
if (!this.#scopedClusterData.has(cluster.id)) {
|
|
215
|
-
return [];
|
|
216
|
-
}
|
|
217
|
-
return Array.from(this.#scopedClusterData.get(cluster.id).keys());
|
|
218
|
-
}
|
|
219
182
|
getGroupKeySet(groupKeySetId) {
|
|
220
183
|
if (groupKeySetId === 0) {
|
|
221
184
|
return OperationalGroupKeySet.asTlvGroupSet(this.getGroupSetForIpk());
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fabric/Fabric.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,0BAA0B;AACnC;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["OperationalGroupKeySet"]
|
|
6
6
|
}
|
|
@@ -3,11 +3,31 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { ChannelType, Diagnostic, Lifespan, Network, ServerAddressIp, UdpMulticastServer } from "#general";
|
|
6
|
+
import { BasicSet, ChannelType, Diagnostic, Lifespan, Network, ServerAddressIp, UdpMulticastServer } from "#general";
|
|
7
7
|
import { NodeId } from "#types";
|
|
8
8
|
import { CommissionableDevice, CommissionableDeviceIdentifiers, DiscoveryData, OperationalDevice, Scanner } from "../common/Scanner.js";
|
|
9
9
|
import { Fabric } from "../fabric/Fabric.js";
|
|
10
10
|
type MatterServerRecordWithExpire = ServerAddressIp & Lifespan;
|
|
11
|
+
/**
|
|
12
|
+
* Interface to add criteria for MDNS discovery a node is interested in
|
|
13
|
+
*
|
|
14
|
+
* This interface is used to define criteria for mDNS scanner targets.
|
|
15
|
+
* It includes the information if commissionable devices are relevant for the target
|
|
16
|
+
* and a list of operational targets. Operational targets can consist of operational IDs
|
|
17
|
+
* and optional node IDs.
|
|
18
|
+
*
|
|
19
|
+
* When no commissionable devices are relevant and no operational targets are defined, it is
|
|
20
|
+
* not required to add a criteria to the scanner.
|
|
21
|
+
*/
|
|
22
|
+
export interface MdnsScannerTargetCriteria {
|
|
23
|
+
/** Are commissionable MDNS records relevant? */
|
|
24
|
+
commissionable: boolean;
|
|
25
|
+
/** List of operational targets. */
|
|
26
|
+
operationalTargets: {
|
|
27
|
+
operationalId: Uint8Array;
|
|
28
|
+
nodeId?: NodeId;
|
|
29
|
+
}[];
|
|
30
|
+
}
|
|
11
31
|
/**
|
|
12
32
|
* This class implements the Scanner interface for a MDNS scanner via UDP messages in a IP based network. It sends out
|
|
13
33
|
* queries to discover various types of Matter device types and listens for announcements.
|
|
@@ -20,6 +40,8 @@ export declare class MdnsScanner implements Scanner {
|
|
|
20
40
|
netInterface?: string;
|
|
21
41
|
}): Promise<MdnsScanner>;
|
|
22
42
|
constructor(multicastServer: UdpMulticastServer, enableIpv4?: boolean);
|
|
43
|
+
/** Set to add or delete criteria for MDNS discovery */
|
|
44
|
+
get targetCriteriaProviders(): BasicSet<MdnsScannerTargetCriteria, MdnsScannerTargetCriteria>;
|
|
23
45
|
/**
|
|
24
46
|
* Method to find an operational device (already commissioned) and return a promise with the list of discovered
|
|
25
47
|
* IP/ports or an empty array if not found.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdnsScanner.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsScanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"MdnsScanner.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsScanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,QAAQ,EAER,WAAW,EACX,UAAU,EAUV,QAAQ,EAGR,OAAO,EAEP,eAAe,EAIf,kBAAkB,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,EACH,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,OAAO,EACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAkB7C,KAAK,4BAA4B,GAAG,eAAe,GAAG,QAAQ,CAAC;AAoC/D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAAyB;IACtC,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IAExB,mCAAmC;IACnC,kBAAkB,EAAE;QAChB,aAAa,EAAE,UAAU,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACP;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,OAAO;;IACvC,IAAI,IAAI,gBAEP;WAEY,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;gBAsDnF,eAAe,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,OAAO;IAcrE,uDAAuD;IACvD,IAAI,uBAAuB,mEAE1B;IAiWD;;;OAGG;IACG,qBAAqB,CACvB,EAAE,aAAa,EAAE,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwBzC,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAO;IAKtF,mCAAmC,CAAC,UAAU,EAAE,+BAA+B,EAAE,cAAc,UAAO;IAQtG,8BAA8B,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAoLxE;;;;;;;OAOG;IACG,yBAAyB,CAC3B,UAAU,EAAE,+BAA+B,EAC3C,cAAc,SAAI,EAClB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBlC;;;OAGG;IACG,qCAAqC,CACvC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAChD,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiDlC,kCAAkC,CAAC,UAAU,EAAE,+BAA+B;mBAlOvD,eAAe,EAAE;;;;;;;;;;;;;;;;;oBA5jBxB,MAAM;YACd,MAAM;YACN,MAAM;YACN,MAAM;;IA+xBd;;OAEG;IACG,KAAK;IA8tBX,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa;IAmBnD,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC;CASvF"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import {
|
|
7
|
+
BasicSet,
|
|
7
8
|
Bytes,
|
|
8
9
|
ChannelType,
|
|
9
10
|
Diagnostic,
|
|
@@ -12,8 +13,10 @@ import {
|
|
|
12
13
|
DnsRecordClass,
|
|
13
14
|
DnsRecordType,
|
|
14
15
|
ImplementationError,
|
|
16
|
+
InternalError,
|
|
15
17
|
Logger,
|
|
16
18
|
MAX_MDNS_MESSAGE_SIZE,
|
|
19
|
+
ObserverGroup,
|
|
17
20
|
Time,
|
|
18
21
|
UdpMulticastServer,
|
|
19
22
|
createPromise,
|
|
@@ -68,6 +71,13 @@ class MdnsScanner {
|
|
|
68
71
|
#closing = false;
|
|
69
72
|
#multicastServer;
|
|
70
73
|
#enableIpv4;
|
|
74
|
+
#targetCriteriaProviders = new BasicSet();
|
|
75
|
+
#scanForCommissionableDevices = false;
|
|
76
|
+
#hasCommissionableWaiters = false;
|
|
77
|
+
#operationalScanTargets = /* @__PURE__ */ new Set();
|
|
78
|
+
#observers = new ObserverGroup();
|
|
79
|
+
/** True, if any node is interested in MDNS traffic, else we ignore all traffic */
|
|
80
|
+
#listening = false;
|
|
71
81
|
constructor(multicastServer, enableIpv4) {
|
|
72
82
|
multicastServer.onMessage(
|
|
73
83
|
(message, remoteIp, netInterface) => this.#handleDnsMessage(message, remoteIp, netInterface)
|
|
@@ -79,6 +89,59 @@ class MdnsScanner {
|
|
|
79
89
|
60 * 1e3,
|
|
80
90
|
() => this.#expire()
|
|
81
91
|
).start();
|
|
92
|
+
this.#observers.on(this.#targetCriteriaProviders.added, () => this.#handleChangedScanTargets());
|
|
93
|
+
this.#observers.on(this.#targetCriteriaProviders.deleted, () => this.#handleChangedScanTargets());
|
|
94
|
+
}
|
|
95
|
+
/** Set to add or delete criteria for MDNS discovery */
|
|
96
|
+
get targetCriteriaProviders() {
|
|
97
|
+
return this.#targetCriteriaProviders;
|
|
98
|
+
}
|
|
99
|
+
#handleChangedScanTargets() {
|
|
100
|
+
this.#updateScanTargets();
|
|
101
|
+
logger.info(
|
|
102
|
+
"MDNS Scan targets updated :",
|
|
103
|
+
`commissionable = ${this.#scanForCommissionableDevices}`,
|
|
104
|
+
"Targets:",
|
|
105
|
+
this.#operationalScanTargets
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
/** Update the MDNS scan criteria state and collect the desired operational targets */
|
|
109
|
+
#updateScanTargets() {
|
|
110
|
+
if (this.#closing) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.#operationalScanTargets.clear();
|
|
114
|
+
let cacheCommissionableDevices = false;
|
|
115
|
+
for (const criteria of this.#targetCriteriaProviders) {
|
|
116
|
+
const { operationalTargets, commissionable } = criteria;
|
|
117
|
+
cacheCommissionableDevices = cacheCommissionableDevices || commissionable;
|
|
118
|
+
for (const { operationalId, nodeId } of operationalTargets) {
|
|
119
|
+
const operationalIdString = Bytes.toHex(operationalId).toUpperCase();
|
|
120
|
+
if (nodeId === void 0) {
|
|
121
|
+
this.#operationalScanTargets.add(operationalIdString);
|
|
122
|
+
} else {
|
|
123
|
+
this.#operationalScanTargets.add(`${operationalIdString}-${NodeId.toHexString(nodeId)}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
this.#scanForCommissionableDevices = cacheCommissionableDevices;
|
|
128
|
+
for (const queryId of this.#recordWaiters.keys()) {
|
|
129
|
+
this.#registerOperationalQuery(queryId);
|
|
130
|
+
}
|
|
131
|
+
this.#updateListeningStatus();
|
|
132
|
+
}
|
|
133
|
+
/** Update the status of we care about MDNS messages or not */
|
|
134
|
+
#updateListeningStatus() {
|
|
135
|
+
const formerListenStatus = this.#listening;
|
|
136
|
+
this.#listening = this.#scanForCommissionableDevices || this.#operationalScanTargets.size > 0 || this.#recordWaiters.size > 0 || this.#activeAnnounceQueries.size > 0;
|
|
137
|
+
if (!this.#listening) {
|
|
138
|
+
this.#discoveredIpRecords.clear();
|
|
139
|
+
this.#operationalDeviceRecords.clear();
|
|
140
|
+
this.#commissionableDeviceRecords.clear();
|
|
141
|
+
}
|
|
142
|
+
if (this.#listening !== formerListenStatus) {
|
|
143
|
+
logger.debug(`MDNS Scanner ${this.#listening ? "started" : "stopped"} listening for MDNS messages`);
|
|
144
|
+
}
|
|
82
145
|
}
|
|
83
146
|
#effectiveTTL(ttl) {
|
|
84
147
|
return Math.ceil(ttl * MDNS_EXPIRY_GRACE_PERIOD_FACTOR);
|
|
@@ -253,17 +316,30 @@ class MdnsScanner {
|
|
|
253
316
|
return 0;
|
|
254
317
|
});
|
|
255
318
|
}
|
|
319
|
+
#registerOperationalQuery(queryId) {
|
|
320
|
+
const separator = queryId.indexOf(".");
|
|
321
|
+
if (separator !== -1) {
|
|
322
|
+
this.#operationalScanTargets.add(queryId.substring(0, separator));
|
|
323
|
+
} else {
|
|
324
|
+
throw new InternalError(`Invalid queryId ${queryId} for operational device, no separator found`);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
256
327
|
/**
|
|
257
328
|
* Registers a deferred promise for a specific queryId together with a timeout and return the promise.
|
|
258
329
|
* The promise will be resolved when the timer runs out latest.
|
|
259
330
|
*/
|
|
260
|
-
async #registerWaiterPromise(queryId, timeoutSeconds, resolveOnUpdatedRecords = true, cancelResolver) {
|
|
331
|
+
async #registerWaiterPromise(queryId, commissionable, timeoutSeconds, resolveOnUpdatedRecords = true, cancelResolver) {
|
|
261
332
|
const { promise, resolver } = createPromise();
|
|
262
333
|
const timer = timeoutSeconds !== void 0 ? Time.getTimer("MDNS timeout", timeoutSeconds * 1e3, () => {
|
|
263
334
|
cancelResolver?.();
|
|
264
335
|
this.#finishWaiter(queryId, true);
|
|
265
336
|
}).start() : void 0;
|
|
266
|
-
this.#
|
|
337
|
+
this.#listening = true;
|
|
338
|
+
this.#recordWaiters.set(queryId, { resolver, timer, resolveOnUpdatedRecords, cancelResolver, commissionable });
|
|
339
|
+
this.#hasCommissionableWaiters = this.#hasCommissionableWaiters || commissionable;
|
|
340
|
+
if (!commissionable) {
|
|
341
|
+
this.#registerOperationalQuery(queryId);
|
|
342
|
+
}
|
|
267
343
|
logger.debug(
|
|
268
344
|
`Registered waiter for query ${queryId} with ${timeoutSeconds !== void 0 ? `timeout ${timeoutSeconds} seconds` : "no timeout"}${resolveOnUpdatedRecords ? "" : " (not resolving on updated records)"}`
|
|
269
345
|
);
|
|
@@ -276,7 +352,7 @@ class MdnsScanner {
|
|
|
276
352
|
#finishWaiter(queryId, resolvePromise, isUpdatedRecord = false) {
|
|
277
353
|
const waiter = this.#recordWaiters.get(queryId);
|
|
278
354
|
if (waiter === void 0) return;
|
|
279
|
-
const { timer, resolver, resolveOnUpdatedRecords } = waiter;
|
|
355
|
+
const { timer, resolver, resolveOnUpdatedRecords, commissionable } = waiter;
|
|
280
356
|
if (isUpdatedRecord && !resolveOnUpdatedRecords) return;
|
|
281
357
|
logger.debug(`Finishing waiter for query ${queryId}, resolving: ${resolvePromise}`);
|
|
282
358
|
if (timer !== void 0) {
|
|
@@ -286,6 +362,29 @@ class MdnsScanner {
|
|
|
286
362
|
resolver();
|
|
287
363
|
}
|
|
288
364
|
this.#recordWaiters.delete(queryId);
|
|
365
|
+
this.#removeQuery(queryId);
|
|
366
|
+
if (!this.#closing) {
|
|
367
|
+
this.#hasCommissionableWaiters = false;
|
|
368
|
+
let hasOperationalWaiters = false;
|
|
369
|
+
for (const { commissionable: commissionable2 } of this.#recordWaiters.values()) {
|
|
370
|
+
if (commissionable2) {
|
|
371
|
+
this.#hasCommissionableWaiters = true;
|
|
372
|
+
if (hasOperationalWaiters) {
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
} else {
|
|
376
|
+
hasOperationalWaiters = true;
|
|
377
|
+
if (this.#hasCommissionableWaiters) {
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
if (!commissionable) {
|
|
383
|
+
this.#updateScanTargets();
|
|
384
|
+
} else {
|
|
385
|
+
this.#updateListeningStatus();
|
|
386
|
+
}
|
|
387
|
+
}
|
|
289
388
|
}
|
|
290
389
|
/** Returns weather a waiter promise is registered for a specific queryId. */
|
|
291
390
|
#hasWaiter(queryId) {
|
|
@@ -306,7 +405,7 @@ class MdnsScanner {
|
|
|
306
405
|
const deviceMatterQname = this.#createOperationalMatterQName(operationalId, nodeId);
|
|
307
406
|
let storedDevice = ignoreExistingRecords ? void 0 : this.#getOperationalDeviceRecords(deviceMatterQname);
|
|
308
407
|
if (storedDevice === void 0) {
|
|
309
|
-
const promise = this.#registerWaiterPromise(deviceMatterQname, timeoutSeconds);
|
|
408
|
+
const promise = this.#registerWaiterPromise(deviceMatterQname, false, timeoutSeconds);
|
|
310
409
|
this.#setQueryRecords(deviceMatterQname, [
|
|
311
410
|
{
|
|
312
411
|
name: deviceMatterQname,
|
|
@@ -316,7 +415,6 @@ class MdnsScanner {
|
|
|
316
415
|
]);
|
|
317
416
|
await promise;
|
|
318
417
|
storedDevice = this.#getOperationalDeviceRecords(deviceMatterQname);
|
|
319
|
-
this.#removeQuery(deviceMatterQname);
|
|
320
418
|
}
|
|
321
419
|
return storedDevice;
|
|
322
420
|
}
|
|
@@ -491,11 +589,10 @@ class MdnsScanner {
|
|
|
491
589
|
let storedRecords = ignoreExistingRecords ? [] : this.#getCommissionableDeviceRecords(identifier).filter(({ addresses }) => addresses.length > 0);
|
|
492
590
|
if (storedRecords.length === 0) {
|
|
493
591
|
const queryId = this.#buildCommissionableQueryIdentifier(identifier);
|
|
494
|
-
const promise = this.#registerWaiterPromise(queryId, timeoutSeconds);
|
|
592
|
+
const promise = this.#registerWaiterPromise(queryId, true, timeoutSeconds);
|
|
495
593
|
this.#setQueryRecords(queryId, this.#getCommissionableQueryRecords(identifier));
|
|
496
594
|
await promise;
|
|
497
595
|
storedRecords = this.#getCommissionableDeviceRecords(identifier);
|
|
498
|
-
this.#removeQuery(queryId);
|
|
499
596
|
}
|
|
500
597
|
return storedRecords;
|
|
501
598
|
}
|
|
@@ -541,7 +638,7 @@ class MdnsScanner {
|
|
|
541
638
|
break;
|
|
542
639
|
}
|
|
543
640
|
}
|
|
544
|
-
await this.#registerWaiterPromise(queryId, remainingTime, false, queryResolver);
|
|
641
|
+
await this.#registerWaiterPromise(queryId, true, remainingTime, false, queryResolver);
|
|
545
642
|
}
|
|
546
643
|
return this.#getCommissionableDeviceRecords(identifier);
|
|
547
644
|
}
|
|
@@ -553,6 +650,7 @@ class MdnsScanner {
|
|
|
553
650
|
*/
|
|
554
651
|
async close() {
|
|
555
652
|
this.#closing = true;
|
|
653
|
+
this.#observers.close();
|
|
556
654
|
this.#periodicTimer.stop();
|
|
557
655
|
this.#queryTimer?.stop();
|
|
558
656
|
await this.#multicastServer.close();
|
|
@@ -809,6 +907,15 @@ class MdnsScanner {
|
|
|
809
907
|
);
|
|
810
908
|
}
|
|
811
909
|
}
|
|
910
|
+
#matchesOperationalCriteria(matterName) {
|
|
911
|
+
const nameParts = matterName.match(/^([\dA-F]{16})-([\dA-F]{16})\._matter\._tcp\.local$/i);
|
|
912
|
+
if (!nameParts) {
|
|
913
|
+
return false;
|
|
914
|
+
}
|
|
915
|
+
const operationalId = nameParts[1];
|
|
916
|
+
const nodeId = nameParts[2];
|
|
917
|
+
return this.#operationalScanTargets.has(operationalId) || this.#operationalScanTargets.has(`${operationalId}-${nodeId}`);
|
|
918
|
+
}
|
|
812
919
|
#handleOperationalTxtRecord(record, netInterface) {
|
|
813
920
|
const { name: matterName, value, ttl } = record;
|
|
814
921
|
const discoveredAt = Time.nowMs();
|
|
@@ -822,6 +929,9 @@ class MdnsScanner {
|
|
|
822
929
|
return;
|
|
823
930
|
}
|
|
824
931
|
if (!Array.isArray(value)) return;
|
|
932
|
+
if (!this.#operationalDeviceRecords.has(matterName) && !this.#matchesOperationalCriteria(matterName)) {
|
|
933
|
+
return;
|
|
934
|
+
}
|
|
825
935
|
const txtData = this.#parseTxtRecord(record);
|
|
826
936
|
if (txtData === void 0) return;
|
|
827
937
|
let device = this.#operationalDeviceRecords.get(matterName);
|
|
@@ -853,7 +963,6 @@ class MdnsScanner {
|
|
|
853
963
|
ttl,
|
|
854
964
|
value: { target, port }
|
|
855
965
|
} = record;
|
|
856
|
-
const discoveredAt = Time.nowMs();
|
|
857
966
|
if (ttl === 0) {
|
|
858
967
|
if (this.#operationalDeviceRecords.has(matterName)) {
|
|
859
968
|
logger.debug(
|
|
@@ -861,10 +970,14 @@ class MdnsScanner {
|
|
|
861
970
|
);
|
|
862
971
|
this.#operationalDeviceRecords.delete(matterName);
|
|
863
972
|
}
|
|
864
|
-
return
|
|
973
|
+
return;
|
|
865
974
|
}
|
|
866
975
|
const ips = this.#handleIpRecords([formerAnswers, answers], target, netInterface);
|
|
867
976
|
const deviceExisted = this.#operationalDeviceRecords.has(matterName);
|
|
977
|
+
if (!deviceExisted && !this.#matchesOperationalCriteria(matterName)) {
|
|
978
|
+
return;
|
|
979
|
+
}
|
|
980
|
+
const discoveredAt = Time.nowMs();
|
|
868
981
|
const device = this.#operationalDeviceRecords.get(matterName) ?? {
|
|
869
982
|
deviceIdentifier: matterName,
|
|
870
983
|
addresses: /* @__PURE__ */ new Map(),
|
|
@@ -906,9 +1019,12 @@ class MdnsScanner {
|
|
|
906
1019
|
} else if (addresses.size > 0) {
|
|
907
1020
|
this.#finishWaiter(matterName, true, deviceExisted);
|
|
908
1021
|
}
|
|
909
|
-
return
|
|
1022
|
+
return;
|
|
910
1023
|
}
|
|
911
1024
|
#handleCommissionableRecords(answers, formerAnswers, netInterface) {
|
|
1025
|
+
if (!this.#scanForCommissionableDevices && !this.#hasCommissionableWaiters) {
|
|
1026
|
+
return;
|
|
1027
|
+
}
|
|
912
1028
|
let commissionableRecords = answers.commissionable ?? {};
|
|
913
1029
|
if (!commissionableRecords[DnsRecordType.SRV]?.length && !commissionableRecords[DnsRecordType.TXT]?.length) {
|
|
914
1030
|
commissionableRecords = formerAnswers.commissionable ?? {};
|