@dmdata/telegram-json-types 1.2.0 → 1.2.3

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 (52) hide show
  1. package/.github/workflows/release.yml +33 -0
  2. package/LICENSE +21 -21
  3. package/README.md +79 -79
  4. package/dist/jschema/forecast-weathermap_1.0.0.json +1 -1
  5. package/dist/jschema/weather-warning-timeseries_1.0.0.json +1 -1
  6. package/dist/jschema-load.js +3 -36
  7. package/index.d.ts +2 -2
  8. package/package.json +30 -32
  9. package/test/sample-schema-check.test.ts +68 -68
  10. package/tsconfig.json +25 -25
  11. package/types/component/coordinate.d.ts +27 -27
  12. package/types/component/earthquake.d.ts +77 -77
  13. package/types/component/index.d.ts +17 -17
  14. package/types/component/unit-value.d.ts +13 -13
  15. package/types/component/util.d.ts +20 -20
  16. package/types/index.d.ts +84 -84
  17. package/types/schema/earthquake-counts/1.0.0.d.ts +69 -69
  18. package/types/schema/earthquake-explanation/1.0.0.d.ts +57 -57
  19. package/types/schema/earthquake-hypocenter-update/1.0.0.d.ts +53 -53
  20. package/types/schema/earthquake-information/1.0.0.d.ts +158 -158
  21. package/types/schema/earthquake-information/1.1.0.d.ts +224 -224
  22. package/types/schema/earthquake-information/index.d.ts +9 -9
  23. package/types/schema/earthquake-nankai/1.0.0.d.ts +101 -101
  24. package/types/schema/eew-information/1.0.0.d.ts +221 -221
  25. package/types/schema/eew-information/index.d.ts +7 -7
  26. package/types/schema/forecast-2week-temperature/1.0.0.d.ts +110 -110
  27. package/types/schema/forecast-prefecture/1.0.0.d.ts +537 -537
  28. package/types/schema/forecast-season/1.0.0.d.ts +169 -169
  29. package/types/schema/forecast-warning-possibility/1.0.0.d.ts +388 -388
  30. package/types/schema/forecast-warning-possibility/1.1.0.d.ts +129 -129
  31. package/types/schema/forecast-warning-possibility/index.d.ts +9 -9
  32. package/types/schema/forecast-weathermap/1.0.0.d.ts +206 -194
  33. package/types/schema/tsunami-information/1.0.0.d.ts +261 -261
  34. package/types/schema/tsunami-information/1.1.0.d.ts +298 -298
  35. package/types/schema/tsunami-information/index.d.ts +9 -9
  36. package/types/schema/volcano-information/1.0.0.d.ts +450 -450
  37. package/types/schema/weather-commentary/1.0.0.d.ts +984 -984
  38. package/types/schema/weather-commentary/index.d.ts +7 -7
  39. package/types/schema/weather-early/1.0.0.d.ts +111 -111
  40. package/types/schema/weather-impact-society/1.0.0.d.ts +143 -143
  41. package/types/schema/weather-impact-society/1.0.1.d.ts +118 -118
  42. package/types/schema/weather-information/1.0.0.d.ts +67 -67
  43. package/types/schema/weather-landslide/1.0.0.d.ts +51 -51
  44. package/types/schema/weather-river-flood/1.0.0.d.ts +192 -192
  45. package/types/schema/weather-tornado/1.0.0.d.ts +55 -55
  46. package/types/schema/weather-typhoon/1.0.0.d.ts +146 -146
  47. package/types/schema/weather-typhoon/index.d.ts +7 -7
  48. package/types/schema/weather-warning/1.0.0.d.ts +213 -213
  49. package/types/schema/weather-warning/1.1.0.d.ts +469 -469
  50. package/types/schema/weather-warning/index.d.ts +9 -9
  51. package/types/schema/weather-warning-timeseries/1.0.0.d.ts +357 -385
  52. package/types/schema/weather-warning-timeseries/index.d.ts +7 -7
@@ -1,221 +1,221 @@
1
- import { TelegramJSONMain } from '../../main';
2
- import { Components } from '../../component';
3
-
4
-
5
- export namespace EewInformation {
6
- export interface Schema {
7
- type: 'eew-information';
8
- version: '1.0.0';
9
- }
10
-
11
- export type IntensityClass = '0' | '1' | '2' | '3' | '4' | '5-' | '5+' | '6-' | '6+' | '7';
12
- export type LgIntensityClass = '0' | '1' | '2' | '3' | '4';
13
-
14
- export interface WarningAreaKindLastKind extends Components.CodeName {
15
- }
16
-
17
- export interface WarningAreaKind extends Components.CodeName {
18
- lastKind: WarningAreaKindLastKind;
19
- }
20
-
21
- export interface WarningArea extends Components.CodeName {
22
- kind: WarningAreaKind;
23
- }
24
-
25
- export interface EarthquakeHypocenterReduce extends Components.CodeName {
26
- }
27
-
28
- export interface EarthquakeHypocenterAccuracy {
29
- epicenters: [
30
- '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8',
31
- '0' | '1' | '2' | '3' | '4' | '9'
32
- ];
33
- depth: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8';
34
- magnitudeCalculation: '0' | '2' | '3' | '4' | '5' | '6' | '8';
35
- numberOfMagnitudeCalculation: '0' | '1' | '2' | '3' | '4' | '5';
36
- }
37
-
38
- export interface EarthquakeHypocenter extends Components.CodeName {
39
- coordinate: Components.Coordinate<'日本測地系'>;
40
- depth: Components.UnitValueNotNull<'深さ', 'km'>;
41
- reduce: EarthquakeHypocenterReduce;
42
- landOrSea?: '内陸' | '海域';
43
- accuracy: EarthquakeHypocenterAccuracy;
44
- }
45
-
46
- export interface EarthquakeMagnitude {
47
- type: 'マグニチュード';
48
- unit: 'Mj' | 'M';
49
- value: string | null;
50
- condition?: 'M不明';
51
- }
52
-
53
- export interface Earthquake {
54
- originTime?: string;
55
- arrivalTime: string;
56
- condition?: '仮定震源要素';
57
- hypocenter: EarthquakeHypocenter;
58
- magnitude: EarthquakeMagnitude;
59
- }
60
-
61
- export interface IntensityForecastMaxInt {
62
- from: IntensityClass | '不明';
63
- to: IntensityClass | 'over' | '不明';
64
- }
65
-
66
- export interface IntensityForecastLgMaxInt {
67
- from: LgIntensityClass | '不明';
68
- to: LgIntensityClass | 'over' | '不明';
69
- }
70
-
71
- export interface IntensityAppendix {
72
- maxIntChange: '0' | '1' | '2';
73
- maxLgIntChange?: '0' | '1' | '2';
74
- maxIntChangeReason: '0' | '1' | '2' | '3' | '4' | '9';
75
- }
76
-
77
- export interface IntensityRegionKind extends Components.CodeName {
78
- }
79
-
80
- export interface IntensityRegion extends Components.CodeName {
81
- forecastMaxInt: IntensityForecastMaxInt;
82
- forecastMaxLgInt?: IntensityForecastLgMaxInt;
83
- isPlum: boolean;
84
- isWarning: boolean;
85
- kind: IntensityRegionKind;
86
- condition?: '既に主要動到達と推測';
87
- arrivalTime?: string;
88
- }
89
-
90
- export interface IntensityRegionReached extends IntensityRegion {
91
- condition: '既に主要動到達と推測';
92
- arrivalTime?: never;
93
- }
94
-
95
- export interface IntensityRegionUnReached extends IntensityRegion {
96
- condition?: never;
97
- arrivalTime: string;
98
- }
99
-
100
- export type IntensityRegionItem = IntensityRegionReached | IntensityRegionUnReached
101
-
102
- export interface IntensityRealtimeStation {
103
- code: string;
104
- name: string;
105
- int: IntensityClass;
106
- k: string;
107
- }
108
-
109
- export interface Intensity {
110
- forecastMaxInt: IntensityForecastMaxInt;
111
- forecastMaxLgInt?: IntensityForecastLgMaxInt;
112
- appendix?: IntensityAppendix;
113
- regions: IntensityRegionItem[];
114
- }
115
-
116
- export interface IntensityRealtime {
117
- stations: IntensityRealtimeStation[];
118
- }
119
-
120
-
121
- export interface Comments {
122
- free?: string;
123
- warning?: {
124
- text: string;
125
- codes: string[];
126
- };
127
- }
128
-
129
- export interface PublicCommonBody {
130
- isLastInfo: boolean;
131
- isCanceled: false;
132
- isWarning: boolean;
133
- zones?: WarningArea[];
134
- prefectures?: WarningArea[];
135
- regions?: WarningArea[];
136
- earthquake: Earthquake;
137
- intensity?: Intensity;
138
- text?: string;
139
- comments?: Comments;
140
- }
141
-
142
- export interface PublicRealtimeBody {
143
- isLastInfo: boolean;
144
- isCanceled: false;
145
- earthquake: Earthquake;
146
- intensity?: IntensityRealtime;
147
- text?: string;
148
- }
149
-
150
- export interface PublicTestingBody {
151
- isLastInfo: false;
152
- isCanceled: false;
153
- text: string;
154
- }
155
-
156
- export interface CancelBody {
157
- isLastInfo: true;
158
- isCanceled: true;
159
- text: string;
160
- }
161
-
162
- export interface PublicCommon extends TelegramJSONMain {
163
- _schema: Schema;
164
- type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)';
165
- title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)';
166
- infoType: '発表' | '訂正';
167
- targetDateTimeDubious?: never;
168
- targetDuration?: never;
169
- validDateTime?: never;
170
- eventId: string;
171
- serialNo: string;
172
- infoKind: '緊急地震速報';
173
- body: PublicCommonBody;
174
- }
175
-
176
- export interface PublicRealtime extends TelegramJSONMain {
177
- _schema: Schema;
178
- type: 'リアルタイム震度';
179
- title: 'リアルタイム震度';
180
- infoType: '発表' | '訂正';
181
- targetDateTimeDubious?: never;
182
- targetDuration?: never;
183
- validDateTime?: never;
184
- eventId: string;
185
- serialNo: string;
186
- infoKind: '緊急地震速報';
187
- body: PublicRealtimeBody;
188
- }
189
-
190
-
191
- export interface PublicTesting extends TelegramJSONMain {
192
- _schema: Schema;
193
- type: '緊急地震速報配信テスト';
194
- title: '緊急地震速報配信テスト';
195
- infoType: '発表' | '訂正';
196
- targetDateTimeDubious?: never;
197
- targetDuration?: never;
198
- validDateTime?: never;
199
- eventId: string;
200
- serialNo: string;
201
- infoKind: '緊急地震速報';
202
- body: PublicTestingBody;
203
- }
204
-
205
- export interface Cancel extends TelegramJSONMain {
206
- _schema: Schema;
207
- type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | 'リアルタイム震度' | '緊急地震速報配信テスト';
208
- title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | 'リアルタイム震度' | '緊急地震速報配信テスト';
209
- infoType: '取消';
210
- targetDateTimeDubious?: never;
211
- targetDuration?: never;
212
- validDateTime?: never;
213
- eventId: string;
214
- serialNo: string;
215
- infoKind: '緊急地震速報';
216
- body: CancelBody;
217
- }
218
-
219
- export type Main = PublicCommon | PublicRealtime | PublicTesting | Cancel;
220
-
221
- }
1
+ import { TelegramJSONMain } from '../../main';
2
+ import { Components } from '../../component';
3
+
4
+
5
+ export namespace EewInformation {
6
+ export interface Schema {
7
+ type: 'eew-information';
8
+ version: '1.0.0';
9
+ }
10
+
11
+ export type IntensityClass = '0' | '1' | '2' | '3' | '4' | '5-' | '5+' | '6-' | '6+' | '7';
12
+ export type LgIntensityClass = '0' | '1' | '2' | '3' | '4';
13
+
14
+ export interface WarningAreaKindLastKind extends Components.CodeName {
15
+ }
16
+
17
+ export interface WarningAreaKind extends Components.CodeName {
18
+ lastKind: WarningAreaKindLastKind;
19
+ }
20
+
21
+ export interface WarningArea extends Components.CodeName {
22
+ kind: WarningAreaKind;
23
+ }
24
+
25
+ export interface EarthquakeHypocenterReduce extends Components.CodeName {
26
+ }
27
+
28
+ export interface EarthquakeHypocenterAccuracy {
29
+ epicenters: [
30
+ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8',
31
+ '0' | '1' | '2' | '3' | '4' | '9'
32
+ ];
33
+ depth: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8';
34
+ magnitudeCalculation: '0' | '2' | '3' | '4' | '5' | '6' | '8';
35
+ numberOfMagnitudeCalculation: '0' | '1' | '2' | '3' | '4' | '5';
36
+ }
37
+
38
+ export interface EarthquakeHypocenter extends Components.CodeName {
39
+ coordinate: Components.Coordinate<'日本測地系'>;
40
+ depth: Components.UnitValueNotNull<'深さ', 'km'>;
41
+ reduce: EarthquakeHypocenterReduce;
42
+ landOrSea?: '内陸' | '海域';
43
+ accuracy: EarthquakeHypocenterAccuracy;
44
+ }
45
+
46
+ export interface EarthquakeMagnitude {
47
+ type: 'マグニチュード';
48
+ unit: 'Mj' | 'M';
49
+ value: string | null;
50
+ condition?: 'M不明';
51
+ }
52
+
53
+ export interface Earthquake {
54
+ originTime?: string;
55
+ arrivalTime: string;
56
+ condition?: '仮定震源要素';
57
+ hypocenter: EarthquakeHypocenter;
58
+ magnitude: EarthquakeMagnitude;
59
+ }
60
+
61
+ export interface IntensityForecastMaxInt {
62
+ from: IntensityClass | '不明';
63
+ to: IntensityClass | 'over' | '不明';
64
+ }
65
+
66
+ export interface IntensityForecastLgMaxInt {
67
+ from: LgIntensityClass | '不明';
68
+ to: LgIntensityClass | 'over' | '不明';
69
+ }
70
+
71
+ export interface IntensityAppendix {
72
+ maxIntChange: '0' | '1' | '2';
73
+ maxLgIntChange?: '0' | '1' | '2';
74
+ maxIntChangeReason: '0' | '1' | '2' | '3' | '4' | '9';
75
+ }
76
+
77
+ export interface IntensityRegionKind extends Components.CodeName {
78
+ }
79
+
80
+ export interface IntensityRegion extends Components.CodeName {
81
+ forecastMaxInt: IntensityForecastMaxInt;
82
+ forecastMaxLgInt?: IntensityForecastLgMaxInt;
83
+ isPlum: boolean;
84
+ isWarning: boolean;
85
+ kind: IntensityRegionKind;
86
+ condition?: '既に主要動到達と推測';
87
+ arrivalTime?: string;
88
+ }
89
+
90
+ export interface IntensityRegionReached extends IntensityRegion {
91
+ condition: '既に主要動到達と推測';
92
+ arrivalTime?: never;
93
+ }
94
+
95
+ export interface IntensityRegionUnReached extends IntensityRegion {
96
+ condition?: never;
97
+ arrivalTime: string;
98
+ }
99
+
100
+ export type IntensityRegionItem = IntensityRegionReached | IntensityRegionUnReached
101
+
102
+ export interface IntensityRealtimeStation {
103
+ code: string;
104
+ name: string;
105
+ int: IntensityClass;
106
+ k: string;
107
+ }
108
+
109
+ export interface Intensity {
110
+ forecastMaxInt: IntensityForecastMaxInt;
111
+ forecastMaxLgInt?: IntensityForecastLgMaxInt;
112
+ appendix?: IntensityAppendix;
113
+ regions: IntensityRegionItem[];
114
+ }
115
+
116
+ export interface IntensityRealtime {
117
+ stations: IntensityRealtimeStation[];
118
+ }
119
+
120
+
121
+ export interface Comments {
122
+ free?: string;
123
+ warning?: {
124
+ text: string;
125
+ codes: string[];
126
+ };
127
+ }
128
+
129
+ export interface PublicCommonBody {
130
+ isLastInfo: boolean;
131
+ isCanceled: false;
132
+ isWarning: boolean;
133
+ zones?: WarningArea[];
134
+ prefectures?: WarningArea[];
135
+ regions?: WarningArea[];
136
+ earthquake: Earthquake;
137
+ intensity?: Intensity;
138
+ text?: string;
139
+ comments?: Comments;
140
+ }
141
+
142
+ export interface PublicRealtimeBody {
143
+ isLastInfo: boolean;
144
+ isCanceled: false;
145
+ earthquake: Earthquake;
146
+ intensity?: IntensityRealtime;
147
+ text?: string;
148
+ }
149
+
150
+ export interface PublicTestingBody {
151
+ isLastInfo: false;
152
+ isCanceled: false;
153
+ text: string;
154
+ }
155
+
156
+ export interface CancelBody {
157
+ isLastInfo: true;
158
+ isCanceled: true;
159
+ text: string;
160
+ }
161
+
162
+ export interface PublicCommon extends TelegramJSONMain {
163
+ _schema: Schema;
164
+ type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)';
165
+ title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)';
166
+ infoType: '発表' | '訂正';
167
+ targetDateTimeDubious?: never;
168
+ targetDuration?: never;
169
+ validDateTime?: never;
170
+ eventId: string;
171
+ serialNo: string;
172
+ infoKind: '緊急地震速報';
173
+ body: PublicCommonBody;
174
+ }
175
+
176
+ export interface PublicRealtime extends TelegramJSONMain {
177
+ _schema: Schema;
178
+ type: 'リアルタイム震度';
179
+ title: 'リアルタイム震度';
180
+ infoType: '発表' | '訂正';
181
+ targetDateTimeDubious?: never;
182
+ targetDuration?: never;
183
+ validDateTime?: never;
184
+ eventId: string;
185
+ serialNo: string;
186
+ infoKind: '緊急地震速報';
187
+ body: PublicRealtimeBody;
188
+ }
189
+
190
+
191
+ export interface PublicTesting extends TelegramJSONMain {
192
+ _schema: Schema;
193
+ type: '緊急地震速報配信テスト';
194
+ title: '緊急地震速報配信テスト';
195
+ infoType: '発表' | '訂正';
196
+ targetDateTimeDubious?: never;
197
+ targetDuration?: never;
198
+ validDateTime?: never;
199
+ eventId: string;
200
+ serialNo: string;
201
+ infoKind: '緊急地震速報';
202
+ body: PublicTestingBody;
203
+ }
204
+
205
+ export interface Cancel extends TelegramJSONMain {
206
+ _schema: Schema;
207
+ type: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | 'リアルタイム震度' | '緊急地震速報配信テスト';
208
+ title: '緊急地震速報(予報)' | '緊急地震速報(地震動予報)' | '緊急地震速報(警報)' | 'リアルタイム震度' | '緊急地震速報配信テスト';
209
+ infoType: '取消';
210
+ targetDateTimeDubious?: never;
211
+ targetDuration?: never;
212
+ validDateTime?: never;
213
+ eventId: string;
214
+ serialNo: string;
215
+ infoKind: '緊急地震速報';
216
+ body: CancelBody;
217
+ }
218
+
219
+ export type Main = PublicCommon | PublicRealtime | PublicTesting | Cancel;
220
+
221
+ }
@@ -1,7 +1,7 @@
1
- import { EewInformation as v1_0_0 } from './1.0.0';
2
-
3
-
4
- export {
5
- v1_0_0 as Latest,
6
- v1_0_0
7
- };
1
+ import { EewInformation as v1_0_0 } from './1.0.0';
2
+
3
+
4
+ export {
5
+ v1_0_0 as Latest,
6
+ v1_0_0
7
+ };
@@ -1,110 +1,110 @@
1
- import { TelegramJSONMain } from '../../main';
2
- import { Components } from '../../component';
3
-
4
- export namespace Forecast2weekTemperature {
5
- export interface Schema {
6
- type: 'forecast-2week-temperature';
7
- version: '1.0.0';
8
- }
9
-
10
- export interface TemperatureComparison {
11
- type: '最高気温の前後2日5日間平均値の階級' | '最低気温の前後2日5日間平均値の階級' | '前後2日の5日間平均・地域平均気温階級';
12
- value: '-3' | '-2' | '-1' | '0' | '1' | '2' | '3';
13
- }
14
-
15
- export interface TimeSeriesTimeDefine {
16
- timeId: string;
17
- dateTime: string;
18
- duration: string;
19
- name: string;
20
- }
21
-
22
- export interface TimeSeriesZoneItemTemperature {
23
- refId: string;
24
- type: '地域平均気温';
25
- comparison: TemperatureComparison;
26
- }
27
-
28
- export interface TimeSeriesZoneItemKind {
29
- type: '地域平均気温';
30
- average: TimeSeriesZoneItemTemperature[];
31
- }
32
-
33
-
34
- export interface TimeSeriesZoneItem extends Components.CodeName {
35
- kinds: [
36
- TimeSeriesZoneItemKind
37
- ];
38
- }
39
-
40
- export interface TimeSeriesZone {
41
- timeDefines: TimeSeriesTimeDefine[];
42
- items: TimeSeriesZoneItem[];
43
- }
44
-
45
- export interface Zone {
46
- timeSeries: [
47
- TimeSeriesZone
48
- ];
49
- }
50
-
51
- export interface TimeSeriesStationItemAverageTemperature<Type extends '最高気温' | '最低気温'> {
52
- refId: string;
53
- type: `${Type}の前後2日5日間平均値`;
54
- unit: '度';
55
- value: string;
56
- range: {
57
- type: `${Type}の前後2日5日間平均値の予測範囲`;
58
- unit: '度';
59
- from: string;
60
- to: string;
61
- };
62
- comparison: TemperatureComparison;
63
- }
64
-
65
- export interface TimeSeriesStationItemKind {
66
- type: '最低・最高平均気温';
67
- averageMaximums: TimeSeriesStationItemAverageTemperature<'最高気温'>[];
68
- averageMinimums: TimeSeriesStationItemAverageTemperature<'最低気温'>[];
69
- }
70
-
71
-
72
- export interface TimeSeriesStationItem extends Components.CodeName {
73
- kinds: [
74
- TimeSeriesStationItemKind
75
- ];
76
- }
77
-
78
- export interface TimeSeriesStation {
79
- timeDefines: TimeSeriesTimeDefine[];
80
- items: TimeSeriesStationItem[];
81
- }
82
-
83
- export interface Station {
84
- timeSeries: [
85
- TimeSeriesStation
86
- ];
87
- }
88
-
89
- export interface PublicBody {
90
- zone: Zone;
91
- station: Station;
92
- }
93
-
94
-
95
- export interface Public extends TelegramJSONMain {
96
- _schema: Schema;
97
- type: '地方季節予報(2週間気温予報)';
98
- title: '2週間気温予報';
99
- infoType: '発表' | '訂正' | '遅延';
100
- targetDateTimeDubious: never;
101
- targetDuration: 'P5D';
102
- validDateTime: never;
103
- eventId: null;
104
- serialNo: null;
105
- infoKind: '2週間気温予報';
106
- body: PublicBody;
107
- }
108
-
109
- export type Main = Public;
110
- }
1
+ import { TelegramJSONMain } from '../../main';
2
+ import { Components } from '../../component';
3
+
4
+ export namespace Forecast2weekTemperature {
5
+ export interface Schema {
6
+ type: 'forecast-2week-temperature';
7
+ version: '1.0.0';
8
+ }
9
+
10
+ export interface TemperatureComparison {
11
+ type: '最高気温の前後2日5日間平均値の階級' | '最低気温の前後2日5日間平均値の階級' | '前後2日の5日間平均・地域平均気温階級';
12
+ value: '-3' | '-2' | '-1' | '0' | '1' | '2' | '3';
13
+ }
14
+
15
+ export interface TimeSeriesTimeDefine {
16
+ timeId: string;
17
+ dateTime: string;
18
+ duration: string;
19
+ name: string;
20
+ }
21
+
22
+ export interface TimeSeriesZoneItemTemperature {
23
+ refId: string;
24
+ type: '地域平均気温';
25
+ comparison: TemperatureComparison;
26
+ }
27
+
28
+ export interface TimeSeriesZoneItemKind {
29
+ type: '地域平均気温';
30
+ average: TimeSeriesZoneItemTemperature[];
31
+ }
32
+
33
+
34
+ export interface TimeSeriesZoneItem extends Components.CodeName {
35
+ kinds: [
36
+ TimeSeriesZoneItemKind
37
+ ];
38
+ }
39
+
40
+ export interface TimeSeriesZone {
41
+ timeDefines: TimeSeriesTimeDefine[];
42
+ items: TimeSeriesZoneItem[];
43
+ }
44
+
45
+ export interface Zone {
46
+ timeSeries: [
47
+ TimeSeriesZone
48
+ ];
49
+ }
50
+
51
+ export interface TimeSeriesStationItemAverageTemperature<Type extends '最高気温' | '最低気温'> {
52
+ refId: string;
53
+ type: `${Type}の前後2日5日間平均値`;
54
+ unit: '度';
55
+ value: string;
56
+ range: {
57
+ type: `${Type}の前後2日5日間平均値の予測範囲`;
58
+ unit: '度';
59
+ from: string;
60
+ to: string;
61
+ };
62
+ comparison: TemperatureComparison;
63
+ }
64
+
65
+ export interface TimeSeriesStationItemKind {
66
+ type: '最低・最高平均気温';
67
+ averageMaximums: TimeSeriesStationItemAverageTemperature<'最高気温'>[];
68
+ averageMinimums: TimeSeriesStationItemAverageTemperature<'最低気温'>[];
69
+ }
70
+
71
+
72
+ export interface TimeSeriesStationItem extends Components.CodeName {
73
+ kinds: [
74
+ TimeSeriesStationItemKind
75
+ ];
76
+ }
77
+
78
+ export interface TimeSeriesStation {
79
+ timeDefines: TimeSeriesTimeDefine[];
80
+ items: TimeSeriesStationItem[];
81
+ }
82
+
83
+ export interface Station {
84
+ timeSeries: [
85
+ TimeSeriesStation
86
+ ];
87
+ }
88
+
89
+ export interface PublicBody {
90
+ zone: Zone;
91
+ station: Station;
92
+ }
93
+
94
+
95
+ export interface Public extends TelegramJSONMain {
96
+ _schema: Schema;
97
+ type: '地方季節予報(2週間気温予報)';
98
+ title: '2週間気温予報';
99
+ infoType: '発表' | '訂正' | '遅延';
100
+ targetDateTimeDubious: never;
101
+ targetDuration: 'P5D';
102
+ validDateTime: never;
103
+ eventId: null;
104
+ serialNo: null;
105
+ infoKind: '2週間気温予報';
106
+ body: PublicBody;
107
+ }
108
+
109
+ export type Main = Public;
110
+ }