@zwave-js/cc 15.25.3 → 15.26.0

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.
@@ -1484,8 +1484,17 @@ let UserCredentialCCUserReport = (() => {
1484
1484
  persistValues(ctx) {
1485
1485
  if (!super.persistValues(ctx))
1486
1486
  return false;
1487
- if (this.userId === 0)
1487
+ if (this.userId === 0) {
1488
+ if (this.reportType === import_Types.UserCredentialUserReportType.UserDeleted) {
1489
+ const valueDB = this.getValueDB(ctx);
1490
+ const cachedUsersAndCredentials = valueDB.findValues((vid) => vid.endpoint === this.endpointIndex && (import_CCValues_generated.UserCredentialCCValues.userType.is(vid) || import_CCValues_generated.UserCredentialCCValues.userActive.is(vid) || import_CCValues_generated.UserCredentialCCValues.credentialRule.is(vid) || import_CCValues_generated.UserCredentialCCValues.expiringTimeoutMinutes.is(vid) || import_CCValues_generated.UserCredentialCCValues.userName.is(vid) || import_CCValues_generated.UserCredentialCCValues.userModifierType.is(vid) || import_CCValues_generated.UserCredentialCCValues.userModifierNodeId.is(vid) || import_CCValues_generated.UserCredentialCCValues.userChecksum.is(vid) || import_CCValues_generated.UserCredentialCCValues.credential.is(vid) || import_CCValues_generated.UserCredentialCCValues.credentialOwner.is(vid) || import_CCValues_generated.UserCredentialCCValues.credentialModifierType.is(vid) || import_CCValues_generated.UserCredentialCCValues.credentialModifierNodeId.is(vid)));
1491
+ for (const value of cachedUsersAndCredentials) {
1492
+ valueDB.removeValue(value);
1493
+ }
1494
+ this.removeValue(ctx, import_CCValues_generated.UserCredentialCCValues.allUsersChecksum);
1495
+ }
1488
1496
  return true;
1497
+ }
1489
1498
  if (this.reportType === import_Types.UserCredentialUserReportType.UserDeleted || this.reportType === import_Types.UserCredentialUserReportType.UserModifyRejectedLocationEmpty) {
1490
1499
  const userId2 = this.userId;
1491
1500
  this.removeValue(ctx, import_CCValues_generated.UserCredentialCCValues.userType(userId2));
@@ -1495,6 +1504,25 @@ let UserCredentialCCUserReport = (() => {
1495
1504
  this.removeValue(ctx, import_CCValues_generated.UserCredentialCCValues.userName(userId2));
1496
1505
  this.removeValue(ctx, import_CCValues_generated.UserCredentialCCValues.userModifierType(userId2));
1497
1506
  this.removeValue(ctx, import_CCValues_generated.UserCredentialCCValues.userModifierNodeId(userId2));
1507
+ this.removeValue(ctx, import_CCValues_generated.UserCredentialCCValues.userChecksum(userId2));
1508
+ this.removeValue(ctx, import_CCValues_generated.UserCredentialCCValues.allUsersChecksum);
1509
+ const valueDB = this.getValueDB(ctx);
1510
+ const credentialOwners = valueDB.findValues((vid) => import_CCValues_generated.UserCredentialCCValues.credentialOwner.is(vid) && vid.endpoint === this.endpointIndex);
1511
+ for (const { endpoint, propertyKey, value } of credentialOwners) {
1512
+ if (value !== userId2)
1513
+ continue;
1514
+ const key = propertyKey;
1515
+ const credentialType = key >>> 16;
1516
+ const credentialSlot = key & 65535;
1517
+ for (const valueId of [
1518
+ import_CCValues_generated.UserCredentialCCValues.credential(credentialType, credentialSlot),
1519
+ import_CCValues_generated.UserCredentialCCValues.credentialOwner(credentialType, credentialSlot),
1520
+ import_CCValues_generated.UserCredentialCCValues.credentialModifierType(credentialType, credentialSlot),
1521
+ import_CCValues_generated.UserCredentialCCValues.credentialModifierNodeId(credentialType, credentialSlot)
1522
+ ]) {
1523
+ valueDB.removeValue(valueId.endpoint(endpoint));
1524
+ }
1525
+ }
1498
1526
  return true;
1499
1527
  }
1500
1528
  if (this.reportType !== import_Types.UserCredentialUserReportType.ResponseToGet && this.reportType !== import_Types.UserCredentialUserReportType.UserAdded && this.reportType !== import_Types.UserCredentialUserReportType.UserModified && this.reportType !== import_Types.UserCredentialUserReportType.UserAddRejectedLocationOccupied) {