@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.
Files changed (143) 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/BottomSlide.d.ts +3 -0
  6. package/types/client/BottomSveltePlugins.d.ts +8 -0
  7. package/types/client/Calendar.d.ts +9 -17
  8. package/types/client/Color.d.ts +44 -91
  9. package/types/client/EcmwfProduct.d.ts +0 -22
  10. package/types/client/Evented.d.ts +4 -0
  11. package/types/client/ExternalSveltePlugin.d.ts +8 -2
  12. package/types/client/IDB.d.ts +69 -0
  13. package/types/client/IconProducts.d.ts +2 -0
  14. package/types/client/Layer.d.ts +1 -2
  15. package/types/client/Metric.d.ts +13 -9
  16. package/types/client/MetricClasses.d.ts +4 -3
  17. package/types/client/Overlay.d.ts +31 -16
  18. package/types/client/OverlayClasses.d.ts +11 -7
  19. package/types/client/Plugin.d.ts +6 -2
  20. package/types/client/Product.d.ts +33 -30
  21. package/types/client/RadarPlusProduct.d.ts +19 -0
  22. package/types/client/Renderer.d.ts +2 -10
  23. package/types/client/SatelliteProduct.d.ts +1 -1
  24. package/types/client/SveltePlugin.d.ts +16 -5
  25. package/types/client/TileLayer.d.ts +1 -2
  26. package/types/client/TopoMap.d.ts +10 -0
  27. package/types/client/WindowPlugin.d.ts +9 -4
  28. package/types/client/appsFlyer.d.ts +2 -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/compatibilityCheck.d.ts +1 -0
  34. package/types/client/connection.d.ts +1 -1
  35. package/types/client/customColors.d.ts +1 -0
  36. package/types/client/d.ts.files/Calendar.d.ts +11 -2
  37. package/types/client/d.ts.files/Color.d.ts +17 -5
  38. package/types/client/d.ts.files/LabelsLayer.d.ts +3 -20
  39. package/types/client/d.ts.files/Layer.d.ts +8 -1
  40. package/types/client/d.ts.files/Metric.d.ts +1 -0
  41. package/types/client/d.ts.files/Renderer.d.ts +22 -1
  42. package/types/client/d.ts.files/alerts.d.ts +119 -0
  43. package/types/client/d.ts.files/broadcast.d.ts +51 -18
  44. package/types/client/d.ts.files/dataSpecifications.d.ts +121 -137
  45. package/types/client/d.ts.files/favs.d.ts +68 -0
  46. package/types/client/d.ts.files/incomingMessages.d.ts +0 -4
  47. package/types/client/d.ts.files/lib.d.ts +5 -7
  48. package/types/client/d.ts.files/notifications.d.ts +2 -2
  49. package/types/client/d.ts.files/plugin-params.d.ts +53 -57
  50. package/types/client/d.ts.files/plugins.d.ts +31 -42
  51. package/types/client/d.ts.files/pois.d.ts +1 -1
  52. package/types/client/d.ts.files/products.d.ts +16 -5
  53. package/types/client/d.ts.files/rootScope.d.ts +13 -31
  54. package/types/client/d.ts.files/startup.d.ts +65 -0
  55. package/types/client/d.ts.files/storage.d.ts +12 -35
  56. package/types/client/d.ts.files/user.d.ts +82 -24
  57. package/types/client/detectDevice.d.ts +0 -3
  58. package/types/client/device.d.ts +1 -0
  59. package/types/client/deviceLogging.d.ts +2 -1
  60. package/types/client/embed.d.ts +70 -0
  61. package/types/client/embed2.d.ts +14 -31
  62. package/types/client/errorLogger.d.ts +28 -3
  63. package/types/client/errors.d.ts +6 -0
  64. package/types/client/fetch.d.ts +41 -16
  65. package/types/client/format.d.ts +1 -1
  66. package/types/client/ga.d.ts +1 -1
  67. package/types/client/geolocation.d.ts +15 -7
  68. package/types/client/globals.d.ts +1 -0
  69. package/types/client/http.d.ts +17 -6
  70. package/types/client/idbInstances.d.ts +36 -0
  71. package/types/client/imaker.d.ts +112 -0
  72. package/types/client/imakerMain.d.ts +49 -0
  73. package/types/client/langFiles.d.ts +2 -0
  74. package/types/client/latestBroadcasts.d.ts +1 -1
  75. package/types/client/layers.d.ts +2 -0
  76. package/types/client/lib.d.ts +6 -22
  77. package/types/client/libHtml.d.ts +1 -1
  78. package/types/client/liveAlerts.d.ts +5 -0
  79. package/types/client/liveAlerts.types.d.ts +28 -0
  80. package/types/client/loadArticlesOrWhatsNew.d.ts +1 -0
  81. package/types/client/location.d.ts +5 -0
  82. package/types/client/log.d.ts +4 -1
  83. package/types/client/lruCache.d.ts +6 -0
  84. package/types/client/map.d.ts +17 -6
  85. package/types/client/mobile.d.ts +31 -22
  86. package/types/client/models.d.ts +7 -5
  87. package/types/client/notifications.d.ts +29 -67
  88. package/types/client/overlays.d.ts +4 -1
  89. package/types/client/params.d.ts +0 -1
  90. package/types/client/permanentPromos.d.ts +1 -1
  91. package/types/client/persistentStorage.d.ts +8 -0
  92. package/types/client/picker.d.ts +1 -1
  93. package/types/client/plugins.d.ts +4 -0
  94. package/types/client/pois.d.ts +1 -2
  95. package/types/client/promo.d.ts +6 -16
  96. package/types/client/pushNotifications.d.ts +1 -1
  97. package/types/client/queryString.d.ts +1 -1
  98. package/types/client/renderUtils.d.ts +1 -1
  99. package/types/client/renderers.d.ts +7 -3
  100. package/types/client/rootScope.d.ts +23 -24
  101. package/types/client/router.d.ts +9 -29
  102. package/types/client/seoParser.d.ts +0 -14
  103. package/types/client/serviceWorkerCtrl.d.ts +8 -0
  104. package/types/client/showableErrorsService.d.ts +6 -10
  105. package/types/client/startupWeather.d.ts +13 -9
  106. package/types/client/store.d.ts +2 -2
  107. package/types/client/storeLastPosition.d.ts +4 -0
  108. package/types/client/subscription.d.ts +1 -0
  109. package/types/client/swDownloader.d.ts +7 -7
  110. package/types/client/swProxy.d.ts +1 -1
  111. package/types/client/swUtils.d.ts +3 -3
  112. package/types/client/trans.d.ts +26 -37
  113. package/types/client/user.d.ts +7 -13
  114. package/types/client/userAlerts.d.ts +68 -0
  115. package/types/client/userConsent.d.ts +6 -0
  116. package/types/client/userFavs.d.ts +46 -122
  117. package/types/client/utils.d.ts +67 -9
  118. package/types/iconfont.d.ts +8 -0
  119. package/types/interfaces.d.ts +226 -284
  120. package/types/lang-files.d.ts +1334 -142
  121. package/types/offline.d.ts +100 -0
  122. package/types/types.d.ts +108 -34
  123. package/types/client/Bar.d.ts +0 -114
  124. package/types/client/BindedBar.d.ts +0 -51
  125. package/types/client/BindedCheckbox.d.ts +0 -30
  126. package/types/client/BindedSwitch.d.ts +0 -35
  127. package/types/client/BottomTagPlugin.d.ts +0 -8
  128. package/types/client/DraggableDiv.d.ts +0 -21
  129. package/types/client/GhostBox.d.ts +0 -17
  130. package/types/client/Legend.d.ts +0 -6
  131. package/types/client/LongTap.d.ts +0 -21
  132. package/types/client/MobileCalendar.d.ts +0 -51
  133. package/types/client/OfflineMessagesClasses.d.ts +0 -30
  134. package/types/client/ProductSwitch.d.ts +0 -14
  135. package/types/client/Scrollable.d.ts +0 -14
  136. package/types/client/Switch.d.ts +0 -24
  137. package/types/client/TimestampBar.d.ts +0 -8
  138. package/types/client/d.ts.files/Product.d.ts +0 -37
  139. package/types/client/d.ts.files/errorLogger.d.ts +0 -35
  140. package/types/client/d.ts.files/trans.d.ts +0 -55
  141. package/types/client/favs.d.ts +0 -83
  142. package/types/client/offlineController.d.ts +0 -20
  143. /package/types/client/d.ts.files/{Webcams.d.ts → webcams.d.ts} +0 -0
@@ -1,5 +1,4 @@
1
1
  import {
2
- AcTimes,
3
2
  GlobalPointProducts,
4
3
  Isolines,
5
4
  Levels,
@@ -13,9 +12,9 @@ import {
13
12
 
14
13
  import {
15
14
  Consent,
15
+ DetailExtendedLatLon,
16
16
  GeolocationInfo,
17
17
  HomeLocation,
18
- InstalledExternalPluginConfig,
19
18
  LatLon,
20
19
  } from '@windy/interfaces.d';
21
20
 
@@ -26,17 +25,21 @@ import {
26
25
  ShowableError,
27
26
  SubTier,
28
27
  Timestamp,
29
- type RouteMotionSpeed,
28
+ Hours,
29
+ RouteMotionSpeed,
30
+ UsedMapLibrary,
31
+ 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 { LoginAndFinishAction, User } 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 '@windy/alerts.d';
42
+ import type { FavTypeNew } from '@windy/favs.d';
40
43
 
41
44
  /**
42
45
  * Custom animation particles settings
@@ -54,6 +57,9 @@ export interface CustomParticles {
54
57
  */
55
58
  export interface NotificationPreferences {
56
59
  email?: string;
60
+ preferredNotificationTime?: NumberRange[];
61
+ frequencyDays?: number;
62
+ usedTimezoneName?: string;
57
63
  sendToEmail: boolean;
58
64
  sendToMobile: boolean;
59
65
  }
@@ -77,21 +83,6 @@ export interface Donation {
77
83
  sub: string;
78
84
  }
79
85
 
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
86
  export interface MapCoordinates extends LatLon {
96
87
  source: 'maps' | 'globe';
97
88
  zoom: number;
@@ -150,12 +141,6 @@ export interface DataSpecificationsObject<T> {
150
141
  */
151
142
  update?: Timestamp;
152
143
 
153
- /**
154
- * Allow overwrite start-up URL
155
- * TODO: Refactor. Used only once in router.ts
156
- */
157
- allowUrlRewrite?: boolean;
158
-
159
144
  /**
160
145
  * Setter function (will be run before value is set)
161
146
  */
@@ -167,6 +152,11 @@ export interface DataSpecificationsObject<T> {
167
152
  asyncSet?: (...args: unknown[]) => Promise<T>;
168
153
  }
169
154
 
155
+ export interface FeatureFlags {
156
+ disableSatellitePlus: boolean;
157
+ disableNewRadarPlusGui: boolean;
158
+ }
159
+
170
160
  /**
171
161
  * # Properties used in @windy/store
172
162
  *
@@ -176,7 +166,6 @@ export interface DataSpecificationsObject<T> {
176
166
  * `overlay`,
177
167
  * `level`,
178
168
  * `availLevels`,
179
- * `acTime`,
180
169
  * `timestamp`,
181
170
  * `isolines`,
182
171
  * `product`,
@@ -206,9 +195,9 @@ export interface DataSpecifications {
206
195
  level: DataSpecificationsObject<Levels>;
207
196
 
208
197
  /**
209
- * Rain/snow accumulated time range. Use `store.getAllowed('acTime')` to get list of allowed values.
198
+ * Rain/snow/wind accumulations time range in hours
210
199
  */
211
- acTime: DataSpecificationsObject<AcTimes>;
200
+ acRange: DataSpecificationsObject<Hours>;
212
201
 
213
202
  /**
214
203
  * Timestamp of actual weather moment. Use freely and without hesitation. Must be valid timestamp in ms, that is
@@ -226,12 +215,17 @@ export interface DataSpecifications {
226
215
  * Read only value! UTC string containing time of actually rendered data that are available for current overlay and weather model.
227
216
  * @ignore
228
217
  */
229
- path: DataSpecificationsObject<Path>;
218
+ path: DataSpecificationsObject<Path | null>;
230
219
 
231
220
  /**
232
- * Read only value! UTC string containing time of actually rendered data that are available for current overlay and weather model.
221
+ * Which type of isolines to render
222
+ */
223
+ isolinesType: DataSpecificationsObject<Isolines>;
224
+
225
+ /**
226
+ * Whether to render isolines
233
227
  */
234
- isolines: DataSpecificationsObject<Isolines>;
228
+ isolinesOn: DataSpecificationsObject<boolean>;
235
229
 
236
230
  /**
237
231
  * Product is set of weather data, that have same resolution, boundaries, time range and so on.
@@ -250,11 +244,6 @@ export interface DataSpecifications {
250
244
  */
251
245
  visibleProducts: DataSpecificationsObject<Products[]>;
252
246
 
253
- /**
254
- * Available accumulation times for give overlay and product combination
255
- */
256
- availAcTimes: DataSpecificationsObject<AcTimes[]>;
257
-
258
247
  /**
259
248
  * Global fallback product that handles situation
260
249
  * when user pans the map out of bounds of local
@@ -298,6 +287,11 @@ export interface DataSpecifications {
298
287
  */
299
288
  latlon: DataSpecificationsObject<boolean>;
300
289
 
290
+ /**
291
+ * Display altitude on picker
292
+ */
293
+ showPickerElevation: DataSpecificationsObject<boolean>;
294
+
301
295
  /**
302
296
  * Desired language for Windy. By default is determined by user's browser setting and set to `auto`.
303
297
  * Use `store.getAllowed('lang')` to get list of avail langs defined in `supportedLanguages.
@@ -309,6 +303,11 @@ export interface DataSpecifications {
309
303
  */
310
304
  englishLabels: DataSpecificationsObject<boolean>;
311
305
 
306
+ /**
307
+ * Consent to receive newsletter
308
+ */
309
+ marketingConsent: DataSpecificationsObject<boolean>;
310
+
312
311
  /**
313
312
  * Display directions in Weather picker as number or as a string (for example NW).
314
313
  */
@@ -330,15 +329,22 @@ export interface DataSpecifications {
330
329
  isImperial: DataSpecificationsObject<boolean>;
331
330
 
332
331
  /**
333
- * Type of map shown in detail
332
+ * Type of map tiles map shown in detail
334
333
  */
335
334
  map: DataSpecificationsObject<'sznmap' | 'sat' | 'winter'>;
336
335
 
336
+ /**
337
+ * Which type of map library is used
338
+ */
339
+ mapLibrary: DataSpecificationsObject<UsedMapLibrary>;
340
+
337
341
  /**
338
342
  * Show 7 days weather on startup
339
343
  */
340
344
  showWeather: DataSpecificationsObject<boolean>;
341
345
 
346
+ stormSettingsLightning: DataSpecificationsObject<boolean>;
347
+
342
348
  /**
343
349
  * Is WebGL disabled?
344
350
  */
@@ -354,6 +360,11 @@ export interface DataSpecifications {
354
360
  */
355
361
  usedLang: DataSpecificationsObject<SupportedLanguages>;
356
362
 
363
+ /**
364
+ * The difference in minutes between UTC and the local time on the device.
365
+ */
366
+ lastTimezoneOffset: DataSpecificationsObject<number>;
367
+
357
368
  /**
358
369
  * Particles animation settings
359
370
  */
@@ -389,6 +400,11 @@ export interface DataSpecifications {
389
400
  */
390
401
  startUpLastOverlay: DataSpecificationsObject<boolean>;
391
402
 
403
+ /**
404
+ * User selected default zoom
405
+ */
406
+ startUpZoom: DataSpecificationsObject<number | null>;
407
+
392
408
  /**
393
409
  * Save forecast resolution step to be used at startup.
394
410
  * 1: 1h step
@@ -411,11 +427,6 @@ export interface DataSpecifications {
411
427
  */
412
428
  startupReverseName: DataSpecificationsObject<ReverseResult | null>;
413
429
 
414
- /**
415
- * NOTAMs marked as read
416
- */
417
- notams: DataSpecificationsObject<Record<string, number> | null>;
418
-
419
430
  /**
420
431
  * Users email
421
432
  */
@@ -431,6 +442,11 @@ export interface DataSpecifications {
431
442
  */
432
443
  displayHeliports: DataSpecificationsObject<boolean>;
433
444
 
445
+ /**
446
+ * Display Airspaces map layer in the METARs POI layer
447
+ */
448
+ displayAirspaces: DataSpecificationsObject<boolean>;
449
+
434
450
  /**
435
451
  * User statistics
436
452
  * @ignore
@@ -449,17 +465,11 @@ export interface DataSpecifications {
449
465
  */
450
466
  seenRadarInfo: DataSpecificationsObject<boolean>;
451
467
 
452
- /**
453
- * Wheather picker was dragged or not (not settings but info)
454
- * @ignore
455
- */
456
- wasDragged: DataSpecificationsObject<boolean>;
457
-
458
468
  /**
459
469
  * Detail's location - TODO: get rid of async name property
460
470
  * @ignore
461
471
  */
462
- detailLocation: DataSpecificationsObject<(LatLon & { name?: string }) | null>;
472
+ detailLocation: DataSpecificationsObject<DetailExtendedLatLon | null>;
463
473
 
464
474
  /**
465
475
  * 1h step of forecast
@@ -495,31 +505,16 @@ export interface DataSpecifications {
495
505
  */
496
506
  capDisplay: DataSpecificationsObject<'all' | 'today' | 'tomm' | 'later'>;
497
507
 
498
- /**
499
- * Range of displayed radar history
500
- */
501
- radarRange: DataSpecificationsObject<'archive' | 'long' | 'medium' | 'short'>;
502
-
503
508
  /**
504
509
  * Timestamp in ms
505
510
  */
506
511
  radarTimestamp: DataSpecificationsObject<Timestamp>;
507
512
 
508
- /**
509
- * Animation speed
510
- */
511
- radarSpeed: DataSpecificationsObject<'slow' | 'medium' | 'fast'>;
512
-
513
513
  /**
514
514
  * Radar calendar
515
515
  */
516
516
  radarCalendar: DataSpecificationsObject<RadarCalendar | null>;
517
517
 
518
- /**
519
- * Animation is running
520
- */
521
- radarAnimation: DataSpecificationsObject<boolean>;
522
-
523
518
  /**
524
519
  * Visible lightning data on radar
525
520
  */
@@ -530,11 +525,6 @@ export interface DataSpecifications {
530
525
  */
531
526
  blitzSoundOn: DataSpecificationsObject<boolean>;
532
527
 
533
- /**
534
- * Range of displayed satellite history
535
- */
536
- satelliteRange: DataSpecificationsObject<'archive' | 'long' | 'medium' | 'short'>;
537
-
538
528
  /**
539
529
  * Timestamp in ms
540
530
  */
@@ -546,19 +536,9 @@ export interface DataSpecifications {
546
536
  satelliteCalendar: DataSpecificationsObject<SatelliteCalendar | null>;
547
537
 
548
538
  /**
549
- * Satellite animation is running
550
- */
551
- satelliteAnimation: DataSpecificationsObject<boolean>;
552
-
553
- /**
554
- * Satellite visualization modes
555
- */
556
- satelliteMode: DataSpecificationsObject<'BLUE' | 'VISIR' | 'IRBT' | 'DBG'>; // 'IR',
557
-
558
- /**
559
- * Animation speed
539
+ * Interpolate images using vectors
560
540
  */
561
- satelliteSpeed: DataSpecificationsObject<'slow' | 'medium' | 'fast'>;
541
+ radSatFlowOn: DataSpecificationsObject<boolean>;
562
542
 
563
543
  /**
564
544
  * Extrapolate satellite images to future
@@ -687,14 +667,6 @@ export interface DataSpecifications {
687
667
  */
688
668
  notifications: DataSpecificationsObject<NotificationPreferences | null>;
689
669
 
690
- /**
691
- * User likes to receive ad hoc pushNotification
692
- * For instance METAR update.
693
- * Once set, it always stays on on this device
694
- * @ignore
695
- */
696
- adHocNotification: DataSpecificationsObject<boolean>;
697
-
698
670
  /**
699
671
  * Number of unread notifications
700
672
  * @ignore
@@ -729,11 +701,6 @@ export interface DataSpecifications {
729
701
  */
730
702
  authHash: DataSpecificationsObject<string | null>;
731
703
 
732
- /**
733
- * Globe plugin is active (used for disabling isolines in overlays plugin)
734
- */
735
- globeActive: DataSpecificationsObject<boolean>;
736
-
737
704
  /**
738
705
  * Webcam or station last location (used for globe picker initial location)
739
706
  * @ignore
@@ -751,18 +718,6 @@ export interface DataSpecifications {
751
718
  */
752
719
  mapCoords: DataSpecificationsObject<MapCoordinates | null>;
753
720
 
754
- /**
755
- * Whether app has been launched from some source which requires different init state
756
- * @ignore
757
- */
758
- launchedBy: DataSpecificationsObject<'radar-widget' | null>;
759
-
760
- /**
761
- * Any stored color
762
- * @ignore
763
- */
764
- [key: `color2_${string}`]: DataSpecificationsObject<ColorGradient | null>;
765
-
766
721
  /**
767
722
  * Any stored metric
768
723
  * @ignore
@@ -836,35 +791,15 @@ export interface DataSpecifications {
836
791
  */
837
792
  pickerMobileTimeout: DataSpecificationsObject<PickerMobileTimeout>;
838
793
 
839
- /**
840
- * Selected area and layers for offline mode
841
- * @ignore
842
- */
843
- offlineSetting: DataSpecificationsObject<OfflineConfiguration | null>;
844
-
845
794
  /**
846
795
  * Endable/dissable change of detail location, when map is dragged
847
796
  */
848
797
  changeDetailOnMapDrag: DataSpecificationsObject<boolean>;
849
798
 
850
799
  /**
851
- * Simple, easy to use indicator, if we are running in offline mode
852
- * @ignore
853
- */
854
- offlineMode: DataSpecificationsObject<boolean>;
855
-
856
- /**
857
- * Imfo about offline data residing in serviceWorker
858
- * @ignore
859
- */
860
- offlineDataInfo: DataSpecificationsObject<DownloadedInfo | null>;
861
-
862
- /**
863
- * Enables/disables offline mode at all. If false, offline mode is not available
864
- * and serviceWorker is not installed at all
865
- * @ignore
800
+ * Timestamp in ms
866
801
  */
867
- offlineModeEnabled: DataSpecificationsObject<boolean>;
802
+ radsatTimestamp: DataSpecificationsObject<Timestamp>;
868
803
 
869
804
  /**
870
805
  * Display this type of WX stations on POI map
@@ -888,11 +823,17 @@ export interface DataSpecifications {
888
823
  stationCompareHiddenProducts: DataSpecificationsObject<PointProducts[]>;
889
824
 
890
825
  /**
891
- * Main GSPR, privacy or cookie consent object
826
+ * Main GDPR, privacy or cookie consent object
892
827
  * @ignore
893
828
  */
894
829
  consent: DataSpecificationsObject<Consent | null>;
895
830
 
831
+ /**
832
+ * Is analytics consent required
833
+ * @ignore
834
+ */
835
+ analyticsConsentRequired: DataSpecificationsObject<boolean | null>;
836
+
896
837
  /**
897
838
  * Youtube cookie consent object
898
839
  * @ignore
@@ -910,16 +851,59 @@ export interface DataSpecifications {
910
851
  */
911
852
  appLocalStorageCounter: DataSpecificationsObject<number | null>;
912
853
 
913
- /**
914
- * List of installed external plugins
915
- * @ignore
916
- */
917
- installedPlugins: DataSpecificationsObject<InstalledExternalPluginConfig[]>;
918
-
919
854
  /*
920
855
  * User has entered into arrange mode in RH menu
921
856
  */
922
857
  rhMenuArrangeMode: DataSpecificationsObject<boolean>;
858
+
859
+ /*
860
+ * If startup widgets should persist
861
+ */
862
+ persistentWidgets: DataSpecificationsObject<boolean>;
863
+
864
+ /**
865
+ * List of interests user has, based on onboarding picker
866
+ */
867
+ userInterests: DataSpecificationsObject<UserInterest[]>;
868
+
869
+ onboardingFinished: DataSpecificationsObject<boolean>;
870
+
871
+ locationPermissionsGranted: DataSpecificationsObject<boolean>;
872
+
873
+ doNotShowLocationPermissionsPopup: DataSpecificationsObject<boolean>;
874
+
875
+ locationPermissionsPopupShown: DataSpecificationsObject<number | null>;
876
+
877
+ loginAndFinishAction: DataSpecificationsObject<
878
+ (LoginAndFinishAction & { updated: Timestamp }) | null
879
+ >;
880
+
881
+ /**
882
+ * If user wants to display just some type of favs in favs plugin
883
+ */
884
+ favsFilter: DataSpecificationsObject<FavTypeNew[]>;
885
+
886
+ /**
887
+ * Contains information, that registration hash for pushNotifications has been
888
+ * successfully sent to the backend
889
+ */
890
+ pushNotificationsReady: DataSpecificationsObject<boolean>;
891
+
892
+ /**
893
+ * Feature flags to enable/disable features without the need to re-release the client
894
+ */
895
+ featureFlags: DataSpecificationsObject<FeatureFlags>;
896
+
897
+ /**
898
+ * Whenever fullscreen plugin is opened on mobile device suspend potential
899
+ * sound & haptic feedback on radar/sat layers
900
+ */
901
+ suspendSoundAndHaptic: DataSpecificationsObject<boolean>;
902
+
903
+ /**
904
+ * User has enabled advanced features in debug console
905
+ */
906
+ advancedDebugConsole: DataSpecificationsObject<boolean>;
923
907
  }
924
908
 
925
909
  /**
@@ -0,0 +1,68 @@
1
+ import type { RouteType, StationId, Timestamp } from '@windy/types';
2
+ import type { LatLon, Alert, AlertProps } from '@windy/interfaces';
3
+
4
+ export type FavId = string;
5
+
6
+ /** New fav type not including alerts */
7
+ export type FavTypeNew = 'fav' | 'airport' | 'station' | 'webcam' | 'route';
8
+
9
+ /** @deprecated Old fav type including alert that will be abandoned soon */
10
+ export type FavType = FavTypeNew | 'alert';
11
+
12
+ export type RouteAsString = `${RouteType}/${string}`;
13
+
14
+ export type FavFragment = (LatLon & {
15
+ /** Title of the fav */
16
+ title: string;
17
+ }) &
18
+ (
19
+ | { type: 'fav' }
20
+
21
+ /** @deprecated use till migration of alerts is in process */
22
+ | {
23
+ type: 'alert';
24
+ alert: Alert;
25
+ alertProps: AlertProps;
26
+ }
27
+
28
+ /** Airport ICAO code in case of airport */
29
+ | { type: 'airport'; icao: string }
30
+
31
+ /** Weather station ID (if WX station) */
32
+ | { type: 'station'; stationId: StationId }
33
+ | { type: 'webcam'; webcamId: number }
34
+ | { type: 'route'; route: RouteAsString }
35
+ );
36
+
37
+ export type Fav = FavFragment & {
38
+ /** Unique mongoDb ID of item */
39
+ id: FavId;
40
+
41
+ /**
42
+ * If user wants to pin to top this fav, this timestamp enable us to sort all the favs
43
+ * so the last pinned is on top
44
+ */
45
+ pin2top?: Timestamp | null;
46
+
47
+ /**
48
+ * If user wants to pin to homepage this fav, this timestamp enable us to sort all the favs
49
+ * so the last pinned is first in line
50
+ */
51
+ pin2homepage?: Timestamp | null;
52
+
53
+ /**
54
+ * Timestamp when the item has been updated for the last time. It is used for updating items on all devices (the most up-to-date wins)
55
+ */
56
+ updated: Timestamp;
57
+ };
58
+
59
+ export type ObsoleteFav = FavFragment & {
60
+ key: string;
61
+ };
62
+
63
+ export type FavQuery =
64
+ | { webcamsId: number }
65
+ | { stationId: StationId }
66
+ | { icao: string }
67
+ | { type: FavType }
68
+ | { title: string };
@@ -53,10 +53,6 @@ export interface QueryStringEmbedParams {
53
53
  product?: Products;
54
54
  showDetail: boolean;
55
55
  showMarker: boolean;
56
- /**
57
- * @deprecated Only used for query string of type=alert
58
- */
59
- timestamps?: string;
60
56
  type: 'map' | 'alert' | 'forecast';
61
57
  zoom: number;
62
58
  }
@@ -41,12 +41,11 @@ export interface InitOptions extends WindyAPIOptions {
41
41
  zoom?: number;
42
42
  }
43
43
 
44
- type ApiPicker =
45
- | typeof import('@windy/picker') & {
46
- open: (latLon: LatLon) => void;
47
- close: () => void;
48
- getParams: () => PluginsOpenParams['picker'];
49
- };
44
+ type ApiPicker = typeof import('@windy/picker') & {
45
+ open: (latLon: LatLon) => void;
46
+ close: () => void;
47
+ getParams: () => PluginsOpenParams['picker'];
48
+ };
50
49
 
51
50
  export type InitCb = (windyAPI: {
52
51
  map: WModules['map']['map'];
@@ -61,7 +60,6 @@ export type InitCb = (windyAPI: {
61
60
  export interface ApiAuthResponse {
62
61
  domains: string;
63
62
  paid: boolean;
64
- apiUser: string;
65
63
  id: string;
66
64
  name: string;
67
65
  type: string;
@@ -1,8 +1,8 @@
1
1
  import { QueryStringSource } from '@windy/http.d';
2
2
 
3
3
  export interface NotifHttpQsOptions extends QueryStringSource {
4
- pageSize: number;
5
- current: number;
4
+ pageSize?: number;
5
+ current?: number;
6
6
  markAsViewed?: boolean;
7
7
  }
8
8