@windycom/plugin-devtools 2.0.0 → 3.0.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/README.md +4 -0
- package/index.mjs +2 -2
- package/package.json +2 -3
- package/types/client/AccessProducts.d.ts +8 -0
- package/types/client/BottomSlide.d.ts +3 -0
- package/types/client/BottomSveltePlugins.d.ts +8 -0
- package/types/client/Calendar.d.ts +9 -17
- package/types/client/Color.d.ts +44 -91
- package/types/client/EcmwfProduct.d.ts +0 -22
- package/types/client/Evented.d.ts +4 -0
- package/types/client/ExternalSveltePlugin.d.ts +8 -2
- package/types/client/IDB.d.ts +69 -0
- package/types/client/IconProducts.d.ts +2 -0
- package/types/client/Layer.d.ts +1 -2
- package/types/client/Metric.d.ts +13 -9
- package/types/client/MetricClasses.d.ts +4 -3
- package/types/client/Overlay.d.ts +31 -16
- package/types/client/OverlayClasses.d.ts +11 -7
- package/types/client/Plugin.d.ts +6 -2
- package/types/client/Product.d.ts +33 -30
- package/types/client/RadarPlusProduct.d.ts +19 -0
- package/types/client/Renderer.d.ts +2 -10
- package/types/client/SatelliteProduct.d.ts +1 -1
- package/types/client/SveltePlugin.d.ts +16 -5
- package/types/client/TileLayer.d.ts +1 -2
- package/types/client/TopoMap.d.ts +10 -0
- package/types/client/WindowPlugin.d.ts +9 -4
- package/types/client/appsFlyer.d.ts +2 -0
- package/types/client/baseMap.d.ts +8 -5
- package/types/client/cityLabels.d.ts +10 -2
- package/types/client/cloudSync.d.ts +3 -1
- package/types/client/colorGradients.d.ts +13 -0
- package/types/client/compatibilityCheck.d.ts +1 -0
- package/types/client/connection.d.ts +1 -1
- package/types/client/customColors.d.ts +1 -0
- package/types/client/d.ts.files/Calendar.d.ts +11 -2
- package/types/client/d.ts.files/Color.d.ts +17 -5
- package/types/client/d.ts.files/LabelsLayer.d.ts +3 -20
- package/types/client/d.ts.files/Layer.d.ts +8 -1
- package/types/client/d.ts.files/Metric.d.ts +1 -0
- package/types/client/d.ts.files/Renderer.d.ts +22 -1
- package/types/client/d.ts.files/alerts.d.ts +119 -0
- package/types/client/d.ts.files/broadcast.d.ts +51 -18
- package/types/client/d.ts.files/dataSpecifications.d.ts +121 -137
- package/types/client/d.ts.files/favs.d.ts +68 -0
- package/types/client/d.ts.files/incomingMessages.d.ts +0 -4
- package/types/client/d.ts.files/lib.d.ts +5 -7
- package/types/client/d.ts.files/notifications.d.ts +2 -2
- package/types/client/d.ts.files/plugin-params.d.ts +53 -57
- package/types/client/d.ts.files/plugins.d.ts +31 -42
- package/types/client/d.ts.files/pois.d.ts +1 -1
- package/types/client/d.ts.files/products.d.ts +16 -5
- package/types/client/d.ts.files/rootScope.d.ts +13 -31
- package/types/client/d.ts.files/startup.d.ts +65 -0
- package/types/client/d.ts.files/storage.d.ts +12 -35
- package/types/client/d.ts.files/user.d.ts +82 -24
- package/types/client/detectDevice.d.ts +0 -3
- package/types/client/device.d.ts +1 -0
- package/types/client/deviceLogging.d.ts +2 -1
- package/types/client/embed.d.ts +70 -0
- package/types/client/embed2.d.ts +14 -31
- package/types/client/errorLogger.d.ts +28 -3
- package/types/client/errors.d.ts +6 -0
- package/types/client/fetch.d.ts +41 -16
- package/types/client/format.d.ts +1 -1
- package/types/client/ga.d.ts +1 -1
- package/types/client/geolocation.d.ts +15 -7
- package/types/client/globals.d.ts +1 -0
- package/types/client/http.d.ts +17 -6
- package/types/client/idbInstances.d.ts +36 -0
- package/types/client/imaker.d.ts +112 -0
- package/types/client/imakerMain.d.ts +49 -0
- package/types/client/langFiles.d.ts +2 -0
- package/types/client/latestBroadcasts.d.ts +1 -1
- package/types/client/layers.d.ts +2 -0
- package/types/client/lib.d.ts +6 -22
- package/types/client/libHtml.d.ts +1 -1
- package/types/client/liveAlerts.d.ts +5 -0
- package/types/client/liveAlerts.types.d.ts +28 -0
- package/types/client/loadArticlesOrWhatsNew.d.ts +1 -0
- package/types/client/location.d.ts +5 -0
- package/types/client/log.d.ts +4 -1
- package/types/client/lruCache.d.ts +6 -0
- package/types/client/map.d.ts +17 -6
- package/types/client/mobile.d.ts +31 -22
- package/types/client/models.d.ts +7 -5
- package/types/client/notifications.d.ts +29 -67
- package/types/client/overlays.d.ts +4 -1
- package/types/client/params.d.ts +0 -1
- package/types/client/permanentPromos.d.ts +1 -1
- package/types/client/persistentStorage.d.ts +8 -0
- package/types/client/picker.d.ts +1 -1
- package/types/client/plugins.d.ts +4 -0
- package/types/client/pois.d.ts +1 -2
- package/types/client/promo.d.ts +6 -16
- package/types/client/pushNotifications.d.ts +1 -1
- package/types/client/queryString.d.ts +1 -1
- package/types/client/renderUtils.d.ts +1 -1
- package/types/client/renderers.d.ts +7 -3
- package/types/client/rootScope.d.ts +23 -24
- package/types/client/router.d.ts +9 -29
- package/types/client/seoParser.d.ts +0 -14
- package/types/client/serviceWorkerCtrl.d.ts +8 -0
- package/types/client/showableErrorsService.d.ts +6 -10
- package/types/client/startupWeather.d.ts +13 -9
- package/types/client/store.d.ts +2 -2
- package/types/client/storeLastPosition.d.ts +4 -0
- package/types/client/subscription.d.ts +1 -0
- package/types/client/swDownloader.d.ts +7 -7
- package/types/client/swProxy.d.ts +1 -1
- package/types/client/swUtils.d.ts +3 -3
- package/types/client/trans.d.ts +26 -37
- package/types/client/user.d.ts +7 -13
- package/types/client/userAlerts.d.ts +68 -0
- package/types/client/userConsent.d.ts +6 -0
- package/types/client/userFavs.d.ts +46 -122
- package/types/client/utils.d.ts +67 -9
- package/types/iconfont.d.ts +8 -0
- package/types/interfaces.d.ts +226 -284
- package/types/lang-files.d.ts +1334 -142
- package/types/offline.d.ts +100 -0
- package/types/types.d.ts +108 -34
- package/types/client/Bar.d.ts +0 -114
- package/types/client/BindedBar.d.ts +0 -51
- package/types/client/BindedCheckbox.d.ts +0 -30
- package/types/client/BindedSwitch.d.ts +0 -35
- package/types/client/BottomTagPlugin.d.ts +0 -8
- package/types/client/DraggableDiv.d.ts +0 -21
- package/types/client/GhostBox.d.ts +0 -17
- package/types/client/Legend.d.ts +0 -6
- package/types/client/LongTap.d.ts +0 -21
- package/types/client/MobileCalendar.d.ts +0 -51
- package/types/client/OfflineMessagesClasses.d.ts +0 -30
- package/types/client/ProductSwitch.d.ts +0 -14
- package/types/client/Scrollable.d.ts +0 -14
- package/types/client/Switch.d.ts +0 -24
- package/types/client/TimestampBar.d.ts +0 -8
- package/types/client/d.ts.files/Product.d.ts +0 -37
- package/types/client/d.ts.files/errorLogger.d.ts +0 -35
- package/types/client/d.ts.files/trans.d.ts +0 -55
- package/types/client/favs.d.ts +0 -83
- package/types/client/offlineController.d.ts +0 -20
- /package/types/client/d.ts.files/{Webcams.d.ts → webcams.d.ts} +0 -0
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { FavEventTypes } from '@plugins/favs/favs.d';
|
|
4
|
-
import { StartupArticleData, WhatsNewData } from '@plugins/startup/startup.d';
|
|
1
|
+
import { Fav, FavId } from '@windy/favs.d';
|
|
2
|
+
import { StartupArticleData, WhatsNewData } from '@windy/startup.d';
|
|
5
3
|
import { HiddenReasonType, ReasonTypes } from '@plugins/subscription/subscription';
|
|
6
4
|
import { FullRenderParameters } from '@windy/Layer.d';
|
|
7
5
|
import { HttpPayload } from '@windy/http.d';
|
|
@@ -11,8 +9,6 @@ import {
|
|
|
11
9
|
HomeLocation,
|
|
12
10
|
LatLon,
|
|
13
11
|
PickerCoords,
|
|
14
|
-
SavedAlertFav,
|
|
15
|
-
SavedFav,
|
|
16
12
|
SummaryDataHash,
|
|
17
13
|
WeatherDataPayload,
|
|
18
14
|
} from '@windy/interfaces.d';
|
|
@@ -22,10 +18,15 @@ import {
|
|
|
22
18
|
DetailDisplayType,
|
|
23
19
|
RouteType,
|
|
24
20
|
StationOrPoiType,
|
|
25
|
-
|
|
21
|
+
ExternalPluginIdent,
|
|
22
|
+
type Timestamp,
|
|
26
23
|
} from '@windy/types.d';
|
|
27
24
|
import { WebcamCategoryType } from '@windy/webcams';
|
|
28
25
|
|
|
26
|
+
import type { StoryPreview } from '@plugins/stories/stories.d';
|
|
27
|
+
import type { StationDisplayType } from '@plugins/station/station';
|
|
28
|
+
import type { PluginsListResponseDto } from '@plugins/external-plugins/external-plugins';
|
|
29
|
+
|
|
29
30
|
/**
|
|
30
31
|
* Type of source event, that led to opening any plugin
|
|
31
32
|
*/
|
|
@@ -33,12 +34,12 @@ export type PluginOpenEventSource =
|
|
|
33
34
|
| 'contextmenu'
|
|
34
35
|
| 'hp'
|
|
35
36
|
| 'url'
|
|
36
|
-
| '
|
|
37
|
+
| 'singleclick'
|
|
37
38
|
| 'poi-icon'
|
|
38
39
|
| 'search'
|
|
39
40
|
| 'detail'
|
|
40
|
-
| 'singleclick'
|
|
41
41
|
| 'favs-page'
|
|
42
|
+
| 'alerts-page'
|
|
42
43
|
| 'favs-on-hp'
|
|
43
44
|
| 'picker'
|
|
44
45
|
| 'meta'
|
|
@@ -49,6 +50,7 @@ export type PluginOpenEventSource =
|
|
|
49
50
|
| 'api'
|
|
50
51
|
| 'last'
|
|
51
52
|
| 'back-button'
|
|
53
|
+
| 'other'
|
|
52
54
|
| 'label';
|
|
53
55
|
|
|
54
56
|
export interface PluginSource {
|
|
@@ -56,7 +58,7 @@ export interface PluginSource {
|
|
|
56
58
|
poiType?: StationOrPoiType | Pois | 'stations';
|
|
57
59
|
}
|
|
58
60
|
|
|
59
|
-
interface DetailOpenParams extends PluginSource, LatLon {
|
|
61
|
+
export interface DetailOpenParams extends PluginSource, LatLon {
|
|
60
62
|
/**
|
|
61
63
|
* How to display detail
|
|
62
64
|
*/
|
|
@@ -78,21 +80,14 @@ interface DetailOpenParams extends PluginSource, LatLon {
|
|
|
78
80
|
id?: string;
|
|
79
81
|
|
|
80
82
|
/**
|
|
81
|
-
*
|
|
82
|
-
*/
|
|
83
|
-
sourceEl?: HTMLElement;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Detail was opened by clicking on Alert neotification so detail table should be scrolled to
|
|
87
|
-
* particular timestamp
|
|
83
|
+
* Detail should be scrolled to this timestamp
|
|
88
84
|
*/
|
|
89
85
|
moveToTimestamp?: boolean;
|
|
90
86
|
|
|
91
87
|
/**
|
|
92
|
-
* Array of
|
|
93
|
-
* where numbers are timestamps / tsHour
|
|
88
|
+
* Array of timestamp, when Alert was triggered
|
|
94
89
|
*/
|
|
95
|
-
|
|
90
|
+
timestamps?: Timestamp[] | null;
|
|
96
91
|
}
|
|
97
92
|
|
|
98
93
|
type WebcamDetailOpenParams =
|
|
@@ -102,8 +97,9 @@ type WebcamDetailOpenParams =
|
|
|
102
97
|
| undefined;
|
|
103
98
|
|
|
104
99
|
type RplannerDistanceParams =
|
|
100
|
+
| { view: RouteType; coords: string; id: FavId; isFav: true } // Opening from favourites
|
|
105
101
|
| { view?: RouteType; coords: string; id?: string } // Opening from URL
|
|
106
|
-
|
|
|
102
|
+
| Fav
|
|
107
103
|
// | RplannerOpeningAsFavs // Clicking on route stored as fav
|
|
108
104
|
| LatLon[] // User puts two airports is search bar
|
|
109
105
|
| (LatLon & {
|
|
@@ -125,13 +121,12 @@ export type PluginsOpenParams = {
|
|
|
125
121
|
detail: DetailOpenParams;
|
|
126
122
|
picker: PickerOpenParams;
|
|
127
123
|
'picker-mobile': PickerOpenParams;
|
|
128
|
-
favs:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
station: PluginSource & { id: string };
|
|
124
|
+
favs: PluginSource & { importObsoleteFavs?: boolean };
|
|
125
|
+
station: PluginSource & {
|
|
126
|
+
id: string;
|
|
127
|
+
moveToTimestamp?: Timestamp;
|
|
128
|
+
view?: StationDisplayType;
|
|
129
|
+
};
|
|
135
130
|
multimodel: LatLon & PluginSource & { name?: string | null };
|
|
136
131
|
webcams: (PluginSource & { category: WebcamCategoryType }) | undefined;
|
|
137
132
|
'webcams-detail': PluginSource & WebcamDetailOpenParams;
|
|
@@ -152,49 +147,44 @@ export type PluginsOpenParams = {
|
|
|
152
147
|
contextmenu: PluginSource & LatLon & { containerPoint?: L.Point };
|
|
153
148
|
subscription:
|
|
154
149
|
| (PluginSource & {
|
|
155
|
-
fscNext?: string;
|
|
156
150
|
promote?: ReasonTypes | HiddenReasonType;
|
|
157
151
|
pendingError?: Error & { responseText: string };
|
|
158
152
|
})
|
|
159
153
|
| undefined;
|
|
160
|
-
alerts:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
154
|
+
'alerts-edit': PluginSource &
|
|
155
|
+
(
|
|
156
|
+
| { action: 'edit'; id: string }
|
|
157
|
+
| { action: 'migration'; favId: string }
|
|
158
|
+
| {
|
|
159
|
+
action: 'new';
|
|
160
|
+
lat: number;
|
|
161
|
+
lon: number;
|
|
162
|
+
locationName?: string;
|
|
163
|
+
}
|
|
164
|
+
);
|
|
165
|
+
alerts: PluginSource & {
|
|
166
|
+
message?: string;
|
|
167
|
+
};
|
|
170
168
|
distance: PluginSource & RplannerDistanceParams;
|
|
171
169
|
rplanner: PluginSource & RplannerDistanceParams;
|
|
172
|
-
airport: PluginSource & {
|
|
173
|
-
// Airport plugin can receive ICAO code as id || icao property
|
|
174
|
-
icao?: string;
|
|
175
|
-
id?: string;
|
|
176
|
-
};
|
|
177
|
-
'save-password': PluginSource & {
|
|
178
|
-
username: string;
|
|
179
|
-
password: string;
|
|
180
|
-
};
|
|
170
|
+
airport: PluginSource & { id: string };
|
|
181
171
|
share: undefined;
|
|
182
172
|
'nearest-stations': PluginSource & LatLon & { compactVersion?: boolean; includeAirq?: boolean };
|
|
183
173
|
'nearest-airq': PluginSource & LatLon;
|
|
184
174
|
'nearest-webcams-mobile': PluginSource & LatLon;
|
|
185
175
|
'nearest-webcams': PluginSource & LatLon;
|
|
186
176
|
'external-plugins':
|
|
187
|
-
| (PluginSource & {
|
|
177
|
+
| (PluginSource & {
|
|
178
|
+
id?: string;
|
|
179
|
+
qs?: PluginsQsParams['external-plugins'];
|
|
180
|
+
installPlugin?: PluginsListResponseDto;
|
|
181
|
+
})
|
|
188
182
|
| undefined;
|
|
189
|
-
browser: PluginSource & {
|
|
190
|
-
options: OpenOptions;
|
|
191
|
-
onFinished?: () => void;
|
|
192
|
-
};
|
|
193
183
|
sounding: PluginSource & LatLon & { name?: string };
|
|
194
184
|
radiosonde: PluginSource & { id: string; lat?: number; lon?: number };
|
|
195
185
|
startup: PluginSource;
|
|
196
186
|
'startup-whats-new': PluginSource & { data: WhatsNewData };
|
|
197
|
-
'startup-articles': PluginSource & { data: StartupArticleData
|
|
187
|
+
'startup-articles': PluginSource & { data: StartupArticleData };
|
|
198
188
|
'startup-weather': PluginSource & {
|
|
199
189
|
coords: HomeLocation | GeolocationInfo;
|
|
200
190
|
promises: {
|
|
@@ -216,10 +206,17 @@ export type PluginsOpenParams = {
|
|
|
216
206
|
showSystemDialog?: boolean;
|
|
217
207
|
})
|
|
218
208
|
| undefined;
|
|
219
|
-
|
|
209
|
+
'location-permission':
|
|
210
|
+
| (PluginSource & {
|
|
211
|
+
resolve?: (value: boolean | PromiseLike<boolean>) => void;
|
|
212
|
+
})
|
|
213
|
+
| undefined;
|
|
220
214
|
'developer-mode': (PluginSource & { qs: Record<string, string> | undefined }) | undefined;
|
|
221
215
|
'windy-external-plugin': PluginSource & LatLon;
|
|
222
|
-
menu: PluginSource
|
|
216
|
+
menu: PluginSource & { scrollTo?: 'pois' };
|
|
217
|
+
stories: { id: string; sortedAndEnhancedPreviews?: StoryPreview[] } & PluginSource;
|
|
218
|
+
onboarding: (PluginSource & { getUserInterests?: boolean }) | undefined;
|
|
219
|
+
'heatmaps-redirect': PluginSource & { id?: string };
|
|
223
220
|
} & {
|
|
224
221
|
[external: ExternalPluginIdent]:
|
|
225
222
|
| (PluginSource & { query: Record<string, string> | undefined })
|
|
@@ -228,7 +225,6 @@ export type PluginsOpenParams = {
|
|
|
228
225
|
} & { [others: string]: undefined };
|
|
229
226
|
|
|
230
227
|
export type PluginsQsParams = {
|
|
231
|
-
subscription: ProviderConstructorParams | undefined;
|
|
232
228
|
'external-plugins': Record<string, string> | undefined;
|
|
233
229
|
'developer-mode': Record<string, string> | undefined;
|
|
234
230
|
detail: { hrTimestamps?: string; name?: string; moveToTimestamp?: string };
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BottomSveltePlugin } from '@windy/BottomSveltePlugins';
|
|
2
2
|
import { Plugin } from '@windy/Plugin';
|
|
3
3
|
import { SveltePanePlugin } from '@windy/SveltePanePlugin';
|
|
4
4
|
import { SveltePlugin } from '@windy/SveltePlugin';
|
|
5
5
|
import { TagPlugin } from '@windy/TagPlugin';
|
|
6
6
|
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
satellite: BottomTagPlugin<'satellite'>;
|
|
11
|
-
'cap-alerts': BottomTagPlugin<'cap-alerts'>;
|
|
12
|
-
'day-switcher': BottomTagPlugin<'day-switcher'>;
|
|
7
|
+
export interface BottomSveltePlugins {
|
|
8
|
+
'mobile-calendar'?: BottomSveltePlugin<'mobile-calendar'>;
|
|
9
|
+
'progress-bar'?: BottomSveltePlugin<'progress-bar'>;
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
'
|
|
16
|
-
|
|
17
|
-
// embed or desktop only
|
|
18
|
-
'progress-bar'?: BottomTagPlugin<'progress-bar'>;
|
|
11
|
+
'day-switcher': BottomSveltePlugin<'day-switcher'>;
|
|
12
|
+
'cap-alerts': BottomSveltePlugin<'cap-alerts'>;
|
|
13
|
+
accumulations: BottomSveltePlugin<'accumulations'>;
|
|
19
14
|
}
|
|
20
15
|
|
|
21
16
|
export interface SveltePanePlugins {
|
|
22
17
|
favs: SveltePanePlugin<'favs'>;
|
|
18
|
+
'alerts-edit': SveltePanePlugin<'alerts-edit'>;
|
|
23
19
|
alerts: SveltePanePlugin<'alerts'>;
|
|
24
20
|
colors: SveltePanePlugin<'colors'>;
|
|
25
21
|
articles: SveltePanePlugin<'articles'>;
|
|
@@ -32,12 +28,12 @@ export interface SveltePanePlugins {
|
|
|
32
28
|
radiosonde: SveltePanePlugin<'radiosonde'>;
|
|
33
29
|
airport: SveltePanePlugin<'airport'>;
|
|
34
30
|
info: SveltePanePlugin<'info'>;
|
|
35
|
-
offline: SveltePlugin<'offline'>;
|
|
36
31
|
webcams: SveltePanePlugin<'webcams'>;
|
|
37
32
|
'webcams-detail': SveltePanePlugin<'webcams-detail'>;
|
|
38
33
|
'webcams-add': SveltePanePlugin<'webcams-add'>;
|
|
39
34
|
'webcams-edit': SveltePanePlugin<'webcams-edit'>;
|
|
40
35
|
'webcams-remove': SveltePanePlugin<'webcams-remove'>;
|
|
36
|
+
|
|
41
37
|
uploader?: SveltePanePlugin<'uploader'>;
|
|
42
38
|
'external-plugins'?: SveltePanePlugin<'external-plugins'>;
|
|
43
39
|
}
|
|
@@ -58,61 +54,54 @@ export interface SveltePlugins {
|
|
|
58
54
|
rplanner: SveltePlugin<'rplanner'>;
|
|
59
55
|
menu: SveltePlugin<'menu'>;
|
|
60
56
|
'fav-alert-menu': SveltePlugin<'fav-alert-menu'>;
|
|
57
|
+
radar: SveltePlugin<'radar'>;
|
|
58
|
+
satellite: SveltePlugin<'satellite'>;
|
|
59
|
+
'radar-plus': SveltePlugin<'radar-plus'>;
|
|
60
|
+
'map-selector': SveltePlugin<'map-selector'>;
|
|
61
61
|
|
|
62
62
|
// Mobile/desktop only plugins
|
|
63
63
|
distance?: SveltePlugin<'distance'>;
|
|
64
64
|
'watch-faces'?: SveltePlugin<'watch-faces'>;
|
|
65
65
|
'app-review-dialog'?: SveltePlugin<'app-review-dialog'>;
|
|
66
|
+
widgets?: SveltePlugin<'widgets'>;
|
|
67
|
+
garmin?: SveltePlugin<'garmin'>;
|
|
66
68
|
'fav-layers'?: SveltePlugin<'fav-layers'>;
|
|
69
|
+
onboarding?: SveltePlugin<'onboarding'>;
|
|
67
70
|
'developer-mode'?: SveltePlugin<'developer-mode'>;
|
|
68
71
|
'pin-to-homepage'?: SveltePlugin<'pin-to-homepage'>;
|
|
69
72
|
'startup-whats-new'?: SveltePlugin<'startup-whats-new'>;
|
|
70
73
|
'rhpane-top': SveltePlugin<'rhpane-top'>;
|
|
74
|
+
rhbottom?: SveltePlugin<'rhbottom'>;
|
|
75
|
+
'location-permission'?: SveltePlugin<'location-permission'>;
|
|
71
76
|
|
|
72
77
|
'startup-weather'?: SveltePlugin<'startup-weather'>;
|
|
78
|
+
'mobile-ui'?: SveltePlugin<'mobile-ui'>;
|
|
79
|
+
'embed-ui'?: SveltePlugin<'embed-ui'>;
|
|
80
|
+
contextmenu?: SveltePlugin<'contextmenu'>;
|
|
81
|
+
upload: SveltePlugin<'upload'>;
|
|
82
|
+
search: SveltePlugin<'search'>;
|
|
83
|
+
'startup-articles'?: SveltePlugin<'startup-articles'>;
|
|
84
|
+
'picker-mobile'?: SveltePlugin<'picker-mobile'>; // to Svelte plugin
|
|
73
85
|
|
|
74
86
|
// Used as fake plugin for any other external plugin
|
|
75
87
|
// basically we are unable to type each individual external plugin
|
|
76
88
|
'windy-external-plugin'?: SveltePlugin<'windy-external-plugin'>;
|
|
89
|
+
stories: SveltePlugin<'stories'>;
|
|
77
90
|
}
|
|
78
91
|
|
|
79
92
|
export interface PlainPlugins {
|
|
80
93
|
'gl-particles': Plugin<'gl-particles'>;
|
|
81
94
|
'legacy-tile-render': Plugin<'legacy-tile-render'>;
|
|
82
95
|
particles: Plugin<'particles'>;
|
|
83
|
-
|
|
96
|
+
isolines: Plugin<'isolines'>;
|
|
84
97
|
}
|
|
85
98
|
|
|
86
99
|
export interface TagPlugins {
|
|
87
|
-
|
|
88
|
-
* Libraries with possible CSS, that remains opened
|
|
89
|
-
*/
|
|
90
|
-
rhbottom: TagPlugin<'rhbottom'>;
|
|
100
|
+
// These plugins have css only (no html)
|
|
91
101
|
'poi-libs': TagPlugin<'poi-libs'>;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Tag Plugins
|
|
95
|
-
*/
|
|
96
|
-
upload: TagPlugin<'upload'>;
|
|
97
|
-
screenshot: TagPlugin<'screenshot'>;
|
|
98
|
-
isolines: TagPlugin<'isolines'>;
|
|
99
|
-
search: TagPlugin<'search'>;
|
|
100
|
-
|
|
101
|
-
// not embed plugins
|
|
102
|
-
'startup-articles'?: TagPlugin<'startup-articles'>;
|
|
103
|
-
|
|
104
|
-
// desktop only plugins
|
|
105
|
-
contextmenu?: TagPlugin<'contextmenu'>;
|
|
106
102
|
picker?: TagPlugin<'picker'>;
|
|
107
103
|
globe?: TagPlugin<'globe'>;
|
|
108
|
-
|
|
109
|
-
// mobile only plugins
|
|
110
|
-
'picker-mobile'?: TagPlugin<'picker-mobile'>;
|
|
111
|
-
'promo-mobile-intro'?: TagPlugin<'promo-mobile-intro'>;
|
|
112
|
-
profile?: TagPlugin<'profile'>;
|
|
113
|
-
'save-password'?: TagPlugin<'save-password'>;
|
|
114
|
-
browser?: TagPlugin<'browser'>;
|
|
115
|
-
'map-selector'?: TagPlugin<'map-selector'>;
|
|
104
|
+
'heatmaps-redirect': TagPlugin<'heatmaps-redirect'>;
|
|
116
105
|
}
|
|
117
106
|
|
|
118
107
|
export interface Plugins
|
|
@@ -120,10 +109,10 @@ export interface Plugins
|
|
|
120
109
|
SveltePlugins,
|
|
121
110
|
SveltePanePlugins,
|
|
122
111
|
PlainPlugins,
|
|
123
|
-
|
|
112
|
+
BottomSveltePlugins {}
|
|
124
113
|
|
|
125
114
|
export interface WindowPlugins
|
|
126
115
|
extends TagPlugins,
|
|
127
116
|
SveltePlugins,
|
|
128
117
|
SveltePanePlugins,
|
|
129
|
-
|
|
118
|
+
BottomSveltePlugins {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DataSpecifications } from '@windy/dataSpecifications.d';
|
|
2
2
|
import type { Pois } from '@windy/rootScope.d';
|
|
3
|
-
import type { LoadedTranslations } from '@windy/
|
|
3
|
+
import type { LoadedTranslations } from '@windy/types';
|
|
4
4
|
|
|
5
5
|
export type PoisCheckboxeDef = {
|
|
6
6
|
checkboxTranslation?: keyof LoadedTranslations;
|
|
@@ -1,33 +1,42 @@
|
|
|
1
|
+
import { AccessProduct, AccessCProduct } from '@windy/AccessProducts';
|
|
1
2
|
import { AromeProduct } from '@windy/AromeProduct';
|
|
2
|
-
import { EcmwfAnalysisProduct } from '@windy/EcmwfAnalysisProduct';
|
|
3
3
|
import { EcmwfProduct } from '@windy/EcmwfProduct';
|
|
4
4
|
import { Product } from '@windy/Product';
|
|
5
|
+
import { RadarPlusProduct } from '@windy/RadarPlusProduct';
|
|
5
6
|
import { SatelliteProduct } from '@windy/SatelliteProduct';
|
|
7
|
+
|
|
6
8
|
import { Products } from '@windy/rootScope.d';
|
|
7
9
|
|
|
8
10
|
export type products = Implements<
|
|
9
11
|
{ [P in Products]: Product },
|
|
10
12
|
{
|
|
11
|
-
bomAccess:
|
|
13
|
+
bomAccess: AccessProduct;
|
|
14
|
+
bomAccessAd: AccessCProduct;
|
|
15
|
+
bomAccessBn: AccessCProduct;
|
|
16
|
+
bomAccessDn: AccessCProduct;
|
|
17
|
+
bomAccessNq: AccessCProduct;
|
|
18
|
+
bomAccessPh: AccessCProduct;
|
|
19
|
+
bomAccessSy: AccessCProduct;
|
|
20
|
+
bomAccessVt: AccessCProduct;
|
|
12
21
|
mblue: Product;
|
|
13
22
|
ecmwf: EcmwfProduct;
|
|
14
23
|
ecmwfWaves: Product;
|
|
15
|
-
|
|
16
|
-
ecmwfAnalysis: EcmwfAnalysisProduct;
|
|
24
|
+
ecmwfAnalysis: EcmwfProduct;
|
|
17
25
|
canHrdps: Product;
|
|
18
26
|
canRdwpsWaves: Product;
|
|
19
27
|
cams: Product;
|
|
20
28
|
camsEu: Product;
|
|
21
29
|
cmems: Product;
|
|
30
|
+
czeAladin: Product;
|
|
22
31
|
gfs: Product;
|
|
23
32
|
gfsWaves: Product;
|
|
24
33
|
icon: Product;
|
|
25
34
|
iconD2: Product;
|
|
26
35
|
iconEu: Product;
|
|
27
36
|
iconEuWaves: Product;
|
|
28
|
-
iconWaves: Product;
|
|
29
37
|
arome: Product;
|
|
30
38
|
aromeAntilles: AromeProduct;
|
|
39
|
+
aromeFrance: AromeProduct;
|
|
31
40
|
aromeReunion: AromeProduct;
|
|
32
41
|
nems: Product;
|
|
33
42
|
namAlaska: Product;
|
|
@@ -37,6 +46,7 @@ export type products = Implements<
|
|
|
37
46
|
efi: Product;
|
|
38
47
|
radar: Product;
|
|
39
48
|
satellite: SatelliteProduct;
|
|
49
|
+
radarPlus: RadarPlusProduct;
|
|
40
50
|
hrrrAlaska: Product;
|
|
41
51
|
hrrrConus: Product;
|
|
42
52
|
ukv: Product;
|
|
@@ -45,5 +55,6 @@ export type products = Implements<
|
|
|
45
55
|
activeFires: Product;
|
|
46
56
|
jmaMsm: Product;
|
|
47
57
|
jmaCwmWaves: Product;
|
|
58
|
+
topoMap: Product;
|
|
48
59
|
}
|
|
49
60
|
>;
|
|
@@ -1,43 +1,25 @@
|
|
|
1
|
-
export type Levels = typeof import('./rootScope').levels[number];
|
|
1
|
+
export type Levels = (typeof import('./rootScope').levels)[number];
|
|
2
2
|
|
|
3
|
-
export type Overlays = typeof import('./rootScope').overlays[number];
|
|
3
|
+
export type Overlays = (typeof import('./rootScope').overlays)[number];
|
|
4
4
|
|
|
5
|
-
export type
|
|
5
|
+
export type LocalProducts = (typeof import('./rootScope').localProducts)[number];
|
|
6
6
|
|
|
7
|
-
export type
|
|
7
|
+
export type GlobalProducts = (typeof import('./rootScope').globalProducts)[number];
|
|
8
8
|
|
|
9
|
-
export type
|
|
9
|
+
export type SeaProducts = (typeof import('./rootScope').seaProducts)[number];
|
|
10
10
|
|
|
11
|
-
export type
|
|
11
|
+
export type AirQualityProducts = (typeof import('./rootScope').airQualityProducts)[number];
|
|
12
12
|
|
|
13
|
-
export type
|
|
13
|
+
export type LocalPointProducts = (typeof import('./rootScope').localPointProducts)[number];
|
|
14
14
|
|
|
15
|
-
export type
|
|
15
|
+
export type GlobalPointProducts = (typeof import('./rootScope').globalPointProducts)[number];
|
|
16
16
|
|
|
17
|
-
export type
|
|
17
|
+
export type PointProducts = (typeof import('./rootScope').pointProducts)[number];
|
|
18
18
|
|
|
19
|
-
export type
|
|
19
|
+
export type Products = (typeof import('./rootScope').products)[number];
|
|
20
20
|
|
|
21
|
-
export type
|
|
21
|
+
export type SupportedLanguages = (typeof import('./rootScope').supportedLanguages)[number];
|
|
22
22
|
|
|
23
|
-
export type
|
|
23
|
+
export type Pois = keyof typeof import('./rootScope').pois;
|
|
24
24
|
|
|
25
|
-
export type
|
|
26
|
-
| 'favs'
|
|
27
|
-
| 'cities'
|
|
28
|
-
| 'wind'
|
|
29
|
-
| 'temp'
|
|
30
|
-
| 'precip'
|
|
31
|
-
| 'metars'
|
|
32
|
-
| 'radiosonde'
|
|
33
|
-
| 'cams'
|
|
34
|
-
| 'pgspots'
|
|
35
|
-
| 'kitespots'
|
|
36
|
-
| 'surfspots'
|
|
37
|
-
| 'tide'
|
|
38
|
-
| 'radiation'
|
|
39
|
-
| 'firespots'
|
|
40
|
-
| 'airq'
|
|
41
|
-
| 'empty';
|
|
42
|
-
|
|
43
|
-
export type Isolines = 'off' | 'pressure' | 'gh' | 'temp' | 'deg0';
|
|
25
|
+
export type Isolines = (typeof import('./rootScope').isolinesType)[number];
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { RelatedHomepageArticlesResponseDto } from '@plugins/articles/articles.d';
|
|
2
|
+
import type { Timestamp } from '@windy/types';
|
|
3
|
+
|
|
4
|
+
export type StartupNewsType = 'hp-article' | 'whats-new';
|
|
5
|
+
|
|
6
|
+
export interface StartupItem {
|
|
7
|
+
type: StartupNewsType;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface StartupResponse {
|
|
11
|
+
'hp-articles'?: StartupArticleData[];
|
|
12
|
+
'whats-new'?: WhatsNewData;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface StartupArticleData extends RelatedHomepageArticlesResponseDto, StartupItem {
|
|
16
|
+
type: 'hp-article';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface WhatsNewData extends StartupItem {
|
|
20
|
+
type: 'whats-new';
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
contributors: {
|
|
24
|
+
name: string;
|
|
25
|
+
avatarUrl: string;
|
|
26
|
+
}[];
|
|
27
|
+
content: {
|
|
28
|
+
new?: string;
|
|
29
|
+
improved?: string;
|
|
30
|
+
fixed?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Info about articles, user has already seen
|
|
36
|
+
*/
|
|
37
|
+
export interface SeenArticle {
|
|
38
|
+
/**
|
|
39
|
+
* How many times the article has been seen
|
|
40
|
+
* (one count is added only if the article has been seen after 12 hours from the last seen time)
|
|
41
|
+
*/
|
|
42
|
+
count: number;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Marks beginning of 12h interval
|
|
46
|
+
*/
|
|
47
|
+
seen: Timestamp;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Article was liked by user
|
|
51
|
+
*/
|
|
52
|
+
liked?: boolean;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface SeenStory {
|
|
56
|
+
/**
|
|
57
|
+
* Timestamp when was story seen
|
|
58
|
+
*/
|
|
59
|
+
seen: Timestamp;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Story was liked by user
|
|
63
|
+
*/
|
|
64
|
+
liked?: boolean;
|
|
65
|
+
}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { MinifestObject } from '@windy/Calendar.d';
|
|
2
|
-
import { Fav, LastSentDevice, SavedFav, SeenArticle } from '@windy/interfaces.d';
|
|
3
|
-
import { StoredTransFile } from '@windy/trans.d';
|
|
4
1
|
import { Timestamp } from '@windy/types.d';
|
|
5
|
-
|
|
6
|
-
import
|
|
2
|
+
import { Fav, type ObsoleteFav } from '@windy/favs.d';
|
|
3
|
+
import { SearchRecent } from '@plugins/search/search';
|
|
7
4
|
|
|
8
5
|
export interface StorageData {
|
|
9
|
-
/**
|
|
10
|
-
* Number of hits for every single promo2 id.
|
|
11
|
-
*/
|
|
6
|
+
/** @deprecated replaced by IDB */
|
|
12
7
|
promos2?: Record<string, number>;
|
|
13
8
|
|
|
14
9
|
/**
|
|
@@ -35,18 +30,6 @@ export interface StorageData {
|
|
|
35
30
|
*/
|
|
36
31
|
rateDialogShown?: Timestamp;
|
|
37
32
|
|
|
38
|
-
lastSentDevice?: LastSentDevice;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Articles, user has seen on particular device
|
|
42
|
-
*/
|
|
43
|
-
articles?: Record<string, SeenArticle>;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Airport detail offline cache
|
|
47
|
-
*/
|
|
48
|
-
'offline/airport'?: ReturnType<LRUCache<string>['toJSON']>;
|
|
49
|
-
|
|
50
33
|
/**
|
|
51
34
|
* Used by dev plugin for plugins development
|
|
52
35
|
*/
|
|
@@ -54,27 +37,21 @@ export interface StorageData {
|
|
|
54
37
|
|
|
55
38
|
version?: string;
|
|
56
39
|
|
|
57
|
-
// TODO - centralize all these template strings to the logic directly in their modules
|
|
58
|
-
|
|
59
40
|
[key: `settings_${string}_ts`]: Timestamp | null;
|
|
60
41
|
|
|
61
|
-
[key: `lang/${string}.json`]: StoredTransFile | null;
|
|
62
|
-
|
|
63
|
-
[key: `favs${number}`]: Record<string, SavedFav> | null;
|
|
64
|
-
|
|
65
|
-
// TODO - remove this
|
|
66
|
-
[key: `favs${number}_overflowed`]: Record<string, SavedFav> | null;
|
|
67
|
-
|
|
68
|
-
[key: `favs${number}_ts`]: Timestamp | null;
|
|
69
|
-
|
|
70
|
-
[key: `recents${number}`]: Record<string, Fav> | null;
|
|
71
|
-
|
|
72
|
-
[key: `lastMinifest/${string}`]: MinifestObject | null;
|
|
73
|
-
|
|
74
42
|
/**
|
|
75
43
|
* Other dynamically add storage data
|
|
76
44
|
*/
|
|
77
45
|
[ident: string]: unknown | null;
|
|
46
|
+
|
|
47
|
+
/** @deprecated & replaced by IDB */
|
|
48
|
+
[key: `recents${number}`]: Record<string, SearchRecent> | null;
|
|
49
|
+
|
|
50
|
+
/** @deprecated & replaced by IDB */
|
|
51
|
+
[key: `favs${number}`]: Record<string, Fav | ObsoleteFav> | null;
|
|
52
|
+
|
|
53
|
+
/** @deprecated & replaced by IDB */
|
|
54
|
+
[key: `favs${number}_ts`]: Timestamp | null;
|
|
78
55
|
}
|
|
79
56
|
|
|
80
57
|
export type StorageDataKey = keyof StorageData & string;
|