@dmdata/telegram-json-types 1.0.6 → 1.0.9-jschema.1
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/LICENSE +21 -0
- package/README.md +55 -0
- package/dist/build.d.ts +1 -0
- package/dist/build.js +63 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +6 -0
- package/dist/jschema/earthquake-information_1.0.0.json +1 -0
- package/dist/jschema/earthquake-information_1.1.0.json +1 -0
- package/dist/jschema/eew-information_1.0.0.json +1 -0
- package/dist/jschema/tsunami-information_1.0.0.json +1 -0
- package/dist/jschema/weather-typhoon_1.0.0.json +1 -0
- package/dist/jschema-load.d.ts +1 -0
- package/dist/jschema-load.js +44 -0
- package/index.d.ts +2 -1
- package/package.json +21 -11
- package/types/{schema/component → component}/coordinate.d.ts +15 -15
- package/types/{schema/component → component}/earthquake.d.ts +56 -56
- package/types/{schema/component → component}/unit-value.d.ts +0 -0
- package/types/index.d.ts +11 -2
- package/types/schema/earthquake-information/1.0.0.d.ts +135 -0
- package/types/schema/{earthquake-information.d.ts → earthquake-information/1.1.0.d.ts} +179 -177
- package/types/schema/earthquake-information/index.d.ts +11 -0
- package/types/schema/eew-information/1.0.0.d.ts +167 -0
- package/types/schema/eew-information/index.d.ts +9 -0
- package/types/schema/tsunami-information/1.0.0.d.ts +230 -0
- package/types/schema/tsunami-information/index.d.ts +9 -0
- package/types/schema/{weather-typhoon.d.ts → weather-typhoon/1.0.0.d.ts} +122 -117
- package/types/schema/weather-typhoon/index.d.ts +9 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { TelegramJSONMain } from '../../main';
|
|
2
|
+
import { Coordinate } from '../../component/coordinate';
|
|
3
|
+
import { UnitValueNotNull } from '../../component/unit-value';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export namespace EewInformation {
|
|
7
|
+
export interface Schema {
|
|
8
|
+
type: 'eew-information';
|
|
9
|
+
version: '1.0.0';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type IntensityClass = '0' | '1' | '2' | '3' | '4' | '5-' | '5+' | '6-' | '6+' | '7';
|
|
13
|
+
export type LpgmIntensityClass = '0' | '1' | '2' | '3' | '4';
|
|
14
|
+
|
|
15
|
+
export interface WarningAreaKind {
|
|
16
|
+
code: string;
|
|
17
|
+
name: string;
|
|
18
|
+
lastKind: {
|
|
19
|
+
code: string;
|
|
20
|
+
name: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface WarningArea {
|
|
25
|
+
code: string;
|
|
26
|
+
name: string;
|
|
27
|
+
kind: WarningAreaKind;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface EarthquakeHypocenterReduce {
|
|
31
|
+
code: string;
|
|
32
|
+
name: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface EarthquakeHypocenterAccuracy {
|
|
36
|
+
epicenters: [
|
|
37
|
+
'0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8',
|
|
38
|
+
'0' | '1' | '2' | '3' | '4' | '9'
|
|
39
|
+
];
|
|
40
|
+
depth: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8';
|
|
41
|
+
magnitudeCalculation: '0' | '2' | '3' | '4' | '5' | '6' | '8';
|
|
42
|
+
numberOfMagnitudeCalculation: '0' | '1' | '2' | '3' | '4' | '5';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface EarthquakeHypocenter {
|
|
46
|
+
code: string;
|
|
47
|
+
name: string;
|
|
48
|
+
coordinate: Coordinate<'日本測地系'>;
|
|
49
|
+
depth: UnitValueNotNull<'深さ', 'km'>;
|
|
50
|
+
reduce: EarthquakeHypocenterReduce;
|
|
51
|
+
landOrSea?: '内陸' | '海域';
|
|
52
|
+
accuracy: EarthquakeHypocenterAccuracy;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface EarthquakeMagnitude {
|
|
56
|
+
type: 'マグニチュード';
|
|
57
|
+
unit: 'Mj' | 'M';
|
|
58
|
+
value: string | null;
|
|
59
|
+
condition?: 'M不明';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface Earthquake {
|
|
63
|
+
originTime?: string;
|
|
64
|
+
arrivalTime: string;
|
|
65
|
+
condition?: '仮定震源要素';
|
|
66
|
+
hypocenter: EarthquakeHypocenter;
|
|
67
|
+
magnitude: EarthquakeMagnitude;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface IntensityForecastMaxInt {
|
|
71
|
+
from: IntensityClass | '不明';
|
|
72
|
+
to: IntensityClass | 'over' | '不明';
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface IntensityForecastLpgmMaxInt {
|
|
76
|
+
from: LpgmIntensityClass | '不明';
|
|
77
|
+
to: LpgmIntensityClass | 'over' | '不明';
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface IntensityAppendix {
|
|
81
|
+
maxIntChange: '0' | '1' | '2';
|
|
82
|
+
maxLpgmIntChange?: '0' | '1' | '2';
|
|
83
|
+
maxIntChangeReason: '0' | '1' | '2' | '3' | '4' | '9';
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface IntensityRegion {
|
|
87
|
+
code: string;
|
|
88
|
+
name: string;
|
|
89
|
+
forecastMaxInt: IntensityForecastMaxInt;
|
|
90
|
+
forecastLpgmMaxInt?: IntensityForecastLpgmMaxInt;
|
|
91
|
+
kind: WarningAreaKind;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
export interface Intensity {
|
|
96
|
+
forecastMaxInt: IntensityForecastMaxInt;
|
|
97
|
+
forecastLpgmMaxInt?: IntensityForecastLpgmMaxInt;
|
|
98
|
+
appendix?: IntensityAppendix;
|
|
99
|
+
regions: IntensityRegion[];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
export type Comment = {
|
|
104
|
+
free?: string;
|
|
105
|
+
warning?: {
|
|
106
|
+
text: string;
|
|
107
|
+
codes: string[];
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export interface PublicCommonBody {
|
|
112
|
+
isLastInfo: boolean;
|
|
113
|
+
zones?: WarningArea[];
|
|
114
|
+
prefectures?: WarningArea[];
|
|
115
|
+
regions?: WarningArea[];
|
|
116
|
+
earthquake: Earthquake;
|
|
117
|
+
intensity?: Intensity;
|
|
118
|
+
text?: string;
|
|
119
|
+
comments: Comment;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export interface PublicTesting {
|
|
123
|
+
isLastInfo: false;
|
|
124
|
+
text: string;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface ChancelBody {
|
|
128
|
+
isLastInfo: true;
|
|
129
|
+
text: string;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface PublicCommon extends TelegramJSONMain {
|
|
133
|
+
_schema: Schema;
|
|
134
|
+
type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)';
|
|
135
|
+
title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)';
|
|
136
|
+
infoKind: '緊急地震速報';
|
|
137
|
+
eventId: string;
|
|
138
|
+
serialNo: string;
|
|
139
|
+
infoType: '発表' | '訂正';
|
|
140
|
+
body: PublicCommonBody;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export interface PublicTesting extends TelegramJSONMain {
|
|
144
|
+
_schema: Schema;
|
|
145
|
+
type: '緊急地震速報テスト';
|
|
146
|
+
title: '緊急地震速報テスト';
|
|
147
|
+
infoKind: '緊急地震速報';
|
|
148
|
+
eventId: string;
|
|
149
|
+
serialNo: string;
|
|
150
|
+
infoType: '発表' | '訂正';
|
|
151
|
+
body: PublicTesting;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export interface Channel extends TelegramJSONMain {
|
|
155
|
+
_schema: Schema;
|
|
156
|
+
type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | '緊急地震速報テスト';
|
|
157
|
+
title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | '緊急地震速報テスト';
|
|
158
|
+
infoKind: '緊急地震速報';
|
|
159
|
+
eventId: string;
|
|
160
|
+
serialNo: string;
|
|
161
|
+
infoType: '取消';
|
|
162
|
+
body: ChancelBody;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export type Main = PublicCommon | PublicTesting | Channel;
|
|
166
|
+
|
|
167
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { Earthquake } from '../../component/earthquake';
|
|
2
|
+
import { TelegramJSONMain } from '../../main';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
export namespace TsunamiInformation {
|
|
6
|
+
export interface Schema {
|
|
7
|
+
type: 'tsunami-information';
|
|
8
|
+
version: '1.0.0';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface TsunamiForecastKind {
|
|
12
|
+
code: string;
|
|
13
|
+
name: string;
|
|
14
|
+
lastKind: {
|
|
15
|
+
code: string;
|
|
16
|
+
name: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface TsunamiForecastFirstHeight {
|
|
21
|
+
arrivalTime?: string;
|
|
22
|
+
condition?: '津波到達中と推測' | '第1波の到達を確認' | 'ただちに津波来襲と予測';
|
|
23
|
+
revise?: '追加' | '更新';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface TsunamiForecastMaxHeightValue {
|
|
27
|
+
type: '津波の高さ';
|
|
28
|
+
unit: 'm';
|
|
29
|
+
value: string | null;
|
|
30
|
+
over?: true;
|
|
31
|
+
condition?: '巨大' | '高い';
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface TsunamiForecastMaxHeight {
|
|
35
|
+
height: TsunamiForecastMaxHeightValue;
|
|
36
|
+
condition?: '重要';
|
|
37
|
+
revise?: '追加' | '更新';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface TsunamiForecastStation {
|
|
41
|
+
code: string;
|
|
42
|
+
name: string;
|
|
43
|
+
highTideDateTime: string;
|
|
44
|
+
firstHeight: TsunamiForecastFirstHeight;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface TsunamiForecast {
|
|
48
|
+
code: string;
|
|
49
|
+
name: string;
|
|
50
|
+
kind: TsunamiForecastKind;
|
|
51
|
+
firstHeight: TsunamiForecastFirstHeight;
|
|
52
|
+
maxHeight: TsunamiForecastMaxHeight;
|
|
53
|
+
stations?: TsunamiForecastStation[] | never;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface TsunamiForecastVXSE41 extends TsunamiForecast {
|
|
57
|
+
stations: never;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface TsunamiForecastVXSE51 extends TsunamiForecast {
|
|
61
|
+
stations?: TsunamiForecastStation[];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface TsunamiObservationStationFirstHeight {
|
|
65
|
+
arrivalTime: string;
|
|
66
|
+
initial?: '押し' | '引き';
|
|
67
|
+
condition?: '第1波識別不能';
|
|
68
|
+
revise?: '追加' | '更新';
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface TsunamiObservationStationMaxHeightValue {
|
|
72
|
+
type: 'これまでの最大波の高さ';
|
|
73
|
+
unit: 'm';
|
|
74
|
+
value: string | null;
|
|
75
|
+
over?: true;
|
|
76
|
+
condition?: '上昇中';
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface TsunamiObservationStationMaxHeight {
|
|
80
|
+
dateTime?: string;
|
|
81
|
+
height?: TsunamiObservationStationMaxHeightValue;
|
|
82
|
+
condition?: '微弱' | '観測中' | '重要';
|
|
83
|
+
revise?: '追加' | '更新';
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface TsunamiObservationStation {
|
|
87
|
+
code: string;
|
|
88
|
+
name: string;
|
|
89
|
+
sensor?: string;
|
|
90
|
+
firstHeight: TsunamiObservationStationFirstHeight;
|
|
91
|
+
maxHeight: TsunamiObservationStationMaxHeight;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface TsunamiObservation {
|
|
95
|
+
code: string | null;
|
|
96
|
+
name: string | null;
|
|
97
|
+
stations: TsunamiObservationStation[];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface TsunamiObservationVXSE51 extends TsunamiObservation {
|
|
101
|
+
code: string;
|
|
102
|
+
name: string;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface TsunamiObservationVXSE52 extends TsunamiObservation {
|
|
106
|
+
code: null;
|
|
107
|
+
name: null;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export interface TsunamiEstimationFirstHeight {
|
|
111
|
+
arrivalTime: string;
|
|
112
|
+
condition?: '早いところでは既に津波到達と推定';
|
|
113
|
+
revise?: '追加' | '更新';
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface TsunamiEstimationMaxHeightValue {
|
|
117
|
+
type: '津波の高さ';
|
|
118
|
+
unit: 'm';
|
|
119
|
+
value: string | null;
|
|
120
|
+
over?: true;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface TsunamiEstimationMaxHeight {
|
|
124
|
+
dateTime?: string;
|
|
125
|
+
height?: TsunamiEstimationMaxHeightValue;
|
|
126
|
+
condition?: '微弱' | '観測中' | '重要';
|
|
127
|
+
revise?: '追加' | '更新';
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface TsunamiEstimation {
|
|
131
|
+
code: string;
|
|
132
|
+
name: string;
|
|
133
|
+
firstHeight: TsunamiEstimationFirstHeight;
|
|
134
|
+
maxHeight: TsunamiEstimationMaxHeight;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export interface PublicBodyVTSE41Tsunami {
|
|
138
|
+
forecasts: TsunamiForecastVXSE41[];
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface PublicBodyVTSE51Tsunami {
|
|
142
|
+
forecasts: TsunamiForecastVXSE51[];
|
|
143
|
+
observations: TsunamiObservationVXSE51[];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export interface PublicBodyVTSE52Tsunami {
|
|
147
|
+
observations: TsunamiObservationVXSE52[];
|
|
148
|
+
estimations: TsunamiEstimation[];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export type Comment = {
|
|
152
|
+
free?: string;
|
|
153
|
+
warning?: {
|
|
154
|
+
text: string;
|
|
155
|
+
codes: string[];
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export interface ChancelBody {
|
|
160
|
+
text: string;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export interface PublicBodyVTSE41 {
|
|
164
|
+
tsunami: PublicBodyVTSE41Tsunami;
|
|
165
|
+
earthquakes: Earthquake[];
|
|
166
|
+
text?: string;
|
|
167
|
+
comments?: Comment;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export interface PublicBodyVTSE51 {
|
|
171
|
+
tsunami: PublicBodyVTSE51Tsunami;
|
|
172
|
+
earthquakes: Earthquake[];
|
|
173
|
+
text?: string;
|
|
174
|
+
comments?: Comment;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export interface PublicBodyVTSE52 {
|
|
178
|
+
tsunami: PublicBodyVTSE52Tsunami;
|
|
179
|
+
earthquakes: Earthquake[];
|
|
180
|
+
text?: string;
|
|
181
|
+
comments?: Comment;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
export interface PublicVTSE41 extends TelegramJSONMain {
|
|
186
|
+
_schema: Schema;
|
|
187
|
+
type: '津波警報・注意報・予報a';
|
|
188
|
+
title: string;
|
|
189
|
+
infoKind: '津波警報・注意報・予報';
|
|
190
|
+
eventId: string;
|
|
191
|
+
serialNo: null;
|
|
192
|
+
infoType: '発表' | '訂正';
|
|
193
|
+
body: PublicBodyVTSE41;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface PublicVTSE51 extends TelegramJSONMain {
|
|
197
|
+
_schema: Schema;
|
|
198
|
+
type: '津波情報a';
|
|
199
|
+
title: '各地の満潮時刻・津波到達予想時刻に関する情報' | '津波観測に関する情報';
|
|
200
|
+
infoKind:'津波情報';
|
|
201
|
+
eventId: string;
|
|
202
|
+
serialNo: string;
|
|
203
|
+
infoType: '発表' | '訂正';
|
|
204
|
+
body: PublicBodyVTSE51;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
export interface PublicVTSE52 extends TelegramJSONMain {
|
|
209
|
+
_schema: Schema;
|
|
210
|
+
type: '沖合の津波観測に関する情報';
|
|
211
|
+
title: '沖合の津波観測に関する情報';
|
|
212
|
+
infoKind: '津波情報';
|
|
213
|
+
eventId: string;
|
|
214
|
+
serialNo: string;
|
|
215
|
+
infoType: '発表' | '訂正';
|
|
216
|
+
body: PublicBodyVTSE52;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
export interface Channel extends TelegramJSONMain {
|
|
222
|
+
type: '大津波警報・津波警報・津波予報a' | '津波情報a' | '各地の満潮時刻・津波到達予想時刻に関する情報' | '津波観測に関する情報';
|
|
223
|
+
infoType: '取消';
|
|
224
|
+
eventId: string;
|
|
225
|
+
body: ChancelBody;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export type Main = (PublicVTSE41 | PublicVTSE51 | PublicVTSE52) | Channel;
|
|
229
|
+
|
|
230
|
+
}
|
|
@@ -1,117 +1,122 @@
|
|
|
1
|
-
import { TelegramJSONMain } from '
|
|
2
|
-
import { Coordinate } from '
|
|
3
|
-
import { UnitValue } from '
|
|
4
|
-
|
|
5
|
-
export namespace WeatherTyphoon {
|
|
6
|
-
export interface Schema {
|
|
7
|
-
type: 'weather-typhoon';
|
|
8
|
-
version: '1.0.0';
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
type: string;
|
|
13
|
-
unit: string;
|
|
14
|
-
value: string;
|
|
15
|
-
azimuth: string;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
export
|
|
64
|
-
average: UnitValue;
|
|
65
|
-
instantaneous: UnitValue;
|
|
66
|
-
area: ForecastWindArea;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
interface RealState {
|
|
70
|
-
type: '実況' | '推定';
|
|
71
|
-
elapsedTime: 'PT0H' | 'PT1H';
|
|
72
|
-
dateTime: string;
|
|
73
|
-
classification: RealStateClassification;
|
|
74
|
-
center: RealStateCenter;
|
|
75
|
-
wind?:RealStateWind;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
interface Forecast {
|
|
79
|
-
type: '予報' | '延長予報';
|
|
80
|
-
elapsedTime: string;
|
|
81
|
-
dateTime: string;
|
|
82
|
-
classification: ForecastClassification;
|
|
83
|
-
center: ForecastCenter;
|
|
84
|
-
wind: ForecastWind;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export interface
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
1
|
+
import { TelegramJSONMain } from '../../main';
|
|
2
|
+
import { Coordinate } from '../../component/coordinate';
|
|
3
|
+
import { UnitValue, UnitValueNotNull } from '../../component/unit-value';
|
|
4
|
+
|
|
5
|
+
export namespace WeatherTyphoon {
|
|
6
|
+
export interface Schema {
|
|
7
|
+
type: 'weather-typhoon';
|
|
8
|
+
version: '1.0.0';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface Direction {
|
|
12
|
+
type: string;
|
|
13
|
+
unit: string;
|
|
14
|
+
value: string | null;
|
|
15
|
+
azimuth: string | null;
|
|
16
|
+
condition?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface Axis {
|
|
20
|
+
direction: Direction;
|
|
21
|
+
radius: UnitValue;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface RealStateClassification {
|
|
25
|
+
category: 'TD' | 'TY' | 'STS' | 'Hurricane' | 'Tropical Storm' | 'LOW' | null;
|
|
26
|
+
name: '熱帯低気圧' | '台風' | 'ハリケーン' | '発達した熱帯低気圧' | '温帯低気圧' | null;
|
|
27
|
+
area: '大型' | '超大型' | null;
|
|
28
|
+
intensity: '強い' | '非常に強い' | '猛烈な' | null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type ForecastClassification = Omit<RealStateClassification, 'area'>;
|
|
32
|
+
|
|
33
|
+
export interface RealStateCenter {
|
|
34
|
+
coordinate: Coordinate;
|
|
35
|
+
location: string;
|
|
36
|
+
direction: Direction;
|
|
37
|
+
speed: UnitValue;
|
|
38
|
+
pressure: UnitValueNotNull;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type ForecastCenter = {
|
|
42
|
+
probabilityCircle: {
|
|
43
|
+
basePoint: Coordinate;
|
|
44
|
+
axes: Axis[];
|
|
45
|
+
};
|
|
46
|
+
} & Omit<RealStateCenter, 'location'>;
|
|
47
|
+
|
|
48
|
+
export interface RealStateWindArea {
|
|
49
|
+
strong: Axis[];
|
|
50
|
+
storm: Axis[];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface RealStateWind {
|
|
54
|
+
average: UnitValue;
|
|
55
|
+
instantaneous: UnitValue;
|
|
56
|
+
area: RealStateWindArea;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface ForecastWindArea {
|
|
60
|
+
stormWarning: Axis[];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface ForecastWind {
|
|
64
|
+
average: UnitValue;
|
|
65
|
+
instantaneous: UnitValue;
|
|
66
|
+
area: ForecastWindArea;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface RealState {
|
|
70
|
+
type: '実況' | '推定';
|
|
71
|
+
elapsedTime: 'PT0H' | 'PT1H';
|
|
72
|
+
dateTime: string;
|
|
73
|
+
classification: RealStateClassification;
|
|
74
|
+
center: RealStateCenter;
|
|
75
|
+
wind?: RealStateWind;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
interface Forecast {
|
|
79
|
+
type: '予報' | '延長予報';
|
|
80
|
+
elapsedTime: string;
|
|
81
|
+
dateTime: string;
|
|
82
|
+
classification: ForecastClassification;
|
|
83
|
+
center: ForecastCenter;
|
|
84
|
+
wind: ForecastWind;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface TyphoonName {
|
|
88
|
+
text: string | null;
|
|
89
|
+
kana: string | null;
|
|
90
|
+
number: string | null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export type TyphoonRemark = '台風発生' | '台風発生(域外から入る)' | '台風消滅(域外へ出る)' | '台風消滅(温帯低気圧化)' | '台風消滅(熱帯低気圧化)' |
|
|
94
|
+
'台風発生の可能性が小さくなった' | '発表間隔変更(毎時から3時間毎)' | '発表間隔変更(3時間毎から毎時)' | '台風発生予想' | '温帯低気圧化しつつある' | null;
|
|
95
|
+
|
|
96
|
+
export interface Typhoon {
|
|
97
|
+
tcNumber: string;
|
|
98
|
+
name: TyphoonName;
|
|
99
|
+
remark: TyphoonRemark;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface PublicBody {
|
|
103
|
+
typhoon: Typhoon;
|
|
104
|
+
forecasts: [RealState] | [RealState, ...Forecast[]] | [RealState, RealState] | [RealState, RealState, ...Forecast[]];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface Public extends TelegramJSONMain {
|
|
108
|
+
_schema: Schema;
|
|
109
|
+
type: '台風解析・予報情報(5日予報)(H30)' | '台風解析・予報情報(5日予報)' | '台風解析・予報情報(3日予報)';
|
|
110
|
+
title: '台風解析・予報情報';
|
|
111
|
+
targetDuration: string;
|
|
112
|
+
infoKind: '台風解析・予報情報(5日予報)' | '台風解析・予報情報(3日予報)';
|
|
113
|
+
eventId: string;
|
|
114
|
+
serialNo: string;
|
|
115
|
+
infoType: '発表' | '訂正' | '取消';
|
|
116
|
+
headline: null;
|
|
117
|
+
body: PublicBody;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
export type Main = Public;
|
|
122
|
+
}
|