@ledgerhq/live-network 2.6.8 → 2.7.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ledgerhq/live-network
2
2
 
3
+ ## 2.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#19870](https://github.com/LedgerHQ/ledger-live/pull/19870) [`e7caf31`](https://github.com/LedgerHQ/ledger-live/commit/e7caf310efbbf82aa777a7e86ceafe60f11e7193) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Decouple from `@ledgerhq/live-env` via local state singleton. Network configuration (timeouts, log flags, client version) is now managed via `setNetworkState()` and defaults to the previous env var values. Consumers in the monorepo call `bridgeEnvToNetworkState()` from `@ledgerhq/live-common/network/setup` at boot. External consumers get sensible defaults with no setup required.
8
+
9
+ ## 2.7.0-next.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#19870](https://github.com/LedgerHQ/ledger-live/pull/19870) [`e7caf31`](https://github.com/LedgerHQ/ledger-live/commit/e7caf310efbbf82aa777a7e86ceafe60f11e7193) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Decouple from `@ledgerhq/live-env` via local state singleton. Network configuration (timeouts, log flags, client version) is now managed via `setNetworkState()` and defaults to the previous env var values. Consumers in the monorepo call `bridgeEnvToNetworkState()` from `@ledgerhq/live-common/network/setup` at boot. External consumers get sensible defaults with no setup required.
14
+
3
15
  ## 2.6.8
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # live-network
2
2
 
3
+ > [!NOTE]
4
+ > **Status: STABLE** — Production-ready; API is considered stable.
5
+
3
6
  `@ledgerhq/live-network` is the shared network layer for Ledger Live. It wraps the underlying HTTP client with Ledger-specific logging, error normalisation, and request optimisation utilities so all services in the monorepo make network calls consistently.
4
7
 
5
8
  ## What it does
package/lib/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  import { newImplementation } from "./network";
2
+ export { setNetworkState } from "./network";
3
+ export { getNetworkState } from "./state";
4
+ export type { NetworkState } from "./network";
2
5
  export default newImplementation;
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,eAAe,iBAAiB,CAAC"}
package/lib/index.js CHANGED
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNetworkState = exports.setNetworkState = void 0;
3
4
  const network_1 = require("./network");
5
+ var network_2 = require("./network");
6
+ Object.defineProperty(exports, "setNetworkState", { enumerable: true, get: function () { return network_2.setNetworkState; } });
7
+ var state_1 = require("./state");
8
+ Object.defineProperty(exports, "getNetworkState", { enumerable: true, get: function () { return state_1.getNetworkState; } });
4
9
  exports.default = network_1.newImplementation;
5
10
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,uCAA8C;AAC9C,kBAAe,2BAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AACxB,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AAExB,kBAAe,2BAAiB,CAAC"}
package/lib/network.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type AxiosPromise, type AxiosResponse, type InternalAxiosRequestConfig, type AxiosError, type AxiosRequestConfig } from "axios";
2
+ import type { NetworkState } from "./state";
2
3
  type Metadata = {
3
4
  startTime: number;
4
5
  };
@@ -46,5 +47,7 @@ export declare const newImplementation: <T = unknown, U = unknown>(request: Live
46
47
  * @returns Axios response type
47
48
  */
48
49
  declare const implementation: <T = any>(arg: AxiosRequestConfig) => AxiosPromise<T>;
50
+ export declare function setNetworkState(partial: Partial<NetworkState>): void;
51
+ export type { NetworkState };
49
52
  export default implementation;
50
53
  //# sourceMappingURL=network.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,OAAO,CAAC;AAMf,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACtC,KAAK,0BAA0B,GAAG,0BAA0B,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,0BAA0B,KAClC,0BAaF,CAAC;AAEF,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjF,eAAO,MAAM,mBAAmB,GAAI,UAAU,qBAAqB,KAAG,qBAiBrE,CAAC;AAEF,KAAK,mBAAmB,GAAG,aAAa,GAAG;IACzC,MAAM,EAAE,0BAA0B,CAAC;CACpC,CAAC;AACF,KAAK,gBAAgB,GAAG,UAAU,GAAG;IACnC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,KAAG,gBAyC1D,CAAC;AAgEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAC9D,SAAS,kBAAkB,CAAC,CAAC,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CA6BhC,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,GAAG,GAAG,EAAE,KAAK,kBAAkB,KAAG,YAAY,CAAC,CAAC,CAwBxE,CAAC;AA4BF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACtC,KAAK,0BAA0B,GAAG,0BAA0B,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,0BAA0B,KAClC,0BAaF,CAAC;AAEF,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjF,eAAO,MAAM,mBAAmB,GAAI,UAAU,qBAAqB,KAAG,qBAiBrE,CAAC;AAEF,KAAK,mBAAmB,GAAG,aAAa,GAAG;IACzC,MAAM,EAAE,0BAA0B,CAAC;CACpC,CAAC;AACF,KAAK,gBAAgB,GAAG,UAAU,GAAG;IACnC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,KAAG,gBAyC1D,CAAC;AAmEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAC9D,SAAS,kBAAkB,CAAC,CAAC,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CA6BhC,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,GAAG,GAAG,EAAE,KAAK,kBAAkB,KAAG,YAAY,CAAC,CAAC,CAwBxE,CAAC;AAuBF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAUpE;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,eAAe,cAAc,CAAC"}
package/lib/network.js CHANGED
@@ -4,13 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.newImplementation = exports.errorInterceptor = exports.responseInterceptor = exports.requestInterceptor = void 0;
7
+ exports.setNetworkState = setNetworkState;
7
8
  const axios_1 = __importDefault(require("axios"));
8
9
  const errors_1 = require("@ledgerhq/errors");
9
- const live_env_1 = require("@ledgerhq/live-env");
10
+ const state_1 = require("./state");
10
11
  const live_promise_1 = require("@ledgerhq/live-promise");
11
12
  const logs_1 = require("@ledgerhq/logs");
12
13
  const requestInterceptor = (request) => {
13
- if (!(0, live_env_1.getEnv)("ENABLE_NETWORK_LOGS")) {
14
+ if (!(0, state_1.getNetworkState)().enableNetworkLogs) {
14
15
  return request;
15
16
  }
16
17
  const { baseURL, url, method = "", data } = request;
@@ -22,7 +23,7 @@ const requestInterceptor = (request) => {
22
23
  };
23
24
  exports.requestInterceptor = requestInterceptor;
24
25
  const responseInterceptor = (response) => {
25
- if (!(0, live_env_1.getEnv)("ENABLE_NETWORK_LOGS")) {
26
+ if (!(0, state_1.getNetworkState)().enableNetworkLogs) {
26
27
  return response;
27
28
  }
28
29
  const { baseURL, url, method, metadata } = response.config;
@@ -61,7 +62,7 @@ const errorInterceptor = (error) => {
61
62
  else {
62
63
  errorToThrow = makeError(`API HTTP ${status} ${url}`, status, url, method);
63
64
  }
64
- (0, logs_1.log)("network-error", `${status} ${method} ${baseURL || ""}${url} (${duration}): ${errorToThrow.message}`, (0, live_env_1.getEnv)("DEBUG_HTTP_RESPONSE") ? { data: data } : {});
65
+ (0, logs_1.log)("network-error", `${status} ${method} ${baseURL || ""}${url} (${duration}): ${errorToThrow.message}`, (0, state_1.getNetworkState)().debugHttpResponse ? { data: data } : {});
65
66
  throw errorToThrow;
66
67
  }
67
68
  else if (error.request) {
@@ -74,10 +75,12 @@ exports.errorInterceptor = errorInterceptor;
74
75
  axios_1.default.interceptors.request.use(exports.requestInterceptor);
75
76
  axios_1.default.interceptors.response.use(exports.responseInterceptor, exports.errorInterceptor);
76
77
  /**
77
- * We only allow HTTPS agent on platforms other than LLM because
78
- * https library is not compatible with react native
78
+ * Only enable HTTPS keepAlive on Node.js (excludes React Native / browser) and
79
+ * for non-LLM builds (llm- prefix = Ledger Live Mobile client version).
79
80
  */
80
- const NETWORK_USE_HTTPS_KEEP_ALIVE = !(0, live_env_1.getEnv)("LEDGER_CLIENT_VERSION")?.startsWith("llm-");
81
+ const NETWORK_USE_HTTPS_KEEP_ALIVE = typeof process !== "undefined" &&
82
+ process.release?.name === "node" &&
83
+ !(0, state_1.getNetworkState)().ledgerClientVersion?.startsWith("llm-");
81
84
  if (NETWORK_USE_HTTPS_KEEP_ALIVE) {
82
85
  // the keepAlive is necessary when we make a lot of request in in parallel, especially for bitcoin sync. Otherwise, it may raise "connect ETIMEDOUT" error
83
86
  // this should only be needed in Windows as UNIX systems reuse TCP packets by default
@@ -141,10 +144,10 @@ const newImplementation = async (request) => {
141
144
  }
142
145
  if (request.method === "GET") {
143
146
  if (!("timeout" in request)) {
144
- request.timeout = (0, live_env_1.getEnv)("GET_CALLS_TIMEOUT");
147
+ request.timeout = (0, state_1.getNetworkState)().getCallsTimeout;
145
148
  }
146
149
  response = await (0, live_promise_1.retry)(() => (0, axios_1.default)(request), {
147
- maxRetry: (0, live_env_1.getEnv)("GET_CALLS_RETRY"),
150
+ maxRetry: (0, state_1.getNetworkState)().getCallsRetry,
148
151
  retryCondition: error => {
149
152
  if (error && error.status) {
150
153
  // not all status codes are retryable
@@ -171,10 +174,10 @@ const implementation = (arg) => {
171
174
  let promise;
172
175
  if (arg.method === "GET") {
173
176
  if (!("timeout" in arg)) {
174
- arg.timeout = (0, live_env_1.getEnv)("GET_CALLS_TIMEOUT");
177
+ arg.timeout = (0, state_1.getNetworkState)().getCallsTimeout;
175
178
  }
176
179
  promise = (0, live_promise_1.retry)(() => (0, axios_1.default)(arg), {
177
- maxRetry: (0, live_env_1.getEnv)("GET_CALLS_RETRY"),
180
+ maxRetry: (0, state_1.getNetworkState)().getCallsRetry,
178
181
  retryCondition: error => {
179
182
  if (error && error.status) {
180
183
  // A 422 shouldn't be retried without change as explained in this documentation
@@ -208,11 +211,21 @@ function setAxiosLedgerClientVersionHeader(value) {
208
211
  }
209
212
  }
210
213
  }
211
- setAxiosLedgerClientVersionHeader((0, live_env_1.getEnv)("LEDGER_CLIENT_VERSION"));
212
- live_env_1.changes.subscribe(e => {
213
- if (e.name === "LEDGER_CLIENT_VERSION") {
214
- setAxiosLedgerClientVersionHeader(e.value);
214
+ setAxiosLedgerClientVersionHeader((0, state_1.getNetworkState)().ledgerClientVersion);
215
+ function setNetworkState(partial) {
216
+ const state = (0, state_1.getNetworkState)();
217
+ if (partial.enableNetworkLogs !== undefined)
218
+ state.enableNetworkLogs = partial.enableNetworkLogs;
219
+ if (partial.debugHttpResponse !== undefined)
220
+ state.debugHttpResponse = partial.debugHttpResponse;
221
+ if (partial.ledgerClientVersion !== undefined) {
222
+ state.ledgerClientVersion = partial.ledgerClientVersion;
223
+ setAxiosLedgerClientVersionHeader(partial.ledgerClientVersion);
215
224
  }
216
- });
225
+ if (partial.getCallsTimeout !== undefined)
226
+ state.getCallsTimeout = partial.getCallsTimeout;
227
+ if (partial.getCallsRetry !== undefined)
228
+ state.getCallsRetry = partial.getCallsRetry;
229
+ }
217
230
  exports.default = implementation;
218
231
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
package/lib/state.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ type NetworkState = {
2
+ enableNetworkLogs: boolean;
3
+ debugHttpResponse: boolean;
4
+ ledgerClientVersion: string;
5
+ getCallsTimeout: number;
6
+ getCallsRetry: number;
7
+ };
8
+ declare global {
9
+ interface GlobalThis {
10
+ __ledgerLiveNetworkState?: NetworkState;
11
+ }
12
+ }
13
+ export declare function getNetworkState(): Readonly<NetworkState>;
14
+ export type { NetworkState };
15
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB,wBAAwB,CAAC,EAAE,YAAY,CAAC;KACzC;CACF;AAUD,wBAAgB,eAAe,IAAI,QAAQ,CAAC,YAAY,CAAC,CAGxD;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
package/lib/state.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNetworkState = getNetworkState;
4
+ const defaults = {
5
+ enableNetworkLogs: false,
6
+ debugHttpResponse: false,
7
+ ledgerClientVersion: "",
8
+ getCallsTimeout: 60 * 1000,
9
+ getCallsRetry: 2,
10
+ };
11
+ function getNetworkState() {
12
+ globalThis.__ledgerLiveNetworkState ??= { ...defaults };
13
+ return globalThis.__ledgerLiveNetworkState;
14
+ }
15
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":";;AAsBA,0CAGC;AAXD,MAAM,QAAQ,GAAiB;IAC7B,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,mBAAmB,EAAE,EAAE;IACvB,eAAe,EAAE,EAAE,GAAG,IAAI;IAC1B,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF,SAAgB,eAAe;IAC7B,UAAU,CAAC,wBAAwB,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IACxD,OAAO,UAAU,CAAC,wBAAwB,CAAC;AAC7C,CAAC"}
package/lib-es/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  import { newImplementation } from "./network";
2
+ export { setNetworkState } from "./network";
3
+ export { getNetworkState } from "./state";
4
+ export type { NetworkState } from "./network";
2
5
  export default newImplementation;
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,eAAe,iBAAiB,CAAC"}
package/lib-es/index.js CHANGED
@@ -1,3 +1,5 @@
1
1
  import { newImplementation } from "./network";
2
+ export { setNetworkState } from "./network";
3
+ export { getNetworkState } from "./state";
2
4
  export default newImplementation;
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAe,iBAAiB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type AxiosPromise, type AxiosResponse, type InternalAxiosRequestConfig, type AxiosError, type AxiosRequestConfig } from "axios";
2
+ import type { NetworkState } from "./state";
2
3
  type Metadata = {
3
4
  startTime: number;
4
5
  };
@@ -46,5 +47,7 @@ export declare const newImplementation: <T = unknown, U = unknown>(request: Live
46
47
  * @returns Axios response type
47
48
  */
48
49
  declare const implementation: <T = any>(arg: AxiosRequestConfig) => AxiosPromise<T>;
50
+ export declare function setNetworkState(partial: Partial<NetworkState>): void;
51
+ export type { NetworkState };
49
52
  export default implementation;
50
53
  //# sourceMappingURL=network.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,OAAO,CAAC;AAMf,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACtC,KAAK,0BAA0B,GAAG,0BAA0B,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,0BAA0B,KAClC,0BAaF,CAAC;AAEF,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjF,eAAO,MAAM,mBAAmB,GAAI,UAAU,qBAAqB,KAAG,qBAiBrE,CAAC;AAEF,KAAK,mBAAmB,GAAG,aAAa,GAAG;IACzC,MAAM,EAAE,0BAA0B,CAAC;CACpC,CAAC;AACF,KAAK,gBAAgB,GAAG,UAAU,GAAG;IACnC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,KAAG,gBAyC1D,CAAC;AAgEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAC9D,SAAS,kBAAkB,CAAC,CAAC,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CA6BhC,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,GAAG,GAAG,EAAE,KAAK,kBAAkB,KAAG,YAAY,CAAC,CAAC,CAwBxE,CAAC;AA4BF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACtC,KAAK,0BAA0B,GAAG,0BAA0B,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,0BAA0B,KAClC,0BAaF,CAAC;AAEF,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjF,eAAO,MAAM,mBAAmB,GAAI,UAAU,qBAAqB,KAAG,qBAiBrE,CAAC;AAEF,KAAK,mBAAmB,GAAG,aAAa,GAAG;IACzC,MAAM,EAAE,0BAA0B,CAAC;CACpC,CAAC;AACF,KAAK,gBAAgB,GAAG,UAAU,GAAG;IACnC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,KAAG,gBAyC1D,CAAC;AAmEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAC9D,SAAS,kBAAkB,CAAC,CAAC,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CA6BhC,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,GAAG,GAAG,EAAE,KAAK,kBAAkB,KAAG,YAAY,CAAC,CAAC,CAwBxE,CAAC;AAuBF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAUpE;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,eAAe,cAAc,CAAC"}
package/lib-es/network.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import axios from "axios";
2
2
  import { LedgerAPI4xx, LedgerAPI5xx, NetworkDown } from "@ledgerhq/errors";
3
- import { changes, getEnv } from "@ledgerhq/live-env";
3
+ import { getNetworkState } from "./state";
4
4
  import { retry } from "@ledgerhq/live-promise";
5
5
  import { log } from "@ledgerhq/logs";
6
6
  export const requestInterceptor = (request) => {
7
- if (!getEnv("ENABLE_NETWORK_LOGS")) {
7
+ if (!getNetworkState().enableNetworkLogs) {
8
8
  return request;
9
9
  }
10
10
  const { baseURL, url, method = "", data } = request;
@@ -15,7 +15,7 @@ export const requestInterceptor = (request) => {
15
15
  return request;
16
16
  };
17
17
  export const responseInterceptor = (response) => {
18
- if (!getEnv("ENABLE_NETWORK_LOGS")) {
18
+ if (!getNetworkState().enableNetworkLogs) {
19
19
  return response;
20
20
  }
21
21
  const { baseURL, url, method, metadata } = response.config;
@@ -53,7 +53,7 @@ export const errorInterceptor = (error) => {
53
53
  else {
54
54
  errorToThrow = makeError(`API HTTP ${status} ${url}`, status, url, method);
55
55
  }
56
- log("network-error", `${status} ${method} ${baseURL || ""}${url} (${duration}): ${errorToThrow.message}`, getEnv("DEBUG_HTTP_RESPONSE") ? { data: data } : {});
56
+ log("network-error", `${status} ${method} ${baseURL || ""}${url} (${duration}): ${errorToThrow.message}`, getNetworkState().debugHttpResponse ? { data: data } : {});
57
57
  throw errorToThrow;
58
58
  }
59
59
  else if (error.request) {
@@ -65,10 +65,12 @@ export const errorInterceptor = (error) => {
65
65
  axios.interceptors.request.use(requestInterceptor);
66
66
  axios.interceptors.response.use(responseInterceptor, errorInterceptor);
67
67
  /**
68
- * We only allow HTTPS agent on platforms other than LLM because
69
- * https library is not compatible with react native
68
+ * Only enable HTTPS keepAlive on Node.js (excludes React Native / browser) and
69
+ * for non-LLM builds (llm- prefix = Ledger Live Mobile client version).
70
70
  */
71
- const NETWORK_USE_HTTPS_KEEP_ALIVE = !getEnv("LEDGER_CLIENT_VERSION")?.startsWith("llm-");
71
+ const NETWORK_USE_HTTPS_KEEP_ALIVE = typeof process !== "undefined" &&
72
+ process.release?.name === "node" &&
73
+ !getNetworkState().ledgerClientVersion?.startsWith("llm-");
72
74
  if (NETWORK_USE_HTTPS_KEEP_ALIVE) {
73
75
  // the keepAlive is necessary when we make a lot of request in in parallel, especially for bitcoin sync. Otherwise, it may raise "connect ETIMEDOUT" error
74
76
  // this should only be needed in Windows as UNIX systems reuse TCP packets by default
@@ -132,10 +134,10 @@ export const newImplementation = async (request) => {
132
134
  }
133
135
  if (request.method === "GET") {
134
136
  if (!("timeout" in request)) {
135
- request.timeout = getEnv("GET_CALLS_TIMEOUT");
137
+ request.timeout = getNetworkState().getCallsTimeout;
136
138
  }
137
139
  response = await retry(() => axios(request), {
138
- maxRetry: getEnv("GET_CALLS_RETRY"),
140
+ maxRetry: getNetworkState().getCallsRetry,
139
141
  retryCondition: error => {
140
142
  if (error && error.status) {
141
143
  // not all status codes are retryable
@@ -161,10 +163,10 @@ const implementation = (arg) => {
161
163
  let promise;
162
164
  if (arg.method === "GET") {
163
165
  if (!("timeout" in arg)) {
164
- arg.timeout = getEnv("GET_CALLS_TIMEOUT");
166
+ arg.timeout = getNetworkState().getCallsTimeout;
165
167
  }
166
168
  promise = retry(() => axios(arg), {
167
- maxRetry: getEnv("GET_CALLS_RETRY"),
169
+ maxRetry: getNetworkState().getCallsRetry,
168
170
  retryCondition: error => {
169
171
  if (error && error.status) {
170
172
  // A 422 shouldn't be retried without change as explained in this documentation
@@ -198,11 +200,21 @@ function setAxiosLedgerClientVersionHeader(value) {
198
200
  }
199
201
  }
200
202
  }
201
- setAxiosLedgerClientVersionHeader(getEnv("LEDGER_CLIENT_VERSION"));
202
- changes.subscribe(e => {
203
- if (e.name === "LEDGER_CLIENT_VERSION") {
204
- setAxiosLedgerClientVersionHeader(e.value);
203
+ setAxiosLedgerClientVersionHeader(getNetworkState().ledgerClientVersion);
204
+ export function setNetworkState(partial) {
205
+ const state = getNetworkState();
206
+ if (partial.enableNetworkLogs !== undefined)
207
+ state.enableNetworkLogs = partial.enableNetworkLogs;
208
+ if (partial.debugHttpResponse !== undefined)
209
+ state.debugHttpResponse = partial.debugHttpResponse;
210
+ if (partial.ledgerClientVersion !== undefined) {
211
+ state.ledgerClientVersion = partial.ledgerClientVersion;
212
+ setAxiosLedgerClientVersionHeader(partial.ledgerClientVersion);
205
213
  }
206
- });
214
+ if (partial.getCallsTimeout !== undefined)
215
+ state.getCallsTimeout = partial.getCallsTimeout;
216
+ if (partial.getCallsRetry !== undefined)
217
+ state.getCallsRetry = partial.getCallsRetry;
218
+ }
207
219
  export default implementation;
208
220
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ type NetworkState = {
2
+ enableNetworkLogs: boolean;
3
+ debugHttpResponse: boolean;
4
+ ledgerClientVersion: string;
5
+ getCallsTimeout: number;
6
+ getCallsRetry: number;
7
+ };
8
+ declare global {
9
+ interface GlobalThis {
10
+ __ledgerLiveNetworkState?: NetworkState;
11
+ }
12
+ }
13
+ export declare function getNetworkState(): Readonly<NetworkState>;
14
+ export type { NetworkState };
15
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB,wBAAwB,CAAC,EAAE,YAAY,CAAC;KACzC;CACF;AAUD,wBAAgB,eAAe,IAAI,QAAQ,CAAC,YAAY,CAAC,CAGxD;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ const defaults = {
2
+ enableNetworkLogs: false,
3
+ debugHttpResponse: false,
4
+ ledgerClientVersion: "",
5
+ getCallsTimeout: 60 * 1000,
6
+ getCallsRetry: 2,
7
+ };
8
+ export function getNetworkState() {
9
+ globalThis.__ledgerLiveNetworkState ??= { ...defaults };
10
+ return globalThis.__ledgerLiveNetworkState;
11
+ }
12
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAcA,MAAM,QAAQ,GAAiB;IAC7B,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,mBAAmB,EAAE,EAAE;IACvB,eAAe,EAAE,EAAE,GAAG,IAAI;IAC1B,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,UAAU,CAAC,wBAAwB,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IACxD,OAAO,UAAU,CAAC,wBAAwB,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/live-network",
3
- "version": "2.6.8",
3
+ "version": "2.7.0",
4
4
  "description": "Ledger Live network and cache utilities",
5
5
  "keywords": [
6
6
  "Ledger"
@@ -67,17 +67,19 @@
67
67
  },
68
68
  "license": "Apache-2.0",
69
69
  "dependencies": {
70
- "axios": "1.13.5",
71
70
  "lru-cache": "^7.14.1",
72
- "@ledgerhq/live-env": "^2.42.0",
73
- "@ledgerhq/live-promise": "^0.3.0",
74
71
  "@ledgerhq/errors": "^6.37.0",
72
+ "@ledgerhq/live-promise": "^0.3.0",
75
73
  "@ledgerhq/logs": "^6.17.0"
76
74
  },
75
+ "peerDependencies": {
76
+ "axios": "1.13.5"
77
+ },
77
78
  "devDependencies": {
78
79
  "@types/invariant": "^2.2.35",
79
80
  "@types/jest": "30.0.0",
80
81
  "@types/node": "24.12.0",
82
+ "axios": "1.13.5",
81
83
  "jest": "30.2.0",
82
84
  "@swc/jest": "0.2.39",
83
85
  "@swc/core": "1.15.11"
package/src/index.ts CHANGED
@@ -1,2 +1,5 @@
1
1
  import { newImplementation } from "./network";
2
+ export { setNetworkState } from "./network";
3
+ export { getNetworkState } from "./state";
4
+ export type { NetworkState } from "./network";
2
5
  export default newImplementation;
@@ -1,6 +1,6 @@
1
1
  import axios, { AxiosHeaders } from "axios";
2
- import { getEnv, setEnv } from "@ledgerhq/live-env";
3
- import network, { requestInterceptor, responseInterceptor } from "./network";
2
+ import { getNetworkState } from "./state";
3
+ import network, { requestInterceptor, responseInterceptor, setNetworkState } from "./network";
4
4
  import * as logs from "@ledgerhq/logs";
5
5
 
6
6
  jest.mock("axios");
@@ -8,22 +8,21 @@ jest.mock("axios");
8
8
  const mockedAxios = jest.mocked(axios);
9
9
 
10
10
  describe("network", () => {
11
- const DEFAULT_ENABLE_NETWORK_LOGS = getEnv("ENABLE_NETWORK_LOGS");
12
- const DEFAULT_GET_CALLS_RETRY = getEnv("GET_CALLS_RETRY");
13
- const DEFAULT_LEDGER_CLIENT_VERSION = getEnv("LEDGER_CLIENT_VERSION");
11
+ const DEFAULT_STATE = {
12
+ enableNetworkLogs: getNetworkState().enableNetworkLogs,
13
+ debugHttpResponse: getNetworkState().debugHttpResponse,
14
+ ledgerClientVersion: getNetworkState().ledgerClientVersion,
15
+ getCallsTimeout: getNetworkState().getCallsTimeout,
16
+ getCallsRetry: getNetworkState().getCallsRetry,
17
+ };
14
18
 
15
19
  afterEach(() => {
16
- // restore the spy created with spyOn
17
- jest.restoreAllMocks();
18
20
  jest.clearAllMocks();
19
-
20
- // Restore DEFAULT_ENABLE_NETWORK_LOGS
21
- setEnv("ENABLE_NETWORK_LOGS", DEFAULT_ENABLE_NETWORK_LOGS);
22
- setEnv("LEDGER_CLIENT_VERSION", DEFAULT_LEDGER_CLIENT_VERSION);
21
+ setNetworkState(DEFAULT_STATE);
23
22
  });
24
23
 
25
24
  describe("requestInterceptor", () => {
26
- test("should return provided request when ENABLE_NETWORK_LOGS is false", () => {
25
+ test("should return provided request unchanged when network logs are disabled", () => {
27
26
  const request = {
28
27
  baseURL: "baseURL",
29
28
  url: "url",
@@ -34,8 +33,8 @@ describe("network", () => {
34
33
  expect(req).toEqual(request);
35
34
  });
36
35
 
37
- test("should return provided request with metadata when ENABLE_NETWORK_LOGS is true", () => {
38
- setEnv("ENABLE_NETWORK_LOGS", true);
36
+ test("should attach request metadata when network logs are enabled", () => {
37
+ setNetworkState({ enableNetworkLogs: true });
39
38
 
40
39
  const request = {
41
40
  baseURL: "baseURL",
@@ -50,10 +49,10 @@ describe("network", () => {
50
49
  });
51
50
  });
52
51
 
53
- test("should call log when ENABLE_NETWORK_LOGS is true", () => {
52
+ test("should call log when network logs are enabled", () => {
54
53
  const spy = jest.spyOn(logs, "log");
55
54
 
56
- setEnv("ENABLE_NETWORK_LOGS", true);
55
+ setNetworkState({ enableNetworkLogs: true });
57
56
 
58
57
  const request = {
59
58
  baseURL: "baseURL",
@@ -68,7 +67,7 @@ describe("network", () => {
68
67
  });
69
68
 
70
69
  describe("responseInterceptor", () => {
71
- test("should return provided response when ENABLE_NETWORK_LOGS is false", () => {
70
+ test("should return provided response unchanged when network logs are disabled", () => {
72
71
  const response = {
73
72
  config: {
74
73
  baseURL: "baseURL",
@@ -85,8 +84,8 @@ describe("network", () => {
85
84
  expect(res).toEqual(response);
86
85
  });
87
86
 
88
- test("should return provided response when ENABLE_NETWORK_LOGS is true", () => {
89
- setEnv("ENABLE_NETWORK_LOGS", true);
87
+ test("should return provided response when network logs are enabled", () => {
88
+ setNetworkState({ enableNetworkLogs: true });
90
89
 
91
90
  const response = {
92
91
  config: {
@@ -104,10 +103,10 @@ describe("network", () => {
104
103
  expect(res).toEqual(response);
105
104
  });
106
105
 
107
- test("should call log when ENABLE_NETWORK_LOGS is true", () => {
106
+ test("should call log when network logs are enabled", () => {
108
107
  const spy = jest.spyOn(logs, "log");
109
108
 
110
- setEnv("ENABLE_NETWORK_LOGS", true);
109
+ setNetworkState({ enableNetworkLogs: true });
111
110
 
112
111
  const response = {
113
112
  config: {
@@ -148,7 +147,7 @@ describe("network", () => {
148
147
  });
149
148
  // eslint-disable-next-line no-empty
150
149
  } catch {}
151
- expect(mockedAxios).toHaveBeenCalledTimes(DEFAULT_GET_CALLS_RETRY + 1);
150
+ expect(mockedAxios).toHaveBeenCalledTimes(DEFAULT_STATE.getCallsRetry + 1);
152
151
  });
153
152
 
154
153
  test("should not retry request when response status is 422", async () => {
@@ -178,15 +177,15 @@ describe("network", () => {
178
177
 
179
178
  describe("ledger client version headers", () => {
180
179
  test("should set ledger client version as axios client headers", () => {
181
- setEnv("LEDGER_CLIENT_VERSION", "wallet-cli/0.1.1");
180
+ setNetworkState({ ledgerClientVersion: "wallet-cli/0.1.1" });
182
181
 
183
182
  expect(axios.defaults.headers.common["X-Ledger-Client-Version"]).toBe("wallet-cli/0.1.1");
184
183
  expect(axios.defaults.headers.common["User-Agent"]).toBe("wallet-cli/0.1.1");
185
184
  });
186
185
 
187
- test("should clear ledger client version headers when env is empty", () => {
188
- setEnv("LEDGER_CLIENT_VERSION", "wallet-cli/0.1.1");
189
- setEnv("LEDGER_CLIENT_VERSION", "");
186
+ test("should clear ledger client version headers when ledgerClientVersion is empty", () => {
187
+ setNetworkState({ ledgerClientVersion: "wallet-cli/0.1.1" });
188
+ setNetworkState({ ledgerClientVersion: "" });
190
189
 
191
190
  expect(axios.defaults.headers.common["X-Ledger-Client-Version"]).toBeUndefined();
192
191
  expect(axios.defaults.headers.common["User-Agent"]).toBeUndefined();
package/src/network.ts CHANGED
@@ -6,7 +6,8 @@ import axios, {
6
6
  type AxiosRequestConfig,
7
7
  } from "axios";
8
8
  import { LedgerAPI4xx, LedgerAPI5xx, NetworkDown } from "@ledgerhq/errors";
9
- import { changes, getEnv } from "@ledgerhq/live-env";
9
+ import { getNetworkState } from "./state";
10
+ import type { NetworkState } from "./state";
10
11
  import { retry } from "@ledgerhq/live-promise";
11
12
  import { log } from "@ledgerhq/logs";
12
13
 
@@ -16,7 +17,7 @@ type ExtendedAxiosRequestConfig = InternalAxiosRequestConfig & { metadata?: Meta
16
17
  export const requestInterceptor = (
17
18
  request: ExtendedAxiosRequestConfig,
18
19
  ): ExtendedAxiosRequestConfig => {
19
- if (!getEnv("ENABLE_NETWORK_LOGS")) {
20
+ if (!getNetworkState().enableNetworkLogs) {
20
21
  return request;
21
22
  }
22
23
 
@@ -33,7 +34,7 @@ export const requestInterceptor = (
33
34
  type ExtendedAxiosResponse = AxiosResponse & { config: { metadata?: Metadata } };
34
35
 
35
36
  export const responseInterceptor = (response: ExtendedAxiosResponse): ExtendedAxiosResponse => {
36
- if (!getEnv("ENABLE_NETWORK_LOGS")) {
37
+ if (!getNetworkState().enableNetworkLogs) {
37
38
  return response;
38
39
  }
39
40
 
@@ -91,7 +92,7 @@ export const errorInterceptor = (error: InterceptedError): InterceptedError => {
91
92
  log(
92
93
  "network-error",
93
94
  `${status} ${method} ${baseURL || ""}${url} (${duration}): ${errorToThrow.message}`,
94
- getEnv("DEBUG_HTTP_RESPONSE") ? { data: data } : {},
95
+ getNetworkState().debugHttpResponse ? { data: data } : {},
95
96
  );
96
97
  throw errorToThrow;
97
98
  } else if (error.request) {
@@ -105,10 +106,13 @@ axios.interceptors.request.use(requestInterceptor);
105
106
  axios.interceptors.response.use(responseInterceptor, errorInterceptor);
106
107
 
107
108
  /**
108
- * We only allow HTTPS agent on platforms other than LLM because
109
- * https library is not compatible with react native
109
+ * Only enable HTTPS keepAlive on Node.js (excludes React Native / browser) and
110
+ * for non-LLM builds (llm- prefix = Ledger Live Mobile client version).
110
111
  */
111
- const NETWORK_USE_HTTPS_KEEP_ALIVE = !getEnv("LEDGER_CLIENT_VERSION")?.startsWith("llm-");
112
+ const NETWORK_USE_HTTPS_KEEP_ALIVE =
113
+ typeof process !== "undefined" &&
114
+ process.release?.name === "node" &&
115
+ !getNetworkState().ledgerClientVersion?.startsWith("llm-");
112
116
  if (NETWORK_USE_HTTPS_KEEP_ALIVE) {
113
117
  // the keepAlive is necessary when we make a lot of request in in parallel, especially for bitcoin sync. Otherwise, it may raise "connect ETIMEDOUT" error
114
118
  // this should only be needed in Windows as UNIX systems reuse TCP packets by default
@@ -197,11 +201,11 @@ export const newImplementation = async <T = unknown, U = unknown>(
197
201
 
198
202
  if (request.method === "GET") {
199
203
  if (!("timeout" in request)) {
200
- request.timeout = getEnv("GET_CALLS_TIMEOUT");
204
+ request.timeout = getNetworkState().getCallsTimeout;
201
205
  }
202
206
 
203
207
  response = await retry(() => axios(request), {
204
- maxRetry: getEnv("GET_CALLS_RETRY"),
208
+ maxRetry: getNetworkState().getCallsRetry,
205
209
  retryCondition: error => {
206
210
  if (error && error.status) {
207
211
  // not all status codes are retryable
@@ -230,11 +234,11 @@ const implementation = <T = any>(arg: AxiosRequestConfig): AxiosPromise<T> => {
230
234
 
231
235
  if (arg.method === "GET") {
232
236
  if (!("timeout" in arg)) {
233
- arg.timeout = getEnv("GET_CALLS_TIMEOUT");
237
+ arg.timeout = getNetworkState().getCallsTimeout;
234
238
  }
235
239
 
236
240
  promise = retry(() => axios(arg), {
237
- maxRetry: getEnv("GET_CALLS_RETRY"),
241
+ maxRetry: getNetworkState().getCallsRetry,
238
242
  retryCondition: error => {
239
243
  if (error && error.status) {
240
244
  // A 422 shouldn't be retried without change as explained in this documentation
@@ -270,11 +274,20 @@ function setAxiosLedgerClientVersionHeader(value: string) {
270
274
  }
271
275
  }
272
276
  }
273
- setAxiosLedgerClientVersionHeader(getEnv("LEDGER_CLIENT_VERSION"));
274
- changes.subscribe(e => {
275
- if (e.name === "LEDGER_CLIENT_VERSION") {
276
- setAxiosLedgerClientVersionHeader(e.value);
277
+ setAxiosLedgerClientVersionHeader(getNetworkState().ledgerClientVersion);
278
+
279
+ export function setNetworkState(partial: Partial<NetworkState>): void {
280
+ const state = getNetworkState() as NetworkState;
281
+ if (partial.enableNetworkLogs !== undefined) state.enableNetworkLogs = partial.enableNetworkLogs;
282
+ if (partial.debugHttpResponse !== undefined) state.debugHttpResponse = partial.debugHttpResponse;
283
+ if (partial.ledgerClientVersion !== undefined) {
284
+ state.ledgerClientVersion = partial.ledgerClientVersion;
285
+ setAxiosLedgerClientVersionHeader(partial.ledgerClientVersion);
277
286
  }
278
- });
287
+ if (partial.getCallsTimeout !== undefined) state.getCallsTimeout = partial.getCallsTimeout;
288
+ if (partial.getCallsRetry !== undefined) state.getCallsRetry = partial.getCallsRetry;
289
+ }
290
+
291
+ export type { NetworkState };
279
292
 
280
293
  export default implementation;
package/src/state.ts ADDED
@@ -0,0 +1,28 @@
1
+ type NetworkState = {
2
+ enableNetworkLogs: boolean;
3
+ debugHttpResponse: boolean;
4
+ ledgerClientVersion: string;
5
+ getCallsTimeout: number;
6
+ getCallsRetry: number;
7
+ };
8
+
9
+ declare global {
10
+ interface GlobalThis {
11
+ __ledgerLiveNetworkState?: NetworkState;
12
+ }
13
+ }
14
+
15
+ const defaults: NetworkState = {
16
+ enableNetworkLogs: false,
17
+ debugHttpResponse: false,
18
+ ledgerClientVersion: "",
19
+ getCallsTimeout: 60 * 1000,
20
+ getCallsRetry: 2,
21
+ };
22
+
23
+ export function getNetworkState(): Readonly<NetworkState> {
24
+ globalThis.__ledgerLiveNetworkState ??= { ...defaults };
25
+ return globalThis.__ledgerLiveNetworkState;
26
+ }
27
+
28
+ export type { NetworkState };