chore: update dependencies

This commit is contained in:
Simon Chan 2024-08-20 12:08:00 +08:00
parent 835796ec7b
commit 677aabc73c
No known key found for this signature in database
GPG key ID: A8B69F750B9BCEDD
25 changed files with 192 additions and 146 deletions

View file

@ -41,7 +41,7 @@
"source-map-support": "^0.5.21" "source-map-support": "^0.5.21"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",
"prettier": "^3.3.3", "prettier": "^3.3.3",

View file

@ -63,6 +63,12 @@ async function getAllKeys() {
}); });
} }
/**
* An `AdbCredentialStore` implementation that creates RSA private keys using Web Crypto API
* and stores them in IndexedDB.
*
* [Online Documentation](https://docs.tangoapp.dev/tango/daemon/credential-store/)
*/
export default class AdbWebCredentialStore implements AdbCredentialStore { export default class AdbWebCredentialStore implements AdbCredentialStore {
#appName: string; #appName: string;

View file

@ -38,7 +38,7 @@
"@yume-chan/struct": "workspace:^0.0.24" "@yume-chan/struct": "workspace:^0.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

View file

@ -343,8 +343,9 @@ export class AdbDaemonWebUsbDevice implements AdbDaemonDevice {
} }
/** /**
* Claim the device and create a pair of `AdbPacket` streams to the ADB interface. * Open the device and create a new connection to the ADB Daemon.
* @returns The pair of `AdbPacket` streams. *
* [Online Documentation](https://docs.tangoapp.dev/tango/daemon/usb/create-connection/)
*/ */
async connect(): Promise<AdbDaemonWebUsbConnection> { async connect(): Promise<AdbDaemonWebUsbConnection> {
const [inEndpoint, outEndpoint] = await this.#claimInterface(); const [inEndpoint, outEndpoint] = await this.#claimInterface();

View file

@ -12,6 +12,9 @@ export namespace AdbDaemonWebUsbDeviceManager {
} }
} }
/**
* [Online Documentation](https://docs.tangoapp.dev/tango/daemon/usb/device-manager/)
*/
export class AdbDaemonWebUsbDeviceManager { export class AdbDaemonWebUsbDeviceManager {
/** /**
* Gets the instance of {@link AdbDaemonWebUsbDeviceManager} using browser WebUSB implementation. * Gets the instance of {@link AdbDaemonWebUsbDeviceManager} using browser WebUSB implementation.
@ -35,17 +38,9 @@ export class AdbDaemonWebUsbDeviceManager {
} }
/** /**
* Request access to a connected device. * Call `USB#requestDevice()` to prompt the user to select a device.
* This is a convince method for `usb.requestDevice()`.
* @param filters
* The filters to apply to the device list.
* *
* It must have `classCode`, `subclassCode` and `protocolCode` fields for selecting the ADB interface, * [Online Documentation](https://docs.tangoapp.dev/tango/daemon/usb/request-device/)
* but might also have `vendorId`, `productId` or `serialNumber` fields to limit the displayed device list.
*
* Defaults to {@link ADB_DEFAULT_INTERFACE_FILTER}.
* @returns An {@link AdbDaemonWebUsbDevice} instance if the user selected a device,
* or `undefined` if the user cancelled the device picker.
*/ */
async requestDevice( async requestDevice(
options: AdbDaemonWebUsbDeviceManager.RequestDeviceOptions = {}, options: AdbDaemonWebUsbDeviceManager.RequestDeviceOptions = {},
@ -69,16 +64,9 @@ export class AdbDaemonWebUsbDeviceManager {
} }
/** /**
* Get all connected and authenticated devices. * Get all connected and requested devices that match the specified filters.
* This is a convince method for `usb.getDevices()`.
* @param filters
* The filters to apply to the device list.
* *
* It must have `classCode`, `subclassCode` and `protocolCode` fields for selecting the ADB interface, * [Online Documentation](https://docs.tangoapp.dev/tango/daemon/usb/get-devices/)
* but might also have `vendorId`, `productId` or `serialNumber` fields to limit the device list.
*
* Defaults to {@link ADB_DEFAULT_INTERFACE_FILTER}.
* @returns An array of {@link AdbDaemonWebUsbDevice} instances for all connected and authenticated devices.
*/ */
getDevices( getDevices(
filters?: USBDeviceFilter[] | undefined, filters?: USBDeviceFilter[] | undefined,

View file

@ -1,3 +1,9 @@
/**
* A watcher that listens for new WebUSB devices and notifies the callback when
* a new device is connected or disconnected.
*
* [Online Documentation](https://docs.tangoapp.dev/tango/daemon/usb/watch-devices/)
*/
export class AdbDaemonWebUsbDeviceWatcher { export class AdbDaemonWebUsbDeviceWatcher {
#callback: (newDeviceSerial?: string) => void; #callback: (newDeviceSerial?: string) => void;
#usbManager: USB; #usbManager: USB;

View file

@ -37,7 +37,7 @@
"@yume-chan/struct": "workspace:^0.0.24" "@yume-chan/struct": "workspace:^0.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",
"prettier": "^3.3.3", "prettier": "^3.3.3",

View file

@ -37,8 +37,8 @@ function nodeSocketToConnection(
}); });
}), }),
writable: new WritableStream<Uint8Array>({ writable: new WritableStream<Uint8Array>({
write: async (chunk) => { write: (chunk) => {
await new Promise<void>((resolve, reject) => { return new Promise<void>((resolve, reject) => {
socket.write(chunk, (err) => { socket.write(chunk, (err) => {
if (err) { if (err) {
reject(err); reject(err);
@ -58,6 +58,11 @@ function nodeSocketToConnection(
}; };
} }
/**
* An `AdbServerClient.ServerConnector` implementation for Node.js.
*
* [Online Documentation](https://docs.tangoapp.dev/tango/server/client/)
*/
export class AdbServerNodeTcpConnector export class AdbServerNodeTcpConnector
implements AdbServerClient.ServerConnector implements AdbServerClient.ServerConnector
{ {

View file

@ -39,7 +39,7 @@
"@yume-chan/struct": "workspace:^0.0.24" "@yume-chan/struct": "workspace:^0.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

View file

@ -22,6 +22,11 @@ export interface Closeable {
close(): ValueOrPromise<void>; close(): ValueOrPromise<void>;
} }
/**
* Represents an ADB socket.
*
* [Online Documentation](https://docs.tangoapp.dev/api/socket/)
*/
export interface AdbSocket export interface AdbSocket
extends ReadableWritablePair<Uint8Array, MaybeConsumable<Uint8Array>>, extends ReadableWritablePair<Uint8Array, MaybeConsumable<Uint8Array>>,
Closeable { Closeable {
@ -105,6 +110,11 @@ export class Adb implements Closeable {
); );
} }
/**
* Creates a new ADB Socket to the specified service or socket address.
*
* [Online Documentation](https://docs.tangoapp.dev/api/socket/#forward-tunnel)
*/
async createSocket(service: string): Promise<AdbSocket> { async createSocket(service: string): Promise<AdbSocket> {
return this.transport.connect(service); return this.transport.connect(service);
} }

View file

@ -89,6 +89,11 @@ export class AdbReverseCommand extends AutoDisposable {
return stream; return stream;
} }
/**
* Get a list of all reverse port forwarding on the device.
*
* [Online Documentation](https://docs.tangoapp.dev/api/reverse/list/)
*/
async list(): Promise<AdbForwardListener[]> { async list(): Promise<AdbForwardListener[]> {
const stream = await this.createBufferedStream("reverse:list-forward"); const stream = await this.createBufferedStream("reverse:list-forward");
@ -107,10 +112,9 @@ export class AdbReverseCommand extends AutoDisposable {
} }
/** /**
* Add an already existing reverse tunnel. Depends on the transport type, this may not do anything. * Add a reverse port forwarding for a program that already listens on a port.
* @param deviceAddress The address to be listened on device by ADB daemon. Or `tcp:0` to choose an available TCP port. *
* @param localAddress The address that listens on the local machine. * [Online Documentation](https://docs.tangoapp.dev/api/reverse/add/#addexternal)
* @returns `tcp:{ACTUAL_LISTENING_PORT}`, If `deviceAddress` is `tcp:0`; otherwise, `deviceAddress`.
*/ */
async addExternal(deviceAddress: string, localAddress: string) { async addExternal(deviceAddress: string, localAddress: string) {
const stream = await this.sendRequest( const stream = await this.sendRequest(
@ -143,12 +147,9 @@ export class AdbReverseCommand extends AutoDisposable {
} }
/** /**
* @param deviceAddress The address to be listened on device by ADB daemon. Or `tcp:0` to choose an available TCP port. * Add a reverse port forwarding.
* @param handler A callback to handle incoming connections. *
* @param localAddressThe The address that listens on the local machine. May be `undefined` to let the transport choose an appropriate one. * [Online Documentation](https://docs.tangoapp.dev/api/reverse/add/)
* @returns `tcp:{ACTUAL_LISTENING_PORT}`, If `deviceAddress` is `tcp:0`; otherwise, `deviceAddress`.
* @throws {AdbReverseNotSupportedError} If ADB reverse tunnel is not supported on this device when connected wirelessly.
* @throws {AdbReverseError} If ADB daemon returns an error.
*/ */
async add( async add(
deviceAddress: string, deviceAddress: string,
@ -170,6 +171,11 @@ export class AdbReverseCommand extends AutoDisposable {
} }
} }
/**
* Remove a reverse port forwarding.
*
* [Online Documentation](https://docs.tangoapp.dev/api/reverse/remove/#remove-one-port-forwarding)
*/
async remove(deviceAddress: string): Promise<void> { async remove(deviceAddress: string): Promise<void> {
const localAddress = const localAddress =
this.#deviceAddressToLocalAddress.get(deviceAddress); this.#deviceAddressToLocalAddress.get(deviceAddress);
@ -182,6 +188,11 @@ export class AdbReverseCommand extends AutoDisposable {
// No need to close the stream, device will close it // No need to close the stream, device will close it
} }
/**
* Remove all reverse port forwarding, including the ones added by other programs.
*
* [Online Documentation](https://docs.tangoapp.dev/api/reverse/remove/#remove-all-port-forwardings)
*/
async removeAll(): Promise<void> { async removeAll(): Promise<void> {
await this.adb.transport.clearReverseTunnels(); await this.adb.transport.clearReverseTunnels();
this.#deviceAddressToLocalAddress.clear(); this.#deviceAddressToLocalAddress.clear();

View file

@ -172,8 +172,8 @@ export class AdbSync extends AutoDisposable {
return this._socket.lock(); return this._socket.lock();
} }
override async dispose() { override dispose() {
super.dispose(); super.dispose();
await this._socket.close(); void this._socket.close();
} }
} }

View file

@ -148,14 +148,16 @@ interface AdbDaemonSocketConnectorConstructionOptions {
readTimeLimit?: number | undefined; readTimeLimit?: number | undefined;
} }
/**
* An ADB Transport that connects to ADB Daemons directly.
*
* [Online Documentation](https://docs.tangoapp.dev/tango/daemon/)
*/
export class AdbDaemonTransport implements AdbTransport { export class AdbDaemonTransport implements AdbTransport {
/** /**
* Authenticates the connection and creates an `AdbDaemonTransport` instance * Authenticate with the ADB Daemon and create a new transport.
* that can be used by `Adb` class.
* *
* If an authentication process failed, * [Online Documentation](https://docs.tangoapp.dev/tango/daemon/connect-device/)
* no matter which value the `preserveConnection` option has,
* the `connection` is always kept open, so it can be used in another `authenticate` call.
*/ */
static async authenticate({ static async authenticate({
serial, serial,

View file

@ -126,6 +126,11 @@ class AdbServerStream {
} }
} }
/**
* Client for the ADB Server.
*
* [Online Documentation](https://docs.tangoapp.dev/tango/server/client/)
*/
export class AdbServerClient { export class AdbServerClient {
static readonly VERSION = 41; static readonly VERSION = 41;
@ -280,7 +285,11 @@ export class AdbServerClient {
} }
/** /**
* `adb devices -l` * Get a list of connected devices from ADB Server.
*
* Equivalent ADB Command: `adb devices -l`
*
* [Online Documentation](https://docs.tangoapp.dev/tango/server/devices/)
*/ */
async getDevices(): Promise<AdbServerClient.Device[]> { async getDevices(): Promise<AdbServerClient.Device[]> {
const connection = await this.createConnection("host:devices-l"); const connection = await this.createConnection("host:devices-l");
@ -293,11 +302,9 @@ export class AdbServerClient {
} }
/** /**
* Track the device list. * Monitors device list changes.
* *
* @param signal An optional `AbortSignal` to stop tracking * [Online Documentation](https://docs.tangoapp.dev/tango/server/watch/)
*
* When `signal` is aborted, `trackDevices` will return normally, instead of throwing `signal.reason`.
*/ */
async *trackDevices( async *trackDevices(
signal?: AbortSignal, signal?: AbortSignal,
@ -491,6 +498,11 @@ export class AdbServerClient {
} }
} }
/**
* Creates an ADB Transport for the specified device.
*
* [Online Documentation](https://docs.tangoapp.dev/tango/server/transport/)
*/
async createTransport( async createTransport(
device: AdbServerClient.DeviceSelector, device: AdbServerClient.DeviceSelector,
): Promise<AdbServerTransport> { ): Promise<AdbServerTransport> {
@ -579,6 +591,11 @@ export namespace AdbServerClient {
transportId: bigint; transportId: bigint;
} }
/**
* A union type for selecting a device.
*
* [Online Documentation](https://docs.tangoapp.dev/tango/server/selector/)
*/
export type DeviceSelector = export type DeviceSelector =
| { transportId: bigint } | { transportId: bigint }
| { serial: string } | { serial: string }

View file

@ -37,7 +37,7 @@
"@yume-chan/struct": "workspace:^0.0.24" "@yume-chan/struct": "workspace:^0.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

View file

@ -36,7 +36,7 @@
"@yume-chan/async": "^2.2.0" "@yume-chan/async": "^2.2.0"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

View file

@ -31,6 +31,6 @@
"gh-release-fetch": "^4.0.3" "gh-release-fetch": "^4.0.3"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0" "@types/node": "^22.4.1"
} }
} }

View file

@ -30,7 +30,7 @@
"test": "run-test" "test": "run-test"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

View file

@ -39,7 +39,7 @@
"@yume-chan/struct": "workspace:^0.0.24" "@yume-chan/struct": "workspace:^0.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

View file

@ -36,7 +36,7 @@
"@yume-chan/struct": "workspace:^0.0.24" "@yume-chan/struct": "workspace:^0.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

View file

@ -37,7 +37,7 @@
"@yume-chan/no-data-view": "workspace:^0.0.24" "@yume-chan/no-data-view": "workspace:^0.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/eslint-config": "workspace:^1.0.0",
"@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0",
"@yume-chan/tsconfig": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0",

172
pnpm-lock.yaml generated
View file

@ -34,8 +34,8 @@ importers:
version: 0.5.21 version: 0.5.21
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -68,8 +68,8 @@ importers:
version: link:../struct version: link:../struct
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -121,8 +121,8 @@ importers:
version: link:../struct version: link:../struct
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -186,8 +186,8 @@ importers:
version: link:../struct version: link:../struct
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -214,8 +214,8 @@ importers:
version: link:../struct version: link:../struct
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -258,8 +258,8 @@ importers:
version: 2.2.0 version: 2.2.0
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -283,14 +283,14 @@ importers:
version: 4.0.3 version: 4.0.3
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
libraries/no-data-view: libraries/no-data-view:
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -344,8 +344,8 @@ importers:
version: link:../struct version: link:../struct
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -440,8 +440,8 @@ importers:
version: link:../struct version: link:../struct
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -465,8 +465,8 @@ importers:
version: link:../no-data-view version: link:../no-data-view
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
'@yume-chan/eslint-config': '@yume-chan/eslint-config':
specifier: workspace:^1.0.0 specifier: workspace:^1.0.0
version: link:../../toolchain/eslint-config version: link:../../toolchain/eslint-config
@ -489,8 +489,8 @@ importers:
specifier: ^9.9.0 specifier: ^9.9.0
version: 9.9.0 version: 9.9.0
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
eslint: eslint:
specifier: ^9.9.0 specifier: ^9.9.0
version: 9.9.0 version: 9.9.0
@ -501,8 +501,8 @@ importers:
specifier: ^5.5.4 specifier: ^5.5.4
version: 5.5.4 version: 5.5.4
typescript-eslint: typescript-eslint:
specifier: ^8.0.1 specifier: ^8.2.0
version: 8.0.1(eslint@9.9.0)(typescript@5.5.4) version: 8.2.0(eslint@9.9.0)(typescript@5.5.4)
devDependencies: devDependencies:
prettier: prettier:
specifier: ^3.3.3 specifier: ^3.3.3
@ -511,8 +511,8 @@ importers:
toolchain/package-lint: toolchain/package-lint:
dependencies: dependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
json5: json5:
specifier: ^2.2.3 specifier: ^2.2.3
version: 2.2.3 version: 2.2.3
@ -520,8 +520,8 @@ importers:
toolchain/test-runner: toolchain/test-runner:
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.2.0 specifier: ^22.4.1
version: 22.2.0 version: 22.4.1
typescript: typescript:
specifier: ^5.5.4 specifier: ^5.5.4
version: 5.5.4 version: 5.5.4
@ -665,8 +665,8 @@ packages:
'@types/node@12.20.55': '@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
'@types/node@22.2.0': '@types/node@22.4.1':
resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} resolution: {integrity: sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==}
'@types/semver@7.5.8': '@types/semver@7.5.8':
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
@ -674,8 +674,8 @@ packages:
'@types/w3c-web-usb@1.0.10': '@types/w3c-web-usb@1.0.10':
resolution: {integrity: sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==} resolution: {integrity: sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==}
'@typescript-eslint/eslint-plugin@8.0.1': '@typescript-eslint/eslint-plugin@8.2.0':
resolution: {integrity: sha512-5g3Y7GDFsJAnY4Yhvk8sZtFfV6YNF2caLzjrRPUBzewjPCaj0yokePB4LJSobyCzGMzjZZYFbwuzbfDHlimXbQ==} resolution: {integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
@ -685,8 +685,8 @@ packages:
typescript: typescript:
optional: true optional: true
'@typescript-eslint/parser@8.0.1': '@typescript-eslint/parser@8.2.0':
resolution: {integrity: sha512-5IgYJ9EO/12pOUwiBKFkpU7rS3IU21mtXzB81TNwq2xEybcmAZrE9qwDtsb5uQd9aVO9o0fdabFyAmKveXyujg==} resolution: {integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
@ -699,12 +699,12 @@ packages:
resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==} resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/scope-manager@8.0.1': '@typescript-eslint/scope-manager@8.2.0':
resolution: {integrity: sha512-NpixInP5dm7uukMiRyiHjRKkom5RIFA4dfiHvalanD2cF0CLUuQqxfg8PtEUo9yqJI2bBhF+pcSafqnG3UBnRQ==} resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/type-utils@8.0.1': '@typescript-eslint/type-utils@8.2.0':
resolution: {integrity: sha512-+/UT25MWvXeDX9YaHv1IS6KI1fiuTto43WprE7pgSMswHbn1Jm9GEM4Txp+X74ifOWV8emu2AWcbLhpJAvD5Ng==} resolution: {integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -716,8 +716,8 @@ packages:
resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/types@8.0.1': '@typescript-eslint/types@8.2.0':
resolution: {integrity: sha512-PpqTVT3yCA/bIgJ12czBuE3iBlM3g4inRSC5J0QOdQFAn07TYrYEQBBKgXH1lQpglup+Zy6c1fxuwTk4MTNKIw==} resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@7.17.0': '@typescript-eslint/typescript-estree@7.17.0':
@ -729,8 +729,8 @@ packages:
typescript: typescript:
optional: true optional: true
'@typescript-eslint/typescript-estree@8.0.1': '@typescript-eslint/typescript-estree@8.2.0':
resolution: {integrity: sha512-8V9hriRvZQXPWU3bbiUV4Epo7EvgM6RTs+sUmxp5G//dBGy402S7Fx0W0QkB2fb4obCF8SInoUzvTYtc3bkb5w==} resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -744,8 +744,8 @@ packages:
peerDependencies: peerDependencies:
eslint: ^8.56.0 eslint: ^8.56.0
'@typescript-eslint/utils@8.0.1': '@typescript-eslint/utils@8.2.0':
resolution: {integrity: sha512-CBFR0G0sCt0+fzfnKaciu9IBsKvEKYwN9UZ+eeogK1fYHg4Qxk1yf/wLQkLXlq8wbU2dFlgAesxt8Gi76E8RTA==} resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
@ -754,8 +754,8 @@ packages:
resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/visitor-keys@8.0.1': '@typescript-eslint/visitor-keys@8.2.0':
resolution: {integrity: sha512-W5E+o0UfUcK5EgchLZsyVWqARmsM7v54/qEq6PY3YI5arkgmCzHiuk0zKSJJbm71V0xdRna4BGomkCTXz2/LkQ==} resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@xhmikosr/archive-type@6.0.1': '@xhmikosr/archive-type@6.0.1':
@ -1708,8 +1708,8 @@ packages:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'} engines: {node: '>= 0.8.0'}
typescript-eslint@8.0.1: typescript-eslint@8.2.0:
resolution: {integrity: sha512-V3Y+MdfhawxEjE16dWpb7/IOgeXnLwAEEkS7v8oDqNcR1oYlqWhGH/iHqHdKVdpWme1VPZ0SoywXAkCqawj2eQ==} resolution: {integrity: sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -1725,8 +1725,8 @@ packages:
unbzip2-stream@1.4.3: unbzip2-stream@1.4.3:
resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==}
undici-types@6.13.0: undici-types@6.19.8:
resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
universalify@0.1.2: universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
@ -2016,22 +2016,22 @@ snapshots:
'@types/node@12.20.55': {} '@types/node@12.20.55': {}
'@types/node@22.2.0': '@types/node@22.4.1':
dependencies: dependencies:
undici-types: 6.13.0 undici-types: 6.19.8
'@types/semver@7.5.8': {} '@types/semver@7.5.8': {}
'@types/w3c-web-usb@1.0.10': {} '@types/w3c-web-usb@1.0.10': {}
'@typescript-eslint/eslint-plugin@8.0.1(@typescript-eslint/parser@8.0.1(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)': '@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)':
dependencies: dependencies:
'@eslint-community/regexpp': 4.11.0 '@eslint-community/regexpp': 4.11.0
'@typescript-eslint/parser': 8.0.1(eslint@9.9.0)(typescript@5.5.4) '@typescript-eslint/parser': 8.2.0(eslint@9.9.0)(typescript@5.5.4)
'@typescript-eslint/scope-manager': 8.0.1 '@typescript-eslint/scope-manager': 8.2.0
'@typescript-eslint/type-utils': 8.0.1(eslint@9.9.0)(typescript@5.5.4) '@typescript-eslint/type-utils': 8.2.0(eslint@9.9.0)(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.1(eslint@9.9.0)(typescript@5.5.4) '@typescript-eslint/utils': 8.2.0(eslint@9.9.0)(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.0.1 '@typescript-eslint/visitor-keys': 8.2.0
eslint: 9.9.0 eslint: 9.9.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.3.1 ignore: 5.3.1
@ -2042,12 +2042,12 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/parser@8.0.1(eslint@9.9.0)(typescript@5.5.4)': '@typescript-eslint/parser@8.2.0(eslint@9.9.0)(typescript@5.5.4)':
dependencies: dependencies:
'@typescript-eslint/scope-manager': 8.0.1 '@typescript-eslint/scope-manager': 8.2.0
'@typescript-eslint/types': 8.0.1 '@typescript-eslint/types': 8.2.0
'@typescript-eslint/typescript-estree': 8.0.1(typescript@5.5.4) '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.0.1 '@typescript-eslint/visitor-keys': 8.2.0
debug: 4.3.6 debug: 4.3.6
eslint: 9.9.0 eslint: 9.9.0
optionalDependencies: optionalDependencies:
@ -2060,15 +2060,15 @@ snapshots:
'@typescript-eslint/types': 7.17.0 '@typescript-eslint/types': 7.17.0
'@typescript-eslint/visitor-keys': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0
'@typescript-eslint/scope-manager@8.0.1': '@typescript-eslint/scope-manager@8.2.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.0.1 '@typescript-eslint/types': 8.2.0
'@typescript-eslint/visitor-keys': 8.0.1 '@typescript-eslint/visitor-keys': 8.2.0
'@typescript-eslint/type-utils@8.0.1(eslint@9.9.0)(typescript@5.5.4)': '@typescript-eslint/type-utils@8.2.0(eslint@9.9.0)(typescript@5.5.4)':
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 8.0.1(typescript@5.5.4) '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.1(eslint@9.9.0)(typescript@5.5.4) '@typescript-eslint/utils': 8.2.0(eslint@9.9.0)(typescript@5.5.4)
debug: 4.3.6 debug: 4.3.6
ts-api-utils: 1.3.0(typescript@5.5.4) ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies: optionalDependencies:
@ -2079,7 +2079,7 @@ snapshots:
'@typescript-eslint/types@7.17.0': {} '@typescript-eslint/types@7.17.0': {}
'@typescript-eslint/types@8.0.1': {} '@typescript-eslint/types@8.2.0': {}
'@typescript-eslint/typescript-estree@7.17.0(typescript@5.5.4)': '@typescript-eslint/typescript-estree@7.17.0(typescript@5.5.4)':
dependencies: dependencies:
@ -2096,10 +2096,10 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/typescript-estree@8.0.1(typescript@5.5.4)': '@typescript-eslint/typescript-estree@8.2.0(typescript@5.5.4)':
dependencies: dependencies:
'@typescript-eslint/types': 8.0.1 '@typescript-eslint/types': 8.2.0
'@typescript-eslint/visitor-keys': 8.0.1 '@typescript-eslint/visitor-keys': 8.2.0
debug: 4.3.6 debug: 4.3.6
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
@ -2122,12 +2122,12 @@ snapshots:
- supports-color - supports-color
- typescript - typescript
'@typescript-eslint/utils@8.0.1(eslint@9.9.0)(typescript@5.5.4)': '@typescript-eslint/utils@8.2.0(eslint@9.9.0)(typescript@5.5.4)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0) '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0)
'@typescript-eslint/scope-manager': 8.0.1 '@typescript-eslint/scope-manager': 8.2.0
'@typescript-eslint/types': 8.0.1 '@typescript-eslint/types': 8.2.0
'@typescript-eslint/typescript-estree': 8.0.1(typescript@5.5.4) '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4)
eslint: 9.9.0 eslint: 9.9.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -2138,9 +2138,9 @@ snapshots:
'@typescript-eslint/types': 7.17.0 '@typescript-eslint/types': 7.17.0
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
'@typescript-eslint/visitor-keys@8.0.1': '@typescript-eslint/visitor-keys@8.2.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.0.1 '@typescript-eslint/types': 8.2.0
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
'@xhmikosr/archive-type@6.0.1': '@xhmikosr/archive-type@6.0.1':
@ -3067,11 +3067,11 @@ snapshots:
dependencies: dependencies:
prelude-ls: 1.2.1 prelude-ls: 1.2.1
typescript-eslint@8.0.1(eslint@9.9.0)(typescript@5.5.4): typescript-eslint@8.2.0(eslint@9.9.0)(typescript@5.5.4):
dependencies: dependencies:
'@typescript-eslint/eslint-plugin': 8.0.1(@typescript-eslint/parser@8.0.1(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4) '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)
'@typescript-eslint/parser': 8.0.1(eslint@9.9.0)(typescript@5.5.4) '@typescript-eslint/parser': 8.2.0(eslint@9.9.0)(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.1(eslint@9.9.0)(typescript@5.5.4) '@typescript-eslint/utils': 8.2.0(eslint@9.9.0)(typescript@5.5.4)
optionalDependencies: optionalDependencies:
typescript: 5.5.4 typescript: 5.5.4
transitivePeerDependencies: transitivePeerDependencies:
@ -3085,7 +3085,7 @@ snapshots:
buffer: 5.7.1 buffer: 5.7.1
through: 2.3.8 through: 2.3.8
undici-types@6.13.0: {} undici-types@6.19.8: {}
universalify@0.1.2: {} universalify@0.1.2: {}

View file

@ -9,11 +9,11 @@
}, },
"dependencies": { "dependencies": {
"@eslint/js": "^9.9.0", "@eslint/js": "^9.9.0",
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"eslint": "^9.9.0", "eslint": "^9.9.0",
"eslint-plugin-import-x": "^3.1.0", "eslint-plugin-import-x": "^3.1.0",
"typescript": "^5.5.4", "typescript": "^5.5.4",
"typescript-eslint": "^8.0.1" "typescript-eslint": "^8.2.0"
}, },
"devDependencies": { "devDependencies": {
"prettier": "^3.3.3" "prettier": "^3.3.3"

View file

@ -7,7 +7,7 @@
"scripts": {}, "scripts": {},
"keywords": [], "keywords": [],
"dependencies": { "dependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"json5": "^2.2.3" "json5": "^2.2.3"
}, },
"author": "", "author": "",

View file

@ -6,7 +6,7 @@
"run-test": "wrapper.js" "run-test": "wrapper.js"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.2.0", "@types/node": "^22.4.1",
"typescript": "^5.5.4" "typescript": "^5.5.4"
} }
} }