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 +88 -9
- package/gauge/GaugeNode.d.ts +58 -1
- package/gauge/GaugeNode.js +52 -1
- package/gauge/GaugeNode.js.map +1 -1
- package/organization/Link.d.ts +1 -1
- package/organization/Link.js +4 -1
- package/organization/Link.js.map +1 -1
- package/organization/RaainNode.d.ts +82 -10
- package/organization/RaainNode.js +116 -53
- package/organization/RaainNode.js.map +1 -1
- package/organization/TeamNode.d.ts +42 -1
- package/organization/TeamNode.js +37 -1
- package/organization/TeamNode.js.map +1 -1
- package/package.json +10 -8
- package/polar/PolarMeasureValue.js +8 -2
- package/polar/PolarMeasureValue.js.map +1 -1
- package/rain/RainComputationMap.d.ts +63 -3
- package/rain/RainComputationMap.js +60 -12
- package/rain/RainComputationMap.js.map +1 -1
- package/rain/RainNode.js +3 -3
- package/rain/RainNode.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,17 +1,96 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ๐ง๏ธ RAAIN Model
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://badge.fury.io/js/raain-model)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
[](https://github.com/raainio/raain-model/actions)
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
> A TypeScript library for radar-based rain measurement and analysis, used in [radartorain.com](https://api.radartorain.com) services.
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
## ๐ Features
|
|
8
11
|
|
|
9
|
-
|
|
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
|
-
##
|
|
19
|
+
## ๐ Installation
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
```bash
|
|
22
|
+
npm install raain-model
|
|
23
|
+
# or
|
|
24
|
+
yarn add raain-model
|
|
25
|
+
```
|
|
14
26
|
|
|
15
|
-
##
|
|
27
|
+
## ๐ Quick Start
|
|
16
28
|
|
|
17
|
-
|
|
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)
|
package/gauge/GaugeNode.d.ts
CHANGED
|
@@ -1,15 +1,52 @@
|
|
|
1
1
|
import { Link, RaainNode, TeamNode } from '../organization';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
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
|
}
|
package/gauge/GaugeNode.js
CHANGED
|
@@ -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
|
-
*
|
|
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
|
package/gauge/GaugeNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GaugeNode.js","sourceRoot":"","sources":["../../src/gauge/GaugeNode.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAE1D
|
|
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"}
|
package/organization/Link.d.ts
CHANGED
|
@@ -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
|
}
|
package/organization/Link.js
CHANGED
|
@@ -14,9 +14,12 @@ class Link {
|
|
|
14
14
|
this.href = href;
|
|
15
15
|
}
|
|
16
16
|
static isCloneable(object) {
|
|
17
|
-
return object
|
|
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() {
|
package/organization/Link.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
23
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
|
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 += '/' +
|
|
32
|
-
return new Link_1.Link(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
-
|
|
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
|
-
|
|
58
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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.
|
|
147
|
+
return this._links.length;
|
|
73
148
|
}
|
|
74
|
-
|
|
75
|
-
return this.links.filter(l => l.getLinkType() === linkType);
|
|
149
|
+
return this._links.filter(l => l.getLinkType() === linkType).length;
|
|
76
150
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
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":";;;AAAA,iCAA4B;AAG5B,MAAa,SAAS;
|
|
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
|
-
*
|
|
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
|
}
|
package/organization/TeamNode.js
CHANGED
|
@@ -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
|
-
*
|
|
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
|
|
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.
|
|
4
|
-
"author": "contact@
|
|
3
|
+
"version": "2.6.8",
|
|
4
|
+
"author": "contact@radartorain.com",
|
|
5
5
|
"homepage": "https://github.com/raainio/raain-model",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "radartorain.com api model",
|
|
7
7
|
"keywords": [
|
|
8
|
-
"
|
|
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
|
-
"
|
|
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
|
-
|
|
179
|
-
if (
|
|
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":";;;AAAA,6EAAwE;AAExE,6CAAwC;AACxC,2EAAsE;AAEtE,MAAa,iBAAiB;IAM1B,YAAY,IAIF;QAEN,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAIrB,CAAC;QACN,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,2BAA2B,KAAK,QAAQ,EAAE,CAAC;YAEvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAE7D,CAAC;aAAM,IAAI,IAAI,CAAC,2BAA2B,YAAY,qDAAyB;eACzE,IAAI,CAAC,2BAA2B,YAAY,iBAAiB,EAAE,CAAC;YAEnE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC;QAE5E,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,KAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,KAAI,CAAC,CAAC,EAAE,CAAC;YAC/D,oFAAoF;YACpF,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAChD,CAAC;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,CAAS;QACvB,IAAI,CAAC;YACD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAI,MAAM,IAAI,MAAM,CAAC,2BAA2B,EAAE,CAAC;gBAC/C,MAAM,GAAG,MAAM,CAAC,2BAA2B,CAAC;YAChD,CAAC;YAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,uDAA0B,CAAC,cAAc,CAAC,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,0DAA0D;YAC1D,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,oBAAoB,CAAC,2BAAyD,EACzD,OAAO,GAAG,EAAC,UAAU,EAAE,IAAI,EAAC;QAC7C,IAAI,MAAM,GAAQ,2BAA2B,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC;QAE1C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,aAAa,CAAC,IAA4D;QAEtE,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,oDAAoD,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEzC,MAAM,gCAAgC,GAAG,IAAI,CAAC,2BAA2B;aACpE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,gCAAgC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAEhD,MAAM,0BAA0B,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;YACvE,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC;YAC/C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,UAAU,CAAC;YAEjG,IAAI,CAAC,IAAI,SAAS,IAAI,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC7E,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;QAED,OAAO,IAAI,uBAAU,CAAC;YAClB,KAAK,EAAE,SAAS;YAChB,qBAAqB,EAAE,IAAI,CAAC,gBAAgB;YAC5C,qBAAqB,EAAE,IAAI,CAAC,gBAAgB;SAC/C,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,IAA2E;QAErF,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,oDAAoD,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QAClF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,0BAA0B,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5C,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC;YAC/C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,UAAU,CAAC;YAEjG,IAAI,CAAC,IAAI,SAAS,IAAI,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC7E,0BAA0B,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;gBACvE,IAAI,IAAI,GAAG,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC;gBACpE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAChB,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;oBACtB,0BAA0B,CAAC,UAAU,IAAI,SAAS,CAAC;gBACvD,CAAC;gBAED,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEzD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAChB,0BAA0B,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACvD,wBAAwB,CAAC,MAAM,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC;gBAChF,CAAC;qBAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBACvB,0BAA0B,CAAC,UAAU,GAAG,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAChF,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;YACxF,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,QAAQ,GAAG,CAAC,CAAC;YACxD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,uDAA0B,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC;QACvH,CAAC;IACL,CAAC;IAED,OAAO,CAAC,WAKC;QAEL,KAAK,MAAM,0BAA0B,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC;YACnD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC;YACrD,MAAM,UAAU,GAAG,0BAA0B,CAAC,UAAU,CAAC;YAEzD,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC;YAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAEpD,MAAM,iBAAiB,GAAG,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC;gBAE5E,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;oBACrC,UAAU,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;gBACrC,CAAC,CAAC;gBAEF,WAAW,CACP,IAAI,uBAAU,CAAC;oBACX,KAAK;oBACL,qBAAqB,EAAE,OAAO;oBAC9B,qBAAqB,EAAE,QAAQ,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC;iBAC5D,CAAC,EACF,YAAY,EACZ,iBAAiB,EACjB,WAAW,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;IAEM,MAAM;QACT,OAAO;YACH,2BAA2B,EAAE,IAAI,CAAC,SAAS,EAAE;YAC7C,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACtC,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE;SAC7C,CAAC;IACN,CAAC;IAEM,0BAA0B;QAC7B,OAAO;YACH,2BAA2B,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACxD,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACtC,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE;SAC7C,CAAC;IACN,CAAC;IAEM,WAAW,CAAC,OAAO,GAAG;QACzB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,KAAK;KACjB;QAEG,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAElD,IAAI,2BAA2B,GAAG,EAAE,CAAC;QACrC,KAAK,MAAM,0BAA0B,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACxE,IAAI,kCAAkC,GAAG,0BAA0B,CAAC;YACpE,IAAI,0BAA0B,CAAC,WAAW,IAAI,kCAAkC,CAAC,qBAAqB,EAAE,CAAC;gBACrG,kCAAkC,GAAG,0BAA0B,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACrF,IAAI,OAAO,CAAC,UAAU,IAAI,kCAAkC,CAAC,qBAAqB,EAAE,EAAE,CAAC;oBACnF,2BAA2B,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACzE,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,2BAA2B,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACzE,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,2BAA2B,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,EAAC,2BAA2B,EAAE,aAAa,EAAE,eAAe,EAAC,CAAC,CAAC;IAChG,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC/D,CAAC;IAEM,qBAAqB;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,CAAC,EAAE,0BAA0B,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,KAAK,IAAI,0BAA0B,CAAC,qBAAqB,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,kBAAkB;QACrB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5D,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,OAAO,CAAC,IAAqC;QAChD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACvC,CAAC;IAES,KAAK;QACX,MAAM,2BAA2B,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,2BAA2B,CAAC,MAAM,CAAC;QACxD,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5E,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAES,YAAY;QAClB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;CACJ;AAlSD,8CAkSC"}
|
|
@@ -4,12 +4,49 @@ import { RainMeasure } from './RainMeasure';
|
|
|
4
4
|
import { CartesianTools, LatLng } from '../cartesian';
|
|
5
5
|
import { MergeStrategy } from './MergeStrategy';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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
|
-
|
|
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
|
|
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.
|
|
119
|
-
json['gauges'] = this.
|
|
120
|
-
json['lastCompletedComputations'] = this.
|
|
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) {
|
package/rain/RainNode.js.map
CHANGED
|
@@ -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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"}
|