@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.
@@ -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;gBA4DrB,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"}
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
- if (legacyData.credentials && legacyData.fabricId) {
61
- await LegacyDataInjector.injectCredentials(
62
- baseStorage.createContext("credentials"),
63
- baseStorage.createContext("fabrics"),
64
- crypto,
65
- legacyData.credentials,
66
- legacyData.fabric
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": "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",
4
+ "mappings": "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",
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,CAwEjB"}
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
- const fabricsContext = baseStorage.createContext("fabrics");
46
- const fabrics = await fabricsContext.get("fabrics", []);
47
- if (fabrics.length === 1) {
48
- const fabricData = fabrics[0];
49
- const storedFabricId = fabricData.fabricId;
50
- const storedVendorId = fabricData.rootVendorId;
51
- if (storedFabricId === FabricId(fabricId) && storedVendorId === vendorId) {
52
- await baseStorage.close();
53
- if (storagePath !== void 0) {
54
- const oldPath = join(storagePath, DEFAULT_SERVER_ID);
55
- const newPath = join(storagePath, candidateId);
56
- try {
57
- await rename(oldPath, newPath);
58
- logger.info(`Renamed storage "${DEFAULT_SERVER_ID}" to "${candidateId}"`);
59
- return candidateId;
60
- } catch (renameErr) {
61
- logger.error(
62
- `Failed to rename storage from "${DEFAULT_SERVER_ID}" to "${candidateId}"`,
63
- renameErr
64
- );
65
- return DEFAULT_SERVER_ID;
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
- return DEFAULT_SERVER_ID;
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,YAAM,iBAAiB,YAAY,cAAc,SAAS;AAG1D,YAAM,UAAU,MAAM,eAAe,IAAsD,WAAW,CAAC,CAAC;AACxG,UAAI,QAAQ,WAAW,GAAG;AAEtB,cAAM,aAAa,QAAQ,CAAC;AAC5B,cAAM,iBAAiB,WAAW;AAClC,cAAM,iBAAiB,WAAW;AAClC,YAAI,mBAAmB,SAAS,QAAQ,KAAK,mBAAmB,UAAU;AAEtE,gBAAM,YAAY,MAAM;AACxB,cAAI,gBAAgB,QAAW;AAC3B,kBAAM,UAAU,KAAK,aAAa,iBAAiB;AACnD,kBAAM,UAAU,KAAK,aAAa,WAAW;AAC7C,gBAAI;AACA,oBAAM,OAAO,SAAS,OAAO;AAC7B,qBAAO,KAAK,oBAAoB,iBAAiB,SAAS,WAAW,GAAG;AACxE,qBAAO;AAAA,YACX,SAAS,WAAW;AAChB,qBAAO;AAAA,gBACH,kCAAkC,iBAAiB,SAAS,WAAW;AAAA,gBACvE;AAAA,cACJ;AACA,qBAAO;AAAA,YACX;AAAA,UACJ;AACA,iBAAO;AAAA,QACX;AAAA,MACJ,OAAO;AACH,eAAO,MAAM,6CAA6C,OAAO;AAAA,MACrE;AACA,YAAM,YAAY,MAAM;AACxB,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;",
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.9",
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.9",
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
- if (legacyData.credentials && legacyData.fabricId) {
101
- await LegacyDataInjector.injectCredentials(
102
- baseStorage.createContext("credentials"),
103
- baseStorage.createContext("fabrics"),
104
- crypto,
105
- legacyData.credentials,
106
- legacyData.fabric,
107
- );
108
- }
109
- if (
110
- (await LegacyDataInjector.injectNodeData(
111
- baseStorage,
112
- legacyData.nodeData,
113
- legacyData.fabric?.fabricIndex,
114
- )) &&
115
- legacyData.nodeData !== undefined
116
- ) {
117
- for (const [nodeIdStr, data] of Object.entries(legacyData.nodeData.nodes)) {
118
- const { date_commissioned: commissionedAt } = data;
119
- commissionedDates.set(nodeIdStr, Timestamp(new Date(commissionedAt).getTime()));
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
- // Check if the nextNodeId needs to be updated based on legacy data
124
- const lastNodeId = legacyData.nodeData?.last_node_id;
125
- if (typeof lastNodeId === "number" || typeof lastNodeId === "bigint") {
126
- // Compare as BigInt to safely handle both number and bigint types
127
- if (BigInt(config.nextNodeId) <= BigInt(lastNodeId)) {
128
- const newNextNodeId = BigInt(lastNodeId) + 10n;
129
- logger.info(
130
- `Updating nextNodeId from ${config.nextNodeId} to ${newNextNodeId} (legacy last_node_id: ${lastNodeId})`,
131
- );
132
- await config.set({ nextNodeId: newNextNodeId });
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
- const fabricsContext = baseStorage.createContext("fabrics");
107
+ let closed = false;
108
+ try {
109
+ const fabricsContext = baseStorage.createContext("fabrics");
108
110
 
109
- // Read fabric entries
110
- const fabrics = await fabricsContext.get<{ fabricId: FabricId; rootVendorId: VendorId }[]>("fabrics", []);
111
- if (fabrics.length === 1) {
112
- // Single fabric - check if it matches
113
- const fabricData = fabrics[0];
114
- const storedFabricId = fabricData.fabricId;
115
- const storedVendorId = fabricData.rootVendorId;
116
- if (storedFabricId === FabricId(fabricId) && storedVendorId === vendorId) {
117
- // Matching fabric - rename it to the new format to avoid future checks
118
- await baseStorage.close();
119
- if (storagePath !== undefined) {
120
- const oldPath = join(storagePath, DEFAULT_SERVER_ID);
121
- const newPath = join(storagePath, candidateId);
122
- try {
123
- await rename(oldPath, newPath);
124
- logger.info(`Renamed storage "${DEFAULT_SERVER_ID}" to "${candidateId}"`);
125
- return candidateId;
126
- } catch (renameErr) {
127
- logger.error(
128
- `Failed to rename storage from "${DEFAULT_SERVER_ID}" to "${candidateId}"`,
129
- renameErr,
130
- );
131
- return DEFAULT_SERVER_ID;
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
- return DEFAULT_SERVER_ID;
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}`);