@matter-server/ws-controller 0.5.9 → 0.5.10
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/esm/controller/MatterController.d.ts.map +1 -1
- package/dist/esm/controller/MatterController.js +30 -27
- package/dist/esm/controller/MatterController.js.map +1 -1
- package/dist/esm/controller/ServerIdResolver.d.ts.map +1 -1
- package/dist/esm/controller/ServerIdResolver.js +35 -25
- package/dist/esm/controller/ServerIdResolver.js.map +1 -1
- package/package.json +2 -2
- package/src/controller/MatterController.ts +35 -33
- package/src/controller/ServerIdResolver.ts +38 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatterController.d.ts","sourceRoot":"","sources":["../../../src/controller/MatterController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EAEL,MAAM,EAEN,WAAW,EAOX,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAsB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,OAAO,oBAAoB,CAAC;AAI5B,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,KAAK,EAAE,KAAK,GACb,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAmBD,qBAAa,gBAAgB;;WAWZ,MAAM,CACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,uBAAuB,EAChC,UAAU,CAAC,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"MatterController.d.ts","sourceRoot":"","sources":["../../../src/controller/MatterController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EAEL,MAAM,EAEN,WAAW,EAOX,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAsB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,OAAO,oBAAoB,CAAC;AAI5B,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,KAAK,EAAE,KAAK,GACb,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAmBD,qBAAa,gBAAgB;;WAWZ,MAAM,CACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,uBAAuB,EAChC,UAAU,CAAC,EAAE,gBAAgB;gBA8DrB,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM;cAS/F,UAAU,CACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAC1B,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IA0BpD,IAAI,cAAc,6BAuCjB;IAED;;;OAGG;IACG,iBAAiB;IASvB;;;OAGG;IACG,kBAAkB;IASxB;;;OAGG;IACG,gBAAgB;IAStB;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAItE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAIzD,uBAAuB;IAkBvB,IAAI;IAkBV;;;;OAIG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBlE"}
|
|
@@ -57,36 +57,39 @@ class MatterController {
|
|
|
57
57
|
if (legacyData !== void 0) {
|
|
58
58
|
const crypto = environment.get(Crypto);
|
|
59
59
|
const baseStorage = await config.service.open(serverId);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
if (await LegacyDataInjector.injectNodeData(
|
|
70
|
-
baseStorage,
|
|
71
|
-
legacyData.nodeData,
|
|
72
|
-
legacyData.fabric?.fabricIndex
|
|
73
|
-
) && legacyData.nodeData !== void 0) {
|
|
74
|
-
for (const [nodeIdStr, data] of Object.entries(legacyData.nodeData.nodes)) {
|
|
75
|
-
const { date_commissioned: commissionedAt } = data;
|
|
76
|
-
commissionedDates.set(nodeIdStr, Timestamp(new Date(commissionedAt).getTime()));
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const lastNodeId = legacyData.nodeData?.last_node_id;
|
|
80
|
-
if (typeof lastNodeId === "number" || typeof lastNodeId === "bigint") {
|
|
81
|
-
if (BigInt(config.nextNodeId) <= BigInt(lastNodeId)) {
|
|
82
|
-
const newNextNodeId = BigInt(lastNodeId) + 10n;
|
|
83
|
-
logger.info(
|
|
84
|
-
`Updating nextNodeId from ${config.nextNodeId} to ${newNextNodeId} (legacy last_node_id: ${lastNodeId})`
|
|
60
|
+
try {
|
|
61
|
+
if (legacyData.credentials && legacyData.fabricId) {
|
|
62
|
+
await LegacyDataInjector.injectCredentials(
|
|
63
|
+
baseStorage.createContext("credentials"),
|
|
64
|
+
baseStorage.createContext("fabrics"),
|
|
65
|
+
crypto,
|
|
66
|
+
legacyData.credentials,
|
|
67
|
+
legacyData.fabric
|
|
85
68
|
);
|
|
86
|
-
await config.set({ nextNodeId: newNextNodeId });
|
|
87
69
|
}
|
|
70
|
+
if (await LegacyDataInjector.injectNodeData(
|
|
71
|
+
baseStorage,
|
|
72
|
+
legacyData.nodeData,
|
|
73
|
+
legacyData.fabric?.fabricIndex
|
|
74
|
+
) && legacyData.nodeData !== void 0) {
|
|
75
|
+
for (const [nodeIdStr, data] of Object.entries(legacyData.nodeData.nodes)) {
|
|
76
|
+
const { date_commissioned: commissionedAt } = data;
|
|
77
|
+
commissionedDates.set(nodeIdStr, Timestamp(new Date(commissionedAt).getTime()));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const lastNodeId = legacyData.nodeData?.last_node_id;
|
|
81
|
+
if (typeof lastNodeId === "number" || typeof lastNodeId === "bigint") {
|
|
82
|
+
if (BigInt(config.nextNodeId) <= BigInt(lastNodeId)) {
|
|
83
|
+
const newNextNodeId = BigInt(lastNodeId) + 10n;
|
|
84
|
+
logger.info(
|
|
85
|
+
`Updating nextNodeId from ${config.nextNodeId} to ${newNextNodeId} (legacy last_node_id: ${lastNodeId})`
|
|
86
|
+
);
|
|
87
|
+
await config.set({ nextNodeId: newNextNodeId });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
} finally {
|
|
91
|
+
await baseStorage.close();
|
|
88
92
|
}
|
|
89
|
-
await baseStorage.close();
|
|
90
93
|
}
|
|
91
94
|
await instance.initialize(legacyData?.vendorId, legacyData?.fabricId, commissionedDates);
|
|
92
95
|
return instance;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/MatterController.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AACxC,SAAS,gBAAgB;AAEzB,SAAS,gCAAgC;AACzC,SAAS,0BAA4C;AACrD,SAAS,uBAAuB;AAEhC,OAAO;AAEP,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAE5C,eAAsB,wBAClB,QACA,UACA,OACe;AACf,UAAQ,MAAM,eAAe,QAAQ,QAAQ,SAAS,QAAQ,GAAG,KAAK,GAAG,SAAS;AACtF;AAiBA,SAAS,qBAAqB,SAAyB;AAEnD,QAAM,cAAc,QAAQ,MAAM,GAAG,EAAE,CAAC;AACxC,QAAM,QAAQ,YAAY,MAAM,GAAG;AACnC,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAE1C,SAAO,QAAQ,MAAQ,QAAQ,MAAM;AACzC;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EAEtB,aAAa,OACT,aACA,QACA,SACA,YACF;AAEE,UAAM,WAAW,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IAChB;AAEA,UAAM,WAAW,IAAI,iBAAiB,aAAa,QAAQ,SAAS,QAAQ;AAE5E,UAAM,oBAAoB,oBAAI,IAAuB;AACrD,QAAI,eAAe,QAAW;AAC1B,YAAM,SAAS,YAAY,IAAI,MAAM;AACrC,YAAM,cAAc,MAAM,OAAO,QAAQ,KAAK,QAAQ;AACtD,UAAI,WAAW,eAAe,WAAW,UAAU;AAC/C,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AACxC,SAAS,gBAAgB;AAEzB,SAAS,gCAAgC;AACzC,SAAS,0BAA4C;AACrD,SAAS,uBAAuB;AAEhC,OAAO;AAEP,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAE5C,eAAsB,wBAClB,QACA,UACA,OACe;AACf,UAAQ,MAAM,eAAe,QAAQ,QAAQ,SAAS,QAAQ,GAAG,KAAK,GAAG,SAAS;AACtF;AAiBA,SAAS,qBAAqB,SAAyB;AAEnD,QAAM,cAAc,QAAQ,MAAM,GAAG,EAAE,CAAC;AACxC,QAAM,QAAQ,YAAY,MAAM,GAAG;AACnC,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAE1C,SAAO,QAAQ,MAAQ,QAAQ,MAAM;AACzC;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EAEtB,aAAa,OACT,aACA,QACA,SACA,YACF;AAEE,UAAM,WAAW,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IAChB;AAEA,UAAM,WAAW,IAAI,iBAAiB,aAAa,QAAQ,SAAS,QAAQ;AAE5E,UAAM,oBAAoB,oBAAI,IAAuB;AACrD,QAAI,eAAe,QAAW;AAC1B,YAAM,SAAS,YAAY,IAAI,MAAM;AACrC,YAAM,cAAc,MAAM,OAAO,QAAQ,KAAK,QAAQ;AACtD,UAAI;AACA,YAAI,WAAW,eAAe,WAAW,UAAU;AAC/C,gBAAM,mBAAmB;AAAA,YACrB,YAAY,cAAc,aAAa;AAAA,YACvC,YAAY,cAAc,SAAS;AAAA,YACnC;AAAA,YACA,WAAW;AAAA,YACX,WAAW;AAAA,UACf;AAAA,QACJ;AACA,YACK,MAAM,mBAAmB;AAAA,UACtB;AAAA,UACA,WAAW;AAAA,UACX,WAAW,QAAQ;AAAA,QACvB,KACA,WAAW,aAAa,QAC1B;AACE,qBAAW,CAAC,WAAW,IAAI,KAAK,OAAO,QAAQ,WAAW,SAAS,KAAK,GAAG;AACvE,kBAAM,EAAE,mBAAmB,eAAe,IAAI;AAC9C,8BAAkB,IAAI,WAAW,UAAU,IAAI,KAAK,cAAc,EAAE,QAAQ,CAAC,CAAC;AAAA,UAClF;AAAA,QACJ;AAGA,cAAM,aAAa,WAAW,UAAU;AACxC,YAAI,OAAO,eAAe,YAAY,OAAO,eAAe,UAAU;AAElE,cAAI,OAAO,OAAO,UAAU,KAAK,OAAO,UAAU,GAAG;AACjD,kBAAM,gBAAgB,OAAO,UAAU,IAAI;AAC3C,mBAAO;AAAA,cACH,4BAA4B,OAAO,UAAU,OAAO,aAAa,0BAA0B,UAAU;AAAA,YACzG;AACA,kBAAM,OAAO,IAAI,EAAE,YAAY,cAAc,CAAC;AAAA,UAClD;AAAA,QACJ;AAAA,MACJ,UAAE;AACE,cAAM,YAAY,MAAM;AAAA,MAC5B;AAAA,IACJ;AAEA,UAAM,SAAS,WAAW,YAAY,UAAU,YAAY,UAAU,iBAAiB;AACvF,WAAO;AAAA,EACX;AAAA,EAEA,YAAY,aAA0B,QAAuB,SAAkC,UAAkB;AAC7G,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,iBAAiB,QAAQ,iBAAiB;AAC/C,SAAK,oBAAoB,QAAQ,oBAAoB,KAAK;AAC1D,SAAK,sBAAsB,QAAQ,sBAAsB,KAAK;AAAA,EAClE;AAAA,EAEA,MAAgB,WACZ,UACA,UACA,yBACF;AACE,SAAK,2BAA2B,yBAAyB,OAAO,0BAA0B;AAC1F,SAAK,sBAAsB,IAAI,wBAAwB;AAAA,MACnD,aAAa;AAAA,QACT,aAAa,KAAK;AAAA,QAClB,IAAI,KAAK;AAAA,MACb;AAAA,MACA,aAAa;AAAA;AAAA,MACb,kBAAkB,KAAK,QAAQ;AAAA,MAC/B,eAAe,aAAa,SAAY,SAAS,QAAQ,IAAI;AAAA,MAC7D,eAAe,aAAa,SAAY,SAAS,QAAQ,IAAI;AAAA,MAC7D,YAAY,OAAO,MAAM;AAAA;AAAA,MACzB,mBAAmB,CAAC,KAAK;AAAA,MACzB,kBAAkB;AAAA,QACd,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,uBAAuB;AAAA,QACvB,iBAAiB,qBAAqB,KAAK,cAAc,KAAK;AAAA,QAC9D,uBAAuB,KAAK,eAAe,MAAM,GAAG,EAAE,CAAC;AAAA;AAAA,MAC3D;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,iBAAiB;AACjB,QAAI,KAAK,wBAAwB,QAAW;AACxC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AACA,QAAI,KAAK,oBAAoB,QAAW;AACpC,WAAK,kBAAkB,IAAI;AAAA,QACvB,KAAK;AAAA,QACL,KAAK,KAAK,KAAK,IAAI,cAAc,KAAK;AAAA,QACtC,CAAC,KAAK;AAAA,MACV;AAEA,WAAK,gBAAgB,OAAO,QAAQ,KAAK,YAAY;AACjD,aAAK,oBAAqB,KAAK,UAAU,QAAQ,aAAa;AAAA,UAC1D,uBAAuB,KAAK;AAAA,QAChC,CAAC;AAED,cAAM,eAAe,IAAI,MAAwB;AAEjD,YAAI,KAAK,6BAA6B,QAAW;AAC7C,uBAAa,KAAK,KAAK,wBAAwB,CAAC;AAAA,QACpD;AAGA,qBAAa,KAAK,KAAK,kBAAkB,CAAC;AAC1C,qBAAa,KAAK,KAAK,mBAAmB,CAAC;AAE3C,YAAI,CAAC,KAAK,uBAAuB,KAAK,mBAAmB;AACrD,uBAAa,KAAK,KAAK,qBAAqB,CAAC;AAAA,QACjD;AAEA,YAAI;AACA,gBAAM,qBAAqB,WAAW,YAAY;AAAA,QACtD,SAAS,OAAO;AACZ,iBAAO,MAAM,qDAAqD,KAAK;AAAA,QAC3E;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,oBAAoB;AACtB,QAAI,KAAK,wBAAwB,QAAW;AACxC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AACA,UAAM,UAAU,MAAM,KAAK,oBAAoB,KAAK,IAAI,WAAS,MAAM,IAAI,WAAW,EAAE,iBAAiB;AACzG,UAAM,QAAQ;AACd,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qBAAqB;AACvB,QAAI,KAAK,wBAAwB,QAAW;AACxC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AACA,UAAM,UAAU,MAAM,KAAK,oBAAoB,KAAK,IAAI,WAAS,MAAM,IAAI,WAAW,EAAE,kBAAkB;AAC1G,UAAM,QAAQ;AACd,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,mBAAmB;AACrB,QAAI,KAAK,wBAAwB,QAAW;AACxC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AACA,UAAM,UAAU,MAAM,KAAK,oBAAoB,KAAK,IAAI,WAAS,MAAM,IAAI,WAAW,EAAE,gBAAgB;AACxG,UAAM,QAAQ;AACd,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAc,UAAmD;AACnE,YAAQ,MAAM,KAAK,kBAAkB,GAAG,QAAQ,QAAQ;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAA0D;AAC5D,YAAQ,MAAM,KAAK,kBAAkB,GAAG;AAAA,EAC5C;AAAA,EAEA,MAAM,0BAA0B;AAC5B,QAAI,KAAK,wBAAwB,UAAa,KAAK,6BAA6B,QAAW;AACvF;AAAA,IACJ;AACA,eAAW,CAAC,WAAW,cAAc,KAAK,KAAK,0BAA0B;AACrE,UAAI;AACA,cAAM,cAAc,KAAK,oBAAoB,OAAO,UAAU,OAAO,OAAO,SAAS,CAAC,CAAC;AACvF,cAAM,OAAO,MAAM,KAAK,oBAAoB,KAAK,MAAM,WAAW,WAAW;AAC7E,cAAM,qBAAqB,KAAK,aAAa,mBAAmB;AAChE,YAAI,uBAAuB,UAAa,mBAAmB,mBAAmB,QAAW;AACrF,gBAAM,KAAK,WAAW,qBAAqB,EAAE,eAAe,CAAC;AAAA,QACjE;AAAA,MACJ,SAAS,OAAO;AACZ,eAAO,KAAK,8CAA8C,SAAS,IAAI,KAAK;AAAA,MAChF;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,OAAO;AACT,UAAM,KAAK,iBAAiB,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,uBAAuB;AACzB,QAAI,KAAK,wBAAwB,QAAW;AACxC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AACA,UAAM,KAAK,oBAAoB,YAAY,WAAW,uBAAuB;AAAA,MACzE,oBAAoB;AAAA,IACxB,CAAC;AACD,WAAO,KAAK,wCAAwC;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,UAAoC;AAC5D,UAAM,EAAE,iBAAiB,IAAI,MAAM,OAAO,SAAS;AACnD,UAAM,EAAE,cAAc,IAAI,MAAM,OAAO,UAAU;AACjD,UAAM,aAAa,MAAM,KAAK,iBAAiB;AAG/C,UAAM,UAAU,cAAc,QAAQ,EAAE;AAGxC,UAAM,aAAa,SAAS,MAAM,iBAAiB,QAAQ,CAAC;AAC5D,UAAM,aAAa,MAAM,WAAW,qBAAqB,YAAY,OAAO;AAE5E,WAAO;AAAA,MACH,0BAA0B,QAAQ,gBAAgB,WAAW,IAAI,SAAS,EAAE,CAAC,iBAAiB,WAAW,IAAI,SAAS,EAAE,CAAC,aAAa,WAAW,eAAe,KAAK,WAAW,qBAAqB;AAAA,IACzM;AAEA,UAAM,cAAc,SAAS,MAAM,iBAAiB,QAAQ,CAAC;AAC7D,UAAM,WAAW,MAAM,aAAa,YAAY,OAAO;AACvD,WAAO;AAAA,EACX;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerIdResolver.d.ts","sourceRoot":"","sources":["../../../src/controller/ServerIdResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAI7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvG;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ServerIdResolver.d.ts","sourceRoot":"","sources":["../../../src/controller/ServerIdResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAI7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvG;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC,CAkFjB"}
|
|
@@ -42,35 +42,45 @@ async function resolveServerId(env, config, options, vendorId, fabricId) {
|
|
|
42
42
|
if (await storageExists(storagePath, DEFAULT_SERVER_ID)) {
|
|
43
43
|
try {
|
|
44
44
|
const baseStorage = await config.service.open(DEFAULT_SERVER_ID);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
45
|
+
let closed = false;
|
|
46
|
+
try {
|
|
47
|
+
const fabricsContext = baseStorage.createContext("fabrics");
|
|
48
|
+
const fabrics = await fabricsContext.get(
|
|
49
|
+
"fabrics",
|
|
50
|
+
[]
|
|
51
|
+
);
|
|
52
|
+
if (fabrics.length === 1) {
|
|
53
|
+
const fabricData = fabrics[0];
|
|
54
|
+
const storedFabricId = fabricData.fabricId;
|
|
55
|
+
const storedVendorId = fabricData.rootVendorId;
|
|
56
|
+
if (storedFabricId === FabricId(fabricId) && storedVendorId === vendorId) {
|
|
57
|
+
await baseStorage.close();
|
|
58
|
+
closed = true;
|
|
59
|
+
if (storagePath !== void 0) {
|
|
60
|
+
const oldPath = join(storagePath, DEFAULT_SERVER_ID);
|
|
61
|
+
const newPath = join(storagePath, candidateId);
|
|
62
|
+
try {
|
|
63
|
+
await rename(oldPath, newPath);
|
|
64
|
+
logger.info(`Renamed storage "${DEFAULT_SERVER_ID}" to "${candidateId}"`);
|
|
65
|
+
return candidateId;
|
|
66
|
+
} catch (renameErr) {
|
|
67
|
+
logger.error(
|
|
68
|
+
`Failed to rename storage from "${DEFAULT_SERVER_ID}" to "${candidateId}"`,
|
|
69
|
+
renameErr
|
|
70
|
+
);
|
|
71
|
+
return DEFAULT_SERVER_ID;
|
|
72
|
+
}
|
|
66
73
|
}
|
|
74
|
+
return DEFAULT_SERVER_ID;
|
|
67
75
|
}
|
|
68
|
-
|
|
76
|
+
} else {
|
|
77
|
+
logger.error(`Multiple fabrics found, using new storage`, fabrics);
|
|
78
|
+
}
|
|
79
|
+
} finally {
|
|
80
|
+
if (!closed) {
|
|
81
|
+
await baseStorage.close();
|
|
69
82
|
}
|
|
70
|
-
} else {
|
|
71
|
-
logger.error(`Multiple fabrics found, using new storage`, fabrics);
|
|
72
83
|
}
|
|
73
|
-
await baseStorage.close();
|
|
74
84
|
logger.info(`Existing "server" storage does not match fabric config, using new ID: ${candidateId}`);
|
|
75
85
|
} catch (err) {
|
|
76
86
|
logger.debug(`Could not verify "server" storage: ${err}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/ServerIdResolver.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,SAAsB,UAAU,cAAc;AAE9C,SAAS,QAAQ,cAAc;AAC/B,SAAS,YAAY;AAGrB,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAGrC,MAAM,oBAAoB;AAM1B,SAAS,gBAAgB,UAA2B,UAA0B;AACjF,SAAO,UAAU,SAAS,QAAQ,EAAE,SAAS,EAAE,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC;AAC7E;AAKA,eAAsB,cAAc,aAAiC,UAAoC;AACrG,MAAI,gBAAgB,QAAW;AAC3B,WAAO;AAAA,EACX;AACA,MAAI;AACA,UAAM,WAAW,KAAK,aAAa,QAAQ;AAC3C,UAAM,OAAO,QAAQ;AACrB,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;AAqBA,eAAsB,gBAClB,KACA,QACA,SACA,UACA,UACe;AACf,QAAM,oBAAoB,QAAQ,YAAY;AAG9C,MAAI,sBAAsB,mBAAmB;AACzC,WAAO,KAAK,6BAA6B,iBAAiB,EAAE;AAC5D,WAAO;AAAA,EACX;AAIA,MAAI,aAAa,UAAa,aAAa,QAAW;AAClD,WAAO,KAAK,+CAA+C,iBAAiB,EAAE;AAC9E,WAAO;AAAA,EACX;AAEA,QAAM,cAAc,IAAI,KAAK,IAAY,cAAc;AACvD,QAAM,cAAc,gBAAgB,UAAU,QAAQ;AAGtD,MAAI,MAAM,cAAc,aAAa,WAAW,GAAG;AAC/C,WAAO,KAAK,yCAAyC,WAAW,EAAE;AAClE,WAAO;AAAA,EACX;AAGA,MAAI,MAAM,cAAc,aAAa,iBAAiB,GAAG;AAErD,QAAI;AACA,YAAM,cAAc,MAAM,OAAO,QAAQ,KAAK,iBAAiB;AAC/D,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,SAAsB,UAAU,cAAc;AAE9C,SAAS,QAAQ,cAAc;AAC/B,SAAS,YAAY;AAGrB,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAGrC,MAAM,oBAAoB;AAM1B,SAAS,gBAAgB,UAA2B,UAA0B;AACjF,SAAO,UAAU,SAAS,QAAQ,EAAE,SAAS,EAAE,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC;AAC7E;AAKA,eAAsB,cAAc,aAAiC,UAAoC;AACrG,MAAI,gBAAgB,QAAW;AAC3B,WAAO;AAAA,EACX;AACA,MAAI;AACA,UAAM,WAAW,KAAK,aAAa,QAAQ;AAC3C,UAAM,OAAO,QAAQ;AACrB,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;AAqBA,eAAsB,gBAClB,KACA,QACA,SACA,UACA,UACe;AACf,QAAM,oBAAoB,QAAQ,YAAY;AAG9C,MAAI,sBAAsB,mBAAmB;AACzC,WAAO,KAAK,6BAA6B,iBAAiB,EAAE;AAC5D,WAAO;AAAA,EACX;AAIA,MAAI,aAAa,UAAa,aAAa,QAAW;AAClD,WAAO,KAAK,+CAA+C,iBAAiB,EAAE;AAC9E,WAAO;AAAA,EACX;AAEA,QAAM,cAAc,IAAI,KAAK,IAAY,cAAc;AACvD,QAAM,cAAc,gBAAgB,UAAU,QAAQ;AAGtD,MAAI,MAAM,cAAc,aAAa,WAAW,GAAG;AAC/C,WAAO,KAAK,yCAAyC,WAAW,EAAE;AAClE,WAAO;AAAA,EACX;AAGA,MAAI,MAAM,cAAc,aAAa,iBAAiB,GAAG;AAErD,QAAI;AACA,YAAM,cAAc,MAAM,OAAO,QAAQ,KAAK,iBAAiB;AAC/D,UAAI,SAAS;AACb,UAAI;AACA,cAAM,iBAAiB,YAAY,cAAc,SAAS;AAG1D,cAAM,UAAU,MAAM,eAAe;AAAA,UACjC;AAAA,UACA,CAAC;AAAA,QACL;AACA,YAAI,QAAQ,WAAW,GAAG;AAEtB,gBAAM,aAAa,QAAQ,CAAC;AAC5B,gBAAM,iBAAiB,WAAW;AAClC,gBAAM,iBAAiB,WAAW;AAClC,cAAI,mBAAmB,SAAS,QAAQ,KAAK,mBAAmB,UAAU;AAEtE,kBAAM,YAAY,MAAM;AACxB,qBAAS;AACT,gBAAI,gBAAgB,QAAW;AAC3B,oBAAM,UAAU,KAAK,aAAa,iBAAiB;AACnD,oBAAM,UAAU,KAAK,aAAa,WAAW;AAC7C,kBAAI;AACA,sBAAM,OAAO,SAAS,OAAO;AAC7B,uBAAO,KAAK,oBAAoB,iBAAiB,SAAS,WAAW,GAAG;AACxE,uBAAO;AAAA,cACX,SAAS,WAAW;AAChB,uBAAO;AAAA,kBACH,kCAAkC,iBAAiB,SAAS,WAAW;AAAA,kBACvE;AAAA,gBACJ;AACA,uBAAO;AAAA,cACX;AAAA,YACJ;AACA,mBAAO;AAAA,UACX;AAAA,QACJ,OAAO;AACH,iBAAO,MAAM,6CAA6C,OAAO;AAAA,QACrE;AAAA,MACJ,UAAE;AACE,YAAI,CAAC,QAAQ;AACT,gBAAM,YAAY,MAAM;AAAA,QAC5B;AAAA,MACJ;AACA,aAAO,KAAK,yEAAyE,WAAW,EAAE;AAAA,IACtG,SAAS,KAAK;AACV,aAAO,MAAM,sCAAsC,GAAG,EAAE;AAAA,IAC5D;AAAA,EACJ;AAGA,SAAO,KAAK,+BAA+B,WAAW,EAAE;AACxD,SAAO;AACX;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter-server/ws-controller",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "matter.js based Matter controller library",
|
|
6
6
|
"bugs": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@matter/main": "0.17.0-alpha.0-20260326-42b6f59b7",
|
|
29
|
-
"@matter-server/ws-client": "0.5.
|
|
29
|
+
"@matter-server/ws-client": "0.5.10",
|
|
30
30
|
"@project-chip/matter.js": "0.17.0-alpha.0-20260326-42b6f59b7",
|
|
31
31
|
"ws": "^8.20.0"
|
|
32
32
|
},
|
|
@@ -97,43 +97,45 @@ export class MatterController {
|
|
|
97
97
|
if (legacyData !== undefined) {
|
|
98
98
|
const crypto = environment.get(Crypto);
|
|
99
99
|
const baseStorage = await config.service.open(serverId);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const
|
|
119
|
-
|
|
100
|
+
try {
|
|
101
|
+
if (legacyData.credentials && legacyData.fabricId) {
|
|
102
|
+
await LegacyDataInjector.injectCredentials(
|
|
103
|
+
baseStorage.createContext("credentials"),
|
|
104
|
+
baseStorage.createContext("fabrics"),
|
|
105
|
+
crypto,
|
|
106
|
+
legacyData.credentials,
|
|
107
|
+
legacyData.fabric,
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
if (
|
|
111
|
+
(await LegacyDataInjector.injectNodeData(
|
|
112
|
+
baseStorage,
|
|
113
|
+
legacyData.nodeData,
|
|
114
|
+
legacyData.fabric?.fabricIndex,
|
|
115
|
+
)) &&
|
|
116
|
+
legacyData.nodeData !== undefined
|
|
117
|
+
) {
|
|
118
|
+
for (const [nodeIdStr, data] of Object.entries(legacyData.nodeData.nodes)) {
|
|
119
|
+
const { date_commissioned: commissionedAt } = data;
|
|
120
|
+
commissionedDates.set(nodeIdStr, Timestamp(new Date(commissionedAt).getTime()));
|
|
121
|
+
}
|
|
120
122
|
}
|
|
121
|
-
}
|
|
122
123
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
124
|
+
// Check if the nextNodeId needs to be updated based on legacy data
|
|
125
|
+
const lastNodeId = legacyData.nodeData?.last_node_id;
|
|
126
|
+
if (typeof lastNodeId === "number" || typeof lastNodeId === "bigint") {
|
|
127
|
+
// Compare as BigInt to safely handle both number and bigint types
|
|
128
|
+
if (BigInt(config.nextNodeId) <= BigInt(lastNodeId)) {
|
|
129
|
+
const newNextNodeId = BigInt(lastNodeId) + 10n;
|
|
130
|
+
logger.info(
|
|
131
|
+
`Updating nextNodeId from ${config.nextNodeId} to ${newNextNodeId} (legacy last_node_id: ${lastNodeId})`,
|
|
132
|
+
);
|
|
133
|
+
await config.set({ nextNodeId: newNextNodeId });
|
|
134
|
+
}
|
|
133
135
|
}
|
|
136
|
+
} finally {
|
|
137
|
+
await baseStorage.close();
|
|
134
138
|
}
|
|
135
|
-
|
|
136
|
-
await baseStorage.close();
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
await instance.initialize(legacyData?.vendorId, legacyData?.fabricId, commissionedDates);
|
|
@@ -104,39 +104,49 @@ export async function resolveServerId(
|
|
|
104
104
|
// Open and verify the fabric configuration matches
|
|
105
105
|
try {
|
|
106
106
|
const baseStorage = await config.service.open(DEFAULT_SERVER_ID);
|
|
107
|
-
|
|
107
|
+
let closed = false;
|
|
108
|
+
try {
|
|
109
|
+
const fabricsContext = baseStorage.createContext("fabrics");
|
|
108
110
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
`
|
|
129
|
-
|
|
130
|
-
)
|
|
131
|
-
|
|
111
|
+
// Read fabric entries
|
|
112
|
+
const fabrics = await fabricsContext.get<{ fabricId: FabricId; rootVendorId: VendorId }[]>(
|
|
113
|
+
"fabrics",
|
|
114
|
+
[],
|
|
115
|
+
);
|
|
116
|
+
if (fabrics.length === 1) {
|
|
117
|
+
// Single fabric - check if it matches
|
|
118
|
+
const fabricData = fabrics[0];
|
|
119
|
+
const storedFabricId = fabricData.fabricId;
|
|
120
|
+
const storedVendorId = fabricData.rootVendorId;
|
|
121
|
+
if (storedFabricId === FabricId(fabricId) && storedVendorId === vendorId) {
|
|
122
|
+
// Matching fabric - close before rename to release file handles
|
|
123
|
+
await baseStorage.close();
|
|
124
|
+
closed = true;
|
|
125
|
+
if (storagePath !== undefined) {
|
|
126
|
+
const oldPath = join(storagePath, DEFAULT_SERVER_ID);
|
|
127
|
+
const newPath = join(storagePath, candidateId);
|
|
128
|
+
try {
|
|
129
|
+
await rename(oldPath, newPath);
|
|
130
|
+
logger.info(`Renamed storage "${DEFAULT_SERVER_ID}" to "${candidateId}"`);
|
|
131
|
+
return candidateId;
|
|
132
|
+
} catch (renameErr) {
|
|
133
|
+
logger.error(
|
|
134
|
+
`Failed to rename storage from "${DEFAULT_SERVER_ID}" to "${candidateId}"`,
|
|
135
|
+
renameErr,
|
|
136
|
+
);
|
|
137
|
+
return DEFAULT_SERVER_ID;
|
|
138
|
+
}
|
|
132
139
|
}
|
|
140
|
+
return DEFAULT_SERVER_ID;
|
|
133
141
|
}
|
|
134
|
-
|
|
142
|
+
} else {
|
|
143
|
+
logger.error(`Multiple fabrics found, using new storage`, fabrics);
|
|
144
|
+
}
|
|
145
|
+
} finally {
|
|
146
|
+
if (!closed) {
|
|
147
|
+
await baseStorage.close();
|
|
135
148
|
}
|
|
136
|
-
} else {
|
|
137
|
-
logger.error(`Multiple fabrics found, using new storage`, fabrics);
|
|
138
149
|
}
|
|
139
|
-
await baseStorage.close();
|
|
140
150
|
logger.info(`Existing "server" storage does not match fabric config, using new ID: ${candidateId}`);
|
|
141
151
|
} catch (err) {
|
|
142
152
|
logger.debug(`Could not verify "server" storage: ${err}`);
|