@windycom/plugin-devtools 3.0.1 → 3.0.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 (149) hide show
  1. package/README.md +1 -0
  2. package/package.json +1 -1
  3. package/types/client/Calendar.d.ts +104 -70
  4. package/types/client/Color.d.ts +25 -5
  5. package/types/client/DataTiler.d.ts +2 -2
  6. package/types/client/EcmwfProduct.d.ts +22 -0
  7. package/types/client/EventManager.d.ts +69 -0
  8. package/types/client/ExternalSveltePlugin.d.ts +4 -3
  9. package/types/client/GlBuffer.d.ts +45 -0
  10. package/types/client/GlMesh.d.ts +147 -0
  11. package/types/client/GlProgram.d.ts +41 -0
  12. package/types/client/GlRenderer.d.ts +95 -0
  13. package/types/client/GlTexture.d.ts +98 -0
  14. package/types/client/GlVertexArray.d.ts +38 -0
  15. package/types/client/IDB.d.ts +25 -4
  16. package/types/client/LabelsLayer.d.ts +69 -2
  17. package/types/client/Layer.d.ts +96 -26
  18. package/types/client/LayerClasses.d.ts +5 -0
  19. package/types/client/Metric.d.ts +31 -46
  20. package/types/client/MetricClasses.d.ts +1 -1
  21. package/types/client/Overlay.d.ts +5 -12
  22. package/types/client/OverlayClasses.d.ts +8 -0
  23. package/types/client/Particles.d.ts +1 -1
  24. package/types/client/Product.d.ts +38 -67
  25. package/types/client/ProductClasses.d.ts +51 -0
  26. package/types/client/RadarPlusProduct.d.ts +1 -1
  27. package/types/client/Renderer.d.ts +44 -19
  28. package/types/client/SatelliteProduct.d.ts +1 -1
  29. package/types/client/ShaderStorage.d.ts +25 -0
  30. package/types/client/StartupElementPlugin.d.ts +8 -0
  31. package/types/client/SveltePlugin.d.ts +5 -5
  32. package/types/client/SwitchableTileCache.d.ts +104 -0
  33. package/types/client/TileLayer.d.ts +12 -3
  34. package/types/client/TileLayerCustom.d.ts +51 -0
  35. package/types/client/TileLayerMulti.d.ts +53 -0
  36. package/types/client/TileLayerPreprocessorStandalone.d.ts +45 -0
  37. package/types/client/TileLayerRenderer.d.ts +24 -0
  38. package/types/client/TileLayerUtils.d.ts +43 -0
  39. package/types/client/TilePreprocessor.d.ts +27 -0
  40. package/types/client/TopoMap.d.ts +4 -4
  41. package/types/client/WindowPlugin.d.ts +7 -6
  42. package/types/client/appsFlyer.d.ts +2 -1
  43. package/types/client/baseMap.d.ts +12 -2
  44. package/types/client/broadcast.d.ts +1 -1
  45. package/types/client/cityLabels.d.ts +2 -3
  46. package/types/client/colorGradients.d.ts +4 -10
  47. package/types/client/colors.d.ts +1 -2
  48. package/types/client/css.test.d.ts +1 -0
  49. package/types/client/customProtocol.d.ts +11 -0
  50. package/types/client/d.ts.files/GlObj.d.ts +1 -5
  51. package/types/client/d.ts.files/Metric.d.ts +23 -2
  52. package/types/client/d.ts.files/alerts.d.ts +1 -0
  53. package/types/client/d.ts.files/broadcast.d.ts +31 -35
  54. package/types/client/d.ts.files/dataSpecifications.d.ts +82 -66
  55. package/types/client/d.ts.files/favs.d.ts +7 -18
  56. package/types/client/d.ts.files/glUtils.d.ts +71 -0
  57. package/types/client/d.ts.files/http.d.ts +4 -4
  58. package/types/client/d.ts.files/interpolatorTypes.d.ts +5 -5
  59. package/types/client/d.ts.files/lib.d.ts +1 -2
  60. package/types/client/d.ts.files/liveAlerts.d.ts +52 -0
  61. package/types/client/d.ts.files/mapUtils.d.ts +25 -0
  62. package/types/client/d.ts.files/outgoingMessages.d.ts +1 -1
  63. package/types/client/d.ts.files/plugin-params.d.ts +46 -24
  64. package/types/client/d.ts.files/plugins.d.ts +44 -31
  65. package/types/client/d.ts.files/rootScope.d.ts +2 -0
  66. package/types/client/d.ts.files/singleclick.d.ts +4 -2
  67. package/types/client/d.ts.files/startup.d.ts +7 -52
  68. package/types/client/d.ts.files/storage.d.ts +0 -11
  69. package/types/client/d.ts.files/user.d.ts +6 -1
  70. package/types/client/d.ts.files/webcams.d.ts +9 -2
  71. package/types/client/dataLoader.d.ts +2 -2
  72. package/types/client/detectDevice.d.ts +3 -0
  73. package/types/client/embed.d.ts +2 -7
  74. package/types/client/errorLogger.d.ts +20 -1
  75. package/types/client/externalPlugins.d.ts +5 -1
  76. package/types/client/fetch.d.ts +62 -5
  77. package/types/client/format.d.ts +12 -0
  78. package/types/client/glContextUtils.d.ts +9 -0
  79. package/types/client/glStatus.d.ts +7 -0
  80. package/types/client/glTileRender.d.ts +1 -7
  81. package/types/client/glUtils.d.ts +119 -0
  82. package/types/client/http.d.ts +0 -6
  83. package/types/client/idbConnection.d.ts +13 -0
  84. package/types/client/idbInstances.d.ts +118 -13
  85. package/types/client/landLayer.d.ts +3 -0
  86. package/types/client/layers.d.ts +5 -2
  87. package/types/client/legends.d.ts +1 -1
  88. package/types/client/lib.d.ts +11 -21
  89. package/types/client/liveAlerts.d.ts +2 -2
  90. package/types/client/location.d.ts +1 -1
  91. package/types/client/map.d.ts +94 -15
  92. package/types/client/mapUtils.d.ts +66 -0
  93. package/types/client/math.d.ts +14 -0
  94. package/types/client/mobile.d.ts +16 -41
  95. package/types/client/mobileUtils.d.ts +10 -0
  96. package/types/client/models.d.ts +2 -6
  97. package/types/client/overlays.d.ts +4 -3
  98. package/types/client/particleRenderers.d.ts +1 -1
  99. package/types/client/picker.d.ts +4 -8
  100. package/types/client/plugins.d.ts +0 -4
  101. package/types/client/products.d.ts +53 -2
  102. package/types/client/promo.d.ts +28 -5
  103. package/types/client/pushNotifications.d.ts +19 -1
  104. package/types/client/renderCtrl.d.ts +1 -1
  105. package/types/client/renderTile.d.ts +2 -2
  106. package/types/client/renderUtils.d.ts +21 -27
  107. package/types/client/renderers.d.ts +6 -9
  108. package/types/client/reverseName.d.ts +2 -1
  109. package/types/client/rhMessage.d.ts +1 -1
  110. package/types/client/rootScope.d.ts +17 -9
  111. package/types/client/router.d.ts +41 -9
  112. package/types/client/seoParser.d.ts +35 -0
  113. package/types/client/showableErrorsService.d.ts +10 -6
  114. package/types/client/singleclick.d.ts +1 -1
  115. package/types/client/startup.d.ts +48 -0
  116. package/types/client/startupUtils.d.ts +19 -0
  117. package/types/client/store.d.ts +20 -52
  118. package/types/client/subscription.d.ts +3 -26
  119. package/types/client/throttler.d.ts +32 -0
  120. package/types/client/tileHelpers.d.ts +35 -0
  121. package/types/client/tileInterpolator.d.ts +1 -1
  122. package/types/client/tileLayerInterpolator.d.ts +40 -0
  123. package/types/client/tileLayerSource.d.ts +98 -0
  124. package/types/client/timestampUtils.test.d.ts +1 -0
  125. package/types/client/topMessage.d.ts +22 -0
  126. package/types/client/user.d.ts +1 -0
  127. package/types/client/userAlerts.d.ts +0 -4
  128. package/types/client/userConsent.d.ts +0 -2
  129. package/types/client/userFavs.d.ts +17 -12
  130. package/types/client/utils.d.ts +78 -25
  131. package/types/client/utils.test.d.ts +1 -0
  132. package/types/iconfont.d.ts +2 -5
  133. package/types/interfaces.d.ts +290 -88
  134. package/types/lang-files.d.ts +578 -98
  135. package/types/leaflet-gl.d.ts +12773 -0
  136. package/types/types.d.ts +323 -11
  137. package/types/client/d.ts.files/Calendar.d.ts +0 -96
  138. package/types/client/d.ts.files/CanvasLayer.d.ts +0 -70
  139. package/types/client/d.ts.files/Color.d.ts +0 -94
  140. package/types/client/d.ts.files/DataTiler.d.ts +0 -45
  141. package/types/client/d.ts.files/LandMask.d.ts +0 -17
  142. package/types/client/d.ts.files/Layer.d.ts +0 -191
  143. package/types/client/d.ts.files/PoisOverlay.d.ts +0 -27
  144. package/types/client/d.ts.files/Renderer.d.ts +0 -44
  145. package/types/client/d.ts.files/TileLayerCanvas.d.ts +0 -78
  146. package/types/client/d.ts.files/TileLayerMultiPatch.d.ts +0 -13
  147. package/types/client/d.ts.files/products.d.ts +0 -60
  148. package/types/client/imaker.d.ts +0 -112
  149. package/types/offline.d.ts +0 -100
@@ -0,0 +1,25 @@
1
+ import type { Coords } from '@leafletGl';
2
+
3
+ export type ViewportBounds = { xMin: number; yMin: number; xMax: number; yMax: number };
4
+
5
+ export type TransformedUrlPayload = {
6
+ modifiedUrl: string;
7
+ tileCoords?: Coords;
8
+ };
9
+
10
+ export type TileDataPreprocessCallback = (
11
+ imgData: Blob,
12
+ urlPayload: TransformedUrlPayload,
13
+ ) => Promise<ImageBitmap>;
14
+
15
+ export type GeneratedProtocol = `protocol-${string}`;
16
+
17
+ export type CustomProtocol =
18
+ | 'rad-data'
19
+ | 'rad-flow'
20
+ | 'sat-data'
21
+ | 'sat-flow'
22
+ | 'rad-nowcast'
23
+ | 'forecast'
24
+ | 'rad-ptype'
25
+ | GeneratedProtocol;
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import type { MetricItem } from '@windy/Metric.d';
6
- import type { LatLon } from '../../types/interfaces';
6
+ import type { LatLon } from '@windy/interfaces';
7
7
 
8
8
  /**
9
9
  * Types of valid messages sent to the embed config via window.postMessage.
@@ -1,7 +1,6 @@
1
1
  import { Fav, FavId } from '@windy/favs.d';
2
- import { StartupArticleData, WhatsNewData } from '@windy/startup.d';
3
- import { HiddenReasonType, ReasonTypes } from '@plugins/subscription/subscription';
4
- import { FullRenderParameters } from '@windy/Layer.d';
2
+ import { WhatsNewData } from '@windy/startup.d';
3
+
5
4
  import { HttpPayload } from '@windy/http.d';
6
5
  import {
7
6
  CapAlertHeadline,
@@ -11,6 +10,7 @@ import {
11
10
  PickerCoords,
12
11
  SummaryDataHash,
13
12
  WeatherDataPayload,
13
+ FullRenderParameters,
14
14
  } from '@windy/interfaces.d';
15
15
  import { Pois, Products } from '@windy/rootScope.d';
16
16
  import { SingleClickParams } from '@windy/singleclick.d';
@@ -22,16 +22,23 @@ import {
22
22
  type Timestamp,
23
23
  } from '@windy/types.d';
24
24
  import { WebcamCategoryType } from '@windy/webcams';
25
+ import type { Point } from '@leafletGl';
25
26
 
26
- import type { StoryPreview } from '@plugins/stories/stories.d';
27
27
  import type { StationDisplayType } from '@plugins/station/station';
28
- import type { PluginsListResponseDto } from '@plugins/external-plugins/external-plugins';
28
+ import type { LiveAlertEvent } from '@plugins/startup-live-alerts/startup-live-alerts';
29
+ import type { ArticleStartupData } from '@plugins/articles/articles.d';
30
+ import type {
31
+ HiddenReasonType,
32
+ ReasonTypes,
33
+ SubscriptionSource,
34
+ } from '@plugins/subscription/subscription';
29
35
 
30
36
  /**
31
37
  * Type of source event, that led to opening any plugin
32
38
  */
33
39
  export type PluginOpenEventSource =
34
40
  | 'contextmenu'
41
+ | 'beta-drop-down'
35
42
  | 'hp'
36
43
  | 'url'
37
44
  | 'singleclick'
@@ -42,6 +49,8 @@ export type PluginOpenEventSource =
42
49
  | 'alerts-page'
43
50
  | 'favs-on-hp'
44
51
  | 'picker'
52
+ | 'picker-mobile'
53
+ | 'picker-mobile-settings'
45
54
  | 'meta'
46
55
  | 'fallback'
47
56
  | 'gps'
@@ -108,7 +117,8 @@ type RplannerDistanceParams =
108
117
  | {
109
118
  import: boolean;
110
119
  content: string;
111
- }; // Uploaded GPX
120
+ } // Uploaded GPX
121
+ | undefined;
112
122
 
113
123
  export type PickerOpenParams =
114
124
  | (PluginSource &
@@ -121,7 +131,7 @@ export type PluginsOpenParams = {
121
131
  detail: DetailOpenParams;
122
132
  picker: PickerOpenParams;
123
133
  'picker-mobile': PickerOpenParams;
124
- favs: PluginSource & { importObsoleteFavs?: boolean };
134
+ favs: PluginSource;
125
135
  station: PluginSource & {
126
136
  id: string;
127
137
  moveToTimestamp?: Timestamp;
@@ -132,7 +142,6 @@ export type PluginsOpenParams = {
132
142
  'webcams-detail': PluginSource & WebcamDetailOpenParams;
133
143
  'webcams-edit': PluginSource & WebcamDetailOpenParams;
134
144
  'webcams-remove': PluginSource & WebcamDetailOpenParams;
135
- //settings: (PluginSource & { id: string }) | undefined;
136
145
  settings: PluginSource | undefined;
137
146
  articles: (PluginSource & { id: number | string }) | undefined;
138
147
  upload: PluginSource & { id: string };
@@ -144,17 +153,22 @@ export type PluginsOpenParams = {
144
153
  */
145
154
  name?: string;
146
155
  };
147
- contextmenu: PluginSource & LatLon & { containerPoint?: L.Point };
156
+ contextmenu: PluginSource & LatLon & { containerPoint?: Point };
157
+ 'beta-drop-down': undefined;
158
+
159
+ /**
160
+ * Typing is incorrect here. If called from ClickHandler it has a string as params
161
+ */
148
162
  subscription:
149
- | (PluginSource & {
150
- promote?: ReasonTypes | HiddenReasonType;
151
- pendingError?: Error & { responseText: string };
152
- })
153
- | undefined;
163
+ | PluginSource
164
+ | (PluginSource &
165
+ (
166
+ | { promote?: ReasonTypes | HiddenReasonType; subsSource: SubscriptionSource }
167
+ | { pendingError: Error & { responseText: string } }
168
+ ));
154
169
  'alerts-edit': PluginSource &
155
170
  (
156
171
  | { action: 'edit'; id: string }
157
- | { action: 'migration'; favId: string }
158
172
  | {
159
173
  action: 'new';
160
174
  lat: number;
@@ -169,22 +183,20 @@ export type PluginsOpenParams = {
169
183
  rplanner: PluginSource & RplannerDistanceParams;
170
184
  airport: PluginSource & { id: string };
171
185
  share: undefined;
186
+ 'report-issue': PluginSource & { openedFrom?: 'radar' | 'satellite' | 'betaDropDown' };
187
+ 'sun-moon': (PluginSource & LatLon) | undefined;
172
188
  'nearest-stations': PluginSource & LatLon & { compactVersion?: boolean; includeAirq?: boolean };
173
189
  'nearest-airq': PluginSource & LatLon;
174
190
  'nearest-webcams-mobile': PluginSource & LatLon;
175
191
  'nearest-webcams': PluginSource & LatLon;
176
192
  'external-plugins':
177
- | (PluginSource & {
178
- id?: string;
179
- qs?: PluginsQsParams['external-plugins'];
180
- installPlugin?: PluginsListResponseDto;
181
- })
193
+ | (PluginSource & { id?: string; qs?: PluginsQsParams['external-plugins'] })
182
194
  | undefined;
183
195
  sounding: PluginSource & LatLon & { name?: string };
184
196
  radiosonde: PluginSource & { id: string; lat?: number; lon?: number };
185
- startup: PluginSource;
186
- 'startup-whats-new': PluginSource & { data: WhatsNewData };
187
- 'startup-articles': PluginSource & { data: StartupArticleData };
197
+ 'whats-new': PluginSource & { data: WhatsNewData };
198
+ 'startup-articles': PluginSource & { data: ArticleStartupData };
199
+ 'startup-promos': PluginSource & { typeOfPromo: 'obsoleteApp' | 'premium' | 'mapyCom' };
188
200
  'startup-weather': PluginSource & {
189
201
  coords: HomeLocation | GeolocationInfo;
190
202
  promises: {
@@ -192,6 +204,12 @@ export type PluginsOpenParams = {
192
204
  capAlerts: Promise<HttpPayload<CapAlertHeadline[]>>;
193
205
  };
194
206
  };
207
+ 'startup-pin2hp': PluginSource;
208
+ 'startup-live-alerts': PluginSource & {
209
+ coords: LatLon | GeolocationInfo | HomeLocation;
210
+ alerts: LiveAlertEvent[];
211
+ };
212
+ 'startup-debug': PluginSource;
195
213
  login:
196
214
  | (PluginSource & {
197
215
  reason?: 'login' | 'register';
@@ -214,9 +232,13 @@ export type PluginsOpenParams = {
214
232
  'developer-mode': (PluginSource & { qs: Record<string, string> | undefined }) | undefined;
215
233
  'windy-external-plugin': PluginSource & LatLon;
216
234
  menu: PluginSource & { scrollTo?: 'pois' };
217
- stories: { id: string; sortedAndEnhancedPreviews?: StoryPreview[] } & PluginSource;
218
235
  onboarding: (PluginSource & { getUserInterests?: boolean }) | undefined;
219
236
  'heatmaps-redirect': PluginSource & { id?: string };
237
+ 'beta-cookie': PluginSource & { action?: 'activate' | 'remove' };
238
+ 'radar-plus-use-satellite': PluginSource | undefined;
239
+ info: PluginSource & {
240
+ displayOverlayInfoFirst?: boolean;
241
+ };
220
242
  } & {
221
243
  [external: ExternalPluginIdent]:
222
244
  | (PluginSource & { query: Record<string, string> | undefined })
@@ -3,11 +3,11 @@ 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
+ import { StartupElementPlugin } from '@windy/StartupElementPlugin';
6
7
 
7
8
  export interface BottomSveltePlugins {
8
- 'mobile-calendar'?: BottomSveltePlugin<'mobile-calendar'>;
9
- 'progress-bar'?: BottomSveltePlugin<'progress-bar'>;
10
-
9
+ 'mobile-calendar': BottomSveltePlugin<'mobile-calendar'>;
10
+ 'progress-bar': BottomSveltePlugin<'progress-bar'>;
11
11
  'day-switcher': BottomSveltePlugin<'day-switcher'>;
12
12
  'cap-alerts': BottomSveltePlugin<'cap-alerts'>;
13
13
  accumulations: BottomSveltePlugin<'accumulations'>;
@@ -33,9 +33,11 @@ export interface SveltePanePlugins {
33
33
  'webcams-add': SveltePanePlugin<'webcams-add'>;
34
34
  'webcams-edit': SveltePanePlugin<'webcams-edit'>;
35
35
  'webcams-remove': SveltePanePlugin<'webcams-remove'>;
36
+ 'report-issue': SveltePanePlugin<'report-issue'>;
37
+ 'external-plugins': SveltePanePlugin<'external-plugins'>;
36
38
 
37
- uploader?: SveltePanePlugin<'uploader'>;
38
- 'external-plugins'?: SveltePanePlugin<'external-plugins'>;
39
+ uploader: SveltePanePlugin<'uploader'>;
40
+ 'whats-new': SveltePanePlugin<'whats-new'>;
39
41
  }
40
42
 
41
43
  export interface SveltePlugins {
@@ -55,64 +57,75 @@ export interface SveltePlugins {
55
57
  menu: SveltePlugin<'menu'>;
56
58
  'fav-alert-menu': SveltePlugin<'fav-alert-menu'>;
57
59
  radar: SveltePlugin<'radar'>;
58
- satellite: SveltePlugin<'satellite'>;
59
60
  'radar-plus': SveltePlugin<'radar-plus'>;
61
+ 'radar-plus-use-satellite': SveltePlugin<'radar-plus-use-satellite'>;
60
62
  'map-selector': SveltePlugin<'map-selector'>;
61
63
 
62
64
  // Mobile/desktop only plugins
63
- distance?: SveltePlugin<'distance'>;
64
- 'watch-faces'?: SveltePlugin<'watch-faces'>;
65
- 'app-review-dialog'?: SveltePlugin<'app-review-dialog'>;
66
- widgets?: SveltePlugin<'widgets'>;
67
- garmin?: SveltePlugin<'garmin'>;
68
- 'fav-layers'?: SveltePlugin<'fav-layers'>;
69
- onboarding?: SveltePlugin<'onboarding'>;
70
- 'developer-mode'?: SveltePlugin<'developer-mode'>;
71
- 'pin-to-homepage'?: SveltePlugin<'pin-to-homepage'>;
72
- 'startup-whats-new'?: SveltePlugin<'startup-whats-new'>;
65
+ distance: SveltePlugin<'distance'>;
66
+ 'watch-faces': SveltePlugin<'watch-faces'>;
67
+ 'app-review-dialog': SveltePlugin<'app-review-dialog'>;
68
+ widgets: SveltePlugin<'widgets'>;
69
+ garmin: SveltePlugin<'garmin'>;
70
+ 'fav-layers': SveltePlugin<'fav-layers'>;
71
+ onboarding: SveltePlugin<'onboarding'>;
72
+ 'developer-mode': SveltePlugin<'developer-mode'>;
73
+
73
74
  'rhpane-top': SveltePlugin<'rhpane-top'>;
74
- rhbottom?: SveltePlugin<'rhbottom'>;
75
- 'location-permission'?: SveltePlugin<'location-permission'>;
75
+ rhbottom: SveltePlugin<'rhbottom'>;
76
+ 'location-permission': SveltePlugin<'location-permission'>;
76
77
 
77
- 'startup-weather'?: SveltePlugin<'startup-weather'>;
78
- 'mobile-ui'?: SveltePlugin<'mobile-ui'>;
79
- 'embed-ui'?: SveltePlugin<'embed-ui'>;
80
- contextmenu?: SveltePlugin<'contextmenu'>;
78
+ 'mobile-ui': SveltePlugin<'mobile-ui'>;
79
+ 'embed-ui': SveltePlugin<'embed-ui'>;
80
+ contextmenu: SveltePlugin<'contextmenu'>;
81
+ 'beta-drop-down': SveltePlugin<'beta-drop-down'>;
81
82
  upload: SveltePlugin<'upload'>;
82
83
  search: SveltePlugin<'search'>;
83
- 'startup-articles'?: SveltePlugin<'startup-articles'>;
84
- 'picker-mobile'?: SveltePlugin<'picker-mobile'>; // to Svelte plugin
84
+ 'picker-mobile': SveltePlugin<'picker-mobile'>; // to Svelte plugin
85
+ 'perf-overlay': SveltePlugin<'perf-overlay'>;
86
+ 'sun-moon': SveltePlugin<'sun-moon'>;
85
87
 
86
88
  // Used as fake plugin for any other external plugin
87
89
  // basically we are unable to type each individual external plugin
88
90
  'windy-external-plugin'?: SveltePlugin<'windy-external-plugin'>;
89
- stories: SveltePlugin<'stories'>;
91
+ }
92
+
93
+ export interface StartupElementPlugins {
94
+ 'startup-articles': StartupElementPlugin<'startup-articles'>;
95
+ 'startup-promos': StartupElementPlugin<'startup-promos'>;
96
+ 'startup-live-alerts': StartupElementPlugin<'startup-live-alerts'>;
97
+ 'startup-debug': StartupElementPlugin<'startup-debug'>;
98
+ 'startup-pin2hp': StartupElementPlugin<'startup-pin2hp'>;
99
+ 'startup-weather': StartupElementPlugin<'startup-weather'>;
90
100
  }
91
101
 
92
102
  export interface PlainPlugins {
93
103
  'gl-particles': Plugin<'gl-particles'>;
94
- 'legacy-tile-render': Plugin<'legacy-tile-render'>;
95
- particles: Plugin<'particles'>;
96
104
  isolines: Plugin<'isolines'>;
97
105
  }
98
106
 
99
107
  export interface TagPlugins {
100
108
  // These plugins have css only (no html)
101
109
  'poi-libs': TagPlugin<'poi-libs'>;
102
- picker?: TagPlugin<'picker'>;
103
- globe?: TagPlugin<'globe'>;
110
+ picker: TagPlugin<'picker'>;
111
+ globe: TagPlugin<'globe'>;
104
112
  'heatmaps-redirect': TagPlugin<'heatmaps-redirect'>;
113
+ 'beta-cookie': TagPlugin<'beta-cookie'>;
105
114
  }
106
115
 
116
+ // Includes plain plugins
107
117
  export interface Plugins
108
118
  extends TagPlugins,
109
119
  SveltePlugins,
110
120
  SveltePanePlugins,
111
121
  PlainPlugins,
112
- BottomSveltePlugins {}
122
+ BottomSveltePlugins,
123
+ StartupElementPlugins {}
113
124
 
125
+ // Only descendants of WindowPlugin§
114
126
  export interface WindowPlugins
115
127
  extends TagPlugins,
116
128
  SveltePlugins,
117
129
  SveltePanePlugins,
118
- BottomSveltePlugins {}
130
+ BottomSveltePlugins,
131
+ StartupElementPlugins {}
@@ -23,3 +23,5 @@ export type SupportedLanguages = (typeof import('./rootScope').supportedLanguage
23
23
  export type Pois = keyof typeof import('./rootScope').pois;
24
24
 
25
25
  export type Isolines = (typeof import('./rootScope').isolinesType)[number];
26
+
27
+ export type PollenProducts = keyof typeof import('./rootScope').pollenProducts;
@@ -9,12 +9,14 @@ export interface SingleClickParams extends LatLon {
9
9
  source: 'singleclick';
10
10
  }
11
11
 
12
+ type PoiKeys = `poi-${Pois | 'stations' | 'label'}`;
13
+
12
14
  type SingleclickPoiTypes = {
13
- [key in `poi-${Pois | 'stations' | 'label'}`]: [HTMLElement];
15
+ [key in PoiKeys]: [HTMLElement];
14
16
  };
15
17
 
16
18
  export type SingleclickPluginTypes = {
17
- [key in PluginIdent]: [SingleClickParams];
19
+ [key in Exclude<PluginIdent, PoiKeys>]: [SingleClickParams];
18
20
  };
19
21
 
20
22
  export type SingleclickEternalPluginTypes = {
@@ -1,23 +1,11 @@
1
- import type { RelatedHomepageArticlesResponseDto } from '@plugins/articles/articles.d';
2
- import type { Timestamp } from '@windy/types';
1
+ import type { SemVersion, Timestamp } from '@windy/types';
3
2
 
4
- export type StartupNewsType = 'hp-article' | 'whats-new';
3
+ export type WhatsNewObsolete = {
4
+ minVersion: SemVersion;
5
+ published: Timestamp;
6
+ };
5
7
 
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';
8
+ export type WhatsNewData = {
21
9
  id: string;
22
10
  title: string;
23
11
  contributors: {
@@ -29,37 +17,4 @@ export interface WhatsNewData extends StartupItem {
29
17
  improved?: string;
30
18
  fixed?: string;
31
19
  };
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
- }
20
+ };
@@ -1,6 +1,4 @@
1
1
  import { Timestamp } from '@windy/types.d';
2
- import { Fav, type ObsoleteFav } from '@windy/favs.d';
3
- import { SearchRecent } from '@plugins/search/search';
4
2
 
5
3
  export interface StorageData {
6
4
  /** @deprecated replaced by IDB */
@@ -43,15 +41,6 @@ export interface StorageData {
43
41
  * Other dynamically add storage data
44
42
  */
45
43
  [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;
55
44
  }
56
45
 
57
46
  export type StorageDataKey = keyof StorageData & string;
@@ -1,6 +1,7 @@
1
- import { SubscriptionInfo } from '@plugins/_shared/subscription-services/subscription-services.d';
2
1
  import { SubTier, type ExternalPluginIdent } from '@windy/types.d';
3
2
  import { FavFragment } from '@windy/favs';
3
+
4
+ import type { SubscriptionInfo } from '@plugins/shared/subscription-services/subscription-services.d';
4
5
  import type { PluginsOpenParams } from '@windy/plugin-params';
5
6
 
6
7
  export interface User {
@@ -107,6 +108,10 @@ export type LoginAndFinishAction =
107
108
  action: 'colors';
108
109
  params: PluginsOpenParams['colors'];
109
110
  }
111
+ | {
112
+ action: 'external-plugins';
113
+ params: PluginsOpenParams['external-plugins'];
114
+ }
110
115
  | {
111
116
  action: 'openExternalPlugin';
112
117
  params: {
@@ -1,6 +1,6 @@
1
+ import { HttpPayload } from '@windy/http.d';
1
2
  import { LatLon } from '@windy/interfaces.d';
2
3
  import { Timestamp } from '@windy/types.d';
3
- import { HttpPayload } from '@windy/http.d';
4
4
 
5
5
  export type WebcamCategoryType =
6
6
  | 'landscape'
@@ -75,7 +75,6 @@ export interface WebcamImageUrls {
75
75
  normal: string;
76
76
  original: string;
77
77
  preview: string;
78
- teaserbg: string;
79
78
  thumbnail: string;
80
79
  webcam: string;
81
80
  }
@@ -83,6 +82,8 @@ export interface WebcamImageUrls {
83
82
  export type WebcamImageSize = keyof WebcamImageUrls;
84
83
 
85
84
  export type WebcamTimelapseType = 'day' | 'current' | 'all';
85
+
86
+ // FIXME TODO: This type does not correspond to output form a backend. Fix the type
86
87
  export interface WebcamDetail {
87
88
  categories: WebcamCategoryType[];
88
89
  contacts: { owner: string; caretaker: string };
@@ -153,6 +154,12 @@ export interface WebcamLastUpdatedOn {
153
154
  lastUpdatedOn: number[];
154
155
  }
155
156
 
157
+ export interface WebcamImageRequestParams {
158
+ webcamId: string | number;
159
+ state?: 'current' | 'daylight';
160
+ size?: WebcamImageSize;
161
+ }
162
+
156
163
  export interface WebcamMetadata {
157
164
  updateString: string;
158
165
  recencyClass: string;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Loader service for new rendering engine
3
3
  */
4
- import type { TransformFunction } from '@windy/Layer.d';
5
- import type { TileParams } from '@windy/Renderer.d';
4
+ import type { TransformFunction } from '@windy/types';
5
+ import type { TileParams } from '@windy/Renderer';
6
6
  export declare class DataTile {
7
7
  url: string;
8
8
  status: 'undefined' | 'loaded' | 'loading' | 'failed';
@@ -1,3 +1,6 @@
1
1
  import type { Device, Platform } from '@windy/types.d';
2
2
  export declare const platform: Platform;
3
+ /**
4
+ * The value of current device type (mobile, tablet, desktop)
5
+ */
3
6
  export declare const device: Device;
@@ -1,4 +1,3 @@
1
- import './leafletExt/CanvasLayer';
2
1
  import './services/params';
3
2
  import './pluginSystem/Plugin';
4
3
  import './pluginSystem/SveltePlugin';
@@ -8,7 +7,6 @@ import './pluginSystem/pluginsCtrl';
8
7
  import './ui/timeAnimation';
9
8
  import './ui/visibility';
10
9
  import './render/renderTile';
11
- import './render/tileLayerInstance';
12
10
  export * as detectDevice from './dummyModules/detectDevice';
13
11
  export * as log from './dummyModules/log';
14
12
  export * as promo from './dummyModules/promo';
@@ -33,9 +31,7 @@ export * as picker from './map/picker';
33
31
  export * as singleclick from './map/singleclick';
34
32
  export { default as plugins } from './pluginSystem/plugins';
35
33
  export * as interpolator from './render/interpolator';
36
- export { default as particleRenderers } from './render/particleRenderers';
37
34
  export * as renderUtils from './render/renderUtils';
38
- export * as DataTiler from './renderClasses/DataTiler';
39
35
  export { default as colors } from './services/colors';
40
36
  export * as connection from './services/connection';
41
37
  export * as device from './services/device';
@@ -47,7 +43,6 @@ export * as trans from './services/trans';
47
43
  export * as query from './ui/query';
48
44
  export * as rhMessage from './ui/rhMessage';
49
45
  export * as BottomSlide from './uiClasses/BottomSlide';
50
- export * as ClickHandler from './uiClasses/ClickHandler';
51
46
  export * as Drag from './uiClasses/Drag';
52
47
  export * as Swipe from './uiClasses/Swipe';
53
48
  export * as Window from './uiClasses/Window';
@@ -60,11 +55,11 @@ export { default as lruCache } from './utils/lruCache';
60
55
  export { default as storage } from './utils/storage';
61
56
  export * as subscription from './utils/subscription';
62
57
  export * as utils from './utils/utils';
58
+ export * as EventManager from './utils/EventManager';
63
59
  export { default as metrics } from './weather/metrics';
64
60
  export * as models from './weather/models';
65
61
  export { default as products } from './weather/products';
66
62
  export * as Calendar from './weatherClasses/Calendar';
67
63
  export * as Color from './weatherClasses/Color';
68
- export * as IconProducts from './weatherClasses/IconProducts';
69
- export { default as GlObj } from './wgUtils/GlObj';
70
64
  export { $, bcast as broadcast, ga, overlays, store };
65
+ export * as glUtils from './glUtils/glUtils';
@@ -13,7 +13,7 @@ interface ErrorPayload {
13
13
  platform: Platform;
14
14
  device: Device;
15
15
  ver: string;
16
- target: 'index' | 'mobile' | 'embed' | 'lib' | 'imaker';
16
+ target: 'index' | 'mobile' | 'embed' | 'lib';
17
17
  msg: string;
18
18
  timestamp: Timestamp;
19
19
  runningMinutes: number;
@@ -27,10 +27,29 @@ interface ErrorPayload {
27
27
  stack?: string;
28
28
  repeated?: number;
29
29
  latestBcast?: string;
30
+ network?: Record<string, string | number>;
30
31
  }
31
32
  /**
32
33
  * Array of all errors reported to kibana, to show them in debug mode
33
34
  * plugin
34
35
  */
35
36
  export declare const sentErrors: ErrorPayload[];
37
+ /**
38
+ * Suspend further error reporting (for example after launching 3rd party plugin, that may cause errors)
39
+ */
40
+ export declare const suspendErrorLogging: () => void;
41
+ /**
42
+ * Get NetworkInformation from navigator.connection if available
43
+ * https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API
44
+ * https://caniuse.com/netinfo
45
+ * @returns NetworkInformation or empty object
46
+ */
47
+ export declare function getNetworkInformation(): {
48
+ downlink: any;
49
+ downlinkMax: any;
50
+ effectiveType: any;
51
+ rtt: any;
52
+ saveData: any;
53
+ type: any;
54
+ };
36
55
  export {};
@@ -1,6 +1,10 @@
1
+ import { ExternalSveltePlugin } from '@windy/ExternalSveltePlugin';
1
2
  import type { InstalledExternalPluginConfig } from '@windy/interfaces.d';
2
3
  export type ExternalPluginError = {
3
4
  type: 'network' | 'installation' | 'open';
4
5
  msg: string;
5
6
  };
6
- export declare const installExternalPlugin: (url: string, installedBy: InstalledExternalPluginConfig['installedBy']) => Promise<InstalledExternalPluginConfig | ExternalPluginError>;
7
+ export declare const installExternalPlugin: (url: string, installedBy: InstalledExternalPluginConfig['installedBy']) => Promise<InstalledExternalPluginConfig>;
8
+ export declare const loadExternalPlugins: () => Promise<ExternalSveltePlugin[]>;
9
+ /** Removes ext plugin */
10
+ export declare const removeExternalPlugin: (name: InstalledExternalPluginConfig['name']) => Promise<void>;