@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.
- package/CHANGELOG.md +8 -0
- package/README.md +0 -0
- package/dist-client/index.d.ts +0 -0
- package/dist-client/index.js +2 -0
- package/dist-client/index.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-server/engine/connector/index.d.ts +1 -0
- package/dist-server/engine/connector/index.js +4 -0
- package/dist-server/engine/connector/index.js.map +1 -0
- package/dist-server/engine/connector/noaa-gps-adapter.d.ts +27 -0
- package/dist-server/engine/connector/noaa-gps-adapter.js +90 -0
- package/dist-server/engine/connector/noaa-gps-adapter.js.map +1 -0
- package/dist-server/engine/connector/open-meteo-adapter.d.ts +7 -0
- package/dist-server/engine/connector/open-meteo-adapter.js +46 -0
- package/dist-server/engine/connector/open-meteo-adapter.js.map +1 -0
- package/dist-server/engine/connector/open-weather-adapter.d.ts +14 -0
- package/dist-server/engine/connector/open-weather-adapter.js +31 -0
- package/dist-server/engine/connector/open-weather-adapter.js.map +1 -0
- package/dist-server/engine/connector/weather-api-connector.d.ts +27 -0
- package/dist-server/engine/connector/weather-api-connector.js +94 -0
- package/dist-server/engine/connector/weather-api-connector.js.map +1 -0
- package/dist-server/engine/index.d.ts +2 -0
- package/dist-server/engine/index.js +5 -0
- package/dist-server/engine/index.js.map +1 -0
- package/dist-server/engine/task/index.d.ts +2 -0
- package/dist-server/engine/task/index.js +5 -0
- package/dist-server/engine/task/index.js.map +1 -0
- package/dist-server/engine/task/weather-around-location.d.ts +1 -0
- package/dist-server/engine/task/weather-around-location.js +36 -0
- package/dist-server/engine/task/weather-around-location.js.map +1 -0
- package/dist-server/engine/task/weather-by-location.d.ts +1 -0
- package/dist-server/engine/task/weather-by-location.js +31 -0
- package/dist-server/engine/task/weather-by-location.js.map +1 -0
- package/dist-server/engine/types.d.ts +48 -0
- package/dist-server/engine/types.js +3 -0
- package/dist-server/engine/types.js.map +1 -0
- package/dist-server/index.d.ts +1 -0
- package/dist-server/index.js +4 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/package.json +32 -0
- package/things-factory.config.js +1 -0
- package/translations/en.json +7 -0
- package/translations/ja.json +7 -0
- package/translations/ko.json +7 -0
- package/translations/ms.json +7 -0
- 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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;AAAA,oBAAiB","sourcesContent":["import './engine'\n"]}
|