@windycom/plugin-devtools 3.0.0 → 3.0.2

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 (97) hide show
  1. package/README.md +2 -0
  2. package/package.json +1 -1
  3. package/types/client/BottomSlide.d.ts +3 -0
  4. package/types/client/Calendar.d.ts +101 -71
  5. package/types/client/Color.d.ts +19 -6
  6. package/types/client/DataTiler.d.ts +1 -1
  7. package/types/client/ExternalSveltePlugin.d.ts +6 -1
  8. package/types/client/IDB.d.ts +7 -1
  9. package/types/client/Layer.d.ts +95 -26
  10. package/types/client/LayerClasses.d.ts +5 -0
  11. package/types/client/Metric.d.ts +32 -43
  12. package/types/client/Overlay.d.ts +7 -10
  13. package/types/client/OverlayClasses.d.ts +8 -0
  14. package/types/client/Particles.d.ts +1 -1
  15. package/types/client/Plugin.d.ts +4 -0
  16. package/types/client/Product.d.ts +31 -73
  17. package/types/client/ProductClasses.d.ts +44 -0
  18. package/types/client/Renderer.d.ts +41 -13
  19. package/types/client/SveltePlugin.d.ts +7 -0
  20. package/types/client/TileLayer.d.ts +2 -2
  21. package/types/client/TopoMap.d.ts +2 -3
  22. package/types/client/WindowPlugin.d.ts +9 -5
  23. package/types/client/colorGradients.d.ts +5 -10
  24. package/types/client/colors.d.ts +1 -2
  25. package/types/client/compatibilityCheck.d.ts +1 -0
  26. package/types/client/connection.d.ts +1 -1
  27. package/types/client/d.ts.files/LabelsLayer.d.ts +2 -2
  28. package/types/client/d.ts.files/Metric.d.ts +21 -2
  29. package/types/client/d.ts.files/TileLayerCanvas.d.ts +3 -3
  30. package/types/client/d.ts.files/alerts.d.ts +2 -2
  31. package/types/client/d.ts.files/broadcast.d.ts +17 -12
  32. package/types/client/d.ts.files/dataSpecifications.d.ts +76 -53
  33. package/types/client/d.ts.files/favs.d.ts +18 -30
  34. package/types/client/d.ts.files/http.d.ts +5 -0
  35. package/types/client/d.ts.files/lib.d.ts +5 -8
  36. package/types/client/d.ts.files/plugin-params.d.ts +32 -20
  37. package/types/client/d.ts.files/plugins.d.ts +2 -3
  38. package/types/client/d.ts.files/rootScope.d.ts +14 -12
  39. package/types/client/d.ts.files/startup.d.ts +17 -11
  40. package/types/client/d.ts.files/user.d.ts +3 -0
  41. package/types/client/d.ts.files/{Webcams.d.ts → webcams.d.ts} +9 -2
  42. package/types/client/dataLoader.d.ts +2 -2
  43. package/types/client/device.d.ts +1 -0
  44. package/types/client/embed.d.ts +68 -0
  45. package/types/client/errorLogger.d.ts +28 -3
  46. package/types/client/errors.d.ts +6 -0
  47. package/types/client/externalPlugins.d.ts +2 -0
  48. package/types/client/fetch.d.ts +42 -6
  49. package/types/client/format.d.ts +2 -1
  50. package/types/client/glTileRender.d.ts +1 -7
  51. package/types/client/http.d.ts +0 -6
  52. package/types/client/idbInstances.d.ts +123 -21
  53. package/types/client/imakerMain.d.ts +49 -0
  54. package/types/client/latestBroadcasts.d.ts +1 -1
  55. package/types/client/layers.d.ts +3 -1
  56. package/types/client/legends.d.ts +1 -1
  57. package/types/client/lib.d.ts +1 -10
  58. package/types/client/libHtml.d.ts +1 -1
  59. package/types/client/liveAlerts.d.ts +5 -0
  60. package/types/client/liveAlerts.types.d.ts +28 -0
  61. package/types/client/location.d.ts +5 -0
  62. package/types/client/log.d.ts +3 -1
  63. package/types/client/map.d.ts +7 -1
  64. package/types/client/mobile.d.ts +3 -9
  65. package/types/client/models.d.ts +7 -9
  66. package/types/client/notifications.d.ts +2 -5
  67. package/types/client/overlays.d.ts +2 -1
  68. package/types/client/particleRenderers.d.ts +1 -1
  69. package/types/client/products.d.ts +54 -2
  70. package/types/client/promo.d.ts +28 -5
  71. package/types/client/pushNotifications.d.ts +7 -1
  72. package/types/client/renderCtrl.d.ts +1 -1
  73. package/types/client/renderTile.d.ts +2 -2
  74. package/types/client/renderUtils.d.ts +16 -36
  75. package/types/client/renderers.d.ts +2 -4
  76. package/types/client/reverseName.d.ts +2 -1
  77. package/types/client/rhMessage.d.ts +1 -1
  78. package/types/client/rootScope.d.ts +22 -6
  79. package/types/client/router.d.ts +8 -5
  80. package/types/client/store.d.ts +20 -52
  81. package/types/client/storeLastPosition.d.ts +4 -1
  82. package/types/client/tileInterpolator.d.ts +1 -1
  83. package/types/client/user.d.ts +2 -0
  84. package/types/client/userAlerts.d.ts +0 -4
  85. package/types/client/userFavs.d.ts +12 -0
  86. package/types/client/utils.d.ts +57 -20
  87. package/types/iconfont.d.ts +7 -0
  88. package/types/interfaces.d.ts +339 -81
  89. package/types/lang-files.d.ts +783 -19
  90. package/types/types.d.ts +352 -23
  91. package/types/client/d.ts.files/Calendar.d.ts +0 -96
  92. package/types/client/d.ts.files/Color.d.ts +0 -93
  93. package/types/client/d.ts.files/Layer.d.ts +0 -191
  94. package/types/client/d.ts.files/Renderer.d.ts +0 -44
  95. package/types/client/d.ts.files/errorLogger.d.ts +0 -35
  96. package/types/client/d.ts.files/products.d.ts +0 -61
  97. package/types/offline.d.ts +0 -100
@@ -31,21 +31,10 @@ export interface WhatsNewData extends StartupItem {
31
31
  };
32
32
  }
33
33
 
34
- export interface EnhancedStartupArticle extends StartupArticleData {
35
- key: string;
36
- count: number;
37
- lastDisplayed: number;
38
- }
39
-
40
34
  /**
41
35
  * Info about articles, user has already seen
42
36
  */
43
37
  export interface SeenArticle {
44
- /**
45
- * Last time, the article has been displayed to the user
46
- */
47
- lastDisplayed: Timestamp;
48
-
49
38
  /**
50
39
  * How many times the article has been seen
51
40
  * (one count is added only if the article has been seen after 12 hours from the last seen time)
@@ -56,4 +45,21 @@ export interface SeenArticle {
56
45
  * Marks beginning of 12h interval
57
46
  */
58
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;
59
65
  }
@@ -20,6 +20,9 @@ export interface User {
20
20
 
21
21
  /** TimeStamp of user last login */
22
22
  logindate?: number;
23
+
24
+ /** Consent to receive newsletter; */
25
+ marketingConsent?: boolean;
23
26
  }
24
27
 
25
28
  /**
@@ -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,4 +1,5 @@
1
1
  import type { DeviceInfo } from '@capacitor/device';
2
+ export declare const generateDeviceId: () => string;
2
3
  /**
3
4
  * Returns platform unique persistent id for Android and iOS, or semi-persistent generated random id for desktop
4
5
  *
@@ -0,0 +1,68 @@
1
+ import './leafletExt/CanvasLayer';
2
+ import './services/params';
3
+ import './pluginSystem/Plugin';
4
+ import './pluginSystem/SveltePlugin';
5
+ import './pluginSystem/TagPlugin';
6
+ import './pluginSystem/WindowPlugin';
7
+ import './pluginSystem/pluginsCtrl';
8
+ import './ui/timeAnimation';
9
+ import './ui/visibility';
10
+ import './render/renderTile';
11
+ import './render/tileLayerInstance';
12
+ export * as detectDevice from './dummyModules/detectDevice';
13
+ export * as log from './dummyModules/log';
14
+ export * as promo from './dummyModules/promo';
15
+ export * as location from './dummyModules/location';
16
+ export * as router from './dummyModules/router';
17
+ export * as showableErrorsService from './dummyModules/showableErrorsService';
18
+ export * as userFavs from './dummyModules/userFavs';
19
+ export * as share from './dummyModules/share';
20
+ import bcast from './services/broadcast';
21
+ import * as rootScope from './services/rootScope';
22
+ import { default as store } from './services/store';
23
+ export * as user from './services/user';
24
+ import * as ga from './utils/ga';
25
+ import { $ } from './utils/utils';
26
+ import { default as overlays } from './weather/overlays';
27
+ export { rootScope };
28
+ export * as map from './map/map';
29
+ export * as baseMap from './map/baseMap';
30
+ export * as cityLabels from './map/cityLabels';
31
+ export * as mapGlobeCtrl from './map/mapGlobeCtrl';
32
+ export * as picker from './map/picker';
33
+ export * as singleclick from './map/singleclick';
34
+ export { default as plugins } from './pluginSystem/plugins';
35
+ export * as interpolator from './render/interpolator';
36
+ export { default as particleRenderers } from './render/particleRenderers';
37
+ export * as renderUtils from './render/renderUtils';
38
+ export * as DataTiler from './renderClasses/DataTiler';
39
+ export { default as colors } from './services/colors';
40
+ export * as connection from './services/connection';
41
+ export * as device from './services/device';
42
+ export * as geolocation from './services/geolocation';
43
+ export * as notifications from './services/notifications';
44
+ export * as pois from './services/pois';
45
+ export * as reverseName from './services/reverseName';
46
+ export * as trans from './services/trans';
47
+ export * as query from './ui/query';
48
+ export * as rhMessage from './ui/rhMessage';
49
+ export * as BottomSlide from './uiClasses/BottomSlide';
50
+ export * as Drag from './uiClasses/Drag';
51
+ export * as Swipe from './uiClasses/Swipe';
52
+ export * as Window from './uiClasses/Window';
53
+ export * as Evented from './utils/Evented';
54
+ export * as errorLogger from './utils/errorLogger';
55
+ export * as fetch from './utils/fetch';
56
+ export * as format from './utils/format';
57
+ export * as http from './utils/http';
58
+ export { default as lruCache } from './utils/lruCache';
59
+ export { default as storage } from './utils/storage';
60
+ export * as subscription from './utils/subscription';
61
+ export * as utils from './utils/utils';
62
+ export { default as metrics } from './weather/metrics';
63
+ export * as models from './weather/models';
64
+ export { default as products } from './weather/products';
65
+ export * as Calendar from './weatherClasses/Calendar';
66
+ export * as Color from './weatherClasses/Color';
67
+ export { default as GlObj } from './wgUtils/GlObj';
68
+ export { $, bcast as broadcast, ga, overlays, store };
@@ -1,11 +1,36 @@
1
1
  /**
2
2
  * catches all runtimes exceptions and sends them to kibana on backend.
3
- * Defines global `logError( moduleName, msg, errObj )` for custom err loggin.
4
- * Licences go here since this is the first minified file
3
+ * Defines global `logError( moduleName, msg, errObj )` for custom err leggin.
5
4
  */
6
- import type { ErrorPayload } from './d.ts.files/errorLogger.d';
5
+ import type { Overlays } from '@windy/rootScope.d';
6
+ import type { Device, Platform, Timestamp } from '@windy/types';
7
+ type RunningPhase = '1_loading' | '2_dependenciesResolved' | '3_redrawFinished' | 'documentIsHidden';
8
+ type ErrorTypes = 'error' | 'customLogError' | 'unhandledRejection';
9
+ /** Payload sent to backend */
10
+ interface ErrorPayload {
11
+ errorID: string;
12
+ type: ErrorTypes;
13
+ platform: Platform;
14
+ device: Device;
15
+ ver: string;
16
+ target: 'index' | 'mobile' | 'embed' | 'lib';
17
+ msg: string;
18
+ timestamp: Timestamp;
19
+ runningMinutes: number;
20
+ runningPhase: RunningPhase;
21
+ overlay: Overlays;
22
+ url: string;
23
+ module?: string;
24
+ line?: number;
25
+ col?: number;
26
+ script?: string;
27
+ stack?: string;
28
+ repeated?: number;
29
+ latestBcast?: string;
30
+ }
7
31
  /**
8
32
  * Array of all errors reported to kibana, to show them in debug mode
9
33
  * plugin
10
34
  */
11
35
  export declare const sentErrors: ErrorPayload[];
36
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare class HttpError extends Error {
2
+ status: number;
3
+ message: string;
4
+ responseText?: string;
5
+ constructor(status: number, message: string, responseText?: string);
6
+ }
@@ -1,6 +1,8 @@
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
7
  export declare const installExternalPlugin: (url: string, installedBy: InstalledExternalPluginConfig['installedBy']) => Promise<InstalledExternalPluginConfig | ExternalPluginError>;
8
+ export declare const loadExternalPlugins: (forceReload?: boolean) => Promise<ExternalSveltePlugin[]>;
@@ -1,8 +1,23 @@
1
+ /**
2
+ * # @windy/fetch
3
+ *
4
+ * Basic HTTP requests for getting URLs of our
5
+ * backend services or fetching data from Windy API.
6
+ * Although it works as wrapper around our {@link http} module,
7
+ * it ensures standardized way of fetching data.
8
+ *
9
+ * @module fetch
10
+ */
11
+ import * as http from '@windy/http';
1
12
  import type { CityTemperaturesDto } from '@windy-types/citytile2';
2
- import type { DataHash, LatLon, MeteogramDataPayload, WeatherDataPayload, ActiveStormCountPayload } from '@windy/interfaces.d';
13
+ import type { DataHash, LatLon, MeteogramDataPayload, WeatherDataPayload, CapAlertHeadline, ActiveStormCountPayload, AirQDataHash } from '@windy/interfaces.d';
3
14
  import type { Pois, Products } from '@windy/rootScope.d';
4
- import type { ExtendedStationType, StationOrPoiType } from '@windy/types';
5
- import type { HttpOptions, HttpPayload, QueryStringSource } from './http.d';
15
+ import type { SatelliteInfoJson } from '@windy/satellite.d';
16
+ import type { RadarMinifest } from '@plugins/radar/types';
17
+ import type { ExtendedStationType, Pixel, StationOrPoiType } from '@windy/types';
18
+ import type { OSMMapBounds } from '@plugins/search/search.d';
19
+ import type { HttpOptions, HttpPayload, QueryStringSource } from '@windy/http.d';
20
+ import type { StormListJSON } from '@plugins/_shared/hurricanes/types';
6
21
  interface LatLonStep extends LatLon {
7
22
  step?: number;
8
23
  interpolate?: boolean;
@@ -69,7 +84,7 @@ export declare const getPointForecastUrl: <T extends LatLonStep>(model: Products
69
84
  * @param httpOptions Additional HTTP options
70
85
  * @returns Promise with HTTP payload
71
86
  */
72
- export declare const getPointForecastData: <T extends LatLonStep>(model: Products, latLonStepInterpolate: T, pointForecastOptions?: Record<string, string>, httpOptions?: HttpOptions) => Promise<HttpPayload<WeatherDataPayload<DataHash>>>;
87
+ export declare const getPointForecastData: <K extends DataHash | AirQDataHash = DataHash, T extends LatLonStep = LatLonStep>(model: Products, latLonStepInterpolate: T, pointForecastOptions?: Record<string, string>, httpOptions?: HttpOptions) => Promise<http.HttpPayload<WeatherDataPayload<K>>>;
73
88
  /**
74
89
  * Gets enhanced point forecast meteogram data for given location
75
90
  * @returns Promise with HTTP payload
@@ -114,9 +129,30 @@ export declare const getObservationsUrl: (type: ExtendedStationType, id: string,
114
129
  /**
115
130
  * Get URL for getting observations for a specific station in node-poi server
116
131
  */
117
- export declare const getObservationPoiUrl: (type: StationOrPoiType | 'stations', id: string) => string;
132
+ export declare const getObservationPoiUrl: (type: StationOrPoiType | 'stations' | 'metars', id: string) => string;
118
133
  /**
119
- * Returns http promise for active hurricanes count
134
+ * Returns loading promise for cap alert headlines
120
135
  */
136
+ export declare const getCapAlertsSummary: ({ lat, lon }: LatLon) => Promise<http.HttpPayload<CapAlertHeadline[]>>;
121
137
  export declare const getHurricanesCount: () => Promise<HttpPayload<ActiveStormCountPayload>>;
138
+ /**
139
+ * Loads Satellite Product info
140
+ */
141
+ export declare const getSatelliteInfo: () => Promise<HttpPayload<SatelliteInfoJson>>;
142
+ /**
143
+ * Loads Radar Product info
144
+ */
145
+ export declare const getRadarInfo: () => Promise<HttpPayload<RadarMinifest>>;
146
+ export declare const getRadarArchiveInfo: () => Promise<HttpPayload<RadarMinifest>>;
147
+ export declare const getSatelliteArchiveInfo: () => Promise<HttpPayload<SatelliteInfoJson>>;
148
+ export declare const getRadarCoverage: () => Promise<HttpPayload<number[]>>;
149
+ export declare const getHurricanesList: () => Promise<HttpPayload<StormListJSON>>;
150
+ /**
151
+ * Returns URL for static map image. Max zoom level is 13
152
+ */
153
+ export declare const getStaticMapImageUrl: (params: LatLon & {
154
+ zoom: 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;
155
+ size: Pixel;
156
+ bounds?: OSMMapBounds;
157
+ }) => string;
122
158
  export {};
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import type { DirectionFunction, HowOldOptions, TimeFormatFunction } from './d.ts.files/format.d';
7
7
  import type { Timestamp } from './d.ts.files/types';
8
+ export declare const euTime: TimeFormatFunction;
8
9
  /**
9
10
  * Returns function for displaying hours (either 12,24h format) on a basis of locale store of a browser
10
11
  * US, UK, PH, CA, AU, NZ, IN, EG, SA, CO, PK, MY - AM,PM format
@@ -99,4 +100,4 @@ export declare const seoLang: (lang: string) => string;
99
100
  * @param viewcount Number to show at animation end
100
101
  * @param el HTML element where animate counting and show the final number
101
102
  */
102
- export declare const animateViews: (viewcount: number, el: HTMLElement) => void;
103
+ export declare const animateViews: (viewcount: number, el: HTMLElement, useViewsText?: boolean) => void;
@@ -1,5 +1,5 @@
1
1
  import type { ExtendedWebGLTexture, WebGLProgramObject } from '@windy/GlObj.d';
2
- import type { TileParams } from '@windy/Renderer.d';
2
+ import type { TileParams } from '@windy/Renderer';
3
3
  import type { TileLayerCanvas } from '@windy/TileLayerCanvas.d';
4
4
  import type { DataTile } from '@windy/dataLoader';
5
5
  export type Gradient = {
@@ -136,12 +136,6 @@ declare class TileRenderer {
136
136
  * @returns texture with additional params
137
137
  */
138
138
  private createGradientObject;
139
- /**
140
- * Predefined alpha values are set to gradient and then color array is generated
141
- * (solution for user gradient colors with bad alpha)
142
- * @param colorObj
143
- */
144
- private augmentRainCoverColorsWithAlpha;
145
139
  /**
146
140
  * Prepare color gradient(s) for layer
147
141
  * @param layer
@@ -12,12 +12,6 @@ export declare const acceptHeader: string;
12
12
  * Enhances URL with server, tokens and auth counter
13
13
  */
14
14
  export declare const getURL: (url: string) => string;
15
- export declare class HttpError extends Error {
16
- status: number;
17
- message: string;
18
- responseText?: string;
19
- constructor(status: number, message: string, responseText?: string);
20
- }
21
15
  /**
22
16
  * Create Event Source for SSE with tokens for authentication
23
17
  * Do not forget to close the EventSource, otherwise there will be an error event when the page closes.
@@ -1,45 +1,147 @@
1
1
  import { IDB } from '@windy/IDB';
2
- import type { Fav } from '@windy/favs.d';
3
- import type { SearchRecent } from '@plugins/search/search';
4
- import type { AlertResponse, AlertRequest } from '@windy/alerts';
5
2
  import type { MarkedNotams } from '@plugins/airport/airport';
6
- import type { MinifestObject } from '@windy/Calendar.d';
7
- import type { SeenArticle } from '@windy/startup.d';
3
+ import type { AnyColorIdent, UserColor } from '@windy/Color';
4
+ import type { AlertRequest, AlertResponse } from '@windy/alerts';
5
+ import type { Fav, FavFragment } from '@windy/favs.d';
6
+ import type { CapAlertSlided, InstalledExternalPluginConfig } from '@windy/interfaces';
8
7
  import type { PromoInfoObject } from '@windy/promo';
9
- import type { AnyColorIdent, UserColor } from '@windy/Color.d';
8
+ import type { SeenArticle, SeenStory } from '@windy/startup.d';
10
9
  export declare const initPromise: Promise<IDBDatabase>;
11
10
  /** Db of stored user favourites */
12
- export declare const userFavsIdb: IDB<string, Fav, import("../../types/interfaces").LatLon & {
11
+ export declare const userFavsIdb: IDB<string, Fav, FavFragment>;
12
+ export declare const searchRecentsIdb: IDB<string, (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & {
13
+ type: "windy-overlay";
14
+ ident: "visibility" | "radar" | "satellite" | "radarPlus" | "wind" | "gust" | "gustAccu" | "turbulence" | "icing" | "rain" | "rainAccu" | "snowAccu" | "snowcover" | "ptype" | "thunder" | "temp" | "dewpoint" | "rh" | "deg0" | "wetbulbtemp" | "solarpower" | "uvindex" | "clouds" | "hclouds" | "mclouds" | "lclouds" | "fog" | "cloudtop" | "cbase" | "cape" | "ccl" | "waves" | "swell1" | "swell2" | "swell3" | "wwaves" | "sst" | "currents" | "currentsTide" | "aqi" | "no2" | "pm2p5" | "aod550" | "gtco3" | "tcso2" | "go3" | "cosc" | "dustsm" | "pressure" | "efiTemp" | "efiWind" | "efiRain" | "capAlerts" | "soilMoisture40" | "soilMoisture100" | "moistureAnom40" | "moistureAnom100" | "drought40" | "drought100" | "fwi" | "dfm10h" | "heatmaps" | "topoMap" | "hurricanes";
15
+ thumbnailUrl: string;
16
+ noValidLocation: true;
17
+ addShakyClass: true;
18
+ doNotSave: true;
19
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & {
20
+ type: "windy-poi";
21
+ ident: string;
22
+ poiIcon: import("../../types/iconfont").Iconfont;
23
+ noValidLocation: true;
24
+ addShakyClass: true;
25
+ doNotSave: true;
26
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
27
+ type: "airport";
28
+ icao: string;
29
+ iata?: string;
30
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
31
+ type: "heliport";
32
+ icao: string;
33
+ iata?: string;
34
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
35
+ type: "station";
36
+ stationId: `radiation-${string}` | `airq-${string}` | `ad-${string}` | `wmo-${string}` | `madis-${string}` | `buoy-${string}` | `dbuoy-${string}` | `pws-${string}` | `ship-${string}`;
37
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
38
+ type: "webcam";
39
+ webcamId: number;
40
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
41
+ type: "radiosonde";
42
+ id: string;
43
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
44
+ type: import("@plugins/search/search").StandardSearchType;
45
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & {
46
+ type: "hurricane";
47
+ strength: import("../../plugins/_shared/hurricanes/types").StormStrength;
48
+ stormId: string;
49
+ addShakyClass: true;
50
+ doNotSave: true;
51
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & {
52
+ type: "route";
53
+ fromTo: [import("@plugins/search/search").AirportSearchResult, import("@plugins/search/search").AirportSearchResult];
54
+ distance: number;
55
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@windy/interfaces").LatLon & {
13
56
  title: string;
14
- } & ({
57
+ cc?: import("@windy/types").ISOCountryCode | "xx";
58
+ } & {
59
+ type: "fav";
60
+ } & {
61
+ id: string;
62
+ pin2top?: number;
63
+ pin2homepage?: number;
64
+ updated: number;
65
+ } & import("@plugins/search/search").CountryAndRegionInformation & {
66
+ noValidLocation?: false;
15
67
  type: "fav";
16
- } | {
17
- type: "alert";
18
- alert: import("../../types/interfaces").Alert;
19
- alertProps: import("../../types/interfaces").AlertProps;
20
- } | {
68
+ }), (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & {
69
+ type: "windy-overlay";
70
+ ident: "visibility" | "radar" | "satellite" | "radarPlus" | "wind" | "gust" | "gustAccu" | "turbulence" | "icing" | "rain" | "rainAccu" | "snowAccu" | "snowcover" | "ptype" | "thunder" | "temp" | "dewpoint" | "rh" | "deg0" | "wetbulbtemp" | "solarpower" | "uvindex" | "clouds" | "hclouds" | "mclouds" | "lclouds" | "fog" | "cloudtop" | "cbase" | "cape" | "ccl" | "waves" | "swell1" | "swell2" | "swell3" | "wwaves" | "sst" | "currents" | "currentsTide" | "aqi" | "no2" | "pm2p5" | "aod550" | "gtco3" | "tcso2" | "go3" | "cosc" | "dustsm" | "pressure" | "efiTemp" | "efiWind" | "efiRain" | "capAlerts" | "soilMoisture40" | "soilMoisture100" | "moistureAnom40" | "moistureAnom100" | "drought40" | "drought100" | "fwi" | "dfm10h" | "heatmaps" | "topoMap" | "hurricanes";
71
+ thumbnailUrl: string;
72
+ noValidLocation: true;
73
+ addShakyClass: true;
74
+ doNotSave: true;
75
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & {
76
+ type: "windy-poi";
77
+ ident: string;
78
+ poiIcon: import("../../types/iconfont").Iconfont;
79
+ noValidLocation: true;
80
+ addShakyClass: true;
81
+ doNotSave: true;
82
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
21
83
  type: "airport";
22
84
  icao: string;
23
- } | {
85
+ iata?: string;
86
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
87
+ type: "heliport";
88
+ icao: string;
89
+ iata?: string;
90
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
24
91
  type: "station";
25
92
  stationId: `radiation-${string}` | `airq-${string}` | `ad-${string}` | `wmo-${string}` | `madis-${string}` | `buoy-${string}` | `dbuoy-${string}` | `pws-${string}` | `ship-${string}`;
26
- } | {
93
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
27
94
  type: "webcam";
28
95
  webcamId: number;
29
- } | {
96
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
97
+ type: "radiosonde";
98
+ id: string;
99
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & import("@plugins/search/search").CountryAndRegionInformation & {
100
+ type: import("@plugins/search/search").StandardSearchType;
101
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & {
102
+ type: "hurricane";
103
+ strength: import("../../plugins/_shared/hurricanes/types").StormStrength;
104
+ stormId: string;
105
+ addShakyClass: true;
106
+ doNotSave: true;
107
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@plugins/search/search").RequiredSearchItemProperties & import("@windy/interfaces").LatLon & {
30
108
  type: "route";
31
- route: `car/${string}` | `vfr/${string}` | `ifr/${string}` | `elevation/${string}` | `boat/${string}` | `airgram/${string}`;
109
+ fromTo: [import("@plugins/search/search").AirportSearchResult, import("@plugins/search/search").AirportSearchResult];
110
+ distance: number;
111
+ }) | (import("@plugins/search/search").SearchRecentItem & import("@windy/interfaces").LatLon & {
112
+ title: string;
113
+ cc?: import("@windy/types").ISOCountryCode | "xx";
114
+ } & {
115
+ type: "fav";
116
+ } & {
117
+ id: string;
118
+ pin2top?: number;
119
+ pin2homepage?: number;
120
+ updated: number;
121
+ } & import("@plugins/search/search").CountryAndRegionInformation & {
122
+ noValidLocation?: false;
123
+ type: "fav";
32
124
  })>;
33
- export declare const searchRecentsIdb: IDB<string, SearchRecent, SearchRecent>;
34
125
  /** Db of stored user alerts */
35
126
  export declare const userAlertsIdb: IDB<string, AlertResponse, AlertRequest>;
36
127
  /** Db of stored notams marked as read */
37
128
  export declare const markedNotamsIdb: IDB<`${string}_${string}/${string}`, MarkedNotams, MarkedNotams>;
38
- /** Latest used minifests */
39
- export declare const minifestsIdb: IDB<string, MinifestObject, MinifestObject>;
40
129
  /** Seen articles */
41
- export declare const seenArticlesIdb: IDB<string, SeenArticle, SeenArticle>;
130
+ export declare const seenArticlesIdb: IDB<string | number, SeenArticle, SeenArticle>;
42
131
  /** Seen promos */
43
132
  export declare const seenPromosIdb: IDB<string, PromoInfoObject, PromoInfoObject>;
44
133
  /** Custom user colors */
45
134
  export declare const customColorsIdb: IDB<AnyColorIdent, UserColor, UserColor>;
135
+ /** Cap alerts that were slided from left to right on startup screen */
136
+ export declare const slidedCapAlertsIdb: IDB<string, CapAlertSlided, CapAlertSlided>;
137
+ /** Seen stories */
138
+ export declare const seenStoriesIdb: IDB<string, SeenStory, SeenStory>;
139
+ /** Log of pages & events that happened on this device */
140
+ export declare const logIdb: IDB<`plugin/${string}` | `version/${string}` | `pois/${string}` | `subscription/${string}` | `airport/${string}` | `station/${string}` | `garmin/${string}` | `onboarding/${string}` | `articles/${string}` | `isolinesType/${string}` | `overlay/${string}` | `level/${string}` | `product/${string}` | `acRange/${string}` | `isolinesOn/${string}` | `path/${string}` | `startup/${string}` | `404/${string}` | `promo/${string}` | `appRating/${string}` | `appOpening/${string}` | `detail2/${string}` | `appsflyer/${string}` | `weather/${string}` | `events/${string}` | `locationPermissionPopup/${string}` | `widgetPromo/${string}` | `storyEvent/${string}`, number, number>;
141
+ /** Log of locations, that user uses on this device */
142
+ export declare const popularLocationsIdb: IDB<string, number, number>;
143
+ /** Seen stories */
144
+ export declare const likedStoryCommentsIdb: IDB<string, boolean, boolean>;
145
+ /** Installed external plugins */
146
+ export declare const installedPluginsIdb: IDB<`windy-plugin-${string}`, InstalledExternalPluginConfig, InstalledExternalPluginConfig>;
147
+ export declare const clearIndexedDB: () => Promise<void>;
@@ -0,0 +1,49 @@
1
+ import type { LatLon } from '@windy/interfaces';
2
+ import type { Overlays, Products, Pois, Levels } from '@windy/rootScope.d';
3
+ import type { DetailDisplayType, StationId, Timestamp } from '@windy/types';
4
+ export type QueryStringImakerParams = LatLon & {
5
+ zoom: number;
6
+ overlay?: Overlays;
7
+ level?: Levels;
8
+ displayPressureIsolines?: boolean;
9
+ product?: Products;
10
+ pois?: Pois;
11
+ timestamp?: Timestamp;
12
+ } & ({
13
+ type: 'map';
14
+ } | {
15
+ type: 'detail';
16
+ detailDisplay?: DetailDisplayType;
17
+ detailProduct?: Products;
18
+ /** Can be absolute or relative number (for debugging purposes) */
19
+ moveToTimestamp?: Timestamp;
20
+ } | {
21
+ type: 'station';
22
+ /** Format is the same as used in URL, for example `wmo-1158` */
23
+ stationId: StationId;
24
+ /** Can be absolute or relative number (for debugging purposes) */
25
+ moveToTimestamp?: Timestamp;
26
+ });
27
+ export interface RenderMapParams extends LatLon {
28
+ zoom: number;
29
+ overlay?: Overlays;
30
+ level?: Levels;
31
+ displayPressureIsolines?: boolean;
32
+ displayParticles?: boolean;
33
+ product?: Products;
34
+ pois?: Pois;
35
+ timestamp?: Timestamp;
36
+ }
37
+ export interface RenderDetailParams extends RenderMapParams {
38
+ detailDisplay?: DetailDisplayType;
39
+ detailProduct?: Products;
40
+ /** Can be absolute or relative number (for debugging purposes) */
41
+ moveToTimestamp?: Timestamp;
42
+ }
43
+ export interface RenderStationParams extends RenderMapParams {
44
+ stationId: StationId;
45
+ moveToTimestamp?: Timestamp;
46
+ }
47
+ export declare const renderMap: (params: RenderMapParams) => Promise<string[]>;
48
+ export declare const renderDetail: (params: RenderDetailParams) => Promise<string[]>;
49
+ export declare const renderStation: (params: RenderStationParams) => Promise<string[]>;
@@ -10,5 +10,5 @@ export declare const latestBcasts: BcastHistory[];
10
10
  * @param msg
11
11
  * @param data
12
12
  */
13
- export declare const addLatestBcast: (ident: string, msg: string, data?: unknown) => void;
13
+ export declare const addLatestBcast: (ident: string, msg: string, data?: string | unknown) => void;
14
14
  export declare const getLatestBcasts: (now: Timestamp) => string | undefined;
@@ -1,4 +1,5 @@
1
- import { Layer, WaveLayer } from '@windy/Layer';
1
+ import { Layer } from '@windy/Layer';
2
+ import { WaveLayer } from '@windy/LayerClasses';
2
3
  import type { NumberedMetric, PrecipMetric, PtypeMetric } from '@windy/MetricClasses';
3
4
  declare const layers: {
4
5
  capAlerts: Layer<undefined>;
@@ -76,5 +77,6 @@ declare const layers: {
76
77
  turbulence: Layer<NumberedMetric>;
77
78
  icing: Layer<NumberedMetric>;
78
79
  topoMap: Layer<undefined>;
80
+ aqi: Layer<NumberedMetric>;
79
81
  };
80
82
  export default layers;
@@ -1,4 +1,4 @@
1
- import type { Layers } from '@windy/Layer.d';
1
+ import type { Layers } from '@windy/Layer';
2
2
  import type { Legend } from '@windy/Metric.d';
3
3
  declare const customLegends: {
4
4
  [P in Layers]?: Legend;