@ledgerhq/live-env 4.0.1-nightly.20260924020607 → 4.1.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 +6 -340
- package/MIGRATION.md +148 -0
- package/README.md +3 -5
- package/lib/env.d.ts +15 -23
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +15 -23
- package/lib/env.js.map +1 -1
- package/lib/state.d.ts +5 -8
- package/lib/state.d.ts.map +1 -1
- package/lib/state.js +2 -2
- package/lib/state.js.map +1 -1
- package/lib-es/env.d.ts +15 -23
- package/lib-es/env.d.ts.map +1 -1
- package/lib-es/env.js +15 -23
- package/lib-es/env.js.map +1 -1
- package/lib-es/state.d.ts +5 -8
- package/lib-es/state.d.ts.map +1 -1
- package/lib-es/state.js +2 -2
- package/lib-es/state.js.map +1 -1
- package/package.json +51 -39
- package/src/env.ts +15 -23
- package/src/state.ts +5 -8
- package/LICENSE.txt +0 -21
- package/jest.config.js +0 -13
- package/tsconfig.build.json +0 -20
- package/tsconfig.json +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,345 +1,11 @@
|
|
|
1
1
|
# @ledgerhq/live-env
|
|
2
2
|
|
|
3
|
-
## 4.
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- [#22006](https://github.com/LedgerHQ/ledger-live/pull/22006) [`a62ad28`](https://github.com/LedgerHQ/ledger-live/commit/a62ad28e4900a887567fb61fb8f197af4fa5a23b) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Point the deprecation notices at `docs/configuration.md`, which is now the single guide for where a configuration value belongs and how to take one out of the env registry. `libs/env/MIGRATION.md` and `shared/env/MIGRATION.md` are removed — their content lives there, next to the app `.env` and build-secret mechanics it was already linking to. Comments and docs only.
|
|
8
|
-
|
|
9
|
-
## 4.0.0
|
|
10
|
-
|
|
11
|
-
### Major Changes
|
|
12
|
-
|
|
13
|
-
- [#21409](https://github.com/LedgerHQ/ledger-live/pull/21409) [`b9e15ac`](https://github.com/LedgerHQ/ledger-live/commit/b9e15ac78e2b89919c605511f333282610e57225) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Remove the `EnvTypes` registry
|
|
14
|
-
|
|
15
|
-
`injectDefinitions()` already moved every env-var default out of the framework, but `EnvTypes` stayed behind and kept the full list of env names and their types inside the library. It is gone, along with the `EnvName` / `EnvValue` exports and the typed `getEnv` / `setEnv` / `getEnvDefault` overloads built on it.
|
|
16
|
-
|
|
17
|
-
`getEnv(name)` and `getEnvDefault(name)` now return `any`, so existing call sites keep compiling. A consumer that wants typing declares the vars it reads and wraps the accessor:
|
|
18
|
-
|
|
19
|
-
```ts
|
|
20
|
-
import { getEnv as getEnvUnsafe } from "@ledgerhq/live-env";
|
|
21
|
-
|
|
22
|
-
type Envs = { MY_TIMEOUT: number; MY_API_URL: string };
|
|
23
|
-
|
|
24
|
-
export const getEnv = <K extends keyof Envs>(name: K): Envs[K] =>
|
|
25
|
-
getEnvUnsafe(name);
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Minor Changes
|
|
29
|
-
|
|
30
|
-
- [#21544](https://github.com/LedgerHQ/ledger-live/pull/21544) [`b7a8906`](https://github.com/LedgerHQ/ledger-live/commit/b7a89064587bbcd1f758f7b6205a616225ac2317) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Mark the whole public API deprecated and ship the migration guide. `getEnv`, `setEnv`, `setEnvUnsafe`, `getEnvDefault`, `getAllEnvs`, `injectDefinitions`, `changes`, the registry introspection helpers, the exported types and the `useEnv` hook now carry `@deprecated`. `libs/env/MIGRATION.md` documents the four exits every variable takes; `shared/env/MIGRATION.md` covers what that means inside ledger-live. No behaviour change.
|
|
31
|
-
|
|
32
|
-
## 4.0.0-next.0
|
|
33
|
-
|
|
34
|
-
### Major Changes
|
|
35
|
-
|
|
36
|
-
- [#21409](https://github.com/LedgerHQ/ledger-live/pull/21409) [`b9e15ac`](https://github.com/LedgerHQ/ledger-live/commit/b9e15ac78e2b89919c605511f333282610e57225) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Remove the `EnvTypes` registry
|
|
37
|
-
|
|
38
|
-
`injectDefinitions()` already moved every env-var default out of the framework, but `EnvTypes` stayed behind and kept the full list of env names and their types inside the library. It is gone, along with the `EnvName` / `EnvValue` exports and the typed `getEnv` / `setEnv` / `getEnvDefault` overloads built on it.
|
|
39
|
-
|
|
40
|
-
`getEnv(name)` and `getEnvDefault(name)` now return `any`, so existing call sites keep compiling. A consumer that wants typing declares the vars it reads and wraps the accessor:
|
|
41
|
-
|
|
42
|
-
```ts
|
|
43
|
-
import { getEnv as getEnvUnsafe } from "@ledgerhq/live-env";
|
|
44
|
-
|
|
45
|
-
type Envs = { MY_TIMEOUT: number; MY_API_URL: string };
|
|
46
|
-
|
|
47
|
-
export const getEnv = <K extends keyof Envs>(name: K): Envs[K] =>
|
|
48
|
-
getEnvUnsafe(name);
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Minor Changes
|
|
52
|
-
|
|
53
|
-
- [#21544](https://github.com/LedgerHQ/ledger-live/pull/21544) [`b7a8906`](https://github.com/LedgerHQ/ledger-live/commit/b7a89064587bbcd1f758f7b6205a616225ac2317) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Mark the whole public API deprecated and ship the migration guide. `getEnv`, `setEnv`, `setEnvUnsafe`, `getEnvDefault`, `getAllEnvs`, `injectDefinitions`, `changes`, the registry introspection helpers, the exported types and the `useEnv` hook now carry `@deprecated`. `libs/env/MIGRATION.md` documents the four exits every variable takes; `shared/env/MIGRATION.md` covers what that means inside ledger-live. No behaviour change.
|
|
54
|
-
|
|
55
|
-
## 3.2.0
|
|
56
|
-
|
|
57
|
-
### Minor Changes
|
|
58
|
-
|
|
59
|
-
- [#21124](https://github.com/LedgerHQ/ledger-live/pull/21124) [`e21305a`](https://github.com/LedgerHQ/ledger-live/commit/e21305abce18f0a9408bf6c0e2bb47d5c992e06a) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Make getEnv and getEnvDefault throw when the name is not in injected definitions
|
|
60
|
-
|
|
61
|
-
## 3.2.0-next.0
|
|
62
|
-
|
|
63
|
-
### Minor Changes
|
|
64
|
-
|
|
65
|
-
- [#21124](https://github.com/LedgerHQ/ledger-live/pull/21124) [`e21305a`](https://github.com/LedgerHQ/ledger-live/commit/e21305abce18f0a9408bf6c0e2bb47d5c992e06a) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Make getEnv and getEnvDefault throw when the name is not in injected definitions
|
|
66
|
-
|
|
67
|
-
## 3.1.0
|
|
68
|
-
|
|
69
|
-
### Minor Changes
|
|
70
|
-
|
|
71
|
-
- [#20998](https://github.com/LedgerHQ/ledger-live/pull/20998) [`8161bac`](https://github.com/LedgerHQ/ledger-live/commit/8161bac542474212dfefc8519e714da345b03f71) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - chore: move hedera envs directly to config
|
|
72
|
-
|
|
73
|
-
- [#20650](https://github.com/LedgerHQ/ledger-live/pull/20650) [`fbc8036`](https://github.com/LedgerHQ/ledger-live/commit/fbc8036d9bd4e1cc30eea4233f05e8b0498c0e5e) Thanks [@lysyi3m](https://github.com/lysyi3m)! - Add a gRPC-web transport to the Sui coin module
|
|
74
|
-
|
|
75
|
-
- `coin-sui` gains a third transport on `sui.rpc.v2` over gRPC-web, covering every capability from
|
|
76
|
-
checkpoints to device signing.
|
|
77
|
-
- New tri-state `suiTransport` feature flag (`json` | `grpc` | `graphql`), defaulting to `json`,
|
|
78
|
-
replaces the boolean `suiGraphqlTransport`, which is removed. An unrecognised value resolves to
|
|
79
|
-
`json`.
|
|
80
|
-
- New env vars `API_SUI_GRPC_PROXY` and `API_SUI_TESTNET_GRPC_PROXY`. `@mysten/sui` 2.9.0 → 2.23.1.
|
|
81
|
-
- Operation `blockHash` carries the real checkpoint digest on gRPC.
|
|
82
|
-
- Fix: account sync read a single page of history on GraphQL and gRPC, capping an account at its
|
|
83
|
-
newest 50 operations for good — sync resumes from the newest stored operation and never re-reads
|
|
84
|
-
what it skipped. Both arms now walk up to `TRANSACTIONS_LIMIT` (300), the depth JSON-RPC reached.
|
|
85
|
-
- Fix: a resumed sync on GraphQL and gRPC read backwards from the tip, so when more than
|
|
86
|
-
`TRANSACTIONS_LIMIT` transactions arrived between two syncs, the ones in the middle were skipped
|
|
87
|
-
and the next sync resumed above them — a permanent hole. Both arms now walk forward from the
|
|
88
|
-
cursor, as the JSON-RPC arm already did, leaving anything unread newer than the next resume point.
|
|
89
|
-
- Fix: an account holding no operations resumed from its stored `syncHash`, so a cleared cache came
|
|
90
|
-
back with only the transactions that arrived after it. Such an account now re-reads its history,
|
|
91
|
-
which is also how one truncated by the bug above recovers. Token operations count as history: they
|
|
92
|
-
live in the subaccounts, so a token-only account is no longer treated as empty.
|
|
93
|
-
- Fix: on gRPC, any failure to resolve a cursor's digest — including a transient network error — was
|
|
94
|
-
read as "unknown digest", which falls back to an unbounded page from the tip and made paging report
|
|
95
|
-
the end of history. Only a `NOT_FOUND` does that now; everything else propagates and is retried.
|
|
96
|
-
- Fix: reading history skipped transactions that shared a checkpoint with the resume point, in
|
|
97
|
-
account sync (`getOperations`) as well as paging (`getListOperations`).
|
|
98
|
-
- Fix: paging inferred "more to come" from how many operations survived client-side filtering, which
|
|
99
|
-
ended the walk early. GraphQL now reads `pageInfo`, gRPC the stream's `QueryEnd` reason. A page
|
|
100
|
-
whose transactions were all filtered out now resumes from the page's own boundary instead of
|
|
101
|
-
reporting the end of history.
|
|
102
|
-
- Fix: a gRPC history record with no timestamp became an operation dated 1970 that could not serve as
|
|
103
|
-
a pagination cursor. Those records are now dropped, as the GraphQL arm already did.
|
|
104
|
-
- Fix: ascending paging on GraphQL returned the newest slice of the range instead of walking forward
|
|
105
|
-
from the oldest.
|
|
106
|
-
- Fix: the Sui fetcher dropped `X-Ledger-Client-Version` and all gRPC-web headers when passed a
|
|
107
|
-
`Headers` instance.
|
|
108
|
-
- Fix: GraphQL resolved the latest checkpoint in two queries, so the second could answer null. It is
|
|
109
|
-
now one query.
|
|
110
|
-
- A checkpoint missing its `digest` or `timestamp` now raises on both GraphQL and gRPC, instead of
|
|
111
|
-
reporting a block with an empty hash and a 1970 timestamp.
|
|
112
|
-
- Known limitation: `getListOperations` resumes from a synthesised `timestamp:digest` cursor, so
|
|
113
|
-
within one checkpoint a sibling whose digest sorts earlier can be skipped, and a checkpoint holding
|
|
114
|
-
more than one page is stepped over rather than resumed inside. Account sync is unaffected: it
|
|
115
|
-
resumes from the server's own watermark cursor.
|
|
116
|
-
|
|
117
|
-
- [#20955](https://github.com/LedgerHQ/ledger-live/pull/20955) [`39a676d`](https://github.com/LedgerHQ/ledger-live/commit/39a676d2f861d04913264e61100205b4f6044cf9) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - fix: move hedera envs to config/constants
|
|
118
|
-
|
|
119
|
-
## 3.1.0-next.0
|
|
120
|
-
|
|
121
|
-
### Minor Changes
|
|
122
|
-
|
|
123
|
-
- [#20998](https://github.com/LedgerHQ/ledger-live/pull/20998) [`8161bac`](https://github.com/LedgerHQ/ledger-live/commit/8161bac542474212dfefc8519e714da345b03f71) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - chore: move hedera envs directly to config
|
|
124
|
-
|
|
125
|
-
- [#20650](https://github.com/LedgerHQ/ledger-live/pull/20650) [`fbc8036`](https://github.com/LedgerHQ/ledger-live/commit/fbc8036d9bd4e1cc30eea4233f05e8b0498c0e5e) Thanks [@lysyi3m](https://github.com/lysyi3m)! - Add a gRPC-web transport to the Sui coin module
|
|
126
|
-
|
|
127
|
-
- `coin-sui` gains a third transport on `sui.rpc.v2` over gRPC-web, covering every capability from
|
|
128
|
-
checkpoints to device signing.
|
|
129
|
-
- New tri-state `suiTransport` feature flag (`json` | `grpc` | `graphql`), defaulting to `json`,
|
|
130
|
-
replaces the boolean `suiGraphqlTransport`, which is removed. An unrecognised value resolves to
|
|
131
|
-
`json`.
|
|
132
|
-
- New env vars `API_SUI_GRPC_PROXY` and `API_SUI_TESTNET_GRPC_PROXY`. `@mysten/sui` 2.9.0 → 2.23.1.
|
|
133
|
-
- Operation `blockHash` carries the real checkpoint digest on gRPC.
|
|
134
|
-
- Fix: account sync read a single page of history on GraphQL and gRPC, capping an account at its
|
|
135
|
-
newest 50 operations for good — sync resumes from the newest stored operation and never re-reads
|
|
136
|
-
what it skipped. Both arms now walk up to `TRANSACTIONS_LIMIT` (300), the depth JSON-RPC reached.
|
|
137
|
-
- Fix: a resumed sync on GraphQL and gRPC read backwards from the tip, so when more than
|
|
138
|
-
`TRANSACTIONS_LIMIT` transactions arrived between two syncs, the ones in the middle were skipped
|
|
139
|
-
and the next sync resumed above them — a permanent hole. Both arms now walk forward from the
|
|
140
|
-
cursor, as the JSON-RPC arm already did, leaving anything unread newer than the next resume point.
|
|
141
|
-
- Fix: an account holding no operations resumed from its stored `syncHash`, so a cleared cache came
|
|
142
|
-
back with only the transactions that arrived after it. Such an account now re-reads its history,
|
|
143
|
-
which is also how one truncated by the bug above recovers. Token operations count as history: they
|
|
144
|
-
live in the subaccounts, so a token-only account is no longer treated as empty.
|
|
145
|
-
- Fix: on gRPC, any failure to resolve a cursor's digest — including a transient network error — was
|
|
146
|
-
read as "unknown digest", which falls back to an unbounded page from the tip and made paging report
|
|
147
|
-
the end of history. Only a `NOT_FOUND` does that now; everything else propagates and is retried.
|
|
148
|
-
- Fix: reading history skipped transactions that shared a checkpoint with the resume point, in
|
|
149
|
-
account sync (`getOperations`) as well as paging (`getListOperations`).
|
|
150
|
-
- Fix: paging inferred "more to come" from how many operations survived client-side filtering, which
|
|
151
|
-
ended the walk early. GraphQL now reads `pageInfo`, gRPC the stream's `QueryEnd` reason. A page
|
|
152
|
-
whose transactions were all filtered out now resumes from the page's own boundary instead of
|
|
153
|
-
reporting the end of history.
|
|
154
|
-
- Fix: a gRPC history record with no timestamp became an operation dated 1970 that could not serve as
|
|
155
|
-
a pagination cursor. Those records are now dropped, as the GraphQL arm already did.
|
|
156
|
-
- Fix: ascending paging on GraphQL returned the newest slice of the range instead of walking forward
|
|
157
|
-
from the oldest.
|
|
158
|
-
- Fix: the Sui fetcher dropped `X-Ledger-Client-Version` and all gRPC-web headers when passed a
|
|
159
|
-
`Headers` instance.
|
|
160
|
-
- Fix: GraphQL resolved the latest checkpoint in two queries, so the second could answer null. It is
|
|
161
|
-
now one query.
|
|
162
|
-
- A checkpoint missing its `digest` or `timestamp` now raises on both GraphQL and gRPC, instead of
|
|
163
|
-
reporting a block with an empty hash and a 1970 timestamp.
|
|
164
|
-
- Known limitation: `getListOperations` resumes from a synthesised `timestamp:digest` cursor, so
|
|
165
|
-
within one checkpoint a sibling whose digest sorts earlier can be skipped, and a checkpoint holding
|
|
166
|
-
more than one page is stepped over rather than resumed inside. Account sync is unaffected: it
|
|
167
|
-
resumes from the server's own watermark cursor.
|
|
168
|
-
|
|
169
|
-
- [#20955](https://github.com/LedgerHQ/ledger-live/pull/20955) [`39a676d`](https://github.com/LedgerHQ/ledger-live/commit/39a676d2f861d04913264e61100205b4f6044cf9) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - fix: move hedera envs to config/constants
|
|
170
|
-
|
|
171
|
-
## 3.0.0
|
|
172
|
-
|
|
173
|
-
### Major Changes
|
|
174
|
-
|
|
175
|
-
- [#20076](https://github.com/LedgerHQ/ledger-live/pull/20076) [`c475d28`](https://github.com/LedgerHQ/ledger-live/commit/c475d288b4978aa3011c9e76f3e9a1e2f9733010) Thanks [@gre-ledger](https://github.com/gre-ledger)! - **Breaking change**: all env API functions (`getEnv`, `setEnv`, `setEnvUnsafe`, `getEnvDefault`, `getAllEnvs`, `getAllEnvNames`, `getDefinition`, `getEnvDesc`, `isEnvDefault`) now throw if called before `injectDefinitions()`.
|
|
176
|
-
|
|
177
|
-
Previously, `@ledgerhq/live-env` bundled ~200 env var definitions and made them available on import. The definitions have been extracted into the new workspace-private `@shared/env` package. The framework layer (`@ledgerhq/live-env`) is now definition-free and requires an explicit bootstrap call.
|
|
178
|
-
|
|
179
|
-
**Migration for app consumers** — switch to `@shared/env` (recommended):
|
|
180
|
-
|
|
181
|
-
```ts
|
|
182
|
-
// before
|
|
183
|
-
import { getEnv } from "@ledgerhq/live-env";
|
|
184
|
-
|
|
185
|
-
// after
|
|
186
|
-
import { getEnv } from "@shared/env"; // auto-calls injectDefinitions at import time
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Migration for published libs** that need `@ledgerhq/live-env` directly (e.g. test setup):
|
|
190
|
-
|
|
191
|
-
```ts
|
|
192
|
-
import { injectDefinitions, stringParser } from "@ledgerhq/live-env";
|
|
193
|
-
|
|
194
|
-
injectDefinitions({
|
|
195
|
-
MY_VAR: { def: "default", parser: stringParser, desc: "..." },
|
|
196
|
-
});
|
|
197
|
-
// now getEnv / setEnv work
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
New exports: `injectDefinitions`, `EnvDef<T>`, `EnvDefs`, `EnvChange`, and all parser helpers (`intParser`, `floatParser`, `boolParser`, `stringParser`, `jsonParser`, `stringArrayParser`).
|
|
201
|
-
|
|
202
|
-
## 3.0.0-next.0
|
|
203
|
-
|
|
204
|
-
### Major Changes
|
|
205
|
-
|
|
206
|
-
- [#20076](https://github.com/LedgerHQ/ledger-live/pull/20076) [`c475d28`](https://github.com/LedgerHQ/ledger-live/commit/c475d288b4978aa3011c9e76f3e9a1e2f9733010) Thanks [@gre-ledger](https://github.com/gre-ledger)! - **Breaking change**: all env API functions (`getEnv`, `setEnv`, `setEnvUnsafe`, `getEnvDefault`, `getAllEnvs`, `getAllEnvNames`, `getDefinition`, `getEnvDesc`, `isEnvDefault`) now throw if called before `injectDefinitions()`.
|
|
207
|
-
|
|
208
|
-
Previously, `@ledgerhq/live-env` bundled ~200 env var definitions and made them available on import. The definitions have been extracted into the new workspace-private `@shared/env` package. The framework layer (`@ledgerhq/live-env`) is now definition-free and requires an explicit bootstrap call.
|
|
209
|
-
|
|
210
|
-
**Migration for app consumers** — switch to `@shared/env` (recommended):
|
|
211
|
-
|
|
212
|
-
```ts
|
|
213
|
-
// before
|
|
214
|
-
import { getEnv } from "@ledgerhq/live-env";
|
|
215
|
-
|
|
216
|
-
// after
|
|
217
|
-
import { getEnv } from "@shared/env"; // auto-calls injectDefinitions at import time
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
**Migration for published libs** that need `@ledgerhq/live-env` directly (e.g. test setup):
|
|
221
|
-
|
|
222
|
-
```ts
|
|
223
|
-
import { injectDefinitions, stringParser } from "@ledgerhq/live-env";
|
|
224
|
-
|
|
225
|
-
injectDefinitions({
|
|
226
|
-
MY_VAR: { def: "default", parser: stringParser, desc: "..." },
|
|
227
|
-
});
|
|
228
|
-
// now getEnv / setEnv work
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
New exports: `injectDefinitions`, `EnvDef<T>`, `EnvDefs`, `EnvChange`, and all parser helpers (`intParser`, `floatParser`, `boolParser`, `stringParser`, `jsonParser`, `stringArrayParser`).
|
|
232
|
-
|
|
233
|
-
## 2.42.0
|
|
234
|
-
|
|
235
|
-
### Minor Changes
|
|
236
|
-
|
|
237
|
-
- [#19439](https://github.com/LedgerHQ/ledger-live/pull/19439) [`a15b864`](https://github.com/LedgerHQ/ledger-live/commit/a15b864576d901f15d480070b475314c3b23c1dd) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Update default values for `CAL_SERVICE_URL` and `CAL_SERVICE_URL_STAGING` to the Gravitee gateway URLs (`https://global.api.prd.ledger.com/cal` and `https://global.api.stg.ledger-test.com/cal`).
|
|
238
|
-
|
|
239
|
-
- [#19507](https://github.com/LedgerHQ/ledger-live/pull/19507) [`fc44f1e`](https://github.com/LedgerHQ/ledger-live/commit/fc44f1e6ddcca939c117e0cb8bc49c404163b003) Thanks [@Moustafa-Koterba](https://github.com/Moustafa-Koterba)! - feat(solana): update default validators summary base url for prod
|
|
240
|
-
|
|
241
|
-
## 2.42.0-next.0
|
|
242
|
-
|
|
243
|
-
### Minor Changes
|
|
244
|
-
|
|
245
|
-
- [#19439](https://github.com/LedgerHQ/ledger-live/pull/19439) [`a15b864`](https://github.com/LedgerHQ/ledger-live/commit/a15b864576d901f15d480070b475314c3b23c1dd) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Update default values for `CAL_SERVICE_URL` and `CAL_SERVICE_URL_STAGING` to the Gravitee gateway URLs (`https://global.api.prd.ledger.com/cal` and `https://global.api.stg.ledger-test.com/cal`).
|
|
246
|
-
|
|
247
|
-
- [#19507](https://github.com/LedgerHQ/ledger-live/pull/19507) [`fc44f1e`](https://github.com/LedgerHQ/ledger-live/commit/fc44f1e6ddcca939c117e0cb8bc49c404163b003) Thanks [@Moustafa-Koterba](https://github.com/Moustafa-Koterba)! - feat(solana): update default validators summary base url for prod
|
|
248
|
-
|
|
249
|
-
## 2.41.0
|
|
250
|
-
|
|
251
|
-
### Minor Changes
|
|
252
|
-
|
|
253
|
-
- [#19231](https://github.com/LedgerHQ/ledger-live/pull/19231) [`70a706e`](https://github.com/LedgerHQ/ledger-live/commit/70a706e4efe3a6fa176f9827a4a06949ba185f11) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Remove unused USE_LEARN_STAGING_URL env var
|
|
254
|
-
|
|
255
|
-
## 2.41.0-next.0
|
|
256
|
-
|
|
257
|
-
### Minor Changes
|
|
258
|
-
|
|
259
|
-
- [#19231](https://github.com/LedgerHQ/ledger-live/pull/19231) [`70a706e`](https://github.com/LedgerHQ/ledger-live/commit/70a706e4efe3a6fa176f9827a4a06949ba185f11) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Remove unused USE_LEARN_STAGING_URL env var
|
|
260
|
-
|
|
261
|
-
## 2.40.0
|
|
262
|
-
|
|
263
|
-
### Minor Changes
|
|
264
|
-
|
|
265
|
-
- [#18823](https://github.com/LedgerHQ/ledger-live/pull/18823) [`13aeeb6`](https://github.com/LedgerHQ/ledger-live/commit/13aeeb6186997b433785e542ed1dafa6afde2267) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - chore: remove unused thirdweb code
|
|
266
|
-
|
|
267
|
-
- [#17970](https://github.com/LedgerHQ/ledger-live/pull/17970) [`798081d`](https://github.com/LedgerHQ/ledger-live/commit/798081db3e427c8d2d09930ceb836703146ca1ba) Thanks [@YazhuEth](https://github.com/YazhuEth)! - Migrate the Polkadot family (mainnet and Westend, relay chain and asset hub) to the new polkadot-rest-api endpoints, served under a `/v1` prefix (`/v1/rc` for the relay chain).
|
|
268
|
-
|
|
269
|
-
Adapt the coin-polkadot client to the rest-api, which is not fully 1:1 with substrate-api-sidecar:
|
|
270
|
-
|
|
271
|
-
- staking storage queries use `keys[]` only (drop the legacy `key1` query param, rejected by the rest-api);
|
|
272
|
-
- tolerate a missing `ss58Format` in `/runtime/spec` (e.g. Westend Asset Hub) instead of producing `NaN`;
|
|
273
|
-
- parse the new `/transaction/dry-run` response shape (`resultType` at the root, error under `result.error`, plus the `TransactionValidityError` case).
|
|
274
|
-
|
|
275
|
-
## 2.40.0-next.0
|
|
276
|
-
|
|
277
|
-
### Minor Changes
|
|
278
|
-
|
|
279
|
-
- [#18823](https://github.com/LedgerHQ/ledger-live/pull/18823) [`13aeeb6`](https://github.com/LedgerHQ/ledger-live/commit/13aeeb6186997b433785e542ed1dafa6afde2267) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - chore: remove unused thirdweb code
|
|
280
|
-
|
|
281
|
-
- [#17970](https://github.com/LedgerHQ/ledger-live/pull/17970) [`798081d`](https://github.com/LedgerHQ/ledger-live/commit/798081db3e427c8d2d09930ceb836703146ca1ba) Thanks [@YazhuEth](https://github.com/YazhuEth)! - Migrate the Polkadot family (mainnet and Westend, relay chain and asset hub) to the new polkadot-rest-api endpoints, served under a `/v1` prefix (`/v1/rc` for the relay chain).
|
|
282
|
-
|
|
283
|
-
Adapt the coin-polkadot client to the rest-api, which is not fully 1:1 with substrate-api-sidecar:
|
|
284
|
-
|
|
285
|
-
- staking storage queries use `keys[]` only (drop the legacy `key1` query param, rejected by the rest-api);
|
|
286
|
-
- tolerate a missing `ss58Format` in `/runtime/spec` (e.g. Westend Asset Hub) instead of producing `NaN`;
|
|
287
|
-
- parse the new `/transaction/dry-run` response shape (`resultType` at the root, error under `result.error`, plus the `TransactionValidityError` case).
|
|
288
|
-
|
|
289
|
-
## 2.39.0
|
|
290
|
-
|
|
291
|
-
### Minor Changes
|
|
292
|
-
|
|
293
|
-
- [#18395](https://github.com/LedgerHQ/ledger-live/pull/18395) [`81ceb34`](https://github.com/LedgerHQ/ledger-live/commit/81ceb347c0b2167358c601a9922e2c7fa14a845b) Thanks [@pawell24](https://github.com/pawell24)! - fix: point aptos testnet endpoints to public aptos backend
|
|
294
|
-
|
|
295
|
-
- [#18320](https://github.com/LedgerHQ/ledger-live/pull/18320) [`9ab3a61`](https://github.com/LedgerHQ/ledger-live/commit/9ab3a6157abb3a382c3157eb292ce9d9d2c6df93) Thanks [@ishaba](https://github.com/ishaba)! - fix: sui testnet node url update
|
|
296
|
-
|
|
297
|
-
- [#18256](https://github.com/LedgerHQ/ledger-live/pull/18256) [`eb1dae8`](https://github.com/LedgerHQ/ledger-live/commit/eb1dae8fc14ff8e0bc1e1ce040712492a0328451) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Derive "supported currencies" from the coin-modules registry instead of `setSupportedCurrencies`.
|
|
298
|
-
|
|
299
|
-
Each `CoinModuleLoader` now declares a `supportedCoins: CryptoCurrencyId[]` field, and a currency is supported when it appears in a registered loader's `supportedCoins`. The framework `setSupportedCurrencies` / `listSupportedCurrencies` / `isCurrencySupported` and the `EXPERIMENTAL_CURRENCIES` env are removed; `listSupportedCurrencies` / `isCurrencySupported` are now exported from `@ledgerhq/live-common/currencies` backed by the registry. Apps no longer maintain a supported-currencies list — registering the coin modules is what makes their currencies supported.
|
|
300
|
-
|
|
301
|
-
## 2.39.0-next.0
|
|
3
|
+
## 4.1.0
|
|
302
4
|
|
|
303
5
|
### Minor Changes
|
|
304
6
|
|
|
305
|
-
- [#
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
Each `CoinModuleLoader` now declares a `supportedCoins: CryptoCurrencyId[]` field, and a currency is supported when it appears in a registered loader's `supportedCoins`. The framework `setSupportedCurrencies` / `listSupportedCurrencies` / `isCurrencySupported` and the `EXPERIMENTAL_CURRENCIES` env are removed; `listSupportedCurrencies` / `isCurrencySupported` are now exported from `@ledgerhq/live-common/currencies` backed by the registry. Apps no longer maintain a supported-currencies list — registering the coin modules is what makes their currencies supported.
|
|
312
|
-
|
|
313
|
-
## 2.38.0
|
|
314
|
-
|
|
315
|
-
### Minor Changes
|
|
316
|
-
|
|
317
|
-
- [#18030](https://github.com/LedgerHQ/ledger-live/pull/18030) [`b14d5cc`](https://github.com/LedgerHQ/ledger-live/commit/b14d5cc29cc75c6be2e565db3d4d0ab400cc56d9) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - refactor: unify aleo node endpoint env
|
|
318
|
-
|
|
319
|
-
- [#18105](https://github.com/LedgerHQ/ledger-live/pull/18105) [`ec38133`](https://github.com/LedgerHQ/ledger-live/commit/ec38133ab6b2c18d329e1c78320b7c2a1f80fbfc) Thanks [@ishaba](https://github.com/ishaba)! - feat: cardano coin module api getValidators
|
|
320
|
-
|
|
321
|
-
## 2.38.0-next.0
|
|
322
|
-
|
|
323
|
-
### Minor Changes
|
|
324
|
-
|
|
325
|
-
- [#18030](https://github.com/LedgerHQ/ledger-live/pull/18030) [`b14d5cc`](https://github.com/LedgerHQ/ledger-live/commit/b14d5cc29cc75c6be2e565db3d4d0ab400cc56d9) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - refactor: unify aleo node endpoint env
|
|
326
|
-
|
|
327
|
-
- [#18105](https://github.com/LedgerHQ/ledger-live/pull/18105) [`ec38133`](https://github.com/LedgerHQ/ledger-live/commit/ec38133ab6b2c18d329e1c78320b7c2a1f80fbfc) Thanks [@ishaba](https://github.com/ishaba)! - feat: cardano coin module api getValidators
|
|
328
|
-
|
|
329
|
-
## 2.37.0
|
|
330
|
-
|
|
331
|
-
### Minor Changes
|
|
332
|
-
|
|
333
|
-
- [#17648](https://github.com/LedgerHQ/ledger-live/pull/17648) [`5fc817a`](https://github.com/LedgerHQ/ledger-live/commit/5fc817a5ee316396a327e5b10eccd8314bfb2df5) Thanks [@hedi-edelbloute](https://github.com/hedi-edelbloute)! - Add Arc and Arc Testnet (Circle's USDC-native EVM L1, chainIds 5042 and 5042002)
|
|
334
|
-
|
|
335
|
-
- [#17877](https://github.com/LedgerHQ/ledger-live/pull/17877) [`65f87d9`](https://github.com/LedgerHQ/ledger-live/commit/65f87d938ac4158e0ae706593d2a46561097f5a9) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - refactor: upgrade hedera utils with configOrCurrencyId param
|
|
336
|
-
|
|
337
|
-
## 2.37.0-next.0
|
|
338
|
-
|
|
339
|
-
### Minor Changes
|
|
340
|
-
|
|
341
|
-
- [#17648](https://github.com/LedgerHQ/ledger-live/pull/17648) [`5fc817a`](https://github.com/LedgerHQ/ledger-live/commit/5fc817a5ee316396a327e5b10eccd8314bfb2df5) Thanks [@hedi-edelbloute](https://github.com/hedi-edelbloute)! - Add Arc and Arc Testnet (Circle's USDC-native EVM L1, chainIds 5042 and 5042002)
|
|
342
|
-
|
|
343
|
-
- [#17877](https://github.com/LedgerHQ/ledger-live/pull/17877) [`65f87d9`](https://github.com/LedgerHQ/ledger-live/commit/65f87d938ac4158e0ae706593d2a46561097f5a9) Thanks [@mdomanski-ext-ledger](https://github.com/mdomanski-ext-ledger)! - refactor: upgrade hedera utils with configOrCurrencyId param
|
|
344
|
-
|
|
345
|
-
<!-- changelog-pruned: older entries were removed to keep this file small. Full history is in `git log -p CHANGELOG.md` and in the GitHub release for each version. -->
|
|
7
|
+
- [#98](https://github.com/LedgerHQ/ts-libs/pull/98) [`461d059`](https://github.com/LedgerHQ/ts-libs/commit/461d059638e47c2f73b7f9c214e42f330e67a0d1) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Move the package from the ledger-live monorepo to ts-libs. No API change; the package stays
|
|
8
|
+
DEPRECATED and is still being sunset — see MIGRATION.md.
|
|
9
|
+
|
|
10
|
+
The `exports` map now lists `.`, `./index`, `./env`, `./state`, `./lib/*` and `./lib-es/*`
|
|
11
|
+
explicitly, in place of the previous `./*` wildcard.
|
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Migrating off `@ledgerhq/live-env`
|
|
2
|
+
|
|
3
|
+
> [!WARNING]
|
|
4
|
+
> **`@ledgerhq/live-env` is deprecated.** Do not add definitions, do not add call sites.
|
|
5
|
+
> This guide is how you take an existing one out.
|
|
6
|
+
|
|
7
|
+
## Why
|
|
8
|
+
|
|
9
|
+
The framework is fine; the injection is the problem. `injectDefinitions()` registers a global
|
|
10
|
+
mutable singleton, and everything downstream inherits it:
|
|
11
|
+
|
|
12
|
+
- every consumer of a shared library must inject, or `getEnv` throws
|
|
13
|
+
- a value read through a global is invisible in the dependency graph — nothing tells you a library
|
|
14
|
+
needs it until it fails at runtime
|
|
15
|
+
- it duplicates three mechanisms that already exist: feature flags, build-time constants, and
|
|
16
|
+
`process.env`
|
|
17
|
+
|
|
18
|
+
## The four exits
|
|
19
|
+
|
|
20
|
+
Every variable leaves by exactly one of these. Pick by asking what the value actually does, not by
|
|
21
|
+
what is easiest to type.
|
|
22
|
+
|
|
23
|
+
| The value… | Replacement | Why |
|
|
24
|
+
| -------------------------- | --------------------------------- | -------------------------------- |
|
|
25
|
+
| is togglable remotely | **feature flag** | already remote, typed, audited |
|
|
26
|
+
| never varies at runtime | **inline constant** | the dependency leaves the graph |
|
|
27
|
+
| varies in CI / tests / dev | **`process.env` at the use site** | no registry, no injection |
|
|
28
|
+
| varies per app | **passed in as a parameter** | the app owns state, not the lib |
|
|
29
|
+
|
|
30
|
+
If two look plausible, prefer the one further down the table: it removes more machinery.
|
|
31
|
+
If none fit, that is a signal worth raising, not a blocker.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### 1. Togglable remotely → feature flag
|
|
36
|
+
|
|
37
|
+
A value someone wants to flip without a release is a feature flag. Often the flag already exists
|
|
38
|
+
and the env var is just the fallback nobody deleted — check before writing a new one.
|
|
39
|
+
|
|
40
|
+
```diff
|
|
41
|
+
- import { getEnv } from "@ledgerhq/live-env";
|
|
42
|
+
-
|
|
43
|
+
- if (!feature?.enabled) return getEnv("ENABLE_THING").split(",");
|
|
44
|
+
- return feature?.params?.things ?? null;
|
|
45
|
+
+ return feature?.params?.things ?? null;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Outside React, the flag reaches you through the config your composition root already builds — not
|
|
49
|
+
through a second global.
|
|
50
|
+
|
|
51
|
+
### 2. Never varies at runtime → inline constant
|
|
52
|
+
|
|
53
|
+
If nothing calls `setEnv` on it and no bootstrap overrides it, it is a constant that has been
|
|
54
|
+
paying registry rent for years.
|
|
55
|
+
|
|
56
|
+
```diff
|
|
57
|
+
- import { getEnv } from "@ledgerhq/live-env";
|
|
58
|
+
- const version = () => getEnv("API_VERSION");
|
|
59
|
+
+ const API_VERSION = 2;
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This is the exit that shrinks the dependency graph: the module stops importing the library at all.
|
|
63
|
+
|
|
64
|
+
Two things make *every* variable look overridable, and neither should stop you: a bootstrap that
|
|
65
|
+
loops `process.env` into `setEnvUnsafe`, and any debug UI that can set a variable by name. Those
|
|
66
|
+
are generic escape hatches, not evidence that a value varies. Ask whether a *product* path sets it.
|
|
67
|
+
|
|
68
|
+
### 3. Varies in CI / tests / dev → `process.env` at the point of use
|
|
69
|
+
|
|
70
|
+
Read it where you need it and parse it there. No registry entry, no injection, no import ordering.
|
|
71
|
+
|
|
72
|
+
```diff
|
|
73
|
+
- import { getEnv } from "@ledgerhq/live-env";
|
|
74
|
+
- setDecimalPlaces(getEnv("DECIMAL_PLACES"));
|
|
75
|
+
+ const decimalPlaces = Number.parseInt(process.env.DECIMAL_PLACES ?? "", 10);
|
|
76
|
+
+ setDecimalPlaces(Number.isNaN(decimalPlaces) ? 40 : decimalPlaces);
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Keep the default at the use site, as above.
|
|
80
|
+
|
|
81
|
+
> [!CAUTION]
|
|
82
|
+
> **Do not fall back with `||`.** `Number(process.env.X) || 40` looks equivalent and is not: it
|
|
83
|
+
> swallows a legitimate `0`, and `false` for booleans. `intParser` returns `0` for `X=0` today, so
|
|
84
|
+
> `||` silently changes behaviour for anyone who set it. Test against `Number.isNaN`, or `??` over
|
|
85
|
+
> an already-parsed value. This is the most likely way to introduce a bug while migrating.
|
|
86
|
+
|
|
87
|
+
Where `process.env` is not populated the way it is under Node — a React Native app, a bundler
|
|
88
|
+
target — use that platform's existing accessor. The point of the exit is unchanged: the value stops
|
|
89
|
+
travelling through a singleton.
|
|
90
|
+
|
|
91
|
+
### 4. Varies per app → passed in as a parameter
|
|
92
|
+
|
|
93
|
+
The app knows things a library cannot. Take the value as an argument. Do not store it.
|
|
94
|
+
|
|
95
|
+
Replacing `getEnv` with a module-level `let` and a `configure()` is the same anti-pattern one size
|
|
96
|
+
down — still global, still mutable, still absent from the signature, still order-dependent at
|
|
97
|
+
import time. Runtime state is the end app's responsibility; a library receives what it needs.
|
|
98
|
+
|
|
99
|
+
```diff
|
|
100
|
+
// library
|
|
101
|
+
- import { getEnv } from "@ledgerhq/live-env";
|
|
102
|
+
-
|
|
103
|
+
- export function fetchThing(id: string) {
|
|
104
|
+
- return request(`${getEnv("API_URL")}/things/${id}`);
|
|
105
|
+
- }
|
|
106
|
+
+ export function fetchThing(ctx: { apiUrl: string }, id: string) {
|
|
107
|
+
+ return request(`${ctx.apiUrl}/things/${id}`);
|
|
108
|
+
+ }
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Where several values travel together, group them into one context object threaded as the first
|
|
112
|
+
argument rather than growing the parameter list.
|
|
113
|
+
|
|
114
|
+
The signature is the whole point. A caller cannot forget the value, a test supplies a different one
|
|
115
|
+
without touching global state, and two callers can use two different values at the same time —
|
|
116
|
+
none of which a singleton allows.
|
|
117
|
+
|
|
118
|
+
If the library already has a `setX()`/`configure()`, moving a variable into it is a shorter step
|
|
119
|
+
than staying, but it is not the destination. Prefer the parameter.
|
|
120
|
+
|
|
121
|
+
Two things to get right:
|
|
122
|
+
|
|
123
|
+
- **A value the user can change is app state.** The library does not subscribe to it; the app
|
|
124
|
+
re-reads its own store and passes the current value on the next call.
|
|
125
|
+
- **Migrate the whole bridge, not one key.** Where a setup function copies several variables into a
|
|
126
|
+
library, taking one of them out and leaving the call silently drops the rest.
|
|
127
|
+
|
|
128
|
+
**Backend URLs deserve extra care.** Do not inline an endpoint where the `getEnv` used to be — that
|
|
129
|
+
scatters one backend's address across every file that talks to it, which is the same mistake in a
|
|
130
|
+
new shape. Resolve it once, in the app, and pass it down with the rest of the context.
|
|
131
|
+
`_STAGING`/`_PROD` pairs are not two endpoints: they are one endpoint and an app-level choice of
|
|
132
|
+
which URL to pass.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## While the burn-down runs
|
|
137
|
+
|
|
138
|
+
- **Do not add a new definition.** A new value should be born in one of the four exits.
|
|
139
|
+
- **Do not add a new call site**, including in tests. In a test, set the value the way the
|
|
140
|
+
production code will read it after the migration, not through `setEnv`.
|
|
141
|
+
- Migrating a variable means removing its definition in the same PR. A definition with zero call
|
|
142
|
+
sites left is dead weight nobody will come back for.
|
|
143
|
+
- **Check for dead ones first.** A definition with no call sites anywhere is a deletion, not a
|
|
144
|
+
migration.
|
|
145
|
+
|
|
146
|
+
## Done
|
|
147
|
+
|
|
148
|
+
`@ledgerhq/live-env` unpublished and deleted.
|
package/README.md
CHANGED
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> [!WARNING]
|
|
4
4
|
> **Status: DEPRECATED** — `@ledgerhq/live-env` is being sunset. Do not add env var definitions and
|
|
5
|
-
> do not add call sites. To take an existing one out, read
|
|
6
|
-
>
|
|
7
|
-
>
|
|
8
|
-
> the point of use, the app's `.env` file, a bundler define, the app's settings slice, or a
|
|
9
|
-
> parameter the caller passes in.
|
|
5
|
+
> do not add call sites. To take an existing one out, read **[MIGRATION.md](./MIGRATION.md)**:
|
|
6
|
+
> every variable exits as a feature flag, an inline constant, `process.env` at the point of use,
|
|
7
|
+
> or a parameter the caller passes in.
|
|
10
8
|
>
|
|
11
9
|
> The package still works exactly as documented below until the last call site is gone.
|
|
12
10
|
|
package/lib/env.d.ts
CHANGED
|
@@ -3,26 +3,22 @@ export type { EnvDef, EnvDefs, EnvChange } from "./state";
|
|
|
3
3
|
import type { EnvDef as EnvDefRecord } from "./state";
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated `@ledgerhq/live-env` is being sunset, and these parsers go with it. Parse and
|
|
6
|
-
* default explicitly at the point of use instead — see
|
|
7
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
6
|
+
* default explicitly at the point of use instead — see MIGRATION.md.
|
|
8
7
|
*/
|
|
9
8
|
export declare const intParser: (v: any) => number | undefined;
|
|
10
9
|
/**
|
|
11
10
|
* @deprecated `@ledgerhq/live-env` is being sunset, and these parsers go with it. Parse and
|
|
12
|
-
* default explicitly at the point of use instead — see
|
|
13
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
11
|
+
* default explicitly at the point of use instead — see MIGRATION.md.
|
|
14
12
|
*/
|
|
15
13
|
export declare const floatParser: (v: any) => number | undefined;
|
|
16
14
|
/**
|
|
17
15
|
* @deprecated `@ledgerhq/live-env` is being sunset, and these parsers go with it. Parse and
|
|
18
|
-
* default explicitly at the point of use instead — see
|
|
19
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
16
|
+
* default explicitly at the point of use instead — see MIGRATION.md.
|
|
20
17
|
*/
|
|
21
18
|
export declare const boolParser: (v: unknown) => boolean | undefined;
|
|
22
19
|
/**
|
|
23
20
|
* @deprecated `@ledgerhq/live-env` is being sunset, and these parsers go with it. Parse and
|
|
24
|
-
* default explicitly at the point of use instead — see
|
|
25
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
21
|
+
* default explicitly at the point of use instead — see MIGRATION.md.
|
|
26
22
|
*/
|
|
27
23
|
export declare const stringParser: (v: unknown) => string | undefined;
|
|
28
24
|
type JSONValue = string | number | boolean | {
|
|
@@ -30,61 +26,57 @@ type JSONValue = string | number | boolean | {
|
|
|
30
26
|
} | Array<JSONValue>;
|
|
31
27
|
/**
|
|
32
28
|
* @deprecated `@ledgerhq/live-env` is being sunset, and these parsers go with it. Parse and
|
|
33
|
-
* default explicitly at the point of use instead — see
|
|
34
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
29
|
+
* default explicitly at the point of use instead — see MIGRATION.md.
|
|
35
30
|
*/
|
|
36
31
|
export declare const jsonParser: (v: unknown) => JSONValue | undefined;
|
|
37
32
|
/**
|
|
38
33
|
* @deprecated `@ledgerhq/live-env` is being sunset, and these parsers go with it. Parse and
|
|
39
|
-
* default explicitly at the point of use instead — see
|
|
40
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
34
|
+
* default explicitly at the point of use instead — see MIGRATION.md.
|
|
41
35
|
*/
|
|
42
36
|
export declare const stringArrayParser: (v: unknown) => string[] | undefined;
|
|
43
37
|
/**
|
|
44
38
|
* @deprecated `@ledgerhq/live-env` is being sunset, and the registry it introspects goes with
|
|
45
|
-
* it — see
|
|
39
|
+
* it — see MIGRATION.md.
|
|
46
40
|
*/
|
|
47
41
|
export declare const getDefinition: (name: string) => EnvDefRecord<unknown> | undefined;
|
|
48
42
|
/**
|
|
49
43
|
* @deprecated `@ledgerhq/live-env` is being sunset, and the registry it introspects goes with
|
|
50
|
-
* it — see
|
|
44
|
+
* it — see MIGRATION.md.
|
|
51
45
|
*/
|
|
52
46
|
export declare const getAllEnvNames: () => string[];
|
|
53
47
|
/**
|
|
54
|
-
* @deprecated `@ledgerhq/live-env` is being sunset
|
|
55
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
48
|
+
* @deprecated `@ledgerhq/live-env` is being sunset. See MIGRATION.md.
|
|
56
49
|
*/
|
|
57
50
|
export declare const getAllEnvs: () => Record<string, unknown>;
|
|
58
51
|
/**
|
|
59
52
|
* @deprecated `@ledgerhq/live-env` is being sunset. Replace this read with a feature flag,
|
|
60
53
|
* an inline constant, `process.env` at the point of use, or a value the caller passes in —
|
|
61
|
-
* see
|
|
54
|
+
* see MIGRATION.md.
|
|
62
55
|
*/
|
|
63
56
|
export declare function getEnv(name: string): any;
|
|
64
57
|
/**
|
|
65
|
-
* @deprecated `@ledgerhq/live-env` is being sunset
|
|
66
|
-
* [docs/configuration.md](../../../docs/configuration.md).
|
|
58
|
+
* @deprecated `@ledgerhq/live-env` is being sunset. See MIGRATION.md.
|
|
67
59
|
*/
|
|
68
60
|
export declare function getEnvDefault(name: string): any;
|
|
69
61
|
/**
|
|
70
62
|
* @deprecated `@ledgerhq/live-env` is being sunset, and the registry it introspects goes with
|
|
71
|
-
* it — see
|
|
63
|
+
* it — see MIGRATION.md.
|
|
72
64
|
*/
|
|
73
65
|
export declare const isEnvDefault: (name: string) => boolean;
|
|
74
66
|
/**
|
|
75
67
|
* @deprecated `@ledgerhq/live-env` is being sunset, and the registry it introspects goes with
|
|
76
|
-
* it — see
|
|
68
|
+
* it — see MIGRATION.md.
|
|
77
69
|
*/
|
|
78
70
|
export declare const getEnvDesc: (name: string) => string;
|
|
79
71
|
/**
|
|
80
72
|
* @deprecated `@ledgerhq/live-env` is being sunset. A value that has to change at runtime
|
|
81
73
|
* belongs in a feature flag or in the app's own state, not in a global mutable singleton —
|
|
82
|
-
* see
|
|
74
|
+
* see MIGRATION.md.
|
|
83
75
|
*/
|
|
84
76
|
export declare function setEnv(name: string, value: unknown): void;
|
|
85
77
|
/**
|
|
86
78
|
* @deprecated `@ledgerhq/live-env` is being sunset. Read and parse the raw value where you
|
|
87
|
-
* use it instead — see
|
|
79
|
+
* use it instead — see MIGRATION.md.
|
|
88
80
|
*/
|
|
89
81
|
export declare const setEnvUnsafe: (name: string, unsafeValue: unknown) => boolean;
|
|
90
82
|
//# sourceMappingURL=env.d.ts.map
|
package/lib/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,SAAS,MAAO,GAAG,KAAG,MAAM,GAAG,SAG3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,MAAO,GAAG,KAAG,MAAM,GAAG,SAG7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,MAAO,OAAO,KAAG,OAAO,GAAG,SAGjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,MAAO,OAAO,KAAG,MAAM,GAAG,SACZ,CAAC;AAExC,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3F;;;GAGG;AACH,eAAO,MAAM,UAAU,MAAO,OAAO,KAAG,SAAS,GAAG,SAOnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,MAAO,OAAO,KAAG,MAAM,EAAE,GAAG,SAGzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SACA,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,MAAM,EAA2C,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAA8B,CAAC;AAGnF;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAExC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAE/C;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,OAG3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MACwC,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAOzD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,eAAe,OAAO,KAAG,OAajE,CAAC"}
|