raain-model 2.6.6 โ†’ 2.6.8

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/README.md CHANGED
@@ -1,17 +1,96 @@
1
- # raain-model
1
+ # ๐ŸŒง๏ธ RAAIN Model
2
2
 
3
- > RAAIN model used in [radartorain.com](https://api.radartorain.com) services.
3
+ [![npm version](https://badge.fury.io/js/raain-model.svg)](https://badge.fury.io/js/raain-model)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-4.9.5-blue.svg)](https://www.typescriptlang.org/)
6
+ [![Build Status](https://github.com/raainio/raain-model/actions/workflows/ci.yml/badge.svg)](https://github.com/raainio/raain-model/actions)
4
7
 
5
- IN PROGRESS...
8
+ > A TypeScript library for radar-based rain measurement and analysis, used in [radartorain.com](https://api.radartorain.com) services.
6
9
 
7
- ### Usage
10
+ ## ๐ŸŒŸ Features
8
11
 
9
- See [Specs](./specs).
12
+ - **Radar Data Processing**: Efficient processing of radar data for rain measurement
13
+ - **Cartesian & Polar Coordinates**: Support for both coordinate systems
14
+ - **Advanced Merging**: Sophisticated merging strategies for rain data
15
+ - **Quality Assessment**: Built-in quality metrics for measurements
16
+ - **TypeScript Support**: Full type safety and modern TypeScript features
17
+ - **Performance Optimized**: Efficient data structures and algorithms
10
18
 
11
- ## History
19
+ ## ๐Ÿš€ Installation
12
20
 
13
- See [Release notes](./RELEASE.md).
21
+ ```bash
22
+ npm install raain-model
23
+ # or
24
+ yarn add raain-model
25
+ ```
14
26
 
15
- ## License
27
+ ## ๐Ÿ“– Quick Start
16
28
 
17
- MIT
29
+ ```typescript
30
+ import { RainComputationMap, RainNode, RadarNode } from 'raain-model';
31
+
32
+ // Create a radar node
33
+ const radarNode = new RadarNode({
34
+ id: 'radar1',
35
+ latitude: 48.8566,
36
+ longitude: 2.3522,
37
+ name: 'Paris Radar',
38
+ team: null
39
+ });
40
+
41
+ // Create a rain node
42
+ const rainNode = new RainNode({
43
+ id: 'rain1',
44
+ name: 'Paris Rain',
45
+ team: null,
46
+ radars: [radarNode]
47
+ });
48
+
49
+ // Process rain data
50
+ const computation = new RainComputationMap({
51
+ id: 'comp1',
52
+ date: new Date(),
53
+ isReady: true,
54
+ map: [] // Your rain measurement data here
55
+ });
56
+ ```
57
+
58
+ ## ๐Ÿ“š Documentation
59
+
60
+ For detailed documentation and examples, visit our [documentation site](https://api.sandbox.radartorain.com/docs).
61
+
62
+ ### Key Components
63
+
64
+ - `RainNode`: Core class for rain measurement nodes
65
+ - `RadarNode`: Radar station representation
66
+ - `RainComputationMap`: Advanced rain data processing
67
+ - `CartesianTools`: Utilities for coordinate transformations
68
+ - `SpeedMatrix`: Matrix operations for rain data
69
+
70
+ ## ๐Ÿงช Testing
71
+
72
+ ```bash
73
+ # Run all tests
74
+ npm test
75
+
76
+ # Run tests with coverage
77
+ npm run test:coverage
78
+ ```
79
+
80
+ ## ๐Ÿค Contributing
81
+
82
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
83
+
84
+ ## ๐Ÿ“ License
85
+
86
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
87
+
88
+ ## ๐Ÿ“… Release Notes
89
+
90
+ See [Release notes](./RELEASE.md) for version history and changes.
91
+
92
+ ## ๐Ÿ”— Links
93
+
94
+ - [Website](https://radartorain.com)
95
+ - [API Documentation](https://api.sandbox.radartorain.com/docs)
96
+ - [GitHub Issues](https://github.com/raainio/raain-model/issues)
@@ -1,15 +1,52 @@
1
1
  import { Link, RaainNode, TeamNode } from '../organization';
2
2
  /**
3
- * api/gauges/:id
3
+ * Represents a rain gauge station in the RAAIN system.
4
+ * This class manages gauge data collection and configuration.
5
+ *
6
+ * @remarks
7
+ * Used in the API endpoint: api/gauges/:id
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const gaugeNode = new GaugeNode({
12
+ * id: 'gauge1',
13
+ * latitude: 48.8566,
14
+ * longitude: 2.3522,
15
+ * name: 'Paris Gauge',
16
+ * team: teamNode,
17
+ * description: 'Main rain gauge station'
18
+ * });
19
+ * ```
4
20
  */
5
21
  export declare class GaugeNode extends RaainNode {
22
+ /** Type identifier for gauge nodes */
6
23
  static TYPE: string;
24
+ /** Name of the gauge station */
7
25
  name: string;
26
+ /** Description of the gauge station */
8
27
  description: string;
28
+ /** Latitude of the gauge station */
9
29
  latitude: number;
30
+ /** Longitude of the gauge station */
10
31
  longitude: number;
32
+ /** Associated team */
11
33
  team: TeamNode;
34
+ /** Internal configuration storage */
12
35
  private configurationAsJSON;
36
+ /**
37
+ * Creates a new GaugeNode instance.
38
+ *
39
+ * @param json - Configuration object
40
+ * @param json.id - Unique identifier
41
+ * @param json.latitude - Latitude of the gauge station
42
+ * @param json.longitude - Longitude of the gauge station
43
+ * @param json.name - Name of the gauge station
44
+ * @param json.team - Associated team
45
+ * @param json.description - Optional description
46
+ * @param json.links - Optional array of links
47
+ * @param json.version - Optional version string
48
+ * @param json.configurationAsJSON - Optional configuration object
49
+ */
13
50
  constructor(json: {
14
51
  id: string;
15
52
  latitude: number;
@@ -21,8 +58,28 @@ export declare class GaugeNode extends RaainNode {
21
58
  version?: string;
22
59
  configurationAsJSON?: any;
23
60
  });
61
+ /**
62
+ * Sets the configuration for the gauge node.
63
+ *
64
+ * @param configuration - Configuration object or JSON string
65
+ */
24
66
  setConfiguration(configuration: string | any): void;
67
+ /**
68
+ * Gets the configuration of the gauge node.
69
+ *
70
+ * @returns The configuration object or null if not set
71
+ */
25
72
  getConfiguration(): any;
73
+ /**
74
+ * Converts the gauge node to a JSON object.
75
+ *
76
+ * @returns A JSON object containing the gauge node's data
77
+ */
26
78
  toJSON(): any;
79
+ /**
80
+ * Returns the link type for gauge nodes.
81
+ *
82
+ * @returns The string 'gauge'
83
+ */
27
84
  protected getLinkType(): string;
28
85
  }
@@ -3,9 +3,39 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GaugeNode = void 0;
4
4
  const organization_1 = require("../organization");
5
5
  /**
6
- * api/gauges/:id
6
+ * Represents a rain gauge station in the RAAIN system.
7
+ * This class manages gauge data collection and configuration.
8
+ *
9
+ * @remarks
10
+ * Used in the API endpoint: api/gauges/:id
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const gaugeNode = new GaugeNode({
15
+ * id: 'gauge1',
16
+ * latitude: 48.8566,
17
+ * longitude: 2.3522,
18
+ * name: 'Paris Gauge',
19
+ * team: teamNode,
20
+ * description: 'Main rain gauge station'
21
+ * });
22
+ * ```
7
23
  */
8
24
  class GaugeNode extends organization_1.RaainNode {
25
+ /**
26
+ * Creates a new GaugeNode instance.
27
+ *
28
+ * @param json - Configuration object
29
+ * @param json.id - Unique identifier
30
+ * @param json.latitude - Latitude of the gauge station
31
+ * @param json.longitude - Longitude of the gauge station
32
+ * @param json.name - Name of the gauge station
33
+ * @param json.team - Associated team
34
+ * @param json.description - Optional description
35
+ * @param json.links - Optional array of links
36
+ * @param json.version - Optional version string
37
+ * @param json.configurationAsJSON - Optional configuration object
38
+ */
9
39
  constructor(json) {
10
40
  super(json);
11
41
  this.latitude = json.latitude;
@@ -15,6 +45,11 @@ class GaugeNode extends organization_1.RaainNode {
15
45
  this.team = json.team;
16
46
  this.setConfiguration(json.configurationAsJSON);
17
47
  }
48
+ /**
49
+ * Sets the configuration for the gauge node.
50
+ *
51
+ * @param configuration - Configuration object or JSON string
52
+ */
18
53
  setConfiguration(configuration) {
19
54
  let conf = configuration;
20
55
  try {
@@ -26,6 +61,11 @@ class GaugeNode extends organization_1.RaainNode {
26
61
  this.configurationAsJSON = JSON.stringify(conf);
27
62
  }
28
63
  }
64
+ /**
65
+ * Gets the configuration of the gauge node.
66
+ *
67
+ * @returns The configuration object or null if not set
68
+ */
29
69
  getConfiguration() {
30
70
  try {
31
71
  return JSON.parse(this.configurationAsJSON);
@@ -34,6 +74,11 @@ class GaugeNode extends organization_1.RaainNode {
34
74
  }
35
75
  return null;
36
76
  }
77
+ /**
78
+ * Converts the gauge node to a JSON object.
79
+ *
80
+ * @returns A JSON object containing the gauge node's data
81
+ */
37
82
  toJSON() {
38
83
  var _a;
39
84
  const json = super.toJSON();
@@ -45,10 +90,16 @@ class GaugeNode extends organization_1.RaainNode {
45
90
  json['configurationAsJSON'] = this.configurationAsJSON;
46
91
  return json;
47
92
  }
93
+ /**
94
+ * Returns the link type for gauge nodes.
95
+ *
96
+ * @returns The string 'gauge'
97
+ */
48
98
  getLinkType() {
49
99
  return GaugeNode.TYPE;
50
100
  }
51
101
  }
52
102
  exports.GaugeNode = GaugeNode;
103
+ /** Type identifier for gauge nodes */
53
104
  GaugeNode.TYPE = 'gauge';
54
105
  //# sourceMappingURL=GaugeNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GaugeNode.js","sourceRoot":"","sources":["../../src/gauge/GaugeNode.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAE1D;;GAEG;AACH,MAAa,SAAU,SAAQ,wBAAS;IAapC,YAAY,IAUX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAEM,gBAAgB,CAAC,aAA2B;QAC/C,IAAI,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAEM,gBAAgB;QACnB,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM;;QACT,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,EAAE,KAAI,IAAI,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACvD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,WAAW;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC;IAC1B,CAAC;;AAlEL,8BAoEC;AAlEiB,cAAI,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"GaugeNode.js","sourceRoot":"","sources":["../../src/gauge/GaugeNode.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,SAAU,SAAQ,wBAAS;IAuBpC;;;;;;;;;;;;;OAaG;IACH,YAAY,IAUX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,aAA2B;QAC/C,IAAI,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,gBAAgB;QACnB,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,MAAM;;QACT,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,EAAE,KAAI,IAAI,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACvD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACO,WAAW;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC;IAC1B,CAAC;;AA9GL,8BA+GC;AA7GG,sCAAsC;AACxB,cAAI,GAAG,OAAO,CAAC"}
@@ -10,7 +10,7 @@ export declare class Link {
10
10
  href: string;
11
11
  constructor(rel: string, href: string);
12
12
  static isCloneable(object: any): boolean;
13
- static clone(object: any): Link;
13
+ static clone(object: any): Link | null;
14
14
  getId(): string;
15
15
  getLinkType(): string;
16
16
  }
@@ -14,9 +14,12 @@ class Link {
14
14
  this.href = href;
15
15
  }
16
16
  static isCloneable(object) {
17
- return object && object.rel && object.href;
17
+ return (object === null || object === void 0 ? void 0 : object.rel) && (object === null || object === void 0 ? void 0 : object.href);
18
18
  }
19
19
  static clone(object) {
20
+ if (!(object === null || object === void 0 ? void 0 : object.rel) || !(object === null || object === void 0 ? void 0 : object.href)) {
21
+ return null;
22
+ }
20
23
  return new Link(object.rel, object.href);
21
24
  }
22
25
  getId() {
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../src/organization/Link.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,IAAI;IACb,YACW,GAAW,EACX,IAAY;QADZ,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAQ;IAEvB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAW;QACjC,OAAO,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAW;QAC3B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,+CAA+C;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAEM,WAAW;QACd,qCAAqC;QACrC,+CAA+C;QAC/C,mDAAmD;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AA3BD,oBA2BC"}
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../src/organization/Link.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,IAAI;IACb,YACW,GAAW,EACX,IAAY;QADZ,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAQ;IAEvB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAW;QACjC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAW;QAC3B,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAA,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,+CAA+C;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAEM,WAAW;QACd,qCAAqC;QACrC,+CAA+C;QAC/C,mDAAmD;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AA9BD,oBA8BC"}
@@ -1,24 +1,96 @@
1
1
  import { Link } from './Link';
2
2
  import { IVersion } from './IVersion';
3
+ /**
4
+ * Base class for all RAAIN nodes in the system.
5
+ * Implements versioning and link management functionality.
6
+ *
7
+ * @remarks
8
+ * This is the foundation class for all API entities in the RAAIN system.
9
+ * It provides common functionality for:
10
+ * - Version management
11
+ * - HATEOAS link handling
12
+ * - JSON serialization
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const node = new RaainNode({
17
+ * id: 'node1',
18
+ * version: '1.0.0',
19
+ * links: [
20
+ * new Link('self', '/api/nodes/node1')
21
+ * ]
22
+ * });
23
+ * ```
24
+ */
3
25
  export declare class RaainNode implements IVersion {
26
+ /** Unique identifier for the node */
4
27
  id: string;
28
+ /** Array of HATEOAS links associated with the node */
29
+ protected _links: Link[];
30
+ /** Version string of the node */
5
31
  version: string;
6
- private links;
32
+ /**
33
+ * Creates a new RaainNode instance.
34
+ *
35
+ * @param json - Configuration object
36
+ * @param json.id - Unique identifier
37
+ * @param json.links - Array of HATEOAS links
38
+ * @param json.version - Version string
39
+ */
7
40
  constructor(json: {
8
41
  id: string;
9
42
  links?: Link[] | RaainNode[];
10
43
  version?: string;
11
44
  });
12
45
  private static _getPurifiedLinks;
46
+ /**
47
+ * Converts the node to a JSON object.
48
+ *
49
+ * @returns A JSON object containing the node's data
50
+ */
13
51
  toJSON(): any;
14
- getId(): string;
15
- setLinks(linksToSet: Link[] | RaainNode[]): void;
16
- addLinks(linksToAdd: Link[] | RaainNode[]): void;
17
- getLinks(linkType?: string): Link[];
18
- getLink(linkType: string, index?: number): Link;
19
- getLinkId(linkType: string, index?: number): string;
20
- getLinkIds(linkType?: string, index?: number): string[];
52
+ /**
53
+ * Gets all links associated with the node.
54
+ *
55
+ * @returns Array of HATEOAS links
56
+ */
57
+ get links(): Link[];
58
+ /**
59
+ * Sets the links for the node.
60
+ *
61
+ * @param links - Array of links to set
62
+ */
63
+ set links(links: Link[] | RaainNode[]);
64
+ /**
65
+ * Gets the ID from a link by its relationship type.
66
+ *
67
+ * @param rel - Relationship type of the link
68
+ * @returns The ID from the link, or undefined if not found
69
+ */
70
+ getLinkId(rel: string): string | undefined;
71
+ /**
72
+ * Gets all link IDs associated with the node.
73
+ *
74
+ * @returns Array of link IDs
75
+ */
76
+ getLinkIds(): string[];
77
+ /**
78
+ * Gets the count of links, optionally filtered by type.
79
+ *
80
+ * @param linkType - Optional type of links to count
81
+ * @returns The number of links
82
+ */
21
83
  getLinksCount(linkType?: string): number;
22
- getVersion(): string;
23
- protected getLinkType(): string;
84
+ /**
85
+ * Adds new links to the node.
86
+ *
87
+ * @param links - Array of links to add
88
+ */
89
+ addLinks(links: Link[] | RaainNode[]): void;
90
+ /**
91
+ * Gets the version string of the node.
92
+ *
93
+ * @returns The version string
94
+ */
95
+ getVersion(): string | undefined;
24
96
  }
@@ -2,36 +2,72 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RaainNode = void 0;
4
4
  const Link_1 = require("./Link");
5
+ /**
6
+ * Base class for all RAAIN nodes in the system.
7
+ * Implements versioning and link management functionality.
8
+ *
9
+ * @remarks
10
+ * This is the foundation class for all API entities in the RAAIN system.
11
+ * It provides common functionality for:
12
+ * - Version management
13
+ * - HATEOAS link handling
14
+ * - JSON serialization
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const node = new RaainNode({
19
+ * id: 'node1',
20
+ * version: '1.0.0',
21
+ * links: [
22
+ * new Link('self', '/api/nodes/node1')
23
+ * ]
24
+ * });
25
+ * ```
26
+ */
5
27
  class RaainNode {
28
+ /**
29
+ * Creates a new RaainNode instance.
30
+ *
31
+ * @param json - Configuration object
32
+ * @param json.id - Unique identifier
33
+ * @param json.links - Array of HATEOAS links
34
+ * @param json.version - Version string
35
+ */
6
36
  constructor(json) {
7
37
  if (!(json === null || json === void 0 ? void 0 : json.id)) {
8
38
  throw new Error('RaainNode needs a valid Object or ID');
9
39
  }
10
40
  this.id = json.id;
11
- this.setLinks(json.links ? json.links : []);
41
+ this.links = json.links ? json.links : [];
12
42
  this.version = json.version ? json.version : undefined;
13
43
  }
14
44
  static _getPurifiedLinks(linksToPurify) {
15
45
  if (!linksToPurify || linksToPurify.length === 0) {
16
46
  return [];
17
47
  }
18
- const linksPurified = linksToPurify.map(l => {
48
+ const linksPurified = linksToPurify
49
+ .filter(l => l !== null && l !== undefined)
50
+ .map(l => {
51
+ var _a;
19
52
  if (l instanceof Link_1.Link || Link_1.Link.isCloneable(l)) {
20
53
  return Link_1.Link.clone(l);
21
54
  }
22
- else if (l && l.getLinkType && l.id) {
23
- let href = '../' + l.getLinkType() + 's';
55
+ else if (l && typeof l.getLinkType === 'function' && l.id) {
56
+ const linkType = l.getLinkType();
57
+ let href = '../' + linkType + 's';
24
58
  const l2 = l;
25
- if (l2.date && l2.date.toISOString) {
59
+ if ((_a = l2.date) === null || _a === void 0 ? void 0 : _a.toISOString) {
26
60
  href += '/' + l2.date.toISOString();
27
61
  if (l2.version) {
28
62
  href += '/' + l2.version;
29
63
  }
30
64
  }
31
- href += '/' + l.id;
32
- return new Link_1.Link(l.getLinkType(), href);
65
+ href += '/' + l2.id;
66
+ return new Link_1.Link(linkType, href);
33
67
  }
34
- });
68
+ return null;
69
+ })
70
+ .filter(l => l !== null);
35
71
  function uniqBy(a, key) {
36
72
  const seen = {};
37
73
  return a.filter((item) => {
@@ -39,71 +75,98 @@ class RaainNode {
39
75
  return false;
40
76
  }
41
77
  const k = key(item);
42
- return seen.hasOwnProperty(k) ? false : (seen[k] = true);
78
+ if (seen.hasOwnProperty(k)) {
79
+ return false;
80
+ }
81
+ seen[k] = true;
82
+ return true;
43
83
  });
44
84
  }
45
85
  return uniqBy(linksPurified, JSON.stringify);
46
86
  }
87
+ /**
88
+ * Converts the node to a JSON object.
89
+ *
90
+ * @returns A JSON object containing the node's data
91
+ */
47
92
  toJSON() {
48
- return {
93
+ const json = {
49
94
  id: this.id,
50
- links: this.links,
51
- version: this.version,
95
+ links: this.links
52
96
  };
97
+ if (this.version) {
98
+ json.version = this.version;
99
+ }
100
+ return json;
53
101
  }
54
- getId() {
55
- return this.id.toString();
102
+ /**
103
+ * Gets all links associated with the node.
104
+ *
105
+ * @returns Array of HATEOAS links
106
+ */
107
+ get links() {
108
+ return this._links;
56
109
  }
57
- setLinks(linksToSet) {
58
- this.links = RaainNode._getPurifiedLinks(linksToSet);
110
+ /**
111
+ * Sets the links for the node.
112
+ *
113
+ * @param links - Array of links to set
114
+ */
115
+ set links(links) {
116
+ this._links = RaainNode._getPurifiedLinks(links);
59
117
  }
60
- addLinks(linksToAdd) {
61
- if (!this.links) {
62
- this.links = [];
63
- }
64
- const concatLinks = this.links.concat(linksToAdd);
65
- this.links = RaainNode._getPurifiedLinks(concatLinks);
118
+ /**
119
+ * Gets the ID from a link by its relationship type.
120
+ *
121
+ * @param rel - Relationship type of the link
122
+ * @returns The ID from the link, or undefined if not found
123
+ */
124
+ getLinkId(rel) {
125
+ const link = this._links.find(l => l.getLinkType() === rel);
126
+ return link ? link.getId() : undefined;
66
127
  }
67
- getLinks(linkType) {
68
- if (!this.links) {
69
- return [];
128
+ /**
129
+ * Gets all link IDs associated with the node.
130
+ *
131
+ * @returns Array of link IDs
132
+ */
133
+ getLinkIds() {
134
+ return this._links.map(l => l.getId());
135
+ }
136
+ /**
137
+ * Gets the count of links, optionally filtered by type.
138
+ *
139
+ * @param linkType - Optional type of links to count
140
+ * @returns The number of links
141
+ */
142
+ getLinksCount(linkType) {
143
+ if (!this._links) {
144
+ return 0;
70
145
  }
71
146
  if (!linkType) {
72
- return this.links;
147
+ return this._links.length;
73
148
  }
74
- // return this.links.filter(l => l && l.rel && linkType === l.rel);
75
- return this.links.filter(l => l.getLinkType() === linkType);
149
+ return this._links.filter(l => l.getLinkType() === linkType).length;
76
150
  }
77
- getLink(linkType, index) {
78
- index = !index ? 0 : index;
79
- const linksFound = this.getLinks(linkType);
80
- if (linksFound.length <= index) {
81
- return null;
82
- }
83
- return linksFound[index];
84
- }
85
- getLinkId(linkType, index) {
86
- index = !index ? 0 : index;
87
- const link = this.getLink(linkType, index);
88
- if (link) {
89
- return link.getId();
151
+ /**
152
+ * Adds new links to the node.
153
+ *
154
+ * @param links - Array of links to add
155
+ */
156
+ addLinks(links) {
157
+ if (!links) {
158
+ return;
90
159
  }
91
- return null;
92
- }
93
- getLinkIds(linkType, index) {
94
- const linksFound = this.getLinks(linkType);
95
- return linksFound.map(l => l.getId());
96
- }
97
- getLinksCount(linkType) {
98
- const linksFound = this.getLinks(linkType);
99
- return linksFound.length;
160
+ this._links = RaainNode._getPurifiedLinks([...this._links, ...links]);
100
161
  }
162
+ /**
163
+ * Gets the version string of the node.
164
+ *
165
+ * @returns The version string
166
+ */
101
167
  getVersion() {
102
168
  return this.version;
103
169
  }
104
- getLinkType() {
105
- throw new Error('to implement');
106
- }
107
170
  }
108
171
  exports.RaainNode = RaainNode;
109
172
  //# sourceMappingURL=RaainNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RaainNode.js","sourceRoot":"","sources":["../../src/organization/RaainNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RaainNode.js","sourceRoot":"","sources":["../../src/organization/RaainNode.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,46 @@
1
1
  import { PeopleNode } from './PeopleNode';
2
2
  import { RaainNode } from './RaainNode';
3
3
  /**
4
- * api/teams?name=customerTeam
4
+ * Represents a team in the RAAIN system.
5
+ * This class manages team members and their contracts.
6
+ *
7
+ * @remarks
8
+ * Used in the API endpoint: api/teams?name=customerTeam
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const teamNode = new TeamNode({
13
+ * id: 'team1',
14
+ * name: 'Customer Team',
15
+ * description: 'Main customer support team',
16
+ * contracts: ['basic', 'premium'],
17
+ * contacts: [peopleNode1, peopleNode2]
18
+ * });
19
+ * ```
5
20
  */
6
21
  export declare class TeamNode extends RaainNode {
22
+ /** Type identifier for team nodes */
7
23
  static TYPE: string;
24
+ /** Unique identifier for the team */
8
25
  id: any | string;
26
+ /** Name of the team */
9
27
  name: string;
28
+ /** Description of the team */
10
29
  description: string;
30
+ /** Array of contract types associated with the team */
11
31
  contracts: string[];
32
+ /** Array of team members */
12
33
  contacts: PeopleNode[];
34
+ /**
35
+ * Creates a new TeamNode instance.
36
+ *
37
+ * @param json - Configuration object
38
+ * @param json.id - Unique identifier
39
+ * @param json.name - Optional name of the team
40
+ * @param json.description - Optional description
41
+ * @param json.contracts - Optional array of contract types
42
+ * @param json.contacts - Optional array of team members
43
+ */
13
44
  constructor(json: {
14
45
  id: any | string;
15
46
  name?: string;
@@ -17,6 +48,16 @@ export declare class TeamNode extends RaainNode {
17
48
  contracts?: string[];
18
49
  contacts?: PeopleNode[];
19
50
  });
51
+ /**
52
+ * Converts the team node to a JSON object.
53
+ *
54
+ * @returns A JSON object containing the team's data
55
+ */
20
56
  toJSON(): any;
57
+ /**
58
+ * Returns the link type for team nodes.
59
+ *
60
+ * @returns The string 'team'
61
+ */
21
62
  protected getLinkType(): string;
22
63
  }
@@ -3,9 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TeamNode = void 0;
4
4
  const RaainNode_1 = require("./RaainNode");
5
5
  /**
6
- * api/teams?name=customerTeam
6
+ * Represents a team in the RAAIN system.
7
+ * This class manages team members and their contracts.
8
+ *
9
+ * @remarks
10
+ * Used in the API endpoint: api/teams?name=customerTeam
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const teamNode = new TeamNode({
15
+ * id: 'team1',
16
+ * name: 'Customer Team',
17
+ * description: 'Main customer support team',
18
+ * contracts: ['basic', 'premium'],
19
+ * contacts: [peopleNode1, peopleNode2]
20
+ * });
21
+ * ```
7
22
  */
8
23
  class TeamNode extends RaainNode_1.RaainNode {
24
+ /**
25
+ * Creates a new TeamNode instance.
26
+ *
27
+ * @param json - Configuration object
28
+ * @param json.id - Unique identifier
29
+ * @param json.name - Optional name of the team
30
+ * @param json.description - Optional description
31
+ * @param json.contracts - Optional array of contract types
32
+ * @param json.contacts - Optional array of team members
33
+ */
9
34
  constructor(json) {
10
35
  super(json);
11
36
  this.id = json.id;
@@ -14,6 +39,11 @@ class TeamNode extends RaainNode_1.RaainNode {
14
39
  this.contracts = json.contracts;
15
40
  this.contacts = json.contacts;
16
41
  }
42
+ /**
43
+ * Converts the team node to a JSON object.
44
+ *
45
+ * @returns A JSON object containing the team's data
46
+ */
17
47
  toJSON() {
18
48
  return {
19
49
  id: this.id,
@@ -23,10 +53,16 @@ class TeamNode extends RaainNode_1.RaainNode {
23
53
  contacts: this.contacts,
24
54
  };
25
55
  }
56
+ /**
57
+ * Returns the link type for team nodes.
58
+ *
59
+ * @returns The string 'team'
60
+ */
26
61
  getLinkType() {
27
62
  return TeamNode.TYPE;
28
63
  }
29
64
  }
30
65
  exports.TeamNode = TeamNode;
66
+ /** Type identifier for team nodes */
31
67
  TeamNode.TYPE = 'team';
32
68
  //# sourceMappingURL=TeamNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TeamNode.js","sourceRoot":"","sources":["../../src/organization/TeamNode.ts"],"names":[],"mappings":";;;AACA,2CAAsC;AAEtC;;GAEG;AACH,MAAa,QAAS,SAAQ,qBAAS;IAUnC,YAAY,IAMX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAEM,MAAM;QACT,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACnB,CAAC;IACb,CAAC;IAES,WAAW;QACjB,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;;AAtCL,4BAuCC;AArCiB,aAAI,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"TeamNode.js","sourceRoot":"","sources":["../../src/organization/TeamNode.ts"],"names":[],"mappings":";;;AACA,2CAAsC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,QAAS,SAAQ,qBAAS;IAoBnC;;;;;;;;;OASG;IACH,YAAY,IAMX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,MAAM;QACT,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACnB,CAAC;IACb,CAAC;IAED;;;;OAIG;IACO,WAAW;QACjB,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;;AApEL,4BAqEC;AAnEG,qCAAqC;AACvB,aAAI,GAAG,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,36 +1,38 @@
1
1
  {
2
2
  "name": "raain-model",
3
- "version": "2.6.6",
4
- "author": "contact@raain.io",
3
+ "version": "2.6.8",
4
+ "author": "contact@radartorain.com",
5
5
  "homepage": "https://github.com/raainio/raain-model",
6
- "description": "raain.io api model",
6
+ "description": "radartorain.com api model",
7
7
  "keywords": [
8
- "raain.io",
8
+ "radartorain.com",
9
9
  "api"
10
10
  ],
11
11
  "private": false,
12
12
  "license": "MIT",
13
13
  "main": "./index.js",
14
14
  "types": "./index.d.ts",
15
- "dependencies": {},
16
15
  "devDependencies": {
17
- "hash-it": "^6.0.0",
16
+ "@testdeck/mocha": "^0.3.3",
18
17
  "@types/chai": "^4.3.10",
19
18
  "@types/mocha": "^10.0.1",
20
19
  "@types/node": "^20.8.8",
21
20
  "chai": "^4.3.10",
22
21
  "chai-as-promised": "^7.1.1",
23
22
  "chai-spies": "^1.1.0",
23
+ "hash-it": "^6.0.0",
24
24
  "mocha": "^10.2.0",
25
- "mocha-typescript": "^1.1.17",
26
25
  "ts-node": "^8.10.2",
27
26
  "tslint": "^6.1.3",
27
+ "typedoc": "^0.25.12",
28
28
  "typescript": "^5.0.4"
29
29
  },
30
30
  "scripts": {
31
31
  "build": "npm run build-dist",
32
32
  "build-version": "VERSION=\"$(npm version patch --no-git-tag-version)\"",
33
33
  "build-dist": "rm -rf dist/ && npx tsc && cp package.json dist/ && cp *.md dist/",
34
- "test": "mocha --require ts-node/register 'specs/**/**.spec.ts'"
34
+ "test": "mocha --require ts-node/register 'specs/**/**.spec.ts'",
35
+ "docs": "typedoc --out docs src/",
36
+ "docs:serve": "npx serve docs"
35
37
  }
36
38
  }
@@ -175,8 +175,14 @@ class PolarMeasureValue {
175
175
  const polarEdgesCount = this.getPolarEdgesCount();
176
176
  let measureValuePolarContainers = [];
177
177
  for (const measureValuePolarContainer of this.measureValuePolarContainers) {
178
- const filteredMeasureValuePolarContainer = measureValuePolarContainer.getFiltered(options);
179
- if (options.nullValues && filteredMeasureValuePolarContainer.getNotNullValuesCount()) {
178
+ let filteredMeasureValuePolarContainer = measureValuePolarContainer;
179
+ if (measureValuePolarContainer.getFiltered && filteredMeasureValuePolarContainer.getNotNullValuesCount) {
180
+ filteredMeasureValuePolarContainer = measureValuePolarContainer.getFiltered(options);
181
+ if (options.nullValues && filteredMeasureValuePolarContainer.getNotNullValuesCount()) {
182
+ measureValuePolarContainers.push(filteredMeasureValuePolarContainer);
183
+ }
184
+ }
185
+ else {
180
186
  measureValuePolarContainers.push(filteredMeasureValuePolarContainer);
181
187
  }
182
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PolarMeasureValue.js","sourceRoot":"","sources":["../../src/polar/PolarMeasureValue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolarMeasureValue.js","sourceRoot":"","sources":["../../src/polar/PolarMeasureValue.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,49 @@ import { RainMeasure } from './RainMeasure';
4
4
  import { CartesianTools, LatLng } from '../cartesian';
5
5
  import { MergeStrategy } from './MergeStrategy';
6
6
  /**
7
- * api/rains/:id/computations/:computationId?format=map&...
8
- * or with
9
- * api/rains/:id/computations?format=map&begin=...
7
+ * Represents a map-based rain computation result.
8
+ * This class extends RainComputationAbstract to provide map-specific functionality for rain data processing.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const computation = new RainComputationMap({
13
+ * id: 'comp1',
14
+ * date: new Date(),
15
+ * isReady: true,
16
+ * map: [] // Your rain measurement data here
17
+ * });
18
+ * ```
19
+ *
20
+ * @remarks
21
+ * This class is used in the following API endpoints:
22
+ * - api/rains/:id/computations/:computationId?format=map
23
+ * - api/rains/:id/computations?format=map&begin=...
10
24
  */
11
25
  export declare class RainComputationMap extends RainComputationAbstract {
26
+ /**
27
+ * The map data stored as a stringified JSON array of RainMeasure objects.
28
+ * This format allows for efficient storage and transmission of large datasets.
29
+ */
12
30
  protected map: string;
31
+ /**
32
+ * Creates a new RainComputationMap instance.
33
+ *
34
+ * @param json - The configuration object containing all necessary parameters
35
+ * @param json.id - Unique identifier for the computation
36
+ * @param json.date - Timestamp of the computation
37
+ * @param json.isReady - Whether the computation is ready
38
+ * @param json.map - Array of rain measurements or stringified JSON
39
+ * @param json.links - Optional array of related nodes or links
40
+ * @param json.version - Optional version string
41
+ * @param json.quality - Optional quality metric (0-1)
42
+ * @param json.progressIngest - Optional ingestion progress (0-100)
43
+ * @param json.progressComputing - Optional computing progress (0-100)
44
+ * @param json.timeSpentInMs - Optional computation time in milliseconds
45
+ * @param json.isDoneDate - Optional completion timestamp
46
+ * @param json.launchedBy - Optional user identifier
47
+ * @param json.rain - Optional related rain node
48
+ * @param json.radars - Optional array of related radar nodes
49
+ */
13
50
  constructor(json: {
14
51
  id: string;
15
52
  date: Date;
@@ -26,7 +63,30 @@ export declare class RainComputationMap extends RainComputationAbstract {
26
63
  rain?: Link | RaainNode;
27
64
  radars?: Link[] | RaainNode[];
28
65
  });
66
+ /**
67
+ * Converts the computation to a JSON object.
68
+ *
69
+ * @returns A JSON object containing all relevant data
70
+ * @remarks
71
+ * This method overrides the parent class's toJSON method to handle the map property
72
+ * and remove the results property which is not used in this implementation.
73
+ */
29
74
  toJSON(): any;
75
+ /**
76
+ * Sets the map data with optional merging capabilities.
77
+ *
78
+ * @param mapData - The rain measurement data to set
79
+ * @param options - Configuration options for data processing
80
+ * @param options.mergeStrategy - Strategy to use when merging data
81
+ * @param options.cartesianTools - Optional tools for coordinate transformations
82
+ * @param options.mergeLimitPoints - Optional boundary points for merging
83
+ * @param options.removeNullValues - Whether to remove null values during merge
84
+ *
85
+ * @remarks
86
+ * This method handles both string and array inputs, and can perform merging
87
+ * operations based on the provided options. The data is always stored internally
88
+ * as a stringified JSON array.
89
+ */
30
90
  setMapData(mapData: RainMeasure[] | string, options: {
31
91
  mergeStrategy: MergeStrategy;
32
92
  cartesianTools?: CartesianTools;
@@ -4,15 +4,56 @@ exports.RainComputationMap = void 0;
4
4
  const RainComputationAbstract_1 = require("./RainComputationAbstract");
5
5
  const MergeStrategy_1 = require("./MergeStrategy");
6
6
  /**
7
- * api/rains/:id/computations/:computationId?format=map&...
8
- * or with
9
- * api/rains/:id/computations?format=map&begin=...
7
+ * Represents a map-based rain computation result.
8
+ * This class extends RainComputationAbstract to provide map-specific functionality for rain data processing.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const computation = new RainComputationMap({
13
+ * id: 'comp1',
14
+ * date: new Date(),
15
+ * isReady: true,
16
+ * map: [] // Your rain measurement data here
17
+ * });
18
+ * ```
19
+ *
20
+ * @remarks
21
+ * This class is used in the following API endpoints:
22
+ * - api/rains/:id/computations/:computationId?format=map
23
+ * - api/rains/:id/computations?format=map&begin=...
10
24
  */
11
25
  class RainComputationMap extends RainComputationAbstract_1.RainComputationAbstract {
26
+ /**
27
+ * Creates a new RainComputationMap instance.
28
+ *
29
+ * @param json - The configuration object containing all necessary parameters
30
+ * @param json.id - Unique identifier for the computation
31
+ * @param json.date - Timestamp of the computation
32
+ * @param json.isReady - Whether the computation is ready
33
+ * @param json.map - Array of rain measurements or stringified JSON
34
+ * @param json.links - Optional array of related nodes or links
35
+ * @param json.version - Optional version string
36
+ * @param json.quality - Optional quality metric (0-1)
37
+ * @param json.progressIngest - Optional ingestion progress (0-100)
38
+ * @param json.progressComputing - Optional computing progress (0-100)
39
+ * @param json.timeSpentInMs - Optional computation time in milliseconds
40
+ * @param json.isDoneDate - Optional completion timestamp
41
+ * @param json.launchedBy - Optional user identifier
42
+ * @param json.rain - Optional related rain node
43
+ * @param json.radars - Optional array of related radar nodes
44
+ */
12
45
  constructor(json) {
13
46
  super(json);
14
47
  this.setMapData(json.map, { mergeStrategy: MergeStrategy_1.MergeStrategy.NONE });
15
48
  }
49
+ /**
50
+ * Converts the computation to a JSON object.
51
+ *
52
+ * @returns A JSON object containing all relevant data
53
+ * @remarks
54
+ * This method overrides the parent class's toJSON method to handle the map property
55
+ * and remove the results property which is not used in this implementation.
56
+ */
16
57
  toJSON() {
17
58
  const json = super.toJSON();
18
59
  if (this.map) {
@@ -21,6 +62,21 @@ class RainComputationMap extends RainComputationAbstract_1.RainComputationAbstra
21
62
  }
22
63
  return json;
23
64
  }
65
+ /**
66
+ * Sets the map data with optional merging capabilities.
67
+ *
68
+ * @param mapData - The rain measurement data to set
69
+ * @param options - Configuration options for data processing
70
+ * @param options.mergeStrategy - Strategy to use when merging data
71
+ * @param options.cartesianTools - Optional tools for coordinate transformations
72
+ * @param options.mergeLimitPoints - Optional boundary points for merging
73
+ * @param options.removeNullValues - Whether to remove null values during merge
74
+ *
75
+ * @remarks
76
+ * This method handles both string and array inputs, and can perform merging
77
+ * operations based on the provided options. The data is always stored internally
78
+ * as a stringified JSON array.
79
+ */
24
80
  setMapData(mapData, options) {
25
81
  if (!mapData) {
26
82
  return;
@@ -37,15 +93,7 @@ class RainComputationMap extends RainComputationAbstract_1.RainComputationAbstra
37
93
  mergeStrategy: options.mergeStrategy,
38
94
  });
39
95
  }
40
- let map = mapData;
41
- try {
42
- if (typeof (mapData) !== 'string') {
43
- map = JSON.stringify(mapData);
44
- }
45
- }
46
- catch (e) {
47
- }
48
- this.map = map.toString();
96
+ this.map = typeof mapData === 'string' ? mapData : JSON.stringify(mapData);
49
97
  }
50
98
  getMapData() {
51
99
  if (!this.map) {
@@ -1 +1 @@
1
- {"version":3,"file":"RainComputationMap.js","sourceRoot":"","sources":["../../src/rain/RainComputationMap.ts"],"names":[],"mappings":";;;AAAA,uEAAkE;AAIlE,mDAA8C;AAE9C;;;;GAIG;AACH,MAAa,kBAAmB,SAAQ,iDAAuB;IAI3D,YAAY,IAiBX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,aAAa,EAAE,6BAAa,CAAC,IAAI,EAAC,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAA+B,EAAE,OAKlD;QACG,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,KAAK,6BAAa,CAAC,IAAI;gBAC1E,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAA,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAA,EAAE,CAAC;YAE1D,IAAI,CAAC,iBAAiB,CAAC;gBACnB,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC7C,CAAC,CAAC;YAEH,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAwB,EAAE;gBACvD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBAC5C,aAAa,EAAE,OAAO,CAAC,aAAa;aACvC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,GAAG,GAAG,OAAO,CAAC;QAClB,IAAI,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAChC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CACJ;AA5ED,gDA4EC"}
1
+ {"version":3,"file":"RainComputationMap.js","sourceRoot":"","sources":["../../src/rain/RainComputationMap.ts"],"names":[],"mappings":";;;AAAA,uEAAkE;AAIlE,mDAA8C;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,kBAAmB,SAAQ,iDAAuB;IAQ3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,IAeX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,aAAa,EAAE,6BAAa,CAAC,IAAI,EAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACI,MAAM;QACT,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,UAAU,CAAC,OAA+B,EAAE,OAKlD;QACG,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,KAAK,6BAAa,CAAC,IAAI;gBAC1E,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAA,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAA,EAAE,CAAC;YAE1D,IAAI,CAAC,iBAAiB,CAAC;gBACnB,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC7C,CAAC,CAAC;YAEH,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAwB,EAAE;gBACvD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBAC5C,aAAa,EAAE,OAAO,CAAC,aAAa;aACvC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/E,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CACJ;AAjHD,gDAiHC"}
package/rain/RainNode.js CHANGED
@@ -115,9 +115,9 @@ class RainNode extends organization_1.RaainNode {
115
115
  json['team'] = ((_a = this.team) === null || _a === void 0 ? void 0 : _a.id) || this.team;
116
116
  json['latLngRectsAsJSON'] = this.latLngRectsAsJSON;
117
117
  json['configurationAsJSON'] = this.configurationAsJSON;
118
- json['radars'] = this.getLinks().filter(l => l.getLinkType() === radar_1.RadarNode.TYPE).map(l => l.getId());
119
- json['gauges'] = this.getLinks().filter(l => l.getLinkType() === gauge_1.GaugeNode.TYPE).map(l => l.getId());
120
- json['lastCompletedComputations'] = this.getLinks().filter(l => l.getLinkType() === RainComputation_1.RainComputation.TYPE).map(l => l.getId());
118
+ json['radars'] = this.links.filter(l => l.getLinkType() === radar_1.RadarNode.TYPE).map(l => l.getId());
119
+ json['gauges'] = this.links.filter(l => l.getLinkType() === gauge_1.GaugeNode.TYPE).map(l => l.getId());
120
+ json['lastCompletedComputations'] = this.links.filter(l => l.getLinkType() === RainComputation_1.RainComputation.TYPE).map(l => l.getId());
121
121
  return json;
122
122
  }
123
123
  addRadars(linksToAdd) {
@@ -1 +1 @@
1
- {"version":3,"file":"RainNode.js","sourceRoot":"","sources":["../../src/rain/RainNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RainNode.js","sourceRoot":"","sources":["../../src/rain/RainNode.ts"],"names":[],"mappings":"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"}