@xylabs/eth-address 5.0.83 → 5.0.86
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/README.md
CHANGED
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
|
|
17
17
|
|
|
18
|
+
|
|
19
|
+
|
|
18
20
|
## Reference
|
|
19
21
|
|
|
20
22
|
**@xylabs/eth-address**
|
|
@@ -23,13 +25,17 @@ Base functionality used throughout XY Labs TypeScript/JavaScript libraries
|
|
|
23
25
|
|
|
24
26
|
## Classes
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
| Class | Description |
|
|
29
|
+
| ------ | ------ |
|
|
30
|
+
| [EthAddressWrapper](#classes/EthAddressWrapper) | Wrapper around an Ethereum address providing parsing, formatting, validation, and checksum support. |
|
|
27
31
|
|
|
28
32
|
## Functions
|
|
29
33
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
| Function | Description |
|
|
35
|
+
| ------ | ------ |
|
|
36
|
+
| [isEthAddressWrapper](#functions/isEthAddressWrapper) | Type guard that checks if the given object is an instance of EthAddressWrapper. |
|
|
37
|
+
| [ellipsize](#functions/ellipsize) | Truncates a string to show the first and last `length` characters separated by an ellipsis. |
|
|
38
|
+
| [padHex](#functions/padHex) | - |
|
|
33
39
|
|
|
34
40
|
### classes
|
|
35
41
|
|
|
@@ -39,19 +45,21 @@ Base functionality used throughout XY Labs TypeScript/JavaScript libraries
|
|
|
39
45
|
|
|
40
46
|
***
|
|
41
47
|
|
|
48
|
+
Wrapper around an Ethereum address providing parsing, formatting, validation, and checksum support.
|
|
49
|
+
|
|
42
50
|
## Constructors
|
|
43
51
|
|
|
44
52
|
### Constructor
|
|
45
53
|
|
|
46
54
|
```ts
|
|
47
|
-
protected new EthAddressWrapper(address): EthAddressWrapper;
|
|
55
|
+
protected new EthAddressWrapper(address: bigint): EthAddressWrapper;
|
|
48
56
|
```
|
|
49
57
|
|
|
50
58
|
### Parameters
|
|
51
59
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
`bigint`
|
|
60
|
+
| Parameter | Type |
|
|
61
|
+
| ------ | ------ |
|
|
62
|
+
| `address` | `bigint` |
|
|
55
63
|
|
|
56
64
|
### Returns
|
|
57
65
|
|
|
@@ -62,18 +70,15 @@ protected new EthAddressWrapper(address): EthAddressWrapper;
|
|
|
62
70
|
### fromString()
|
|
63
71
|
|
|
64
72
|
```ts
|
|
65
|
-
static fromString(value
|
|
73
|
+
static fromString(value?: string, base?: number): EthAddressWrapper | undefined;
|
|
66
74
|
```
|
|
67
75
|
|
|
68
76
|
### Parameters
|
|
69
77
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
`string`
|
|
73
|
-
|
|
74
|
-
#### base?
|
|
75
|
-
|
|
76
|
-
`number` = `16`
|
|
78
|
+
| Parameter | Type | Default value |
|
|
79
|
+
| ------ | ------ | ------ |
|
|
80
|
+
| `value?` | `string` | `undefined` |
|
|
81
|
+
| `base?` | `number` | `16` |
|
|
77
82
|
|
|
78
83
|
### Returns
|
|
79
84
|
|
|
@@ -84,18 +89,15 @@ static fromString(value?, base?): EthAddressWrapper | undefined;
|
|
|
84
89
|
### parse()
|
|
85
90
|
|
|
86
91
|
```ts
|
|
87
|
-
static parse(value, base
|
|
92
|
+
static parse(value: unknown, base?: number): EthAddressWrapper | undefined;
|
|
88
93
|
```
|
|
89
94
|
|
|
90
95
|
### Parameters
|
|
91
96
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
`unknown`
|
|
95
|
-
|
|
96
|
-
#### base?
|
|
97
|
-
|
|
98
|
-
`number`
|
|
97
|
+
| Parameter | Type |
|
|
98
|
+
| ------ | ------ |
|
|
99
|
+
| `value` | `unknown` |
|
|
100
|
+
| `base?` | `number` |
|
|
99
101
|
|
|
100
102
|
### Returns
|
|
101
103
|
|
|
@@ -106,14 +108,14 @@ static parse(value, base?): EthAddressWrapper | undefined;
|
|
|
106
108
|
### validate()
|
|
107
109
|
|
|
108
110
|
```ts
|
|
109
|
-
static validate(address): boolean;
|
|
111
|
+
static validate(address: string): boolean;
|
|
110
112
|
```
|
|
111
113
|
|
|
112
114
|
### Parameters
|
|
113
115
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
`string`
|
|
116
|
+
| Parameter | Type |
|
|
117
|
+
| ------ | ------ |
|
|
118
|
+
| `address` | `string` |
|
|
117
119
|
|
|
118
120
|
### Returns
|
|
119
121
|
|
|
@@ -124,14 +126,14 @@ static validate(address): boolean;
|
|
|
124
126
|
### equals()
|
|
125
127
|
|
|
126
128
|
```ts
|
|
127
|
-
equals(address
|
|
129
|
+
equals(address?: string | EthAddressWrapper | null): boolean;
|
|
128
130
|
```
|
|
129
131
|
|
|
130
132
|
### Parameters
|
|
131
133
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
`string`
|
|
134
|
+
| Parameter | Type |
|
|
135
|
+
| ------ | ------ |
|
|
136
|
+
| `address?` | `string` \| `EthAddressWrapper` \| `null` |
|
|
135
137
|
|
|
136
138
|
### Returns
|
|
137
139
|
|
|
@@ -190,14 +192,14 @@ toLowerCaseString(): string;
|
|
|
190
192
|
### toShortString()
|
|
191
193
|
|
|
192
194
|
```ts
|
|
193
|
-
toShortString(length
|
|
195
|
+
toShortString(length?: number): string;
|
|
194
196
|
```
|
|
195
197
|
|
|
196
198
|
### Parameters
|
|
197
199
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
`number`
|
|
200
|
+
| Parameter | Type | Default value |
|
|
201
|
+
| ------ | ------ | ------ |
|
|
202
|
+
| `length` | `number` | `2` |
|
|
201
203
|
|
|
202
204
|
### Returns
|
|
203
205
|
|
|
@@ -208,18 +210,15 @@ toShortString(length?): string;
|
|
|
208
210
|
### toString()
|
|
209
211
|
|
|
210
212
|
```ts
|
|
211
|
-
toString(checksum
|
|
213
|
+
toString(checksum?: boolean, chainId?: string): string;
|
|
212
214
|
```
|
|
213
215
|
|
|
214
216
|
### Parameters
|
|
215
217
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
`boolean`
|
|
219
|
-
|
|
220
|
-
#### chainId?
|
|
221
|
-
|
|
222
|
-
`string`
|
|
218
|
+
| Parameter | Type |
|
|
219
|
+
| ------ | ------ |
|
|
220
|
+
| `checksum?` | `boolean` |
|
|
221
|
+
| `chainId?` | `string` |
|
|
223
222
|
|
|
224
223
|
### Returns
|
|
225
224
|
|
|
@@ -246,23 +245,24 @@ validate(): boolean;
|
|
|
246
245
|
***
|
|
247
246
|
|
|
248
247
|
```ts
|
|
249
|
-
function ellipsize(value, length
|
|
248
|
+
function ellipsize(value: string, length?: number): string;
|
|
250
249
|
```
|
|
251
250
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
### value
|
|
251
|
+
Truncates a string to show the first and last `length` characters separated by an ellipsis.
|
|
255
252
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
### length?
|
|
253
|
+
## Parameters
|
|
259
254
|
|
|
260
|
-
|
|
255
|
+
| Parameter | Type | Default value | Description |
|
|
256
|
+
| ------ | ------ | ------ | ------ |
|
|
257
|
+
| `value` | `string` | `undefined` | The string to ellipsize |
|
|
258
|
+
| `length` | `number` | `2` | Number of characters to keep at each end (default 2) |
|
|
261
259
|
|
|
262
260
|
## Returns
|
|
263
261
|
|
|
264
262
|
`string`
|
|
265
263
|
|
|
264
|
+
The ellipsized string
|
|
265
|
+
|
|
266
266
|
### <a id="isEthAddressWrapper"></a>isEthAddressWrapper
|
|
267
267
|
|
|
268
268
|
[**@xylabs/eth-address**](#../README)
|
|
@@ -270,16 +270,19 @@ function ellipsize(value, length?): string;
|
|
|
270
270
|
***
|
|
271
271
|
|
|
272
272
|
```ts
|
|
273
|
-
function isEthAddressWrapper(obj
|
|
273
|
+
function isEthAddressWrapper(obj: {
|
|
274
|
+
type: string;
|
|
275
|
+
}): obj is { type: string } & EthAddressWrapper;
|
|
274
276
|
```
|
|
275
277
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
### obj
|
|
278
|
+
Type guard that checks if the given object is an instance of EthAddressWrapper.
|
|
279
279
|
|
|
280
|
-
|
|
280
|
+
## Parameters
|
|
281
281
|
|
|
282
|
-
|
|
282
|
+
| Parameter | Type |
|
|
283
|
+
| ------ | ------ |
|
|
284
|
+
| `obj` | \{ `type`: `string`; \} |
|
|
285
|
+
| `obj.type` | `string` |
|
|
283
286
|
|
|
284
287
|
## Returns
|
|
285
288
|
|
|
@@ -292,18 +295,15 @@ function isEthAddressWrapper(obj): obj is { type: string } & EthAddressWrapper;
|
|
|
292
295
|
***
|
|
293
296
|
|
|
294
297
|
```ts
|
|
295
|
-
function padHex(hex, byteCount
|
|
298
|
+
function padHex(hex: string, byteCount?: number): string;
|
|
296
299
|
```
|
|
297
300
|
|
|
298
301
|
## Parameters
|
|
299
302
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
`string`
|
|
303
|
-
|
|
304
|
-
### byteCount?
|
|
305
|
-
|
|
306
|
-
`number` = `0`
|
|
303
|
+
| Parameter | Type | Default value |
|
|
304
|
+
| ------ | ------ | ------ |
|
|
305
|
+
| `hex` | `string` | `undefined` |
|
|
306
|
+
| `byteCount` | `number` | `0` |
|
|
307
307
|
|
|
308
308
|
## Returns
|
|
309
309
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
/** Type guard that checks if the given object is an instance of EthAddressWrapper. */
|
|
1
2
|
export declare const isEthAddressWrapper: (obj: {
|
|
2
3
|
type: string;
|
|
3
4
|
}) => obj is {
|
|
4
5
|
type: string;
|
|
5
6
|
} & EthAddressWrapper;
|
|
7
|
+
/** Wrapper around an Ethereum address providing parsing, formatting, validation, and checksum support. */
|
|
6
8
|
export declare class EthAddressWrapper {
|
|
7
9
|
private address;
|
|
8
10
|
protected constructor(address: bigint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EthAddress.d.ts","sourceRoot":"","sources":["../../src/EthAddress.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,GAAI,KAAK;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;UAAR,MAAM;qBAAuC,CAAA;AAE9F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAQ;IAEvB,SAAS,aAAa,OAAO,EAAE,MAAM;IAIrC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,SAAK;IAO3C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM;IAM1C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAI/B,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO;IAQ5D,WAAW;IAIX,KAAK;IAIL,MAAM,IAAI,MAAM;IAIhB,iBAAiB;IAIjB,aAAa,CAAC,MAAM,SAAI;IAIxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;IAQ7C,QAAQ;CAGT"}
|
|
1
|
+
{"version":3,"file":"EthAddress.d.ts","sourceRoot":"","sources":["../../src/EthAddress.ts"],"names":[],"mappings":"AAMA,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,GAAI,KAAK;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;UAAR,MAAM;qBAAuC,CAAA;AAE9F,0GAA0G;AAC1G,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAQ;IAEvB,SAAS,aAAa,OAAO,EAAE,MAAM;IAIrC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,SAAK;IAO3C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM;IAM1C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAI/B,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO;IAQ5D,WAAW;IAIX,KAAK;IAIL,MAAM,IAAI,MAAM;IAIhB,iBAAiB;IAIjB,aAAa,CAAC,MAAM,SAAI;IAIxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;IAQ7C,QAAQ;CAGT"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Truncates a string to show the first and last `length` characters separated by an ellipsis.
|
|
3
|
+
* @param value - The string to ellipsize
|
|
4
|
+
* @param length - Number of characters to keep at each end (default 2)
|
|
5
|
+
* @returns The ellipsized string
|
|
6
|
+
*/
|
|
1
7
|
export declare const ellipsize: (value: string, length?: number) => string;
|
|
2
8
|
//# sourceMappingURL=ellipsize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipsize.d.ts","sourceRoot":"","sources":["../../src/ellipsize.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,eAAU,WAIlD,CAAA"}
|
|
1
|
+
{"version":3,"file":"ellipsize.d.ts","sourceRoot":"","sources":["../../src/ellipsize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,eAAU,WAIlD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ellipsize.ts","../../src/EthAddress.ts","../../src/padHex.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/ellipsize.ts","../../src/EthAddress.ts","../../src/padHex.ts"],"sourcesContent":["/**\n * Truncates a string to show the first and last `length` characters separated by an ellipsis.\n * @param value - The string to ellipsize\n * @param length - Number of characters to keep at each end (default 2)\n * @returns The ellipsized string\n */\nexport const ellipsize = (value: string, length = 2) => {\n const part1 = value.slice(0, length)\n const part2 = value.slice(value.length - length)\n return `${part1}...${part2}`\n}\n","import { assertEx } from '@xylabs/assert'\nimport { getAddress } from 'ethers'\n\nimport { ellipsize } from './ellipsize.ts'\nimport { padHex } from './padHex.ts'\n\n/** Type guard that checks if the given object is an instance of EthAddressWrapper. */\nexport const isEthAddressWrapper = (obj: { type: string }) => obj instanceof EthAddressWrapper\n\n/** Wrapper around an Ethereum address providing parsing, formatting, validation, and checksum support. */\nexport class EthAddressWrapper {\n private address: bigint\n\n protected constructor(address: bigint) {\n this.address = address\n }\n\n static fromString(value?: string, base = 16) {\n if (value !== undefined) {\n const bi = base === 16 ? BigInt(value.startsWith('0x') ? value : `0x${value}`) : BigInt(value)\n return new EthAddressWrapper(bi)\n }\n }\n\n static parse(value: unknown, base?: number) {\n if (typeof value === 'string') {\n return this.fromString(value, base)\n }\n }\n\n static validate(address: string) {\n return /^(0x)?[\\da-f]{40}$/i.test(address)\n }\n\n equals(address?: EthAddressWrapper | string | null): boolean {\n if (address !== null && address !== undefined) {\n const inAddress = typeof address === 'string' ? assertEx(EthAddressWrapper.fromString(address), () => 'Bad Address') : address\n return this.address === inAddress.address\n }\n return false\n }\n\n toBigNumber() {\n return this.address\n }\n\n toHex() {\n return padHex(this.address.toString(16), 20)\n }\n\n toJSON(): string {\n return `0x${this.toHex()}`\n }\n\n toLowerCaseString() {\n return this.toString().toLowerCase()\n }\n\n toShortString(length = 2) {\n return `0x${ellipsize(this.toHex(), length)}`\n }\n\n toString(checksum?: boolean, chainId?: string) {\n if (checksum) {\n const strippedAddress = this.toHex()\n return getAddress(chainId === undefined ? `0x${strippedAddress}` : `${chainId}0x${strippedAddress}`)\n }\n return `0x${this.toHex()}`\n }\n\n validate() {\n return EthAddressWrapper.validate(this.toString())\n }\n}\n","const padHex = (hex: string, byteCount = 0) => {\n let result = hex\n if (hex.length % 2 !== 0) {\n result = `0${hex}`\n }\n\n while (result.length / 2 < byteCount) {\n result = `00${result}`\n }\n\n return result\n}\n\nexport { padHex }\n"],"mappings":";AAMO,IAAM,YAAY,CAAC,OAAe,SAAS,MAAM;AACtD,QAAM,QAAQ,MAAM,MAAM,GAAG,MAAM;AACnC,QAAM,QAAQ,MAAM,MAAM,MAAM,SAAS,MAAM;AAC/C,SAAO,GAAG,KAAK,MAAM,KAAK;AAC5B;;;ACVA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;;;ACD3B,IAAM,SAAS,CAAC,KAAa,YAAY,MAAM;AAC7C,MAAI,SAAS;AACb,MAAI,IAAI,SAAS,MAAM,GAAG;AACxB,aAAS,IAAI,GAAG;AAAA,EAClB;AAEA,SAAO,OAAO,SAAS,IAAI,WAAW;AACpC,aAAS,KAAK,MAAM;AAAA,EACtB;AAEA,SAAO;AACT;;;ADJO,IAAM,sBAAsB,CAAC,QAA0B,eAAe;AAGtE,IAAM,oBAAN,MAAM,mBAAkB;AAAA,EACrB;AAAA,EAEE,YAAY,SAAiB;AACrC,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,OAAO,WAAW,OAAgB,OAAO,IAAI;AAC3C,QAAI,UAAU,QAAW;AACvB,YAAM,KAAK,SAAS,KAAK,OAAO,MAAM,WAAW,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE,IAAI,OAAO,KAAK;AAC7F,aAAO,IAAI,mBAAkB,EAAE;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,OAAO,MAAM,OAAgB,MAAe;AAC1C,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,KAAK,WAAW,OAAO,IAAI;AAAA,IACpC;AAAA,EACF;AAAA,EAEA,OAAO,SAAS,SAAiB;AAC/B,WAAO,sBAAsB,KAAK,OAAO;AAAA,EAC3C;AAAA,EAEA,OAAO,SAAsD;AAC3D,QAAI,YAAY,QAAQ,YAAY,QAAW;AAC7C,YAAM,YAAY,OAAO,YAAY,WAAW,SAAS,mBAAkB,WAAW,OAAO,GAAG,MAAM,aAAa,IAAI;AACvH,aAAO,KAAK,YAAY,UAAU;AAAA,IACpC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,QAAQ;AACN,WAAO,OAAO,KAAK,QAAQ,SAAS,EAAE,GAAG,EAAE;AAAA,EAC7C;AAAA,EAEA,SAAiB;AACf,WAAO,KAAK,KAAK,MAAM,CAAC;AAAA,EAC1B;AAAA,EAEA,oBAAoB;AAClB,WAAO,KAAK,SAAS,EAAE,YAAY;AAAA,EACrC;AAAA,EAEA,cAAc,SAAS,GAAG;AACxB,WAAO,KAAK,UAAU,KAAK,MAAM,GAAG,MAAM,CAAC;AAAA,EAC7C;AAAA,EAEA,SAAS,UAAoB,SAAkB;AAC7C,QAAI,UAAU;AACZ,YAAM,kBAAkB,KAAK,MAAM;AACnC,aAAO,WAAW,YAAY,SAAY,KAAK,eAAe,KAAK,GAAG,OAAO,KAAK,eAAe,EAAE;AAAA,IACrG;AACA,WAAO,KAAK,KAAK,MAAM,CAAC;AAAA,EAC1B;AAAA,EAEA,WAAW;AACT,WAAO,mBAAkB,SAAS,KAAK,SAAS,CAAC;AAAA,EACnD;AACF;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xylabs/eth-address",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.86",
|
|
4
4
|
"description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eth",
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"!**/*.test.*"
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@xylabs/assert": "~5.0.
|
|
47
|
+
"@xylabs/assert": "~5.0.86",
|
|
48
48
|
"ethers": "^6.16.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@xylabs/ts-scripts-yarn3": "~7.4.
|
|
52
|
-
"@xylabs/tsconfig": "~7.4.
|
|
51
|
+
"@xylabs/ts-scripts-yarn3": "~7.4.16",
|
|
52
|
+
"@xylabs/tsconfig": "~7.4.16",
|
|
53
53
|
"typescript": "~5.9.3",
|
|
54
54
|
"vitest": "~4.0.18"
|
|
55
55
|
},
|