@camstack/addon-import-alexa 0.2.162 → 0.2.163

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 CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.163] - 2026-10-28
11
+
12
+ ### Changed
13
+
14
+ - The Amazon login proxy logs each step it takes (without secrets), and the start log names the region
15
+
10
16
  ## [0.2.162] - 2026-10-28
11
17
 
12
18
  ### Changed
package/dist/_stub.js CHANGED
@@ -10,7 +10,7 @@ import "./trash-2-BVrrPiKB.mjs";
10
10
  import { t as Fe } from "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-B3qxfxBT.mjs";
11
11
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react_mf_2_dom__loadShare__.js-CIPmAyPi.mjs";
12
12
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-Bct5qZia.mjs";
13
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BA8fy0_J.mjs";
13
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-DarhMhK_.mjs";
14
14
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-tXm1x5EZ.mjs";
15
15
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-BHqOw8oh.mjs";
16
16
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-BmoaT3cr.mjs";
@@ -1,4 +1,4 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BA8fy0_J.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-DarhMhK_.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_import_alexa_page
3
3
  var e = {
4
4
  "@camstack/sdk": {
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.343",
36
+ version: "1.2.344",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_import_alexa_page",
package/dist/addon.js CHANGED
@@ -132745,6 +132745,40 @@ var ALEXA_API_USER_AGENT_POSTFIX = `AlexaRemote/${{
132745
132745
  readmeFilename: "readme.md"
132746
132746
  }.version}`;
132747
132747
  //#endregion
132748
+ //#region src/alexa-proxy-trace.ts
132749
+ /**
132750
+ * Sanitised one-line trace of the alexa-cookie2 proxy's own log lines.
132751
+ *
132752
+ * alexa-cookie2 logs every step it takes (routing, upstream request, redirect),
132753
+ * but its lines also carry headers, cookies and query values. This keeps only
132754
+ * what diagnoses a failed login: the method, the path or upstream host, and the
132755
+ * redirect target — always WITHOUT a query string or fragment. Any line that is
132756
+ * not one of the known step lines yields `null` and is never traced.
132757
+ */
132758
+ var ROUTER_RE = /^Router: (\S+) \/ ([A-Z]+) \//;
132759
+ var PROXY_REQUEST_RE = /^Alexa-Cookie: Proxy-Request: ([A-Z]+) (\S+)$/;
132760
+ var PROXY_RESPONSE_RE = /^Alexa-Cookie: Proxy Response from Host: (\S+)$/;
132761
+ var REDIRECT_ORIGINAL_RE = /^Redirect: Original Location ----> (\S+)$/;
132762
+ var REDIRECT_FINAL_RE = /^Redirect: Final Location ----> (\S+)$/;
132763
+ /** Cut a URL or path at its query string or fragment. */
132764
+ function stripQuery(target) {
132765
+ const cut = target.search(/[?#]/);
132766
+ return cut === -1 ? target : target.slice(0, cut);
132767
+ }
132768
+ function sanitizeProxyTraceLine(line) {
132769
+ const router = ROUTER_RE.exec(line);
132770
+ if (router !== null) return `router ${router[2]} ${stripQuery(router[1] ?? "")}`;
132771
+ const request = PROXY_REQUEST_RE.exec(line);
132772
+ if (request !== null) return `proxy-request ${request[1]} ${stripQuery(request[2] ?? "")}`;
132773
+ const response = PROXY_RESPONSE_RE.exec(line);
132774
+ if (response !== null) return `proxy-response host=${response[1]}`;
132775
+ const original = REDIRECT_ORIGINAL_RE.exec(line);
132776
+ if (original !== null) return `redirect-original ${stripQuery(original[1] ?? "")}`;
132777
+ const final = REDIRECT_FINAL_RE.exec(line);
132778
+ if (final !== null) return `redirect-final ${stripQuery(final[1] ?? "")}`;
132779
+ return null;
132780
+ }
132781
+ //#endregion
132748
132782
  //#region src/alexa-proxy-login.ts
132749
132783
  /**
132750
132784
  * INTERACTIVE Amazon login via `alexa-remote2`'s built-in proxy auth mode, behind the
@@ -132855,6 +132889,11 @@ var AlexaProxyLoginSession = class {
132855
132889
  apiUserAgentPostfix: ALEXA_API_USER_AGENT_POSTFIX,
132856
132890
  logger: (...args) => {
132857
132891
  const line = args.map(String).join(" ");
132892
+ const trace = sanitizeProxyTraceLine(line);
132893
+ if (trace !== null) {
132894
+ this.#logger.info(`alexa proxy-login: ${trace}`, { meta: { sessionId: this.#opts.sessionId } });
132895
+ return;
132896
+ }
132858
132897
  if (SECRET_LINE_RE.test(line)) return;
132859
132898
  this.#logger.debug("alexa proxy-login", { meta: {
132860
132899
  sessionId: this.#opts.sessionId,
@@ -132916,7 +132955,10 @@ var AlexaProxyLoginSession = class {
132916
132955
  if (isProxyReadyError(err)) {
132917
132956
  if (this.#phase === "starting") {
132918
132957
  this.#phase = "awaiting-login";
132919
- this.#logger.info("alexa proxy-login: proxy ready — awaiting Amazon login", { meta: { sessionId: this.#opts.sessionId } });
132958
+ this.#logger.info("alexa proxy-login: proxy ready — awaiting Amazon login", { meta: {
132959
+ sessionId: this.#opts.sessionId,
132960
+ amazonDomain: this.#opts.amazonDomain
132961
+ } });
132920
132962
  }
132921
132963
  return;
132922
132964
  }
package/dist/addon.mjs CHANGED
@@ -132744,6 +132744,40 @@ var ALEXA_API_USER_AGENT_POSTFIX = `AlexaRemote/${{
132744
132744
  readmeFilename: "readme.md"
132745
132745
  }.version}`;
132746
132746
  //#endregion
132747
+ //#region src/alexa-proxy-trace.ts
132748
+ /**
132749
+ * Sanitised one-line trace of the alexa-cookie2 proxy's own log lines.
132750
+ *
132751
+ * alexa-cookie2 logs every step it takes (routing, upstream request, redirect),
132752
+ * but its lines also carry headers, cookies and query values. This keeps only
132753
+ * what diagnoses a failed login: the method, the path or upstream host, and the
132754
+ * redirect target — always WITHOUT a query string or fragment. Any line that is
132755
+ * not one of the known step lines yields `null` and is never traced.
132756
+ */
132757
+ var ROUTER_RE = /^Router: (\S+) \/ ([A-Z]+) \//;
132758
+ var PROXY_REQUEST_RE = /^Alexa-Cookie: Proxy-Request: ([A-Z]+) (\S+)$/;
132759
+ var PROXY_RESPONSE_RE = /^Alexa-Cookie: Proxy Response from Host: (\S+)$/;
132760
+ var REDIRECT_ORIGINAL_RE = /^Redirect: Original Location ----> (\S+)$/;
132761
+ var REDIRECT_FINAL_RE = /^Redirect: Final Location ----> (\S+)$/;
132762
+ /** Cut a URL or path at its query string or fragment. */
132763
+ function stripQuery(target) {
132764
+ const cut = target.search(/[?#]/);
132765
+ return cut === -1 ? target : target.slice(0, cut);
132766
+ }
132767
+ function sanitizeProxyTraceLine(line) {
132768
+ const router = ROUTER_RE.exec(line);
132769
+ if (router !== null) return `router ${router[2]} ${stripQuery(router[1] ?? "")}`;
132770
+ const request = PROXY_REQUEST_RE.exec(line);
132771
+ if (request !== null) return `proxy-request ${request[1]} ${stripQuery(request[2] ?? "")}`;
132772
+ const response = PROXY_RESPONSE_RE.exec(line);
132773
+ if (response !== null) return `proxy-response host=${response[1]}`;
132774
+ const original = REDIRECT_ORIGINAL_RE.exec(line);
132775
+ if (original !== null) return `redirect-original ${stripQuery(original[1] ?? "")}`;
132776
+ const final = REDIRECT_FINAL_RE.exec(line);
132777
+ if (final !== null) return `redirect-final ${stripQuery(final[1] ?? "")}`;
132778
+ return null;
132779
+ }
132780
+ //#endregion
132747
132781
  //#region src/alexa-proxy-login.ts
132748
132782
  /**
132749
132783
  * INTERACTIVE Amazon login via `alexa-remote2`'s built-in proxy auth mode, behind the
@@ -132854,6 +132888,11 @@ var AlexaProxyLoginSession = class {
132854
132888
  apiUserAgentPostfix: ALEXA_API_USER_AGENT_POSTFIX,
132855
132889
  logger: (...args) => {
132856
132890
  const line = args.map(String).join(" ");
132891
+ const trace = sanitizeProxyTraceLine(line);
132892
+ if (trace !== null) {
132893
+ this.#logger.info(`alexa proxy-login: ${trace}`, { meta: { sessionId: this.#opts.sessionId } });
132894
+ return;
132895
+ }
132857
132896
  if (SECRET_LINE_RE.test(line)) return;
132858
132897
  this.#logger.debug("alexa proxy-login", { meta: {
132859
132898
  sessionId: this.#opts.sessionId,
@@ -132915,7 +132954,10 @@ var AlexaProxyLoginSession = class {
132915
132954
  if (isProxyReadyError(err)) {
132916
132955
  if (this.#phase === "starting") {
132917
132956
  this.#phase = "awaiting-login";
132918
- this.#logger.info("alexa proxy-login: proxy ready — awaiting Amazon login", { meta: { sessionId: this.#opts.sessionId } });
132957
+ this.#logger.info("alexa proxy-login: proxy ready — awaiting Amazon login", { meta: {
132958
+ sessionId: this.#opts.sessionId,
132959
+ amazonDomain: this.#opts.amazonDomain
132960
+ } });
132919
132961
  }
132920
132962
  return;
132921
132963
  }
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.343",
84
+ version: "1.2.344",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BA8fy0_J.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-DarhMhK_.mjs";
2
2
  export { t as get, e as init };
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_import_alexa_page-Ck3EMdmv.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_import_alexa_page-CwP9H68T.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-import-alexa",
3
- "version": "0.2.162",
3
+ "version": "0.2.163",
4
4
  "description": "Alexa device-import provider for CamStack — imports the smart-home devices in a user's Alexa account via the unofficial alexa-remote2 cookie/token client (the inverse of the Alexa exporter)",
5
5
  "keywords": [
6
6
  "camstack",