@camstack/addon-provider-bosch 0.1.43 → 0.1.44
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 +6 -0
- package/dist/{account-integration-offline-Ctzpu6DI.js → account-integration-offline-CFyuKmsG.js} +65 -122
- package/dist/{account-integration-offline-BrrnCsrl.mjs → account-integration-offline-IHodWmhD.mjs} +50 -113
- package/dist/{bosch-instances-BtKXLOoG.mjs → bosch-instances-C8FRjQzC.mjs} +19014 -16445
- package/dist/{bosch-instances-CppS1lTA.js → bosch-instances-CXMUquuA.js} +19096 -16545
- package/dist/home-connect/addon.js +13 -98
- package/dist/home-connect/addon.mjs +12 -97
- package/dist/homecom/addon.js +14 -107
- package/dist/homecom/addon.mjs +12 -105
- package/dist/shc/addon.js +1 -1
- package/dist/shc/addon.mjs +1 -1
- package/i18n/en.json +19 -4
- package/i18n/it.json +19 -4
- package/package.json +2 -2
package/dist/homecom/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { a as
|
|
1
|
+
import { A as customAction, B as number, D as waterHeaterCapability, I as rowsDepsOver, J as errMsg, L as _enum, M as defineEntryKind, N as entryBody, O as RecordIntegrationInstances, R as array, U as string, V as object, Y as EventCategory, a as BaseDevice, d as climateControlCapability, i as testBoschInstance, j as defineCustomActions, n as boschRowsPorts, o as BaseDeviceProvider, p as deviceAdoptionCapability, q as DeviceType, r as keepBodyKeys, t as boschRowsMigration, y as integrationInstancesCapability, z as literal } from "../bosch-instances-C8FRjQzC.mjs";
|
|
2
|
+
import { a as loginFailureForAttempt, i as createSignInAttemptStore, n as cascadeRemoveDevicesForIntegration, o as parseOAuthCallback, r as buildSignInGuideFields, s as HOMECOM_REDIRECT_URI, t as setIntegrationDevicesOnline } from "../account-integration-offline-IHodWmhD.mjs";
|
|
3
3
|
import { createHash, randomBytes } from "node:crypto";
|
|
4
4
|
//#region src/homecom/config.ts
|
|
5
5
|
var HOMECOM_BRANDS = ["bosch", "buderus"];
|
|
@@ -45,23 +45,22 @@ var HIDDEN_UNTIL_ADVANCED = {
|
|
|
45
45
|
field: "__hidden__",
|
|
46
46
|
equals: "yes"
|
|
47
47
|
};
|
|
48
|
-
var
|
|
48
|
+
var HOMECOM_SIGN_IN_GUIDE = {
|
|
49
|
+
i18nPrefix: "homecom.s_account",
|
|
50
|
+
keyPrefix: "__homecom",
|
|
51
|
+
providerName: "SingleKey ID",
|
|
52
|
+
redirectStart: `${HOMECOM_REDIRECT_URI}?code=`
|
|
53
|
+
};
|
|
49
54
|
function buildHomeComFormSchema() {
|
|
50
55
|
return { sections: [{
|
|
51
56
|
id: "account",
|
|
52
57
|
title: "HomeCom account",
|
|
53
58
|
titleKey: "provider-bosch:homecom.s_account.title",
|
|
54
|
-
description: "Sign in with your SingleKey ID
|
|
59
|
+
description: "Sign in with your SingleKey ID in your own browser, then paste the address the browser stops on.",
|
|
55
60
|
descriptionKey: "provider-bosch:homecom.s_account.description",
|
|
56
61
|
columns: 1,
|
|
57
62
|
fields: [
|
|
58
|
-
|
|
59
|
-
type: "info",
|
|
60
|
-
key: "__homecom-code-help",
|
|
61
|
-
label: HOMECOM_CODE_HELP,
|
|
62
|
-
labelKey: "provider-bosch:homecom.s_account.__homecom-code-help.label",
|
|
63
|
-
content: ""
|
|
64
|
-
},
|
|
63
|
+
...buildSignInGuideFields(HOMECOM_SIGN_IN_GUIDE),
|
|
65
64
|
{
|
|
66
65
|
type: "account-sign-in",
|
|
67
66
|
addonId: "bosch-homecom",
|
|
@@ -71,7 +70,6 @@ function buildHomeComFormSchema() {
|
|
|
71
70
|
providerLabel: "SingleKey ID",
|
|
72
71
|
beginAction: "beginSignIn",
|
|
73
72
|
completeAction: "finishSignIn",
|
|
74
|
-
claimAction: "claimSignIn",
|
|
75
73
|
signOutAction: "signOut",
|
|
76
74
|
accountKey: "accountLabel",
|
|
77
75
|
countKey: "gatewayCount",
|
|
@@ -214,27 +212,6 @@ var homeComActions = defineCustomActions({
|
|
|
214
212
|
kind: "mutation",
|
|
215
213
|
auth: "admin"
|
|
216
214
|
}),
|
|
217
|
-
/**
|
|
218
|
-
* The form asks while the proxied login page is open: `pending` until the hub captured the
|
|
219
|
-
* app-scheme redirect and finished the exchange, then the same fields `finishSignIn` returns.
|
|
220
|
-
* Claimed once. A failed exchange answers with its operator-facing message as an error.
|
|
221
|
-
*/
|
|
222
|
-
claimSignIn: customAction(object({ attemptId: string().min(1) }), object({
|
|
223
|
-
pending: boolean(),
|
|
224
|
-
token: string().optional().meta({ secret: true }),
|
|
225
|
-
refresh: string().optional().meta({ secret: true }),
|
|
226
|
-
username: string().optional().meta({ secret: true }),
|
|
227
|
-
accountLabel: string().optional(),
|
|
228
|
-
gatewayCount: number().optional(),
|
|
229
|
-
summary: string().optional(),
|
|
230
|
-
gatewayId: string().optional(),
|
|
231
|
-
brand: HomeComBrandSchema.optional(),
|
|
232
|
-
region: HomeComRegionSchema.optional(),
|
|
233
|
-
choices: array(gatewayChoice).optional()
|
|
234
|
-
}), {
|
|
235
|
-
kind: "mutation",
|
|
236
|
-
auth: "admin"
|
|
237
|
-
}),
|
|
238
215
|
signOut: customAction(object({}), object({
|
|
239
216
|
signedOut: literal(true),
|
|
240
217
|
summary: string()
|
|
@@ -301,7 +278,6 @@ function unsupportedDeviceTypeMessage(deviceType) {
|
|
|
301
278
|
* names `pointt.gateway.resource.dashapp`, and the Bosch app sends `style_id=tt_bsch`.
|
|
302
279
|
*/
|
|
303
280
|
var HOMECOM_CLIENT_ID = "762162C0-FA2D-4540-AE66-6489F189FADC";
|
|
304
|
-
var HOMECOM_REDIRECT_URI = "com.bosch.tt.dashtt.pointt://app/login";
|
|
305
281
|
var HOMECOM_AUTHORIZE_URL = "https://singlekey-id.com/auth/connect/authorize";
|
|
306
282
|
var HOMECOM_TOKEN_URL = "https://singlekey-id.com/auth/connect/token";
|
|
307
283
|
var HOMECOM_STYLE_ID = "tt_bsch";
|
|
@@ -1225,42 +1201,6 @@ function finishedFromGateways(tokens, resolved, listFailure) {
|
|
|
1225
1201
|
}
|
|
1226
1202
|
var homeComSignInAttempts = createSignInAttemptStore();
|
|
1227
1203
|
//#endregion
|
|
1228
|
-
//#region src/homecom/homecom-sign-in-proxy.ts
|
|
1229
|
-
/**
|
|
1230
|
-
* SingleKey ID serves the HomeCom login page; its scripts and styles come from `cdn.singlekey-id.com`
|
|
1231
|
-
* as `type=module` + `crossorigin` files, which the CDN does not CORS-enable for another origin —
|
|
1232
|
-
* served from the hub origin through the proxy they load, loaded directly they are refused and the
|
|
1233
|
-
* page has no script (only the email field, no way to continue).
|
|
1234
|
-
*/
|
|
1235
|
-
var HOMECOM_LOGIN_HOSTS = ["singlekey-id.com", "cdn.singlekey-id.com"];
|
|
1236
|
-
var HOMECOM_APP_SCHEME = HOMECOM_REDIRECT_URI.slice(0, HOMECOM_REDIRECT_URI.indexOf("://") + 3);
|
|
1237
|
-
var homeComSignInClaims = createSignInClaims();
|
|
1238
|
-
/** Start an attempt whose `authorizeUrl` is the hub-relative proxied login page. */
|
|
1239
|
-
function beginHomeComProxiedSignIn(deps) {
|
|
1240
|
-
const nowMs = deps.nowMs ?? (() => Date.now());
|
|
1241
|
-
const published = publishHomeComSignIn(homeComSignInAttempts, nowMs());
|
|
1242
|
-
if (deps.proxy === null) return published;
|
|
1243
|
-
const entry = openSignInProxy({
|
|
1244
|
-
proxy: deps.proxy,
|
|
1245
|
-
claims: homeComSignInClaims,
|
|
1246
|
-
addonId: deps.addonId,
|
|
1247
|
-
attemptId: published.attemptId,
|
|
1248
|
-
authorizeUrl: published.authorizeUrl,
|
|
1249
|
-
hosts: HOMECOM_LOGIN_HOSTS,
|
|
1250
|
-
appScheme: HOMECOM_APP_SCHEME,
|
|
1251
|
-
finish: (callback) => finishHomeComSignIn({
|
|
1252
|
-
attemptId: published.attemptId,
|
|
1253
|
-
callback,
|
|
1254
|
-
nowMs: nowMs()
|
|
1255
|
-
}, homeComSignInAttempts, deps.fetchFn !== void 0 ? { fetchFn: deps.fetchFn } : {}),
|
|
1256
|
-
nowMs
|
|
1257
|
-
});
|
|
1258
|
-
return {
|
|
1259
|
-
attemptId: published.attemptId,
|
|
1260
|
-
authorizeUrl: entry
|
|
1261
|
-
};
|
|
1262
|
-
}
|
|
1263
|
-
//#endregion
|
|
1264
1204
|
//#region src/homecom/homecom-token-persist.ts
|
|
1265
1205
|
/**
|
|
1266
1206
|
* Patch the integration's record, one write at a time per integration. Refuses (and says so,
|
|
@@ -2187,8 +2127,6 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2187
2127
|
};
|
|
2188
2128
|
clients = null;
|
|
2189
2129
|
instances = null;
|
|
2190
|
-
loginProxy = null;
|
|
2191
|
-
loginPlane = null;
|
|
2192
2130
|
constructor() {
|
|
2193
2131
|
super({});
|
|
2194
2132
|
}
|
|
@@ -2207,7 +2145,6 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2207
2145
|
tester: this.buildConnectionTestProvider()
|
|
2208
2146
|
});
|
|
2209
2147
|
this.instances = built;
|
|
2210
|
-
await this.serveLoginProxy();
|
|
2211
2148
|
const persistDeps = {
|
|
2212
2149
|
read: (id) => homeComStoredOf(built.instances, id),
|
|
2213
2150
|
patch: (id, patch) => built.handle.patch(id, patch),
|
|
@@ -2242,19 +2179,9 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2242
2179
|
customActions: homeComActions,
|
|
2243
2180
|
actionHandlers: {
|
|
2244
2181
|
beginSignIn: async () => ({
|
|
2245
|
-
...
|
|
2246
|
-
|
|
2247
|
-
addonId: this.ctx.id
|
|
2248
|
-
}),
|
|
2249
|
-
summary: "Open the sign-in page and sign in."
|
|
2182
|
+
...publishHomeComSignIn(homeComSignInAttempts, Date.now()),
|
|
2183
|
+
summary: "Open the sign-in page, sign in, then paste the address the browser stops on."
|
|
2250
2184
|
}),
|
|
2251
|
-
claimSignIn: async (input) => {
|
|
2252
|
-
const claim = homeComSignInClaims.claim(input.attemptId, Date.now());
|
|
2253
|
-
return claim.state === "pending" ? { pending: true } : {
|
|
2254
|
-
pending: false,
|
|
2255
|
-
...claim.result
|
|
2256
|
-
};
|
|
2257
|
-
},
|
|
2258
2185
|
finishSignIn: async (input) => finishHomeComSignIn({
|
|
2259
2186
|
attemptId: input.attemptId,
|
|
2260
2187
|
callback: input.callback,
|
|
@@ -2267,27 +2194,7 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2267
2194
|
}
|
|
2268
2195
|
};
|
|
2269
2196
|
}
|
|
2270
|
-
/** The hub's HTTPS face for the vendor's login pages (D955): admin session only. */
|
|
2271
|
-
async serveLoginProxy() {
|
|
2272
|
-
const proxy = new VendorLoginProxy({
|
|
2273
|
-
addonId: this.ctx.id,
|
|
2274
|
-
logger: this.ctx.logger
|
|
2275
|
-
});
|
|
2276
|
-
try {
|
|
2277
|
-
this.loginPlane = await this.ctx.dataPlane?.serve({
|
|
2278
|
-
prefix: "vendor-login",
|
|
2279
|
-
access: "admin",
|
|
2280
|
-
handler: proxy.handler
|
|
2281
|
-
}) ?? null;
|
|
2282
|
-
if (this.loginPlane !== null) this.loginProxy = proxy;
|
|
2283
|
-
} catch (err) {
|
|
2284
|
-
this.ctx.logger.warn("HomeCom login proxy failed to serve — sign-in falls back to paste", { meta: { error: errMsg(err) } });
|
|
2285
|
-
}
|
|
2286
|
-
}
|
|
2287
2197
|
async onShutdown() {
|
|
2288
|
-
await this.loginPlane?.dispose().catch(() => void 0);
|
|
2289
|
-
this.loginPlane = null;
|
|
2290
|
-
this.loginProxy = null;
|
|
2291
2198
|
try {
|
|
2292
2199
|
await this.clients?.shutdown();
|
|
2293
2200
|
} catch (err) {
|
package/dist/shc/addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
//#region \0rolldown/runtime.js
|
|
3
3
|
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
4
4
|
//#endregion
|
|
5
|
-
const require_bosch_instances = require("../bosch-instances-
|
|
5
|
+
const require_bosch_instances = require("../bosch-instances-CXMUquuA.js");
|
|
6
6
|
let node_crypto = require("node:crypto");
|
|
7
7
|
let node_https = require("node:https");
|
|
8
8
|
let node_child_process = require("node:child_process");
|
package/dist/shc/addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as customAction, B as number, E as temperatureSensorCapability, I as rowsDepsOver, J as errMsg, L as _enum, M as defineEntryKind, N as entryBody, O as RecordIntegrationInstances, R as array, T as switchCapability, U as string, V as object, Y as EventCategory, _ as heatingValveCapability, a as BaseDevice, d as climateControlCapability, i as testBoschInstance, j as defineCustomActions, l as batteryCapability, n as boschRowsPorts, o as BaseDeviceProvider, p as deviceAdoptionCapability, q as DeviceType, r as keepBodyKeys, t as boschRowsMigration, y as integrationInstancesCapability, z as literal } from "../bosch-instances-C8FRjQzC.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { request } from "node:https";
|
package/i18n/en.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"bosch-home-connect.name": "Bosch Home Connect",
|
|
4
4
|
"bosch-homecom.name": "Bosch HomeCom",
|
|
5
5
|
"homecom.s_account.title": "HomeCom account",
|
|
6
|
-
"homecom.s_account.description": "Sign in with your SingleKey ID
|
|
6
|
+
"homecom.s_account.description": "Sign in with your SingleKey ID in your own browser, then paste the address the browser stops on.",
|
|
7
7
|
"homecom.s_account.__homecom-sign-in.label": "HomeCom",
|
|
8
8
|
"homecom.s_account.accountLabel.label": "Account",
|
|
9
9
|
"homecom.s_account.gatewayCount.label": "Gateways",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"homecom.s_account.brand.label": "Brand",
|
|
16
16
|
"homecom.s_account.region.label": "Region",
|
|
17
17
|
"home-connect.s_gateway.title": "Home Connect",
|
|
18
|
-
"home-connect.s_gateway.description": "Sign in with your Home Connect account
|
|
18
|
+
"home-connect.s_gateway.description": "Sign in with your Home Connect account in your own browser, then paste the address the browser stops on.",
|
|
19
19
|
"home-connect.s_gateway.__home-connect-sign-in.label": "Home Connect",
|
|
20
20
|
"home-connect.s_gateway.accountLabel.label": "Account",
|
|
21
21
|
"home-connect.s_gateway.appliances.label": "Appliances",
|
|
@@ -32,6 +32,21 @@
|
|
|
32
32
|
"shc.s_connection.token.label": "Controller token",
|
|
33
33
|
"shc.s_connection.sslCertificate.label": "Client certificate (PEM)",
|
|
34
34
|
"shc.s_connection.sslKey.label": "Client private key (PEM)",
|
|
35
|
-
"homecom.s_account.
|
|
36
|
-
"homecom.s_account.
|
|
35
|
+
"homecom.s_account.gatewayId.description": "Filled from the account. Type one only when you need to override the choice.",
|
|
36
|
+
"homecom.s_account.__homecom-guide-open.label": "1. Click “Sign in with SingleKey ID”. The sign-in page opens in a new tab of your own browser (it cannot be shown inside CamStack).",
|
|
37
|
+
"homecom.s_account.__homecom-guide-login.label": "2. Sign in there with your SingleKey ID: email, password and the one-time code if you are asked for one.",
|
|
38
|
+
"homecom.s_account.__homecom-guide-redirect.label": "3. When you finish, the browser tries to open the Bosch app and fails or shows an empty page. That is expected: the address it tried to open is what CamStack needs. It starts with com.bosch.tt.dashtt.pointt://app/login?code=",
|
|
39
|
+
"homecom.s_account.__homecom-guide-chrome.label": "Chrome, Edge, Brave: before you sign in press F12, open Network and tick “Preserve log”. After the failure pick the last request whose address starts with com.bosch.tt.dashtt.pointt://app/login?code= and use right click, Copy, Copy URL (or copy the address from the error line in the Console).",
|
|
40
|
+
"homecom.s_account.__homecom-guide-firefox.label": "Firefox: before you sign in press F12, open Network, open the gear menu and enable “Persist Logs”. After the failure right click the last request, Copy Value, Copy URL.",
|
|
41
|
+
"homecom.s_account.__homecom-guide-safari.label": "Safari: enable the Develop menu (Settings, Advanced), then Develop, Show Web Inspector, Network, and keep “Preserve Log” on. After the failure copy the address of the last request. Safari may also show the address in its “cannot open” message.",
|
|
42
|
+
"homecom.s_account.__homecom-guide-phone.label": "Phone or tablet: the failed address often stays in the address bar; press and hold it to copy. If it does not, repeat the sign-in from a computer.",
|
|
43
|
+
"homecom.s_account.__homecom-guide-paste.label": "4. Paste the whole address (or only the code after “code=”) in the box that appears under the button. The sign-in completes by itself; the code is valid for about ten minutes.",
|
|
44
|
+
"home-connect.s_gateway.__home-connect-guide-open.label": "1. Click “Sign in with Home Connect”. The sign-in page opens in a new tab of your own browser (it cannot be shown inside CamStack).",
|
|
45
|
+
"home-connect.s_gateway.__home-connect-guide-login.label": "2. Sign in there with your SingleKey ID: email, password and the one-time code if you are asked for one.",
|
|
46
|
+
"home-connect.s_gateway.__home-connect-guide-redirect.label": "3. When you finish, the browser tries to open the Bosch app and fails or shows an empty page. That is expected: the address it tried to open is what CamStack needs. It starts with hcauth://auth/prod?code=",
|
|
47
|
+
"home-connect.s_gateway.__home-connect-guide-chrome.label": "Chrome, Edge, Brave: before you sign in press F12, open Network and tick “Preserve log”. After the failure pick the last request whose address starts with hcauth://auth/prod?code= and use right click, Copy, Copy URL (or copy the address from the error line in the Console).",
|
|
48
|
+
"home-connect.s_gateway.__home-connect-guide-firefox.label": "Firefox: before you sign in press F12, open Network, open the gear menu and enable “Persist Logs”. After the failure right click the last request, Copy Value, Copy URL.",
|
|
49
|
+
"home-connect.s_gateway.__home-connect-guide-safari.label": "Safari: enable the Develop menu (Settings, Advanced), then Develop, Show Web Inspector, Network, and keep “Preserve Log” on. After the failure copy the address of the last request. Safari may also show the address in its “cannot open” message.",
|
|
50
|
+
"home-connect.s_gateway.__home-connect-guide-phone.label": "Phone or tablet: the failed address often stays in the address bar; press and hold it to copy. If it does not, repeat the sign-in from a computer.",
|
|
51
|
+
"home-connect.s_gateway.__home-connect-guide-paste.label": "4. Paste the whole address (or only the code after “code=”) in the box that appears under the button. The sign-in completes by itself; the code is valid for about ten minutes."
|
|
37
52
|
}
|
package/i18n/it.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"bosch-home-connect.name": "Bosch Home Connect",
|
|
4
4
|
"bosch-homecom.name": "Bosch HomeCom",
|
|
5
5
|
"homecom.s_account.title": "Account HomeCom",
|
|
6
|
-
"homecom.s_account.description": "Accedi con il tuo SingleKey ID
|
|
6
|
+
"homecom.s_account.description": "Accedi con il tuo SingleKey ID nel tuo browser, poi incolla l'indirizzo su cui il browser si ferma.",
|
|
7
7
|
"homecom.s_account.__homecom-sign-in.label": "HomeCom",
|
|
8
8
|
"homecom.s_account.accountLabel.label": "Account",
|
|
9
9
|
"homecom.s_account.gatewayCount.label": "Gateway",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"homecom.s_account.brand.label": "Marchio",
|
|
16
16
|
"homecom.s_account.region.label": "Regione",
|
|
17
17
|
"home-connect.s_gateway.title": "Home Connect",
|
|
18
|
-
"home-connect.s_gateway.description": "Accedi con il tuo account Home Connect
|
|
18
|
+
"home-connect.s_gateway.description": "Accedi con il tuo account Home Connect nel tuo browser, poi incolla l'indirizzo su cui il browser si ferma.",
|
|
19
19
|
"home-connect.s_gateway.__home-connect-sign-in.label": "Home Connect",
|
|
20
20
|
"home-connect.s_gateway.accountLabel.label": "Account",
|
|
21
21
|
"home-connect.s_gateway.appliances.label": "Elettrodomestici",
|
|
@@ -32,6 +32,21 @@
|
|
|
32
32
|
"shc.s_connection.token.label": "Token del controller",
|
|
33
33
|
"shc.s_connection.sslCertificate.label": "Certificato client (PEM)",
|
|
34
34
|
"shc.s_connection.sslKey.label": "Chiave privata client (PEM)",
|
|
35
|
-
"homecom.s_account.
|
|
36
|
-
"homecom.s_account.
|
|
35
|
+
"homecom.s_account.gatewayId.description": "Compilato dall'account. Scrivilo solo se devi sostituire la scelta.",
|
|
36
|
+
"homecom.s_account.__homecom-guide-open.label": "1. Clicca “Accedi con SingleKey ID”. La pagina di accesso si apre in una nuova scheda del tuo browser (non può essere mostrata dentro CamStack).",
|
|
37
|
+
"homecom.s_account.__homecom-guide-login.label": "2. Accedi lì con il tuo SingleKey ID: email, password e il codice monouso se richiesto.",
|
|
38
|
+
"homecom.s_account.__homecom-guide-redirect.label": "3. Al termine il browser prova ad aprire l'app Bosch e fallisce o mostra una pagina vuota. È normale: l'indirizzo che ha provato ad aprire è quello che serve a CamStack. Inizia con com.bosch.tt.dashtt.pointt://app/login?code=",
|
|
39
|
+
"homecom.s_account.__homecom-guide-chrome.label": "Chrome, Edge, Brave: prima di accedere premi F12, apri Network e spunta “Preserve log”. Dopo il fallimento scegli l'ultima richiesta il cui indirizzo inizia con com.bosch.tt.dashtt.pointt://app/login?code= e usa tasto destro, Copy, Copy URL (oppure copia l'indirizzo dalla riga d'errore nella Console).",
|
|
40
|
+
"homecom.s_account.__homecom-guide-firefox.label": "Firefox: prima di accedere premi F12, apri Network, apri il menu a ingranaggio e attiva “Persist Logs”. Dopo il fallimento fai clic destro sull'ultima richiesta, Copy Value, Copy URL.",
|
|
41
|
+
"homecom.s_account.__homecom-guide-safari.label": "Safari: attiva il menu Sviluppo (Impostazioni, Avanzate), poi Sviluppo, Mostra Web Inspector, Network, e lascia attivo “Preserve Log”. Dopo il fallimento copia l'indirizzo dell'ultima richiesta. Safari può mostrare l'indirizzo anche nel messaggio “impossibile aprire”.",
|
|
42
|
+
"homecom.s_account.__homecom-guide-phone.label": "Telefono o tablet: l'indirizzo che ha fallito spesso resta nella barra degli indirizzi; tienilo premuto per copiarlo. Se non c'è, ripeti l'accesso da un computer.",
|
|
43
|
+
"homecom.s_account.__homecom-guide-paste.label": "4. Incolla l'indirizzo intero (o solo il codice dopo “code=”) nella casella che compare sotto il pulsante. L'accesso si completa da solo; il codice vale circa dieci minuti.",
|
|
44
|
+
"home-connect.s_gateway.__home-connect-guide-open.label": "1. Clicca “Accedi con Home Connect”. La pagina di accesso si apre in una nuova scheda del tuo browser (non può essere mostrata dentro CamStack).",
|
|
45
|
+
"home-connect.s_gateway.__home-connect-guide-login.label": "2. Accedi lì con il tuo SingleKey ID: email, password e il codice monouso se richiesto.",
|
|
46
|
+
"home-connect.s_gateway.__home-connect-guide-redirect.label": "3. Al termine il browser prova ad aprire l'app Bosch e fallisce o mostra una pagina vuota. È normale: l'indirizzo che ha provato ad aprire è quello che serve a CamStack. Inizia con hcauth://auth/prod?code=",
|
|
47
|
+
"home-connect.s_gateway.__home-connect-guide-chrome.label": "Chrome, Edge, Brave: prima di accedere premi F12, apri Network e spunta “Preserve log”. Dopo il fallimento scegli l'ultima richiesta il cui indirizzo inizia con hcauth://auth/prod?code= e usa tasto destro, Copy, Copy URL (oppure copia l'indirizzo dalla riga d'errore nella Console).",
|
|
48
|
+
"home-connect.s_gateway.__home-connect-guide-firefox.label": "Firefox: prima di accedere premi F12, apri Network, apri il menu a ingranaggio e attiva “Persist Logs”. Dopo il fallimento fai clic destro sull'ultima richiesta, Copy Value, Copy URL.",
|
|
49
|
+
"home-connect.s_gateway.__home-connect-guide-safari.label": "Safari: attiva il menu Sviluppo (Impostazioni, Avanzate), poi Sviluppo, Mostra Web Inspector, Network, e lascia attivo “Preserve Log”. Dopo il fallimento copia l'indirizzo dell'ultima richiesta. Safari può mostrare l'indirizzo anche nel messaggio “impossibile aprire”.",
|
|
50
|
+
"home-connect.s_gateway.__home-connect-guide-phone.label": "Telefono o tablet: l'indirizzo che ha fallito spesso resta nella barra degli indirizzi; tienilo premuto per copiarlo. Se non c'è, ripeti l'accesso da un computer.",
|
|
51
|
+
"home-connect.s_gateway.__home-connect-guide-paste.label": "4. Incolla l'indirizzo intero (o solo il codice dopo “code=”) nella casella che compare sotto il pulsante. L'accesso si completa da solo; il codice vale circa dieci minuti."
|
|
37
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-bosch",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
4
4
|
"description": "Bosch smart-home device-provider addons for CamStack — SHC, Home Connect, and HomeCom cloud integrations (scaffold)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
}
|
|
133
133
|
],
|
|
134
134
|
"requires": {
|
|
135
|
-
"server": ">=1.2.
|
|
135
|
+
"server": ">=1.2.819"
|
|
136
136
|
}
|
|
137
137
|
},
|
|
138
138
|
"files": [
|