@dmdata/telegram-json-types 1.0.9-jschema.3 → 1.1.0

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.
Files changed (45) hide show
  1. package/README.md +7 -0
  2. package/dist/jschema/earthquake-counts_1.0.0.json +1 -1
  3. package/dist/jschema/earthquake-hypocenter-update_1.0.0.json +1 -1
  4. package/dist/jschema/earthquake-information_1.0.0.json +1 -1
  5. package/dist/jschema/earthquake-information_1.1.0.json +1 -1
  6. package/dist/jschema/eew-information_1.0.0.json +1 -1
  7. package/dist/jschema/tsunami-information_1.0.0.json +1 -1
  8. package/dist/jschema/volcano-information_1.0.0.json +1 -1
  9. package/dist/jschema/weather-early_1.0.0.json +1 -0
  10. package/dist/jschema/weather-impact-society_1.0.0.json +1 -0
  11. package/dist/jschema/weather-information_1.0.0.json +1 -0
  12. package/dist/jschema/weather-landslide_1.0.0.json +1 -0
  13. package/dist/jschema/weather-river-flood_1.0.0.json +1 -0
  14. package/dist/jschema/weather-tornado_1.0.0.json +1 -0
  15. package/dist/jschema/weather-typhoon_1.0.0.json +1 -1
  16. package/dist/jschema/weather-warning_1.0.0.json +1 -0
  17. package/jest.config.ts +202 -0
  18. package/package.json +29 -21
  19. package/test/sample-schema-check.test.ts +54 -0
  20. package/tsconfig.json +2 -1
  21. package/types/component/code-name.ts +4 -0
  22. package/types/index.d.ts +15 -1
  23. package/types/schema/earthquake-counts/1.0.0.d.ts +2 -2
  24. package/types/schema/earthquake-hypocenter-update/1.0.0.d.ts +1 -1
  25. package/types/schema/earthquake-information/1.0.0.d.ts +14 -20
  26. package/types/schema/earthquake-information/1.1.0.d.ts +15 -21
  27. package/types/schema/earthquake-nankai/1.0.0.d.ts +2 -3
  28. package/types/schema/eew-information/1.0.0.d.ts +20 -26
  29. package/types/schema/tsunami-information/1.0.0.d.ts +75 -56
  30. package/types/schema/volcano-information/1.0.0.d.ts +19 -18
  31. package/types/schema/weather-early/1.0.0.d.ts +135 -0
  32. package/types/schema/weather-early/index.d.ts +7 -0
  33. package/types/schema/weather-impact-society/1.0.0.d.ts +140 -0
  34. package/types/schema/weather-impact-society/index.d.ts +7 -0
  35. package/types/schema/weather-information/1.0.0.d.ts +30 -0
  36. package/types/schema/weather-information/index.d.ts +7 -0
  37. package/types/schema/weather-landslide/1.0.0.d.ts +51 -0
  38. package/types/schema/weather-landslide/index.d.ts +7 -0
  39. package/types/schema/weather-river-flood/1.0.0.d.ts +188 -0
  40. package/types/schema/weather-river-flood/index.d.ts +7 -0
  41. package/types/schema/weather-tornado/1.0.0.d.ts +51 -0
  42. package/types/schema/weather-tornado/index.d.ts +7 -0
  43. package/types/schema/weather-typhoon/1.0.0.d.ts +22 -11
  44. package/types/schema/weather-warning/1.0.0.d.ts +212 -0
  45. package/types/schema/weather-warning/index.d.ts +7 -0
@@ -1,4 +1,5 @@
1
1
  import { TelegramJSONMain } from '@t/main';
2
+ import { CodeName } from '@t/component/code-name';
2
3
  import { Earthquake } from '@t/component/earthquake';
3
4
  import { UnitValueNotNull } from '@t/component/unit-value';
4
5
 
@@ -12,33 +13,26 @@ export namespace EarthquakeInformation {
12
13
  export type LpgmIntensityClass = '0' | '1' | '2' | '3' | '4';
13
14
  export type LpgmCategory = '1' | '2' | '3' | '4';
14
15
 
15
- export type IntensityMaxInt = {
16
- name: string;
17
- code: string;
16
+ export interface IntensityMaxInt extends CodeName {
18
17
  maxInt: IntensityClass;
19
- };
20
- export type IntensityMaxIntOnRevise = {
21
- name: string;
22
- code: string;
18
+ }
19
+
20
+ export interface IntensityMaxIntOnRevise extends CodeName {
23
21
  maxInt?: IntensityClass;
24
22
  revise?: '上方修正' | '追加';
25
23
  }
26
24
 
27
- export type IntensityCity = {
28
- name: string;
29
- code: string;
25
+ export interface IntensityCity extends CodeName {
30
26
  maxInt?: IntensityClass;
31
27
  revise?: '上方修正' | '追加';
32
28
  condition?: '震度5弱以上未入電';
33
- };
29
+ }
34
30
 
35
- export type IntensityStation = {
36
- name: string;
37
- code: string;
31
+ export interface IntensityStation extends CodeName {
38
32
  int: IntensityClass | '!5-';
39
33
  revise?: '上方修正' | '追加';
40
34
  condition?: '震度5弱以上未入電';
41
- };
35
+ }
42
36
 
43
37
  export type IntensityLpgmMaxInt = IntensityMaxIntOnRevise & {
44
38
  maxLpgmInt: LpgmIntensityClass;
@@ -67,28 +61,28 @@ export namespace EarthquakeInformation {
67
61
  };
68
62
 
69
63
 
70
- export type IntensityVXSE51 = {
64
+ export interface IntensityVXSE51 {
71
65
  maxInt: IntensityClass;
72
66
  prefectures: IntensityMaxInt[];
73
67
  regions: IntensityMaxInt[];
74
- };
68
+ }
75
69
 
76
- export type IntensityVXSE53 = {
70
+ export interface IntensityVXSE53 {
77
71
  maxInt: IntensityClass;
78
72
  prefectures: IntensityMaxIntOnRevise[];
79
73
  regions: IntensityMaxIntOnRevise[];
80
74
  cities: IntensityCity[];
81
75
  stations: IntensityStation[];
82
- };
76
+ }
83
77
 
84
- export type IntensityVXSE62 = {
78
+ export interface IntensityVXSE62 {
85
79
  maxInt: IntensityClass;
86
80
  maxLpgmInt: LpgmIntensityClass;
87
81
  lpgmCategory: LpgmCategory;
88
82
  prefectures: IntensityLpgmMaxInt[];
89
83
  regions: IntensityLpgmMaxInt[];
90
84
  stations: IntensityLpgmStation[];
91
- };
85
+ }
92
86
 
93
87
 
94
88
  export interface PublicBodyVXSE51 {
@@ -1,4 +1,5 @@
1
1
  import { TelegramJSONMain } from '@t/main';
2
+ import { CodeName } from '@t/component/code-name';
2
3
 
3
4
  export namespace EarthquakeNankai {
4
5
  export interface Schema {
@@ -6,9 +7,7 @@ export namespace EarthquakeNankai {
6
7
  version: '1.0.0';
7
8
  }
8
9
 
9
- export interface EarthquakeInfoKind {
10
- code: string;
11
- name: string;
10
+ export interface EarthquakeInfoKind extends CodeName{
12
11
  }
13
12
 
14
13
  export interface EarthquakeInfo {
@@ -1,4 +1,5 @@
1
1
  import { TelegramJSONMain } from '@t/main';
2
+ import { CodeName } from '@t/component/code-name';
2
3
  import { Coordinate } from '@t/component/coordinate';
3
4
  import { UnitValueNotNull } from '@t/component/unit-value';
4
5
 
@@ -12,24 +13,18 @@ export namespace EewInformation {
12
13
  export type IntensityClass = '0' | '1' | '2' | '3' | '4' | '5-' | '5+' | '6-' | '6+' | '7';
13
14
  export type LpgmIntensityClass = '0' | '1' | '2' | '3' | '4';
14
15
 
15
- export interface WarningAreaKind {
16
- code: string;
17
- name: string;
18
- lastKind: {
19
- code: string;
20
- name: string;
21
- };
16
+ export interface WarningAreaKindLastKind extends CodeName {
17
+ }
18
+
19
+ export interface WarningAreaKind extends CodeName {
20
+ lastKind: WarningAreaKindLastKind;
22
21
  }
23
22
 
24
- export interface WarningArea {
25
- code: string;
26
- name: string;
23
+ export interface WarningArea extends CodeName {
27
24
  kind: WarningAreaKind;
28
25
  }
29
26
 
30
- export interface EarthquakeHypocenterReduce {
31
- code: string;
32
- name: string;
27
+ export interface EarthquakeHypocenterReduce extends CodeName {
33
28
  }
34
29
 
35
30
  export interface EarthquakeHypocenterAccuracy {
@@ -42,9 +37,7 @@ export namespace EewInformation {
42
37
  numberOfMagnitudeCalculation: '0' | '1' | '2' | '3' | '4' | '5';
43
38
  }
44
39
 
45
- export interface EarthquakeHypocenter {
46
- code: string;
47
- name: string;
40
+ export interface EarthquakeHypocenter extends CodeName {
48
41
  coordinate: Coordinate<'日本測地系'>;
49
42
  depth: UnitValueNotNull<'深さ', 'km'>;
50
43
  reduce: EarthquakeHypocenterReduce;
@@ -83,12 +76,13 @@ export namespace EewInformation {
83
76
  maxIntChangeReason: '0' | '1' | '2' | '3' | '4' | '9';
84
77
  }
85
78
 
86
- export interface IntensityRegion {
87
- code: string;
88
- name: string;
79
+ export interface IntensityRegionKind extends CodeName {
80
+ }
81
+
82
+ export interface IntensityRegion extends CodeName {
89
83
  forecastMaxInt: IntensityForecastMaxInt;
90
84
  forecastLpgmMaxInt?: IntensityForecastLpgmMaxInt;
91
- kind: WarningAreaKind;
85
+ kind: IntensityRegionKind;
92
86
  }
93
87
 
94
88
 
@@ -119,7 +113,7 @@ export namespace EewInformation {
119
113
  comments: Comment;
120
114
  }
121
115
 
122
- export interface PublicTesting {
116
+ export interface PublicTestingBody {
123
117
  isLastInfo: false;
124
118
  text: string;
125
119
  }
@@ -145,8 +139,8 @@ export namespace EewInformation {
145
139
 
146
140
  export interface PublicTesting extends TelegramJSONMain {
147
141
  _schema: Schema;
148
- type: '緊急地震速報テスト';
149
- title: '緊急地震速報テスト';
142
+ type: '緊急地震速報配信テスト';
143
+ title: '緊急地震速報配信テスト';
150
144
  infoType: '発表' | '訂正';
151
145
  targetDateTimeDubious: never;
152
146
  targetDuration: never;
@@ -154,13 +148,13 @@ export namespace EewInformation {
154
148
  eventId: string;
155
149
  serialNo: string;
156
150
  infoKind: '緊急地震速報';
157
- body: PublicTesting;
151
+ body: PublicTestingBody;
158
152
  }
159
153
 
160
154
  export interface Cancel extends TelegramJSONMain {
161
155
  _schema: Schema;
162
- type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | '緊急地震速報テスト';
163
- title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | '緊急地震速報テスト';
156
+ type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | '緊急地震速報配信テスト';
157
+ title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | '緊急地震速報配信テスト';
164
158
  infoType: '取消';
165
159
  targetDateTimeDubious: never;
166
160
  targetDuration: never;
@@ -1,5 +1,6 @@
1
- import { Earthquake } from '@t/component/earthquake';
2
1
  import { TelegramJSONMain } from '@t/main';
2
+ import { CodeName } from '@t/component/code-name';
3
+ import { Earthquake } from '@t/component/earthquake';
3
4
 
4
5
 
5
6
  export namespace TsunamiInformation {
@@ -8,28 +9,36 @@ export namespace TsunamiInformation {
8
9
  version: '1.0.0';
9
10
  }
10
11
 
11
- export interface TsunamiForecastKind {
12
- code: string;
13
- name: string;
14
- lastKind: {
15
- code: string;
16
- name: string;
17
- };
12
+ export interface TsunamiForecastKindLastKind extends CodeName {
18
13
  }
19
14
 
20
- export interface TsunamiForecastFirstHeight {
21
- arrivalTime?: string;
22
- condition?: '津波到達中と推測' | '第1波の到達を確認' | 'ただちに津波来襲と予測';
23
- revise?: '追加' | '更新';
15
+ export interface TsunamiForecastKind extends CodeName {
16
+ lastKind: TsunamiForecastKindLastKind;
24
17
  }
25
18
 
26
- export interface TsunamiForecastMaxHeightValue {
19
+ export type TsunamiForecastFirstHeight = ({
20
+ arrivalTime: string;
21
+ condition?: 'ただちに津波来襲と予測';
22
+ } | {
23
+ arrivalTime: never;
24
+ condition: '津波到達中と推測' | '第1波の到達を確認';
25
+ }) &
26
+ {
27
+ revise?: '追加' | '更新';
28
+ };
29
+
30
+ export type TsunamiForecastMaxHeightValue = {
27
31
  type: '津波の高さ';
28
32
  unit: 'm';
29
- value: string | null;
33
+ } & ({
34
+ value: string;
30
35
  over?: true;
36
+ condition: never;
37
+ } | {
38
+ value: null;
39
+ over: never;
31
40
  condition?: '巨大' | '高い';
32
- }
41
+ });
33
42
 
34
43
  export interface TsunamiForecastMaxHeight {
35
44
  height: TsunamiForecastMaxHeightValue;
@@ -37,19 +46,15 @@ export namespace TsunamiInformation {
37
46
  revise?: '追加' | '更新';
38
47
  }
39
48
 
40
- export interface TsunamiForecastStation {
41
- code: string;
42
- name: string;
49
+ export interface TsunamiForecastStation extends CodeName {
43
50
  highTideDateTime: string;
44
51
  firstHeight: TsunamiForecastFirstHeight;
45
52
  }
46
53
 
47
- export interface TsunamiForecast {
48
- code: string;
49
- name: string;
54
+ export interface TsunamiForecast extends CodeName {
50
55
  kind: TsunamiForecastKind;
51
- firstHeight: TsunamiForecastFirstHeight;
52
- maxHeight: TsunamiForecastMaxHeight;
56
+ firstHeight?: TsunamiForecastFirstHeight;
57
+ maxHeight?: TsunamiForecastMaxHeight;
53
58
  stations?: TsunamiForecastStation[] | never;
54
59
  }
55
60
 
@@ -61,31 +66,45 @@ export namespace TsunamiInformation {
61
66
  stations?: TsunamiForecastStation[];
62
67
  }
63
68
 
64
- export interface TsunamiObservationStationFirstHeight {
69
+ export type TsunamiObservationStationFirstHeight = ({
65
70
  arrivalTime: string;
66
- initial?: '押し' | '引き';
67
- condition?: '第1波識別不能';
71
+ initial: '押し' | '引き';
72
+ condition: never;
73
+ } | {
74
+ arrivalTime: never;
75
+ initial: never;
76
+ condition: '第1波識別不能';
77
+ }) & {
68
78
  revise?: '追加' | '更新';
69
- }
79
+ };
70
80
 
71
81
  export interface TsunamiObservationStationMaxHeightValue {
72
82
  type: 'これまでの最大波の高さ';
73
83
  unit: 'm';
74
- value: string | null;
84
+ value: string;
75
85
  over?: true;
76
86
  condition?: '上昇中';
77
87
  }
78
88
 
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
+ export type TsunamiObservationStationMaxHeight =
90
+ ({
91
+ dateTime: string;
92
+ height: TsunamiObservationStationMaxHeightValue;
93
+ condition?: '重要';
94
+ } | {
95
+ dateTime: string;
96
+ height: never;
97
+ condition: '微弱';
98
+ } | {
99
+ dateTime: never;
100
+ height: never;
101
+ condition: '観測中';
102
+ }) &
103
+ {
104
+ revise?: '追加' | '更新';
105
+ }
106
+
107
+ export interface TsunamiObservationStation extends CodeName {
89
108
  sensor?: string;
90
109
  firstHeight: TsunamiObservationStationFirstHeight;
91
110
  maxHeight: TsunamiObservationStationMaxHeight;
@@ -113,23 +132,23 @@ export namespace TsunamiInformation {
113
132
  revise?: '追加' | '更新';
114
133
  }
115
134
 
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
- }
135
+ export type TsunamiEstimationMaxHeightValue = TsunamiForecastMaxHeightValue;
136
+
137
+ export type TsunamiEstimationMaxHeight =
138
+ ({
139
+ dateTime: string;
140
+ height: TsunamiEstimationMaxHeightValue;
141
+ condition?: '重要';
142
+ } | {
143
+ dateTime: never;
144
+ height: never;
145
+ condition: '推定中';
146
+ }) &
147
+ {
148
+ revise?: '追加' | '更新';
149
+ };
129
150
 
130
- export interface TsunamiEstimation {
131
- code: string;
132
- name: string;
151
+ export interface TsunamiEstimation extends CodeName {
133
152
  firstHeight: TsunamiEstimationFirstHeight;
134
153
  maxHeight: TsunamiEstimationMaxHeight;
135
154
  }
@@ -140,7 +159,7 @@ export namespace TsunamiInformation {
140
159
 
141
160
  export interface PublicBodyVTSE51Tsunami {
142
161
  forecasts: TsunamiForecastVXSE51[];
143
- observations: TsunamiObservationVXSE51[];
162
+ observations?: TsunamiObservationVXSE51[];
144
163
  }
145
164
 
146
165
  export interface PublicBodyVTSE52Tsunami {
@@ -228,7 +247,7 @@ export namespace TsunamiInformation {
228
247
 
229
248
 
230
249
  export interface Cancel extends TelegramJSONMain {
231
- type: '大津波警報・津波警報・津波予報a' | '津波情報a' | '各地の満潮時刻・津波到達予想時刻に関する情報' | '津波観測に関する情報';
250
+ type: '津波警報・注意報・予報a' | '津波情報a' | '各地の満潮時刻・津波到達予想時刻に関する情報' | '津波観測に関する情報';
232
251
  infoType: '取消';
233
252
  targetDateTimeDubious: never;
234
253
  targetDuration: never;
@@ -12,7 +12,7 @@ export namespace VolcanoInformation {
12
12
 
13
13
  export interface TargetCrater {
14
14
  name: string | null;
15
- coordinate: VolcanoCoordinate;
15
+ coordinate?: VolcanoCoordinate;
16
16
  }
17
17
 
18
18
  export interface TargetKind {
@@ -38,6 +38,12 @@ export namespace VolcanoInformation {
38
38
  kind: TargetKind;
39
39
  }
40
40
 
41
+ export interface TargetVFVO56 {
42
+ code: string;
43
+ name: string;
44
+ kind: TargetKind;
45
+ }
46
+
41
47
  export interface TargetEWF extends Target {
42
48
  crater: never;
43
49
  kind: TargetKindEWF;
@@ -144,7 +150,7 @@ export namespace VolcanoInformation {
144
150
  type: '噴煙の流向';
145
151
  unit: '漢字';
146
152
  } & ({
147
- value: Direction8 | '直上' | '流行不明';
153
+ value: Direction8 | '直上' | '流向不明';
148
154
  condition: never;
149
155
  } | {
150
156
  value: null;
@@ -201,7 +207,7 @@ export namespace VolcanoInformation {
201
207
  code: string;
202
208
  name: string;
203
209
  polygons: [number, number][][];
204
- size: AshForecastItemSize;
210
+ size?: AshForecastItemSize;
205
211
  direction: AshForecastItemDirection;
206
212
  distance: AshForecastItemDistance;
207
213
  remake?: string;
@@ -213,7 +219,7 @@ export namespace VolcanoInformation {
213
219
  elapsedTime: string;
214
220
  startTime: string;
215
221
  endTime: string;
216
- items: AshForecastItem;
222
+ items: AshForecastItem[];
217
223
  }
218
224
 
219
225
  export interface Ash {
@@ -225,14 +231,14 @@ export namespace VolcanoInformation {
225
231
  target: TargetEWF;
226
232
  cities: CityVFVO50[];
227
233
  disasterPreventions: DisasterPrevention[];
228
- comment: Comments;
234
+ comments: Comments;
229
235
  text?: string;
230
236
  }
231
237
 
232
238
  export interface PublicBodyVFVO51 {
233
239
  notice?: string;
234
240
  targets: TargetEWF[];
235
- comment: Comments;
241
+ comments: Comments;
236
242
  text?: string;
237
243
  }
238
244
 
@@ -247,7 +253,7 @@ export namespace VolcanoInformation {
247
253
  notice?: string;
248
254
  target: Target;
249
255
  cities: City[];
250
- comment: Comments;
256
+ comments: Comments;
251
257
  ash: Ash;
252
258
  text?: string;
253
259
  }
@@ -257,7 +263,7 @@ export namespace VolcanoInformation {
257
263
  target: Target;
258
264
  cities: City[];
259
265
  eruption: Eruption;
260
- comment: Comments;
266
+ comments: Comments;
261
267
  ash: Ash;
262
268
  text?: string;
263
269
  }
@@ -267,10 +273,10 @@ export namespace VolcanoInformation {
267
273
 
268
274
  export interface PublicBodyVFVO56 {
269
275
  notice?: string;
270
- target: Target;
276
+ target: TargetVFVO56;
271
277
  cities: CityVFVO56[];
272
278
  eruption: Pick<Eruption, 'eventDateTime'>;
273
- comment: Comments;
279
+ comments: Comments;
274
280
  text?: string;
275
281
  }
276
282
 
@@ -278,7 +284,7 @@ export namespace VolcanoInformation {
278
284
  notice?: string;
279
285
  target: TargetEWF;
280
286
  oceanZones: OceanZone[];
281
- comment: Comments;
287
+ comments: Comments;
282
288
  text?: string;
283
289
  }
284
290
 
@@ -338,7 +344,6 @@ export namespace VolcanoInformation {
338
344
  type: '降灰予報(定時)';
339
345
  title: string;
340
346
  infoType: '発表' | '訂正';
341
- targetDateTime: string;
342
347
  targetDateTimeDubious: never;
343
348
  targetDuration: never;
344
349
  validDateTime: string;
@@ -353,7 +358,6 @@ export namespace VolcanoInformation {
353
358
  type: '降灰予報(速報)';
354
359
  title: string;
355
360
  infoType: '発表' | '訂正';
356
- targetDateTime: string;
357
361
  targetDateTimeDubious: never;
358
362
  targetDuration: never;
359
363
  validDateTime: string;
@@ -368,7 +372,6 @@ export namespace VolcanoInformation {
368
372
  type: '降灰予報(詳細)';
369
373
  title: string;
370
374
  infoType: '発表' | '訂正';
371
- targetDateTime: string;
372
375
  targetDateTimeDubious: never;
373
376
  targetDuration: never;
374
377
  validDateTime: string;
@@ -383,10 +386,9 @@ export namespace VolcanoInformation {
383
386
  type: '噴火速報';
384
387
  title: string;
385
388
  infoType: '発表' | '訂正';
386
- targetDateTime: string;
387
389
  targetDateTimeDubious?: '年頃' | '月頃' | '日頃' | '時頃' | '分頃' | '秒頃' | '頃';
388
390
  targetDuration: never;
389
- validDateTime: string;
391
+ validDateTime: never;
390
392
  eventId: string;
391
393
  serialNo: null;
392
394
  infoKind: '噴火速報';
@@ -412,10 +414,9 @@ export namespace VolcanoInformation {
412
414
  type: '火山に関するお知らせ';
413
415
  title: string;
414
416
  infoType: '発表' | '訂正';
415
- targetDateTime: string;
416
417
  targetDateTimeDubious: never;
417
418
  targetDuration: never;
418
- validDateTime: string;
419
+ validDateTime: never;
419
420
  eventId: string;
420
421
  serialNo: null;
421
422
  infoKind: '火山に関するお知らせ';
@@ -0,0 +1,135 @@
1
+ import { TelegramJSONMain } from '@t/main';
2
+ import { CodeName } from '@t/component/code-name';
3
+
4
+ export namespace WeatherEarly {
5
+ export interface Schema {
6
+ type: 'weather-early';
7
+ version: '1.0.0';
8
+ }
9
+
10
+ export interface Target extends CodeName {
11
+ }
12
+
13
+ export interface TargetTimeDateTime {
14
+ value: string;
15
+ validFormat: string;
16
+ }
17
+
18
+ export interface TargetTime {
19
+ dateTime: TargetTimeDateTime;
20
+ duration?: string;
21
+ }
22
+
23
+ export interface MainTextZone extends CodeName {
24
+ }
25
+
26
+
27
+ export interface MainText {
28
+ text: string;
29
+ zones: MainTextZone[];
30
+ }
31
+
32
+ export interface StatisticPeriodDateTime {
33
+ value: string;
34
+ validFormat?: string;
35
+ }
36
+
37
+ export interface StatisticPeriod {
38
+ dateTime: StatisticPeriodDateTime;
39
+ duration: string;
40
+ name: string;
41
+ }
42
+
43
+ export interface StatisticStationObservedValue {
44
+ type: string;
45
+ unit: string;
46
+ value: string | null;
47
+ condition?: string;
48
+ }
49
+
50
+ export interface StatisticStation extends CodeName {
51
+ type: '天候の状況(速報値)';
52
+ observedValues: StatisticStationObservedValue[];
53
+ }
54
+
55
+
56
+ export interface EarlyBaseZone extends CodeName {
57
+ }
58
+
59
+ export interface EarlyBase {
60
+ type: string;
61
+ forecasts: Object;
62
+ zones: EarlyBaseZone[];
63
+ }
64
+
65
+ export interface EarlyHighForecastProbabilityAboveNormal {
66
+ unit: '%';
67
+ value: string;
68
+ bound: '以上';
69
+ }
70
+
71
+ export interface EarlyHighForecastThresholdAboveNormal {
72
+ unit: '%' | '℃';
73
+ value: string;
74
+ bound: '以上';
75
+ }
76
+
77
+ export interface EarlyLowForecastProbabilityBelowNormal {
78
+ unit: '%';
79
+ value: string;
80
+ bound: '以上';
81
+ }
82
+
83
+ export interface EarlyLowForecastThresholdBelowNormal {
84
+ unit: '℃';
85
+ value: string;
86
+ bound: '以下';
87
+ }
88
+
89
+ export interface EarlyHighForecast {
90
+ probabilityAboveNormal: EarlyHighForecastProbabilityAboveNormal;
91
+ thresholdAboveNormal: EarlyHighForecastThresholdAboveNormal;
92
+ }
93
+
94
+ export interface EarlyLowForecast {
95
+ probabilityBelowNormal: EarlyLowForecastProbabilityBelowNormal;
96
+ thresholdBelowNormal: EarlyLowForecastThresholdBelowNormal;
97
+ }
98
+
99
+ export interface EarlyHigh extends EarlyBase {
100
+ type: 'かなりの高温' | '大雪';
101
+ forecasts: EarlyHighForecast;
102
+ }
103
+
104
+ export interface EarlyLow extends EarlyBase {
105
+ type: 'かなりの低温';
106
+ forecasts: EarlyLowForecast;
107
+ }
108
+
109
+ export type Early = EarlyHigh | EarlyLow;
110
+
111
+ export interface PublicBody {
112
+ notice?: string;
113
+ target: Target;
114
+ targetTime: TargetTime;
115
+ mainTexts: [MainText];
116
+ early: Early[];
117
+ }
118
+
119
+
120
+ export interface Public extends TelegramJSONMain {
121
+ _schema: Schema;
122
+ type: '早期天候情報';
123
+ title: string;
124
+ infoType: '発表' | '訂正';
125
+ targetDateTimeDubious: '頃';
126
+ targetDuration: string;
127
+ validDateTime: string;
128
+ eventId: null;
129
+ serialNo: null;
130
+ infoKind: '早期天候情報';
131
+ body: PublicBody;
132
+ }
133
+
134
+ export type Main = Public;
135
+ }
@@ -0,0 +1,7 @@
1
+ import { WeatherEarly as v1_0_0 } from './1.0.0';
2
+
3
+
4
+ export {
5
+ v1_0_0 as Latest,
6
+ v1_0_0
7
+ };