@matter/node 0.15.2-alpha.0-20250718-7e661c331 → 0.15.2-alpha.0-20250719-e4aeb457c

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":"ServiceAreaServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/service-area/ServiceAreaServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAyB,YAAY,EAAE,MAAM,UAAU,CAAC;AAI/D,QAAA,MAAM,eAAe,4TAA4F,CAAC;AAElH,KAAK,+BAA+B,GAAG;IACnC,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;;IAC7C,UAAU,IAAI,YAAY;IA2HnC;;;;;;;;OAQG;IACM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAmBjH,SAAS,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B;IAuBhH,SAAS,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB;IAmB3G,yBAAyB,CAAC,MAAM,EAAE,MAAM;IAexC;;;OAGG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM;CAczC;AAED,yBAAiB,qBAAqB,CAAC;IACpB,MAAM,kBAAkB,EAAE;QACrC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B,CAAC;QACvG,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC;KACrG,CAAC;CACL;;AAID,qBAAa,iBAAkB,SAAQ,sBAA4B;CAAG"}
1
+ {"version":3,"file":"ServiceAreaServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/service-area/ServiceAreaServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAyB,YAAY,EAAE,MAAM,UAAU,CAAC;AAI/D,QAAA,MAAM,eAAe,4TAA4F,CAAC;AAElH,KAAK,+BAA+B,GAAG;IACnC,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;;IAC7C,UAAU,IAAI,YAAY;IAqJnC;;;;;;;;OAQG;IACM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAmBjH,SAAS,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B;IAuBhH,SAAS,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB;IAmB3G,yBAAyB,CAAC,MAAM,EAAE,MAAM;IAexC;;;OAGG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM;CAczC;AAED,yBAAiB,qBAAqB,CAAC;IACpB,MAAM,kBAAkB,EAAE;QACrC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B,CAAC;QACvG,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC;KACrG,CAAC;CACL;;AAID,qBAAa,iBAAkB,SAAQ,sBAA4B;CAAG"}
@@ -36,6 +36,8 @@ class ServiceAreaBaseServer extends ServiceAreaBase {
36
36
  initialize() {
37
37
  this.#assertSupportedAreas(this.state.supportedAreas);
38
38
  this.reactTo(this.events.supportedAreas$Changing, this.#assertSupportedAreas);
39
+ this.#assertSupportedMaps(this.state.supportedMaps);
40
+ this.reactTo(this.events.supportedMaps$Changing, this.#assertSupportedMaps);
39
41
  this.#assertSelectedAreas(this.state.selectedAreas);
40
42
  this.reactTo(this.events.selectedAreas$Changing, this.#assertSelectedAreas);
41
43
  if (this.state.currentArea !== void 0 && this.events.currentArea$Changing !== void 0) {
@@ -57,35 +59,54 @@ class ServiceAreaBaseServer extends ServiceAreaBase {
57
59
  }
58
60
  }
59
61
  }
60
- #assertSupportedAreas(areas) {
61
- const areaIds = /* @__PURE__ */ new Set();
62
- for (const area of areas) {
63
- const areaId = area.areaId;
64
- if (areaIds.has(areaId)) {
65
- throw new import_types.ValidationError(`AreaID ${area.areaId} is not unique`);
66
- }
67
- const { locationInfo, landmarkInfo } = area.areaInfo;
68
- if (locationInfo === null && landmarkInfo === null) {
69
- throw new import_types.ValidationError(`Area ${areaId} has no location or landmark info`);
62
+ #assertSupportedMaps(maps) {
63
+ if (maps.length === 0) {
64
+ return;
65
+ }
66
+ const mapIds = /* @__PURE__ */ new Set();
67
+ const mapNames = /* @__PURE__ */ new Set();
68
+ for (const { mapId, name } of maps) {
69
+ if (mapIds.has(mapId)) {
70
+ throw new import_types.ValidationError(`MapID ${mapId} is not unique`);
70
71
  }
71
- if (locationInfo !== null) {
72
- const { locationName, floorNumber, areaType } = locationInfo;
73
- if (locationName === "" && floorNumber === null && areaType === null && landmarkInfo === null) {
74
- throw new import_types.ValidationError(`Area ${areaId} has no location info`);
75
- }
72
+ if (mapNames.has(name)) {
73
+ throw new import_types.ValidationError(`MapName "${name}" is not unique`);
76
74
  }
77
- areaIds.add(areaId);
75
+ mapIds.add(mapId);
76
+ mapNames.add(name);
78
77
  }
78
+ }
79
+ #assertSupportedAreas(areas) {
80
+ const areaIds = /* @__PURE__ */ new Set();
79
81
  if (areas.length > 0) {
82
+ for (const { areaId, areaInfo } of areas) {
83
+ if (areaIds.has(areaId)) {
84
+ throw new import_types.ValidationError(`AreaID ${areaId} is not unique`);
85
+ }
86
+ const { locationInfo, landmarkInfo } = areaInfo;
87
+ if (locationInfo === null && landmarkInfo === null) {
88
+ throw new import_types.ValidationError(`Area ${areaId} has no location or landmark info`);
89
+ }
90
+ if (locationInfo !== null) {
91
+ const { locationName, floorNumber, areaType } = locationInfo;
92
+ if (locationName === "" && floorNumber === null && areaType === null && landmarkInfo === null) {
93
+ throw new import_types.ValidationError(`Area ${areaId} has no location info`);
94
+ }
95
+ }
96
+ areaIds.add(areaId);
97
+ }
80
98
  const mapIds = /* @__PURE__ */ new Set();
81
99
  for (let i = 0; i < areas.length; i++) {
82
- const area = areas[i];
83
- mapIds.add(area.mapId);
100
+ const { areaId, mapId, areaInfo } = areas[i];
101
+ mapIds.add(mapId);
84
102
  for (let j = i + 1; j < areas.length; j++) {
85
103
  const otherArea = areas[j];
86
- if ((0, import_general.isDeepEqual)(area.areaInfo, otherArea.areaInfo)) {
104
+ if (otherArea.mapId !== mapId) {
105
+ continue;
106
+ }
107
+ if ((0, import_general.isDeepEqual)(areaInfo, otherArea.areaInfo)) {
87
108
  throw new import_types.ValidationError(
88
- `Areas must have a unique AreaInfo field, but area ${area.areaId} and area ${otherArea.areaId} are equal`
109
+ `Areas must have a unique AreaInfo field, but area ${areaId} and area ${otherArea.areaId} are equal`
89
110
  );
90
111
  }
91
112
  }
@@ -94,9 +115,6 @@ class ServiceAreaBaseServer extends ServiceAreaBase {
94
115
  if (mapIds.has(null)) {
95
116
  throw new import_types.ValidationError(`Areas must not have a null mapId when supportedMaps is defined`);
96
117
  }
97
- if (mapIds.size !== areas.length) {
98
- throw new import_types.ValidationError(`Areas must have a unique mapId`);
99
- }
100
118
  } else {
101
119
  if (!mapIds.has(null) || mapIds.size > 1) {
102
120
  throw new import_types.ValidationError(`Areas must have a null mapId when supportedMaps is empty`);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/service-area/ServiceAreaServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["ServiceAreaBaseServer"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceAreaServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/service-area/ServiceAreaServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAyB,YAAY,EAAE,MAAM,UAAU,CAAC;AAI/D,QAAA,MAAM,eAAe,4TAA4F,CAAC;AAElH,KAAK,+BAA+B,GAAG;IACnC,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;;IAC7C,UAAU,IAAI,YAAY;IA2HnC;;;;;;;;OAQG;IACM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAmBjH,SAAS,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B;IAuBhH,SAAS,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB;IAmB3G,yBAAyB,CAAC,MAAM,EAAE,MAAM;IAexC;;;OAGG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM;CAczC;AAED,yBAAiB,qBAAqB,CAAC;IACpB,MAAM,kBAAkB,EAAE;QACrC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B,CAAC;QACvG,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC;KACrG,CAAC;CACL;;AAID,qBAAa,iBAAkB,SAAQ,sBAA4B;CAAG"}
1
+ {"version":3,"file":"ServiceAreaServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/service-area/ServiceAreaServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAyB,YAAY,EAAE,MAAM,UAAU,CAAC;AAI/D,QAAA,MAAM,eAAe,4TAA4F,CAAC;AAElH,KAAK,+BAA+B,GAAG;IACnC,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;;IAC7C,UAAU,IAAI,YAAY;IAqJnC;;;;;;;;OAQG;IACM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAmBjH,SAAS,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B;IAuBhH,SAAS,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB;IAmB3G,yBAAyB,CAAC,MAAM,EAAE,MAAM;IAexC;;;OAGG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM;CAczC;AAED,yBAAiB,qBAAqB,CAAC;IACpB,MAAM,kBAAkB,EAAE;QACrC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,kBAAkB,GAAG,+BAA+B,CAAC;QACvG,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC;KACrG,CAAC;CACL;;AAID,qBAAa,iBAAkB,SAAQ,sBAA4B;CAAG"}
@@ -12,6 +12,8 @@ class ServiceAreaBaseServer extends ServiceAreaBase {
12
12
  initialize() {
13
13
  this.#assertSupportedAreas(this.state.supportedAreas);
14
14
  this.reactTo(this.events.supportedAreas$Changing, this.#assertSupportedAreas);
15
+ this.#assertSupportedMaps(this.state.supportedMaps);
16
+ this.reactTo(this.events.supportedMaps$Changing, this.#assertSupportedMaps);
15
17
  this.#assertSelectedAreas(this.state.selectedAreas);
16
18
  this.reactTo(this.events.selectedAreas$Changing, this.#assertSelectedAreas);
17
19
  if (this.state.currentArea !== void 0 && this.events.currentArea$Changing !== void 0) {
@@ -33,35 +35,54 @@ class ServiceAreaBaseServer extends ServiceAreaBase {
33
35
  }
34
36
  }
35
37
  }
36
- #assertSupportedAreas(areas) {
37
- const areaIds = /* @__PURE__ */ new Set();
38
- for (const area of areas) {
39
- const areaId = area.areaId;
40
- if (areaIds.has(areaId)) {
41
- throw new ValidationError(`AreaID ${area.areaId} is not unique`);
42
- }
43
- const { locationInfo, landmarkInfo } = area.areaInfo;
44
- if (locationInfo === null && landmarkInfo === null) {
45
- throw new ValidationError(`Area ${areaId} has no location or landmark info`);
38
+ #assertSupportedMaps(maps) {
39
+ if (maps.length === 0) {
40
+ return;
41
+ }
42
+ const mapIds = /* @__PURE__ */ new Set();
43
+ const mapNames = /* @__PURE__ */ new Set();
44
+ for (const { mapId, name } of maps) {
45
+ if (mapIds.has(mapId)) {
46
+ throw new ValidationError(`MapID ${mapId} is not unique`);
46
47
  }
47
- if (locationInfo !== null) {
48
- const { locationName, floorNumber, areaType } = locationInfo;
49
- if (locationName === "" && floorNumber === null && areaType === null && landmarkInfo === null) {
50
- throw new ValidationError(`Area ${areaId} has no location info`);
51
- }
48
+ if (mapNames.has(name)) {
49
+ throw new ValidationError(`MapName "${name}" is not unique`);
52
50
  }
53
- areaIds.add(areaId);
51
+ mapIds.add(mapId);
52
+ mapNames.add(name);
54
53
  }
54
+ }
55
+ #assertSupportedAreas(areas) {
56
+ const areaIds = /* @__PURE__ */ new Set();
55
57
  if (areas.length > 0) {
58
+ for (const { areaId, areaInfo } of areas) {
59
+ if (areaIds.has(areaId)) {
60
+ throw new ValidationError(`AreaID ${areaId} is not unique`);
61
+ }
62
+ const { locationInfo, landmarkInfo } = areaInfo;
63
+ if (locationInfo === null && landmarkInfo === null) {
64
+ throw new ValidationError(`Area ${areaId} has no location or landmark info`);
65
+ }
66
+ if (locationInfo !== null) {
67
+ const { locationName, floorNumber, areaType } = locationInfo;
68
+ if (locationName === "" && floorNumber === null && areaType === null && landmarkInfo === null) {
69
+ throw new ValidationError(`Area ${areaId} has no location info`);
70
+ }
71
+ }
72
+ areaIds.add(areaId);
73
+ }
56
74
  const mapIds = /* @__PURE__ */ new Set();
57
75
  for (let i = 0; i < areas.length; i++) {
58
- const area = areas[i];
59
- mapIds.add(area.mapId);
76
+ const { areaId, mapId, areaInfo } = areas[i];
77
+ mapIds.add(mapId);
60
78
  for (let j = i + 1; j < areas.length; j++) {
61
79
  const otherArea = areas[j];
62
- if (isDeepEqual(area.areaInfo, otherArea.areaInfo)) {
80
+ if (otherArea.mapId !== mapId) {
81
+ continue;
82
+ }
83
+ if (isDeepEqual(areaInfo, otherArea.areaInfo)) {
63
84
  throw new ValidationError(
64
- `Areas must have a unique AreaInfo field, but area ${area.areaId} and area ${otherArea.areaId} are equal`
85
+ `Areas must have a unique AreaInfo field, but area ${areaId} and area ${otherArea.areaId} are equal`
65
86
  );
66
87
  }
67
88
  }
@@ -70,9 +91,6 @@ class ServiceAreaBaseServer extends ServiceAreaBase {
70
91
  if (mapIds.has(null)) {
71
92
  throw new ValidationError(`Areas must not have a null mapId when supportedMaps is defined`);
72
93
  }
73
- if (mapIds.size !== areas.length) {
74
- throw new ValidationError(`Areas must have a unique mapId`);
75
- }
76
94
  } else {
77
95
  if (!mapIds.has(null) || mapIds.size > 1) {
78
96
  throw new ValidationError(`Areas must have a null mapId when supportedMaps is empty`);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/service-area/ServiceAreaServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["ServiceAreaBaseServer"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.15.2-alpha.0-20250718-7e661c331",
3
+ "version": "0.15.2-alpha.0-20250719-e4aeb457c",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -42,14 +42,14 @@
42
42
  "#*": "./src/*"
43
43
  },
44
44
  "dependencies": {
45
- "@matter/general": "0.15.2-alpha.0-20250718-7e661c331",
46
- "@matter/model": "0.15.2-alpha.0-20250718-7e661c331",
47
- "@matter/types": "0.15.2-alpha.0-20250718-7e661c331",
48
- "@matter/protocol": "0.15.2-alpha.0-20250718-7e661c331"
45
+ "@matter/general": "0.15.2-alpha.0-20250719-e4aeb457c",
46
+ "@matter/model": "0.15.2-alpha.0-20250719-e4aeb457c",
47
+ "@matter/types": "0.15.2-alpha.0-20250719-e4aeb457c",
48
+ "@matter/protocol": "0.15.2-alpha.0-20250719-e4aeb457c"
49
49
  },
50
50
  "devDependencies": {
51
- "@matter/tools": "0.15.2-alpha.0-20250718-7e661c331",
52
- "@matter/testing": "0.15.2-alpha.0-20250718-7e661c331"
51
+ "@matter/tools": "0.15.2-alpha.0-20250719-e4aeb457c",
52
+ "@matter/testing": "0.15.2-alpha.0-20250719-e4aeb457c"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -36,6 +36,8 @@ export class ServiceAreaBaseServer extends ServiceAreaBase {
36
36
  override initialize(): MaybePromise {
37
37
  this.#assertSupportedAreas(this.state.supportedAreas);
38
38
  this.reactTo(this.events.supportedAreas$Changing, this.#assertSupportedAreas);
39
+ this.#assertSupportedMaps(this.state.supportedMaps);
40
+ this.reactTo(this.events.supportedMaps$Changing, this.#assertSupportedMaps);
39
41
  this.#assertSelectedAreas(this.state.selectedAreas);
40
42
  this.reactTo(this.events.selectedAreas$Changing, this.#assertSelectedAreas);
41
43
  if (this.state.currentArea !== undefined && this.events.currentArea$Changing !== undefined) {
@@ -68,48 +70,72 @@ export class ServiceAreaBaseServer extends ServiceAreaBase {
68
70
  }
69
71
  }
70
72
 
73
+ #assertSupportedMaps(maps: ServiceArea.Map[]) {
74
+ if (maps.length === 0) {
75
+ return;
76
+ }
77
+
78
+ const mapIds = new Set<number>();
79
+ const mapNames = new Set<string>();
80
+ for (const { mapId, name } of maps) {
81
+ if (mapIds.has(mapId)) {
82
+ throw new ValidationError(`MapID ${mapId} is not unique`);
83
+ }
84
+ if (mapNames.has(name)) {
85
+ throw new ValidationError(`MapName "${name}" is not unique`);
86
+ }
87
+ mapIds.add(mapId);
88
+ mapNames.add(name);
89
+ }
90
+ }
91
+
71
92
  #assertSupportedAreas(areas: ServiceArea.Area[]) {
72
93
  // Each entry in this list SHALL have a unique value for the AreaID field.
73
94
  const areaIds = new Set<number>();
74
- for (const area of areas) {
75
- const areaId = area.areaId;
76
- if (areaIds.has(areaId)) {
77
- throw new ValidationError(`AreaID ${area.areaId} is not unique`);
78
- }
79
- const { locationInfo, landmarkInfo } = area.areaInfo;
80
- if (locationInfo === null && landmarkInfo === null) {
81
- throw new ValidationError(`Area ${areaId} has no location or landmark info`);
82
- }
83
- if (locationInfo !== null) {
84
- const { locationName, floorNumber, areaType } = locationInfo;
85
- if (locationName === "" && floorNumber === null && areaType === null && landmarkInfo === null) {
86
- throw new ValidationError(`Area ${areaId} has no location info`);
95
+
96
+ if (areas.length > 0) {
97
+ // Validate the areas and collect the areaIds for easy access.
98
+ for (const { areaId, areaInfo } of areas) {
99
+ if (areaIds.has(areaId)) {
100
+ throw new ValidationError(`AreaID ${areaId} is not unique`);
101
+ }
102
+ const { locationInfo, landmarkInfo } = areaInfo;
103
+ if (locationInfo === null && landmarkInfo === null) {
104
+ throw new ValidationError(`Area ${areaId} has no location or landmark info`);
105
+ }
106
+ if (locationInfo !== null) {
107
+ const { locationName, floorNumber, areaType } = locationInfo;
108
+ if (locationName === "" && floorNumber === null && areaType === null && landmarkInfo === null) {
109
+ throw new ValidationError(`Area ${areaId} has no location info`);
110
+ }
87
111
  }
112
+ areaIds.add(areaId);
88
113
  }
89
- areaIds.add(areaId);
90
- }
91
114
 
92
- if (areas.length > 0) {
115
+ // Collect and validate the mapIds and details
93
116
  const mapIds = new Set<number | null>();
94
117
  for (let i = 0; i < areas.length; i++) {
95
- const area = areas[i];
96
- mapIds.add(area.mapId);
118
+ const { areaId, mapId, areaInfo } = areas[i];
119
+ mapIds.add(mapId);
120
+ // Check for unique MapId and AreaInfo combination
97
121
  for (let j = i + 1; j < areas.length; j++) {
98
122
  const otherArea = areas[j];
99
- if (isDeepEqual(area.areaInfo, otherArea.areaInfo)) {
123
+ if (otherArea.mapId !== mapId) {
124
+ // Different mapId is different combination
125
+ continue;
126
+ }
127
+ if (isDeepEqual(areaInfo, otherArea.areaInfo)) {
100
128
  throw new ValidationError(
101
- `Areas must have a unique AreaInfo field, but area ${area.areaId} and area ${otherArea.areaId} are equal`,
129
+ `Areas must have a unique AreaInfo field, but area ${areaId} and area ${otherArea.areaId} are equal`,
102
130
  );
103
131
  }
104
132
  }
105
133
  }
134
+
106
135
  if (this.state.supportedMaps !== undefined && this.state.supportedMaps.length > 0) {
107
136
  if (mapIds.has(null)) {
108
137
  throw new ValidationError(`Areas must not have a null mapId when supportedMaps is defined`);
109
138
  }
110
- if (mapIds.size !== areas.length) {
111
- throw new ValidationError(`Areas must have a unique mapId`);
112
- }
113
139
  } else {
114
140
  if (!mapIds.has(null) || mapIds.size > 1) {
115
141
  throw new ValidationError(`Areas must have a null mapId when supportedMaps is empty`);