metar-taf-parser 3.1.2 → 4.0.2
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 +1 -1
- package/{dist/locale → locale}/de.d.ts +0 -0
- package/{dist/locale → locale}/de.js +3 -3
- package/{dist/locale → locale}/en.d.ts +0 -0
- package/{dist/locale → locale}/en.js +3 -3
- package/{dist/locale → locale}/fr.d.ts +0 -0
- package/{dist/locale → locale}/fr.js +3 -3
- package/{dist/locale → locale}/it.d.ts +0 -0
- package/{dist/locale → locale}/it.js +3 -3
- package/{dist/locale → locale}/pl.d.ts +0 -0
- package/{dist/locale → locale}/pl.js +3 -3
- package/{dist/locale → locale}/zh-CN.d.ts +0 -0
- package/{dist/locale → locale}/zh-CN.js +3 -3
- package/metar-taf-parser.d.ts +1325 -0
- package/metar-taf-parser.js +2703 -0
- package/package.json +23 -16
- package/dist/command/common.d.ts +0 -54
- package/dist/command/common.js +0 -243
- package/dist/command/metar/AltimeterCommand.d.ts +0 -7
- package/dist/command/metar/AltimeterCommand.js +0 -26
- package/dist/command/metar/AltimeterMercuryCommand.d.ts +0 -7
- package/dist/command/metar/AltimeterMercuryCommand.js +0 -51
- package/dist/command/metar/RunwayCommand.d.ts +0 -7
- package/dist/command/metar/RunwayCommand.js +0 -60
- package/dist/command/metar/TemperatureCommand.d.ts +0 -7
- package/dist/command/metar/TemperatureCommand.js +0 -51
- package/dist/command/metar.d.ts +0 -9
- package/dist/command/metar.js +0 -31
- package/dist/command/remark/CeilingHeightCommand.d.ts +0 -18
- package/dist/command/remark/CeilingHeightCommand.js +0 -40
- package/dist/command/remark/CeilingSecondLocationCommand.d.ts +0 -12
- package/dist/command/remark/CeilingSecondLocationCommand.js +0 -40
- package/dist/command/remark/Command.d.ts +0 -8
- package/dist/command/remark/Command.js +0 -9
- package/dist/command/remark/DefaultCommand.d.ts +0 -11
- package/dist/command/remark/DefaultCommand.js +0 -38
- package/dist/command/remark/HailSizeCommand.d.ts +0 -11
- package/dist/command/remark/HailSizeCommand.js +0 -38
- package/dist/command/remark/HourlyMaximumMinimumTemperatureCommand.d.ts +0 -18
- package/dist/command/remark/HourlyMaximumMinimumTemperatureCommand.js +0 -39
- package/dist/command/remark/HourlyMaximumTemperatureCommand.d.ts +0 -14
- package/dist/command/remark/HourlyMaximumTemperatureCommand.js +0 -38
- package/dist/command/remark/HourlyMinimumTemperatureCommand.d.ts +0 -14
- package/dist/command/remark/HourlyMinimumTemperatureCommand.js +0 -38
- package/dist/command/remark/HourlyPrecipitationAmountCommand.d.ts +0 -14
- package/dist/command/remark/HourlyPrecipitationAmountCommand.js +0 -38
- package/dist/command/remark/HourlyPressureCommand.d.ts +0 -32
- package/dist/command/remark/HourlyPressureCommand.js +0 -40
- package/dist/command/remark/HourlyTemperatureDewPointCommand.d.ts +0 -18
- package/dist/command/remark/HourlyTemperatureDewPointCommand.js +0 -52
- package/dist/command/remark/IceAccretionCommand.d.ts +0 -15
- package/dist/command/remark/IceAccretionCommand.js +0 -38
- package/dist/command/remark/ObscurationCommand.d.ts +0 -14
- package/dist/command/remark/ObscurationCommand.js +0 -44
- package/dist/command/remark/PrecipitationAmount24HourCommand.d.ts +0 -14
- package/dist/command/remark/PrecipitationAmount24HourCommand.js +0 -39
- package/dist/command/remark/PrecipitationAmount36HourCommand.d.ts +0 -15
- package/dist/command/remark/PrecipitationAmount36HourCommand.js +0 -41
- package/dist/command/remark/PrecipitationBegCommand.d.ts +0 -15
- package/dist/command/remark/PrecipitationBegCommand.js +0 -45
- package/dist/command/remark/PrecipitationBegEndCommand.d.ts +0 -17
- package/dist/command/remark/PrecipitationBegEndCommand.js +0 -46
- package/dist/command/remark/PrecipitationEndCommand.d.ts +0 -15
- package/dist/command/remark/PrecipitationEndCommand.js +0 -45
- package/dist/command/remark/PrevailingVisibilityCommand.d.ts +0 -12
- package/dist/command/remark/PrevailingVisibilityCommand.js +0 -41
- package/dist/command/remark/SeaLevelPressureCommand.d.ts +0 -11
- package/dist/command/remark/SeaLevelPressureCommand.js +0 -39
- package/dist/command/remark/SecondLocationVisibilityCommand.d.ts +0 -12
- package/dist/command/remark/SecondLocationVisibilityCommand.js +0 -41
- package/dist/command/remark/SectorVisibilityCommand.d.ts +0 -13
- package/dist/command/remark/SectorVisibilityCommand.js +0 -42
- package/dist/command/remark/SmallHailSizeCommand.d.ts +0 -11
- package/dist/command/remark/SmallHailSizeCommand.js +0 -38
- package/dist/command/remark/SnowDepthCommand.d.ts +0 -11
- package/dist/command/remark/SnowDepthCommand.js +0 -38
- package/dist/command/remark/SnowIncreaseCommand.d.ts +0 -12
- package/dist/command/remark/SnowIncreaseCommand.js +0 -40
- package/dist/command/remark/SnowPelletsCommand.d.ts +0 -11
- package/dist/command/remark/SnowPelletsCommand.js +0 -37
- package/dist/command/remark/SunshineDurationCommand.d.ts +0 -11
- package/dist/command/remark/SunshineDurationCommand.js +0 -38
- package/dist/command/remark/SurfaceVisibilityCommand.d.ts +0 -11
- package/dist/command/remark/SurfaceVisibilityCommand.js +0 -39
- package/dist/command/remark/ThunderStormLocationCommand.d.ts +0 -12
- package/dist/command/remark/ThunderStormLocationCommand.js +0 -40
- package/dist/command/remark/ThunderStormLocationMovingCommand.d.ts +0 -19
- package/dist/command/remark/ThunderStormLocationMovingCommand.js +0 -42
- package/dist/command/remark/TornadicActivityBegCommand.d.ts +0 -16
- package/dist/command/remark/TornadicActivityBegCommand.js +0 -44
- package/dist/command/remark/TornadicActivityBegEndCommand.d.ts +0 -18
- package/dist/command/remark/TornadicActivityBegEndCommand.js +0 -46
- package/dist/command/remark/TornadicActivityEndCommand.d.ts +0 -16
- package/dist/command/remark/TornadicActivityEndCommand.js +0 -44
- package/dist/command/remark/TowerVisibilityCommand.d.ts +0 -11
- package/dist/command/remark/TowerVisibilityCommand.js +0 -39
- package/dist/command/remark/VariableSkyCommand.d.ts +0 -12
- package/dist/command/remark/VariableSkyCommand.js +0 -41
- package/dist/command/remark/VariableSkyHeightCommand.d.ts +0 -13
- package/dist/command/remark/VariableSkyHeightCommand.js +0 -43
- package/dist/command/remark/VirgaDirectionCommand.d.ts +0 -12
- package/dist/command/remark/VirgaDirectionCommand.js +0 -40
- package/dist/command/remark/WaterEquivalentSnowCommand.d.ts +0 -11
- package/dist/command/remark/WaterEquivalentSnowCommand.js +0 -38
- package/dist/command/remark/WindPeakCommandCommand.d.ts +0 -17
- package/dist/command/remark/WindPeakCommandCommand.js +0 -42
- package/dist/command/remark/WindShiftCommand.d.ts +0 -12
- package/dist/command/remark/WindShiftCommand.js +0 -38
- package/dist/command/remark/WindShiftFropaCommand.d.ts +0 -12
- package/dist/command/remark/WindShiftFropaCommand.js +0 -38
- package/dist/command/remark.d.ts +0 -109
- package/dist/command/remark.js +0 -152
- package/dist/commons/converter.d.ts +0 -21
- package/dist/commons/converter.js +0 -108
- package/dist/commons/errors.d.ts +0 -24
- package/dist/commons/errors.js +0 -46
- package/dist/commons/i18n.d.ts +0 -12
- package/dist/commons/i18n.js +0 -30
- package/dist/dates/metar.d.ts +0 -5
- package/dist/dates/metar.js +0 -8
- package/dist/dates/taf.d.ts +0 -28
- package/dist/dates/taf.js +0 -17
- package/dist/forecast/forecast.d.ts +0 -36
- package/dist/forecast/forecast.js +0 -72
- package/dist/helpers/date.d.ts +0 -11
- package/dist/helpers/date.js +0 -56
- package/dist/helpers/helpers.d.ts +0 -17
- package/dist/helpers/helpers.js +0 -46
- package/dist/index.d.ts +0 -32
- package/dist/index.js +0 -62
- package/dist/model/enum.d.ts +0 -265
- package/dist/model/enum.js +0 -280
- package/dist/model/model.d.ts +0 -188
- package/dist/model/model.js +0 -11
- package/dist/parser/parser.d.ts +0 -111
- package/dist/parser/parser.js +0 -480
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "metar-taf-parser",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Parse METAR and TAF reports",
|
|
5
5
|
"homepage": "https://aeharding.github.io/metar-taf-parser",
|
|
6
6
|
"keywords": [
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"deserialize",
|
|
13
13
|
"decoder"
|
|
14
14
|
],
|
|
15
|
-
"
|
|
16
|
-
"
|
|
15
|
+
"type": "module",
|
|
16
|
+
"main": "metar-taf-parser.js",
|
|
17
17
|
"author": "Alexander Harding <2166114+aeharding@users.noreply.github.com>",
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"repository": {
|
|
@@ -21,10 +21,11 @@
|
|
|
21
21
|
"url": "https://github.com/aeharding/metar-taf-parser.git"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
24
|
+
"clean": "rimraf dist locale metar-taf-parser.*",
|
|
25
|
+
"build": "yarn clean && rollup -c rollup.config.ts && cp -R dist/locale/. locale/ && cp dist/metar-taf-parser.js metar-taf-parser.js && yarn clean:after",
|
|
26
|
+
"clean:after": "rimraf dist",
|
|
27
|
+
"start": "rollup -c rollup.config.ts -w",
|
|
28
|
+
"check-types": "tsc --skipLibCheck --noEmit",
|
|
28
29
|
"check-formatting": "prettier --check '**/*.{js,json,css,md,scss,tsx,ts}'",
|
|
29
30
|
"watch": "watch 'yarn build' src",
|
|
30
31
|
"test": "jest --coverage",
|
|
@@ -32,19 +33,25 @@
|
|
|
32
33
|
"prepublishOnly": "yarn clean && yarn build"
|
|
33
34
|
},
|
|
34
35
|
"files": [
|
|
35
|
-
"
|
|
36
|
-
"
|
|
36
|
+
"locale",
|
|
37
|
+
"metar-taf-parser.*"
|
|
37
38
|
],
|
|
38
39
|
"devDependencies": {
|
|
39
|
-
"@babel/preset-env": "^7.
|
|
40
|
+
"@babel/preset-env": "^7.17.10",
|
|
40
41
|
"@babel/preset-typescript": "^7.16.7",
|
|
41
|
-
"@
|
|
42
|
-
"jest": "^27.5.
|
|
42
|
+
"@rollup/plugin-typescript": "^8.3.2",
|
|
43
|
+
"@types/jest": "^27.5.0",
|
|
44
|
+
"@types/lodash": "^4.14.182",
|
|
45
|
+
"jest": "^28",
|
|
46
|
+
"lodash": "^4.17.21",
|
|
43
47
|
"prettier": "^2.6.2",
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
+
"rollup": "^2.71.1",
|
|
49
|
+
"rollup-plugin-dts": "^4.2.1",
|
|
50
|
+
"ts-jest": "^28.0.1",
|
|
51
|
+
"ts-node": "^10.7.0",
|
|
52
|
+
"tsc-alias": "^1.6.7",
|
|
53
|
+
"tslib": "^2.4.0",
|
|
54
|
+
"typescript": "^4.6.4",
|
|
48
55
|
"watch": "^1.0.2"
|
|
49
56
|
}
|
|
50
57
|
}
|
package/dist/command/common.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { IAbstractWeatherContainer, ICloud, IWind, IWindShear } from "../model/model";
|
|
2
|
-
interface ICommand {
|
|
3
|
-
canParse(str: string): boolean;
|
|
4
|
-
execute(container: IAbstractWeatherContainer, str: string): boolean;
|
|
5
|
-
}
|
|
6
|
-
export declare class CloudCommand implements ICommand {
|
|
7
|
-
#private;
|
|
8
|
-
parse(cloudString: string): ICloud | undefined;
|
|
9
|
-
execute(container: IAbstractWeatherContainer, cloudString: string): boolean;
|
|
10
|
-
canParse(cloudString: string): boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare class MainVisibilityCommand implements ICommand {
|
|
13
|
-
#private;
|
|
14
|
-
canParse(visibilityString: string): boolean;
|
|
15
|
-
execute(container: IAbstractWeatherContainer, visibilityString: string): boolean;
|
|
16
|
-
}
|
|
17
|
-
export declare class WindCommand implements ICommand {
|
|
18
|
-
#private;
|
|
19
|
-
canParse(windString: string): boolean;
|
|
20
|
-
parseWind(windString: string): IWind;
|
|
21
|
-
execute(container: IAbstractWeatherContainer, windString: string): boolean;
|
|
22
|
-
}
|
|
23
|
-
export declare class WindVariationCommand implements ICommand {
|
|
24
|
-
#private;
|
|
25
|
-
canParse(windString: string): boolean;
|
|
26
|
-
parseWindVariation(wind: IWind, windString: string): void;
|
|
27
|
-
execute(container: IAbstractWeatherContainer, windString: string): boolean;
|
|
28
|
-
}
|
|
29
|
-
export declare class WindShearCommand implements ICommand {
|
|
30
|
-
#private;
|
|
31
|
-
canParse(windString: string): boolean;
|
|
32
|
-
parseWindShear(windString: string): IWindShear;
|
|
33
|
-
execute(container: IAbstractWeatherContainer, windString: string): boolean;
|
|
34
|
-
}
|
|
35
|
-
export declare class VerticalVisibilityCommand implements ICommand {
|
|
36
|
-
#private;
|
|
37
|
-
execute(container: IAbstractWeatherContainer, visibilityString: string): boolean;
|
|
38
|
-
canParse(windString: string): boolean;
|
|
39
|
-
}
|
|
40
|
-
export declare class MinimalVisibilityCommand implements ICommand {
|
|
41
|
-
#private;
|
|
42
|
-
execute(container: IAbstractWeatherContainer, visibilityString: string): boolean;
|
|
43
|
-
canParse(windString: string): boolean;
|
|
44
|
-
}
|
|
45
|
-
export declare class MainVisibilityNauticalMilesCommand implements ICommand {
|
|
46
|
-
#private;
|
|
47
|
-
execute(container: IAbstractWeatherContainer, visibilityString: string): boolean;
|
|
48
|
-
canParse(windString: string): boolean;
|
|
49
|
-
}
|
|
50
|
-
export declare class CommandSupplier {
|
|
51
|
-
#private;
|
|
52
|
-
get(input: string): ICommand | undefined;
|
|
53
|
-
}
|
|
54
|
-
export {};
|
package/dist/command/common.js
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
26
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
27
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
28
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
29
|
-
};
|
|
30
|
-
var _CloudCommand_cloudRegex, _MainVisibilityCommand_regex, _WindCommand_regex, _WindVariationCommand_regex, _WindShearCommand_regex, _VerticalVisibilityCommand_regex, _MinimalVisibilityCommand_regex, _MainVisibilityNauticalMilesCommand_regex, _CommandSupplier_commands;
|
|
31
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.CommandSupplier = exports.MainVisibilityNauticalMilesCommand = exports.MinimalVisibilityCommand = exports.VerticalVisibilityCommand = exports.WindShearCommand = exports.WindVariationCommand = exports.WindCommand = exports.MainVisibilityCommand = exports.CloudCommand = void 0;
|
|
33
|
-
const converter = __importStar(require("../commons/converter"));
|
|
34
|
-
const enum_1 = require("../model/enum");
|
|
35
|
-
const errors_1 = require("../commons/errors");
|
|
36
|
-
/**
|
|
37
|
-
* This function creates a wind element.
|
|
38
|
-
* @param wind The wind object
|
|
39
|
-
* @param direction The direction in degrees
|
|
40
|
-
* @param speed The speed
|
|
41
|
-
* @param gust The speed of the gust.
|
|
42
|
-
* @param unit The speed unit
|
|
43
|
-
*/
|
|
44
|
-
function makeWind(direction, speed, gust, unit) {
|
|
45
|
-
return {
|
|
46
|
-
speed: +speed,
|
|
47
|
-
direction: converter.degreesToCardinal(direction),
|
|
48
|
-
degrees: direction !== "VRB" ? +direction : undefined,
|
|
49
|
-
gust: gust ? +gust : undefined,
|
|
50
|
-
unit: unit || "KT",
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
class CloudCommand {
|
|
54
|
-
constructor() {
|
|
55
|
-
_CloudCommand_cloudRegex.set(this, /^([A-Z]{3})(\d{3})?([A-Z]{2,3})?$/);
|
|
56
|
-
}
|
|
57
|
-
parse(cloudString) {
|
|
58
|
-
const m = cloudString.match(__classPrivateFieldGet(this, _CloudCommand_cloudRegex, "f"));
|
|
59
|
-
if (!m)
|
|
60
|
-
return;
|
|
61
|
-
const quantity = enum_1.CloudQuantity[m[1]];
|
|
62
|
-
const height = 100 * +m[2] || undefined;
|
|
63
|
-
const type = enum_1.CloudType[m[3]];
|
|
64
|
-
if (!quantity)
|
|
65
|
-
return;
|
|
66
|
-
return { quantity, height, type };
|
|
67
|
-
}
|
|
68
|
-
execute(container, cloudString) {
|
|
69
|
-
const cloud = this.parse(cloudString);
|
|
70
|
-
if (cloud) {
|
|
71
|
-
container.clouds.push(cloud);
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
canParse(cloudString) {
|
|
77
|
-
return __classPrivateFieldGet(this, _CloudCommand_cloudRegex, "f").test(cloudString);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.CloudCommand = CloudCommand;
|
|
81
|
-
_CloudCommand_cloudRegex = new WeakMap();
|
|
82
|
-
class MainVisibilityCommand {
|
|
83
|
-
constructor() {
|
|
84
|
-
_MainVisibilityCommand_regex.set(this, /^(\d{4})(|NDV)$/);
|
|
85
|
-
}
|
|
86
|
-
canParse(visibilityString) {
|
|
87
|
-
return __classPrivateFieldGet(this, _MainVisibilityCommand_regex, "f").test(visibilityString);
|
|
88
|
-
}
|
|
89
|
-
execute(container, visibilityString) {
|
|
90
|
-
const matches = visibilityString.match(__classPrivateFieldGet(this, _MainVisibilityCommand_regex, "f"));
|
|
91
|
-
if (!matches)
|
|
92
|
-
return false;
|
|
93
|
-
const distance = converter.convertVisibility(matches[1]);
|
|
94
|
-
if (!container.visibility)
|
|
95
|
-
container.visibility = distance;
|
|
96
|
-
container.visibility = Object.assign(Object.assign({}, container.visibility), distance);
|
|
97
|
-
if (matches[2] === "NDV")
|
|
98
|
-
container.visibility.ndv = true;
|
|
99
|
-
return true;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
exports.MainVisibilityCommand = MainVisibilityCommand;
|
|
103
|
-
_MainVisibilityCommand_regex = new WeakMap();
|
|
104
|
-
class WindCommand {
|
|
105
|
-
constructor() {
|
|
106
|
-
_WindCommand_regex.set(this, /^(VRB|\d{3})(\d{2})G?(\d{2})?(KT|MPS|KM\/H)?/);
|
|
107
|
-
}
|
|
108
|
-
canParse(windString) {
|
|
109
|
-
return __classPrivateFieldGet(this, _WindCommand_regex, "f").test(windString);
|
|
110
|
-
}
|
|
111
|
-
parseWind(windString) {
|
|
112
|
-
const matches = windString.match(__classPrivateFieldGet(this, _WindCommand_regex, "f"));
|
|
113
|
-
if (!matches)
|
|
114
|
-
throw new errors_1.UnexpectedParseError("Wind should be defined");
|
|
115
|
-
return makeWind(matches[1], matches[2], matches[3], matches[4]);
|
|
116
|
-
}
|
|
117
|
-
execute(container, windString) {
|
|
118
|
-
const wind = this.parseWind(windString);
|
|
119
|
-
container.wind = wind;
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
exports.WindCommand = WindCommand;
|
|
124
|
-
_WindCommand_regex = new WeakMap();
|
|
125
|
-
class WindVariationCommand {
|
|
126
|
-
constructor() {
|
|
127
|
-
_WindVariationCommand_regex.set(this, /^(\d{3})V(\d{3})/);
|
|
128
|
-
}
|
|
129
|
-
canParse(windString) {
|
|
130
|
-
return __classPrivateFieldGet(this, _WindVariationCommand_regex, "f").test(windString);
|
|
131
|
-
}
|
|
132
|
-
parseWindVariation(wind, windString) {
|
|
133
|
-
const matches = windString.match(__classPrivateFieldGet(this, _WindVariationCommand_regex, "f"));
|
|
134
|
-
if (!matches)
|
|
135
|
-
throw new errors_1.UnexpectedParseError("Wind should be defined");
|
|
136
|
-
wind.minVariation = +matches[1];
|
|
137
|
-
wind.maxVariation = +matches[2];
|
|
138
|
-
}
|
|
139
|
-
execute(container, windString) {
|
|
140
|
-
if (!container.wind)
|
|
141
|
-
throw new errors_1.UnexpectedParseError();
|
|
142
|
-
this.parseWindVariation(container.wind, windString);
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
exports.WindVariationCommand = WindVariationCommand;
|
|
147
|
-
_WindVariationCommand_regex = new WeakMap();
|
|
148
|
-
class WindShearCommand {
|
|
149
|
-
constructor() {
|
|
150
|
-
_WindShearCommand_regex.set(this, /^WS(\d{3})\/(\w{3})(\d{2})G?(\d{2})?(KT|MPS|KM\/H)/);
|
|
151
|
-
}
|
|
152
|
-
canParse(windString) {
|
|
153
|
-
return __classPrivateFieldGet(this, _WindShearCommand_regex, "f").test(windString);
|
|
154
|
-
}
|
|
155
|
-
parseWindShear(windString) {
|
|
156
|
-
const matches = windString.match(__classPrivateFieldGet(this, _WindShearCommand_regex, "f"));
|
|
157
|
-
if (!matches)
|
|
158
|
-
throw new errors_1.UnexpectedParseError("Wind shear should be defined");
|
|
159
|
-
return Object.assign(Object.assign({}, makeWind(matches[2], matches[3], matches[4], matches[5])), { height: 100 * +matches[1] });
|
|
160
|
-
}
|
|
161
|
-
execute(container, windString) {
|
|
162
|
-
container.windShear = this.parseWindShear(windString);
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
exports.WindShearCommand = WindShearCommand;
|
|
167
|
-
_WindShearCommand_regex = new WeakMap();
|
|
168
|
-
class VerticalVisibilityCommand {
|
|
169
|
-
constructor() {
|
|
170
|
-
_VerticalVisibilityCommand_regex.set(this, /^VV(\d{3})$/);
|
|
171
|
-
}
|
|
172
|
-
execute(container, visibilityString) {
|
|
173
|
-
const matches = visibilityString.match(__classPrivateFieldGet(this, _VerticalVisibilityCommand_regex, "f"));
|
|
174
|
-
if (!matches)
|
|
175
|
-
throw new errors_1.UnexpectedParseError("Vertical visibility should be defined");
|
|
176
|
-
container.verticalVisibility = 100 * +matches[1];
|
|
177
|
-
return true;
|
|
178
|
-
}
|
|
179
|
-
canParse(windString) {
|
|
180
|
-
return __classPrivateFieldGet(this, _VerticalVisibilityCommand_regex, "f").test(windString);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
exports.VerticalVisibilityCommand = VerticalVisibilityCommand;
|
|
184
|
-
_VerticalVisibilityCommand_regex = new WeakMap();
|
|
185
|
-
class MinimalVisibilityCommand {
|
|
186
|
-
constructor() {
|
|
187
|
-
_MinimalVisibilityCommand_regex.set(this, /^(\d{4}[a-zA-Z]{1,2})$/);
|
|
188
|
-
}
|
|
189
|
-
execute(container, visibilityString) {
|
|
190
|
-
const matches = visibilityString.match(__classPrivateFieldGet(this, _MinimalVisibilityCommand_regex, "f"));
|
|
191
|
-
if (!matches)
|
|
192
|
-
throw new errors_1.UnexpectedParseError("Vertical visibility should be defined");
|
|
193
|
-
if (!container.visibility)
|
|
194
|
-
throw new errors_1.UnexpectedParseError("container.visibility not instantiated");
|
|
195
|
-
container.visibility.min = {
|
|
196
|
-
value: +matches[1].slice(0, 4),
|
|
197
|
-
direction: matches[1].slice(4),
|
|
198
|
-
};
|
|
199
|
-
return true;
|
|
200
|
-
}
|
|
201
|
-
canParse(windString) {
|
|
202
|
-
return __classPrivateFieldGet(this, _MinimalVisibilityCommand_regex, "f").test(windString);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
exports.MinimalVisibilityCommand = MinimalVisibilityCommand;
|
|
206
|
-
_MinimalVisibilityCommand_regex = new WeakMap();
|
|
207
|
-
class MainVisibilityNauticalMilesCommand {
|
|
208
|
-
constructor() {
|
|
209
|
-
_MainVisibilityNauticalMilesCommand_regex.set(this, /^(P|M)?(\d)*(\s)?((\d\/\d)?SM)$/);
|
|
210
|
-
}
|
|
211
|
-
execute(container, visibilityString) {
|
|
212
|
-
const distance = converter.convertNauticalMilesVisibility(visibilityString);
|
|
213
|
-
container.visibility = distance;
|
|
214
|
-
return true;
|
|
215
|
-
}
|
|
216
|
-
canParse(windString) {
|
|
217
|
-
return __classPrivateFieldGet(this, _MainVisibilityNauticalMilesCommand_regex, "f").test(windString);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
exports.MainVisibilityNauticalMilesCommand = MainVisibilityNauticalMilesCommand;
|
|
221
|
-
_MainVisibilityNauticalMilesCommand_regex = new WeakMap();
|
|
222
|
-
class CommandSupplier {
|
|
223
|
-
constructor() {
|
|
224
|
-
_CommandSupplier_commands.set(this, [
|
|
225
|
-
new WindShearCommand(),
|
|
226
|
-
new WindCommand(),
|
|
227
|
-
new WindVariationCommand(),
|
|
228
|
-
new MainVisibilityCommand(),
|
|
229
|
-
new MainVisibilityNauticalMilesCommand(),
|
|
230
|
-
new MinimalVisibilityCommand(),
|
|
231
|
-
new VerticalVisibilityCommand(),
|
|
232
|
-
new CloudCommand(),
|
|
233
|
-
]);
|
|
234
|
-
}
|
|
235
|
-
get(input) {
|
|
236
|
-
for (const command of __classPrivateFieldGet(this, _CommandSupplier_commands, "f")) {
|
|
237
|
-
if (command.canParse(input))
|
|
238
|
-
return command;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
exports.CommandSupplier = CommandSupplier;
|
|
243
|
-
_CommandSupplier_commands = new WeakMap();
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var _AltimeterCommand_regex;
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.AltimeterCommand = void 0;
|
|
10
|
-
const errors_1 = require("../../commons/errors");
|
|
11
|
-
class AltimeterCommand {
|
|
12
|
-
constructor() {
|
|
13
|
-
_AltimeterCommand_regex.set(this, /^Q(\d{4})$/);
|
|
14
|
-
}
|
|
15
|
-
canParse(input) {
|
|
16
|
-
return __classPrivateFieldGet(this, _AltimeterCommand_regex, "f").test(input);
|
|
17
|
-
}
|
|
18
|
-
execute(metar, input) {
|
|
19
|
-
const matches = input.match(__classPrivateFieldGet(this, _AltimeterCommand_regex, "f"));
|
|
20
|
-
if (!matches)
|
|
21
|
-
throw new errors_1.UnexpectedParseError("Match not found");
|
|
22
|
-
metar.altimeter = Math.trunc(+matches[1]);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.AltimeterCommand = AltimeterCommand;
|
|
26
|
-
_AltimeterCommand_regex = new WeakMap();
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
26
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
27
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
28
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
29
|
-
};
|
|
30
|
-
var _AltimeterMercuryCommand_regex;
|
|
31
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.AltimeterMercuryCommand = void 0;
|
|
33
|
-
const converter = __importStar(require("../../commons/converter"));
|
|
34
|
-
const errors_1 = require("../../commons/errors");
|
|
35
|
-
class AltimeterMercuryCommand {
|
|
36
|
-
constructor() {
|
|
37
|
-
_AltimeterMercuryCommand_regex.set(this, /^A(\d{4})$/);
|
|
38
|
-
}
|
|
39
|
-
canParse(input) {
|
|
40
|
-
return __classPrivateFieldGet(this, _AltimeterMercuryCommand_regex, "f").test(input);
|
|
41
|
-
}
|
|
42
|
-
execute(metar, input) {
|
|
43
|
-
const matches = input.match(__classPrivateFieldGet(this, _AltimeterMercuryCommand_regex, "f"));
|
|
44
|
-
if (!matches)
|
|
45
|
-
throw new errors_1.UnexpectedParseError("Match not found");
|
|
46
|
-
const mercury = +matches[1] / 100;
|
|
47
|
-
metar.altimeter = Math.trunc(converter.convertInchesMercuryToPascal(mercury));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.AltimeterMercuryCommand = AltimeterMercuryCommand;
|
|
51
|
-
_AltimeterMercuryCommand_regex = new WeakMap();
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var _RunwayCommand_genericRegex, _RunwayCommand_runwayMaxRangeRegex, _RunwayCommand_runwayRegex;
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.RunwayCommand = void 0;
|
|
10
|
-
const errors_1 = require("../../commons/errors");
|
|
11
|
-
const helpers_1 = require("../../helpers/helpers");
|
|
12
|
-
const enum_1 = require("../../model/enum");
|
|
13
|
-
class RunwayCommand {
|
|
14
|
-
constructor() {
|
|
15
|
-
_RunwayCommand_genericRegex.set(this, /^(R\d{2}\w?\/)/);
|
|
16
|
-
_RunwayCommand_runwayMaxRangeRegex.set(this, /^R(\d{2}\w?)\/(\d{4})V(\d{3,4})([UDN])?(FT)?/);
|
|
17
|
-
_RunwayCommand_runwayRegex.set(this, /^R(\d{2}\w?)\/([MP])?(\d{4})([UDN])?(FT)?$/);
|
|
18
|
-
}
|
|
19
|
-
canParse(input) {
|
|
20
|
-
return __classPrivateFieldGet(this, _RunwayCommand_genericRegex, "f").test(input);
|
|
21
|
-
}
|
|
22
|
-
execute(metar, input) {
|
|
23
|
-
// TODO idk if this matches super well...
|
|
24
|
-
if (__classPrivateFieldGet(this, _RunwayCommand_runwayRegex, "f").test(input)) {
|
|
25
|
-
const matches = input.match(__classPrivateFieldGet(this, _RunwayCommand_runwayRegex, "f"));
|
|
26
|
-
if (!matches)
|
|
27
|
-
throw new errors_1.UnexpectedParseError("Should be able to parse");
|
|
28
|
-
const indicator = matches[2] ? (0, helpers_1.as)(matches[2], enum_1.ValueIndicator) : undefined;
|
|
29
|
-
const trend = matches[4] ? (0, helpers_1.as)(matches[4], enum_1.RunwayInfoTrend) : undefined;
|
|
30
|
-
const unit = matches[5]
|
|
31
|
-
? (0, helpers_1.as)(matches[5], enum_1.RunwayInfoUnit)
|
|
32
|
-
: enum_1.RunwayInfoUnit.Meters;
|
|
33
|
-
metar.runwaysInfo.push({
|
|
34
|
-
name: matches[1],
|
|
35
|
-
indicator,
|
|
36
|
-
minRange: +matches[3],
|
|
37
|
-
trend,
|
|
38
|
-
unit,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
else if (__classPrivateFieldGet(this, _RunwayCommand_runwayMaxRangeRegex, "f").test(input)) {
|
|
42
|
-
const matches = input.match(__classPrivateFieldGet(this, _RunwayCommand_runwayMaxRangeRegex, "f"));
|
|
43
|
-
if (!matches)
|
|
44
|
-
throw new errors_1.UnexpectedParseError("Should be able to parse");
|
|
45
|
-
const trend = matches[4] ? (0, helpers_1.as)(matches[4], enum_1.RunwayInfoTrend) : undefined;
|
|
46
|
-
const unit = matches[5]
|
|
47
|
-
? (0, helpers_1.as)(matches[5], enum_1.RunwayInfoUnit)
|
|
48
|
-
: enum_1.RunwayInfoUnit.Meters;
|
|
49
|
-
metar.runwaysInfo.push({
|
|
50
|
-
name: matches[1],
|
|
51
|
-
minRange: +matches[2],
|
|
52
|
-
maxRange: +matches[3],
|
|
53
|
-
trend,
|
|
54
|
-
unit,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.RunwayCommand = RunwayCommand;
|
|
60
|
-
_RunwayCommand_genericRegex = new WeakMap(), _RunwayCommand_runwayMaxRangeRegex = new WeakMap(), _RunwayCommand_runwayRegex = new WeakMap();
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
26
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
27
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
28
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
29
|
-
};
|
|
30
|
-
var _TemperatureCommand_regex;
|
|
31
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.TemperatureCommand = void 0;
|
|
33
|
-
const converter = __importStar(require("../../commons/converter"));
|
|
34
|
-
const errors_1 = require("../../commons/errors");
|
|
35
|
-
class TemperatureCommand {
|
|
36
|
-
constructor() {
|
|
37
|
-
_TemperatureCommand_regex.set(this, /^(M?\d{2})\/(M?\d{2})$/);
|
|
38
|
-
}
|
|
39
|
-
canParse(input) {
|
|
40
|
-
return __classPrivateFieldGet(this, _TemperatureCommand_regex, "f").test(input);
|
|
41
|
-
}
|
|
42
|
-
execute(metar, input) {
|
|
43
|
-
const matches = input.match(__classPrivateFieldGet(this, _TemperatureCommand_regex, "f"));
|
|
44
|
-
if (!matches)
|
|
45
|
-
throw new errors_1.UnexpectedParseError("Match not found");
|
|
46
|
-
metar.temperature = converter.convertTemperature(matches[1]);
|
|
47
|
-
metar.dewPoint = converter.convertTemperature(matches[2]);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.TemperatureCommand = TemperatureCommand;
|
|
51
|
-
_TemperatureCommand_regex = new WeakMap();
|
package/dist/command/metar.d.ts
DELETED
package/dist/command/metar.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var _CommandSupplier_commands;
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.CommandSupplier = void 0;
|
|
10
|
-
const AltimeterCommand_1 = require("./metar/AltimeterCommand");
|
|
11
|
-
const AltimeterMercuryCommand_1 = require("./metar/AltimeterMercuryCommand");
|
|
12
|
-
const RunwayCommand_1 = require("./metar/RunwayCommand");
|
|
13
|
-
const TemperatureCommand_1 = require("./metar/TemperatureCommand");
|
|
14
|
-
class CommandSupplier {
|
|
15
|
-
constructor() {
|
|
16
|
-
_CommandSupplier_commands.set(this, [
|
|
17
|
-
new RunwayCommand_1.RunwayCommand(),
|
|
18
|
-
new TemperatureCommand_1.TemperatureCommand(),
|
|
19
|
-
new AltimeterCommand_1.AltimeterCommand(),
|
|
20
|
-
new AltimeterMercuryCommand_1.AltimeterMercuryCommand(),
|
|
21
|
-
]);
|
|
22
|
-
}
|
|
23
|
-
get(input) {
|
|
24
|
-
for (const command of __classPrivateFieldGet(this, _CommandSupplier_commands, "f")) {
|
|
25
|
-
if (command.canParse(input))
|
|
26
|
-
return command;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
exports.CommandSupplier = CommandSupplier;
|
|
31
|
-
_CommandSupplier_commands = new WeakMap();
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { IBaseRemark, RemarkType, Remark } from "../remark";
|
|
2
|
-
import { Command } from "./Command";
|
|
3
|
-
export interface ICeilingHeightRemark extends IBaseRemark {
|
|
4
|
-
type: RemarkType.CeilingHeight;
|
|
5
|
-
/**
|
|
6
|
-
* Ceiling min height (varying between min and max) above ground level
|
|
7
|
-
*/
|
|
8
|
-
min: number;
|
|
9
|
-
/**
|
|
10
|
-
* Ceiling max height (varying between min and max) above ground level
|
|
11
|
-
*/
|
|
12
|
-
max: number;
|
|
13
|
-
}
|
|
14
|
-
export declare class CeilingHeightCommand extends Command {
|
|
15
|
-
#private;
|
|
16
|
-
canParse(code: string): boolean;
|
|
17
|
-
execute(code: string, remark: Remark[]): [string, Remark[]];
|
|
18
|
-
}
|