@telemetryos/development-application-host-ui 1.8.2 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.html CHANGED
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>TelemetryOS Development Environment</title>
7
- <script type="module" crossorigin src="/assets/index-C9Ay6V_E.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-DQ6KMjD9.css">
7
+ <script type="module" crossorigin src="/assets/index-COMSAWs2.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-BJOW8iUK.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="app"></div>
@@ -21,6 +21,8 @@ export declare class ApiCoordinator {
21
21
  private _handleWeatherGetConditions;
22
22
  private _handleWeatherGetDailyForecast;
23
23
  private _handleWeatherGetHourlyForecast;
24
+ private _handleWeatherGetCities;
25
+ private _handleWeatherGetAlerts;
24
26
  _handleProxyFetch(message: ClientMessage): Promise<void>;
25
27
  _handlePlaylistNextPage(message: ClientMessage): void;
26
28
  _handlePlaylistPreviousPage(message: ClientMessage): void;
@@ -1,9 +1,8 @@
1
- import { Bridge } from '@telemetryos/root-sdk/bridge';
1
+ import { Bridge, ClientMessage } from '@telemetryos/root-sdk/bridge';
2
2
  import type { ColorScheme } from '@telemetryos/root-sdk';
3
- import { Message } from './sdk-bridge';
4
3
  type ColorSchemeListener = (colorScheme: ColorScheme) => void;
5
4
  export declare function getColorScheme(): ColorScheme;
6
5
  export declare function setColorScheme(value: ColorScheme): void;
7
6
  export declare function onColorSchemeChange(listener: ColorSchemeListener): () => void;
8
- export declare function handleEnvironmentMessage(bridge: Bridge, message: Message): void;
7
+ export declare function handleEnvironmentMessage(bridge: Bridge, message: ClientMessage): void;
9
8
  export {};
@@ -1,171 +1,6 @@
1
- import { z } from 'zod';
2
- import type { Bridge } from '@telemetryos/root-sdk/bridge';
3
- import type { WeatherConditions, WeatherForecast } from '@telemetryos/root-sdk';
4
- import type { Message } from './sdk-bridge';
5
- type WeatherListener = () => void;
6
- export declare function handleWeatherMessage(bridge: Bridge, message: Message): void;
7
- export declare function getConditions(): WeatherConditions;
8
- export declare function getDailyForecast(): WeatherForecast[];
9
- export declare function getHourlyForecast(): WeatherForecast[];
10
- export declare function setConditions(value: WeatherConditions): void;
11
- export declare function setDailyForecast(value: WeatherForecast[]): void;
12
- export declare function setHourlyForecast(value: WeatherForecast[]): void;
13
- export declare function onWeatherChange(listener: WeatherListener): () => void;
14
- export declare function resetWeatherToDefaults(units?: UnitSystem): void;
15
- export declare function getUnits(): UnitSystem;
16
- export declare function setUnits(units: UnitSystem): void;
17
- export declare function convertAllWeatherData(fromUnit: UnitSystem, toUnit: UnitSystem): void;
18
- export declare const WeatherConditionsSchema: z.ZodObject<{
19
- CityEnglish: z.ZodString;
20
- CityLocalized: z.ZodString;
21
- CountryCode: z.ZodString;
22
- Latitude: z.ZodNumber;
23
- Longitude: z.ZodNumber;
24
- Pod: z.ZodString;
25
- Precip: z.ZodNumber;
26
- Pressure: z.ZodNumber;
27
- RelativeHumidity: z.ZodNumber;
28
- State: z.ZodString;
29
- Temp: z.ZodNumber;
30
- Timestamp: z.ZodNumber;
31
- Timezone: z.ZodString;
32
- Visibility: z.ZodNumber;
33
- WeatherCode: z.ZodString;
34
- WeatherText: z.ZodString;
35
- WindAbbr: z.ZodString;
36
- WindDirectionDegrees: z.ZodString;
37
- WindDirectionEnglish: z.ZodString;
38
- WindDirectionLocalized: z.ZodString;
39
- WindSpeed: z.ZodNumber;
40
- }, "strip", z.ZodTypeAny, {
41
- CityEnglish: string;
42
- CityLocalized: string;
43
- CountryCode: string;
44
- Latitude: number;
45
- Pod: string;
46
- Precip: number;
47
- Pressure: number;
48
- RelativeHumidity: number;
49
- State: string;
50
- Temp: number;
51
- Timestamp: number;
52
- Timezone: string;
53
- Visibility: number;
54
- WeatherCode: string;
55
- WeatherText: string;
56
- WindAbbr: string;
57
- WindDirectionDegrees: string;
58
- WindDirectionEnglish: string;
59
- WindDirectionLocalized: string;
60
- WindSpeed: number;
61
- Longitude: number;
62
- }, {
63
- CityEnglish: string;
64
- CityLocalized: string;
65
- CountryCode: string;
66
- Latitude: number;
67
- Pod: string;
68
- Precip: number;
69
- Pressure: number;
70
- RelativeHumidity: number;
71
- State: string;
72
- Temp: number;
73
- Timestamp: number;
74
- Timezone: string;
75
- Visibility: number;
76
- WeatherCode: string;
77
- WeatherText: string;
78
- WindAbbr: string;
79
- WindDirectionDegrees: string;
80
- WindDirectionEnglish: string;
81
- WindDirectionLocalized: string;
82
- WindSpeed: number;
83
- Longitude: number;
84
- }>;
85
- export declare const WeatherForecastSchema: z.ZodObject<{
86
- Datetime: z.ZodString;
87
- Pod: z.ZodString;
88
- Label: z.ZodString;
89
- WeatherCode: z.ZodString;
90
- Timestamp: z.ZodNumber;
91
- Temp: z.ZodNumber;
92
- MinTemp: z.ZodNumber;
93
- MaxTemp: z.ZodNumber;
94
- }, "strip", z.ZodTypeAny, {
95
- Pod: string;
96
- Temp: number;
97
- Timestamp: number;
98
- WeatherCode: string;
99
- Datetime: string;
100
- Label: string;
101
- MinTemp: number;
102
- MaxTemp: number;
103
- }, {
104
- Pod: string;
105
- Temp: number;
106
- Timestamp: number;
107
- WeatherCode: string;
108
- Datetime: string;
109
- Label: string;
110
- MinTemp: number;
111
- MaxTemp: number;
112
- }>;
113
- export declare const DailyForecastArraySchema: z.ZodArray<z.ZodObject<{
114
- Datetime: z.ZodString;
115
- Pod: z.ZodString;
116
- Label: z.ZodString;
117
- WeatherCode: z.ZodString;
118
- Timestamp: z.ZodNumber;
119
- Temp: z.ZodNumber;
120
- MinTemp: z.ZodNumber;
121
- MaxTemp: z.ZodNumber;
122
- }, "strip", z.ZodTypeAny, {
123
- Pod: string;
124
- Temp: number;
125
- Timestamp: number;
126
- WeatherCode: string;
127
- Datetime: string;
128
- Label: string;
129
- MinTemp: number;
130
- MaxTemp: number;
131
- }, {
132
- Pod: string;
133
- Temp: number;
134
- Timestamp: number;
135
- WeatherCode: string;
136
- Datetime: string;
137
- Label: string;
138
- MinTemp: number;
139
- MaxTemp: number;
140
- }>, "many">;
141
- export declare const HourlyForecastArraySchema: z.ZodArray<z.ZodObject<{
142
- Datetime: z.ZodString;
143
- Pod: z.ZodString;
144
- Label: z.ZodString;
145
- WeatherCode: z.ZodString;
146
- Timestamp: z.ZodNumber;
147
- Temp: z.ZodNumber;
148
- MinTemp: z.ZodNumber;
149
- MaxTemp: z.ZodNumber;
150
- }, "strip", z.ZodTypeAny, {
151
- Pod: string;
152
- Temp: number;
153
- Timestamp: number;
154
- WeatherCode: string;
155
- Datetime: string;
156
- Label: string;
157
- MinTemp: number;
158
- MaxTemp: number;
159
- }, {
160
- Pod: string;
161
- Temp: number;
162
- Timestamp: number;
163
- WeatherCode: string;
164
- Datetime: string;
165
- Label: string;
166
- MinTemp: number;
167
- MaxTemp: number;
168
- }>, "many">;
1
+ import type { Bridge, ClientMessage } from '@telemetryos/root-sdk/bridge';
2
+ import type { WeatherConditions, DailyForecast, HourlyForecast, WeatherAlert, WeatherAlerts, WeatherCity } from '@telemetryos/root-sdk';
3
+ export type UnitSystem = 'metric' | 'imperial';
169
4
  export declare function validateConditionsJson(json: string): {
170
5
  success: boolean;
171
6
  data?: WeatherConditions;
@@ -173,274 +8,81 @@ export declare function validateConditionsJson(json: string): {
173
8
  };
174
9
  export declare function validateDailyForecastJson(json: string): {
175
10
  success: boolean;
176
- data?: WeatherForecast[];
11
+ data?: DailyForecast;
177
12
  error?: string;
178
13
  };
179
14
  export declare function validateHourlyForecastJson(json: string): {
180
15
  success: boolean;
181
- data?: WeatherForecast[];
16
+ data?: HourlyForecast;
182
17
  error?: string;
183
18
  };
184
- export declare const weatherConditions: readonly [{
185
- readonly code: "1";
186
- readonly label: "Clear sky";
187
- readonly temp: 28;
188
- readonly precip: 0;
189
- readonly humidity: 35;
190
- readonly visibility: 20;
191
- readonly windSpeed: 3;
192
- readonly pressure: 1020;
193
- }, {
194
- readonly code: "2";
195
- readonly label: "Few clouds";
196
- readonly temp: 24;
197
- readonly precip: 0;
198
- readonly humidity: 45;
199
- readonly visibility: 18;
200
- readonly windSpeed: 6;
201
- readonly pressure: 1018;
202
- }, {
203
- readonly code: "3";
204
- readonly label: "Scattered clouds";
205
- readonly temp: 21;
206
- readonly precip: 0;
207
- readonly humidity: 50;
208
- readonly visibility: 15;
209
- readonly windSpeed: 8;
210
- readonly pressure: 1015;
211
- }, {
212
- readonly code: "4";
213
- readonly label: "Broken clouds";
214
- readonly temp: 18;
215
- readonly precip: 0;
216
- readonly humidity: 55;
217
- readonly visibility: 12;
218
- readonly windSpeed: 10;
219
- readonly pressure: 1012;
220
- }, {
221
- readonly code: "8";
222
- readonly label: "Overcast clouds";
223
- readonly temp: 15;
224
- readonly precip: 0;
225
- readonly humidity: 65;
226
- readonly visibility: 8;
227
- readonly windSpeed: 12;
228
- readonly pressure: 1008;
229
- }, {
230
- readonly code: "18";
231
- readonly label: "Light rain";
232
- readonly temp: 14;
233
- readonly precip: 2;
234
- readonly humidity: 80;
235
- readonly visibility: 6;
236
- readonly windSpeed: 12;
237
- readonly pressure: 1005;
238
- }, {
239
- readonly code: "19";
240
- readonly label: "Moderate rain";
241
- readonly temp: 12;
242
- readonly precip: 5;
243
- readonly humidity: 88;
244
- readonly visibility: 4;
245
- readonly windSpeed: 15;
246
- readonly pressure: 1000;
247
- }, {
248
- readonly code: "20";
249
- readonly label: "Heavy rain";
250
- readonly temp: 11;
251
- readonly precip: 12;
252
- readonly humidity: 95;
253
- readonly visibility: 2;
254
- readonly windSpeed: 20;
255
- readonly pressure: 995;
256
- }, {
257
- readonly code: "21";
258
- readonly label: "Light snow";
259
- readonly temp: -2;
260
- readonly precip: 1;
261
- readonly humidity: 85;
262
- readonly visibility: 4;
263
- readonly windSpeed: 8;
264
- readonly pressure: 1010;
265
- }, {
266
- readonly code: "22";
267
- readonly label: "Snow";
268
- readonly temp: -5;
269
- readonly precip: 4;
270
- readonly humidity: 90;
271
- readonly visibility: 2;
272
- readonly windSpeed: 12;
273
- readonly pressure: 1005;
274
- }, {
275
- readonly code: "29";
276
- readonly label: "Thunderstorm";
277
- readonly temp: 18;
278
- readonly precip: 20;
279
- readonly humidity: 95;
280
- readonly visibility: 1;
281
- readonly windSpeed: 28;
282
- readonly pressure: 985;
283
- }];
284
- export declare function getRandomCondition(): {
285
- readonly code: "1";
286
- readonly label: "Clear sky";
287
- readonly temp: 28;
288
- readonly precip: 0;
289
- readonly humidity: 35;
290
- readonly visibility: 20;
291
- readonly windSpeed: 3;
292
- readonly pressure: 1020;
293
- } | {
294
- readonly code: "2";
295
- readonly label: "Few clouds";
296
- readonly temp: 24;
297
- readonly precip: 0;
298
- readonly humidity: 45;
299
- readonly visibility: 18;
300
- readonly windSpeed: 6;
301
- readonly pressure: 1018;
302
- } | {
303
- readonly code: "3";
304
- readonly label: "Scattered clouds";
305
- readonly temp: 21;
306
- readonly precip: 0;
307
- readonly humidity: 50;
308
- readonly visibility: 15;
309
- readonly windSpeed: 8;
310
- readonly pressure: 1015;
311
- } | {
312
- readonly code: "4";
313
- readonly label: "Broken clouds";
314
- readonly temp: 18;
315
- readonly precip: 0;
316
- readonly humidity: 55;
317
- readonly visibility: 12;
318
- readonly windSpeed: 10;
319
- readonly pressure: 1012;
320
- } | {
321
- readonly code: "8";
322
- readonly label: "Overcast clouds";
323
- readonly temp: 15;
324
- readonly precip: 0;
325
- readonly humidity: 65;
326
- readonly visibility: 8;
327
- readonly windSpeed: 12;
328
- readonly pressure: 1008;
329
- } | {
330
- readonly code: "18";
331
- readonly label: "Light rain";
332
- readonly temp: 14;
333
- readonly precip: 2;
334
- readonly humidity: 80;
335
- readonly visibility: 6;
336
- readonly windSpeed: 12;
337
- readonly pressure: 1005;
338
- } | {
339
- readonly code: "19";
340
- readonly label: "Moderate rain";
341
- readonly temp: 12;
342
- readonly precip: 5;
343
- readonly humidity: 88;
344
- readonly visibility: 4;
345
- readonly windSpeed: 15;
346
- readonly pressure: 1000;
347
- } | {
348
- readonly code: "20";
349
- readonly label: "Heavy rain";
350
- readonly temp: 11;
351
- readonly precip: 12;
352
- readonly humidity: 95;
353
- readonly visibility: 2;
354
- readonly windSpeed: 20;
355
- readonly pressure: 995;
356
- } | {
357
- readonly code: "21";
358
- readonly label: "Light snow";
359
- readonly temp: -2;
360
- readonly precip: 1;
361
- readonly humidity: 85;
362
- readonly visibility: 4;
363
- readonly windSpeed: 8;
364
- readonly pressure: 1010;
365
- } | {
366
- readonly code: "22";
367
- readonly label: "Snow";
368
- readonly temp: -5;
369
- readonly precip: 4;
370
- readonly humidity: 90;
371
- readonly visibility: 2;
372
- readonly windSpeed: 12;
373
- readonly pressure: 1005;
374
- } | {
375
- readonly code: "29";
376
- readonly label: "Thunderstorm";
377
- readonly temp: 18;
378
- readonly precip: 20;
379
- readonly humidity: 95;
380
- readonly visibility: 1;
381
- readonly windSpeed: 28;
382
- readonly pressure: 985;
383
- };
384
- export declare const cityPresets: readonly [{
385
- readonly name: "Vancouver";
386
- readonly latitude: 49.24966;
387
- readonly longitude: -123.11934;
388
- readonly timezone: "America/Vancouver";
389
- readonly countryCode: "CA";
390
- readonly state: "";
391
- }, {
392
- readonly name: "Sydney";
393
- readonly latitude: -33.86785;
394
- readonly longitude: 151.20732;
395
- readonly timezone: "Australia/Sydney";
396
- readonly countryCode: "AU";
397
- readonly state: "";
398
- }, {
399
- readonly name: "Tokyo";
400
- readonly latitude: 35.6762;
401
- readonly longitude: 139.6503;
402
- readonly timezone: "Asia/Tokyo";
403
- readonly countryCode: "JP";
404
- readonly state: "";
405
- }, {
406
- readonly name: "London";
407
- readonly latitude: 51.5074;
408
- readonly longitude: -0.1278;
409
- readonly timezone: "Europe/London";
410
- readonly countryCode: "GB";
411
- readonly state: "";
412
- }, {
413
- readonly name: "New York";
414
- readonly latitude: 40.7128;
415
- readonly longitude: -74.006;
416
- readonly timezone: "America/New_York";
417
- readonly countryCode: "US";
418
- readonly state: "NY";
419
- }];
420
- export declare function degreesToDirection(degrees: number): {
421
- abbr: string;
422
- english: string;
19
+ export declare function validateAlertsJson(json: string): {
20
+ success: boolean;
21
+ data?: WeatherAlerts;
22
+ error?: string;
423
23
  };
424
- export declare function getPodForHour(hour: number): string;
425
- export declare function getCurrentPod(): string;
426
- export declare function createDefaultConditions(): WeatherConditions;
427
- export declare function createDefaultDailyForecast(): WeatherForecast[];
428
- export declare function createDefaultHourlyForecast(): WeatherForecast[];
429
- export declare function generateWarmerDailyForecast(currentTemp: number, units?: UnitSystem): WeatherForecast[];
430
- export declare function generateColderDailyForecast(currentTemp: number, units?: UnitSystem): WeatherForecast[];
431
- export declare function generateWarmerHourlyForecast(currentTemp: number, units?: UnitSystem): WeatherForecast[];
432
- export declare function generateColderHourlyForecast(currentTemp: number, units?: UnitSystem): WeatherForecast[];
433
- export type UnitSystem = 'metric' | 'imperial';
434
24
  export declare function celsiusToFahrenheit(c: number): number;
435
25
  export declare function fahrenheitToCelsius(f: number): number;
436
- export declare function msToMph(ms: number): number;
437
- export declare function mphToMs(mph: number): number;
438
- export declare function hPaToInHg(hPa: number): number;
439
- export declare function inHgToHPa(inHg: number): number;
26
+ export declare function msToKph(ms: number): number;
27
+ export declare function kphToMph(kph: number): number;
28
+ export declare function mphToKph(mph: number): number;
29
+ export declare function mbToInHg(mb: number): number;
30
+ export declare function inHgToMb(inHg: number): number;
440
31
  export declare function kmToMiles(km: number): number;
441
32
  export declare function milesToKm(miles: number): number;
442
33
  export declare function mmToInches(mm: number): number;
443
34
  export declare function inchesToMm(inches: number): number;
444
- export declare function convertConditionsToUnits(cond: WeatherConditions, fromUnit: UnitSystem, toUnit: UnitSystem): WeatherConditions;
445
- export declare function convertForecastToUnits(forecast: WeatherForecast[], fromUnit: UnitSystem, toUnit: UnitSystem): WeatherForecast[];
35
+ export declare function getWeatherIcon(code: number, partOfDay: 'day' | 'night'): string;
36
+ export declare function degreesToDirection(degrees: number): {
37
+ abbr: string;
38
+ english: string;
39
+ };
40
+ export declare function getPodForHour(hour: number): 'day' | 'night';
41
+ export declare function getCurrentPod(): 'day' | 'night';
42
+ export interface WeatherConditionPreset {
43
+ code: number;
44
+ label: string;
45
+ temperatureC: number;
46
+ precipitationMmph: number;
47
+ humidity: number;
48
+ visibilityKm: number;
49
+ windSpeedKph: number;
50
+ pressureMb: number;
51
+ }
52
+ export declare const weatherConditionPresets: WeatherConditionPreset[];
53
+ export declare const CITY_DATABASE: WeatherCity[];
54
+ export declare function findCityById(cityId: number): WeatherCity | undefined;
55
+ export declare function createDefaultConditions(cityId?: number): WeatherConditions;
56
+ export declare function createDefaultDailyForecast(cityId?: number): DailyForecast;
57
+ export declare function createDefaultHourlyForecast(cityId?: number): HourlyForecast;
58
+ export declare function createDefaultAlerts(cityId?: number): WeatherAlerts;
59
+ export declare function generateWarmerDailyForecast(baseTempC: number): DailyForecast;
60
+ export declare function generateColderDailyForecast(baseTempC: number): DailyForecast;
61
+ export declare function generateWarmerHourlyForecast(baseTempC: number): HourlyForecast;
62
+ export declare function generateColderHourlyForecast(baseTempC: number): HourlyForecast;
63
+ export declare function createDefaultAlert(): WeatherAlert;
64
+ type WeatherListener = () => void;
65
+ export declare function handleWeatherMessage(bridge: Bridge, message: ClientMessage): void;
66
+ export declare function getConditions(_cityId?: number): WeatherConditions;
67
+ export declare function getDailyForecast(_cityId?: number, days?: number): DailyForecast;
68
+ export declare function getHourlyForecast(_cityId?: number, hours?: number): HourlyForecast;
69
+ export declare function getCities(search?: string, countryCode?: string): WeatherCity[];
70
+ export declare function getAlerts(cityId?: number): WeatherAlerts;
71
+ export declare function getUnits(): UnitSystem;
72
+ export declare function setConditions(value: WeatherConditions): void;
73
+ export declare function setDailyForecast(value: DailyForecast): void;
74
+ export declare function setHourlyForecast(value: HourlyForecast): void;
75
+ export declare function setAlerts(value: WeatherAlerts): void;
76
+ export declare function setUnits(value: UnitSystem): void;
77
+ export declare function setSelectedCityId(cityId: number): void;
78
+ export declare function resetWeatherToDefaults(): void;
79
+ export declare function onWeatherChange(listener: WeatherListener): () => void;
80
+ export declare const cityPresets: {
81
+ name: string;
82
+ latitude: number;
83
+ longitude: number;
84
+ timezone: string;
85
+ countryCode: string;
86
+ state: string;
87
+ }[];
446
88
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telemetryos/development-application-host-ui",
3
- "version": "1.8.2",
3
+ "version": "1.9.0",
4
4
  "description": "The official TelemetryOS application CLI package. Use it to build applications that run on the TelemetryOS platform",
5
5
  "type": "module",
6
6
  "files": [
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@hugeicons/core-free-icons": "^1.0.5",
40
40
  "@hugeicons/react": "^1.0.5",
41
- "@telemetryos/root-sdk": "^1.8.2",
41
+ "@telemetryos/root-sdk": "^1.9.0",
42
42
  "react": "^19.1.1",
43
43
  "react-dom": "^19.1.1",
44
44
  "zod": "^3.24.0"