raain-model 3.0.1 → 3.0.3

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/CHANGELOG.md CHANGED
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.0.3] - 2025-04-17
11
+
12
+ ### Added
13
+
14
+ - Enhanced support for string IDs in team parameters
15
+ - Improved error handling in getMapData() methods
16
+
17
+ ### Changed
18
+
19
+ - Modified parameter types from `any` to `string` for configurationAsJSON
20
+ - Enhanced node creation with proper link handling
21
+ - Improved type safety and error handling across components
22
+
23
+ ## [3.0.2] - 2025-04-17
24
+
25
+ ### Added
26
+
27
+ - Enhanced link handling in GaugeMeasure and RadarMeasure
28
+ - Added Release Process documentation in README.md
29
+
30
+ ### Changed
31
+
32
+ - Improved node creation in GaugeMeasure and RadarMeasure with proper link handling
33
+ - Updated documentation in .memory-bank folder
34
+ - Clarified release process documentation
35
+
10
36
  ## [3.0.1] - 2025-04-17
11
37
 
12
38
  ### Added
@@ -212,7 +238,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
212
238
  - Initial release
213
239
  - First extracts from RAAIN services
214
240
 
215
- [Unreleased]: https://github.com/raainio/raain-model/compare/v3.0.1...HEAD
241
+ [Unreleased]: https://github.com/raainio/raain-model/compare/v3.0.3...HEAD
242
+
243
+ [3.0.3]: https://github.com/raainio/raain-model/compare/v3.0.2...v3.0.3
244
+
245
+ [3.0.2]: https://github.com/raainio/raain-model/compare/v3.0.1...v3.0.2
216
246
 
217
247
  [3.0.1]: https://github.com/raainio/raain-model/compare/v2.6.11...v3.0.1
218
248
 
package/README.md CHANGED
@@ -97,3 +97,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
97
97
  ## 📅 Changelog
98
98
 
99
99
  See [Changelog](./CHANGELOG.md) for version history and changes.
100
+
101
+ ## 🚢 Release Process
102
+
103
+ This project follows a structured release process. For detailed information about how releases are managed, please see the [Release Process Documentation](./RELEASE_PROCESS.md).
@@ -1,12 +1,8 @@
1
1
  # Release Process Documentation
2
2
 
3
- ⚠️ IMPORTANT: DO NOT PUSH ANY CHANGES OR TAGS UNTIL EXPLICITLY ASKED TO "RELEASE"
4
- This includes:
5
- - No git push
6
- - No git push --tags
3
+ ⚠️ IMPORTANT: Released are done by GitHub CI
7
4
  - No npm publish
8
5
  - No manual releases
9
- Wait for the explicit "release" command before pushing anything.
10
6
 
11
7
  ## Patch Version Release Steps
12
8
 
@@ -1,4 +1,4 @@
1
- import { Measure } from '../organization';
1
+ import { Link, Measure } from '../organization';
2
2
  import { IPolarMeasureValue } from '../polar';
3
3
  import { ICartesianMeasureValue } from '../cartesian';
4
4
  /**
@@ -23,8 +23,9 @@ export declare class GaugeMeasure extends Measure {
23
23
  configurationAsJSON: string;
24
24
  values: number[] | IPolarMeasureValue[] | ICartesianMeasureValue[];
25
25
  id: string;
26
- links: import("../organization").Link[];
26
+ links: Link[];
27
27
  version?: string;
28
28
  };
29
+ protected getGaugeLinks(linksToPurify: any[]): any[];
29
30
  protected getLinkType(): string;
30
31
  }
@@ -10,7 +10,7 @@ class GaugeMeasure extends organization_1.Measure {
10
10
  constructor(json) {
11
11
  super(json);
12
12
  if (json.gauge) {
13
- this.addLinks([new GaugeNode_1.GaugeNode({ id: json.gauge, latitude: NaN, longitude: NaN, team: null, name: null })]);
13
+ this.addLinks(this.getGaugeLinks([json.gauge]));
14
14
  }
15
15
  }
16
16
  toJSON(options) {
@@ -21,6 +21,25 @@ class GaugeMeasure extends organization_1.Measure {
21
21
  }
22
22
  return json;
23
23
  }
24
+ getGaugeLinks(linksToPurify) {
25
+ if (!linksToPurify || linksToPurify.length === 0) {
26
+ return [];
27
+ }
28
+ return linksToPurify.map(l => {
29
+ if (l instanceof organization_1.Link) {
30
+ return l;
31
+ }
32
+ else if (l && l['_id']) {
33
+ return new GaugeNode_1.GaugeNode({ id: l['_id'].toString(), latitude: 0, longitude: 0, name: l.name, team: l.team });
34
+ }
35
+ else if (l && l.id) {
36
+ return new GaugeNode_1.GaugeNode({
37
+ id: l.id.toString(), // 'hex'
38
+ latitude: 0, longitude: 0, name: l.name, team: l.team
39
+ });
40
+ }
41
+ });
42
+ }
24
43
  getLinkType() {
25
44
  return GaugeMeasure.TYPE;
26
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GaugeMeasure.js","sourceRoot":"","sources":["../../src/gauge/GaugeMeasure.ts"],"names":[],"mappings":";;;AAAA,kDAAwC;AAGxC,2CAAsC;AAEtC;;GAEG;AACH,MAAa,YAAa,SAAQ,sBAAO;IAMrC,YAAY,IAOC;QAET,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,qBAAS,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,OAAoC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,WAAW;QACjB,OAAO,YAAY,CAAC,IAAI,CAAC;IAC7B,CAAC;;AAhCL,oCAiCC;AA/BiB,iBAAI,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"GaugeMeasure.js","sourceRoot":"","sources":["../../src/gauge/GaugeMeasure.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAG9C,2CAAsC;AAEtC;;GAEG;AACH,MAAa,YAAa,SAAQ,sBAAO;IAMrC,YAAY,IAOC;QAET,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,OAAoC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,aAAa,CAAC,aAAoB;QACxC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,YAAY,mBAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC;YACb,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,qBAAS,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC;YAC3G,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;gBACnB,OAAO,IAAI,qBAAS,CAAC;oBACjB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAC,QAAQ;oBAC5B,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;iBACxD,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAES,WAAW;QACjB,OAAO,YAAY,CAAC,IAAI,CAAC;IAC7B,CAAC;;AAnDL,oCAoDC;AAlDiB,iBAAI,GAAG,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "raain-model",
3
- "version": "3.0.1",
3
+ "version": "3.0.3",
4
4
  "author": "contact@radartorain.com",
5
5
  "homepage": "https://github.com/raainio/raain-model",
6
6
  "description": "radartorain.com api model",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "scripts": {
31
31
  "build": "npm run build-dist",
32
- "build-version": "VERSION=\"$(npm version patch --no-git-tag-version)\"",
32
+ "build-version": "VERSION=\"$(npm version patch --no-git-tag-version)\" && npm i",
33
33
  "build-dist": "rm -rf dist/ && npx tsc && cp package.json dist/ && cp *.md dist/",
34
34
  "test": "mocha --require ts-node/register 'specs/**/**.spec.ts'",
35
35
  "docs": "typedoc --out docs src/",
@@ -1,4 +1,4 @@
1
- import { Measure } from '../organization';
1
+ import { Link, Measure } from '../organization';
2
2
  import { IPolarMeasureValue } from '../polar';
3
3
  import { ICartesianMeasureValue } from '../cartesian';
4
4
  /**
@@ -22,7 +22,7 @@ export declare class RadarMeasure extends Measure {
22
22
  configurationAsJSON: string;
23
23
  values: number[] | IPolarMeasureValue[] | ICartesianMeasureValue[];
24
24
  id: string;
25
- links: import("../organization").Link[];
25
+ links: Link[];
26
26
  version?: string;
27
27
  } | {
28
28
  radar: string;
@@ -31,8 +31,9 @@ export declare class RadarMeasure extends Measure {
31
31
  configurationAsJSON: string;
32
32
  values: number[] | IPolarMeasureValue[] | ICartesianMeasureValue[];
33
33
  id: string;
34
- links: import("../organization").Link[];
34
+ links: Link[];
35
35
  version?: string;
36
36
  };
37
+ protected getRadarLinks(linksToPurify: any[]): any[];
37
38
  protected getLinkType(): string;
38
39
  }
@@ -10,7 +10,7 @@ class RadarMeasure extends organization_1.Measure {
10
10
  constructor(json) {
11
11
  super(json);
12
12
  if (json.radar) {
13
- this.addLinks([new RadarNode_1.RadarNode({ id: json.radar, latitude: NaN, longitude: NaN, team: null, name: null })]);
13
+ this.addLinks(this.getRadarLinks([json.radar]));
14
14
  }
15
15
  }
16
16
  toJSON(options) {
@@ -24,6 +24,25 @@ class RadarMeasure extends organization_1.Measure {
24
24
  }
25
25
  return json;
26
26
  }
27
+ getRadarLinks(linksToPurify) {
28
+ if (!linksToPurify || linksToPurify.length === 0) {
29
+ return [];
30
+ }
31
+ return linksToPurify.map(l => {
32
+ if (l instanceof organization_1.Link) {
33
+ return l;
34
+ }
35
+ else if (l && l['_id']) {
36
+ return new RadarNode_1.RadarNode({ id: l['_id'].toString(), latitude: 0, longitude: 0, name: l.name, team: l.team });
37
+ }
38
+ else if (l && l.id) {
39
+ return new RadarNode_1.RadarNode({
40
+ id: l.id.toString(), // 'hex'
41
+ latitude: 0, longitude: 0, name: l.name, team: l.team
42
+ });
43
+ }
44
+ });
45
+ }
27
46
  getLinkType() {
28
47
  return RadarMeasure.TYPE;
29
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RadarMeasure.js","sourceRoot":"","sources":["../../src/radar/RadarMeasure.ts"],"names":[],"mappings":";;;AAAA,kDAAwC;AAGxC,2CAAsC;AAEtC;;GAEG;AACH,MAAa,YAAa,SAAQ,sBAAO;IAIrC,YAAY,IAOC;QAET,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,qBAAS,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,OAAoC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO;gBACH,GAAG,IAAI;gBACP,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;aAC3B,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,WAAW;QACjB,OAAO,YAAY,CAAC,IAAI,CAAC;IAC7B,CAAC;;AAnCL,oCAoCC;AAlCiB,iBAAI,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"RadarMeasure.js","sourceRoot":"","sources":["../../src/radar/RadarMeasure.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAG9C,2CAAsC;AAEtC;;GAEG;AACH,MAAa,YAAa,SAAQ,sBAAO;IAIrC,YAAY,IAOC;QAET,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,OAAoC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO;gBACH,GAAG,IAAI;gBACP,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;aAC3B,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,aAAa,CAAC,aAAoB;QACxC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,YAAY,mBAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC;YACb,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,qBAAS,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC;YAC3G,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;gBACnB,OAAO,IAAI,qBAAS,CAAC;oBACjB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAC,QAAQ;oBAC5B,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;iBACxD,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAES,WAAW;QACjB,OAAO,YAAY,CAAC,IAAI,CAAC;IAC7B,CAAC;;AAtDL,oCAuDC;AArDiB,iBAAI,GAAG,eAAe,CAAC"}