@things-factory/integration-weather 9.0.0-beta.40

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 (47) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +0 -0
  3. package/dist-client/index.d.ts +0 -0
  4. package/dist-client/index.js +2 -0
  5. package/dist-client/index.js.map +1 -0
  6. package/dist-client/tsconfig.tsbuildinfo +1 -0
  7. package/dist-server/engine/connector/index.d.ts +1 -0
  8. package/dist-server/engine/connector/index.js +4 -0
  9. package/dist-server/engine/connector/index.js.map +1 -0
  10. package/dist-server/engine/connector/noaa-gps-adapter.d.ts +27 -0
  11. package/dist-server/engine/connector/noaa-gps-adapter.js +90 -0
  12. package/dist-server/engine/connector/noaa-gps-adapter.js.map +1 -0
  13. package/dist-server/engine/connector/open-meteo-adapter.d.ts +7 -0
  14. package/dist-server/engine/connector/open-meteo-adapter.js +46 -0
  15. package/dist-server/engine/connector/open-meteo-adapter.js.map +1 -0
  16. package/dist-server/engine/connector/open-weather-adapter.d.ts +14 -0
  17. package/dist-server/engine/connector/open-weather-adapter.js +31 -0
  18. package/dist-server/engine/connector/open-weather-adapter.js.map +1 -0
  19. package/dist-server/engine/connector/weather-api-connector.d.ts +27 -0
  20. package/dist-server/engine/connector/weather-api-connector.js +94 -0
  21. package/dist-server/engine/connector/weather-api-connector.js.map +1 -0
  22. package/dist-server/engine/index.d.ts +2 -0
  23. package/dist-server/engine/index.js +5 -0
  24. package/dist-server/engine/index.js.map +1 -0
  25. package/dist-server/engine/task/index.d.ts +2 -0
  26. package/dist-server/engine/task/index.js +5 -0
  27. package/dist-server/engine/task/index.js.map +1 -0
  28. package/dist-server/engine/task/weather-around-location.d.ts +1 -0
  29. package/dist-server/engine/task/weather-around-location.js +36 -0
  30. package/dist-server/engine/task/weather-around-location.js.map +1 -0
  31. package/dist-server/engine/task/weather-by-location.d.ts +1 -0
  32. package/dist-server/engine/task/weather-by-location.js +31 -0
  33. package/dist-server/engine/task/weather-by-location.js.map +1 -0
  34. package/dist-server/engine/types.d.ts +48 -0
  35. package/dist-server/engine/types.js +3 -0
  36. package/dist-server/engine/types.js.map +1 -0
  37. package/dist-server/index.d.ts +1 -0
  38. package/dist-server/index.js +4 -0
  39. package/dist-server/index.js.map +1 -0
  40. package/dist-server/tsconfig.tsbuildinfo +1 -0
  41. package/package.json +32 -0
  42. package/things-factory.config.js +1 -0
  43. package/translations/en.json +7 -0
  44. package/translations/ja.json +7 -0
  45. package/translations/ko.json +7 -0
  46. package/translations/ms.json +7 -0
  47. package/translations/zh.json +7 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const integration_base_1 = require("@things-factory/integration-base");
4
+ const debug = require('debug')('things-factory:weather-fetch');
5
+ async function weatherByLocation(step, { domain, user, data, variables, lng }) {
6
+ const { connection, params: { latitude, longitude } } = step;
7
+ const client = integration_base_1.ConnectionManager.getConnectionInstanceByName(domain, connection);
8
+ if (!client) {
9
+ debug(`no connection : ${connection}`);
10
+ throw new Error(`no connection : ${connection}`);
11
+ }
12
+ const result = await client.getWeatherByLocation({ latitude, longitude });
13
+ return {
14
+ data: result
15
+ };
16
+ }
17
+ weatherByLocation.parameterSpec = [
18
+ {
19
+ type: 'number',
20
+ name: 'latitude',
21
+ label: 'label.latitude'
22
+ },
23
+ {
24
+ type: 'number',
25
+ name: 'longitude',
26
+ label: 'label.longitude'
27
+ }
28
+ ];
29
+ weatherByLocation.help = 'integration/task/weather-by-location';
30
+ integration_base_1.TaskRegistry.registerTaskHandler('weather-by-location', weatherByLocation);
31
+ //# sourceMappingURL=weather-by-location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weather-by-location.js","sourceRoot":"","sources":["../../../server/engine/task/weather-by-location.ts"],"names":[],"mappings":";;AAAA,uEAA2F;AAI3F,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,8BAA8B,CAAC,CAAA;AAE9D,KAAK,UAAU,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAW;IACpF,MAAM,EACJ,UAAU,EACV,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAChC,GAAG,IAAI,CAAA;IAER,MAAM,MAAM,GAAmB,oCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAChG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;QACtC,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;IAEzE,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,iBAAiB,CAAC,aAAa,GAAG;IAChC;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,gBAAgB;KACxB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,iBAAiB;KACzB;CACF,CAAA;AAED,iBAAiB,CAAC,IAAI,GAAG,sCAAsC,CAAA;AAE/D,+BAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAA","sourcesContent":["import { ConnectionManager, Context, TaskRegistry } from '@things-factory/integration-base'\n\nimport { WeatherService } from '../types.js'\n\nconst debug = require('debug')('things-factory:weather-fetch')\n\nasync function weatherByLocation(step, { domain, user, data, variables, lng }: Context) {\n const {\n connection,\n params: { latitude, longitude }\n } = step\n\n const client: WeatherService = ConnectionManager.getConnectionInstanceByName(domain, connection)\n if (!client) {\n debug(`no connection : ${connection}`)\n throw new Error(`no connection : ${connection}`)\n }\n\n const result = await client.getWeatherByLocation({ latitude, longitude })\n\n return {\n data: result\n }\n}\n\nweatherByLocation.parameterSpec = [\n {\n type: 'number',\n name: 'latitude',\n label: 'label.latitude'\n },\n {\n type: 'number',\n name: 'longitude',\n label: 'label.longitude'\n }\n]\n\nweatherByLocation.help = 'integration/task/weather-by-location'\n\nTaskRegistry.registerTaskHandler('weather-by-location', weatherByLocation)\n"]}
@@ -0,0 +1,48 @@
1
+ /** ๐ŸŒ ์œ„์น˜ ์ •๋ณด */
2
+ export interface Location {
3
+ latitude: number;
4
+ longitude: number;
5
+ }
6
+ /** ๐ŸŒก๏ธ ๊ธฐ์˜จ ์ •๋ณด */
7
+ export interface Temperature {
8
+ current: number;
9
+ unit: 'ยฐC' | 'ยฐF';
10
+ }
11
+ /** ๐Ÿ’จ ๋ฐ”๋žŒ ์ •๋ณด */
12
+ export interface Wind {
13
+ speed: number;
14
+ unit: 'm/s' | 'km/h' | 'mph';
15
+ direction: number | null;
16
+ }
17
+ /** ๐ŸŒค๏ธ ๋‚ ์”จ ๊ณตํ†ต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ */
18
+ export interface WeatherData {
19
+ location: Location;
20
+ temperature: Temperature;
21
+ wind: Wind;
22
+ humidity: number;
23
+ cloudCoverage: number;
24
+ solarRadiation: number | null;
25
+ weatherDescription: string;
26
+ timestamp: string;
27
+ }
28
+ /** ๐ŸŒ ํŠน์ • ์œ„์น˜์˜ ์ฃผ๋ณ€ ๋‚ ์”จ ๋ฐ์ดํ„ฐ (์—ฌ๋Ÿฌ ๊ฐœ์˜ WeatherData ํฌํ•จ) */
29
+ export interface WeatherAround {
30
+ center: Location;
31
+ radius: number;
32
+ weatherPoints: WeatherData[];
33
+ }
34
+ export interface WeatherService {
35
+ /**
36
+ * ํŠน์ • ์œ„์น˜์˜ ๋‚ ์”จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
37
+ * @param location - ์กฐํšŒํ•  ์œ„์น˜ (์œ„๋„, ๊ฒฝ๋„)
38
+ * @returns WeatherData - ํ‘œ์ค€ํ™”๋œ ๋‚ ์”จ ๋ฐ์ดํ„ฐ
39
+ */
40
+ getWeatherByLocation(location: Location): Promise<WeatherData>;
41
+ /**
42
+ * ํŠน์ • ์œ„์น˜๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ฃผ๋ณ€ ๋ฐ˜๊ฒฝ ๋‚ด์˜ ๋‚ ์”จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
43
+ * @param location - ์ค‘์‹ฌ ์œ„์น˜ (์œ„๋„, ๊ฒฝ๋„)
44
+ * @param radius - ๊ฒ€์ƒ‰ํ•  ๋ฐ˜๊ฒฝ (๋‹จ์œ„: km)
45
+ * @returns WeatherAround - ์ฃผ๋ณ€์˜ ๋‚ ์”จ ๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ
46
+ */
47
+ getWeatherAroundLocation(location: Location, radius: number): Promise<WeatherAround>;
48
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../server/engine/types.ts"],"names":[],"mappings":"","sourcesContent":["/** ๐ŸŒ ์œ„์น˜ ์ •๋ณด */\nexport interface Location {\n latitude: number\n longitude: number\n}\n\n/** ๐ŸŒก๏ธ ๊ธฐ์˜จ ์ •๋ณด */\nexport interface Temperature {\n current: number // ํ˜„์žฌ ๊ธฐ์˜จ\n unit: 'ยฐC' | 'ยฐF'\n}\n\n/** ๐Ÿ’จ ๋ฐ”๋žŒ ์ •๋ณด */\nexport interface Wind {\n speed: number // ํ’์†\n unit: 'm/s' | 'km/h' | 'mph'\n direction: number | null // ํ’ํ–ฅ (0~360๋„, 0=๋ถ์ชฝ), ์ผ๋ถ€ API์—์„œ ์ œ๊ณต๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ\n}\n\n/** ๐ŸŒค๏ธ ๋‚ ์”จ ๊ณตํ†ต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ */\nexport interface WeatherData {\n location: Location\n temperature: Temperature\n wind: Wind\n humidity: number // ์ƒ๋Œ€ ์Šต๋„ (%)\n cloudCoverage: number // ๊ตฌ๋ฆ„๋Ÿ‰ (%)\n solarRadiation: number | null // ํƒœ์–‘๊ด‘๋Ÿ‰ (W/mยฒ), ์ผ๋ถ€ API์—์„œ ์ œ๊ณต๋˜์ง€ ์•Š์Œ\n weatherDescription: string // ๋‚ ์”จ ์ƒํƒœ (์˜ˆ: \"clear\", \"partly cloudy\")\n timestamp: string // ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ๊ฐ„ (ISO8601)\n}\n\n/** ๐ŸŒ ํŠน์ • ์œ„์น˜์˜ ์ฃผ๋ณ€ ๋‚ ์”จ ๋ฐ์ดํ„ฐ (์—ฌ๋Ÿฌ ๊ฐœ์˜ WeatherData ํฌํ•จ) */\nexport interface WeatherAround {\n center: Location // ์ค‘์‹ฌ ์ขŒํ‘œ\n radius: number // ๋ฐ˜๊ฒฝ (km)\n weatherPoints: WeatherData[] // ๋ฐ˜๊ฒฝ ๋‚ด์˜ ๋‚ ์”จ ๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ\n}\n\nexport interface WeatherService {\n /**\n * ํŠน์ • ์œ„์น˜์˜ ๋‚ ์”จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.\n * @param location - ์กฐํšŒํ•  ์œ„์น˜ (์œ„๋„, ๊ฒฝ๋„)\n * @returns WeatherData - ํ‘œ์ค€ํ™”๋œ ๋‚ ์”จ ๋ฐ์ดํ„ฐ\n */\n getWeatherByLocation(location: Location): Promise<WeatherData>\n\n /**\n * ํŠน์ • ์œ„์น˜๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ฃผ๋ณ€ ๋ฐ˜๊ฒฝ ๋‚ด์˜ ๋‚ ์”จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.\n * @param location - ์ค‘์‹ฌ ์œ„์น˜ (์œ„๋„, ๊ฒฝ๋„)\n * @param radius - ๊ฒ€์ƒ‰ํ•  ๋ฐ˜๊ฒฝ (๋‹จ์œ„: km)\n * @returns WeatherAround - ์ฃผ๋ณ€์˜ ๋‚ ์”จ ๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ\n */\n getWeatherAroundLocation(location: Location, radius: number): Promise<WeatherAround>\n}\n"]}
@@ -0,0 +1 @@
1
+ import './engine';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("./engine");
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;AAAA,oBAAiB","sourcesContent":["import './engine'\n"]}