@windycom/plugin-devtools 1.0.9 → 3.0.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 (134) hide show
  1. package/README.md +4 -0
  2. package/index.mjs +2 -2
  3. package/package.json +2 -3
  4. package/types/client/AccessProducts.d.ts +8 -0
  5. package/types/client/BottomSveltePlugins.d.ts +8 -0
  6. package/types/client/Calendar.d.ts +9 -17
  7. package/types/client/Color.d.ts +43 -90
  8. package/types/client/Drag.d.ts +8 -1
  9. package/types/client/Evented.d.ts +4 -0
  10. package/types/client/ExternalSveltePlugin.d.ts +2 -1
  11. package/types/client/IDB.d.ts +63 -0
  12. package/types/client/IconProducts.d.ts +2 -0
  13. package/types/client/Layer.d.ts +1 -2
  14. package/types/client/Metric.d.ts +8 -8
  15. package/types/client/MetricClasses.d.ts +4 -3
  16. package/types/client/Overlay.d.ts +30 -15
  17. package/types/client/OverlayClasses.d.ts +11 -7
  18. package/types/client/Plugin.d.ts +2 -2
  19. package/types/client/Product.d.ts +53 -30
  20. package/types/client/RadarPlusProduct.d.ts +19 -0
  21. package/types/client/Renderer.d.ts +2 -10
  22. package/types/client/SveltePanePlugin.d.ts +4 -3
  23. package/types/client/SveltePlugin.d.ts +9 -5
  24. package/types/client/TileLayer.d.ts +1 -2
  25. package/types/client/TopoMap.d.ts +10 -0
  26. package/types/client/Window.d.ts +0 -4
  27. package/types/client/WindowPlugin.d.ts +15 -10
  28. package/types/client/appsFlyer.d.ts +3 -0
  29. package/types/client/baseMap.d.ts +8 -5
  30. package/types/client/cityLabels.d.ts +10 -2
  31. package/types/client/cloudSync.d.ts +3 -1
  32. package/types/client/colorGradients.d.ts +13 -0
  33. package/types/client/d.ts.files/Calendar.d.ts +11 -2
  34. package/types/client/d.ts.files/Color.d.ts +16 -5
  35. package/types/client/d.ts.files/LabelsLayer.d.ts +1 -18
  36. package/types/client/d.ts.files/Layer.d.ts +8 -1
  37. package/types/client/d.ts.files/Metric.d.ts +1 -0
  38. package/types/client/d.ts.files/Renderer.d.ts +22 -1
  39. package/types/client/d.ts.files/alerts.d.ts +120 -0
  40. package/types/client/d.ts.files/broadcast.d.ts +44 -17
  41. package/types/client/d.ts.files/dataSpecifications.d.ts +94 -137
  42. package/types/client/d.ts.files/favs.d.ts +69 -0
  43. package/types/client/d.ts.files/incomingMessages.d.ts +0 -4
  44. package/types/client/d.ts.files/notifications.d.ts +2 -2
  45. package/types/client/d.ts.files/plugin-params.d.ts +44 -58
  46. package/types/client/d.ts.files/plugins.d.ts +37 -52
  47. package/types/client/d.ts.files/pois.d.ts +1 -1
  48. package/types/client/d.ts.files/products.d.ts +19 -2
  49. package/types/client/d.ts.files/rootScope.d.ts +3 -21
  50. package/types/client/d.ts.files/satellite.d.ts +1 -0
  51. package/types/client/d.ts.files/startup.d.ts +59 -0
  52. package/types/client/d.ts.files/storage.d.ts +12 -35
  53. package/types/client/d.ts.files/user.d.ts +79 -24
  54. package/types/client/device.d.ts +0 -1
  55. package/types/client/deviceLogging.d.ts +2 -1
  56. package/types/client/embed2.d.ts +15 -35
  57. package/types/client/fetch.d.ts +31 -24
  58. package/types/client/ga.d.ts +4 -0
  59. package/types/client/geolocation.d.ts +14 -7
  60. package/types/client/globals.d.ts +1 -0
  61. package/types/client/http.d.ts +17 -0
  62. package/types/client/idbInstances.d.ts +45 -0
  63. package/types/client/interpolator.d.ts +2 -1
  64. package/types/client/langFiles.d.ts +2 -0
  65. package/types/client/layers.d.ts +2 -0
  66. package/types/client/lib.d.ts +7 -25
  67. package/types/client/libHtml.d.ts +1 -1
  68. package/types/client/loadArticlesOrWhatsNew.d.ts +1 -0
  69. package/types/client/log.d.ts +1 -0
  70. package/types/client/lruCache.d.ts +6 -0
  71. package/types/client/map.d.ts +17 -6
  72. package/types/client/mobile.d.ts +33 -27
  73. package/types/client/models.d.ts +1 -1
  74. package/types/client/nativeStorage.d.ts +0 -14
  75. package/types/client/notifications.d.ts +32 -67
  76. package/types/client/overlays.d.ts +4 -1
  77. package/types/client/params.d.ts +0 -1
  78. package/types/client/patchAndPromoCtrl.d.ts +13 -0
  79. package/types/client/permanentPromos.d.ts +1 -2
  80. package/types/client/persistentStorage.d.ts +8 -0
  81. package/types/client/picker.d.ts +1 -1
  82. package/types/client/pois.d.ts +1 -2
  83. package/types/client/promo.d.ts +16 -32
  84. package/types/client/pushNotifications.d.ts +13 -1
  85. package/types/client/queryString.d.ts +1 -1
  86. package/types/client/renderUtils.d.ts +1 -1
  87. package/types/client/renderers.d.ts +7 -3
  88. package/types/client/rootScope.d.ts +22 -27
  89. package/types/client/router.d.ts +10 -6
  90. package/types/client/seoParser.d.ts +21 -0
  91. package/types/client/serviceWorkerCtrl.d.ts +8 -0
  92. package/types/client/startupWeather.d.ts +27 -0
  93. package/types/client/store.d.ts +2 -2
  94. package/types/client/storeLastPosition.d.ts +1 -0
  95. package/types/client/subscription.d.ts +1 -0
  96. package/types/client/swDownloader.d.ts +7 -7
  97. package/types/client/swProxy.d.ts +1 -1
  98. package/types/client/swUtils.d.ts +3 -3
  99. package/types/client/trans.d.ts +26 -37
  100. package/types/client/user.d.ts +11 -14
  101. package/types/client/userAlerts.d.ts +68 -0
  102. package/types/client/userConsent.d.ts +6 -0
  103. package/types/client/userFavs.d.ts +46 -128
  104. package/types/client/utils.d.ts +46 -10
  105. package/types/iconfont.d.ts +6 -4
  106. package/types/interfaces.d.ts +199 -348
  107. package/types/lang-files.d.ts +736 -128
  108. package/types/offline.d.ts +100 -0
  109. package/types/types.d.ts +116 -29
  110. package/types/client/Bar.d.ts +0 -114
  111. package/types/client/BindedBar.d.ts +0 -51
  112. package/types/client/BindedCheckbox.d.ts +0 -30
  113. package/types/client/BindedDropDown.d.ts +0 -14
  114. package/types/client/BindedSwitch.d.ts +0 -35
  115. package/types/client/BottomTagPlugin.d.ts +0 -8
  116. package/types/client/Detail1hCheckbox.d.ts +0 -4
  117. package/types/client/DraggableDiv.d.ts +0 -21
  118. package/types/client/DropDown.d.ts +0 -37
  119. package/types/client/GhostBox.d.ts +0 -17
  120. package/types/client/Legend.d.ts +0 -6
  121. package/types/client/LongTap.d.ts +0 -21
  122. package/types/client/MobileCalendar.d.ts +0 -47
  123. package/types/client/OfflineMessagesClasses.d.ts +0 -30
  124. package/types/client/ProductSwitch.d.ts +0 -14
  125. package/types/client/Scrollable.d.ts +0 -14
  126. package/types/client/Switch.d.ts +0 -24
  127. package/types/client/TimestampBar.d.ts +0 -8
  128. package/types/client/Webcams.d.ts +0 -66
  129. package/types/client/d.ts.files/Product.d.ts +0 -37
  130. package/types/client/d.ts.files/trans.d.ts +0 -55
  131. package/types/client/favs.d.ts +0 -83
  132. package/types/client/hp.d.ts +0 -15
  133. package/types/client/offlineController.d.ts +0 -20
  134. /package/types/client/{loadersUI.d.ts → customColors.d.ts} +0 -0
@@ -0,0 +1,120 @@
1
+ import {
2
+ AlertConditionType,
3
+ CloudCoverage,
4
+ AlertStatus,
5
+ Direction,
6
+ Weekday,
7
+ } from '@windy/userAlerts';
8
+ import type { Timestamp, UserInterest } from '@windy/types';
9
+ import type { Products } from '@windy/rootScope.d';
10
+ import type { LatLon } from '@windy/interfaces';
11
+
12
+ export interface AlertRequest {
13
+ conditions: AlertCondition[];
14
+ description: string;
15
+ favToDeleteId?: string;
16
+ lat: number;
17
+ locationName: string;
18
+ lon: number;
19
+ model: GlobalProductWithWaves | null;
20
+ priority?: number;
21
+ suspended: boolean;
22
+ userInterest: UserInterest;
23
+ }
24
+
25
+ type Extends<T, U extends T> = U;
26
+
27
+ export type GlobalProductWithWaves = Extends<Products, 'ecmwf' | 'gfs' | 'icon' | 'mblue'>;
28
+
29
+ export interface AlertCheckResponse {
30
+ /**
31
+ * Array of timestamps when the trigger is triggered
32
+ */
33
+ timestamps: Timestamp[];
34
+ }
35
+
36
+ export interface NumberRange {
37
+ from: number;
38
+ to: number;
39
+ }
40
+
41
+ export interface AlertConditionBase {
42
+ type: AlertConditionType;
43
+ }
44
+
45
+ export interface CloudinessAlertCondition extends AlertConditionBase {
46
+ type: AlertConditionType.Cloudiness;
47
+ cloudCoverage: CloudCoverage[];
48
+ }
49
+
50
+ export interface FreshSnowAlertCondition extends AlertConditionBase {
51
+ rangeCentimeters: NumberRange;
52
+ type: AlertConditionType.FreshSnow;
53
+ }
54
+
55
+ export interface RainfallAlertCondition extends AlertConditionBase {
56
+ hours: number;
57
+ rangeMilliliters: NumberRange;
58
+ type: AlertConditionType.Rainfall;
59
+ }
60
+
61
+ export interface SwellAlertCondition extends AlertConditionBase {
62
+ directions: Direction[];
63
+ rangeSwellMeters: NumberRange;
64
+ type: AlertConditionType.Swell;
65
+ }
66
+
67
+ export interface TemperatureAlertCondition extends AlertConditionBase {
68
+ rangeKelvin: NumberRange;
69
+ type: AlertConditionType.Temperature;
70
+ }
71
+
72
+ export interface TimeAlertCondition extends AlertConditionBase {
73
+ /** Days of the week in which the conditions must be met */
74
+ days: Weekday[];
75
+ /** Hours of the day in which the conditions must be met */
76
+ hours?: NumberRange[];
77
+ /** Minimum duration of meeting the conditions to send the notification */
78
+ minDurationHours: number;
79
+ /** Range of days which will be checked for conditions */
80
+ rangeDays?: NumberRange;
81
+ type: AlertConditionType.Time;
82
+ }
83
+
84
+ export interface WindAlertCondition extends AlertConditionBase {
85
+ directions: Direction[];
86
+ rangeWindMetersPerSecond: NumberRange;
87
+ type: AlertConditionType.Wind;
88
+ }
89
+
90
+ export type AlertCondition =
91
+ | CloudinessAlertCondition
92
+ | FreshSnowAlertCondition
93
+ | RainfallAlertCondition
94
+ | SwellAlertCondition
95
+ | TemperatureAlertCondition
96
+ | TimeAlertCondition
97
+ | WindAlertCondition;
98
+
99
+ /** MongoDb id of the alert */
100
+ export type AlertId = string;
101
+
102
+ export interface AlertResponse extends AlertRequest {
103
+ created: Timestamp;
104
+ updated: Timestamp;
105
+ id: AlertId;
106
+ }
107
+
108
+ /** Group with multiple alerts in it */
109
+ export interface AlertGroupObject extends LatLon {
110
+ key: string;
111
+ locationName: string;
112
+ priority: number;
113
+ alerts: AlertResponse[];
114
+ }
115
+
116
+ /** Enhanced Alert */
117
+ export interface EnhancedAlert extends AlertResponse {
118
+ status: AlertStatus;
119
+ timestamps: Timestamp[];
120
+ }
@@ -9,19 +9,22 @@
9
9
 
10
10
  */
11
11
  import { DetailLocChangeParams } from '@plugins/detail/detail.d';
12
- import { ClientMessage, DownloadProgress, ServiceWorkerMessage } from '@plugins/offline/offline';
12
+ import { ParsLocation as GlobeParsLocation } from '@plugins/globe/main/receiver.d';
13
+ import { Params as GlobeParams, Poi as GlobePoi } from '@plugins/globe/types.d';
14
+ import { ExtendedDataAndParams } from '@plugins/isolines/IsolinesCanvas2D.d';
13
15
  import { Evented } from '@windy/Evented';
14
16
  import { MetricIdent, MetricItem } from '@windy/Metric.d';
15
- import { Fav, GeolocationInfo, LatLon, WeatherParameters } from '@windy/interfaces.d';
16
- import { Pois } from '@windy/rootScope.d';
17
- import { ExtendedDataAndParams } from '@plugins/isolines/IsolinesCanvas2D.d';
18
- import { Poi as GlobePoi, Params as GlobeParams } from '@plugins/globe/types.d';
19
- import { ParsLocation as GlobeParsLocation } from '@plugins/globe/main/receiver.d';
20
- import { NotificationPreferences } from '@windy/dataSpecifications.d';
21
17
  import { PluginIdent } from '@windy/Plugin';
18
+ import { NotificationPreferences } from '@windy/dataSpecifications.d';
19
+ import { GeolocationInfo, LatLon, WeatherParameters } from '@windy/interfaces.d';
22
20
  import { PluginSource, PluginsOpenParams, PluginsQsParams } from '@windy/plugin-params.d';
23
21
  import { Plugins } from '@windy/plugins.d';
22
+ import { Pois } from '@windy/rootScope.d';
24
23
  import type { ExternalPluginIdent } from '@windy/types';
24
+ import type { CenterOptions } from '@windy/map';
25
+ import type { AnimationOptions, FitBoundsOptions, LngLatBoundsLike } from '@windycom/maplibre-gl';
26
+ import type { ViewportBounds } from '@plugins/_shared/maplibre/utils/maplibreUtils';
27
+ import type { RadarPlusLayer } from '@plugins/radar-plus/types';
25
28
 
26
29
  type BcastTypesNonGeneric = {
27
30
  /**
@@ -66,7 +69,7 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
66
69
  rqstOpen: [T | string, PluginsOpenParams[T] | undefined];
67
70
 
68
71
  /** Request to close plugin (either internal or external) */
69
- rqstClose: [T | string, MouseEvent | TouchEvent | KeyboardEvent | undefined];
72
+ rqstClose: [T | string];
70
73
 
71
74
  /** Request to close all opened plugins (unless plugin has noClose property) */
72
75
  closeAllPlugins: [PluginIdent] | [];
@@ -74,9 +77,12 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
74
77
  /** Plugin was successfully loaded and closed */
75
78
  pluginClosed: [PluginIdent | string];
76
79
 
77
- /** Plugin was succesfully closed */
80
+ /** Plugin was successfully closed */
78
81
  pluginOpened: [PluginIdent | string];
79
82
 
83
+ /** Svelte plugin was successfully mounted */
84
+ pluginMounted: [PluginIdent | string];
85
+
80
86
  /**
81
87
  * Triggered when Windy has successfully loaded and rendered requested data.
82
88
  * Use this for triggering your own tasks.
@@ -101,9 +107,12 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
101
107
  */
102
108
  metricChanged: [MetricIdent | undefined, MetricItem | undefined];
103
109
 
104
- /** Indicates that user added, remover or rename his fav @ignore */
110
+ /** Indicates that user added, remover or rename his fav */
105
111
  favChanged: [];
106
112
 
113
+ /** Indicates that user added, remover or rename his alert */
114
+ alertChanged: [];
115
+
107
116
  /**
108
117
  * Indicates, that router has parsed URL and launched plugin
109
118
  * that was requested in URL
@@ -111,19 +120,40 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
111
120
  routerParsed: [PluginIdent | ExternalPluginIdent | void];
112
121
 
113
122
  // prettier-ignore
114
- /** @ignore */ airportLoaded: [Fav];
115
123
  /** @ignore */ globeOpened: [];
116
124
  /** @ignore */ globeClose: [];
117
125
  /** @ignore */ globeFailed: [];
126
+
118
127
  /** @ignore */ 'globe-detail': [DetailLocChangeParams | (LatLon & PluginSource)];
119
128
  /** @ignore */ 'globe-isolines': [ExtendedDataAndParams | null];
120
129
  /** @ignore */ 'globe-poi': [GlobeParsLocation & { type?: string; id?: string }];
121
130
  /** @ignore */ 'globe-zoomIn': [[number, number] | null] | [];
122
131
  /** @ignore */ 'globe-zoomOut': [[number, number] | null] | [];
123
132
  /** @ignore */ 'globe-paramsChanged': [GlobeParams];
124
- /** @ignore */ 'maps-zoomIn': [number | undefined, L.ZoomOptions | undefined];
125
- /** @ignore */ 'maps-zoomOut': [number | undefined, L.ZoomOptions | undefined];
126
- /** @ignore */ 'maps-paramsChanged': [WeatherParameters, keyof WeatherParameters | undefined];
133
+
134
+ /** @ignore */ 'leaflet-zoomIn': [number | undefined, L.ZoomOptions | undefined];
135
+ /** @ignore */ 'leaflet-zoomOut': [number | undefined, L.ZoomOptions | undefined];
136
+ /** @ignore */ 'leaflet-paramsChanged': [
137
+ WeatherParameters,
138
+ keyof WeatherParameters | undefined,
139
+ ];
140
+
141
+ /** @ignore */ 'maplibre-zoomIn': [AnimationOptions | undefined, unknown | undefined];
142
+ /** @ignore */ 'maplibre-zoomOut': [AnimationOptions | undefined, unknown | undefined];
143
+ /** @ignore */ 'maplibre-setZoom': [number, unknown | undefined];
144
+ /** @ignore */ 'maplibre-centerMap': [CenterOptions];
145
+ /** @ignore */ 'maplibre-triggerDragging': [boolean];
146
+ /** @ignore */ 'maplibre-fitBounds': [LngLatBoundsLike, FitBoundsOptions | undefined];
147
+ /** @ignore */ 'maplibre-panToOffset': [number, number, number];
148
+ /** @ignore */ 'maplibre-ensurePointVisibleY': [number, number, number];
149
+ /** @ignore */ 'maplibre-moveEnd': [];
150
+ /** @ignore */ 'maplibre-zoomChange': [number];
151
+ /** @ignore */ 'maplibre-boundsChange': [ViewportBounds];
152
+ /** @ignore */ 'maplibre-paramsChanged': [
153
+ WeatherParameters,
154
+ keyof WeatherParameters | undefined,
155
+ ];
156
+ /** @ignore */ 'radarPlus-open-layer': [RadarPlusLayer, boolean | undefined]; // Layer to open, whether to open layer for color editing
127
157
  /** @ignore */ detailClose: [];
128
158
  /** @ignore */ detailRendered: []; // used only in embed2
129
159
  /** @ignore */ reloadFavs: [];
@@ -133,7 +163,6 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
133
163
  /** @ignore */ screenshotReady: [];
134
164
  /** @ignore */ screenshotError: [Error];
135
165
  /** @ignore */ onResume: [];
136
- /** @ignore */ cloudSync: ['error', { data: Fav | string; action: string; type: 'fav' }];
137
166
  /** @ignore */ back2home: [];
138
167
  /** @ignore */ reloadMobileApp: [];
139
168
  /** @ignore */ newLocation: [GeolocationInfo];
@@ -146,8 +175,6 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
146
175
  /** @ignore */ openCapAlerts: [PluginsOpenParams['picker']];
147
176
  /** @ignore */ openapp: [];
148
177
  /** @ignore */ openSearch: [];
149
- /** @ignore */ offlineNativeMessage: [ClientMessage];
150
- /** @ignore */ offlineClientMessage: [ServiceWorkerMessage | { data: DownloadProgress }];
151
178
  }
152
179
 
153
180
  interface BcastTypes<T extends keyof Plugins> extends BcastTypesNonGeneric, BasicBcastTypes<T> {}
@@ -1,5 +1,4 @@
1
1
  import {
2
- AcTimes,
3
2
  GlobalPointProducts,
4
3
  Isolines,
5
4
  Levels,
@@ -26,17 +25,20 @@ import {
26
25
  ShowableError,
27
26
  SubTier,
28
27
  Timestamp,
28
+ type Hours,
29
29
  type RouteMotionSpeed,
30
+ type UsedMapLibrary,
31
+ type UserInterest,
30
32
  } from '@windy/types.d';
31
33
 
32
- import { ColorGradient } from '@windy/Color.d';
33
-
34
34
  import { MetricItem } from '@windy/Metric.d';
35
35
 
36
+ import type { User, LoginAndFinishAction } from '@windy/user.d';
37
+
36
38
  import type { SubscriptionInfo } from '@plugins/_shared/subscription-services/subscription-services.d';
37
- import type { DownloadedInfo, OfflineConfiguration } from '@plugins/offline/offline.d';
38
39
  import type RadarCalendar from '@plugins/radar/calendar/RadarCalendar';
39
40
  import type SatelliteCalendar from '@plugins/satellite/calendar/SatelliteCalendar';
41
+ import type { NumberRange } from './alerts';
40
42
 
41
43
  /**
42
44
  * Custom animation particles settings
@@ -54,6 +56,9 @@ export interface CustomParticles {
54
56
  */
55
57
  export interface NotificationPreferences {
56
58
  email?: string;
59
+ preferredNotificationTime?: NumberRange[];
60
+ frequencyDays?: number;
61
+ usedTimezoneName?: string;
57
62
  sendToEmail: boolean;
58
63
  sendToMobile: boolean;
59
64
  }
@@ -77,21 +82,6 @@ export interface Donation {
77
82
  sub: string;
78
83
  }
79
84
 
80
- export interface User {
81
- avatar?: string;
82
- email?: string;
83
- fullname?: string;
84
- id: number;
85
- username: string;
86
- userslug: string;
87
- verifiedEmail?: string;
88
-
89
- /**
90
- * Based on user location, cookie consent can be shown to the user if needed
91
- */
92
- requiresCookieConsent?: boolean;
93
- }
94
-
95
85
  export interface MapCoordinates extends LatLon {
96
86
  source: 'maps' | 'globe';
97
87
  zoom: number;
@@ -150,12 +140,6 @@ export interface DataSpecificationsObject<T> {
150
140
  */
151
141
  update?: Timestamp;
152
142
 
153
- /**
154
- * Allow overwrite start-up URL
155
- * TODO: Refactor. Used only once in router.ts
156
- */
157
- allowUrlRewrite?: boolean;
158
-
159
143
  /**
160
144
  * Setter function (will be run before value is set)
161
145
  */
@@ -176,7 +160,6 @@ export interface DataSpecificationsObject<T> {
176
160
  * `overlay`,
177
161
  * `level`,
178
162
  * `availLevels`,
179
- * `acTime`,
180
163
  * `timestamp`,
181
164
  * `isolines`,
182
165
  * `product`,
@@ -206,9 +189,9 @@ export interface DataSpecifications {
206
189
  level: DataSpecificationsObject<Levels>;
207
190
 
208
191
  /**
209
- * Rain/snow accumulated time range. Use `store.getAllowed('acTime')` to get list of allowed values.
192
+ * Rain/snow/wind accumulations time range in hours
210
193
  */
211
- acTime: DataSpecificationsObject<AcTimes>;
194
+ acRange: DataSpecificationsObject<Hours>;
212
195
 
213
196
  /**
214
197
  * Timestamp of actual weather moment. Use freely and without hesitation. Must be valid timestamp in ms, that is
@@ -229,9 +212,14 @@ export interface DataSpecifications {
229
212
  path: DataSpecificationsObject<Path>;
230
213
 
231
214
  /**
232
- * Read only value! UTC string containing time of actually rendered data that are available for current overlay and weather model.
215
+ * Which type of isolines to render
216
+ */
217
+ isolinesType: DataSpecificationsObject<Isolines>;
218
+
219
+ /**
220
+ * Whether to render isolines
233
221
  */
234
- isolines: DataSpecificationsObject<Isolines>;
222
+ isolinesOn: DataSpecificationsObject<boolean>;
235
223
 
236
224
  /**
237
225
  * Product is set of weather data, that have same resolution, boundaries, time range and so on.
@@ -250,18 +238,13 @@ export interface DataSpecifications {
250
238
  */
251
239
  visibleProducts: DataSpecificationsObject<Products[]>;
252
240
 
253
- /**
254
- * Available accumulation times for give overlay and product combination
255
- */
256
- availAcTimes: DataSpecificationsObject<AcTimes[]>;
257
-
258
241
  /**
259
242
  * Global fallback product that handles situation
260
243
  * when user pans the map out of bounds of local
261
244
  * model. Preferred model must have also second wave
262
245
  * mode like 'ecmwf' 👉🏻 'ecmwfWaves'
263
246
  */
264
- prefferedProduct: DataSpecificationsObject<'ecmwf' | 'gfs' | 'icon' | 'iconEu'>;
247
+ preferredProduct: DataSpecificationsObject<'ecmwf' | 'gfs' | 'icon' | 'iconEu'>;
265
248
 
266
249
  /**
267
250
  * If timeline animation is running
@@ -330,15 +313,22 @@ export interface DataSpecifications {
330
313
  isImperial: DataSpecificationsObject<boolean>;
331
314
 
332
315
  /**
333
- * Type of map shown in detail
316
+ * Type of map tiles map shown in detail
334
317
  */
335
318
  map: DataSpecificationsObject<'sznmap' | 'sat' | 'winter'>;
336
319
 
320
+ /**
321
+ * Which type of map library is used
322
+ */
323
+ mapLibrary: DataSpecificationsObject<UsedMapLibrary>;
324
+
337
325
  /**
338
326
  * Show 7 days weather on startup
339
327
  */
340
328
  showWeather: DataSpecificationsObject<boolean>;
341
329
 
330
+ stormSettingsLightning: DataSpecificationsObject<boolean>;
331
+
342
332
  /**
343
333
  * Is WebGL disabled?
344
334
  */
@@ -350,10 +340,15 @@ export interface DataSpecifications {
350
340
  glParticlesOn: DataSpecificationsObject<boolean>;
351
341
 
352
342
  /**
353
- * Finally used language (the onw which is succesfully loaded in trans module)
343
+ * Finally used language (the one which is successfully loaded in trans module)
354
344
  */
355
345
  usedLang: DataSpecificationsObject<SupportedLanguages>;
356
346
 
347
+ /**
348
+ * The difference in minutes between UTC and the local time on the device.
349
+ */
350
+ lastTimezoneOffset: DataSpecificationsObject<number>;
351
+
357
352
  /**
358
353
  * Particles animation settings
359
354
  */
@@ -411,11 +406,6 @@ export interface DataSpecifications {
411
406
  */
412
407
  startupReverseName: DataSpecificationsObject<ReverseResult | null>;
413
408
 
414
- /**
415
- * NOTAMs marked as read
416
- */
417
- notams: DataSpecificationsObject<Record<string, number> | null>;
418
-
419
409
  /**
420
410
  * Users email
421
411
  */
@@ -431,6 +421,11 @@ export interface DataSpecifications {
431
421
  */
432
422
  displayHeliports: DataSpecificationsObject<boolean>;
433
423
 
424
+ /**
425
+ * Display Airspaces map layer in the METARs POI layer
426
+ */
427
+ displayAirspaces: DataSpecificationsObject<boolean>;
428
+
434
429
  /**
435
430
  * User statistics
436
431
  * @ignore
@@ -449,17 +444,11 @@ export interface DataSpecifications {
449
444
  */
450
445
  seenRadarInfo: DataSpecificationsObject<boolean>;
451
446
 
452
- /**
453
- * Wheather picker was dragged or not (not settings but info)
454
- * @ignore
455
- */
456
- wasDragged: DataSpecificationsObject<boolean>;
457
-
458
447
  /**
459
448
  * Detail's location - TODO: get rid of async name property
460
449
  * @ignore
461
450
  */
462
- detailLocation: DataSpecificationsObject<(LatLon & { name?: string }) | null>;
451
+ detailLocation: DataSpecificationsObject<(LatLon & { name?: string; id?: string }) | null>;
463
452
 
464
453
  /**
465
454
  * 1h step of forecast
@@ -471,6 +460,11 @@ export interface DataSpecifications {
471
460
  */
472
461
  detailTimestamp: DataSpecificationsObject<Timestamp>;
473
462
 
463
+ /**
464
+ * Detail keeps its 10+ days expanded forecast
465
+ */
466
+ detailExtended: DataSpecificationsObject<boolean>;
467
+
474
468
  /**
475
469
  * display webcams on daylight
476
470
  */
@@ -490,31 +484,16 @@ export interface DataSpecifications {
490
484
  */
491
485
  capDisplay: DataSpecificationsObject<'all' | 'today' | 'tomm' | 'later'>;
492
486
 
493
- /**
494
- * Range in hours
495
- */
496
- radarRange: DataSpecificationsObject<'-12' | '-6' | '-1' | '0'>;
497
-
498
487
  /**
499
488
  * Timestamp in ms
500
489
  */
501
490
  radarTimestamp: DataSpecificationsObject<Timestamp>;
502
491
 
503
- /**
504
- * Animation speed
505
- */
506
- radarSpeed: DataSpecificationsObject<'slow' | 'medium' | 'fast'>;
507
-
508
492
  /**
509
493
  * Radar calendar
510
494
  */
511
495
  radarCalendar: DataSpecificationsObject<RadarCalendar | null>;
512
496
 
513
- /**
514
- * Animation is running
515
- */
516
- radarAnimation: DataSpecificationsObject<boolean>;
517
-
518
497
  /**
519
498
  * Visible lightning data on radar
520
499
  */
@@ -525,11 +504,6 @@ export interface DataSpecifications {
525
504
  */
526
505
  blitzSoundOn: DataSpecificationsObject<boolean>;
527
506
 
528
- /**
529
- * Range of displayed satellite history
530
- */
531
- satelliteRange: DataSpecificationsObject<'archive' | 'long' | 'medium' | 'short'>;
532
-
533
507
  /**
534
508
  * Timestamp in ms
535
509
  */
@@ -540,25 +514,10 @@ export interface DataSpecifications {
540
514
  */
541
515
  satelliteCalendar: DataSpecificationsObject<SatelliteCalendar | null>;
542
516
 
543
- /**
544
- * Satellite animation is running
545
- */
546
- satelliteAnimation: DataSpecificationsObject<boolean>;
547
-
548
- /**
549
- * Satellite visualization modes
550
- */
551
- satelliteMode: DataSpecificationsObject<'BLUE' | 'VISIR' | 'IRBT' | 'DBG'>; // 'IR',
552
-
553
- /**
554
- * Animation speed
555
- */
556
- satelliteSpeed: DataSpecificationsObject<'slow' | 'medium' | 'fast'>;
557
-
558
517
  /**
559
518
  * Interpolate images using vectors
560
519
  */
561
- satelliteFlowOn: DataSpecificationsObject<boolean>;
520
+ radSatFlowOn: DataSpecificationsObject<boolean>;
562
521
 
563
522
  /**
564
523
  * Extrapolate satellite images to future
@@ -586,10 +545,9 @@ export interface DataSpecifications {
586
545
  archiveRange: DataSpecificationsObject<number>;
587
546
 
588
547
  /**
589
- * Information, if startup weather box (call ad hp, homepage)
590
- * is shown or not
548
+ * Information, if startup weather box is shown or not
591
549
  */
592
- hpShown: DataSpecificationsObject<boolean>;
550
+ startupWeatherShown: DataSpecificationsObject<boolean>;
593
551
 
594
552
  /**
595
553
  * pois layer that user selected
@@ -688,14 +646,6 @@ export interface DataSpecifications {
688
646
  */
689
647
  notifications: DataSpecificationsObject<NotificationPreferences | null>;
690
648
 
691
- /**
692
- * User likes to receive ad hoc pushNotification
693
- * For instance METAR update.
694
- * Once set, it always stays on on this device
695
- * @ignore
696
- */
697
- adHocNotification: DataSpecificationsObject<boolean>;
698
-
699
649
  /**
700
650
  * Number of unread notifications
701
651
  * @ignore
@@ -730,11 +680,6 @@ export interface DataSpecifications {
730
680
  */
731
681
  authHash: DataSpecificationsObject<string | null>;
732
682
 
733
- /**
734
- * Globe plugin is active (used for disabling isolines in overlays plugin)
735
- */
736
- globeActive: DataSpecificationsObject<boolean>;
737
-
738
683
  /**
739
684
  * Webcam or station last location (used for globe picker initial location)
740
685
  * @ignore
@@ -758,24 +703,12 @@ export interface DataSpecifications {
758
703
  */
759
704
  launchedBy: DataSpecificationsObject<'radar-widget' | null>;
760
705
 
761
- /**
762
- * Any stored color
763
- * @ignore
764
- */
765
- [key: `color2_${string}`]: DataSpecificationsObject<ColorGradient | null>;
766
-
767
706
  /**
768
707
  * Any stored metric
769
708
  * @ignore
770
709
  */
771
710
  [key: `metric_${string}`]: DataSpecificationsObject<MetricItem | null>;
772
711
 
773
- /**
774
- * User is article publisher (dynamically created property in plugin article-publisher)
775
- * @ignore
776
- */
777
- userIsPublisher: DataSpecificationsObject<boolean>;
778
-
779
712
  /** @ignore */
780
713
  rplannerDir: DataSpecificationsObject<'horizontal' | 'vertical' | 'north'>;
781
714
 
@@ -843,35 +776,15 @@ export interface DataSpecifications {
843
776
  */
844
777
  pickerMobileTimeout: DataSpecificationsObject<PickerMobileTimeout>;
845
778
 
846
- /**
847
- * Selected area and layers for offline mode
848
- * @ignore
849
- */
850
- offlineSetting: DataSpecificationsObject<OfflineConfiguration | null>;
851
-
852
779
  /**
853
780
  * Endable/dissable change of detail location, when map is dragged
854
781
  */
855
782
  changeDetailOnMapDrag: DataSpecificationsObject<boolean>;
856
783
 
857
784
  /**
858
- * Simple, easy to use indicator, if we are running in offline mode
859
- * @ignore
860
- */
861
- offlineMode: DataSpecificationsObject<boolean>;
862
-
863
- /**
864
- * Imfo about offline data residing in serviceWorker
865
- * @ignore
866
- */
867
- offlineDataInfo: DataSpecificationsObject<DownloadedInfo | null>;
868
-
869
- /**
870
- * Enables/disables offline mode at all. If false, offline mode is not available
871
- * and serviceWorker is not installed at all
872
- * @ignore
785
+ * Timestamp in ms
873
786
  */
874
- offlineModeEnabled: DataSpecificationsObject<boolean>;
787
+ radsatTimestamp: DataSpecificationsObject<Timestamp>;
875
788
 
876
789
  /**
877
790
  * Display this type of WX stations on POI map
@@ -895,11 +808,17 @@ export interface DataSpecifications {
895
808
  stationCompareHiddenProducts: DataSpecificationsObject<PointProducts[]>;
896
809
 
897
810
  /**
898
- * Main GSPR, privacy or cookie consent object
811
+ * Main GDPR, privacy or cookie consent object
899
812
  * @ignore
900
813
  */
901
814
  consent: DataSpecificationsObject<Consent | null>;
902
815
 
816
+ /**
817
+ * Is analytics consent required
818
+ * @ignore
819
+ */
820
+ analyticsConsentRequired: DataSpecificationsObject<boolean | null>;
821
+
903
822
  /**
904
823
  * Youtube cookie consent object
905
824
  * @ignore
@@ -922,6 +841,44 @@ export interface DataSpecifications {
922
841
  * @ignore
923
842
  */
924
843
  installedPlugins: DataSpecificationsObject<InstalledExternalPluginConfig[]>;
844
+
845
+ /*
846
+ * User has entered into arrange mode in RH menu
847
+ */
848
+ rhMenuArrangeMode: DataSpecificationsObject<boolean>;
849
+
850
+ /*
851
+ * If startup widgets should persist
852
+ */
853
+ persistentWidgets: DataSpecificationsObject<boolean>;
854
+
855
+ /**
856
+ * List of interests user has, based on onboarding picker
857
+ */
858
+ userInterests: DataSpecificationsObject<UserInterest[]>;
859
+
860
+ onboardingFinished: DataSpecificationsObject<boolean>;
861
+
862
+ locationPermissionsGranted: DataSpecificationsObject<boolean>;
863
+
864
+ doNotShowLocationPermissionsPopup: DataSpecificationsObject<boolean>;
865
+
866
+ locationPermissionsPopupShown: DataSpecificationsObject<number | null>;
867
+
868
+ loginAndFinishAction: DataSpecificationsObject<
869
+ (LoginAndFinishAction & { updated: Timestamp }) | null
870
+ >;
871
+
872
+ /**
873
+ * If user wants to display just some type of favs in favs plugin
874
+ */
875
+ favsFilter: DataSpecificationsObject<FavTypeNew[]>;
876
+
877
+ /**
878
+ * Contains information, that registration hash for pushNotifications has been
879
+ * successfully sent to the backend
880
+ */
881
+ pushNotificationsReady: DataSpecificationsObject<boolean>;
925
882
  }
926
883
 
927
884
  /**