From 229e12493adee2d8319664d0d77f4f2ee038db76 Mon Sep 17 00:00:00 2001 From: Donavan Becker Date: Sun, 29 Dec 2024 19:53:25 -0600 Subject: [PATCH 1/5] update dependencies --- docs/classes/Advertising.html | 12 +- docs/classes/SwitchBotBLE.html | 16 +- docs/classes/SwitchBotOpenAPI.html | 14 +- docs/classes/SwitchbotDevice.html | 26 +- docs/classes/WoBlindTilt.html | 48 +- docs/classes/WoBulb.html | 44 +- docs/classes/WoCeilingLight.html | 50 +- docs/classes/WoContact.html | 30 +- docs/classes/WoCurtain.html | 42 +- docs/classes/WoHand.html | 40 +- docs/classes/WoHub2.html | 30 +- docs/classes/WoHumi.html | 44 +- docs/classes/WoIOSensorTH.html | 32 +- docs/classes/WoPlugMiniUS.html | 40 +- docs/classes/WoPresence.html | 30 +- docs/classes/WoSensorTH.html | 26 +- docs/classes/WoSmartLock.html | 62 +- docs/classes/WoSmartLockPro.html | 62 +- docs/classes/WoStrip.html | 44 +- docs/enums/LogLevel.html | 4 +- docs/enums/SwitchBotBLEModel.html | 4 +- docs/enums/SwitchBotBLEModelFriendlyName.html | 4 +- docs/enums/SwitchBotBLEModelName.html | 4 +- docs/enums/SwitchBotModel.html | 4 +- docs/interfaces/AdvertisementData.html | 4 +- docs/interfaces/Chars.html | 4 +- docs/interfaces/ErrorObject.html | 4 +- docs/interfaces/NobleTypes.html | 4 +- docs/interfaces/Params.html | 4 +- docs/interfaces/Rule.html | 4 +- docs/interfaces/ServiceData.html | 4 +- docs/interfaces/SwitchBotBLEDevice.html | 4 +- docs/interfaces/WebhookDetail.html | 4 +- docs/interfaces/ad.html | 4 +- docs/interfaces/body.html | 4 +- docs/interfaces/bodyChange.html | 4 +- docs/interfaces/deleteWebhookResponse.html | 4 +- docs/interfaces/device.html | 4 +- docs/interfaces/deviceList.html | 4 +- docs/interfaces/deviceStatus.html | 4 +- docs/interfaces/deviceStatusRequest.html | 4 +- docs/interfaces/deviceWebhook.html | 4 +- docs/interfaces/deviceWebhookContext.html | 4 +- docs/interfaces/devices.html | 4 +- docs/interfaces/infraredRemoteList.html | 4 +- docs/interfaces/irdevice.html | 4 +- docs/interfaces/pushResponse.html | 4 +- docs/interfaces/queryWebhookResponse.html | 4 +- docs/interfaces/setupWebhookResponse.html | 4 +- docs/interfaces/switchbot.html | 4 +- docs/interfaces/updateWebhookResponse.html | 4 +- docs/interfaces/webhookRequest.html | 4 +- docs/types/MacAddress.html | 2 +- docs/types/batteryCirculatorFan.html | 2 +- .../batteryCirculatorFanServiceData.html | 2 +- docs/types/batteryCirculatorFanStatus.html | 2 +- .../batteryCirculatorFanWebhookContext.html | 2 +- docs/types/blindTilt.html | 2 +- docs/types/blindTiltServiceData.html | 2 +- docs/types/blindTiltStatus.html | 2 +- docs/types/blindTiltWebhookContext.html | 2 +- docs/types/bot.html | 2 +- docs/types/botServiceData.html | 2 +- docs/types/botStatus.html | 2 +- docs/types/botWebhookContext.html | 2 +- docs/types/ceilingLight.html | 2 +- docs/types/ceilingLightPro.html | 2 +- docs/types/ceilingLightProServiceData.html | 2 +- docs/types/ceilingLightProStatus.html | 2 +- docs/types/ceilingLightProWebhookContext.html | 2 +- docs/types/ceilingLightServiceData.html | 2 +- docs/types/ceilingLightStatus.html | 2 +- docs/types/ceilingLightWebhookContext.html | 2 +- docs/types/circulatorFanStatus.html | 2 +- docs/types/circulatorFanWebhookContext.html | 2 +- docs/types/colorBulb.html | 2 +- docs/types/colorBulbServiceData.html | 2 +- docs/types/colorBulbStatus.html | 2 +- docs/types/colorBulbWebhookContext.html | 2 +- docs/types/contactSensor.html | 2 +- docs/types/contactSensorServiceData.html | 2 +- docs/types/contactSensorStatus.html | 2 +- docs/types/contactSensorWebhookContext.html | 2 +- docs/types/curtain.html | 2 +- docs/types/curtain3.html | 2 +- docs/types/curtain3ServiceData.html | 2 +- docs/types/curtain3WebhookContext.html | 2 +- docs/types/curtainServiceData.html | 2 +- docs/types/curtainStatus.html | 2 +- docs/types/curtainWebhookContext.html | 2 +- docs/types/floorCleaningRobotS10.html | 2 +- docs/types/floorCleaningRobotS10Status.html | 2 +- .../floorCleaningRobotS10WebhookContext.html | 2 +- docs/types/hub2.html | 2 +- docs/types/hub2ServiceData.html | 2 +- docs/types/hub2Status.html | 2 +- docs/types/hub2WebhookContext.html | 2 +- docs/types/humidifier.html | 2 +- docs/types/humidifier2ServiceData.html | 2 +- docs/types/humidifier2Status.html | 2 +- docs/types/humidifier2WebhookContext.html | 2 +- docs/types/humidifierServiceData.html | 2 +- docs/types/humidifierStatus.html | 2 +- docs/types/humidifierWebhookContext.html | 2 +- docs/types/indoorCam.html | 2 +- docs/types/indoorCameraWebhookContext.html | 2 +- docs/types/keypad.html | 2 +- docs/types/keypadDetectorServiceData.html | 2 +- docs/types/keypadTouch.html | 2 +- docs/types/keypadTouchWebhookContext.html | 2 +- docs/types/keypadWebhookContext.html | 2 +- docs/types/lock.html | 2 +- docs/types/lockPro.html | 2 +- docs/types/lockProServiceData.html | 2 +- docs/types/lockProStatus.html | 2 +- docs/types/lockProWebhookContext.html | 2 +- docs/types/lockServiceData.html | 2 +- docs/types/lockStatus.html | 2 +- docs/types/lockWebhookContext.html | 2 +- docs/types/meter.html | 2 +- docs/types/meterPlus.html | 2 +- docs/types/meterPlusServiceData.html | 2 +- docs/types/meterPlusStatus.html | 2 +- docs/types/meterPlusWebhookContext.html | 2 +- docs/types/meterPro.html | 2 +- docs/types/meterProCO2ServiceData.html | 2 +- docs/types/meterProCO2Status.html | 2 +- docs/types/meterProCO2WebhookContext.html | 2 +- docs/types/meterProServiceData.html | 2 +- docs/types/meterProStatus.html | 2 +- docs/types/meterProWebhookContext.html | 2 +- docs/types/meterServiceData.html | 2 +- docs/types/meterStatus.html | 2 +- docs/types/meterWebhookContext.html | 2 +- docs/types/motionSensor.html | 2 +- docs/types/motionSensorServiceData.html | 2 +- docs/types/motionSensorStatus.html | 2 +- docs/types/motionSensorWebhookContext.html | 2 +- docs/types/onadvertisement.html | 2 +- docs/types/ondiscover.html | 2 +- docs/types/outdoorMeter.html | 2 +- docs/types/outdoorMeterServiceData.html | 2 +- docs/types/outdoorMeterStatus.html | 2 +- docs/types/outdoorMeterWebhookContext.html | 2 +- docs/types/panTiltCamWebhookContext.html | 2 +- docs/types/pantiltCam.html | 2 +- docs/types/pantiltCam2k.html | 2 +- docs/types/plug.html | 2 +- docs/types/plugMini.html | 2 +- docs/types/plugMiniJPServiceData.html | 2 +- docs/types/plugMiniJPWebhookContext.html | 2 +- docs/types/plugMiniStatus.html | 2 +- docs/types/plugMiniUSServiceData.html | 2 +- docs/types/plugMiniUSWebhookContext.html | 2 +- docs/types/plugStatus.html | 2 +- docs/types/plugWebhookContext.html | 2 +- docs/types/relaySwitch1PMServiceData.html | 2 +- docs/types/relaySwitch1ServiceData.html | 2 +- docs/types/remote.html | 2 +- docs/types/robotVacuumCleanerS1.html | 2 +- docs/types/robotVacuumCleanerS1Plus.html | 2 +- .../types/robotVacuumCleanerS1PlusStatus.html | 2 +- ...obotVacuumCleanerS1PlusWebhookContext.html | 2 +- docs/types/robotVacuumCleanerS1Status.html | 2 +- .../robotVacuumCleanerS1WebhookContext.html | 2 +- docs/types/robotVacuumCleanerServiceData.html | 2 +- docs/types/stripLight.html | 2 +- docs/types/stripLightServiceData.html | 2 +- docs/types/stripLightStatus.html | 2 +- docs/types/stripLightWebhookContext.html | 2 +- docs/types/waterLeakDetector.html | 2 +- docs/types/waterLeakDetectorServiceData.html | 2 +- docs/types/waterLeakDetectorStatus.html | 2 +- .../waterLeakDetectorWebhookContext.html | 2 +- package-lock.json | 3439 ++--------------- package.json | 13 +- src/device/woplugmini_jp.ts | 4 +- src/switchbot-openapi.ts | 89 +- src/test/device.test.ts | 24 +- src/test/switchbot-openapi.test.ts | 34 +- src/test/wobulb.test.ts | 2 +- src/test/wohand.test.ts | 2 +- src/test/wohumi.test.ts | 8 +- src/test/wohumi2.test.ts | 8 +- src/test/woleak.test.ts | 4 +- src/test/woplugmini.test.ts | 39 +- src/test/woplugmini_jp.test.ts | 39 +- src/test/wosensorth.test.ts | 4 +- src/test/wosensorthplus.test.ts | 4 +- src/test/wosensorthpro.test.ts | 4 +- src/test/wosensorthproco2.test.ts | 4 +- src/test/wosmartlock.test.ts | 22 +- src/test/wosmartlockpro.test.ts | 20 +- 193 files changed, 1049 insertions(+), 3782 deletions(-) diff --git a/docs/classes/Advertising.html b/docs/classes/Advertising.html index 2f13e503..3127e90f 100644 --- a/docs/classes/Advertising.html +++ b/docs/classes/Advertising.html @@ -1,8 +1,8 @@ Advertising | node-switchbot

Class Advertising

Represents the advertising data parser for SwitchBot devices.

-

Constructors

Constructors

Methods

Constructors

Methods

  • Parses the advertisement data coming from SwitchBot device.

    +

Constructors

Methods

  • Parses the advertisement data coming from SwitchBot device.

    This function processes advertising packets received from SwitchBot devices and extracts relevant information based on the device type.

    Parameters

    • peripheral: Peripheral

      The peripheral device object from noble.

      @@ -10,12 +10,12 @@

    Returns Promise<null | ad>

    • An object containing parsed data specific to the SwitchBot device type, or null if the device is not recognized.
    -
  • Parses the service data based on the device model.

    +
  • Parses the service data based on the device model.

    Parameters

    • model: string

      The device model.

      -
    • serviceData: Buffer<ArrayBufferLike>

      The service data buffer.

      -
    • manufacturerData: Buffer<ArrayBufferLike>

      The manufacturer data buffer.

      +
    • serviceData: Buffer

      The service data buffer.

      +
    • manufacturerData: Buffer

      The manufacturer data buffer.

    • emitLog: (level: string, message: string) => void

      The function to emit log messages.

    Returns Promise<any>

    • The parsed service data.
    -
+
diff --git a/docs/classes/SwitchBotBLE.html b/docs/classes/SwitchBotBLE.html index 6693b360..fb46e99b 100644 --- a/docs/classes/SwitchBotBLE.html +++ b/docs/classes/SwitchBotBLE.html @@ -1,5 +1,5 @@ SwitchBotBLE | node-switchbot

Class SwitchBotBLE

SwitchBotBLE class to interact with SwitchBot devices.

-

Hierarchy

  • EventEmitter
    • SwitchBotBLE

Constructors

Hierarchy

  • EventEmitter
    • SwitchBotBLE

Constructors

Properties

noble onadvertisement? ondiscover? @@ -12,30 +12,30 @@ wait

Constructors

Properties

noble: any
onadvertisement?: onadvertisement
ondiscover?: ondiscover
ready: Promise<void>

Methods

Returns SwitchBotBLE

Properties

noble: any
onadvertisement?: onadvertisement
ondiscover?: ondiscover
ready: Promise<void>

Methods

  • Emits a log event with the specified log level and message.

    +
  • Emits a log event with the specified log level and message.

    Parameters

    • level: string

      The severity level of the log (e.g., 'info', 'warn', 'error').

    • message: string

      The log message to be emitted.

      -

    Returns Promise<void>

  • Starts scanning for SwitchBot devices.

    +

Returns Promise<void>

  • Starts scanning for SwitchBot devices.

    Parameters

    • Optionalparams: Params = {}

      Optional parameters.

    Returns Promise<void>

    • Resolves when scanning starts successfully.
    -
  • Stops scanning for SwitchBot devices.

    Returns Promise<void>

    • Resolves when scanning stops successfully.
    -
  • Validates the parameters.

    +
  • Validates the parameters.

    Parameters

    • params: Params

      The parameters to validate.

    • schema: Record<string, unknown>

      The schema to validate against.

    Returns Promise<void>

    • Resolves if parameters are valid, otherwise throws an error.
    -
  • Waits for the specified time.

    Parameters

    • msec: number

      The time to wait in milliseconds.

    Returns Promise<void>

    • Resolves after the specified time.
    -
+
diff --git a/docs/classes/SwitchBotOpenAPI.html b/docs/classes/SwitchBotOpenAPI.html index 68549c74..270fbe51 100644 --- a/docs/classes/SwitchBotOpenAPI.html +++ b/docs/classes/SwitchBotOpenAPI.html @@ -5,7 +5,7 @@

The API token used for authentication.

The secret key used for signing requests.

-

Hierarchy

Constructors

Hierarchy

  • EventEmitter
    • SwitchBotOpenAPI

Constructors

Properties

Methods

controlDevice deleteWebhook @@ -15,7 +15,7 @@

Constructors

  • Creates an instance of the SwitchBot OpenAPI client.

    Parameters

    • token: string

      The API token used for authentication.

    • secret: string

      The secret key used for signing requests.

      -
    • Optionalhostname: string

    Returns SwitchBotOpenAPI

Properties

webhookEventListener?:
    | null
    | Server<typeof IncomingMessage, typeof ServerResponse> = null

Methods

  • Controls a device by sending a command to the SwitchBot API.

    +
  • Optionalhostname: string

Returns SwitchBotOpenAPI

Properties

webhookEventListener?: null | Server = null

Methods

  • Controls a device by sending a command to the SwitchBot API.

    Parameters

    • deviceId: string

      The ID of the device to control.

    • command: string

      The command to send to the device.

    • parameter: string

      The parameter for the command.

      @@ -24,24 +24,24 @@
    • Optionalsecret: string

      (Optional) The secret used for authentication. If not provided, the instance secret will be used.

    Returns Promise<{ response: { commandId: string }; statusCode: number }>

    A promise that resolves to an object containing the response body and status code.

    An error if the device control fails.

    -
  • Deletes a webhook by sending a request to the specified URL.

    +
  • Deletes a webhook by sending a request to the specified URL.

    Parameters

    • url: string

      The URL of the webhook to be deleted.

    • Optionaltoken: string

      (Optional) The token used for authentication. If not provided, the instance token will be used.

    • Optionalsecret: string

      (Optional) The secret used for authentication. If not provided, the instance secret will be used.

    Returns Promise<void>

    A promise that resolves when the webhook is successfully deleted.

    Will log an error if the deletion fails.

    -
  • Retrieves the list of devices from the SwitchBot OpenAPI.

    +
  • Retrieves the list of devices from the SwitchBot OpenAPI.

    Parameters

    • Optionaltoken: string

      (Optional) The token used for authentication. If not provided, the instance token will be used.

    • Optionalsecret: string

      (Optional) The secret used for authentication. If not provided, the instance secret will be used.

    Returns Promise<{ response: devices; statusCode: number }>

    A promise that resolves to an object containing the API response.

    Throws an error if the request to get devices fails.

    -
  • Retrieves the status of a specific device.

    +
  • Retrieves the status of a specific device.

    Parameters

    • deviceId: string

      The unique identifier of the device.

    • Optionaltoken: string

      (Optional) The token used for authentication. If not provided, the instance token will be used.

    • Optionalsecret: string

      (Optional) The secret used for authentication. If not provided, the instance secret will be used.

    Returns Promise<{ response: deviceStatus; statusCode: number }>

    A promise that resolves to an object containing the device status and the status code of the request.

    An error if the request fails.

    -
  • Sets up a webhook listener and configures the webhook on the server.

    +
  • Sets up a webhook listener and configures the webhook on the server.

    This method performs the following steps:

    1. Creates a local server to listen for incoming webhook events.
    2. @@ -54,4 +54,4 @@
  • Optionalsecret: string

    (Optional) The secret used for authentication. If not provided, the instance secret will be used.

Returns Promise<void>

A promise that resolves when the webhook setup is complete.

Will log an error if any step in the webhook setup process fails.

-
+
diff --git a/docs/classes/SwitchbotDevice.html b/docs/classes/SwitchbotDevice.html index da06f591..db1edb53 100644 --- a/docs/classes/SwitchbotDevice.html +++ b/docs/classes/SwitchbotDevice.html @@ -1,5 +1,5 @@ SwitchbotDevice | node-switchbot

Class SwitchbotDevice

Represents a Switchbot Device.

-

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Accessors

address connectionState friendlyName @@ -20,25 +20,25 @@

Constructors

  • Initializes a new instance of the SwitchbotDevice class.

    Parameters

    • peripheral: Peripheral

      The peripheral object from noble.

    • noble: __module

      The Noble object.

      -

    Returns SwitchbotDevice

Accessors

  • get connectionState(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    -

    Parameters

    • reqBuf: Buffer<ArrayBufferLike>

      The command buffer.

      -

    Returns Promise<Buffer<ArrayBufferLike>>

    A Promise that resolves with the response buffer.

    -
  • Connects to the device.

    +

Returns SwitchbotDevice

Accessors

  • get connectionState(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    +

    Parameters

    • reqBuf: Buffer

      The command buffer.

      +

    Returns Promise<Buffer>

    A Promise that resolves with the response buffer.

    +
  • Connects to the device.

    Returns Promise<void>

    A Promise that resolves when the connection is complete.

    -
  • Disconnects from the device.

    +
  • Disconnects from the device.

    Returns Promise<void>

    A Promise that resolves when the disconnection is complete.

    -
  • Discovers the device services.

    +
  • Discovers the device services.

    Returns Promise<Service[]>

    A Promise that resolves with the list of services.

    -
  • Retrieves the device characteristics.

    +
  • Retrieves the device characteristics.

    Returns Promise<Chars>

    A Promise that resolves with the device characteristics.

    -
  • Retrieves the device name.

    +
  • Retrieves the device name.

    Returns Promise<string>

    A Promise that resolves with the device name.

    -
  • Logs a message with the specified log level.

    +
  • Logs a message with the specified log level.

    Parameters

    • level: string

      The severity level of the log (e.g., 'info', 'warn', 'error').

    • message: string

      The log message to be emitted.

      -

    Returns Promise<void>

  • Sets the device name.

    +

Returns Promise<void>

  • Sets the device name.

    Parameters

    • name: string

      The new device name.

    Returns Promise<void>

    A Promise that resolves when the name is set.

    -
  • Unsubscribes from the notify characteristic.

    +
  • Unsubscribes from the notify characteristic.

    Returns Promise<void>

    A Promise that resolves when the unsubscription is complete.

    -
+
diff --git a/docs/classes/WoBlindTilt.html b/docs/classes/WoBlindTilt.html index 0190fc09..11707916 100644 --- a/docs/classes/WoBlindTilt.html +++ b/docs/classes/WoBlindTilt.html @@ -1,6 +1,6 @@ WoBlindTilt | node-switchbot

Class WoBlindTilt

Class representing a WoBlindTilt device.

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Closes the blind tilt to the nearest endpoint.

    -

    Returns Promise<void>

  • Closes the blind tilt down to the nearest endpoint.

    -

    Returns Promise<void>

  • Closes the blind tilt up to the nearest endpoint.

    -

    Returns Promise<void>

  • Sends a command to the device and awaits a response.

    -

    Parameters

    • reqBuf: Buffer<ArrayBufferLike>

      The command buffer.

      -

    Returns Promise<Buffer<ArrayBufferLike>>

    A Promise that resolves with the response buffer.

    -
  • Connects to the device.

    +

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Closes the blind tilt to the nearest endpoint.

    +

    Returns Promise<void>

  • Closes the blind tilt down to the nearest endpoint.

    +

    Returns Promise<void>

  • Closes the blind tilt up to the nearest endpoint.

    +

    Returns Promise<void>

  • Sends a command to the device and awaits a response.

    +

    Parameters

    • reqBuf: Buffer

      The command buffer.

      +

    Returns Promise<Buffer>

    A Promise that resolves with the response buffer.

    +
  • Connects to the device.

    Returns Promise<void>

    A Promise that resolves when the connection is complete.

    -
  • Disconnects from the device.

    Returns Promise<void>

    A Promise that resolves when the disconnection is complete.

    -
  • Retrieves the basic information of the blind tilt.

    Returns Promise<null | object>

    • A promise that resolves to an object containing the basic information of the blind tilt.
    -
  • Retrieves the current position of the blind tilt.

    Returns Promise<number>

    • The current position of the blind tilt (0-100).
    -
  • Logs a message with the specified log level.

    +
  • Logs a message with the specified log level.

    Parameters

    • level: string

      The severity level of the log (e.g., 'info', 'warn', 'error').

    • message: string

      The log message to be emitted.

      -

    Returns Promise<void>

  • Opens the blind tilt to the fully open position.

    -

    Returns Promise<void>

  • Runs the blind tilt to the specified position.

    +

Returns Promise<void>

Returns Promise<void>

+
diff --git a/docs/classes/WoBulb.html b/docs/classes/WoBulb.html index 40c736fc..0f43d3b6 100644 --- a/docs/classes/WoBulb.html +++ b/docs/classes/WoBulb.html @@ -1,6 +1,6 @@ WoBulb | node-switchbot

Class representing a WoBulb device.

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    -

    Parameters

    • reqBuf: Buffer<ArrayBufferLike>

      The command buffer.

      -

    Returns Promise<Buffer<ArrayBufferLike>>

    A Promise that resolves with the response buffer.

    -
  • Connects to the device.

    +

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    +

    Parameters

    • reqBuf: Buffer

      The command buffer.

      +

    Returns Promise<Buffer>

    A Promise that resolves with the response buffer.

    +
  • Connects to the device.

    Returns Promise<void>

    A Promise that resolves when the connection is complete.

    -
  • Disconnects from the device.

    Returns Promise<void>

    A Promise that resolves when the disconnection is complete.

    -
  • Logs a message with the specified log level.

    Parameters

    • level: string

      The severity level of the log (e.g., 'info', 'warn', 'error').

    • message: string

      The log message to be emitted.

      -

    Returns Promise<void>

  • Reads the state of the bulb.

    +

Returns Promise<void>

+
diff --git a/docs/classes/WoCeilingLight.html b/docs/classes/WoCeilingLight.html index a47e0ea5..2d2a0e50 100644 --- a/docs/classes/WoCeilingLight.html +++ b/docs/classes/WoCeilingLight.html @@ -1,6 +1,6 @@ WoCeilingLight | node-switchbot

Class WoCeilingLight

Class representing a WoCeilingLight device.

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    -

    Parameters

    • reqBuf: Buffer<ArrayBufferLike>

      The command buffer.

      -

    Returns Promise<Buffer<ArrayBufferLike>>

    A Promise that resolves with the response buffer.

    -
  • Connects to the device.

    +

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    +

    Parameters

    • reqBuf: Buffer

      The command buffer.

      +

    Returns Promise<Buffer>

    A Promise that resolves with the response buffer.

    +
  • Connects to the device.

    Returns Promise<void>

    A Promise that resolves when the connection is complete.

    -
  • Disconnects from the device.

    Returns Promise<void>

    A Promise that resolves when the disconnection is complete.

    -
  • Logs a message with the specified log level.

    Parameters

    • level: string

      The severity level of the log (e.g., 'info', 'warn', 'error').

    • message: string

      The log message to be emitted.

      -

    Returns Promise<void>

  • Sends a command to the ceiling light.

    +

Returns Promise<void>

+
diff --git a/docs/classes/WoContact.html b/docs/classes/WoContact.html index 15af7cc3..e949aa89 100644 --- a/docs/classes/WoContact.html +++ b/docs/classes/WoContact.html @@ -1,6 +1,6 @@ WoContact | node-switchbot

Class representing a WoContact device.

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    -

    Parameters

    • reqBuf: Buffer<ArrayBufferLike>

      The command buffer.

      -

    Returns Promise<Buffer<ArrayBufferLike>>

    A Promise that resolves with the response buffer.

    -
  • Connects to the device.

    +

Constructors

Accessors

  • get address(): string
  • Returns string

  • get connectionState(): string
  • Returns string

  • get id(): string
  • Returns string

  • get onConnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onConnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

  • get onDisconnectHandler(): () => Promise<void>
  • Returns () => Promise<void>

  • set onDisconnectHandler(func: () => Promise<void>): void
  • Parameters

    • func: () => Promise<void>

    Returns void

Methods

  • Sends a command to the device and awaits a response.

    +

    Parameters

    • reqBuf: Buffer

      The command buffer.

      +

    Returns Promise<Buffer>

    A Promise that resolves with the response buffer.

    +
  • Connects to the device.

    Returns Promise<void>

    A Promise that resolves when the connection is complete.

    -
  • Disconnects from the device.

    Returns Promise<void>

    A Promise that resolves when the disconnection is complete.

    -
  • Logs a message with the specified log level.

    Parameters

    • level: string

      The severity level of the log (e.g., 'info', 'warn', 'error').

    • message: string

      The log message to be emitted.

      -

    Returns Promise<void>

  • Sets the device name.

    +

Returns Promise<void>

+
diff --git a/docs/classes/WoCurtain.html b/docs/classes/WoCurtain.html index 80e0e191..d94ed151 100644 --- a/docs/classes/WoCurtain.html +++ b/docs/classes/WoCurtain.html @@ -3,7 +3,7 @@
  • https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/curtain.md
  • https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/curtain3.md
  • -

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Closes the curtain.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Closes the curtain.

      Parameters

      • Optionalmode: number = 0xFF

        Running mode (0x01 = QuietDrift, 0xFF = Default).

        -

      Returns Promise<void>

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Returns Promise<void>

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Opens the curtain.

      +

    Returns Promise<void>

    • Opens the curtain.

      Parameters

      • Optionalmode: number = 0xFF

        Running mode (0x01 = QuietDrift, 0xFF = Default).

        -

      Returns Promise<void>

    • Sends a command to the curtain.

      +

    Returns Promise<void>

    • Sends a command to the curtain.

      Parameters

      • bytes: number[]

        The command bytes.

        -

      Returns Promise<void>

    • Runs the curtain to the target position.

      +

    Returns Promise<void>

    • Runs the curtain to the target position.

      Parameters

      • percent: number

        The percentage of the target position.

      • Optionalmode: number = 0xFF

        Running mode (0x01 = QuietDrift, 0xFF = Default).

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parses the service data for WoCurtain.

      -

      Parameters

    • Parses the service data for WoCurtain.

      +

      Parameters

      • serviceData: Buffer

        The service data buffer.

        +
      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      • Optionalreverse: boolean = false

        Whether to reverse the position.

      Returns Promise<null | curtainServiceData | curtain3ServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoHand.html b/docs/classes/WoHand.html index ebcbef2f..48829846 100644 --- a/docs/classes/WoHand.html +++ b/docs/classes/WoHand.html @@ -1,6 +1,6 @@ WoHand | node-switchbot

    Class representing a WoHand device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoHub2.html b/docs/classes/WoHub2.html index b55a50c5..674f1b39 100644 --- a/docs/classes/WoHub2.html +++ b/docs/classes/WoHub2.html @@ -1,6 +1,6 @@ WoHub2 | node-switchbot

    Class representing a WoHub2 device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoHumi.html b/docs/classes/WoHumi.html index 403a37c6..aa7ed473 100644 --- a/docs/classes/WoHumi.html +++ b/docs/classes/WoHumi.html @@ -1,6 +1,6 @@ WoHumi | node-switchbot

    Class representing a WoHumi device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Decreases the humidifier setting.

      -

      Returns Promise<void>

    • Decreases the humidifier setting.

      +

      Returns Promise<void>

    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Increases the humidifier setting.

      -

      Returns Promise<void>

    • Increases the humidifier setting.

      +

      Returns Promise<void>

    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the humidifier level.

      +

    Returns Promise<void>

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoIOSensorTH.html b/docs/classes/WoIOSensorTH.html index 884380b0..4d88bb30 100644 --- a/docs/classes/WoIOSensorTH.html +++ b/docs/classes/WoIOSensorTH.html @@ -1,6 +1,6 @@ WoIOSensorTH | node-switchbot

    Class WoIOSensorTH

    Class representing a WoIOSensorTH device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoPlugMiniUS.html b/docs/classes/WoPlugMiniUS.html index 3762c362..6708ff1b 100644 --- a/docs/classes/WoPlugMiniUS.html +++ b/docs/classes/WoPlugMiniUS.html @@ -1,6 +1,6 @@ WoPlugMiniUS | node-switchbot

    Class WoPlugMiniUS

    Class representing a WoPlugMini device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Operates the plug with the given bytes.

      +

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoPresence.html b/docs/classes/WoPresence.html index ac9e0c89..f30aa00c 100644 --- a/docs/classes/WoPresence.html +++ b/docs/classes/WoPresence.html @@ -1,6 +1,6 @@ WoPresence | node-switchbot

    Class WoPresence

    Class representing a WoPresence device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoSensorTH.html b/docs/classes/WoSensorTH.html index dde1f3de..69a4b829 100644 --- a/docs/classes/WoSensorTH.html +++ b/docs/classes/WoSensorTH.html @@ -1,6 +1,6 @@ WoSensorTH | node-switchbot

    Class WoSensorTH

    Class representing a WoSensorTH device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoSmartLock.html b/docs/classes/WoSmartLock.html index aee796a4..4b9a7288 100644 --- a/docs/classes/WoSmartLock.html +++ b/docs/classes/WoSmartLock.html @@ -1,6 +1,6 @@ WoSmartLock | node-switchbot

    Class WoSmartLock

    Class representing a WoSmartLock device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Properties

    encryption_key: null | Buffer<ArrayBufferLike> = null
    iv: null | Buffer<ArrayBufferLike> = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Properties

    encryption_key: null | Buffer = null
    iv: null | Buffer = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Decrypts a buffer using AES-128-CTR.

      -

      Parameters

      • data: Buffer<ArrayBufferLike>

        The data to decrypt.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

    • Decrypts a buffer using AES-128-CTR.

      +

      Parameters

      • data: Buffer

        The data to decrypt.

        +

      Returns Promise<Buffer>

      • The decrypted data.
      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Encrypts a string using AES-128-CTR.

      Parameters

      • str: string

        The string to encrypt.

      Returns Promise<string>

      • The encrypted string in hex format.
      -
    • Sends an encrypted command to the device.

      +
    • Sends an encrypted command to the device.

      Parameters

      • key: string

        The command key.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

        +

    Returns Promise<Buffer>

    -

    Returns Promise<void>

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoSmartLockPro.html b/docs/classes/WoSmartLockPro.html index 0ad71d19..0efb6a09 100644 --- a/docs/classes/WoSmartLockPro.html +++ b/docs/classes/WoSmartLockPro.html @@ -1,6 +1,6 @@ WoSmartLockPro | node-switchbot

    Class WoSmartLockPro

    Class representing a WoSmartLockPro device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Properties

    encryption_key: null | Buffer<ArrayBufferLike> = null
    iv: null | Buffer<ArrayBufferLike> = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Properties

    encryption_key: null | Buffer = null
    iv: null | Buffer = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Decrypts a buffer using AES-128-CTR.

      -

      Parameters

      • data: Buffer<ArrayBufferLike>

        The data to decrypt.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

    • Decrypts a buffer using AES-128-CTR.

      +

      Parameters

      • data: Buffer

        The data to decrypt.

        +

      Returns Promise<Buffer>

      • The decrypted data.
      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Encrypts a string using AES-128-CTR.

      Parameters

      • str: string

        The string to encrypt.

      Returns Promise<string>

      • The encrypted string in hex format.
      -
    • Sends an encrypted command to the device.

      +
    • Sends an encrypted command to the device.

      Parameters

      • key: string

        The command key.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

        +

    Returns Promise<Buffer>

    -

    Returns Promise<void>

    Returns Promise<void>

    +
    diff --git a/docs/classes/WoStrip.html b/docs/classes/WoStrip.html index e197f839..8ec7a675 100644 --- a/docs/classes/WoStrip.html +++ b/docs/classes/WoStrip.html @@ -1,6 +1,6 @@ WoStrip | node-switchbot

    Class representing a WoStrip device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      -

      Parameters

      • reqBuf: Buffer<ArrayBufferLike>

        The command buffer.

        -

      Returns Promise<Buffer<ArrayBufferLike>>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

      Parameters

      • reqBuf: Buffer

        The command buffer.

        +

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Operates the strip light with the given byte array.

      +

    Returns Promise<void>

    +
    diff --git a/docs/enums/LogLevel.html b/docs/enums/LogLevel.html index 5448fb72..fdcbbdc6 100644 --- a/docs/enums/LogLevel.html +++ b/docs/enums/LogLevel.html @@ -1,5 +1,5 @@ LogLevel | node-switchbot

    Enumeration LogLevel

    Enum for log levels.

    -

    Enumeration Members

    Enumeration Members

    Enumeration Members

    DEBUG: "debug"
    DEBUGERROR: "debugerror"
    DEBUGSUCCESS: "debugsuccess"
    DEBUGWARN: "debugwarn"
    ERROR: "error"
    INFO: "info"
    SUCCESS: "success"
    WARN: "warn"
    +

    Enumeration Members

    DEBUG: "debug"
    DEBUGERROR: "debugerror"
    DEBUGSUCCESS: "debugsuccess"
    DEBUGWARN: "debugwarn"
    ERROR: "error"
    INFO: "info"
    SUCCESS: "success"
    WARN: "warn"
    diff --git a/docs/enums/SwitchBotBLEModel.html b/docs/enums/SwitchBotBLEModel.html index 0aed7288..d8acf542 100644 --- a/docs/enums/SwitchBotBLEModel.html +++ b/docs/enums/SwitchBotBLEModel.html @@ -1,4 +1,4 @@ -SwitchBotBLEModel | node-switchbot

    Enumeration SwitchBotBLEModel

    Enumeration Members

    BlindTilt +SwitchBotBLEModel | node-switchbot

    Enumeration SwitchBotBLEModel

    Enumeration Members

    BlindTilt: "x"
    Bot: "H"
    CeilingLight: "q"
    CeilingLightPro: "n"
    ColorBulb: "u"
    ContactSensor: "d"
    Curtain: "c"
    Curtain3: "{"
    Hub2: "v"
    Humidifier: "e"
    Humidifier2: "E"
    Keypad: "y"
    Leak: "&"
    Lock: "o"
    LockPro: "$"
    Meter: "T"
    MeterPlus: "i"
    MeterPro: "4"
    MeterProCO2: "5"
    MotionSensor: "s"
    OutdoorMeter: "w"
    PlugMiniJP: "j"
    PlugMiniUS: "g"
    RelaySwitch1: ";"
    RelaySwitch1PM: "<"
    StripLight: "r"
    Unknown: "Unknown"
    +

    Enumeration Members

    BlindTilt: "x"
    Bot: "H"
    CeilingLight: "q"
    CeilingLightPro: "n"
    ColorBulb: "u"
    ContactSensor: "d"
    Curtain: "c"
    Curtain3: "{"
    Hub2: "v"
    Humidifier: "e"
    Humidifier2: "E"
    Keypad: "y"
    Leak: "&"
    Lock: "o"
    LockPro: "$"
    Meter: "T"
    MeterPlus: "i"
    MeterPro: "4"
    MeterProCO2: "5"
    MotionSensor: "s"
    OutdoorMeter: "w"
    PlugMiniJP: "j"
    PlugMiniUS: "g"
    RelaySwitch1: ";"
    RelaySwitch1PM: "<"
    StripLight: "r"
    Unknown: "Unknown"
    diff --git a/docs/enums/SwitchBotBLEModelFriendlyName.html b/docs/enums/SwitchBotBLEModelFriendlyName.html index 32ecc678..2da72b21 100644 --- a/docs/enums/SwitchBotBLEModelFriendlyName.html +++ b/docs/enums/SwitchBotBLEModelFriendlyName.html @@ -1,4 +1,4 @@ -SwitchBotBLEModelFriendlyName | node-switchbot

    Enumeration SwitchBotBLEModelFriendlyName

    Enumeration Members

    BatteryCirculatorFan +SwitchBotBLEModelFriendlyName | node-switchbot

    Enumeration SwitchBotBLEModelFriendlyName

    Enumeration Members

    BatteryCirculatorFan: "Battery Circulator Fan"
    BlindTilt: "Blind Tilt"
    Bot: "Bot"
    CeilingLight: "Ceiling Light"
    CeilingLightPro: "Ceiling Light Pro"
    CirculatorFan: "Circulator Fan"
    ColorBulb: "Color Bulb"
    ContactSensor: "Contact Sensor"
    Curtain: "Curtain"
    Curtain3: "Curtain 3"
    Hub2: "Hub 2"
    Humidifier: "Humidifier"
    Humidifier2: "Humidifier2"
    Keypad: "Keypad"
    Leak: "Water Detector"
    Lock: "Lock"
    LockPro: "Lock Pro"
    Meter: "Meter"
    MeterPlus: "Meter Plus"
    MeterPro: "Meter Pro"
    MeterProCO2: "Meter Pro CO2"
    MotionSensor: "Motion Sensor"
    OutdoorMeter: "Outdoor Meter"
    PlugMini: "Plug Mini"
    RelaySwitch1: "Relay Switch 1"
    RelaySwitch1PM: "Relay Switch 1PM"
    StripLight: "Strip Light"
    Unknown: "Unknown"
    +

    Enumeration Members

    BatteryCirculatorFan: "Battery Circulator Fan"
    BlindTilt: "Blind Tilt"
    Bot: "Bot"
    CeilingLight: "Ceiling Light"
    CeilingLightPro: "Ceiling Light Pro"
    CirculatorFan: "Circulator Fan"
    ColorBulb: "Color Bulb"
    ContactSensor: "Contact Sensor"
    Curtain: "Curtain"
    Curtain3: "Curtain 3"
    Hub2: "Hub 2"
    Humidifier: "Humidifier"
    Humidifier2: "Humidifier2"
    Keypad: "Keypad"
    Leak: "Water Detector"
    Lock: "Lock"
    LockPro: "Lock Pro"
    Meter: "Meter"
    MeterPlus: "Meter Plus"
    MeterPro: "Meter Pro"
    MeterProCO2: "Meter Pro CO2"
    MotionSensor: "Motion Sensor"
    OutdoorMeter: "Outdoor Meter"
    PlugMini: "Plug Mini"
    RelaySwitch1: "Relay Switch 1"
    RelaySwitch1PM: "Relay Switch 1PM"
    StripLight: "Strip Light"
    Unknown: "Unknown"
    diff --git a/docs/enums/SwitchBotBLEModelName.html b/docs/enums/SwitchBotBLEModelName.html index dfac0c13..f630edb1 100644 --- a/docs/enums/SwitchBotBLEModelName.html +++ b/docs/enums/SwitchBotBLEModelName.html @@ -1,4 +1,4 @@ -SwitchBotBLEModelName | node-switchbot

    Enumeration SwitchBotBLEModelName

    Enumeration Members

    BlindTilt +SwitchBotBLEModelName | node-switchbot

    Enumeration SwitchBotBLEModelName

    Enumeration Members

    BlindTilt: "WoBlindTilt"
    Bot: "WoHand"
    CeilingLight: "WoCeilingLight"
    CeilingLightPro: "WoCeilingLightPro"
    ColorBulb: "WoBulb"
    ContactSensor: "WoContact"
    Curtain: "WoCurtain"
    Curtain3: "WoCurtain3"
    Hub2: "WoHub2"
    Humidifier: "WoHumi"
    Humidifier2: "WoHumi2"
    Keypad: "WoKeypad"
    Leak: "WoLeakDetector"
    Lock: "WoSmartLock"
    LockPro: "WoSmartLockPro"
    Meter: "WoSensorTH"
    MeterPlus: "WoSensorTHPlus"
    MeterPro: "WoSensorTHP"
    MeterProCO2: "WoSensorTHPc"
    MotionSensor: "WoMotion"
    OutdoorMeter: "WoIOSensorTH"
    PlugMini: "WoPlugMini"
    RelaySwitch1: "WoRelaySwitch1Plus"
    RelaySwitch1PM: "WoRelaySwitch1PM"
    StripLight: "WoStrip"
    Unknown: "Unknown"
    +

    Enumeration Members

    BlindTilt: "WoBlindTilt"
    Bot: "WoHand"
    CeilingLight: "WoCeilingLight"
    CeilingLightPro: "WoCeilingLightPro"
    ColorBulb: "WoBulb"
    ContactSensor: "WoContact"
    Curtain: "WoCurtain"
    Curtain3: "WoCurtain3"
    Hub2: "WoHub2"
    Humidifier: "WoHumi"
    Humidifier2: "WoHumi2"
    Keypad: "WoKeypad"
    Leak: "WoLeakDetector"
    Lock: "WoSmartLock"
    LockPro: "WoSmartLockPro"
    Meter: "WoSensorTH"
    MeterPlus: "WoSensorTHPlus"
    MeterPro: "WoSensorTHP"
    MeterProCO2: "WoSensorTHPc"
    MotionSensor: "WoMotion"
    OutdoorMeter: "WoIOSensorTH"
    PlugMini: "WoPlugMini"
    RelaySwitch1: "WoRelaySwitch1Plus"
    RelaySwitch1PM: "WoRelaySwitch1PM"
    StripLight: "WoStrip"
    Unknown: "Unknown"
    diff --git a/docs/enums/SwitchBotModel.html b/docs/enums/SwitchBotModel.html index 441791c2..1b4b69be 100644 --- a/docs/enums/SwitchBotModel.html +++ b/docs/enums/SwitchBotModel.html @@ -1,4 +1,4 @@ -SwitchBotModel | node-switchbot

    Enumeration SwitchBotModel

    Enumeration Members

    BatteryCirculatorFan +SwitchBotModel | node-switchbot

    Enumeration SwitchBotModel

    Enumeration Members

    BatteryCirculatorFan: "W3800510"
    BlindTilt: "W2701600"
    Bot: "SwitchBot S1"
    CeilingLight: "W2612230/W2612240"
    CeilingLightPro: "W2612210/W2612220"
    CirculatorFan: "W3800511"
    ColorBulb: "W1401400"
    ContactSensor: "W1201500"
    Curtain: "W0701600"
    Curtain3: "W2400000"
    Hub2: "W3202100"
    HubMini: "W0202200"
    HubPlus: "SwitchBot Hub S1"
    Humidifier: "W0801800"
    Humidifier2: "WXXXXXXX"
    IndoorCam: "W1301200"
    K10: "K10+"
    K10Pro: "K10+ Pro"
    Keypad: "W2500010"
    KeypadTouch: "W2500020"
    Lock: "W1601700"
    LockPro: "W3500000"
    Meter: "SwitchBot MeterTH S1"
    MeterPlusJP: "W2201500"
    MeterPlusUS: "W2301500"
    MeterPro: "W4900000"
    MeterProCO2: "W4900010"
    MotionSensor: "W1101500"
    OutdoorMeter: "W3400010"
    PanTiltCam: "W1801200"
    PanTiltCam2K: "W3101100"
    Plug: "SP11"
    PlugMiniJP: "W2001400/W2001401"
    PlugMiniUS: "W1901400/W1901401"
    Remote: "Remote"
    RobotVacuumCleanerS1: "W3011000"
    RobotVacuumCleanerS10: "W3211800"
    RobotVacuumCleanerS1Plus: "W3011010"
    StripLight: "W1701100"
    UniversalRemote: "UniversalRemote"
    Unknown: "Unknown"
    WaterDetector: "W4402000"
    WoSweeper: "WoSweeper"
    WoSweeperMini: "WoSweeperMini"
    +

    Enumeration Members

    BatteryCirculatorFan: "W3800510"
    BlindTilt: "W2701600"
    Bot: "SwitchBot S1"
    CeilingLight: "W2612230/W2612240"
    CeilingLightPro: "W2612210/W2612220"
    CirculatorFan: "W3800511"
    ColorBulb: "W1401400"
    ContactSensor: "W1201500"
    Curtain: "W0701600"
    Curtain3: "W2400000"
    Hub2: "W3202100"
    HubMini: "W0202200"
    HubPlus: "SwitchBot Hub S1"
    Humidifier: "W0801800"
    Humidifier2: "WXXXXXXX"
    IndoorCam: "W1301200"
    K10: "K10+"
    K10Pro: "K10+ Pro"
    Keypad: "W2500010"
    KeypadTouch: "W2500020"
    Lock: "W1601700"
    LockPro: "W3500000"
    Meter: "SwitchBot MeterTH S1"
    MeterPlusJP: "W2201500"
    MeterPlusUS: "W2301500"
    MeterPro: "W4900000"
    MeterProCO2: "W4900010"
    MotionSensor: "W1101500"
    OutdoorMeter: "W3400010"
    PanTiltCam: "W1801200"
    PanTiltCam2K: "W3101100"
    Plug: "SP11"
    PlugMiniJP: "W2001400/W2001401"
    PlugMiniUS: "W1901400/W1901401"
    Remote: "Remote"
    RobotVacuumCleanerS1: "W3011000"
    RobotVacuumCleanerS10: "W3211800"
    RobotVacuumCleanerS1Plus: "W3011010"
    StripLight: "W1701100"
    UniversalRemote: "UniversalRemote"
    Unknown: "Unknown"
    WaterDetector: "W4402000"
    WoSweeper: "WoSweeper"
    WoSweeperMini: "WoSweeperMini"
    diff --git a/docs/interfaces/AdvertisementData.html b/docs/interfaces/AdvertisementData.html index cf8128cc..41cc6645 100644 --- a/docs/interfaces/AdvertisementData.html +++ b/docs/interfaces/AdvertisementData.html @@ -1,3 +1,3 @@ -AdvertisementData | node-switchbot

    Interface AdvertisementData

    interface AdvertisementData {
        manufacturerData: null | Buffer<ArrayBufferLike>;
        serviceData: null | Buffer<ArrayBufferLike>;
    }

    Properties

    manufacturerData +AdvertisementData | node-switchbot

    Interface AdvertisementData

    interface AdvertisementData {
        manufacturerData: null | Buffer;
        serviceData: null | Buffer;
    }

    Properties

    manufacturerData: null | Buffer<ArrayBufferLike>
    serviceData: null | Buffer<ArrayBufferLike>
    +

    Properties

    manufacturerData: null | Buffer
    serviceData: null | Buffer
    diff --git a/docs/interfaces/Chars.html b/docs/interfaces/Chars.html index e0ea9dad..b7f13978 100644 --- a/docs/interfaces/Chars.html +++ b/docs/interfaces/Chars.html @@ -1,4 +1,4 @@ -Chars | node-switchbot

    Interface Chars

    interface Chars {
        device: null | Characteristic;
        notify: null | Characteristic;
        write: null | Characteristic;
    }

    Properties

    device +Chars | node-switchbot

    Interface Chars

    interface Chars {
        device: null | Characteristic;
        notify: null | Characteristic;
        write: null | Characteristic;
    }

    Properties

    Properties

    device: null | Characteristic
    notify: null | Characteristic
    write: null | Characteristic
    +

    Properties

    device: null | Characteristic
    notify: null | Characteristic
    write: null | Characteristic
    diff --git a/docs/interfaces/ErrorObject.html b/docs/interfaces/ErrorObject.html index 910b64b6..e722f419 100644 --- a/docs/interfaces/ErrorObject.html +++ b/docs/interfaces/ErrorObject.html @@ -1,3 +1,3 @@ -ErrorObject | node-switchbot

    Interface ErrorObject

    interface ErrorObject {
        code: string;
        message: string;
    }

    Properties

    code +ErrorObject | node-switchbot

    Interface ErrorObject

    interface ErrorObject {
        code: string;
        message: string;
    }

    Properties

    Properties

    code: string
    message: string
    +

    Properties

    code: string
    message: string
    diff --git a/docs/interfaces/NobleTypes.html b/docs/interfaces/NobleTypes.html index 2483a0bf..8da309c6 100644 --- a/docs/interfaces/NobleTypes.html +++ b/docs/interfaces/NobleTypes.html @@ -1,4 +1,4 @@ -NobleTypes | node-switchbot

    Interface NobleTypes

    interface NobleTypes {
        noble: __module;
        peripheral: Peripheral;
        state:
            | "unknown"
            | "resetting"
            | "unsupported"
            | "unauthorized"
            | "poweredOff"
            | "poweredOn";
    }

    Properties

    noble +NobleTypes | node-switchbot

    Interface NobleTypes

    interface NobleTypes {
        noble: __module;
        peripheral: Peripheral;
        state:
            | "unknown"
            | "resetting"
            | "unsupported"
            | "unauthorized"
            | "poweredOff"
            | "poweredOn";
    }

    Properties

    Properties

    noble: __module
    peripheral: Peripheral
    state:
        | "unknown"
        | "resetting"
        | "unsupported"
        | "unauthorized"
        | "poweredOff"
        | "poweredOn"
    +

    Properties

    noble: __module
    peripheral: Peripheral
    state:
        | "unknown"
        | "resetting"
        | "unsupported"
        | "unauthorized"
        | "poweredOff"
        | "poweredOn"
    diff --git a/docs/interfaces/Params.html b/docs/interfaces/Params.html index 5745dd04..a6675d90 100644 --- a/docs/interfaces/Params.html +++ b/docs/interfaces/Params.html @@ -1,6 +1,6 @@ -Params | node-switchbot

    Interface Params

    interface Params {
        duration?: number;
        id?: string;
        model?: string;
        noble?: __module;
        quick?: boolean;
    }

    Properties

    duration? +Params | node-switchbot

    Interface Params

    interface Params {
        duration?: number;
        id?: string;
        model?: string;
        noble?: __module;
        quick?: boolean;
    }

    Properties

    duration?: number
    id?: string
    model?: string
    noble?: __module
    quick?: boolean
    +

    Properties

    duration?: number
    id?: string
    model?: string
    noble?: __module
    quick?: boolean
    diff --git a/docs/interfaces/Rule.html b/docs/interfaces/Rule.html index 9a9a18f4..bfec3716 100644 --- a/docs/interfaces/Rule.html +++ b/docs/interfaces/Rule.html @@ -1,4 +1,4 @@ -Rule | node-switchbot

    Interface Rule

    interface Rule {
        enum?: unknown[];
        max?: number;
        maxBytes?: number;
        min?: number;
        minBytes?: number;
        pattern?: RegExp;
        required?: boolean;
        type?: "string" | "boolean" | "object" | "float" | "integer" | "array";
    }

    Properties

    enum? +Rule | node-switchbot

    Interface Rule

    interface Rule {
        enum?: unknown[];
        max?: number;
        maxBytes?: number;
        min?: number;
        minBytes?: number;
        pattern?: RegExp;
        required?: boolean;
        type?: "string" | "boolean" | "object" | "float" | "integer" | "array";
    }

    Properties

    Properties

    enum?: unknown[]
    max?: number
    maxBytes?: number
    min?: number
    minBytes?: number
    pattern?: RegExp
    required?: boolean
    type?: "string" | "boolean" | "object" | "float" | "integer" | "array"
    +

    Properties

    enum?: unknown[]
    max?: number
    maxBytes?: number
    min?: number
    minBytes?: number
    pattern?: RegExp
    required?: boolean
    type?: "string" | "boolean" | "object" | "float" | "integer" | "array"
    diff --git a/docs/interfaces/ServiceData.html b/docs/interfaces/ServiceData.html index 3727864c..78da6d37 100644 --- a/docs/interfaces/ServiceData.html +++ b/docs/interfaces/ServiceData.html @@ -1,2 +1,2 @@ -ServiceData | node-switchbot

    Interface ServiceData

    interface ServiceData {
        model: string;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    Properties

    model: string
    +ServiceData | node-switchbot

    Interface ServiceData

    interface ServiceData {
        model: string;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    Properties

    model: string
    diff --git a/docs/interfaces/SwitchBotBLEDevice.html b/docs/interfaces/SwitchBotBLEDevice.html index 27b7e272..3b0c1bc0 100644 --- a/docs/interfaces/SwitchBotBLEDevice.html +++ b/docs/interfaces/SwitchBotBLEDevice.html @@ -1,4 +1,4 @@ -SwitchBotBLEDevice | node-switchbot

    Interface SwitchBotBLEDevice

    interface SwitchBotBLEDevice {
        BlindTilt: DeviceInfo;
        Bot: DeviceInfo;
        CeilingLight: DeviceInfo;
        CeilingLightPro: DeviceInfo;
        ColorBulb: DeviceInfo;
        ContactSensor: DeviceInfo;
        Curtain: DeviceInfo;
        Curtain3: DeviceInfo;
        Hub2: DeviceInfo;
        Humidifier: DeviceInfo;
        Lock: DeviceInfo;
        LockPro: DeviceInfo;
        Meter: DeviceInfo;
        MeterPlus: DeviceInfo;
        MeterPro: DeviceInfo;
        MeterProCO2: DeviceInfo;
        MotionSensor: DeviceInfo;
        OutdoorMeter: DeviceInfo;
        PlugMiniJP: DeviceInfo;
        PlugMiniUS: DeviceInfo;
        StripLight: DeviceInfo;
        Unknown: DeviceInfo;
    }

    Properties

    BlindTilt +SwitchBotBLEDevice | node-switchbot

    Interface SwitchBotBLEDevice

    interface SwitchBotBLEDevice {
        BlindTilt: DeviceInfo;
        Bot: DeviceInfo;
        CeilingLight: DeviceInfo;
        CeilingLightPro: DeviceInfo;
        ColorBulb: DeviceInfo;
        ContactSensor: DeviceInfo;
        Curtain: DeviceInfo;
        Curtain3: DeviceInfo;
        Hub2: DeviceInfo;
        Humidifier: DeviceInfo;
        Lock: DeviceInfo;
        LockPro: DeviceInfo;
        Meter: DeviceInfo;
        MeterPlus: DeviceInfo;
        MeterPro: DeviceInfo;
        MeterProCO2: DeviceInfo;
        MotionSensor: DeviceInfo;
        OutdoorMeter: DeviceInfo;
        PlugMiniJP: DeviceInfo;
        PlugMiniUS: DeviceInfo;
        StripLight: DeviceInfo;
        Unknown: DeviceInfo;
    }

    Properties

    BlindTilt: DeviceInfo
    Bot: DeviceInfo
    CeilingLight: DeviceInfo
    CeilingLightPro: DeviceInfo
    ColorBulb: DeviceInfo
    ContactSensor: DeviceInfo
    Curtain: DeviceInfo
    Curtain3: DeviceInfo
    Hub2: DeviceInfo
    Humidifier: DeviceInfo
    Lock: DeviceInfo
    LockPro: DeviceInfo
    Meter: DeviceInfo
    MeterPlus: DeviceInfo
    MeterPro: DeviceInfo
    MeterProCO2: DeviceInfo
    MotionSensor: DeviceInfo
    OutdoorMeter: DeviceInfo
    PlugMiniJP: DeviceInfo
    PlugMiniUS: DeviceInfo
    StripLight: DeviceInfo
    Unknown: DeviceInfo
    +

    Properties

    BlindTilt: DeviceInfo
    Bot: DeviceInfo
    CeilingLight: DeviceInfo
    CeilingLightPro: DeviceInfo
    ColorBulb: DeviceInfo
    ContactSensor: DeviceInfo
    Curtain: DeviceInfo
    Curtain3: DeviceInfo
    Hub2: DeviceInfo
    Humidifier: DeviceInfo
    Lock: DeviceInfo
    LockPro: DeviceInfo
    Meter: DeviceInfo
    MeterPlus: DeviceInfo
    MeterPro: DeviceInfo
    MeterProCO2: DeviceInfo
    MotionSensor: DeviceInfo
    OutdoorMeter: DeviceInfo
    PlugMiniJP: DeviceInfo
    PlugMiniUS: DeviceInfo
    StripLight: DeviceInfo
    Unknown: DeviceInfo
    diff --git a/docs/interfaces/WebhookDetail.html b/docs/interfaces/WebhookDetail.html index 4ecca2ec..334e626c 100644 --- a/docs/interfaces/WebhookDetail.html +++ b/docs/interfaces/WebhookDetail.html @@ -1,6 +1,6 @@ -WebhookDetail | node-switchbot

    Interface WebhookDetail

    interface WebhookDetail {
        createTime: number;
        deviceList: string;
        enable: boolean;
        lastUpdateTime: number;
        url: string;
    }

    Properties

    createTime +WebhookDetail | node-switchbot

    Interface WebhookDetail

    interface WebhookDetail {
        createTime: number;
        deviceList: string;
        enable: boolean;
        lastUpdateTime: number;
        url: string;
    }

    Properties

    createTime: number
    deviceList: string
    enable: boolean
    lastUpdateTime: number
    url: string
    +

    Properties

    createTime: number
    deviceList: string
    enable: boolean
    lastUpdateTime: number
    url: string
    diff --git a/docs/interfaces/ad.html b/docs/interfaces/ad.html index 94f09b70..dda8dca9 100644 --- a/docs/interfaces/ad.html +++ b/docs/interfaces/ad.html @@ -1,5 +1,5 @@ -ad | node-switchbot

    Interface ad

    interface ad {
        address: string;
        id: string;
        rssi: number;
        serviceData:
            | botServiceData
            | colorBulbServiceData
            | contactSensorServiceData
            | curtainServiceData
            | curtain3ServiceData
            | stripLightServiceData
            | lockServiceData
            | lockProServiceData
            | meterServiceData
            | meterPlusServiceData
            | meterProServiceData
            | meterProCO2ServiceData
            | motionSensorServiceData
            | outdoorMeterServiceData
            | plugMiniUSServiceData
            | plugMiniJPServiceData
            | blindTiltServiceData
            | ceilingLightServiceData
            | ceilingLightProServiceData
            | hub2ServiceData
            | batteryCirculatorFanServiceData
            | waterLeakDetectorServiceData
            | humidifierServiceData
            | humidifier2ServiceData
            | robotVacuumCleanerServiceData
            | keypadDetectorServiceData
            | relaySwitch1PMServiceData
            | relaySwitch1ServiceData;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    address +ad | node-switchbot

    Interface ad

    interface ad {
        address: string;
        id: string;
        rssi: number;
        serviceData:
            | botServiceData
            | colorBulbServiceData
            | contactSensorServiceData
            | curtainServiceData
            | curtain3ServiceData
            | stripLightServiceData
            | lockServiceData
            | lockProServiceData
            | meterServiceData
            | meterPlusServiceData
            | meterProServiceData
            | meterProCO2ServiceData
            | motionSensorServiceData
            | outdoorMeterServiceData
            | plugMiniUSServiceData
            | plugMiniJPServiceData
            | blindTiltServiceData
            | ceilingLightServiceData
            | ceilingLightProServiceData
            | hub2ServiceData
            | batteryCirculatorFanServiceData
            | waterLeakDetectorServiceData
            | humidifierServiceData
            | humidifier2ServiceData
            | robotVacuumCleanerServiceData
            | keypadDetectorServiceData
            | relaySwitch1PMServiceData
            | relaySwitch1ServiceData;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    address: string
    id: string
    rssi: number
    +

    Properties

    address: string
    id: string
    rssi: number
    diff --git a/docs/interfaces/body.html b/docs/interfaces/body.html index e298c2ab..d299fe44 100644 --- a/docs/interfaces/body.html +++ b/docs/interfaces/body.html @@ -1,3 +1,3 @@ -body | node-switchbot

    Interface body

    interface body {
        deviceList: deviceList;
        infraredRemoteList: infraredRemoteList;
    }

    Properties

    deviceList +body | node-switchbot

    Interface body

    interface body {
        deviceList: deviceList;
        infraredRemoteList: infraredRemoteList;
    }

    Properties

    deviceList: deviceList
    infraredRemoteList: infraredRemoteList
    +

    Properties

    deviceList: deviceList
    infraredRemoteList: infraredRemoteList
    diff --git a/docs/interfaces/bodyChange.html b/docs/interfaces/bodyChange.html index 656a1c34..05a194b6 100644 --- a/docs/interfaces/bodyChange.html +++ b/docs/interfaces/bodyChange.html @@ -1,4 +1,4 @@ -bodyChange | node-switchbot

    Interface bodyChange

    interface bodyChange {
        command: string;
        commandType: string;
        parameter: string;
    }

    Properties

    command +bodyChange | node-switchbot

    Interface bodyChange

    interface bodyChange {
        command: string;
        commandType: string;
        parameter: string;
    }

    Properties

    command: string
    commandType: string
    parameter: string
    +

    Properties

    command: string
    commandType: string
    parameter: string
    diff --git a/docs/interfaces/deleteWebhookResponse.html b/docs/interfaces/deleteWebhookResponse.html index 76f7659c..0db27940 100644 --- a/docs/interfaces/deleteWebhookResponse.html +++ b/docs/interfaces/deleteWebhookResponse.html @@ -1,4 +1,4 @@ -deleteWebhookResponse | node-switchbot

    Interface deleteWebhookResponse

    interface deleteWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    body +deleteWebhookResponse | node-switchbot

    Interface deleteWebhookResponse

    interface deleteWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: object
    message: string
    statusCode: number
    +

    Properties

    body: object
    message: string
    statusCode: number
    diff --git a/docs/interfaces/device.html b/docs/interfaces/device.html index e0d05df1..9a6cd58d 100644 --- a/docs/interfaces/device.html +++ b/docs/interfaces/device.html @@ -1,7 +1,7 @@ -device | node-switchbot

    Interface device

    interface device {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version?: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId +device | node-switchbot

    Interface device

    interface device {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version?: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version?: number
    +

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version?: number
    diff --git a/docs/interfaces/deviceList.html b/docs/interfaces/deviceList.html index 527954d0..34f3767b 100644 --- a/docs/interfaces/deviceList.html +++ b/docs/interfaces/deviceList.html @@ -1,2 +1,2 @@ -deviceList | node-switchbot

    Interface deviceList

    interface deviceList {
        device: device[];
    }

    Properties

    Properties

    device: device[]
    +deviceList | node-switchbot

    Interface deviceList

    interface deviceList {
        device: device[];
    }

    Properties

    Properties

    device: device[]
    diff --git a/docs/interfaces/deviceStatus.html b/docs/interfaces/deviceStatus.html index bacb6e7d..ec5d8b85 100644 --- a/docs/interfaces/deviceStatus.html +++ b/docs/interfaces/deviceStatus.html @@ -1,7 +1,7 @@ -deviceStatus | node-switchbot

    Interface deviceStatus

    interface deviceStatus {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId +deviceStatus | node-switchbot

    Interface deviceStatus

    interface deviceStatus {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version: number
    +

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version: number
    diff --git a/docs/interfaces/deviceStatusRequest.html b/docs/interfaces/deviceStatusRequest.html index e08b20f7..3688e347 100644 --- a/docs/interfaces/deviceStatusRequest.html +++ b/docs/interfaces/deviceStatusRequest.html @@ -1,4 +1,4 @@ -deviceStatusRequest | node-switchbot

    Interface deviceStatusRequest

    interface deviceStatusRequest {
        body: deviceStatus;
        message: string;
        statusCode: number;
    }

    Properties

    body +deviceStatusRequest | node-switchbot

    Interface deviceStatusRequest

    interface deviceStatusRequest {
        body: deviceStatus;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    message: string
    statusCode: number
    +

    Properties

    message: string
    statusCode: number
    diff --git a/docs/interfaces/deviceWebhook.html b/docs/interfaces/deviceWebhook.html index c34648bf..a56bfd34 100644 --- a/docs/interfaces/deviceWebhook.html +++ b/docs/interfaces/deviceWebhook.html @@ -1,4 +1,4 @@ -deviceWebhook | node-switchbot

    Interface deviceWebhook

    interface deviceWebhook {
        context: deviceWebhookContext;
        eventType: string;
        eventVersion: string;
    }

    Properties

    context +deviceWebhook | node-switchbot

    Interface deviceWebhook

    interface deviceWebhook {
        context: deviceWebhookContext;
        eventType: string;
        eventVersion: string;
    }

    Properties

    eventType: string
    eventVersion: string
    +

    Properties

    eventType: string
    eventVersion: string
    diff --git a/docs/interfaces/deviceWebhookContext.html b/docs/interfaces/deviceWebhookContext.html index 7e4504c1..3068fc1d 100644 --- a/docs/interfaces/deviceWebhookContext.html +++ b/docs/interfaces/deviceWebhookContext.html @@ -1,4 +1,4 @@ -deviceWebhookContext | node-switchbot

    Interface deviceWebhookContext

    interface deviceWebhookContext {
        deviceMac: string;
        deviceType: string;
        timeOfSample: number;
    }

    Properties

    deviceMac +deviceWebhookContext | node-switchbot

    Interface deviceWebhookContext

    interface deviceWebhookContext {
        deviceMac: string;
        deviceType: string;
        timeOfSample: number;
    }

    Properties

    deviceMac: string
    deviceType: string
    timeOfSample: number
    +

    Properties

    deviceMac: string
    deviceType: string
    timeOfSample: number
    diff --git a/docs/interfaces/devices.html b/docs/interfaces/devices.html index dff43fed..922e3743 100644 --- a/docs/interfaces/devices.html +++ b/docs/interfaces/devices.html @@ -1,4 +1,4 @@ -devices | node-switchbot

    Interface devices

    interface devices {
        body: body;
        message: string;
        statusCode: number;
    }

    Properties

    body +devices | node-switchbot

    Interface devices

    interface devices {
        body: body;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: body
    message: string
    statusCode: number
    +

    Properties

    body: body
    message: string
    statusCode: number
    diff --git a/docs/interfaces/infraredRemoteList.html b/docs/interfaces/infraredRemoteList.html index da69be1f..56545731 100644 --- a/docs/interfaces/infraredRemoteList.html +++ b/docs/interfaces/infraredRemoteList.html @@ -1,2 +1,2 @@ -infraredRemoteList | node-switchbot

    Interface infraredRemoteList

    interface infraredRemoteList {
        device: irdevice[];
    }

    Properties

    Properties

    device: irdevice[]
    +infraredRemoteList | node-switchbot

    Interface infraredRemoteList

    interface infraredRemoteList {
        device: irdevice[];
    }

    Properties

    Properties

    device: irdevice[]
    diff --git a/docs/interfaces/irdevice.html b/docs/interfaces/irdevice.html index 2726688f..2615eb5c 100644 --- a/docs/interfaces/irdevice.html +++ b/docs/interfaces/irdevice.html @@ -1,5 +1,5 @@ -irdevice | node-switchbot

    Interface irdevice

    interface irdevice {
        deviceId?: string;
        deviceName: string;
        hubDeviceId: string;
        remoteType: string;
    }

    Properties

    deviceId? +irdevice | node-switchbot

    Interface irdevice

    interface irdevice {
        deviceId?: string;
        deviceName: string;
        hubDeviceId: string;
        remoteType: string;
    }

    Properties

    deviceId?: string
    deviceName: string
    hubDeviceId: string
    remoteType: string
    +

    Properties

    deviceId?: string
    deviceName: string
    hubDeviceId: string
    remoteType: string
    diff --git a/docs/interfaces/pushResponse.html b/docs/interfaces/pushResponse.html index 71dda500..aa11207b 100644 --- a/docs/interfaces/pushResponse.html +++ b/docs/interfaces/pushResponse.html @@ -1,4 +1,4 @@ -pushResponse | node-switchbot

    Interface pushResponse

    interface pushResponse {
        body: { commandId: string };
        message: string;
        statusCode: number;
    }

    Properties

    body +pushResponse | node-switchbot

    Interface pushResponse

    interface pushResponse {
        body: { commandId: string };
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: { commandId: string }
    message: string
    statusCode: number
    +

    Properties

    body: { commandId: string }
    message: string
    statusCode: number
    diff --git a/docs/interfaces/queryWebhookResponse.html b/docs/interfaces/queryWebhookResponse.html index 7691f3c4..2165beb8 100644 --- a/docs/interfaces/queryWebhookResponse.html +++ b/docs/interfaces/queryWebhookResponse.html @@ -1,4 +1,4 @@ -queryWebhookResponse | node-switchbot

    Interface queryWebhookResponse

    interface queryWebhookResponse {
        body: WebhookDetail[];
        message: string;
        statusCode: number;
    }

    Properties

    body +queryWebhookResponse | node-switchbot

    Interface queryWebhookResponse

    interface queryWebhookResponse {
        body: WebhookDetail[];
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    message: string
    statusCode: number
    +

    Properties

    message: string
    statusCode: number
    diff --git a/docs/interfaces/setupWebhookResponse.html b/docs/interfaces/setupWebhookResponse.html index 41d22782..481a7aa2 100644 --- a/docs/interfaces/setupWebhookResponse.html +++ b/docs/interfaces/setupWebhookResponse.html @@ -1,4 +1,4 @@ -setupWebhookResponse | node-switchbot

    Interface setupWebhookResponse

    interface setupWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    body +setupWebhookResponse | node-switchbot

    Interface setupWebhookResponse

    interface setupWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: object
    message: string
    statusCode: number
    +

    Properties

    body: object
    message: string
    statusCode: number
    diff --git a/docs/interfaces/switchbot.html b/docs/interfaces/switchbot.html index d0e26f70..823d9360 100644 --- a/docs/interfaces/switchbot.html +++ b/docs/interfaces/switchbot.html @@ -1,3 +1,3 @@ -switchbot | node-switchbot

    Interface switchbot

    interface switchbot {
        discover: (
            arg0: { duration?: any; id?: string; model: string; quick: boolean },
        ) => Promise<any>;
        wait: (arg0: number) => any;
    }

    Properties

    discover +switchbot | node-switchbot

    Interface switchbot

    interface switchbot {
        discover: (
            arg0: { duration?: any; id?: string; model: string; quick: boolean },
        ) => Promise<any>;
        wait: (arg0: number) => any;
    }

    Properties

    Properties

    discover: (
        arg0: { duration?: any; id?: string; model: string; quick: boolean },
    ) => Promise<any>
    wait: (arg0: number) => any
    +

    Properties

    discover: (
        arg0: { duration?: any; id?: string; model: string; quick: boolean },
    ) => Promise<any>
    wait: (arg0: number) => any
    diff --git a/docs/interfaces/updateWebhookResponse.html b/docs/interfaces/updateWebhookResponse.html index 47500a00..8ea23ee3 100644 --- a/docs/interfaces/updateWebhookResponse.html +++ b/docs/interfaces/updateWebhookResponse.html @@ -1,4 +1,4 @@ -updateWebhookResponse | node-switchbot

    Interface updateWebhookResponse

    interface updateWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    body +updateWebhookResponse | node-switchbot

    Interface updateWebhookResponse

    interface updateWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: object
    message: string
    statusCode: number
    +

    Properties

    body: object
    message: string
    statusCode: number
    diff --git a/docs/interfaces/webhookRequest.html b/docs/interfaces/webhookRequest.html index 81d61b34..6f943cfe 100644 --- a/docs/interfaces/webhookRequest.html +++ b/docs/interfaces/webhookRequest.html @@ -1,4 +1,4 @@ -webhookRequest | node-switchbot

    Interface webhookRequest

    interface webhookRequest {
        action: string;
        deviceList: string;
        url: string;
    }

    Properties

    action +webhookRequest | node-switchbot

    Interface webhookRequest

    interface webhookRequest {
        action: string;
        deviceList: string;
        url: string;
    }

    Properties

    Properties

    action: string
    deviceList: string
    url: string
    +

    Properties

    action: string
    deviceList: string
    url: string
    diff --git a/docs/types/MacAddress.html b/docs/types/MacAddress.html index 278575b1..f1a8d355 100644 --- a/docs/types/MacAddress.html +++ b/docs/types/MacAddress.html @@ -1 +1 @@ -MacAddress | node-switchbot

    Type Alias MacAddress

    MacAddress: string
    +MacAddress | node-switchbot

    Type Alias MacAddress

    MacAddress: string
    diff --git a/docs/types/batteryCirculatorFan.html b/docs/types/batteryCirculatorFan.html index bdba9ae3..ddbc6dcf 100644 --- a/docs/types/batteryCirculatorFan.html +++ b/docs/types/batteryCirculatorFan.html @@ -1 +1 @@ -batteryCirculatorFan | node-switchbot

    Type Alias batteryCirculatorFan

    batteryCirculatorFan: device & {}
    +batteryCirculatorFan | node-switchbot

    Type Alias batteryCirculatorFan

    batteryCirculatorFan: device & {}
    diff --git a/docs/types/batteryCirculatorFanServiceData.html b/docs/types/batteryCirculatorFanServiceData.html index c57b648d..d46f190a 100644 --- a/docs/types/batteryCirculatorFanServiceData.html +++ b/docs/types/batteryCirculatorFanServiceData.html @@ -1 +1 @@ -batteryCirculatorFanServiceData | node-switchbot

    Type Alias batteryCirculatorFanServiceData

    batteryCirculatorFanServiceData: serviceData & {
        fanSpeed: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    +batteryCirculatorFanServiceData | node-switchbot

    Type Alias batteryCirculatorFanServiceData

    batteryCirculatorFanServiceData: serviceData & {
        fanSpeed: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    diff --git a/docs/types/batteryCirculatorFanStatus.html b/docs/types/batteryCirculatorFanStatus.html index d2014ca7..43a1d8de 100644 --- a/docs/types/batteryCirculatorFanStatus.html +++ b/docs/types/batteryCirculatorFanStatus.html @@ -1 +1 @@ -batteryCirculatorFanStatus | node-switchbot

    Type Alias batteryCirculatorFanStatus

    batteryCirculatorFanStatus: deviceStatus & {
        battery: number;
        chargingStatus: string;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    +batteryCirculatorFanStatus | node-switchbot

    Type Alias batteryCirculatorFanStatus

    batteryCirculatorFanStatus: deviceStatus & {
        battery: number;
        chargingStatus: string;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    diff --git a/docs/types/batteryCirculatorFanWebhookContext.html b/docs/types/batteryCirculatorFanWebhookContext.html index f86d44e4..c626ae67 100644 --- a/docs/types/batteryCirculatorFanWebhookContext.html +++ b/docs/types/batteryCirculatorFanWebhookContext.html @@ -1 +1 @@ -batteryCirculatorFanWebhookContext | node-switchbot

    Type Alias batteryCirculatorFanWebhookContext

    batteryCirculatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        chargingStatus: "charging" | "uncharged";
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    +batteryCirculatorFanWebhookContext | node-switchbot

    Type Alias batteryCirculatorFanWebhookContext

    batteryCirculatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        chargingStatus: "charging" | "uncharged";
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    diff --git a/docs/types/blindTilt.html b/docs/types/blindTilt.html index 5aada05b..a2e6bd0b 100644 --- a/docs/types/blindTilt.html +++ b/docs/types/blindTilt.html @@ -1 +1 @@ -blindTilt | node-switchbot

    Type Alias blindTilt

    blindTilt: device & {
        blindTiltDevicesIds: string[];
        calibrate: boolean;
        direction: string;
        group: boolean;
        master: boolean;
        slidePosition: number;
    }
    +blindTilt | node-switchbot

    Type Alias blindTilt

    blindTilt: device & {
        blindTiltDevicesIds: string[];
        calibrate: boolean;
        direction: string;
        group: boolean;
        master: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/blindTiltServiceData.html b/docs/types/blindTiltServiceData.html index 64a6b893..52e1ef2f 100644 --- a/docs/types/blindTiltServiceData.html +++ b/docs/types/blindTiltServiceData.html @@ -1 +1 @@ -blindTiltServiceData | node-switchbot

    Type Alias blindTiltServiceData

    blindTiltServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        inMotion: boolean;
        lightLevel: number;
        model: BlindTilt;
        modelFriendlyName: BlindTilt;
        modelName: BlindTilt;
        sequenceNumber: number;
        tilt: number;
    }
    +blindTiltServiceData | node-switchbot

    Type Alias blindTiltServiceData

    blindTiltServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        inMotion: boolean;
        lightLevel: number;
        model: BlindTilt;
        modelFriendlyName: BlindTilt;
        modelName: BlindTilt;
        sequenceNumber: number;
        tilt: number;
    }
    diff --git a/docs/types/blindTiltStatus.html b/docs/types/blindTiltStatus.html index 08acc2f3..7973018b 100644 --- a/docs/types/blindTiltStatus.html +++ b/docs/types/blindTiltStatus.html @@ -1 +1 @@ -blindTiltStatus | node-switchbot

    Type Alias blindTiltStatus

    blindTiltStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        direction: string;
        lightLevel?: "bright" | "dim";
        slidePosition: string;
    }
    +blindTiltStatus | node-switchbot

    Type Alias blindTiltStatus

    blindTiltStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        direction: string;
        lightLevel?: "bright" | "dim";
        slidePosition: string;
    }
    diff --git a/docs/types/blindTiltWebhookContext.html b/docs/types/blindTiltWebhookContext.html index f5bb78b9..25ba1b0d 100644 --- a/docs/types/blindTiltWebhookContext.html +++ b/docs/types/blindTiltWebhookContext.html @@ -1 +1 @@ -blindTiltWebhookContext | node-switchbot

    Type Alias blindTiltWebhookContext

    blindTiltWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        direction: string;
        group: boolean;
        slidePosition: number;
        version: string;
    }
    +blindTiltWebhookContext | node-switchbot

    Type Alias blindTiltWebhookContext

    blindTiltWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        direction: string;
        group: boolean;
        slidePosition: number;
        version: string;
    }
    diff --git a/docs/types/bot.html b/docs/types/bot.html index 8ce76dae..ef2dcc91 100644 --- a/docs/types/bot.html +++ b/docs/types/bot.html @@ -1 +1 @@ -bot | node-switchbot

    Type Alias bot

    bot: device & {}
    +bot | node-switchbot

    Type Alias bot

    bot: device & {}
    diff --git a/docs/types/botServiceData.html b/docs/types/botServiceData.html index ddeb283b..a9b59501 100644 --- a/docs/types/botServiceData.html +++ b/docs/types/botServiceData.html @@ -1 +1 @@ -botServiceData | node-switchbot

    Type Alias botServiceData

    botServiceData: serviceData & {
        battery: number;
        mode: boolean;
        model: Bot;
        modelFriendlyName: Bot;
        modelName: Bot;
        state: boolean;
    }
    +botServiceData | node-switchbot

    Type Alias botServiceData

    botServiceData: serviceData & {
        battery: number;
        mode: boolean;
        model: Bot;
        modelFriendlyName: Bot;
        modelName: Bot;
        state: boolean;
    }
    diff --git a/docs/types/botStatus.html b/docs/types/botStatus.html index 99253077..6efff0c4 100644 --- a/docs/types/botStatus.html +++ b/docs/types/botStatus.html @@ -1 +1 @@ -botStatus | node-switchbot

    Type Alias botStatus

    botStatus: deviceStatus & {
        battery: number;
        mode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    +botStatus | node-switchbot

    Type Alias botStatus

    botStatus: deviceStatus & {
        battery: number;
        mode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    diff --git a/docs/types/botWebhookContext.html b/docs/types/botWebhookContext.html index f87fd633..1484abb0 100644 --- a/docs/types/botWebhookContext.html +++ b/docs/types/botWebhookContext.html @@ -1 +1 @@ -botWebhookContext | node-switchbot

    Type Alias botWebhookContext

    botWebhookContext: deviceWebhookContext & {
        battery: number;
        deviceMode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    +botWebhookContext | node-switchbot

    Type Alias botWebhookContext

    botWebhookContext: deviceWebhookContext & {
        battery: number;
        deviceMode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    diff --git a/docs/types/ceilingLight.html b/docs/types/ceilingLight.html index 56f24784..39e0361b 100644 --- a/docs/types/ceilingLight.html +++ b/docs/types/ceilingLight.html @@ -1 +1 @@ -ceilingLight | node-switchbot

    Type Alias ceilingLight

    ceilingLight: device & {}
    +ceilingLight | node-switchbot

    Type Alias ceilingLight

    ceilingLight: device & {}
    diff --git a/docs/types/ceilingLightPro.html b/docs/types/ceilingLightPro.html index af51e71d..ce6d8f0e 100644 --- a/docs/types/ceilingLightPro.html +++ b/docs/types/ceilingLightPro.html @@ -1 +1 @@ -ceilingLightPro | node-switchbot

    Type Alias ceilingLightPro

    ceilingLightPro: device & {}
    +ceilingLightPro | node-switchbot

    Type Alias ceilingLightPro

    ceilingLightPro: device & {}
    diff --git a/docs/types/ceilingLightProServiceData.html b/docs/types/ceilingLightProServiceData.html index 09eaf996..678fcb2a 100644 --- a/docs/types/ceilingLightProServiceData.html +++ b/docs/types/ceilingLightProServiceData.html @@ -1 +1 @@ -ceilingLightProServiceData | node-switchbot

    Type Alias ceilingLightProServiceData

    ceilingLightProServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLightPro;
        modelFriendlyName: CeilingLightPro;
        modelName: CeilingLightPro;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +ceilingLightProServiceData | node-switchbot

    Type Alias ceilingLightProServiceData

    ceilingLightProServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLightPro;
        modelFriendlyName: CeilingLightPro;
        modelName: CeilingLightPro;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/ceilingLightProStatus.html b/docs/types/ceilingLightProStatus.html index 095c07fd..98c180e4 100644 --- a/docs/types/ceilingLightProStatus.html +++ b/docs/types/ceilingLightProStatus.html @@ -1 +1 @@ -ceilingLightProStatus | node-switchbot

    Type Alias ceilingLightProStatus

    ceilingLightProStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    +ceilingLightProStatus | node-switchbot

    Type Alias ceilingLightProStatus

    ceilingLightProStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    diff --git a/docs/types/ceilingLightProWebhookContext.html b/docs/types/ceilingLightProWebhookContext.html index b9600803..e866f802 100644 --- a/docs/types/ceilingLightProWebhookContext.html +++ b/docs/types/ceilingLightProWebhookContext.html @@ -1 +1 @@ -ceilingLightProWebhookContext | node-switchbot

    Type Alias ceilingLightProWebhookContext

    ceilingLightProWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    +ceilingLightProWebhookContext | node-switchbot

    Type Alias ceilingLightProWebhookContext

    ceilingLightProWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/ceilingLightServiceData.html b/docs/types/ceilingLightServiceData.html index 7e482599..86d156f8 100644 --- a/docs/types/ceilingLightServiceData.html +++ b/docs/types/ceilingLightServiceData.html @@ -1 +1 @@ -ceilingLightServiceData | node-switchbot

    Type Alias ceilingLightServiceData

    ceilingLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLight;
        modelFriendlyName: CeilingLight;
        modelName: CeilingLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +ceilingLightServiceData | node-switchbot

    Type Alias ceilingLightServiceData

    ceilingLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLight;
        modelFriendlyName: CeilingLight;
        modelName: CeilingLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/ceilingLightStatus.html b/docs/types/ceilingLightStatus.html index 3d35a15e..86735194 100644 --- a/docs/types/ceilingLightStatus.html +++ b/docs/types/ceilingLightStatus.html @@ -1 +1 @@ -ceilingLightStatus | node-switchbot

    Type Alias ceilingLightStatus

    ceilingLightStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    +ceilingLightStatus | node-switchbot

    Type Alias ceilingLightStatus

    ceilingLightStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    diff --git a/docs/types/ceilingLightWebhookContext.html b/docs/types/ceilingLightWebhookContext.html index f9b10e8c..b2bee6b5 100644 --- a/docs/types/ceilingLightWebhookContext.html +++ b/docs/types/ceilingLightWebhookContext.html @@ -1 +1 @@ -ceilingLightWebhookContext | node-switchbot

    Type Alias ceilingLightWebhookContext

    ceilingLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    +ceilingLightWebhookContext | node-switchbot

    Type Alias ceilingLightWebhookContext

    ceilingLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/circulatorFanStatus.html b/docs/types/circulatorFanStatus.html index 3cd80aa7..dc7b297e 100644 --- a/docs/types/circulatorFanStatus.html +++ b/docs/types/circulatorFanStatus.html @@ -1 +1 @@ -circulatorFanStatus | node-switchbot

    Type Alias circulatorFanStatus

    circulatorFanStatus: deviceStatus & {
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    +circulatorFanStatus | node-switchbot

    Type Alias circulatorFanStatus

    circulatorFanStatus: deviceStatus & {
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    diff --git a/docs/types/circulatorFanWebhookContext.html b/docs/types/circulatorFanWebhookContext.html index 1400581f..1976de8e 100644 --- a/docs/types/circulatorFanWebhookContext.html +++ b/docs/types/circulatorFanWebhookContext.html @@ -1 +1 @@ -circulatorFanWebhookContext | node-switchbot

    Type Alias circulatorFanWebhookContext

    circulatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    +circulatorFanWebhookContext | node-switchbot

    Type Alias circulatorFanWebhookContext

    circulatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    diff --git a/docs/types/colorBulb.html b/docs/types/colorBulb.html index 4357edc8..32605953 100644 --- a/docs/types/colorBulb.html +++ b/docs/types/colorBulb.html @@ -1 +1 @@ -colorBulb | node-switchbot

    Type Alias colorBulb

    colorBulb: device & {}
    +colorBulb | node-switchbot

    Type Alias colorBulb

    colorBulb: device & {}
    diff --git a/docs/types/colorBulbServiceData.html b/docs/types/colorBulbServiceData.html index 41352c2a..bff0b100 100644 --- a/docs/types/colorBulbServiceData.html +++ b/docs/types/colorBulbServiceData.html @@ -1 +1 @@ -colorBulbServiceData | node-switchbot

    Type Alias colorBulbServiceData

    colorBulbServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: ColorBulb;
        modelFriendlyName: ColorBulb;
        modelName: ColorBulb;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +colorBulbServiceData | node-switchbot

    Type Alias colorBulbServiceData

    colorBulbServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: ColorBulb;
        modelFriendlyName: ColorBulb;
        modelName: ColorBulb;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/colorBulbStatus.html b/docs/types/colorBulbStatus.html index d34d0b97..b18a6a9f 100644 --- a/docs/types/colorBulbStatus.html +++ b/docs/types/colorBulbStatus.html @@ -1 +1 @@ -colorBulbStatus | node-switchbot

    Type Alias colorBulbStatus

    colorBulbStatus: deviceStatus & {
        brightness: number;
        color: string;
        colorTemperature: number;
        power: string;
    }
    +colorBulbStatus | node-switchbot

    Type Alias colorBulbStatus

    colorBulbStatus: deviceStatus & {
        brightness: number;
        color: string;
        colorTemperature: number;
        power: string;
    }
    diff --git a/docs/types/colorBulbWebhookContext.html b/docs/types/colorBulbWebhookContext.html index eab3649c..a2d26f7b 100644 --- a/docs/types/colorBulbWebhookContext.html +++ b/docs/types/colorBulbWebhookContext.html @@ -1 +1 @@ -colorBulbWebhookContext | node-switchbot

    Type Alias colorBulbWebhookContext

    colorBulbWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    +colorBulbWebhookContext | node-switchbot

    Type Alias colorBulbWebhookContext

    colorBulbWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/contactSensor.html b/docs/types/contactSensor.html index cf436dc1..a7dbc8aa 100644 --- a/docs/types/contactSensor.html +++ b/docs/types/contactSensor.html @@ -1 +1 @@ -contactSensor | node-switchbot

    Type Alias contactSensor

    contactSensor: device & {}
    +contactSensor | node-switchbot

    Type Alias contactSensor

    contactSensor: device & {}
    diff --git a/docs/types/contactSensorServiceData.html b/docs/types/contactSensorServiceData.html index 8a342193..76c0f2dd 100644 --- a/docs/types/contactSensorServiceData.html +++ b/docs/types/contactSensorServiceData.html @@ -1 +1 @@ -contactSensorServiceData | node-switchbot

    Type Alias contactSensorServiceData

    contactSensorServiceData: serviceData & {
        battery: number;
        button_count: number;
        contact_open: boolean;
        contact_timeout: boolean;
        doorState: string;
        lightLevel: string;
        model: ContactSensor;
        modelFriendlyName: ContactSensor;
        modelName: ContactSensor;
        movement: boolean;
        tested: boolean;
    }
    +contactSensorServiceData | node-switchbot

    Type Alias contactSensorServiceData

    contactSensorServiceData: serviceData & {
        battery: number;
        button_count: number;
        contact_open: boolean;
        contact_timeout: boolean;
        doorState: string;
        lightLevel: string;
        model: ContactSensor;
        modelFriendlyName: ContactSensor;
        modelName: ContactSensor;
        movement: boolean;
        tested: boolean;
    }
    diff --git a/docs/types/contactSensorStatus.html b/docs/types/contactSensorStatus.html index fe085b83..e51b54bd 100644 --- a/docs/types/contactSensorStatus.html +++ b/docs/types/contactSensorStatus.html @@ -1 +1 @@ -contactSensorStatus | node-switchbot

    Type Alias contactSensorStatus

    contactSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
        openState: "open" | "close" | "timeOutNotClose";
    }
    +contactSensorStatus | node-switchbot

    Type Alias contactSensorStatus

    contactSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
        openState: "open" | "close" | "timeOutNotClose";
    }
    diff --git a/docs/types/contactSensorWebhookContext.html b/docs/types/contactSensorWebhookContext.html index 302d95bd..a2ef17d1 100644 --- a/docs/types/contactSensorWebhookContext.html +++ b/docs/types/contactSensorWebhookContext.html @@ -1 +1 @@ -contactSensorWebhookContext | node-switchbot

    Type Alias contactSensorWebhookContext

    contactSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        brightness: "dim" | "bright";
        detectionState: "NOT_DETECTED" | "DETECTED";
        doorMode: "IN_DOOR" | "OUT_DOOR";
        openState: "open" | "close" | "timeOutNotClose";
    }
    +contactSensorWebhookContext | node-switchbot

    Type Alias contactSensorWebhookContext

    contactSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        brightness: "dim" | "bright";
        detectionState: "NOT_DETECTED" | "DETECTED";
        doorMode: "IN_DOOR" | "OUT_DOOR";
        openState: "open" | "close" | "timeOutNotClose";
    }
    diff --git a/docs/types/curtain.html b/docs/types/curtain.html index a7daf215..eb5dfbe8 100644 --- a/docs/types/curtain.html +++ b/docs/types/curtain.html @@ -1 +1 @@ -curtain | node-switchbot

    Type Alias curtain

    curtain: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection: string;
    }
    +curtain | node-switchbot

    Type Alias curtain

    curtain: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection: string;
    }
    diff --git a/docs/types/curtain3.html b/docs/types/curtain3.html index a9be2f42..d58376d0 100644 --- a/docs/types/curtain3.html +++ b/docs/types/curtain3.html @@ -1 +1 @@ -curtain3 | node-switchbot

    Type Alias curtain3

    curtain3: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection?: string;
    }
    +curtain3 | node-switchbot

    Type Alias curtain3

    curtain3: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection?: string;
    }
    diff --git a/docs/types/curtain3ServiceData.html b/docs/types/curtain3ServiceData.html index c1daa7fd..580e6a9a 100644 --- a/docs/types/curtain3ServiceData.html +++ b/docs/types/curtain3ServiceData.html @@ -1 +1 @@ -curtain3ServiceData | node-switchbot

    Type Alias curtain3ServiceData

    curtain3ServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain3;
        modelFriendlyName: Curtain3;
        modelName: Curtain3;
        position: number;
    }
    +curtain3ServiceData | node-switchbot

    Type Alias curtain3ServiceData

    curtain3ServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain3;
        modelFriendlyName: Curtain3;
        modelName: Curtain3;
        position: number;
    }
    diff --git a/docs/types/curtain3WebhookContext.html b/docs/types/curtain3WebhookContext.html index 59370cc6..00298c0f 100644 --- a/docs/types/curtain3WebhookContext.html +++ b/docs/types/curtain3WebhookContext.html @@ -1 +1 @@ -curtain3WebhookContext | node-switchbot

    Type Alias curtain3WebhookContext

    curtain3WebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    +curtain3WebhookContext | node-switchbot

    Type Alias curtain3WebhookContext

    curtain3WebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/curtainServiceData.html b/docs/types/curtainServiceData.html index 1285a92e..bb0126ed 100644 --- a/docs/types/curtainServiceData.html +++ b/docs/types/curtainServiceData.html @@ -1 +1 @@ -curtainServiceData | node-switchbot

    Type Alias curtainServiceData

    curtainServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain;
        modelFriendlyName: Curtain;
        modelName: Curtain;
        position: number;
    }
    +curtainServiceData | node-switchbot

    Type Alias curtainServiceData

    curtainServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain;
        modelFriendlyName: Curtain;
        modelName: Curtain;
        position: number;
    }
    diff --git a/docs/types/curtainStatus.html b/docs/types/curtainStatus.html index e49ece14..4929628f 100644 --- a/docs/types/curtainStatus.html +++ b/docs/types/curtainStatus.html @@ -1 +1 @@ -curtainStatus | node-switchbot

    Type Alias curtainStatus

    curtainStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        lightLevel?: "bright" | "dim";
        moving: boolean;
        slidePosition: number;
    }
    +curtainStatus | node-switchbot

    Type Alias curtainStatus

    curtainStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        lightLevel?: "bright" | "dim";
        moving: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/curtainWebhookContext.html b/docs/types/curtainWebhookContext.html index 97c6a28d..bb06d136 100644 --- a/docs/types/curtainWebhookContext.html +++ b/docs/types/curtainWebhookContext.html @@ -1 +1 @@ -curtainWebhookContext | node-switchbot

    Type Alias curtainWebhookContext

    curtainWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    +curtainWebhookContext | node-switchbot

    Type Alias curtainWebhookContext

    curtainWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/floorCleaningRobotS10.html b/docs/types/floorCleaningRobotS10.html index e9c0c479..485fbc11 100644 --- a/docs/types/floorCleaningRobotS10.html +++ b/docs/types/floorCleaningRobotS10.html @@ -1 +1 @@ -floorCleaningRobotS10 | node-switchbot

    Type Alias floorCleaningRobotS10

    floorCleaningRobotS10: device & {}
    +floorCleaningRobotS10 | node-switchbot

    Type Alias floorCleaningRobotS10

    floorCleaningRobotS10: device & {}
    diff --git a/docs/types/floorCleaningRobotS10Status.html b/docs/types/floorCleaningRobotS10Status.html index 742750d7..b27aec43 100644 --- a/docs/types/floorCleaningRobotS10Status.html +++ b/docs/types/floorCleaningRobotS10Status.html @@ -1 +1 @@ -floorCleaningRobotS10Status | node-switchbot

    Type Alias floorCleaningRobotS10Status

    floorCleaningRobotS10Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        taskType: string;
        waterBaseBattery: number;
        workingStatus: string;
    }
    +floorCleaningRobotS10Status | node-switchbot

    Type Alias floorCleaningRobotS10Status

    floorCleaningRobotS10Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        taskType: string;
        waterBaseBattery: number;
        workingStatus: string;
    }
    diff --git a/docs/types/floorCleaningRobotS10WebhookContext.html b/docs/types/floorCleaningRobotS10WebhookContext.html index 9e72bda8..d6a640b3 100644 --- a/docs/types/floorCleaningRobotS10WebhookContext.html +++ b/docs/types/floorCleaningRobotS10WebhookContext.html @@ -1 +1 @@ -floorCleaningRobotS10WebhookContext | node-switchbot

    Type Alias floorCleaningRobotS10WebhookContext

    floorCleaningRobotS10WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        taskType:
            | "standBy"
            | "explore"
            | "cleanAll"
            | "cleanArea"
            | "cleanRoom"
            | "fillWater"
            | "deepWashing"
            | "backToCharge"
            | "markingWaterBase"
            | "drying"
            | "collectDust"
            | "remoteControl"
            | "cleanWithExplorer"
            | "fillWaterForHumi"
            | "markingHumi";
        waterBaseBattery: number;
        workingStatus: | "Standby"
        | "Clearing"
        | "Paused"
        | "GotoChargeBase"
        | "Charging"
        | "ChargeDone"
        | "Dormant"
        | "InTrouble"
        | "InRemoteControl"
        | "InDustCollecting";
    }
    +floorCleaningRobotS10WebhookContext | node-switchbot

    Type Alias floorCleaningRobotS10WebhookContext

    floorCleaningRobotS10WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        taskType:
            | "standBy"
            | "explore"
            | "cleanAll"
            | "cleanArea"
            | "cleanRoom"
            | "fillWater"
            | "deepWashing"
            | "backToCharge"
            | "markingWaterBase"
            | "drying"
            | "collectDust"
            | "remoteControl"
            | "cleanWithExplorer"
            | "fillWaterForHumi"
            | "markingHumi";
        waterBaseBattery: number;
        workingStatus: | "Standby"
        | "Clearing"
        | "Paused"
        | "GotoChargeBase"
        | "Charging"
        | "ChargeDone"
        | "Dormant"
        | "InTrouble"
        | "InRemoteControl"
        | "InDustCollecting";
    }
    diff --git a/docs/types/hub2.html b/docs/types/hub2.html index 1fc579de..7060cc5d 100644 --- a/docs/types/hub2.html +++ b/docs/types/hub2.html @@ -1 +1 @@ -hub2 | node-switchbot

    Type Alias hub2

    hub2: device & {}
    +hub2 | node-switchbot

    Type Alias hub2

    hub2: device & {}
    diff --git a/docs/types/hub2ServiceData.html b/docs/types/hub2ServiceData.html index c21f75f2..9b085a5f 100644 --- a/docs/types/hub2ServiceData.html +++ b/docs/types/hub2ServiceData.html @@ -1 +1 @@ -hub2ServiceData | node-switchbot

    Type Alias hub2ServiceData

    hub2ServiceData: serviceData & {
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        lightLevel: number;
        model: Hub2;
        modelFriendlyName: Hub2;
        modelName: Hub2;
    }
    +hub2ServiceData | node-switchbot

    Type Alias hub2ServiceData

    hub2ServiceData: serviceData & {
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        lightLevel: number;
        model: Hub2;
        modelFriendlyName: Hub2;
        modelName: Hub2;
    }
    diff --git a/docs/types/hub2Status.html b/docs/types/hub2Status.html index 18b41142..7856087c 100644 --- a/docs/types/hub2Status.html +++ b/docs/types/hub2Status.html @@ -1 +1 @@ -hub2Status | node-switchbot

    Type Alias hub2Status

    hub2Status: deviceStatus & {
        humidity: number;
        lightLevel: number;
        temperature: number;
    }
    +hub2Status | node-switchbot

    Type Alias hub2Status

    hub2Status: deviceStatus & {
        humidity: number;
        lightLevel: number;
        temperature: number;
    }
    diff --git a/docs/types/hub2WebhookContext.html b/docs/types/hub2WebhookContext.html index b03754a8..513c1bd2 100644 --- a/docs/types/hub2WebhookContext.html +++ b/docs/types/hub2WebhookContext.html @@ -1 +1 @@ -hub2WebhookContext | node-switchbot

    Type Alias hub2WebhookContext

    hub2WebhookContext: deviceWebhookContext & {
        humidity: number;
        lightLevel: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +hub2WebhookContext | node-switchbot

    Type Alias hub2WebhookContext

    hub2WebhookContext: deviceWebhookContext & {
        humidity: number;
        lightLevel: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/humidifier.html b/docs/types/humidifier.html index 6b4c8998..5dbdff00 100644 --- a/docs/types/humidifier.html +++ b/docs/types/humidifier.html @@ -1 +1 @@ -humidifier | node-switchbot

    Type Alias humidifier

    humidifier: device & {}
    +humidifier | node-switchbot

    Type Alias humidifier

    humidifier: device & {}
    diff --git a/docs/types/humidifier2ServiceData.html b/docs/types/humidifier2ServiceData.html index b090c31d..8b4d4e73 100644 --- a/docs/types/humidifier2ServiceData.html +++ b/docs/types/humidifier2ServiceData.html @@ -1 +1 @@ -humidifier2ServiceData | node-switchbot

    Type Alias humidifier2ServiceData

    humidifier2ServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier2;
        modelFriendlyName: Humidifier2;
        modelName: Humidifier2;
        onState: boolean;
        percentage: number;
    }
    +humidifier2ServiceData | node-switchbot

    Type Alias humidifier2ServiceData

    humidifier2ServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier2;
        modelFriendlyName: Humidifier2;
        modelName: Humidifier2;
        onState: boolean;
        percentage: number;
    }
    diff --git a/docs/types/humidifier2Status.html b/docs/types/humidifier2Status.html index e526b275..ac5383a8 100644 --- a/docs/types/humidifier2Status.html +++ b/docs/types/humidifier2Status.html @@ -1 +1 @@ -humidifier2Status | node-switchbot

    Type Alias humidifier2Status

    humidifier2Status: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    +humidifier2Status | node-switchbot

    Type Alias humidifier2Status

    humidifier2Status: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    diff --git a/docs/types/humidifier2WebhookContext.html b/docs/types/humidifier2WebhookContext.html index b54a66b9..810591ee 100644 --- a/docs/types/humidifier2WebhookContext.html +++ b/docs/types/humidifier2WebhookContext.html @@ -1 +1 @@ -humidifier2WebhookContext | node-switchbot

    Type Alias humidifier2WebhookContext

    humidifier2WebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +humidifier2WebhookContext | node-switchbot

    Type Alias humidifier2WebhookContext

    humidifier2WebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/humidifierServiceData.html b/docs/types/humidifierServiceData.html index 7aaa7def..04f7d7c3 100644 --- a/docs/types/humidifierServiceData.html +++ b/docs/types/humidifierServiceData.html @@ -1 +1 @@ -humidifierServiceData | node-switchbot

    Type Alias humidifierServiceData

    humidifierServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier;
        modelFriendlyName: Humidifier;
        modelName: Humidifier;
        onState: boolean;
        percentage: number;
    }
    +humidifierServiceData | node-switchbot

    Type Alias humidifierServiceData

    humidifierServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier;
        modelFriendlyName: Humidifier;
        modelName: Humidifier;
        onState: boolean;
        percentage: number;
    }
    diff --git a/docs/types/humidifierStatus.html b/docs/types/humidifierStatus.html index ecde48b6..c4364c75 100644 --- a/docs/types/humidifierStatus.html +++ b/docs/types/humidifierStatus.html @@ -1 +1 @@ -humidifierStatus | node-switchbot

    Type Alias humidifierStatus

    humidifierStatus: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    +humidifierStatus | node-switchbot

    Type Alias humidifierStatus

    humidifierStatus: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    diff --git a/docs/types/humidifierWebhookContext.html b/docs/types/humidifierWebhookContext.html index ff9dd41e..1231bbbc 100644 --- a/docs/types/humidifierWebhookContext.html +++ b/docs/types/humidifierWebhookContext.html @@ -1 +1 @@ -humidifierWebhookContext | node-switchbot

    Type Alias humidifierWebhookContext

    humidifierWebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +humidifierWebhookContext | node-switchbot

    Type Alias humidifierWebhookContext

    humidifierWebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/indoorCam.html b/docs/types/indoorCam.html index 35d13939..1fce0f08 100644 --- a/docs/types/indoorCam.html +++ b/docs/types/indoorCam.html @@ -1 +1 @@ -indoorCam | node-switchbot

    Type Alias indoorCam

    indoorCam: device & {}
    +indoorCam | node-switchbot

    Type Alias indoorCam

    indoorCam: device & {}
    diff --git a/docs/types/indoorCameraWebhookContext.html b/docs/types/indoorCameraWebhookContext.html index aa80dfec..469c4aa2 100644 --- a/docs/types/indoorCameraWebhookContext.html +++ b/docs/types/indoorCameraWebhookContext.html @@ -1 +1 @@ -indoorCameraWebhookContext | node-switchbot

    Type Alias indoorCameraWebhookContext

    indoorCameraWebhookContext: deviceWebhookContext & {
        detectionState: "DETECTED";
    }
    +indoorCameraWebhookContext | node-switchbot

    Type Alias indoorCameraWebhookContext

    indoorCameraWebhookContext: deviceWebhookContext & {
        detectionState: "DETECTED";
    }
    diff --git a/docs/types/keypad.html b/docs/types/keypad.html index 38dd26a2..26feaed3 100644 --- a/docs/types/keypad.html +++ b/docs/types/keypad.html @@ -1 +1 @@ -keypad | node-switchbot

    Type Alias keypad

    keypad: device & { keyList: keyList; lockDeviceId: string; remoteType: string }
    +keypad | node-switchbot

    Type Alias keypad

    keypad: device & { keyList: keyList; lockDeviceId: string; remoteType: string }
    diff --git a/docs/types/keypadDetectorServiceData.html b/docs/types/keypadDetectorServiceData.html index 70be76a1..b06aee1a 100644 --- a/docs/types/keypadDetectorServiceData.html +++ b/docs/types/keypadDetectorServiceData.html @@ -1 +1 @@ -keypadDetectorServiceData | node-switchbot

    Type Alias keypadDetectorServiceData

    keypadDetectorServiceData: serviceData & {
        battery: number;
        event: boolean;
        low_battery: boolean;
        model: Keypad;
        modelFriendlyName: Keypad;
        modelName: Keypad;
        tampered: boolean;
    }
    +keypadDetectorServiceData | node-switchbot

    Type Alias keypadDetectorServiceData

    keypadDetectorServiceData: serviceData & {
        battery: number;
        event: boolean;
        low_battery: boolean;
        model: Keypad;
        modelFriendlyName: Keypad;
        modelName: Keypad;
        tampered: boolean;
    }
    diff --git a/docs/types/keypadTouch.html b/docs/types/keypadTouch.html index ad622984..69088e58 100644 --- a/docs/types/keypadTouch.html +++ b/docs/types/keypadTouch.html @@ -1 +1 @@ -keypadTouch | node-switchbot

    Type Alias keypadTouch

    keypadTouch: device & {
        keyList: keyList;
        lockDeviceId: string;
        remoteType: string;
    }
    +keypadTouch | node-switchbot

    Type Alias keypadTouch

    keypadTouch: device & {
        keyList: keyList;
        lockDeviceId: string;
        remoteType: string;
    }
    diff --git a/docs/types/keypadTouchWebhookContext.html b/docs/types/keypadTouchWebhookContext.html index 9b5dcbf2..25df0d37 100644 --- a/docs/types/keypadTouchWebhookContext.html +++ b/docs/types/keypadTouchWebhookContext.html @@ -1 +1 @@ -keypadTouchWebhookContext | node-switchbot

    Type Alias keypadTouchWebhookContext

    keypadTouchWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    +keypadTouchWebhookContext | node-switchbot

    Type Alias keypadTouchWebhookContext

    keypadTouchWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    diff --git a/docs/types/keypadWebhookContext.html b/docs/types/keypadWebhookContext.html index 5407687d..eaef1de1 100644 --- a/docs/types/keypadWebhookContext.html +++ b/docs/types/keypadWebhookContext.html @@ -1 +1 @@ -keypadWebhookContext | node-switchbot

    Type Alias keypadWebhookContext

    keypadWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    +keypadWebhookContext | node-switchbot

    Type Alias keypadWebhookContext

    keypadWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    diff --git a/docs/types/lock.html b/docs/types/lock.html index b46cce4b..ba543265 100644 --- a/docs/types/lock.html +++ b/docs/types/lock.html @@ -1 +1 @@ -lock | node-switchbot

    Type Alias lock

    lock: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    +lock | node-switchbot

    Type Alias lock

    lock: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    diff --git a/docs/types/lockPro.html b/docs/types/lockPro.html index 73c14038..a62e8e6e 100644 --- a/docs/types/lockPro.html +++ b/docs/types/lockPro.html @@ -1 +1 @@ -lockPro | node-switchbot

    Type Alias lockPro

    lockPro: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    +lockPro | node-switchbot

    Type Alias lockPro

    lockPro: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    diff --git a/docs/types/lockProServiceData.html b/docs/types/lockProServiceData.html index 90c1f673..d5ce22f4 100644 --- a/docs/types/lockProServiceData.html +++ b/docs/types/lockProServiceData.html @@ -1 +1 @@ -lockProServiceData | node-switchbot

    Type Alias lockProServiceData

    lockProServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: LockPro;
        modelFriendlyName: LockPro;
        modelName: LockPro;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    +lockProServiceData | node-switchbot

    Type Alias lockProServiceData

    lockProServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: LockPro;
        modelFriendlyName: LockPro;
        modelName: LockPro;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    diff --git a/docs/types/lockProStatus.html b/docs/types/lockProStatus.html index 511ca85d..371d8524 100644 --- a/docs/types/lockProStatus.html +++ b/docs/types/lockProStatus.html @@ -1 +1 @@ -lockProStatus | node-switchbot

    Type Alias lockProStatus

    lockProStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    +lockProStatus | node-switchbot

    Type Alias lockProStatus

    lockProStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    diff --git a/docs/types/lockProWebhookContext.html b/docs/types/lockProWebhookContext.html index 5572d304..81d34d6d 100644 --- a/docs/types/lockProWebhookContext.html +++ b/docs/types/lockProWebhookContext.html @@ -1 +1 @@ -lockProWebhookContext | node-switchbot

    Type Alias lockProWebhookContext

    lockProWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    +lockProWebhookContext | node-switchbot

    Type Alias lockProWebhookContext

    lockProWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    diff --git a/docs/types/lockServiceData.html b/docs/types/lockServiceData.html index 2fe373c7..897662a1 100644 --- a/docs/types/lockServiceData.html +++ b/docs/types/lockServiceData.html @@ -1 +1 @@ -lockServiceData | node-switchbot

    Type Alias lockServiceData

    lockServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: Lock;
        modelFriendlyName: Lock;
        modelName: Lock;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    +lockServiceData | node-switchbot

    Type Alias lockServiceData

    lockServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: Lock;
        modelFriendlyName: Lock;
        modelName: Lock;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    diff --git a/docs/types/lockStatus.html b/docs/types/lockStatus.html index 1f024ae3..45a71c9d 100644 --- a/docs/types/lockStatus.html +++ b/docs/types/lockStatus.html @@ -1 +1 @@ -lockStatus | node-switchbot

    Type Alias lockStatus

    lockStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    +lockStatus | node-switchbot

    Type Alias lockStatus

    lockStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    diff --git a/docs/types/lockWebhookContext.html b/docs/types/lockWebhookContext.html index ecfbbeb9..f9ba205c 100644 --- a/docs/types/lockWebhookContext.html +++ b/docs/types/lockWebhookContext.html @@ -1 +1 @@ -lockWebhookContext | node-switchbot

    Type Alias lockWebhookContext

    lockWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    +lockWebhookContext | node-switchbot

    Type Alias lockWebhookContext

    lockWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    diff --git a/docs/types/meter.html b/docs/types/meter.html index c51626e6..e621abed 100644 --- a/docs/types/meter.html +++ b/docs/types/meter.html @@ -1 +1 @@ -meter | node-switchbot

    Type Alias meter

    meter: device & {}
    +meter | node-switchbot

    Type Alias meter

    meter: device & {}
    diff --git a/docs/types/meterPlus.html b/docs/types/meterPlus.html index c2f3c0ab..f5c5c7d7 100644 --- a/docs/types/meterPlus.html +++ b/docs/types/meterPlus.html @@ -1 +1 @@ -meterPlus | node-switchbot

    Type Alias meterPlus

    meterPlus: device & {}
    +meterPlus | node-switchbot

    Type Alias meterPlus

    meterPlus: device & {}
    diff --git a/docs/types/meterPlusServiceData.html b/docs/types/meterPlusServiceData.html index ea8b648c..11b4659e 100644 --- a/docs/types/meterPlusServiceData.html +++ b/docs/types/meterPlusServiceData.html @@ -1 +1 @@ -meterPlusServiceData | node-switchbot

    Type Alias meterPlusServiceData

    meterPlusServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPlus;
        modelFriendlyName: MeterPlus;
        modelName: MeterPlus;
    }
    +meterPlusServiceData | node-switchbot

    Type Alias meterPlusServiceData

    meterPlusServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPlus;
        modelFriendlyName: MeterPlus;
        modelName: MeterPlus;
    }
    diff --git a/docs/types/meterPlusStatus.html b/docs/types/meterPlusStatus.html index f7ca4820..ba6419d7 100644 --- a/docs/types/meterPlusStatus.html +++ b/docs/types/meterPlusStatus.html @@ -1 +1 @@ -meterPlusStatus | node-switchbot

    Type Alias meterPlusStatus

    meterPlusStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    +meterPlusStatus | node-switchbot

    Type Alias meterPlusStatus

    meterPlusStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    diff --git a/docs/types/meterPlusWebhookContext.html b/docs/types/meterPlusWebhookContext.html index 746726f0..b9fbcf30 100644 --- a/docs/types/meterPlusWebhookContext.html +++ b/docs/types/meterPlusWebhookContext.html @@ -1 +1 @@ -meterPlusWebhookContext | node-switchbot

    Type Alias meterPlusWebhookContext

    meterPlusWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterPlusWebhookContext | node-switchbot

    Type Alias meterPlusWebhookContext

    meterPlusWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/meterPro.html b/docs/types/meterPro.html index d2aefa4f..8cadbac9 100644 --- a/docs/types/meterPro.html +++ b/docs/types/meterPro.html @@ -1 +1 @@ -meterPro | node-switchbot

    Type Alias meterPro

    meterPro: device & {}
    +meterPro | node-switchbot

    Type Alias meterPro

    meterPro: device & {}
    diff --git a/docs/types/meterProCO2ServiceData.html b/docs/types/meterProCO2ServiceData.html index 03648008..6b125747 100644 --- a/docs/types/meterProCO2ServiceData.html +++ b/docs/types/meterProCO2ServiceData.html @@ -1 +1 @@ -meterProCO2ServiceData | node-switchbot

    Type Alias meterProCO2ServiceData

    meterProCO2ServiceData: serviceData & {
        battery: number;
        celsius: number;
        co2: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterProCO2;
        modelFriendlyName: MeterProCO2;
        modelName: MeterProCO2;
    }
    +meterProCO2ServiceData | node-switchbot

    Type Alias meterProCO2ServiceData

    meterProCO2ServiceData: serviceData & {
        battery: number;
        celsius: number;
        co2: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterProCO2;
        modelFriendlyName: MeterProCO2;
        modelName: MeterProCO2;
    }
    diff --git a/docs/types/meterProCO2Status.html b/docs/types/meterProCO2Status.html index 5bad1668..067c9257 100644 --- a/docs/types/meterProCO2Status.html +++ b/docs/types/meterProCO2Status.html @@ -1 +1 @@ -meterProCO2Status | node-switchbot

    Type Alias meterProCO2Status

    meterProCO2Status: deviceStatus & {
        battery: number;
        CO2: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    +meterProCO2Status | node-switchbot

    Type Alias meterProCO2Status

    meterProCO2Status: deviceStatus & {
        battery: number;
        CO2: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    diff --git a/docs/types/meterProCO2WebhookContext.html b/docs/types/meterProCO2WebhookContext.html index 21686a6f..41491e03 100644 --- a/docs/types/meterProCO2WebhookContext.html +++ b/docs/types/meterProCO2WebhookContext.html @@ -1 +1 @@ -meterProCO2WebhookContext | node-switchbot

    Type Alias meterProCO2WebhookContext

    meterProCO2WebhookContext: deviceWebhookContext & {
        battery: number;
        CO2: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterProCO2WebhookContext | node-switchbot

    Type Alias meterProCO2WebhookContext

    meterProCO2WebhookContext: deviceWebhookContext & {
        battery: number;
        CO2: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/meterProServiceData.html b/docs/types/meterProServiceData.html index f4d1eb09..92081ec4 100644 --- a/docs/types/meterProServiceData.html +++ b/docs/types/meterProServiceData.html @@ -1 +1 @@ -meterProServiceData | node-switchbot

    Type Alias meterProServiceData

    meterProServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPro;
        modelFriendlyName: MeterPro;
        modelName: MeterPro;
    }
    +meterProServiceData | node-switchbot

    Type Alias meterProServiceData

    meterProServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPro;
        modelFriendlyName: MeterPro;
        modelName: MeterPro;
    }
    diff --git a/docs/types/meterProStatus.html b/docs/types/meterProStatus.html index 7fc7f7b5..b7b1f2b9 100644 --- a/docs/types/meterProStatus.html +++ b/docs/types/meterProStatus.html @@ -1 +1 @@ -meterProStatus | node-switchbot

    Type Alias meterProStatus

    meterProStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    +meterProStatus | node-switchbot

    Type Alias meterProStatus

    meterProStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    diff --git a/docs/types/meterProWebhookContext.html b/docs/types/meterProWebhookContext.html index 03b52ab7..9d02ccf3 100644 --- a/docs/types/meterProWebhookContext.html +++ b/docs/types/meterProWebhookContext.html @@ -1 +1 @@ -meterProWebhookContext | node-switchbot

    Type Alias meterProWebhookContext

    meterProWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterProWebhookContext | node-switchbot

    Type Alias meterProWebhookContext

    meterProWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/meterServiceData.html b/docs/types/meterServiceData.html index f91bf939..a77bff6b 100644 --- a/docs/types/meterServiceData.html +++ b/docs/types/meterServiceData.html @@ -1 +1 @@ -meterServiceData | node-switchbot

    Type Alias meterServiceData

    meterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: Meter;
        modelFriendlyName: Meter;
        modelName: Meter;
    }
    +meterServiceData | node-switchbot

    Type Alias meterServiceData

    meterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: Meter;
        modelFriendlyName: Meter;
        modelName: Meter;
    }
    diff --git a/docs/types/meterStatus.html b/docs/types/meterStatus.html index e86fee8f..71832eb1 100644 --- a/docs/types/meterStatus.html +++ b/docs/types/meterStatus.html @@ -1 +1 @@ -meterStatus | node-switchbot

    Type Alias meterStatus

    meterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    +meterStatus | node-switchbot

    Type Alias meterStatus

    meterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    diff --git a/docs/types/meterWebhookContext.html b/docs/types/meterWebhookContext.html index 0878a519..5c59375f 100644 --- a/docs/types/meterWebhookContext.html +++ b/docs/types/meterWebhookContext.html @@ -1 +1 @@ -meterWebhookContext | node-switchbot

    Type Alias meterWebhookContext

    meterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterWebhookContext | node-switchbot

    Type Alias meterWebhookContext

    meterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/motionSensor.html b/docs/types/motionSensor.html index 18fab300..52cbfc24 100644 --- a/docs/types/motionSensor.html +++ b/docs/types/motionSensor.html @@ -1 +1 @@ -motionSensor | node-switchbot

    Type Alias motionSensor

    motionSensor: device & {}
    +motionSensor | node-switchbot

    Type Alias motionSensor

    motionSensor: device & {}
    diff --git a/docs/types/motionSensorServiceData.html b/docs/types/motionSensorServiceData.html index cce11a31..56fe293a 100644 --- a/docs/types/motionSensorServiceData.html +++ b/docs/types/motionSensorServiceData.html @@ -1 +1 @@ -motionSensorServiceData | node-switchbot

    Type Alias motionSensorServiceData

    motionSensorServiceData: serviceData & {
        battery: number;
        iot: number;
        is_light: boolean;
        led: number;
        lightLevel: string;
        model: MotionSensor;
        modelFriendlyName: MotionSensor;
        modelName: MotionSensor;
        movement: boolean;
        sense_distance: number;
        tested: boolean;
    }
    +motionSensorServiceData | node-switchbot

    Type Alias motionSensorServiceData

    motionSensorServiceData: serviceData & {
        battery: number;
        iot: number;
        is_light: boolean;
        led: number;
        lightLevel: string;
        model: MotionSensor;
        modelFriendlyName: MotionSensor;
        modelName: MotionSensor;
        movement: boolean;
        sense_distance: number;
        tested: boolean;
    }
    diff --git a/docs/types/motionSensorStatus.html b/docs/types/motionSensorStatus.html index 5dd9cca7..8d808464 100644 --- a/docs/types/motionSensorStatus.html +++ b/docs/types/motionSensorStatus.html @@ -1 +1 @@ -motionSensorStatus | node-switchbot

    Type Alias motionSensorStatus

    motionSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
    }
    +motionSensorStatus | node-switchbot

    Type Alias motionSensorStatus

    motionSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
    }
    diff --git a/docs/types/motionSensorWebhookContext.html b/docs/types/motionSensorWebhookContext.html index 1345d19d..ee0b31be 100644 --- a/docs/types/motionSensorWebhookContext.html +++ b/docs/types/motionSensorWebhookContext.html @@ -1 +1 @@ -motionSensorWebhookContext | node-switchbot

    Type Alias motionSensorWebhookContext

    motionSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: "NOT_DETECTED" | "DETECTED";
    }
    +motionSensorWebhookContext | node-switchbot

    Type Alias motionSensorWebhookContext

    motionSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: "NOT_DETECTED" | "DETECTED";
    }
    diff --git a/docs/types/onadvertisement.html b/docs/types/onadvertisement.html index 85608830..ba0c8b22 100644 --- a/docs/types/onadvertisement.html +++ b/docs/types/onadvertisement.html @@ -1 +1 @@ -onadvertisement | node-switchbot

    Type Alias onadvertisement

    onadvertisement: (ad: ad) => Promise<void> | void

    Type declaration

      • (ad: ad): Promise<void> | void
      • Parameters

        Returns Promise<void> | void

    +onadvertisement | node-switchbot

    Type Alias onadvertisement

    onadvertisement: (ad: ad) => Promise<void> | void

    Type declaration

      • (ad: ad): Promise<void> | void
      • Parameters

        Returns Promise<void> | void

    diff --git a/docs/types/ondiscover.html b/docs/types/ondiscover.html index 5ce1cd8d..693c3b7c 100644 --- a/docs/types/ondiscover.html +++ b/docs/types/ondiscover.html @@ -1 +1 @@ -ondiscover | node-switchbot

    Type Alias ondiscover

    ondiscover: (device: SwitchbotDevice) => Promise<void> | void

    Type declaration

    +ondiscover | node-switchbot

    Type Alias ondiscover

    ondiscover: (device: SwitchbotDevice) => Promise<void> | void

    Type declaration

    diff --git a/docs/types/outdoorMeter.html b/docs/types/outdoorMeter.html index 756d9e34..46872003 100644 --- a/docs/types/outdoorMeter.html +++ b/docs/types/outdoorMeter.html @@ -1 +1 @@ -outdoorMeter | node-switchbot

    Type Alias outdoorMeter

    outdoorMeter: device & {}
    +outdoorMeter | node-switchbot

    Type Alias outdoorMeter

    outdoorMeter: device & {}
    diff --git a/docs/types/outdoorMeterServiceData.html b/docs/types/outdoorMeterServiceData.html index 28775504..523e46b7 100644 --- a/docs/types/outdoorMeterServiceData.html +++ b/docs/types/outdoorMeterServiceData.html @@ -1 +1 @@ -outdoorMeterServiceData | node-switchbot

    Type Alias outdoorMeterServiceData

    outdoorMeterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: OutdoorMeter;
        modelFriendlyName: OutdoorMeter;
        modelName: OutdoorMeter;
    }
    +outdoorMeterServiceData | node-switchbot

    Type Alias outdoorMeterServiceData

    outdoorMeterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: OutdoorMeter;
        modelFriendlyName: OutdoorMeter;
        modelName: OutdoorMeter;
    }
    diff --git a/docs/types/outdoorMeterStatus.html b/docs/types/outdoorMeterStatus.html index c00159b0..3e27789a 100644 --- a/docs/types/outdoorMeterStatus.html +++ b/docs/types/outdoorMeterStatus.html @@ -1 +1 @@ -outdoorMeterStatus | node-switchbot

    Type Alias outdoorMeterStatus

    outdoorMeterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    +outdoorMeterStatus | node-switchbot

    Type Alias outdoorMeterStatus

    outdoorMeterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    diff --git a/docs/types/outdoorMeterWebhookContext.html b/docs/types/outdoorMeterWebhookContext.html index 03ecee31..3a3a6573 100644 --- a/docs/types/outdoorMeterWebhookContext.html +++ b/docs/types/outdoorMeterWebhookContext.html @@ -1 +1 @@ -outdoorMeterWebhookContext | node-switchbot

    Type Alias outdoorMeterWebhookContext

    outdoorMeterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +outdoorMeterWebhookContext | node-switchbot

    Type Alias outdoorMeterWebhookContext

    outdoorMeterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/panTiltCamWebhookContext.html b/docs/types/panTiltCamWebhookContext.html index 425f51bc..4fd94c42 100644 --- a/docs/types/panTiltCamWebhookContext.html +++ b/docs/types/panTiltCamWebhookContext.html @@ -1 +1 @@ -panTiltCamWebhookContext | node-switchbot

    Type Alias panTiltCamWebhookContext

    panTiltCamWebhookContext: deviceWebhookContext & { detectionState: "DETECTED" }
    +panTiltCamWebhookContext | node-switchbot

    Type Alias panTiltCamWebhookContext

    panTiltCamWebhookContext: deviceWebhookContext & { detectionState: "DETECTED" }
    diff --git a/docs/types/pantiltCam.html b/docs/types/pantiltCam.html index 6167ea8c..ec41f12d 100644 --- a/docs/types/pantiltCam.html +++ b/docs/types/pantiltCam.html @@ -1 +1 @@ -pantiltCam | node-switchbot

    Type Alias pantiltCam

    pantiltCam: device & {}
    +pantiltCam | node-switchbot

    Type Alias pantiltCam

    pantiltCam: device & {}
    diff --git a/docs/types/pantiltCam2k.html b/docs/types/pantiltCam2k.html index 518e80fa..354b716f 100644 --- a/docs/types/pantiltCam2k.html +++ b/docs/types/pantiltCam2k.html @@ -1 +1 @@ -pantiltCam2k | node-switchbot

    Type Alias pantiltCam2k

    pantiltCam2k: device & {}
    +pantiltCam2k | node-switchbot

    Type Alias pantiltCam2k

    pantiltCam2k: device & {}
    diff --git a/docs/types/plug.html b/docs/types/plug.html index 0f6f3d97..2aeda068 100644 --- a/docs/types/plug.html +++ b/docs/types/plug.html @@ -1 +1 @@ -plug | node-switchbot

    Type Alias plug

    plug: device & {}
    +plug | node-switchbot

    Type Alias plug

    plug: device & {}
    diff --git a/docs/types/plugMini.html b/docs/types/plugMini.html index e2dde61f..e6b987d6 100644 --- a/docs/types/plugMini.html +++ b/docs/types/plugMini.html @@ -1 +1 @@ -plugMini | node-switchbot

    Type Alias plugMini

    plugMini: device & {}
    +plugMini | node-switchbot

    Type Alias plugMini

    plugMini: device & {}
    diff --git a/docs/types/plugMiniJPServiceData.html b/docs/types/plugMiniJPServiceData.html index d3296ed9..e8c817c7 100644 --- a/docs/types/plugMiniJPServiceData.html +++ b/docs/types/plugMiniJPServiceData.html @@ -1 +1 @@ -plugMiniJPServiceData | node-switchbot

    Type Alias plugMiniJPServiceData

    plugMiniJPServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniJP;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    +plugMiniJPServiceData | node-switchbot

    Type Alias plugMiniJPServiceData

    plugMiniJPServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniJP;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    diff --git a/docs/types/plugMiniJPWebhookContext.html b/docs/types/plugMiniJPWebhookContext.html index 3b273a17..e586af29 100644 --- a/docs/types/plugMiniJPWebhookContext.html +++ b/docs/types/plugMiniJPWebhookContext.html @@ -1 +1 @@ -plugMiniJPWebhookContext | node-switchbot

    Type Alias plugMiniJPWebhookContext

    plugMiniJPWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    +plugMiniJPWebhookContext | node-switchbot

    Type Alias plugMiniJPWebhookContext

    plugMiniJPWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    diff --git a/docs/types/plugMiniStatus.html b/docs/types/plugMiniStatus.html index 897c4fcb..6cb0bb43 100644 --- a/docs/types/plugMiniStatus.html +++ b/docs/types/plugMiniStatus.html @@ -1 +1 @@ -plugMiniStatus | node-switchbot

    Type Alias plugMiniStatus

    plugMiniStatus: deviceStatus & {
        electricCurrent: Float64Array;
        electricityOfDay: number;
        power: string;
        voltage: Float64Array;
        weight: Float64Array;
    }
    +plugMiniStatus | node-switchbot

    Type Alias plugMiniStatus

    plugMiniStatus: deviceStatus & {
        electricCurrent: Float64Array;
        electricityOfDay: number;
        power: string;
        voltage: Float64Array;
        weight: Float64Array;
    }
    diff --git a/docs/types/plugMiniUSServiceData.html b/docs/types/plugMiniUSServiceData.html index 096c9a0d..171a5f56 100644 --- a/docs/types/plugMiniUSServiceData.html +++ b/docs/types/plugMiniUSServiceData.html @@ -1 +1 @@ -plugMiniUSServiceData | node-switchbot

    Type Alias plugMiniUSServiceData

    plugMiniUSServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniUS;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    +plugMiniUSServiceData | node-switchbot

    Type Alias plugMiniUSServiceData

    plugMiniUSServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniUS;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    diff --git a/docs/types/plugMiniUSWebhookContext.html b/docs/types/plugMiniUSWebhookContext.html index ddddd4a5..a68bae3a 100644 --- a/docs/types/plugMiniUSWebhookContext.html +++ b/docs/types/plugMiniUSWebhookContext.html @@ -1 +1 @@ -plugMiniUSWebhookContext | node-switchbot

    Type Alias plugMiniUSWebhookContext

    plugMiniUSWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    +plugMiniUSWebhookContext | node-switchbot

    Type Alias plugMiniUSWebhookContext

    plugMiniUSWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    diff --git a/docs/types/plugStatus.html b/docs/types/plugStatus.html index 3a52ff34..b155ea31 100644 --- a/docs/types/plugStatus.html +++ b/docs/types/plugStatus.html @@ -1 +1 @@ -plugStatus | node-switchbot

    Type Alias plugStatus

    plugStatus: deviceStatus & { power: string; version: string }
    +plugStatus | node-switchbot

    Type Alias plugStatus

    plugStatus: deviceStatus & { power: string; version: string }
    diff --git a/docs/types/plugWebhookContext.html b/docs/types/plugWebhookContext.html index 1f890492..6e344923 100644 --- a/docs/types/plugWebhookContext.html +++ b/docs/types/plugWebhookContext.html @@ -1 +1 @@ -plugWebhookContext | node-switchbot

    Type Alias plugWebhookContext

    plugWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    +plugWebhookContext | node-switchbot

    Type Alias plugWebhookContext

    plugWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    diff --git a/docs/types/relaySwitch1PMServiceData.html b/docs/types/relaySwitch1PMServiceData.html index b04b2a90..3323ef42 100644 --- a/docs/types/relaySwitch1PMServiceData.html +++ b/docs/types/relaySwitch1PMServiceData.html @@ -1 +1 @@ -relaySwitch1PMServiceData | node-switchbot

    Type Alias relaySwitch1PMServiceData

    relaySwitch1PMServiceData: serviceData & {
        current: number;
        mode: boolean;
        model: RelaySwitch1PM;
        modelFriendlyName: RelaySwitch1PM;
        modelName: RelaySwitch1PM;
        power: number;
        sequence_number: number;
        state: boolean;
        voltage: number;
    }
    +relaySwitch1PMServiceData | node-switchbot

    Type Alias relaySwitch1PMServiceData

    relaySwitch1PMServiceData: serviceData & {
        current: number;
        mode: boolean;
        model: RelaySwitch1PM;
        modelFriendlyName: RelaySwitch1PM;
        modelName: RelaySwitch1PM;
        power: number;
        sequence_number: number;
        state: boolean;
        voltage: number;
    }
    diff --git a/docs/types/relaySwitch1ServiceData.html b/docs/types/relaySwitch1ServiceData.html index 69c68ee1..951f9e9a 100644 --- a/docs/types/relaySwitch1ServiceData.html +++ b/docs/types/relaySwitch1ServiceData.html @@ -1 +1 @@ -relaySwitch1ServiceData | node-switchbot

    Type Alias relaySwitch1ServiceData

    relaySwitch1ServiceData: serviceData & {
        mode: boolean;
        model: RelaySwitch1;
        modelFriendlyName: RelaySwitch1;
        modelName: RelaySwitch1;
        sequence_number: number;
        state: boolean;
    }
    +relaySwitch1ServiceData | node-switchbot

    Type Alias relaySwitch1ServiceData

    relaySwitch1ServiceData: serviceData & {
        mode: boolean;
        model: RelaySwitch1;
        modelFriendlyName: RelaySwitch1;
        modelName: RelaySwitch1;
        sequence_number: number;
        state: boolean;
    }
    diff --git a/docs/types/remote.html b/docs/types/remote.html index 8a052530..f94c00b9 100644 --- a/docs/types/remote.html +++ b/docs/types/remote.html @@ -1 +1 @@ -remote | node-switchbot

    Type Alias remote

    remote: device & {}
    +remote | node-switchbot

    Type Alias remote

    remote: device & {}
    diff --git a/docs/types/robotVacuumCleanerS1.html b/docs/types/robotVacuumCleanerS1.html index b4d58ea6..443ca9c8 100644 --- a/docs/types/robotVacuumCleanerS1.html +++ b/docs/types/robotVacuumCleanerS1.html @@ -1 +1 @@ -robotVacuumCleanerS1 | node-switchbot

    Type Alias robotVacuumCleanerS1

    robotVacuumCleanerS1: device & {}
    +robotVacuumCleanerS1 | node-switchbot

    Type Alias robotVacuumCleanerS1

    robotVacuumCleanerS1: device & {}
    diff --git a/docs/types/robotVacuumCleanerS1Plus.html b/docs/types/robotVacuumCleanerS1Plus.html index 0f6a5f4f..154e290e 100644 --- a/docs/types/robotVacuumCleanerS1Plus.html +++ b/docs/types/robotVacuumCleanerS1Plus.html @@ -1 +1 @@ -robotVacuumCleanerS1Plus | node-switchbot

    Type Alias robotVacuumCleanerS1Plus

    robotVacuumCleanerS1Plus: device & {}
    +robotVacuumCleanerS1Plus | node-switchbot

    Type Alias robotVacuumCleanerS1Plus

    robotVacuumCleanerS1Plus: device & {}
    diff --git a/docs/types/robotVacuumCleanerS1PlusStatus.html b/docs/types/robotVacuumCleanerS1PlusStatus.html index 7491b5ca..fd882c31 100644 --- a/docs/types/robotVacuumCleanerS1PlusStatus.html +++ b/docs/types/robotVacuumCleanerS1PlusStatus.html @@ -1 +1 @@ -robotVacuumCleanerS1PlusStatus | node-switchbot

    Type Alias robotVacuumCleanerS1PlusStatus

    robotVacuumCleanerS1PlusStatus: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    +robotVacuumCleanerS1PlusStatus | node-switchbot

    Type Alias robotVacuumCleanerS1PlusStatus

    robotVacuumCleanerS1PlusStatus: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    diff --git a/docs/types/robotVacuumCleanerS1PlusWebhookContext.html b/docs/types/robotVacuumCleanerS1PlusWebhookContext.html index b2b63758..86892893 100644 --- a/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +++ b/docs/types/robotVacuumCleanerS1PlusWebhookContext.html @@ -1 +1 @@ -robotVacuumCleanerS1PlusWebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1PlusWebhookContext

    robotVacuumCleanerS1PlusWebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    +robotVacuumCleanerS1PlusWebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1PlusWebhookContext

    robotVacuumCleanerS1PlusWebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    diff --git a/docs/types/robotVacuumCleanerS1Status.html b/docs/types/robotVacuumCleanerS1Status.html index 0029ee2c..8e2a83d8 100644 --- a/docs/types/robotVacuumCleanerS1Status.html +++ b/docs/types/robotVacuumCleanerS1Status.html @@ -1 +1 @@ -robotVacuumCleanerS1Status | node-switchbot

    Type Alias robotVacuumCleanerS1Status

    robotVacuumCleanerS1Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    +robotVacuumCleanerS1Status | node-switchbot

    Type Alias robotVacuumCleanerS1Status

    robotVacuumCleanerS1Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    diff --git a/docs/types/robotVacuumCleanerS1WebhookContext.html b/docs/types/robotVacuumCleanerS1WebhookContext.html index 058807bb..92da438a 100644 --- a/docs/types/robotVacuumCleanerS1WebhookContext.html +++ b/docs/types/robotVacuumCleanerS1WebhookContext.html @@ -1 +1 @@ -robotVacuumCleanerS1WebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1WebhookContext

    robotVacuumCleanerS1WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    +robotVacuumCleanerS1WebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1WebhookContext

    robotVacuumCleanerS1WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    diff --git a/docs/types/robotVacuumCleanerServiceData.html b/docs/types/robotVacuumCleanerServiceData.html index 45c9f031..b335eca6 100644 --- a/docs/types/robotVacuumCleanerServiceData.html +++ b/docs/types/robotVacuumCleanerServiceData.html @@ -1 +1 @@ -robotVacuumCleanerServiceData | node-switchbot

    Type Alias robotVacuumCleanerServiceData

    robotVacuumCleanerServiceData: serviceData & {
        battery: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    +robotVacuumCleanerServiceData | node-switchbot

    Type Alias robotVacuumCleanerServiceData

    robotVacuumCleanerServiceData: serviceData & {
        battery: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    diff --git a/docs/types/stripLight.html b/docs/types/stripLight.html index f1e36dd7..16d7c046 100644 --- a/docs/types/stripLight.html +++ b/docs/types/stripLight.html @@ -1 +1 @@ -stripLight | node-switchbot

    Type Alias stripLight

    stripLight: device & {}
    +stripLight | node-switchbot

    Type Alias stripLight

    stripLight: device & {}
    diff --git a/docs/types/stripLightServiceData.html b/docs/types/stripLightServiceData.html index e497be07..1680b0af 100644 --- a/docs/types/stripLightServiceData.html +++ b/docs/types/stripLightServiceData.html @@ -1 +1 @@ -stripLightServiceData | node-switchbot

    Type Alias stripLightServiceData

    stripLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        delay: number;
        green: number;
        loop_index: number;
        model: StripLight;
        modelFriendlyName: StripLight;
        modelName: StripLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +stripLightServiceData | node-switchbot

    Type Alias stripLightServiceData

    stripLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        delay: number;
        green: number;
        loop_index: number;
        model: StripLight;
        modelFriendlyName: StripLight;
        modelName: StripLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/stripLightStatus.html b/docs/types/stripLightStatus.html index 555cab13..9a6222dc 100644 --- a/docs/types/stripLightStatus.html +++ b/docs/types/stripLightStatus.html @@ -1 +1 @@ -stripLightStatus | node-switchbot

    Type Alias stripLightStatus

    stripLightStatus: deviceStatus & {
        brightness: number;
        color: string;
        power: string;
    }
    +stripLightStatus | node-switchbot

    Type Alias stripLightStatus

    stripLightStatus: deviceStatus & {
        brightness: number;
        color: string;
        power: string;
    }
    diff --git a/docs/types/stripLightWebhookContext.html b/docs/types/stripLightWebhookContext.html index b47bb6f4..d18e2d9a 100644 --- a/docs/types/stripLightWebhookContext.html +++ b/docs/types/stripLightWebhookContext.html @@ -1 +1 @@ -stripLightWebhookContext | node-switchbot

    Type Alias stripLightWebhookContext

    stripLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        powerState: "ON" | "OFF";
    }
    +stripLightWebhookContext | node-switchbot

    Type Alias stripLightWebhookContext

    stripLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/waterLeakDetector.html b/docs/types/waterLeakDetector.html index 8bfe6059..b190aed3 100644 --- a/docs/types/waterLeakDetector.html +++ b/docs/types/waterLeakDetector.html @@ -1 +1 @@ -waterLeakDetector | node-switchbot

    Type Alias waterLeakDetector

    waterLeakDetector: device & {}
    +waterLeakDetector | node-switchbot

    Type Alias waterLeakDetector

    waterLeakDetector: device & {}
    diff --git a/docs/types/waterLeakDetectorServiceData.html b/docs/types/waterLeakDetectorServiceData.html index b153dd98..73f53d5b 100644 --- a/docs/types/waterLeakDetectorServiceData.html +++ b/docs/types/waterLeakDetectorServiceData.html @@ -1 +1 @@ -waterLeakDetectorServiceData | node-switchbot

    Type Alias waterLeakDetectorServiceData

    waterLeakDetectorServiceData: serviceData & {
        battery: number;
        leak: boolean;
        low_battery: boolean;
        model: Leak;
        modelFriendlyName: Leak;
        modelName: Leak;
        tampered: boolean;
    }
    +waterLeakDetectorServiceData | node-switchbot

    Type Alias waterLeakDetectorServiceData

    waterLeakDetectorServiceData: serviceData & {
        battery: number;
        leak: boolean;
        low_battery: boolean;
        model: Leak;
        modelFriendlyName: Leak;
        modelName: Leak;
        tampered: boolean;
    }
    diff --git a/docs/types/waterLeakDetectorStatus.html b/docs/types/waterLeakDetectorStatus.html index bbf21255..1843ae74 100644 --- a/docs/types/waterLeakDetectorStatus.html +++ b/docs/types/waterLeakDetectorStatus.html @@ -1 +1 @@ -waterLeakDetectorStatus | node-switchbot

    Type Alias waterLeakDetectorStatus

    waterLeakDetectorStatus: deviceStatus & { battery: number; status: 0 | 1 }
    +waterLeakDetectorStatus | node-switchbot

    Type Alias waterLeakDetectorStatus

    waterLeakDetectorStatus: deviceStatus & { battery: number; status: 0 | 1 }
    diff --git a/docs/types/waterLeakDetectorWebhookContext.html b/docs/types/waterLeakDetectorWebhookContext.html index a534bfe6..690be109 100644 --- a/docs/types/waterLeakDetectorWebhookContext.html +++ b/docs/types/waterLeakDetectorWebhookContext.html @@ -1 +1 @@ -waterLeakDetectorWebhookContext | node-switchbot

    Type Alias waterLeakDetectorWebhookContext

    waterLeakDetectorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: 0 | 1;
    }
    +waterLeakDetectorWebhookContext | node-switchbot

    Type Alias waterLeakDetectorWebhookContext

    waterLeakDetectorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: 0 | 1;
    }
    diff --git a/package-lock.json b/package-lock.json index 0c3329b4..ae613139 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,38 +1,34 @@ { "name": "node-switchbot", - "version": "3.4.3", + "version": "3.4.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "node-switchbot", - "version": "3.4.3", + "version": "3.4.4", "license": "MIT", "dependencies": { - "@stoprocent/noble": "^1.17.1", + "@stoprocent/noble": "^1.17.3", "async-mutex": "^0.5.0", "undici": "7.2.0" }, "devDependencies": { - "@antfu/eslint-config": "^3.12.0", + "@antfu/eslint-config": "^3.12.1", "@types/aes-js": "^3.1.4", "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", - "@types/jest": "^29.5.14", "@types/mdast": "^4.0.4", "@types/node": "^22.10.2", "@types/semver": "^7.5.8", - "@types/sinon": "^17.0.3", "@types/source-map-support": "^0.5.10", "@vitest/coverage-v8": "^2.1.8", "eslint": "^9.17.0", "eslint-plugin-format": "^0.1.3", - "jest": "^29.7.0", "nodemon": "^3.1.9", "shx": "^0.3.4", - "sinon": "^19.0.2", "ts-node": "^10.9.2", - "typedoc": "^0.27.5", + "typedoc": "^0.27.6", "typescript": "^5.7.2", "vitest": "^2.1.8" }, @@ -58,31 +54,31 @@ } }, "node_modules/@antfu/eslint-config": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.12.0.tgz", - "integrity": "sha512-dMHomZZXufEpjKElh7dcfBKu+qFGz9NOACGaqNNAmr9XHe5JQe/6oNNdP3YGeyXSPR/V37IXFvxM0P76WHv1IA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.12.1.tgz", + "integrity": "sha512-6sRgO4u63GK75xeZ2MfCSRT9GcfLti4ZN3Xw+bIu39oo6HY50fBY+rXnWvgwNimzHBOh3yV5xUHfTqcHq1M5AA==", "dev": true, "license": "MIT", "dependencies": { "@antfu/install-pkg": "^0.5.0", - "@clack/prompts": "^0.8.2", + "@clack/prompts": "^0.9.0", "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/markdown": "^6.2.1", "@stylistic/eslint-plugin": "^2.12.1", - "@typescript-eslint/eslint-plugin": "^8.18.0", - "@typescript-eslint/parser": "^8.18.0", - "@vitest/eslint-plugin": "^1.1.16", + "@typescript-eslint/eslint-plugin": "^8.18.2", + "@typescript-eslint/parser": "^8.18.2", + "@vitest/eslint-plugin": "^1.1.20", "eslint-config-flat-gitignore": "^0.3.0", "eslint-flat-config-utils": "^0.4.0", "eslint-merge-processors": "^0.1.0", "eslint-plugin-antfu": "^2.7.0", - "eslint-plugin-command": "^0.2.6", - "eslint-plugin-import-x": "^4.5.0", + "eslint-plugin-command": "^0.2.7", + "eslint-plugin-import-x": "^4.6.1", "eslint-plugin-jsdoc": "^50.6.1", "eslint-plugin-jsonc": "^2.18.2", - "eslint-plugin-n": "^17.15.0", + "eslint-plugin-n": "^17.15.1", "eslint-plugin-no-only-tests": "^3.3.0", - "eslint-plugin-perfectionist": "^4.3.0", + "eslint-plugin-perfectionist": "^4.4.0", "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-toml": "^0.12.0", "eslint-plugin-unicorn": "^56.0.1", @@ -90,7 +86,7 @@ "eslint-plugin-vue": "^9.32.0", "eslint-plugin-yml": "^1.16.0", "eslint-processor-vue-blocks": "^0.1.2", - "globals": "^15.13.0", + "globals": "^15.14.0", "jsonc-eslint-parser": "^2.4.0", "local-pkg": "^0.5.1", "parse-gitignore": "^2.0.0", @@ -164,19 +160,6 @@ } } }, - "node_modules/@antfu/eslint-config/node_modules/globals": { - "version": "15.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", - "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@antfu/install-pkg": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.5.0.tgz", @@ -216,143 +199,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", @@ -373,30 +219,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/parser": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", @@ -413,451 +235,168 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT" }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@clack/core": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.0.tgz", + "integrity": "sha512-YJCYBsyJfNDaTbvDUVSJ3SgSuPrcujarRgkJ5NLjexDZKvaOiVVJvAQYx8lIgG0qRT8ff0fPgqyBCVivanIZ+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "picocolors": "^1.0.0", + "sisteransi": "^1.0.5" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@clack/prompts": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.9.0.tgz", + "integrity": "sha512-nGsytiExgUr4FL0pR/LeqxA28nz3E0cW7eLTSh3Iod9TGrbBt8Y7BHbV3mmkNC4G0evdYyQ3ZsbiBkk7ektArA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@clack/core": "0.4.0", + "picocolors": "^1.0.0", + "sisteransi": "^1.0.5" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@dprint/formatter": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@dprint/formatter/-/formatter-0.3.0.tgz", + "integrity": "sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT" }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "node_modules/@dprint/markdown": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@dprint/markdown/-/markdown-0.17.8.tgz", + "integrity": "sha512-ukHFOg+RpG284aPdIg7iPrCYmMs3Dqy43S1ejybnwlJoFiW02b+6Bbr5cfZKFRYNP3dKGM86BqHEnMzBOyLvvA==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT" }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@dprint/toml": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@dprint/toml/-/toml-0.6.3.tgz", + "integrity": "sha512-zQ42I53sb4WVHA+5yoY1t59Zk++Ot02AvUgtNKLzTT8mPyVqVChFcePa3on/xIoKEgH+RoepgPHzqfk9837YFw==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT" }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@es-joy/jsdoccomment": { + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.49.0.tgz", + "integrity": "sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~4.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@clack/core": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.3.5.tgz", - "integrity": "sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "sisteransi": "^1.0.5" - } - }, - "node_modules/@clack/prompts": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.8.2.tgz", - "integrity": "sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@clack/core": "0.3.5", - "picocolors": "^1.0.0", - "sisteransi": "^1.0.5" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@dprint/formatter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@dprint/formatter/-/formatter-0.3.0.tgz", - "integrity": "sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@dprint/markdown": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@dprint/markdown/-/markdown-0.17.8.tgz", - "integrity": "sha512-ukHFOg+RpG284aPdIg7iPrCYmMs3Dqy43S1ejybnwlJoFiW02b+6Bbr5cfZKFRYNP3dKGM86BqHEnMzBOyLvvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@dprint/toml": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@dprint/toml/-/toml-0.6.3.tgz", - "integrity": "sha512-zQ42I53sb4WVHA+5yoY1t59Zk++Ot02AvUgtNKLzTT8mPyVqVChFcePa3on/xIoKEgH+RoepgPHzqfk9837YFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@es-joy/jsdoccomment": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.48.0.tgz", - "integrity": "sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "comment-parser": "1.4.1", - "esquery": "^1.6.0", - "jsdoc-type-pratt-parser": "~4.1.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, @@ -1611,475 +1150,45 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "license": "MIT", "engines": { @@ -2737,62 +1846,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz", - "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "lodash.get": "^4.4.2", - "type-detect": "^4.1.0" - } - }, - "node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", - "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", - "dev": true, - "license": "(Unlicense OR Apache-2.0)" - }, "node_modules/@stoprocent/bluetooth-hci-socket": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/@stoprocent/bluetooth-hci-socket/-/bluetooth-hci-socket-1.4.3.tgz", @@ -2820,9 +1873,9 @@ } }, "node_modules/@stoprocent/noble": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@stoprocent/noble/-/noble-1.17.1.tgz", - "integrity": "sha512-pSdSJxZiGx/VFaWPh8DXTe8j5KA+oAGCv8iCfQHV8Rf7T8G2f/SZG4fTiFNfnCe+kxdpHZ/h+GzIIDcZZRHS6Q==", + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@stoprocent/noble/-/noble-1.17.3.tgz", + "integrity": "sha512-hvPqZd6OrL4ieFdV27QAhIF+o9pYWm1uWk/K0uh9Pl38ZzgGSpE9R1+QsyZIPaDBP/G7wAKqfLElF5qcSSTT1A==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -2893,51 +1946,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -2948,6 +1956,13 @@ "@types/ms": "*" } }, + "node_modules/@types/doctrine": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", + "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2966,16 +1981,6 @@ "@types/node": "*" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/hast": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", @@ -2986,44 +1991,6 @@ "@types/unist": "*" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -3082,23 +2049,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/sinon": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", - "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", - "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/source-map-support": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.5.10.tgz", @@ -3109,13 +2059,6 @@ "source-map": "^0.6.0" } }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", @@ -3130,35 +2073,18 @@ "license": "MIT", "optional": true }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.1.tgz", - "integrity": "sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz", + "integrity": "sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.18.1", - "@typescript-eslint/type-utils": "8.18.1", - "@typescript-eslint/utils": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1", + "@typescript-eslint/scope-manager": "8.18.2", + "@typescript-eslint/type-utils": "8.18.2", + "@typescript-eslint/utils": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3178,16 +2104,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.1.tgz", - "integrity": "sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.2.tgz", + "integrity": "sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.18.1", - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/typescript-estree": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1", + "@typescript-eslint/scope-manager": "8.18.2", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/typescript-estree": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "debug": "^4.3.4" }, "engines": { @@ -3203,14 +2129,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz", - "integrity": "sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz", + "integrity": "sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1" + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3221,14 +2147,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.1.tgz", - "integrity": "sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz", + "integrity": "sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.18.1", - "@typescript-eslint/utils": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.2", + "@typescript-eslint/utils": "8.18.2", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3245,9 +2171,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.1.tgz", - "integrity": "sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.2.tgz", + "integrity": "sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==", "dev": true, "license": "MIT", "engines": { @@ -3259,14 +2185,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz", - "integrity": "sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", + "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3286,16 +2212,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.1.tgz", - "integrity": "sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.2.tgz", + "integrity": "sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.18.1", - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/typescript-estree": "8.18.1" + "@typescript-eslint/scope-manager": "8.18.2", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/typescript-estree": "8.18.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3310,13 +2236,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz", - "integrity": "sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", + "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/types": "8.18.2", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -3361,9 +2287,9 @@ } }, "node_modules/@vitest/eslint-plugin": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.1.17.tgz", - "integrity": "sha512-V3cu24F73gN1h37XNo6fMGVDws+O7vHwsH2CHWUP9eJQXw91keCI2X+lYqDaSO98nxAIBi5AhsOjGLAGXvtmhw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.1.21.tgz", + "integrity": "sha512-gIpmafm7WSwXGHq413q3fC26+nER5mQtM7Lqi7UusY5bSzeQIJmViC+G6CfPo06U0CfgZ+rt7FPaskpkZ2f6gg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -3630,22 +2556,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3759,171 +2669,6 @@ "node": ">= 4.0.0" } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -4007,23 +2752,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -4077,16 +2805,6 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001677", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", @@ -4153,16 +2871,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -4238,13 +2946,6 @@ "node": ">=8" } }, - "node_modules/cjs-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", - "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", - "dev": true, - "license": "MIT" - }, "node_modules/clean-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", @@ -4283,24 +2984,6 @@ "node": ">=12" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "license": "MIT" - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4345,13 +3028,6 @@ "dev": true, "license": "MIT" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, "node_modules/core-js-compat": { "version": "3.39.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", @@ -4366,28 +3042,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -4454,21 +3108,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, "node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", @@ -4486,16 +3125,6 @@ "dev": true, "license": "MIT" }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -4524,16 +3153,6 @@ "node": ">=6" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", @@ -4548,26 +3167,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -4595,19 +3194,6 @@ "dev": true, "license": "ISC" }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4616,9 +3202,9 @@ "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4947,13 +3533,13 @@ } }, "node_modules/eslint-plugin-command": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-command/-/eslint-plugin-command-0.2.6.tgz", - "integrity": "sha512-T0bHZ1oblW1xUHUVoBKZJR2osSNNGkfZuK4iqboNwuNS/M7tdp3pmURaJtTi/XDzitxaQ02lvOdFH0mUd5QLvQ==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-command/-/eslint-plugin-command-0.2.7.tgz", + "integrity": "sha512-UXJ/1R6kdKDcHhiRqxHJ9RZ3juMR1IWQuSrnwt56qCjxt/am+5+YDt6GKs1FJPnppe6/geEYsO3CR9jc63i0xw==", "dev": true, "license": "MIT", "dependencies": { - "@es-joy/jsdoccomment": "^0.48.0" + "@es-joy/jsdoccomment": "^0.49.0" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -5007,16 +3593,18 @@ } }, "node_modules/eslint-plugin-import-x": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.5.0.tgz", - "integrity": "sha512-l0OTfnPF8RwmSXfjT75N8d6ZYLVrVYWpaGlgvVkVqFERCI5SyBfDP7QEMr3kt0zWi2sOa9EQ47clbdFsHkF83Q==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.6.1.tgz", + "integrity": "sha512-wluSUifMIb7UfwWXqx7Yx0lE/SGCcGXECLx/9bCmbY2nneLwvAZ4vkd1IXDjPKFvdcdUgr1BaRnaRpx3k2+Pfw==", "dev": true, "license": "MIT", "dependencies": { + "@types/doctrine": "^0.0.9", "@typescript-eslint/scope-manager": "^8.1.0", "@typescript-eslint/utils": "^8.1.0", "debug": "^4.3.4", "doctrine": "^3.0.0", + "enhanced-resolve": "^5.17.1", "eslint-import-resolver-node": "^0.3.9", "get-tsconfig": "^4.7.3", "is-glob": "^4.0.3", @@ -5058,21 +3646,6 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/@es-joy/jsdoccomment": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.49.0.tgz", - "integrity": "sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "comment-parser": "1.4.1", - "esquery": "^1.6.0", - "jsdoc-type-pratt-parser": "~4.1.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/eslint-plugin-jsonc": { "version": "2.18.2", "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.18.2.tgz", @@ -5160,9 +3733,9 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.15.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.15.0.tgz", - "integrity": "sha512-xF3zJkOfLlFOm5TvmqmsnA9/fO+/z2pYs0dkuKXKN/ymS6UB1yEcaoIkqxLKQ9Dw/WmLX/Tdh6/5ZS5azVixFQ==", + "version": "17.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.15.1.tgz", + "integrity": "sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==", "dev": true, "license": "MIT", "dependencies": { @@ -5196,14 +3769,14 @@ } }, "node_modules/eslint-plugin-perfectionist": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.3.0.tgz", - "integrity": "sha512-8tQ/wn1dFelul2WoXL/NQOEwvWO8H4Vjmsqpt3fDQrfgybr8kQ5Vgb9BQyVRB33ywQqjUApsiwi5Ci7grMPPRA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.4.0.tgz", + "integrity": "sha512-B78pWxCsA2sClourpWEmWziCcjEsAEyxsNV5G6cxxteu/NI0/2en9XZUONf5e/+O+dgoLZsEPHQEhnIxJcnUvA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "^8.18.0", - "@typescript-eslint/utils": "^8.18.0", + "@typescript-eslint/types": "^8.18.1", + "@typescript-eslint/utils": "^8.18.1", "natural-orderby": "^5.0.0" }, "engines": { @@ -5500,20 +4073,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", @@ -5568,56 +4127,6 @@ "node": ">=0.10.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/expect-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", @@ -5687,25 +4196,15 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -5871,16 +4370,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -5911,29 +4400,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-tsconfig": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", @@ -6007,9 +4473,9 @@ } }, "node_modules/globals": { - "version": "15.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", - "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "license": "MIT", "engines": { @@ -6122,16 +4588,6 @@ "dev": true, "license": "MIT" }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -6166,26 +4622,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6267,848 +4703,180 @@ "engines": { "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "optional": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT", - "optional": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "devOptional": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", - "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.23", - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "hasown": "^2.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "license": "MIT", - "engines": { - "node": ">=6" + "optional": true, + "bin": { + "is-docker": "cli.js" }, - "peerDependencies": { - "jest-resolve": "*" + "engines": { + "node": ">=8" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "devOptional": true, "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.12.0" } }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "license": "MIT", + "optional": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "is-docker": "^2.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-util/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT", - "engines": { - "node": ">=8" - } + "optional": true }, - "node_modules/jest-util/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">=8" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@isaacs/cliui": "^8.0.2" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/js-tokens": { @@ -7201,19 +4969,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonc-eslint-parser": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", @@ -7287,13 +5042,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/just-extend": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", - "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", - "dev": true, - "license": "MIT" - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -7314,26 +5062,6 @@ "graceful-fs": "^4.1.11" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -7405,13 +5133,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7437,16 +5158,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -7499,16 +5210,6 @@ "dev": true, "license": "ISC" }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -7758,13 +5459,6 @@ "dev": true, "license": "MIT" }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -8393,16 +6087,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -8510,30 +6194,6 @@ "node": ">=18" } }, - "node_modules/nise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz", - "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^13.0.1", - "@sinonjs/text-encoding": "^0.7.3", - "just-extend": "^6.2.0", - "path-to-regexp": "^8.1.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", - "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, "node_modules/node-addon-api": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.1.tgz", @@ -8554,13 +6214,6 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -8677,19 +6330,6 @@ "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -8719,24 +6359,8 @@ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "devOptional": true, "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "wrappy": "1" } }, "node_modules/open": { @@ -9014,16 +6638,6 @@ "dev": true, "license": "ISC" }, - "node_modules/path-to-regexp": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - } - }, "node_modules/pathe": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", @@ -9061,85 +6675,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/pkg-types": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", @@ -9244,48 +6779,6 @@ "node": ">=6.0.0" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -9313,23 +6806,6 @@ "node": ">=6" } }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -9351,13 +6827,6 @@ ], "license": "MIT" }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -9593,29 +7062,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -9636,16 +7082,6 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -9898,13 +7334,6 @@ "dev": true, "license": "ISC" }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -9918,35 +7347,6 @@ "node": ">=10" } }, - "node_modules/sinon": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-19.0.2.tgz", - "integrity": "sha512-euuToqM+PjO4UgXeLETsfQiuoyPXlqFezr6YZDFwHR3t4qaX0fZUe1MfPMznTL5f8BWrVS89KduLdMUsxFCO6g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^13.0.2", - "@sinonjs/samsam": "^8.0.1", - "diff": "^7.0.0", - "nise": "^6.1.1", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon/node_modules/@sinonjs/fake-timers": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", - "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -9954,16 +7354,6 @@ "dev": true, "license": "MIT" }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/slashes": { "version": "3.0.12", "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", @@ -9991,17 +7381,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -10049,13 +7428,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/stable-hash": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", @@ -10063,29 +7435,6 @@ "dev": true, "license": "MIT" }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -10100,20 +7449,6 @@ "dev": true, "license": "MIT" }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -10172,26 +7507,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -10364,13 +7679,6 @@ "node": ">=0.6.0" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -10509,33 +7817,10 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typedoc": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.27.5.tgz", - "integrity": "sha512-x+fhKJtTg4ozXwKayh/ek4wxZQI/+2hmZUdO2i2NGDBRUflDble70z+ewHod3d4gRpXSO6fnlnjbDTnJk7HlkQ==", + "version": "0.27.6", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.27.6.tgz", + "integrity": "sha512-oBFRoh2Px6jFx366db0lLlihcalq/JzyCVp7Vaq1yphL/tbgx2e+bkpkCgJPunaPvPwoTOXSwasfklWHm7GfAw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10746,21 +8031,6 @@ "dev": true, "license": "MIT" }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -11005,16 +8275,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -11102,20 +8362,6 @@ "devOptional": true, "license": "ISC" }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -11136,13 +8382,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, "node_modules/yaml": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", diff --git a/package.json b/package.json index f4f513af..200caa97 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "node-switchbot", "type": "module", - "version": "3.4.3", + "version": "3.4.4", "description": "The node-switchbot is a Node.js module which allows you to control your Switchbot Devices through Bluetooth (BLE).", "author": "OpenWonderLabs (https://github.com/OpenWonderLabs)", "license": "MIT", @@ -44,13 +44,14 @@ "postpublish": "npm run clean && npm ci", "clean": "shx rm -rf ./dist", "test": "vitest run", + "test:watch": "vitest watch", "test-coverage": "npm run test -- --coverage", "docs": "typedoc", "lint-docs": "typedoc --emit none --treatWarningsAsErrors" }, "readmeFilename": "README.md", "dependencies": { - "@stoprocent/noble": "^1.17.1", + "@stoprocent/noble": "^1.17.3", "async-mutex": "^0.5.0", "undici": "7.2.0" }, @@ -58,25 +59,21 @@ "@stoprocent/bluetooth-hci-socket": "^1.4.3" }, "devDependencies": { - "@antfu/eslint-config": "^3.12.0", + "@antfu/eslint-config": "^3.12.1", "@types/aes-js": "^3.1.4", "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", - "@types/jest": "^29.5.14", "@types/mdast": "^4.0.4", "@types/node": "^22.10.2", "@types/semver": "^7.5.8", - "@types/sinon": "^17.0.3", "@types/source-map-support": "^0.5.10", "@vitest/coverage-v8": "^2.1.8", "eslint": "^9.17.0", "eslint-plugin-format": "^0.1.3", - "jest": "^29.7.0", "nodemon": "^3.1.9", "shx": "^0.3.4", - "sinon": "^19.0.2", "ts-node": "^10.9.2", - "typedoc": "^0.27.5", + "typedoc": "^0.27.6", "typescript": "^5.7.2", "vitest": "^2.1.8" } diff --git a/src/device/woplugmini_jp.ts b/src/device/woplugmini_jp.ts index 04571eea..f8c138c9 100644 --- a/src/device/woplugmini_jp.ts +++ b/src/device/woplugmini_jp.ts @@ -70,7 +70,7 @@ export class WoPlugMiniJP extends SwitchbotDevice { * Reads the state of the plug. * @returns {Promise} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false). */ - async readState(): Promise { + public async readState(): Promise { return this.operatePlug([0x57, 0x0F, 0x51, 0x01]) } @@ -80,7 +80,7 @@ export class WoPlugMiniJP extends SwitchbotDevice { * @param {number[]} reqByteArray - The request byte array. * @returns {Promise} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false). */ - private async setState(reqByteArray: number[]): Promise { + public async setState(reqByteArray: number[]): Promise { const base = [0x57, 0x0F, 0x50, 0x01] return this.operatePlug([...base, ...reqByteArray]) } diff --git a/src/switchbot-openapi.ts b/src/switchbot-openapi.ts index 0a82dea5..ce8050d6 100644 --- a/src/switchbot-openapi.ts +++ b/src/switchbot-openapi.ts @@ -9,7 +9,6 @@ import type { devices } from './types/deviceresponse.js' import type { deviceStatus, deviceStatusRequest } from './types/devicestatus.js' import type { deleteWebhookResponse, queryWebhookResponse, setupWebhookResponse, updateWebhookResponse } from './types/devicewebhookstatus.js' -import { Buffer } from 'node:buffer' import crypto, { randomUUID } from 'node:crypto' import { EventEmitter } from 'node:events' import { createServer } from 'node:http' @@ -18,6 +17,16 @@ import { request } from 'undici' import { updateBaseURL, urls } from './settings.js' +/** + * Custom error class for API errors. + */ +class APIError extends Error { + constructor(message: string, public statusCode?: number) { + super(message) + this.name = 'APIError' + } +} + /** * The `SwitchBotOpenAPI` class provides methods to interact with the SwitchBot OpenAPI. * It allows you to retrieve device information, control devices, and manage webhooks. @@ -88,6 +97,36 @@ export class SwitchBotOpenAPI extends EventEmitter { this.emit('log', { level, message }) } + /** + * Generates the headers required for authentication with the SwitchBot OpenAPI. + * + * @param configToken - The token used for authorization. + * @param configSecret - The secret key used to sign the request. + * @returns An object containing the necessary headers: + * - `Authorization`: The authorization token. + * - `sign`: The HMAC-SHA256 signature of the token, timestamp, and nonce. + * - `nonce`: A unique identifier for the request. + * - `t`: The current timestamp in milliseconds. + * - `Content-Type`: The content type of the request, set to 'application/json'. + */ + private generateHeaders = (configToken: string, configSecret: string): { 'Authorization': string, 'sign': string, 'nonce': string, 't': string, 'Content-Type': string } => { + const t = Date.now().toString() + const nonce = randomUUID() + const data = configToken + t + nonce + const sign = crypto + .createHmac('sha256', configSecret) + .update(data) + .digest('base64') + + return { + 'Authorization': configToken, + 'sign': sign, + 'nonce': nonce, + 't': t, + 'Content-Type': 'application/json', + } + } + /** * Retrieves the list of devices from the SwitchBot OpenAPI. * @param token - (Optional) The token used for authentication. If not provided, the instance token will be used. @@ -104,9 +143,9 @@ export class SwitchBotOpenAPI extends EventEmitter { this.emitLog('debug', `Got devices: ${JSON.stringify(response)}`) this.emitLog('debug', `statusCode: ${statusCode}`) return { response, statusCode } - } catch (error: any) { - this.emitLog('error', `Failed to get devices: ${error.message}`) - throw new Error(`Failed to get devices: ${error.message}`) + } catch (e: any) { + this.emitLog('error', `Failed to get devices: ${e.message ?? e}`) + throw new APIError(`Failed to get devices: ${e.message ?? e}`, e.statusCode) } } @@ -139,9 +178,9 @@ export class SwitchBotOpenAPI extends EventEmitter { this.emitLog('debug', `Controlled device: ${deviceId} with command: ${command} and parameter: ${parameter}`) this.emitLog('debug', `statusCode: ${statusCode}`) return { response, statusCode } - } catch (error: any) { - this.emitLog('error', `Failed to control device: ${error.message}`) - throw new Error(`Failed to control device: ${error.message}`) + } catch (e: any) { + this.emitLog('error', `Failed to control device: ${e.message ?? e}`) + throw new APIError(`Failed to control device: ${e.message ?? e}`, e.statusCode) } } @@ -169,36 +208,6 @@ export class SwitchBotOpenAPI extends EventEmitter { } } - /** - * Generates the headers required for authentication with the SwitchBot OpenAPI. - * - * @param configToken - The token used for authorization. - * @param configSecret - The secret key used to sign the request. - * @returns An object containing the necessary headers: - * - `Authorization`: The authorization token. - * - `sign`: The HMAC-SHA256 signature of the token, timestamp, and nonce. - * - `nonce`: A unique identifier for the request. - * - `t`: The current timestamp in milliseconds. - * - `Content-Type`: The content type of the request, set to 'application/json'. - */ - private generateHeaders = (configToken: string, configSecret: string): { 'Authorization': string, 'sign': string, 'nonce': string, 't': string, 'Content-Type': string } => { - const t = `${Date.now()}` - const nonce = randomUUID() - const data = configToken + t + nonce - const sign = crypto - .createHmac('sha256', configSecret) - .update(data) - .digest('base64') - - return { - 'Authorization': configToken, - 'sign': sign, - 'nonce': nonce, - 't': t, - 'Content-Type': 'application/json', - } - } - /** * Sets up a webhook listener and configures the webhook on the server. * @@ -245,7 +254,7 @@ export class SwitchBotOpenAPI extends EventEmitter { }).listen(port || 80) } catch (e: any) { await this.emitLog('error', `Failed to create webhook listener, Error: ${e.message ?? e}`) - return + throw new APIError(`Failed to create webhook listener: ${e.message ?? e}`, e.statusCode) } try { @@ -267,6 +276,7 @@ export class SwitchBotOpenAPI extends EventEmitter { } } catch (e: any) { await this.emitLog('error', `Failed to configure webhook, Error: ${e.message ?? e}`) + throw new APIError(`Failed to configure webhook: ${e.message ?? e}`, e.statusCode) } try { @@ -290,6 +300,7 @@ export class SwitchBotOpenAPI extends EventEmitter { } } catch (e: any) { await this.emitLog('error', `Failed to update webhook, Error: ${e.message ?? e}`) + throw new APIError(`Failed to update webhook: ${e.message ?? e}`, e.statusCode) } try { @@ -311,6 +322,7 @@ export class SwitchBotOpenAPI extends EventEmitter { } } catch (e: any) { await this.emitLog('error', `Failed to query webhook, Error: ${e.message ?? e}`) + throw new APIError(`Failed to query webhook: ${e.message ?? e}`, e.statusCode) } } @@ -345,6 +357,7 @@ export class SwitchBotOpenAPI extends EventEmitter { } } catch (e: any) { await this.emitLog('error', `Failed to delete webhook, Error: ${e.message ?? e}`) + throw new APIError(`Failed to delete webhook: ${e.message ?? e}`, e.statusCode) } } } diff --git a/src/test/device.test.ts b/src/test/device.test.ts index 952c334b..1f2df89d 100644 --- a/src/test/device.test.ts +++ b/src/test/device.test.ts @@ -1,25 +1,29 @@ +import type { Mocked } from 'vitest' + import type { NobleTypes } from '../types/types.js' +import { beforeEach, describe, expect, it, vi } from 'vitest' + import { SwitchbotDevice } from '../device.js' describe('switchbotDevice', () => { - let mockPeripheral: jest.Mocked - let mockNoble: jest.Mocked + let mockPeripheral: Mocked + let mockNoble: Mocked beforeEach(() => { mockPeripheral = { - connectAsync: jest.fn().mockResolvedValue(undefined), - disconnectAsync: jest.fn().mockResolvedValue(undefined), - discoverServicesAsync: jest.fn().mockResolvedValue([]), + connectAsync: vi.fn().mockResolvedValue(undefined), + disconnectAsync: vi.fn().mockResolvedValue(undefined), + discoverServicesAsync: vi.fn().mockResolvedValue([]), state: 'disconnected' as 'disconnected' | 'connecting' | 'connected' | 'disconnecting', - once: jest.fn(), - removeAllListeners: jest.fn(), - discoverCharacteristicsAsync: jest.fn().mockResolvedValue([]), - } as unknown as jest.Mocked + once: vi.fn(), + removeAllListeners: vi.fn(), + discoverCharacteristicsAsync: vi.fn().mockResolvedValue([]), + } as unknown as Mocked mockNoble = { _state: 'poweredOn', - } as unknown as jest.Mocked + } as unknown as Mocked }) it('should initialize with correct properties', async () => { diff --git a/src/test/switchbot-openapi.test.ts b/src/test/switchbot-openapi.test.ts index 7d5c52b0..c86d6b8b 100644 --- a/src/test/switchbot-openapi.test.ts +++ b/src/test/switchbot-openapi.test.ts @@ -1,10 +1,12 @@ +import type { Mock } from 'vitest' + import { request } from 'undici' -import { describe, expect, it } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { SwitchBotOpenAPI } from '../switchbot-openapi.js' -jest.mock('undici', () => ({ - request: jest.fn(), +vi.mock('undici', () => ({ + request: vi.fn(), })) describe('switchBotOpenAPI', () => { @@ -17,15 +19,15 @@ describe('switchBotOpenAPI', () => { }) afterEach(() => { - jest.clearAllMocks() + vi.clearAllMocks() }) describe('getDevices', () => { it('should retrieve the list of devices', async () => { const mockDevicesResponse = { body: { devices: [] }, statusCode: 200 }; - (request as jest.Mock).mockResolvedValue({ + (request as Mock).mockResolvedValue({ body: { - json: jest.fn().mockResolvedValue(mockDevicesResponse.body), + json: vi.fn().mockResolvedValue(mockDevicesResponse.body), }, statusCode: mockDevicesResponse.statusCode, }) @@ -38,7 +40,7 @@ describe('switchBotOpenAPI', () => { it('should throw an error if the request fails', async () => { const errorMessage = 'Failed to get devices'; - (request as jest.Mock).mockRejectedValue(new Error(errorMessage)) + (request as Mock).mockRejectedValue(new Error(errorMessage)) await expect(switchBotAPI.getDevices()).rejects.toThrow(`Failed to get devices: ${errorMessage}`) }) @@ -47,9 +49,9 @@ describe('switchBotOpenAPI', () => { describe('controlDevice', () => { it('should control a device by sending a command', async () => { const mockControlResponse = { body: {}, statusCode: 200 }; - (request as jest.Mock).mockResolvedValue({ + (request as Mock).mockResolvedValue({ body: { - json: jest.fn().mockResolvedValue(mockControlResponse.body), + json: vi.fn().mockResolvedValue(mockControlResponse.body), }, statusCode: mockControlResponse.statusCode, }) @@ -62,7 +64,7 @@ describe('switchBotOpenAPI', () => { it('should throw an error if the device control fails', async () => { const errorMessage = 'Failed to control device'; - (request as jest.Mock).mockRejectedValue(new Error(errorMessage)) + (request as Mock).mockRejectedValue(new Error(errorMessage)) await expect(switchBotAPI.controlDevice('device-id', 'turnOn', 'default')).rejects.toThrow(`Failed to control device: ${errorMessage}`) }) @@ -71,9 +73,9 @@ describe('switchBotOpenAPI', () => { describe('getDeviceStatus', () => { it('should retrieve the status of a specific device', async () => { const mockStatusResponse = { body: {}, statusCode: 200 }; - (request as jest.Mock).mockResolvedValue({ + (request as Mock).mockResolvedValue({ body: { - json: jest.fn().mockResolvedValue(mockStatusResponse.body), + json: vi.fn().mockResolvedValue(mockStatusResponse.body), }, statusCode: mockStatusResponse.statusCode, }) @@ -86,7 +88,7 @@ describe('switchBotOpenAPI', () => { it('should throw an error if the request fails', async () => { const errorMessage = 'Failed to get device status'; - (request as jest.Mock).mockRejectedValue(new Error(errorMessage)) + (request as Mock).mockRejectedValue(new Error(errorMessage)) await expect(switchBotAPI.getDeviceStatus('device-id')).rejects.toThrow(`Failed to get device status: ${errorMessage}`) }) @@ -95,9 +97,9 @@ describe('switchBotOpenAPI', () => { describe('setupWebhook', () => { it('should set up a webhook listener and configure the webhook on the server', async () => { const mockWebhookResponse = { body: {}, statusCode: 200 }; - (request as jest.Mock).mockResolvedValue({ + (request as Mock).mockResolvedValue({ body: { - json: jest.fn().mockResolvedValue(mockWebhookResponse.body), + json: vi.fn().mockResolvedValue(mockWebhookResponse.body), }, statusCode: mockWebhookResponse.statusCode, }) @@ -110,7 +112,7 @@ describe('switchBotOpenAPI', () => { it('should log an error if the webhook setup fails', async () => { const errorMessage = 'Failed to create webhook listener'; - (request as jest.Mock).mockRejectedValue(new Error(errorMessage)) + (request as Mock).mockRejectedValue(new Error(errorMessage)) const url = 'http://localhost:3000/webhook' await switchBotAPI.setupWebhook(url) diff --git a/src/test/wobulb.test.ts b/src/test/wobulb.test.ts index 9545f2af..47b1c1e1 100644 --- a/src/test/wobulb.test.ts +++ b/src/test/wobulb.test.ts @@ -5,7 +5,7 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import { describe, expect, it, vi } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import { WoBulb } from '../device/wobulb.js' import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js' diff --git a/src/test/wohand.test.ts b/src/test/wohand.test.ts index 38e0be08..f9b3ed86 100644 --- a/src/test/wohand.test.ts +++ b/src/test/wohand.test.ts @@ -2,7 +2,7 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import { describe, expect, it, vi } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import { WoHand } from '../device/wohand.js' import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js' diff --git a/src/test/wohumi.test.ts b/src/test/wohumi.test.ts index 31dea137..92500908 100644 --- a/src/test/wohumi.test.ts +++ b/src/test/wohumi.test.ts @@ -2,7 +2,7 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import { describe, expect, it } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { SwitchbotDevice } from '../device.js' import { WoHumi } from '../device/wohumi.js' @@ -16,11 +16,11 @@ describe('woHumi', () => { mockPeripheral = {} as NobleTypes['peripheral'] mockNoble = {} as NobleTypes['noble'] wohumi = new WoHumi(mockPeripheral, mockNoble) - jest.spyOn(SwitchbotDevice.prototype, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00])) + vi.spyOn(SwitchbotDevice.prototype, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00])) }) afterEach(() => { - jest.restoreAllMocks() + vi.restoreAllMocks() }) describe('percentage', () => { @@ -35,7 +35,7 @@ describe('woHumi', () => { it('should send the correct command for a valid level', async () => { const level = 50 const expectedCommand = Buffer.from(`57010107${level.toString(16).padStart(2, '0')}`, 'hex') - const operateHumiSpy = jest.spyOn(wohumi as any, 'operateHumi') + const operateHumiSpy = vi.spyOn(wohumi as any, 'operateHumi') await wohumi.percentage(level) diff --git a/src/test/wohumi2.test.ts b/src/test/wohumi2.test.ts index 01d9626e..f6c8cf1e 100644 --- a/src/test/wohumi2.test.ts +++ b/src/test/wohumi2.test.ts @@ -2,7 +2,7 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import { describe, expect, it } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { SwitchbotDevice } from '../device.js' import { WoHumi2 } from '../device/wohumi2.js' @@ -16,11 +16,11 @@ describe('woHumi', () => { mockPeripheral = {} as NobleTypes['peripheral'] mockNoble = {} as NobleTypes['noble'] wohumi = new WoHumi2(mockPeripheral, mockNoble) - jest.spyOn(SwitchbotDevice.prototype, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00])) + vi.spyOn(SwitchbotDevice.prototype, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00])) }) afterEach(() => { - jest.restoreAllMocks() + vi.restoreAllMocks() }) describe('percentage', () => { @@ -35,7 +35,7 @@ describe('woHumi', () => { it('should send the correct command for a valid level', async () => { const level = 50 const expectedCommand = Buffer.from(`57010107${level.toString(16).padStart(2, '0')}`, 'hex') - const operateHumiSpy = jest.spyOn(wohumi as any, 'operateHumi') + const operateHumiSpy = vi.spyOn(wohumi as any, 'operateHumi') await wohumi.percentage(level) diff --git a/src/test/woleak.test.ts b/src/test/woleak.test.ts index aa954b1d..2cac14c8 100644 --- a/src/test/woleak.test.ts +++ b/src/test/woleak.test.ts @@ -2,12 +2,14 @@ import type { waterLeakDetectorServiceData } from '../types/bledevicestatus.js' import { Buffer } from 'node:buffer' +import { beforeEach, describe, expect, it, vi } from 'vitest' + import { WoLeak } from '../device/woleak.js' import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js' describe('woLeak', () => { describe('parseServiceData', () => { - const emitLog = jest.fn() + const emitLog = vi.fn() beforeEach(() => { emitLog.mockClear() diff --git a/src/test/woplugmini.test.ts b/src/test/woplugmini.test.ts index 61a7fce0..7b9de628 100644 --- a/src/test/woplugmini.test.ts +++ b/src/test/woplugmini.test.ts @@ -2,17 +2,16 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import sinon from 'sinon' -import { describe, expect, it } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import { WoPlugMiniUS } from '../device/woplugmini.js' import { SwitchBotBLEModel } from '../types/types.js' describe('woPlugMini', () => { - let emitLog: sinon.SinonSpy + let emitLog: ReturnType beforeEach(() => { - emitLog = sinon.spy() + emitLog = vi.fn() }) describe('parseServiceData_US', () => { @@ -37,72 +36,74 @@ describe('woPlugMini', () => { const manufacturerData = Buffer.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) const result = await WoPlugMiniUS.parseServiceData(manufacturerData, emitLog) expect(result).toBeNull() - expect(emitLog.calledWith('error', '[parseServiceDataForWoPlugMini] Buffer length 10 should be 14')).toBe(true) + expect(emitLog).toHaveBeenCalledWith('error', '[parseServiceDataForWoPlugMini] Buffer length 10 should be 14') }) }) describe('operatePlug', () => { let woPlugMini: WoPlugMiniUS - let commandStub: sinon.SinonStub + let commandStub: ReturnType beforeEach(() => { const peripheral = {} as unknown as NobleTypes['peripheral'] woPlugMini = new WoPlugMiniUS(peripheral, emitLog as any) - commandStub = sinon.stub(woPlugMini, 'command') + commandStub = vi.fn() + woPlugMini.command = commandStub }) it('should return true when the plug is turned on', async () => { - commandStub.resolves([0x57, 0x80]) + commandStub.mockResolvedValue([0x57, 0x80]) const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]) expect(result).toBe(true) }) it('should return false when the plug is turned off', async () => { - commandStub.resolves([0x57, 0x00]) + commandStub.mockResolvedValue([0x57, 0x00]) const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]) expect(result).toBe(false) }) it('should throw an error for invalid response length', async () => { - commandStub.resolves([0x57]) + commandStub.mockResolvedValue([0x57]) await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('Expecting a 2-byte response, got instead: 0x57') }) it('should throw an error for invalid response code', async () => { - commandStub.resolves([0x57, 0x01]) + commandStub.mockResolvedValue([0x57, 0x01]) await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('The device returned an error: 0x5701') }) }) describe('state operations', () => { let woPlugMini: WoPlugMiniUS - let setStateStub: sinon.SinonStub + let setStateStub: ReturnType beforeEach(() => { const peripheral = {} as unknown as NobleTypes['peripheral'] woPlugMini = new WoPlugMiniUS(peripheral, emitLog as any) - setStateStub = sinon.stub(woPlugMini as any, 'setState') + setStateStub = vi.fn() + ;(woPlugMini as any).setState = setStateStub }) it('should turn on the plug', async () => { - setStateStub.resolves(true) + setStateStub.mockResolvedValue(true) const result = await woPlugMini.turnOn() expect(result).toBe(true) - expect(setStateStub.calledWith([0x01, 0x80])).toBe(true) + expect(setStateStub).toHaveBeenCalledWith([0x01, 0x80]) }) it('should turn off the plug', async () => { - setStateStub.resolves(false) + setStateStub.mockResolvedValue(false) const result = await woPlugMini.turnOff() expect(result).toBe(false) - expect(setStateStub.calledWith([0x01, 0x00])).toBe(true) + expect(setStateStub).toHaveBeenCalledWith([0x01, 0x00]) }) it('should toggle the plug state', async () => { - setStateStub.resolves(true) + setStateStub.mockResolvedValue(true) const result = await woPlugMini.toggle() expect(result).toBe(true) - expect(setStateStub.calledWith([0x02, 0x80])).toBe(true) + expect(setStateStub).toHaveBeenCalledWith([0x02, 0x80]) }) }) }) diff --git a/src/test/woplugmini_jp.test.ts b/src/test/woplugmini_jp.test.ts index aad06ddb..fb683953 100644 --- a/src/test/woplugmini_jp.test.ts +++ b/src/test/woplugmini_jp.test.ts @@ -2,17 +2,16 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import sinon from 'sinon' -import { describe, expect, it } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import { WoPlugMiniJP } from '../device/woplugmini_jp.js' import { SwitchBotBLEModel } from '../types/types.js' describe('woPlugMini', () => { - let emitLog: sinon.SinonSpy + let emitLog: ReturnType beforeEach(() => { - emitLog = sinon.spy() + emitLog = vi.fn() }) describe('parseServiceData', () => { @@ -37,72 +36,74 @@ describe('woPlugMini', () => { const manufacturerData = Buffer.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) const result = await WoPlugMiniJP.parseServiceData(manufacturerData, emitLog) expect(result).toBeNull() - expect(emitLog.calledWith('error', '[parseServiceDataForWoPlugMini] Buffer length 10 should be 14')).toBe(true) + expect(emitLog).toHaveBeenCalledWith('error', '[parseServiceDataForWoPlugMini] Buffer length 10 should be 14') }) }) describe('operatePlug', () => { let woPlugMini: WoPlugMiniJP - let commandStub: sinon.SinonStub + let commandStub: ReturnType beforeEach(() => { const peripheral = {} as unknown as NobleTypes['peripheral'] woPlugMini = new WoPlugMiniJP(peripheral, emitLog as any) - commandStub = sinon.stub(woPlugMini, 'command') + commandStub = vi.fn() + woPlugMini.command = commandStub }) it('should return true when the plug is turned on', async () => { - commandStub.resolves([0x57, 0x80]) + commandStub.mockResolvedValue([0x57, 0x80]) const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]) expect(result).toBe(true) }) it('should return false when the plug is turned off', async () => { - commandStub.resolves([0x57, 0x00]) + commandStub.mockResolvedValue([0x57, 0x00]) const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]) expect(result).toBe(false) }) it('should throw an error for invalid response length', async () => { - commandStub.resolves([0x57]) + commandStub.mockResolvedValue([0x57]) await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('Expecting a 2-byte response, got instead: 0x57') }) it('should throw an error for invalid response code', async () => { - commandStub.resolves([0x57, 0x01]) + commandStub.mockResolvedValue([0x57, 0x01]) await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('The device returned an error: 0x5701') }) }) describe('state operations', () => { let woPlugMini: WoPlugMiniJP - let setStateStub: sinon.SinonStub + let setStateStub: ReturnType beforeEach(() => { const peripheral = {} as unknown as NobleTypes['peripheral'] woPlugMini = new WoPlugMiniJP(peripheral, emitLog as any) - setStateStub = sinon.stub(woPlugMini as any, 'setState') + setStateStub = vi.fn() + woPlugMini.setState = setStateStub }) it('should turn on the plug', async () => { - setStateStub.resolves(true) + setStateStub.mockResolvedValue(true) const result = await woPlugMini.turnOn() expect(result).toBe(true) - expect(setStateStub.calledWith([0x01, 0x80])).toBe(true) + expect(setStateStub).toHaveBeenCalledWith([0x01, 0x80]) }) it('should turn off the plug', async () => { - setStateStub.resolves(false) + setStateStub.mockResolvedValue(false) const result = await woPlugMini.turnOff() expect(result).toBe(false) - expect(setStateStub.calledWith([0x01, 0x00])).toBe(true) + expect(setStateStub).toHaveBeenCalledWith([0x01, 0x00]) }) it('should toggle the plug state', async () => { - setStateStub.resolves(true) + setStateStub.mockResolvedValue(true) const result = await woPlugMini.toggle() expect(result).toBe(true) - expect(setStateStub.calledWith([0x02, 0x80])).toBe(true) + expect(setStateStub).toHaveBeenCalledWith([0x02, 0x80]) }) }) }) diff --git a/src/test/wosensorth.test.ts b/src/test/wosensorth.test.ts index 397223cb..881dbe98 100644 --- a/src/test/wosensorth.test.ts +++ b/src/test/wosensorth.test.ts @@ -1,10 +1,12 @@ import { Buffer } from 'node:buffer' +import { describe, expect, it, vi } from 'vitest' + import { WoSensorTH } from '../device/wosensorth.js' import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js' describe('woSensorTH', () => { - const emitLog = jest.fn() + const emitLog = vi.fn() describe('parseServiceData', () => { it('should return null if buffer length is not 6', async () => { diff --git a/src/test/wosensorthplus.test.ts b/src/test/wosensorthplus.test.ts index cc202de6..5b02123b 100644 --- a/src/test/wosensorthplus.test.ts +++ b/src/test/wosensorthplus.test.ts @@ -1,10 +1,12 @@ import { Buffer } from 'node:buffer' +import { describe, expect, it, vi } from 'vitest' + import { WoSensorTHPlus } from '../device/wosensorthplus.js' import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js' describe('woSensorTH', () => { - const emitLog = jest.fn() + const emitLog = vi.fn() describe('parseServiceData', () => { it('should return null if buffer length is not 6', async () => { diff --git a/src/test/wosensorthpro.test.ts b/src/test/wosensorthpro.test.ts index 3c3434a8..1b7854b5 100644 --- a/src/test/wosensorthpro.test.ts +++ b/src/test/wosensorthpro.test.ts @@ -1,10 +1,12 @@ import { Buffer } from 'node:buffer' +import { describe, expect, it, vi } from 'vitest' + import { WoSensorTHPro } from '../device/wosensorthpro.js' import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js' describe('woSensorTH', () => { - const emitLog = jest.fn() + const emitLog = vi.fn() describe('parseServiceData', () => { it('should return null if buffer length is not 6', async () => { diff --git a/src/test/wosensorthproco2.test.ts b/src/test/wosensorthproco2.test.ts index e6177def..e4e4f902 100644 --- a/src/test/wosensorthproco2.test.ts +++ b/src/test/wosensorthproco2.test.ts @@ -1,10 +1,12 @@ import { Buffer } from 'node:buffer' +import { describe, expect, it, vi } from 'vitest' + import { WoSensorTHProCO2 } from '../device/wosensorthproco2.js' import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js' describe('woSensorTH', () => { - const emitLog = jest.fn() + const emitLog = vi.fn() describe('parseServiceData', () => { it('should return null if buffer length is not 7', async () => { diff --git a/src/test/wosmartlock.test.ts b/src/test/wosmartlock.test.ts index 1d7d333e..b8716fce 100644 --- a/src/test/wosmartlock.test.ts +++ b/src/test/wosmartlock.test.ts @@ -3,7 +3,7 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import { describe, expect, it, vi } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import { WoSmartLock } from '../device/wosmartlock.js' import { WoSmartLockCommands } from '../settings.js' @@ -82,7 +82,7 @@ describe('woSmartLock', () => { it('should parse service data correctly', async () => { const serviceData = Buffer.from([0x00, 0x00, 0x7F]) const manufacturerData = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00]) - const emitLog = jest.fn() + const emitLog = vi.fn() const data = await WoSmartLock.parseServiceData(serviceData, manufacturerData, emitLog) expect(data).toEqual({ model: 'Lock', @@ -102,19 +102,19 @@ describe('woSmartLock', () => { }) it('should unlock the smart lock', async () => { - jest.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01])) + vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01])) const result = await lock.unlock() expect(result).toBe(WoSmartLock.Result.SUCCESS) }) it('should lock the smart lock', async () => { - jest.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01])) + vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01])) const result = await lock.lock() expect(result).toBe(WoSmartLock.Result.SUCCESS) }) it('should get lock info', async () => { - jest.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01, 0b10000000, 0b00100000])) + vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01, 0b10000000, 0b00100000])) const info = await lock.info() expect(info).toEqual({ calibration: true, @@ -144,28 +144,28 @@ describe('woSmartLock', () => { }) it('should retrieve IV from the device', async () => { - jest.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04])) + vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04])) const iv = await lock.getIv() expect(iv.toString('hex')).toBe('01020304') }) it('should send encrypted command to the device', async () => { - jest.spyOn(lock, 'getIv').mockResolvedValue(Buffer.from('01020304', 'hex')) - jest.spyOn(lock, 'encrypt').mockResolvedValue('encryptedCommand') - jest.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08])) + vi.spyOn(lock, 'getIv').mockResolvedValue(Buffer.from('01020304', 'hex')) + vi.spyOn(lock, 'encrypt').mockResolvedValue('encryptedCommand') + vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08])) const response = await lock.encryptedCommand('testCommand') expect(response.toString('hex')).toBe('expectedResponseHexString') // Replace with actual expected response }) describe('operateLock', () => { it('should operate the lock with encryption', async () => { - jest.spyOn(lock, 'encryptedCommand').mockResolvedValue(Buffer.from([0x01])) + vi.spyOn(lock, 'encryptedCommand').mockResolvedValue(Buffer.from([0x01])) const response = await lock.operateLock(WoSmartLockCommands.LOCK) expect(response).toBeDefined() }) it('should operate the lock without encryption', async () => { - jest.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00])) + vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00])) const response = await lock.operateLock(WoSmartLockCommands.LOCK, false) expect(response).toBeDefined() }) diff --git a/src/test/wosmartlockpro.test.ts b/src/test/wosmartlockpro.test.ts index 4ca52976..8c29b672 100644 --- a/src/test/wosmartlockpro.test.ts +++ b/src/test/wosmartlockpro.test.ts @@ -3,7 +3,7 @@ import type { NobleTypes } from '../types/types.js' import { Buffer } from 'node:buffer' -import { describe, expect, it, vi } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import { WoSmartLockPro } from '../device/wosmartlockpro.js' import { WoSmartLockProCommands } from '../settings.js' @@ -90,7 +90,7 @@ describe('woSmartLockPro', () => { describe('unlock', () => { it('should unlock the lock', async () => { - jest.spyOn(lock, 'operateLockPro').mockResolvedValue(Buffer.from([0x01])) + vi.spyOn(lock, 'operateLockPro').mockResolvedValue(Buffer.from([0x01])) const result = await lock.unlock() expect(result).toBe(WoSmartLockPro.Result.SUCCESS) }) @@ -98,7 +98,7 @@ describe('woSmartLockPro', () => { describe('lock', () => { it('should lock the lock', async () => { - jest.spyOn(lock, 'operateLockPro').mockResolvedValue(Buffer.from([0x01])) + vi.spyOn(lock, 'operateLockPro').mockResolvedValue(Buffer.from([0x01])) const result = await lock.lock() expect(result).toBe(WoSmartLockPro.Result.SUCCESS) }) @@ -107,7 +107,7 @@ describe('woSmartLockPro', () => { describe('info', () => { it('should return lock info', async () => { const mockResponse = Buffer.from([0b10000000, 0b00100000]) - jest.spyOn(lock, 'operateLockPro').mockResolvedValue(mockResponse) + vi.spyOn(lock, 'operateLockPro').mockResolvedValue(mockResponse) const info = await lock.info() expect(info).toEqual({ calibration: true, @@ -140,7 +140,7 @@ describe('woSmartLockPro', () => { describe('getIv', () => { it('should retrieve the IV from the device', async () => { const mockResponse = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x01, 0x02]) - jest.spyOn(lock, 'operateLockPro').mockResolvedValue(mockResponse) + vi.spyOn(lock, 'operateLockPro').mockResolvedValue(mockResponse) const iv = await lock.getIv() expect(iv).toEqual(Buffer.from([0x01, 0x02])) }) @@ -148,9 +148,9 @@ describe('woSmartLockPro', () => { describe('encryptedCommand', () => { it('should send an encrypted command to the device', async () => { - jest.spyOn(lock, 'getIv').mockResolvedValue(Buffer.from([0x01, 0x02])) - jest.spyOn(lock, 'encrypt').mockResolvedValue('encrypted') - jest.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00, 0x01, 0x02])) + vi.spyOn(lock, 'getIv').mockResolvedValue(Buffer.from([0x01, 0x02])) + vi.spyOn(lock, 'encrypt').mockResolvedValue('encrypted') + vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00, 0x01, 0x02])) const response = await lock.encryptedCommand('key') expect(response).toBeDefined() }) @@ -158,13 +158,13 @@ describe('woSmartLockPro', () => { describe('operateLockPro', () => { it('should operate the lock with encryption', async () => { - jest.spyOn(lock, 'encryptedCommand').mockResolvedValue(Buffer.from([0x01])) + vi.spyOn(lock, 'encryptedCommand').mockResolvedValue(Buffer.from([0x01])) const response = await lock.operateLockPro(WoSmartLockProCommands.LOCK) expect(response).toBeDefined() }) it('should operate the lock without encryption', async () => { - jest.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00])) + vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00])) const response = await lock.operateLockPro(WoSmartLockProCommands.LOCK, false) expect(response).toBeDefined() }) From 1be9d506e17c4350afd15d0c832ff8cbe11c0a3b Mon Sep 17 00:00:00 2001 From: Donavan Becker Date: Mon, 30 Dec 2024 14:42:35 -0600 Subject: [PATCH 2/5] v3.4.4 --- package-lock.json | 8 ++++---- package.json | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index ae613139..99bf570c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "3.4.4", "license": "MIT", "dependencies": { - "@stoprocent/noble": "^1.17.3", + "@stoprocent/noble": "^1.18.1", "async-mutex": "^0.5.0", "undici": "7.2.0" }, @@ -1873,9 +1873,9 @@ } }, "node_modules/@stoprocent/noble": { - "version": "1.17.3", - "resolved": "https://registry.npmjs.org/@stoprocent/noble/-/noble-1.17.3.tgz", - "integrity": "sha512-hvPqZd6OrL4ieFdV27QAhIF+o9pYWm1uWk/K0uh9Pl38ZzgGSpE9R1+QsyZIPaDBP/G7wAKqfLElF5qcSSTT1A==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/@stoprocent/noble/-/noble-1.18.1.tgz", + "integrity": "sha512-JcVBuUYJuusJ3RPx1Bi+T9Rqc4F66sUg0bu3MWRtdWa1mxAj9lyTbe4D9rhFHKtMLEj5wasdBs2odbJkJswCHg==", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 200caa97..d1cc9c6e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "scripts": { "check": "npm install && npm outdated", "lint": "eslint src/**/*.ts", - "fix": "eslint src/**/*.ts --fix", + "lint:fix": "eslint src/**/*.ts --fix", "watch": "npm run build && npm link && nodemon", "build": "npm run clean && tsc", "prepublishOnly": "npm run lint && npm run build && npm run docs && npm run lint-docs", @@ -51,7 +51,7 @@ }, "readmeFilename": "README.md", "dependencies": { - "@stoprocent/noble": "^1.17.3", + "@stoprocent/noble": "^1.18.1", "async-mutex": "^0.5.0", "undici": "7.2.0" }, From 48eff78f8cb16434939d30fbb18015fa83bdd202 Mon Sep 17 00:00:00 2001 From: Donavan Becker Date: Mon, 30 Dec 2024 22:14:39 -0600 Subject: [PATCH 3/5] add more logging to startScan --- src/switchbot-ble.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/switchbot-ble.ts b/src/switchbot-ble.ts index 5527a0b8..10aa46aa 100644 --- a/src/switchbot-ble.ts +++ b/src/switchbot-ble.ts @@ -300,7 +300,11 @@ export class SwitchBotBLE extends EventEmitter { this.noble.on('discover', async (peripheral: NobleTypes['peripheral']) => { const ad = await Advertising.parse(peripheral, this.log.bind(this)) + this.emit('debug', `Advertisement: ${ad}`) + this.emit('debug', `Filter ID: ${p.id}`) + this.emit('debug', `Filter Model: ${p.model}`) if (ad && await this.filterAd(ad, p.id, p.model)) { + this.emit('debug', `Advertisement passed filter: ${ad}`) if (this.onadvertisement) { this.onadvertisement(ad) } From 7dc95d5b43d85708750a22d7c1936d83a4961e38 Mon Sep 17 00:00:00 2001 From: Donavan Becker Date: Mon, 13 Jan 2025 07:23:13 -0600 Subject: [PATCH 4/5] update dependencies --- package-lock.json | 465 +++++++++++++++++++++++++-------------------- package.json | 16 +- src/types/types.ts | 2 +- 3 files changed, 265 insertions(+), 218 deletions(-) diff --git a/package-lock.json b/package-lock.json index 99bf570c..7bd80b0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,34 +9,34 @@ "version": "3.4.4", "license": "MIT", "dependencies": { - "@stoprocent/noble": "^1.18.1", + "@stoprocent/noble": "^1.18.2", "async-mutex": "^0.5.0", - "undici": "7.2.0" + "undici": "7.2.1" }, "devDependencies": { - "@antfu/eslint-config": "^3.12.1", + "@antfu/eslint-config": "^3.14.0", "@types/aes-js": "^3.1.4", "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", "@types/mdast": "^4.0.4", - "@types/node": "^22.10.2", + "@types/node": "^22.10.5", "@types/semver": "^7.5.8", "@types/source-map-support": "^0.5.10", "@vitest/coverage-v8": "^2.1.8", - "eslint": "^9.17.0", - "eslint-plugin-format": "^0.1.3", + "eslint": "^9.18.0", + "eslint-plugin-format": "^1.0.1", "nodemon": "^3.1.9", "shx": "^0.3.4", "ts-node": "^10.9.2", "typedoc": "^0.27.6", - "typescript": "^5.7.2", + "typescript": "^5.7.3", "vitest": "^2.1.8" }, "engines": { "node": "^20 || ^22" }, "optionalDependencies": { - "@stoprocent/bluetooth-hci-socket": "^1.4.3" + "@stoprocent/bluetooth-hci-socket": "^1.4.4" } }, "node_modules/@ampproject/remapping": { @@ -54,41 +54,41 @@ } }, "node_modules/@antfu/eslint-config": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.12.1.tgz", - "integrity": "sha512-6sRgO4u63GK75xeZ2MfCSRT9GcfLti4ZN3Xw+bIu39oo6HY50fBY+rXnWvgwNimzHBOh3yV5xUHfTqcHq1M5AA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.14.0.tgz", + "integrity": "sha512-SBQOFrF/d2aqsVhxcHZ6g5DAoUaNyaV3Vd+lGNJx4CfSuwk9EuC8sRUF819GkNdCMbH5wNdFoJ4+Tsd9sr/NBw==", "dev": true, "license": "MIT", "dependencies": { - "@antfu/install-pkg": "^0.5.0", - "@clack/prompts": "^0.9.0", + "@antfu/install-pkg": "^1.0.0", + "@clack/prompts": "^0.9.1", "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/markdown": "^6.2.1", - "@stylistic/eslint-plugin": "^2.12.1", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", - "@vitest/eslint-plugin": "^1.1.20", - "eslint-config-flat-gitignore": "^0.3.0", - "eslint-flat-config-utils": "^0.4.0", - "eslint-merge-processors": "^0.1.0", + "@stylistic/eslint-plugin": "^2.13.0", + "@typescript-eslint/eslint-plugin": "^8.19.1", + "@typescript-eslint/parser": "^8.19.1", + "@vitest/eslint-plugin": "^1.1.25", + "eslint-config-flat-gitignore": "^1.0.0", + "eslint-flat-config-utils": "^1.0.0", + "eslint-merge-processors": "^1.0.0", "eslint-plugin-antfu": "^2.7.0", - "eslint-plugin-command": "^0.2.7", + "eslint-plugin-command": "^2.1.0", "eslint-plugin-import-x": "^4.6.1", "eslint-plugin-jsdoc": "^50.6.1", "eslint-plugin-jsonc": "^2.18.2", "eslint-plugin-n": "^17.15.1", "eslint-plugin-no-only-tests": "^3.3.0", - "eslint-plugin-perfectionist": "^4.4.0", + "eslint-plugin-perfectionist": "^4.6.0", "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-toml": "^0.12.0", "eslint-plugin-unicorn": "^56.0.1", "eslint-plugin-unused-imports": "^4.1.4", "eslint-plugin-vue": "^9.32.0", "eslint-plugin-yml": "^1.16.0", - "eslint-processor-vue-blocks": "^0.1.2", + "eslint-processor-vue-blocks": "^1.0.0", "globals": "^15.14.0", "jsonc-eslint-parser": "^2.4.0", - "local-pkg": "^0.5.1", + "local-pkg": "^1.0.0", "parse-gitignore": "^2.0.0", "picocolors": "^1.1.1", "toml-eslint-parser": "^0.10.0", @@ -161,14 +161,14 @@ } }, "node_modules/@antfu/install-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.5.0.tgz", - "integrity": "sha512-dKnk2xlAyC7rvTkpkHmu+Qy/2Zc3Vm/l8PtNyIOGDBtXPY3kThfU4ORNEp3V7SXw5XSOb+tOJaUYpfquPzL/Tg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", + "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", "dev": true, "license": "MIT", "dependencies": { - "package-manager-detector": "^0.2.5", - "tinyexec": "^0.3.1" + "package-manager-detector": "^0.2.8", + "tinyexec": "^0.3.2" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -257,9 +257,9 @@ "license": "MIT" }, "node_modules/@clack/core": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.0.tgz", - "integrity": "sha512-YJCYBsyJfNDaTbvDUVSJ3SgSuPrcujarRgkJ5NLjexDZKvaOiVVJvAQYx8lIgG0qRT8ff0fPgqyBCVivanIZ+A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.1.tgz", + "integrity": "sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==", "dev": true, "license": "MIT", "dependencies": { @@ -268,13 +268,13 @@ } }, "node_modules/@clack/prompts": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.9.0.tgz", - "integrity": "sha512-nGsytiExgUr4FL0pR/LeqxA28nz3E0cW7eLTSh3Iod9TGrbBt8Y7BHbV3mmkNC4G0evdYyQ3ZsbiBkk7ektArA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.9.1.tgz", + "integrity": "sha512-JIpyaboYZeWYlyP0H+OoPPxd6nqueG/CmN6ixBiNFsIDHREevjIf0n0Ohh5gr5C8pEDknzgvz+pIJ8dMhzWIeg==", "dev": true, "license": "MIT", "dependencies": { - "@clack/core": "0.4.0", + "@clack/core": "0.4.1", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } @@ -318,9 +318,9 @@ "license": "MIT" }, "node_modules/@dprint/toml": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@dprint/toml/-/toml-0.6.3.tgz", - "integrity": "sha512-zQ42I53sb4WVHA+5yoY1t59Zk++Ot02AvUgtNKLzTT8mPyVqVChFcePa3on/xIoKEgH+RoepgPHzqfk9837YFw==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@dprint/toml/-/toml-0.6.4.tgz", + "integrity": "sha512-bZXIUjxr0LIuHWshZr/5mtUkOrnh0NKVZEF6ACojW5z7zkJu7s9sV2mMXm8XQDqN4cJzdHYUYzUyEGdfciaLJA==", "dev": true, "license": "MIT" }, @@ -793,9 +793,9 @@ } }, "node_modules/@eslint/compat": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.2.tgz", - "integrity": "sha512-jhgiIrsw+tRfcBQ4BFl2C3vCrIUw2trCY0cnDvGZpwTtKCEDmZhAtMfrEUP/KpnwM6PrO0T+Ltm+ccW74olG3Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.5.tgz", + "integrity": "sha512-5iuG/StT+7OfvhoBHPlmxkPA9om6aDUFgmD4+mWKAGsYt4vCe8rypneG03AuseyRHBmcCLXQtIH5S26tIoggLg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -850,11 +850,14 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", - "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -921,9 +924,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", - "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, "license": "MIT", "engines": { @@ -957,12 +960,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -1847,9 +1851,9 @@ "license": "MIT" }, "node_modules/@stoprocent/bluetooth-hci-socket": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@stoprocent/bluetooth-hci-socket/-/bluetooth-hci-socket-1.4.3.tgz", - "integrity": "sha512-cBHrMyRdfjWxQkS4fnEm1PdMiVknQfdCB37BP2DH0sHkLvs/BnOrNswqs5wdoZ5rgHvbqlZFZv/o/RYElL9XRg==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@stoprocent/bluetooth-hci-socket/-/bluetooth-hci-socket-1.4.4.tgz", + "integrity": "sha512-X7TO8t/NjNvTOcvaak5eTpR8pgG5/lwBFSOSllsCjSeVxHp4oAmTeKVAswfAFhA124KHSLF/NX4rDsvCfER31w==", "hasInstallScript": true, "license": "MIT", "optional": true, @@ -1873,9 +1877,9 @@ } }, "node_modules/@stoprocent/noble": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@stoprocent/noble/-/noble-1.18.1.tgz", - "integrity": "sha512-JcVBuUYJuusJ3RPx1Bi+T9Rqc4F66sUg0bu3MWRtdWa1mxAj9lyTbe4D9rhFHKtMLEj5wasdBs2odbJkJswCHg==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@stoprocent/noble/-/noble-1.18.2.tgz", + "integrity": "sha512-sFOnaJqdcoYYFh55SEkw294vZpDYh+ZpzyLBOrf171cYcdycwMKrrNhiRJaTAVAcyk+0MGtbMicC40J1ewIGsA==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -1888,13 +1892,13 @@ "node": ">=14" }, "optionalDependencies": { - "@stoprocent/bluetooth-hci-socket": "^1.4.3" + "@stoprocent/bluetooth-hci-socket": "^1.4.4" } }, "node_modules/@stylistic/eslint-plugin": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.12.1.tgz", - "integrity": "sha512-fubZKIHSPuo07FgRTn6S4Nl0uXPRPYVNpyZzIDGfp7Fny6JjNus6kReLD7NI380JXi4HtUTSOZ34LBuNPO1XLQ==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.13.0.tgz", + "integrity": "sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1963,6 +1967,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2026,9 +2041,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2074,21 +2089,21 @@ "optional": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz", - "integrity": "sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", + "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/type-utils": "8.18.2", - "@typescript-eslint/utils": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/type-utils": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2104,16 +2119,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.2.tgz", - "integrity": "sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", + "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4" }, "engines": { @@ -2129,14 +2144,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz", - "integrity": "sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", + "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2" + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2147,16 +2162,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz", - "integrity": "sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", + "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/utils": "8.18.2", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/utils": "8.19.1", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2171,9 +2186,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.2.tgz", - "integrity": "sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", + "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", "dev": true, "license": "MIT", "engines": { @@ -2185,20 +2200,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", - "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", + "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2212,16 +2227,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.2.tgz", - "integrity": "sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", + "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2" + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2236,13 +2251,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", - "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", + "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/types": "8.19.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2287,9 +2302,9 @@ } }, "node_modules/@vitest/eslint-plugin": { - "version": "1.1.21", - "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.1.21.tgz", - "integrity": "sha512-gIpmafm7WSwXGHq413q3fC26+nER5mQtM7Lqi7UusY5bSzeQIJmViC+G6CfPo06U0CfgZ+rt7FPaskpkZ2f6gg==", + "version": "1.1.25", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.1.25.tgz", + "integrity": "sha512-u8DpDnMbPcqBmJOB4PeEtn6q7vKmLVTLFMpzoxSAo0hjYdl4iYSHRleqwPQo0ywc7UV0S6RKIahYRQ3BnZdMVw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2431,67 +2446,67 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", - "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.12", + "@vue/shared": "3.5.13", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", - "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-core": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", - "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.12", - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", "estree-walker": "^2.0.2", "magic-string": "^0.30.11", - "postcss": "^8.4.47", + "postcss": "^8.4.48", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", - "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/shared": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", - "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", "dev": true, "license": "MIT", "peer": true @@ -3331,19 +3346,19 @@ } }, "node_modules/eslint": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", - "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -3407,13 +3422,13 @@ } }, "node_modules/eslint-config-flat-gitignore": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-flat-gitignore/-/eslint-config-flat-gitignore-0.3.0.tgz", - "integrity": "sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-flat-gitignore/-/eslint-config-flat-gitignore-1.0.0.tgz", + "integrity": "sha512-EWpSLrAP80IdcYK5sIhq/qAY0pmUdBnbzqzpE3QAn6H6wLBN26cMRoMNU9Di8upTzUSL6TXeYRxWhTYuz8+UQA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint/compat": "^1.1.1", + "@eslint/compat": "^1.2.4", "find-up-simple": "^1.0.0" }, "funding": { @@ -3424,18 +3439,25 @@ } }, "node_modules/eslint-flat-config-utils": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/eslint-flat-config-utils/-/eslint-flat-config-utils-0.4.0.tgz", - "integrity": "sha512-kfd5kQZC+BMO0YwTol6zxjKX1zAsk8JfSAopbKjKqmENTJcew+yBejuvccAg37cvOrN0Mh+DVbeyznuNWEjt4A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-flat-config-utils/-/eslint-flat-config-utils-1.0.0.tgz", + "integrity": "sha512-tmzcXeCsa24/u3glyw1Mo7KfC/r9a5Vsu1nPCkX7uefD7C5Z4x922Q2KP/drhTLbOI5lcFHYpfXjKhqqnUWObw==", "dev": true, "license": "MIT", "dependencies": { - "pathe": "^1.1.2" + "pathe": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, + "node_modules/eslint-flat-config-utils/node_modules/pathe": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.1.tgz", + "integrity": "sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==", + "dev": true, + "license": "MIT" + }, "node_modules/eslint-formatting-reporter": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/eslint-formatting-reporter/-/eslint-formatting-reporter-0.0.0.tgz", @@ -3497,9 +3519,9 @@ } }, "node_modules/eslint-merge-processors": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/eslint-merge-processors/-/eslint-merge-processors-0.1.0.tgz", - "integrity": "sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-merge-processors/-/eslint-merge-processors-1.0.0.tgz", + "integrity": "sha512-4GybyHmhXtT7/W8RAouQzNM0791sYasJCTYHIAYjuiJvbNFY0jMKkoESREhX+mjX37dxiN6v4EqhZ1nc0tJF7A==", "dev": true, "license": "MIT", "funding": { @@ -3510,9 +3532,9 @@ } }, "node_modules/eslint-parser-plain": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/eslint-parser-plain/-/eslint-parser-plain-0.1.0.tgz", - "integrity": "sha512-oOeA6FWU0UJT/Rxc3XF5Cq0nbIZbylm7j8+plqq0CZoE6m4u32OXJrR+9iy4srGMmF6v6pmgvP1zPxSRIGh3sg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-parser-plain/-/eslint-parser-plain-0.1.1.tgz", + "integrity": "sha512-KRgd6wuxH4U8kczqPp+Oyk4irThIhHWxgFgLDtpgjUGVIS3wGrJntvZW/p6hHq1T4FOwnOtCNkvAI4Kr+mQ/Hw==", "dev": true, "license": "MIT" }, @@ -3533,13 +3555,13 @@ } }, "node_modules/eslint-plugin-command": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-command/-/eslint-plugin-command-0.2.7.tgz", - "integrity": "sha512-UXJ/1R6kdKDcHhiRqxHJ9RZ3juMR1IWQuSrnwt56qCjxt/am+5+YDt6GKs1FJPnppe6/geEYsO3CR9jc63i0xw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-command/-/eslint-plugin-command-2.1.0.tgz", + "integrity": "sha512-S3gvDSCRHLdRG7NYaevLvGA0g/txOju7NEB2di7SE80NtbCwsvpi/fft045YuTZpOzqCRUfuye39raldmpXXYQ==", "dev": true, "license": "MIT", "dependencies": { - "@es-joy/jsdoccomment": "^0.49.0" + "@es-joy/jsdoccomment": "^0.50.0" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -3548,6 +3570,24 @@ "eslint": "*" } }, + "node_modules/eslint-plugin-command/node_modules/@es-joy/jsdoccomment": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.50.0.tgz", + "integrity": "sha512-+zZymuVLH6zVwXPtCAtC+bDymxmEwEqDftdAK+f407IF1bnX49anIxvBhCA1AqUIfD6egj1jM1vUnSuijjNyYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "^9.6.1", + "@types/estree": "^1.0.6", + "@typescript-eslint/types": "^8.11.0", + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~4.1.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/eslint-plugin-es-x": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", @@ -3571,18 +3611,18 @@ } }, "node_modules/eslint-plugin-format": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-format/-/eslint-plugin-format-0.1.3.tgz", - "integrity": "sha512-vTmshuv1iMfmcM1HADnyhae5MBBGlJZBZyZ+ybtXCEzRe3nRhUvLX+6rAvsEfcdK6a2pqpLs/F530dXKvfQqYQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-format/-/eslint-plugin-format-1.0.1.tgz", + "integrity": "sha512-Tdns+CDjS+m7QrM85wwRi2yLae88XiWVdIOXjp9mDII0pmTBQlczPCmjpKnjiUIY3yPZNLqb5Ms/A/JXcBF2Dw==", "dev": true, "license": "MIT", "dependencies": { "@dprint/formatter": "^0.3.0", "@dprint/markdown": "^0.17.8", - "@dprint/toml": "^0.6.3", + "@dprint/toml": "^0.6.4", "eslint-formatting-reporter": "^0.0.0", - "eslint-parser-plain": "^0.1.0", - "prettier": "^3.4.1", + "eslint-parser-plain": "^0.1.1", + "prettier": "^3.4.2", "synckit": "^0.9.2" }, "funding": { @@ -3769,14 +3809,14 @@ } }, "node_modules/eslint-plugin-perfectionist": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.4.0.tgz", - "integrity": "sha512-B78pWxCsA2sClourpWEmWziCcjEsAEyxsNV5G6cxxteu/NI0/2en9XZUONf5e/+O+dgoLZsEPHQEhnIxJcnUvA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.6.0.tgz", + "integrity": "sha512-kOswTebUK0LlYExRwqz7YQtvyTUIRsKfp8XrwBBeHGh2e8MBOS6K+7VvG6HpmNckyKySi1I96uPeAlptMFGcRQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "^8.18.1", - "@typescript-eslint/utils": "^8.18.1", + "@typescript-eslint/types": "^8.19.0", + "@typescript-eslint/utils": "^8.19.0", "natural-orderby": "^5.0.0" }, "engines": { @@ -3988,9 +4028,9 @@ } }, "node_modules/eslint-processor-vue-blocks": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-processor-vue-blocks/-/eslint-processor-vue-blocks-0.1.2.tgz", - "integrity": "sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-processor-vue-blocks/-/eslint-processor-vue-blocks-1.0.0.tgz", + "integrity": "sha512-q+Wn9bCml65NwYtuINVCE5dUqZa/uVoY4jfc8qEDwWbcGqdRyfJJmAONNZsreA4Q9EJqjYGjk8Hk1QuwAktgkw==", "dev": true, "license": "MIT", "funding": { @@ -4152,9 +4192,9 @@ "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -4162,7 +4202,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -5094,14 +5134,14 @@ } }, "node_modules/local-pkg": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", - "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.0.0.tgz", + "integrity": "sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==", "dev": true, "license": "MIT", "dependencies": { "mlly": "^1.7.3", - "pkg-types": "^1.2.1" + "pkg-types": "^1.3.0" }, "engines": { "node": ">=14" @@ -6134,18 +6174,25 @@ } }, "node_modules/mlly": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz", - "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", "dev": true, "license": "MIT", "dependencies": { "acorn": "^8.14.0", - "pathe": "^1.1.2", - "pkg-types": "^1.2.1", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", "ufo": "^1.5.4" } }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.1.tgz", + "integrity": "sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==", + "dev": true, + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -6458,9 +6505,9 @@ "license": "BlueOak-1.0.0" }, "node_modules/package-manager-detector": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.5.tgz", - "integrity": "sha512-3dS7y28uua+UDbRCLBqltMBrbI+A5U2mI9YuxHRxIWYmLj3DwntEBmERYzIAQ4DMeuCUOBSak7dBHHoXKpOTYQ==", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.8.tgz", + "integrity": "sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==", "dev": true, "license": "MIT" }, @@ -6676,14 +6723,14 @@ } }, "node_modules/pkg-types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", - "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.0.tgz", + "integrity": "sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==", "dev": true, "license": "MIT", "dependencies": { "confbox": "^0.1.8", - "mlly": "^1.7.2", + "mlly": "^1.7.3", "pathe": "^1.1.2" } }, @@ -7630,9 +7677,9 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", - "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", "dev": true, "license": "MIT" }, @@ -7732,16 +7779,16 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", - "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-node": { @@ -7841,9 +7888,9 @@ } }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7876,9 +7923,9 @@ "license": "MIT" }, "node_modules/undici": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.2.0.tgz", - "integrity": "sha512-klt+0S55GBViA9nsq48/NSCo4YX5mjydjypxD7UmHh/brMu8h/Mhd/F7qAeoH2NOO8SDTk6kjnTFc4WpzmfYpQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.2.1.tgz", + "integrity": "sha512-U2k0XHLJfaciARRxDcqTk2AZQsGXerHzdvfCZcy1hNhSf5KCAF4jIQQxL+apQviOekhRFPqED6Of5/+LcUSLzQ==", "license": "MIT", "engines": { "node": ">=20.18.1" diff --git a/package.json b/package.json index d1cc9c6e..4c7e8ad9 100644 --- a/package.json +++ b/package.json @@ -51,30 +51,30 @@ }, "readmeFilename": "README.md", "dependencies": { - "@stoprocent/noble": "^1.18.1", + "@stoprocent/noble": "^1.18.2", "async-mutex": "^0.5.0", - "undici": "7.2.0" + "undici": "7.2.1" }, "optionalDependencies": { - "@stoprocent/bluetooth-hci-socket": "^1.4.3" + "@stoprocent/bluetooth-hci-socket": "^1.4.4" }, "devDependencies": { - "@antfu/eslint-config": "^3.12.1", + "@antfu/eslint-config": "^3.14.0", "@types/aes-js": "^3.1.4", "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", "@types/mdast": "^4.0.4", - "@types/node": "^22.10.2", + "@types/node": "^22.10.5", "@types/semver": "^7.5.8", "@types/source-map-support": "^0.5.10", "@vitest/coverage-v8": "^2.1.8", - "eslint": "^9.17.0", - "eslint-plugin-format": "^0.1.3", + "eslint": "^9.18.0", + "eslint-plugin-format": "^1.0.1", "nodemon": "^3.1.9", "shx": "^0.3.4", "ts-node": "^10.9.2", "typedoc": "^0.27.6", - "typescript": "^5.7.2", + "typescript": "^5.7.3", "vitest": "^2.1.8" } } diff --git a/src/types/types.ts b/src/types/types.ts index 50384d61..2c459a0e 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -98,7 +98,7 @@ export enum SwitchBotBLEModel { Curtain = 'c', Curtain3 = '{', Humidifier = 'e', - Humidifier2 = 'E', + Humidifier2 = '#', Meter = 'T', MeterPlus = 'i', MeterPro = '4', From d3df547b21623a483bc61a3e460ead8730c65a87 Mon Sep 17 00:00:00 2001 From: Donavan Becker Date: Thu, 23 Jan 2025 23:06:36 -0600 Subject: [PATCH 5/5] v3.4.4 ## [3.4.4](https://github.com/OpenWonderLabs/node-switchbot/releases/tag/v3.4.4) (2025-01-23) ### What's Changed - Housekeeping and update dependencies **Full Changelog**: https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.3...v3.4.4 --- CHANGELOG.md | 7 + docs/classes/Advertising.html | 8 +- docs/classes/SwitchBotBLE.html | 16 +- docs/classes/SwitchBotOpenAPI.html | 14 +- docs/classes/SwitchbotDevice.html | 22 +- docs/classes/WoBlindTilt.html | 40 +- docs/classes/WoBulb.html | 36 +- docs/classes/WoCeilingLight.html | 42 +- docs/classes/WoContact.html | 24 +- docs/classes/WoCurtain.html | 34 +- docs/classes/WoHand.html | 34 +- docs/classes/WoHub2.html | 24 +- docs/classes/WoHumi.html | 38 +- docs/classes/WoIOSensorTH.html | 24 +- docs/classes/WoPlugMiniUS.html | 34 +- docs/classes/WoPresence.html | 24 +- docs/classes/WoSensorTH.html | 22 +- docs/classes/WoSmartLock.html | 44 +- docs/classes/WoSmartLockPro.html | 44 +- docs/classes/WoStrip.html | 38 +- docs/enums/LogLevel.html | 4 +- docs/enums/SwitchBotBLEModel.html | 4 +- docs/enums/SwitchBotBLEModelFriendlyName.html | 4 +- docs/enums/SwitchBotBLEModelName.html | 4 +- docs/enums/SwitchBotModel.html | 4 +- docs/interfaces/AdvertisementData.html | 4 +- docs/interfaces/Chars.html | 4 +- docs/interfaces/ErrorObject.html | 4 +- docs/interfaces/NobleTypes.html | 4 +- docs/interfaces/Params.html | 4 +- docs/interfaces/Rule.html | 4 +- docs/interfaces/ServiceData.html | 4 +- docs/interfaces/SwitchBotBLEDevice.html | 4 +- docs/interfaces/WebhookDetail.html | 4 +- docs/interfaces/ad.html | 4 +- docs/interfaces/body.html | 4 +- docs/interfaces/bodyChange.html | 4 +- docs/interfaces/deleteWebhookResponse.html | 4 +- docs/interfaces/device.html | 4 +- docs/interfaces/deviceList.html | 4 +- docs/interfaces/deviceStatus.html | 4 +- docs/interfaces/deviceStatusRequest.html | 4 +- docs/interfaces/deviceWebhook.html | 4 +- docs/interfaces/deviceWebhookContext.html | 4 +- docs/interfaces/devices.html | 4 +- docs/interfaces/infraredRemoteList.html | 4 +- docs/interfaces/irdevice.html | 4 +- docs/interfaces/pushResponse.html | 4 +- docs/interfaces/queryWebhookResponse.html | 4 +- docs/interfaces/setupWebhookResponse.html | 4 +- docs/interfaces/switchbot.html | 4 +- docs/interfaces/updateWebhookResponse.html | 4 +- docs/interfaces/webhookRequest.html | 4 +- docs/types/MacAddress.html | 2 +- docs/types/batteryCirculatorFan.html | 2 +- .../batteryCirculatorFanServiceData.html | 2 +- docs/types/batteryCirculatorFanStatus.html | 2 +- .../batteryCirculatorFanWebhookContext.html | 2 +- docs/types/blindTilt.html | 2 +- docs/types/blindTiltServiceData.html | 2 +- docs/types/blindTiltStatus.html | 2 +- docs/types/blindTiltWebhookContext.html | 2 +- docs/types/bot.html | 2 +- docs/types/botServiceData.html | 2 +- docs/types/botStatus.html | 2 +- docs/types/botWebhookContext.html | 2 +- docs/types/ceilingLight.html | 2 +- docs/types/ceilingLightPro.html | 2 +- docs/types/ceilingLightProServiceData.html | 2 +- docs/types/ceilingLightProStatus.html | 2 +- docs/types/ceilingLightProWebhookContext.html | 2 +- docs/types/ceilingLightServiceData.html | 2 +- docs/types/ceilingLightStatus.html | 2 +- docs/types/ceilingLightWebhookContext.html | 2 +- docs/types/circulatorFanStatus.html | 2 +- docs/types/circulatorFanWebhookContext.html | 2 +- docs/types/colorBulb.html | 2 +- docs/types/colorBulbServiceData.html | 2 +- docs/types/colorBulbStatus.html | 2 +- docs/types/colorBulbWebhookContext.html | 2 +- docs/types/contactSensor.html | 2 +- docs/types/contactSensorServiceData.html | 2 +- docs/types/contactSensorStatus.html | 2 +- docs/types/contactSensorWebhookContext.html | 2 +- docs/types/curtain.html | 2 +- docs/types/curtain3.html | 2 +- docs/types/curtain3ServiceData.html | 2 +- docs/types/curtain3WebhookContext.html | 2 +- docs/types/curtainServiceData.html | 2 +- docs/types/curtainStatus.html | 2 +- docs/types/curtainWebhookContext.html | 2 +- docs/types/floorCleaningRobotS10.html | 2 +- docs/types/floorCleaningRobotS10Status.html | 2 +- .../floorCleaningRobotS10WebhookContext.html | 2 +- docs/types/hub2.html | 2 +- docs/types/hub2ServiceData.html | 2 +- docs/types/hub2Status.html | 2 +- docs/types/hub2WebhookContext.html | 2 +- docs/types/humidifier.html | 2 +- docs/types/humidifier2ServiceData.html | 2 +- docs/types/humidifier2Status.html | 2 +- docs/types/humidifier2WebhookContext.html | 2 +- docs/types/humidifierServiceData.html | 2 +- docs/types/humidifierStatus.html | 2 +- docs/types/humidifierWebhookContext.html | 2 +- docs/types/indoorCam.html | 2 +- docs/types/indoorCameraWebhookContext.html | 2 +- docs/types/keypad.html | 2 +- docs/types/keypadDetectorServiceData.html | 2 +- docs/types/keypadTouch.html | 2 +- docs/types/keypadTouchWebhookContext.html | 2 +- docs/types/keypadWebhookContext.html | 2 +- docs/types/lock.html | 2 +- docs/types/lockPro.html | 2 +- docs/types/lockProServiceData.html | 2 +- docs/types/lockProStatus.html | 2 +- docs/types/lockProWebhookContext.html | 2 +- docs/types/lockServiceData.html | 2 +- docs/types/lockStatus.html | 2 +- docs/types/lockWebhookContext.html | 2 +- docs/types/meter.html | 2 +- docs/types/meterPlus.html | 2 +- docs/types/meterPlusServiceData.html | 2 +- docs/types/meterPlusStatus.html | 2 +- docs/types/meterPlusWebhookContext.html | 2 +- docs/types/meterPro.html | 2 +- docs/types/meterProCO2ServiceData.html | 2 +- docs/types/meterProCO2Status.html | 2 +- docs/types/meterProCO2WebhookContext.html | 2 +- docs/types/meterProServiceData.html | 2 +- docs/types/meterProStatus.html | 2 +- docs/types/meterProWebhookContext.html | 2 +- docs/types/meterServiceData.html | 2 +- docs/types/meterStatus.html | 2 +- docs/types/meterWebhookContext.html | 2 +- docs/types/motionSensor.html | 2 +- docs/types/motionSensorServiceData.html | 2 +- docs/types/motionSensorStatus.html | 2 +- docs/types/motionSensorWebhookContext.html | 2 +- docs/types/onadvertisement.html | 2 +- docs/types/ondiscover.html | 2 +- docs/types/outdoorMeter.html | 2 +- docs/types/outdoorMeterServiceData.html | 2 +- docs/types/outdoorMeterStatus.html | 2 +- docs/types/outdoorMeterWebhookContext.html | 2 +- docs/types/panTiltCamWebhookContext.html | 2 +- docs/types/pantiltCam.html | 2 +- docs/types/pantiltCam2k.html | 2 +- docs/types/plug.html | 2 +- docs/types/plugMini.html | 2 +- docs/types/plugMiniJPServiceData.html | 2 +- docs/types/plugMiniJPWebhookContext.html | 2 +- docs/types/plugMiniStatus.html | 2 +- docs/types/plugMiniUSServiceData.html | 2 +- docs/types/plugMiniUSWebhookContext.html | 2 +- docs/types/plugStatus.html | 2 +- docs/types/plugWebhookContext.html | 2 +- docs/types/relaySwitch1PMServiceData.html | 2 +- docs/types/relaySwitch1ServiceData.html | 2 +- docs/types/remote.html | 2 +- docs/types/robotVacuumCleanerS1.html | 2 +- docs/types/robotVacuumCleanerS1Plus.html | 2 +- .../types/robotVacuumCleanerS1PlusStatus.html | 2 +- ...obotVacuumCleanerS1PlusWebhookContext.html | 2 +- docs/types/robotVacuumCleanerS1Status.html | 2 +- .../robotVacuumCleanerS1WebhookContext.html | 2 +- docs/types/robotVacuumCleanerServiceData.html | 2 +- docs/types/stripLight.html | 2 +- docs/types/stripLightServiceData.html | 2 +- docs/types/stripLightStatus.html | 2 +- docs/types/stripLightWebhookContext.html | 2 +- docs/types/waterLeakDetector.html | 2 +- docs/types/waterLeakDetectorServiceData.html | 2 +- docs/types/waterLeakDetectorStatus.html | 2 +- .../waterLeakDetectorWebhookContext.html | 2 +- package-lock.json | 840 ++++++++++-------- package.json | 10 +- 177 files changed, 950 insertions(+), 845 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 068e3800..85f6004a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/) +## [3.4.4](https://github.com/OpenWonderLabs/node-switchbot/releases/tag/v3.4.4) (2025-01-23) + +### What's Changed +- Housekeeping and update dependencies + +**Full Changelog**: https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.3...v3.4.4 + ## [3.4.3](https://github.com/OpenWonderLabs/node-switchbot/releases/tag/v3.4.3) (2024-12-22) ### What's Changed diff --git a/docs/classes/Advertising.html b/docs/classes/Advertising.html index 3127e90f..d6bdad70 100644 --- a/docs/classes/Advertising.html +++ b/docs/classes/Advertising.html @@ -1,8 +1,8 @@ Advertising | node-switchbot

    Class Advertising

    Represents the advertising data parser for SwitchBot devices.

    -

    Constructors

    Constructors

    Methods

    Constructors

    Methods

    • Parses the advertisement data coming from SwitchBot device.

      +

    Constructors

    Methods

    • Parses the advertisement data coming from SwitchBot device.

      This function processes advertising packets received from SwitchBot devices and extracts relevant information based on the device type.

      Parameters

      • peripheral: Peripheral

        The peripheral device object from noble.

        @@ -10,7 +10,7 @@

      Returns Promise<null | ad>

      • An object containing parsed data specific to the SwitchBot device type, or null if the device is not recognized.
      -
    • Parses the service data based on the device model.

      +
    • Parses the service data based on the device model.

      Parameters

      • model: string

        The device model.

      • serviceData: Buffer

        The service data buffer.

      • manufacturerData: Buffer

        The manufacturer data buffer.

        @@ -18,4 +18,4 @@

      Returns Promise<any>

      • The parsed service data.
      -
    +
    diff --git a/docs/classes/SwitchBotBLE.html b/docs/classes/SwitchBotBLE.html index fb46e99b..11cc1cdf 100644 --- a/docs/classes/SwitchBotBLE.html +++ b/docs/classes/SwitchBotBLE.html @@ -1,5 +1,5 @@ SwitchBotBLE | node-switchbot

    Class SwitchBotBLE

    SwitchBotBLE class to interact with SwitchBot devices.

    -

    Hierarchy

    • EventEmitter
      • SwitchBotBLE

    Constructors

    Hierarchy

    • EventEmitter
      • SwitchBotBLE

    Constructors

    Properties

    noble onadvertisement? ondiscover? @@ -12,30 +12,30 @@ wait

    Constructors

    Properties

    noble: any
    onadvertisement?: onadvertisement
    ondiscover?: ondiscover
    ready: Promise<void>

    Methods

    Returns SwitchBotBLE

    Properties

    noble: any
    onadvertisement?: onadvertisement
    ondiscover?: ondiscover
    ready: Promise<void>

    Methods

    • Emits a log event with the specified log level and message.

      +
    • Emits a log event with the specified log level and message.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Starts scanning for SwitchBot devices.

      +

    Returns Promise<void>

    • Starts scanning for SwitchBot devices.

      Parameters

      • Optionalparams: Params = {}

        Optional parameters.

      Returns Promise<void>

      • Resolves when scanning starts successfully.
      -
    • Stops scanning for SwitchBot devices.

      Returns Promise<void>

      • Resolves when scanning stops successfully.
      -
    • Validates the parameters.

      +
    • Validates the parameters.

      Parameters

      • params: Params

        The parameters to validate.

      • schema: Record<string, unknown>

        The schema to validate against.

      Returns Promise<void>

      • Resolves if parameters are valid, otherwise throws an error.
      -
    • Waits for the specified time.

      Parameters

      • msec: number

        The time to wait in milliseconds.

      Returns Promise<void>

      • Resolves after the specified time.
      -
    +
    diff --git a/docs/classes/SwitchBotOpenAPI.html b/docs/classes/SwitchBotOpenAPI.html index 270fbe51..9c24b6ec 100644 --- a/docs/classes/SwitchBotOpenAPI.html +++ b/docs/classes/SwitchBotOpenAPI.html @@ -5,7 +5,7 @@

    The API token used for authentication.

    The secret key used for signing requests.

    -

    Hierarchy

    • EventEmitter
      • SwitchBotOpenAPI

    Constructors

    Hierarchy

    • EventEmitter
      • SwitchBotOpenAPI

    Constructors

    Properties

    Methods

    controlDevice deleteWebhook @@ -15,7 +15,7 @@

    Constructors

    • Creates an instance of the SwitchBot OpenAPI client.

      Parameters

      • token: string

        The API token used for authentication.

      • secret: string

        The secret key used for signing requests.

        -
      • Optionalhostname: string

      Returns SwitchBotOpenAPI

    Properties

    webhookEventListener?: null | Server = null

    Methods

    • Controls a device by sending a command to the SwitchBot API.

      +
    • Optionalhostname: string

    Returns SwitchBotOpenAPI

    Properties

    webhookEventListener?: null | Server = null

    Methods

    • Controls a device by sending a command to the SwitchBot API.

      Parameters

      • deviceId: string

        The ID of the device to control.

      • command: string

        The command to send to the device.

      • parameter: string

        The parameter for the command.

        @@ -24,24 +24,24 @@
      • Optionalsecret: string

        (Optional) The secret used for authentication. If not provided, the instance secret will be used.

      Returns Promise<{ response: { commandId: string }; statusCode: number }>

      A promise that resolves to an object containing the response body and status code.

      An error if the device control fails.

      -
    • Deletes a webhook by sending a request to the specified URL.

      +
    • Deletes a webhook by sending a request to the specified URL.

      Parameters

      • url: string

        The URL of the webhook to be deleted.

      • Optionaltoken: string

        (Optional) The token used for authentication. If not provided, the instance token will be used.

      • Optionalsecret: string

        (Optional) The secret used for authentication. If not provided, the instance secret will be used.

      Returns Promise<void>

      A promise that resolves when the webhook is successfully deleted.

      Will log an error if the deletion fails.

      -
    • Retrieves the list of devices from the SwitchBot OpenAPI.

      +
    • Retrieves the list of devices from the SwitchBot OpenAPI.

      Parameters

      • Optionaltoken: string

        (Optional) The token used for authentication. If not provided, the instance token will be used.

      • Optionalsecret: string

        (Optional) The secret used for authentication. If not provided, the instance secret will be used.

      Returns Promise<{ response: devices; statusCode: number }>

      A promise that resolves to an object containing the API response.

      Throws an error if the request to get devices fails.

      -
    • Retrieves the status of a specific device.

      +
    • Retrieves the status of a specific device.

      Parameters

      • deviceId: string

        The unique identifier of the device.

      • Optionaltoken: string

        (Optional) The token used for authentication. If not provided, the instance token will be used.

      • Optionalsecret: string

        (Optional) The secret used for authentication. If not provided, the instance secret will be used.

      Returns Promise<{ response: deviceStatus; statusCode: number }>

      A promise that resolves to an object containing the device status and the status code of the request.

      An error if the request fails.

      -
    • Sets up a webhook listener and configures the webhook on the server.

      +
    • Sets up a webhook listener and configures the webhook on the server.

      This method performs the following steps:

      1. Creates a local server to listen for incoming webhook events.
      2. @@ -54,4 +54,4 @@
    • Optionalsecret: string

      (Optional) The secret used for authentication. If not provided, the instance secret will be used.

    Returns Promise<void>

    A promise that resolves when the webhook setup is complete.

    Will log an error if any step in the webhook setup process fails.

    -
    +
    diff --git a/docs/classes/SwitchbotDevice.html b/docs/classes/SwitchbotDevice.html index db1edb53..305baf6c 100644 --- a/docs/classes/SwitchbotDevice.html +++ b/docs/classes/SwitchbotDevice.html @@ -1,5 +1,5 @@ SwitchbotDevice | node-switchbot

    Class SwitchbotDevice

    Represents a Switchbot Device.

    -

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    address connectionState friendlyName @@ -20,25 +20,25 @@

    Constructors

    • Initializes a new instance of the SwitchbotDevice class.

      Parameters

      • peripheral: Peripheral

        The peripheral object from noble.

      • noble: __module

        The Noble object.

        -

      Returns SwitchbotDevice

    Accessors

    • get connectionState(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Returns SwitchbotDevice

    Accessors

    • get connectionState(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      +
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      +
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Discovers the device services.

      +
    • Discovers the device services.

      Returns Promise<Service[]>

      A Promise that resolves with the list of services.

      -
    • Retrieves the device characteristics.

      +
    • Retrieves the device characteristics.

      Returns Promise<Chars>

      A Promise that resolves with the device characteristics.

      -
    • Retrieves the device name.

      +
    • Retrieves the device name.

      Returns Promise<string>

      A Promise that resolves with the device name.

      -
    • Logs a message with the specified log level.

      +
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Unsubscribes from the notify characteristic.

      +
    • Unsubscribes from the notify characteristic.

      Returns Promise<void>

      A Promise that resolves when the unsubscription is complete.

      -
    +
    diff --git a/docs/classes/WoBlindTilt.html b/docs/classes/WoBlindTilt.html index 11707916..562c01be 100644 --- a/docs/classes/WoBlindTilt.html +++ b/docs/classes/WoBlindTilt.html @@ -1,6 +1,6 @@ WoBlindTilt | node-switchbot

    Class WoBlindTilt

    Class representing a WoBlindTilt device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Closes the blind tilt to the nearest endpoint.

      -

      Returns Promise<void>

    • Closes the blind tilt down to the nearest endpoint.

      -

      Returns Promise<void>

    • Closes the blind tilt up to the nearest endpoint.

      -

      Returns Promise<void>

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Closes the blind tilt to the nearest endpoint.

      +

      Returns Promise<void>

    • Closes the blind tilt down to the nearest endpoint.

      +

      Returns Promise<void>

    • Closes the blind tilt up to the nearest endpoint.

      +

      Returns Promise<void>

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Retrieves the basic information of the blind tilt.

      Returns Promise<null | object>

      • A promise that resolves to an object containing the basic information of the blind tilt.
      -
    • Retrieves the current position of the blind tilt.

      Returns Promise<number>

      • The current position of the blind tilt (0-100).
      -
    • Logs a message with the specified log level.

      +
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Opens the blind tilt to the fully open position.

      -

      Returns Promise<void>

    • Runs the blind tilt to the specified position.

      +

    Returns Promise<void>

    • Opens the blind tilt to the fully open position.

      +

      Returns Promise<void>

    • Runs the blind tilt to the specified position.

      Parameters

      • percent: number

        The target position percentage (0-100).

      • mode: number

        The running mode (0 or 1).

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parses the service data and manufacturer data for the WoBlindTilt device.

      +
    • Parses the service data and manufacturer data for the WoBlindTilt device.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

        @@ -72,4 +72,4 @@

      Returns Promise<null | blindTiltServiceData>

      • The parsed data object or null if the data is invalid.
      -
    +
    diff --git a/docs/classes/WoBulb.html b/docs/classes/WoBulb.html index 0f43d3b6..0d81f963 100644 --- a/docs/classes/WoBulb.html +++ b/docs/classes/WoBulb.html @@ -1,6 +1,6 @@ WoBulb | node-switchbot

    Class representing a WoBulb device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Reads the state of the bulb.

      +

    Returns Promise<void>

    • Reads the state of the bulb.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the bulb is ON (true) or OFF (false).
      -
    • Sets the brightness of the bulb.

      +
    • Sets the brightness of the bulb.

      Parameters

      • brightness: number

        The brightness percentage (0-100).

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Sets the color temperature of the bulb.

      +
    • Sets the color temperature of the bulb.

      Parameters

      • color_temperature: number

        The color temperature percentage (0-100).

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Sets the RGB color of the bulb.

      +
    • Sets the RGB color of the bulb.

      Parameters

      • brightness: number

        The brightness percentage (0-100).

      • red: number

        The red color value (0-255).

      • green: number

        The green color value (0-255).

        @@ -66,21 +66,21 @@

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Turns off the bulb.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the bulb is OFF (false).
      -
    • Turns on the bulb.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the bulb is ON (true).
      -
    • Unsubscribes from the notify characteristic.

      +
    • Parses the service data for WoBulb.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | colorBulbServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoCeilingLight.html b/docs/classes/WoCeilingLight.html index 2d2a0e50..61afb375 100644 --- a/docs/classes/WoCeilingLight.html +++ b/docs/classes/WoCeilingLight.html @@ -1,6 +1,6 @@ WoCeilingLight | node-switchbot

    Class WoCeilingLight

    Class representing a WoCeilingLight device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sends a command to the ceiling light.

      +

    Returns Promise<void>

    • Sends a command to the ceiling light.

      Parameters

      • bytes: number[]

        The command bytes.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Reads the state of the ceiling light.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the light is ON (true) or OFF (false).
      -
    • Sets the brightness of the ceiling light.

      Parameters

      • brightness: number

        The brightness percentage (0-100).

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Sets the color temperature of the ceiling light.

      +
    • Sets the color temperature of the ceiling light.

      Parameters

      • color_temperature: number

        The color temperature percentage (0-100).

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Sets the RGB color of the ceiling light.

      +
    • Sets the RGB color of the ceiling light.

      Parameters

      • brightness: number

        The brightness percentage (0-100).

      • red: number

        The red color value (0-255).

      • green: number

        The green color value (0-255).

        @@ -74,31 +74,31 @@

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Sets the state of the ceiling light.

      Parameters

      • reqByteArray: number[]

        The request byte array.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the operation was successful.
      -
    • Turns off the ceiling light.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the light is OFF (false).
      -
    • Turns on the ceiling light.

      Returns Promise<boolean>

      • Resolves with a boolean indicating whether the light is ON (true).
      -
    • Parses the service data for WoCeilingLight.

      Parameters

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | ceilingLightServiceData>

      • Parsed service data or null if invalid.
      -
    • Parses the service data for WoCeilingLight Pro.

      Parameters

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | ceilingLightProServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoContact.html b/docs/classes/WoContact.html index e949aa89..19e1d8fb 100644 --- a/docs/classes/WoContact.html +++ b/docs/classes/WoContact.html @@ -1,6 +1,6 @@ WoContact | node-switchbot

    Class representing a WoContact device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parses the service data for WoContact.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | contactSensorServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoCurtain.html b/docs/classes/WoCurtain.html index d94ed151..b5ccef1b 100644 --- a/docs/classes/WoCurtain.html +++ b/docs/classes/WoCurtain.html @@ -3,7 +3,7 @@
  • https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/curtain.md
  • https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/curtain3.md
  • -

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Closes the curtain.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Closes the curtain.

      Parameters

      • Optionalmode: number = 0xFF

        Running mode (0x01 = QuietDrift, 0xFF = Default).

        -

      Returns Promise<void>

    • Sends a command to the device and awaits a response.

      +

    Returns Promise<void>

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Opens the curtain.

      +

    Returns Promise<void>

    • Opens the curtain.

      Parameters

      • Optionalmode: number = 0xFF

        Running mode (0x01 = QuietDrift, 0xFF = Default).

        -

      Returns Promise<void>

    • Sends a command to the curtain.

      +

    Returns Promise<void>

    • Sends a command to the curtain.

      Parameters

      • bytes: number[]

        The command bytes.

        -

      Returns Promise<void>

    • Runs the curtain to the target position.

      +

    Returns Promise<void>

    • Runs the curtain to the target position.

      Parameters

      • percent: number

        The percentage of the target position.

      • Optionalmode: number = 0xFF

        Running mode (0x01 = QuietDrift, 0xFF = Default).

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parses the service data for WoCurtain.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

        @@ -66,4 +66,4 @@

      Returns Promise<null | curtainServiceData | curtain3ServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoHand.html b/docs/classes/WoHand.html index 48829846..9e6b009d 100644 --- a/docs/classes/WoHand.html +++ b/docs/classes/WoHand.html @@ -1,6 +1,6 @@ WoHand | node-switchbot

    Class representing a WoHand device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Turns off the bot.

      -

      Returns Promise<void>

    • Turns off the bot.

      +

      Returns Promise<void>

    • Parses the service data for WoHand.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | botServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoHub2.html b/docs/classes/WoHub2.html index 674f1b39..72fa302e 100644 --- a/docs/classes/WoHub2.html +++ b/docs/classes/WoHub2.html @@ -1,6 +1,6 @@ WoHub2 | node-switchbot

    Class representing a WoHub2 device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parses the service data for WoHub2.

      Parameters

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | hub2ServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoHumi.html b/docs/classes/WoHumi.html index aa7ed473..1592e789 100644 --- a/docs/classes/WoHumi.html +++ b/docs/classes/WoHumi.html @@ -1,6 +1,6 @@ WoHumi | node-switchbot

    Class representing a WoHumi device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Decreases the humidifier setting.

      -

      Returns Promise<void>

    • Decreases the humidifier setting.

      +

      Returns Promise<void>

    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Increases the humidifier setting.

      -

      Returns Promise<void>

    • Increases the humidifier setting.

      +

      Returns Promise<void>

    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the humidifier level.

      +

    Returns Promise<void>

    • Sets the humidifier level.

      Parameters

      • level: number

        The level to set (0-100).

        -

      Returns Promise<void>

    • Sets the humidifier to auto mode.

      -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the humidifier to auto mode.

      +

      Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Sets the humidifier to manual mode.

      -

      Returns Promise<void>

    • Turns off the humidifier.

      -

      Returns Promise<void>

    • Turns on the humidifier.

      -

      Returns Promise<void>

    • Sets the humidifier to manual mode.

      +

      Returns Promise<void>

    • Turns off the humidifier.

      +

      Returns Promise<void>

    • Turns on the humidifier.

      +

      Returns Promise<void>

    • Parses the service data for WoHumi.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | humidifierServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoIOSensorTH.html b/docs/classes/WoIOSensorTH.html index 4d88bb30..853c983c 100644 --- a/docs/classes/WoIOSensorTH.html +++ b/docs/classes/WoIOSensorTH.html @@ -1,6 +1,6 @@ WoIOSensorTH | node-switchbot

    Class WoIOSensorTH

    Class representing a WoIOSensorTH device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parses the service data for WoIOSensorTH.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | outdoorMeterServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoPlugMiniUS.html b/docs/classes/WoPlugMiniUS.html index 6708ff1b..2fbcccde 100644 --- a/docs/classes/WoPlugMiniUS.html +++ b/docs/classes/WoPlugMiniUS.html @@ -1,6 +1,6 @@ WoPlugMiniUS | node-switchbot

    Class WoPlugMiniUS

    Class representing a WoPlugMini device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Operates the plug with the given bytes.

      +

    Returns Promise<void>

    • Operates the plug with the given bytes.

      Parameters

      • bytes: number[]

        The byte array to send to the plug.

      Returns Promise<boolean>

      • Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
      -
    • Reads the state of the plug.

      Returns Promise<boolean>

      • Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
      -
    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Toggles the state of the plug.

      Returns Promise<boolean>

      • Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
      -
    • Turns off the plug.

      Returns Promise<boolean>

      • Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
      -
    • Turns on the plug.

      Returns Promise<boolean>

      • Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
      -
    • Unsubscribes from the notify characteristic.

      +
    • Parses the service data for WoPlugMini US.

      Parameters

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | plugMiniUSServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoPresence.html b/docs/classes/WoPresence.html index f30aa00c..aa49b171 100644 --- a/docs/classes/WoPresence.html +++ b/docs/classes/WoPresence.html @@ -1,6 +1,6 @@ WoPresence | node-switchbot

    Class WoPresence

    Class representing a WoPresence device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parses the service data for WoPresence.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | motionSensorServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoSensorTH.html b/docs/classes/WoSensorTH.html index 69a4b829..b41a87de 100644 --- a/docs/classes/WoSensorTH.html +++ b/docs/classes/WoSensorTH.html @@ -1,6 +1,6 @@ WoSensorTH | node-switchbot

    Class WoSensorTH

    Class representing a WoSensorTH device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Sets the device name.

      +

    Returns Promise<void>

    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Parameters

      • serviceData: Buffer
      • emitLog: (level: string, message: string) => void

      Returns Promise<null | meterServiceData>

    +
    • Parameters

      • serviceData: Buffer
      • emitLog: (level: string, message: string) => void

      Returns Promise<null | meterServiceData>

    diff --git a/docs/classes/WoSmartLock.html b/docs/classes/WoSmartLock.html index 4b9a7288..b7f930ca 100644 --- a/docs/classes/WoSmartLock.html +++ b/docs/classes/WoSmartLock.html @@ -1,6 +1,6 @@ WoSmartLock | node-switchbot

    Class WoSmartLock

    Class representing a WoSmartLock device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Properties

    encryption_key: null | Buffer = null
    iv: null | Buffer = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Properties

    encryption_key: null | Buffer = null
    iv: null | Buffer = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Decrypts a buffer using AES-128-CTR.

      Parameters

      • data: Buffer

        The data to decrypt.

      Returns Promise<Buffer>

      • The decrypted data.
      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Encrypts a string using AES-128-CTR.

      Parameters

      • str: string

        The string to encrypt.

      Returns Promise<string>

      • The encrypted string in hex format.
      -
    • Sends an encrypted command to the device.

      +
    • Sends an encrypted command to the device.

      Parameters

      • key: string

        The command key.

      Returns Promise<Buffer>

      • The response buffer.
      -
    • Retrieves the IV from the device.

      Returns Promise<Buffer>

      • The IV buffer.
      -
    • Gets general state info from the Smart Lock.

      Returns Promise<null | object>

      • The state object or null if an error occurred.
      -
    • Locks the Smart Lock.

      Returns Promise<number>

      • The result of the lock operation.
      -
    • Logs a message with the specified log level.

      +
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Operates the lock with the given command.

      +

    Returns Promise<void>

    • Operates the lock with the given command.

      Parameters

      • key: string

        The command key.

      • Optionalencrypt: boolean = true

        Whether to encrypt the command.

      Returns Promise<Buffer>

      • The response buffer.
      -
    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Initializes the encryption key info for valid lock communication.

      Parameters

      • keyId: string

        The key ID.

      • encryptionKey: string

        The encryption key.

        -

      Returns Promise<void>

    • Unlocks the Smart Lock.

      +

    Returns Promise<void>

    • Unlocks the Smart Lock.

      Returns Promise<number>

      • The result of the unlock operation.
      -
    • Unlocks the Smart Lock without unlatching the door.

      Returns Promise<number>

      • The result of the unlock operation.
      -
    • Parses the service data from the SwitchBot Strip Light.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | lockServiceData>

      • Parsed service data or null if invalid.
      -
    • Parameters

      • res: Buffer

      Returns Promise<number>

    +
    • Parameters

      • res: Buffer

      Returns Promise<number>

    diff --git a/docs/classes/WoSmartLockPro.html b/docs/classes/WoSmartLockPro.html index 0efb6a09..f1ce5bca 100644 --- a/docs/classes/WoSmartLockPro.html +++ b/docs/classes/WoSmartLockPro.html @@ -1,6 +1,6 @@ WoSmartLockPro | node-switchbot

    Class WoSmartLockPro

    Class representing a WoSmartLockPro device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Properties

    encryption_key: null | Buffer = null
    iv: null | Buffer = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Properties

    encryption_key: null | Buffer = null
    iv: null | Buffer = null
    key_id: string = ''
    Result: { ERROR: number; SUCCESS: number; SUCCESS_LOW_BATTERY: number } = ...

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Decrypts a buffer using AES-128-CTR.

      Parameters

      • data: Buffer

        The data to decrypt.

      Returns Promise<Buffer>

      • The decrypted data.
      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Encrypts a string using AES-128-CTR.

      Parameters

      • str: string

        The string to encrypt.

      Returns Promise<string>

      • The encrypted string in hex format.
      -
    • Sends an encrypted command to the device.

      Parameters

      • key: string

        The command key.

      Returns Promise<Buffer>

      • The response buffer.
      -
    • Gets general state info from the Smart Lock.

      Returns Promise<null | object>

      • The state object or null if an error occurred.
      -
    • Locks the Smart Lock.

      Returns Promise<number>

      • The result of the lock operation.
      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Operates the lock with the given command.

      +

    Returns Promise<void>

    • Operates the lock with the given command.

      Parameters

      • key: string

        The command key.

      • Optionalencrypt: boolean = true

        Whether to encrypt the command.

      Returns Promise<Buffer>

      • The response buffer.
      -
    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Initializes the encryption key info for valid lock communication.

      Parameters

      • keyId: string

        The key ID.

      • encryptionKey: string

        The encryption key.

        -

      Returns Promise<void>

    • Unlocks the Smart Lock.

      +

    Returns Promise<void>

    • Unlocks the Smart Lock.

      Returns Promise<number>

      • The result of the unlock operation.
      -
    • Unlocks the Smart Lock without unlatching the door.

      Returns Promise<number>

      • The result of the unlock operation.
      -
    • Parses the service data from the SwitchBot Strip Light.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • manufacturerData: Buffer

        The manufacturer data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | lockProServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/classes/WoStrip.html b/docs/classes/WoStrip.html index 8ec7a675..eed82319 100644 --- a/docs/classes/WoStrip.html +++ b/docs/classes/WoStrip.html @@ -1,6 +1,6 @@ WoStrip | node-switchbot

    Class representing a WoStrip device.

    Hierarchy (View Summary)

    Constructors

    Hierarchy (View Summary)

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      +

    Constructors

    Accessors

    • get address(): string
    • Returns string

    • get connectionState(): string
    • Returns string

    • get id(): string
    • Returns string

    • get onConnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onConnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    • get onDisconnectHandler(): () => Promise<void>
    • Returns () => Promise<void>

    • set onDisconnectHandler(func: () => Promise<void>): void
    • Parameters

      • func: () => Promise<void>

      Returns void

    Methods

    • Sends a command to the device and awaits a response.

      Parameters

      • reqBuf: Buffer

        The command buffer.

      Returns Promise<Buffer>

      A Promise that resolves with the response buffer.

      -
    • Connects to the device.

      Returns Promise<void>

      A Promise that resolves when the connection is complete.

      -
    • Disconnects from the device.

      Returns Promise<void>

      A Promise that resolves when the disconnection is complete.

      -
    • Logs a message with the specified log level.

      Parameters

      • level: string

        The severity level of the log (e.g., 'info', 'warn', 'error').

      • message: string

        The log message to be emitted.

        -

      Returns Promise<void>

    • Operates the strip light with the given byte array.

      +

    Returns Promise<void>

    • Operates the strip light with the given byte array.

      Parameters

      • bytes: number[]

        The byte array to send.

      Returns Promise<boolean>

      • Resolves with true if the operation was successful.
      -
    • Reads the state of the strip light.

      Returns Promise<boolean>

      • Resolves with true if the strip light is ON, false otherwise.
      -
    • Sets the brightness of the strip light.

      +
    • Sets the brightness of the strip light.

      Parameters

      • brightness: number

        The brightness percentage (0-100).

      Returns Promise<boolean>

      • Resolves with true if the operation was successful.
      -
    • Sets the device name.

      Parameters

      • name: string

        The new device name.

      Returns Promise<void>

      A Promise that resolves when the name is set.

      -
    • Sets the RGB values of the strip light.

      +
    • Sets the RGB values of the strip light.

      Parameters

      • brightness: number

        The brightness percentage (0-100).

      • red: number

        The red value (0-255).

      • green: number

        The green value (0-255).

        @@ -67,25 +67,25 @@

      Returns Promise<boolean>

      • Resolves with true if the operation was successful.
      -
    • Sets the state of the strip light.

      +
    • Sets the state of the strip light.

      Parameters

      • reqByteArray: number[]

        The request byte array.

      Returns Promise<boolean>

      • Resolves with true if the operation was successful.
      -
    • Turns the strip light off.

      Returns Promise<boolean>

      • Resolves with true if the strip light is OFF.
      -
    • Turns the strip light on.

      Returns Promise<boolean>

      • Resolves with true if the strip light is ON.
      -
    • Unsubscribes from the notify characteristic.

      +
    • Parses the service data from the SwitchBot Strip Light.

      Parameters

      • serviceData: Buffer

        The service data buffer.

      • emitLog: (level: string, message: string) => void

        The function to emit log messages.

      Returns Promise<null | stripLightServiceData>

      • Parsed service data or null if invalid.
      -
    +
    diff --git a/docs/enums/LogLevel.html b/docs/enums/LogLevel.html index fdcbbdc6..b13612c1 100644 --- a/docs/enums/LogLevel.html +++ b/docs/enums/LogLevel.html @@ -1,5 +1,5 @@ LogLevel | node-switchbot

    Enumeration LogLevel

    Enum for log levels.

    -

    Enumeration Members

    Enumeration Members

    Enumeration Members

    DEBUG: "debug"
    DEBUGERROR: "debugerror"
    DEBUGSUCCESS: "debugsuccess"
    DEBUGWARN: "debugwarn"
    ERROR: "error"
    INFO: "info"
    SUCCESS: "success"
    WARN: "warn"
    +

    Enumeration Members

    DEBUG: "debug"
    DEBUGERROR: "debugerror"
    DEBUGSUCCESS: "debugsuccess"
    DEBUGWARN: "debugwarn"
    ERROR: "error"
    INFO: "info"
    SUCCESS: "success"
    WARN: "warn"
    diff --git a/docs/enums/SwitchBotBLEModel.html b/docs/enums/SwitchBotBLEModel.html index d8acf542..f52085da 100644 --- a/docs/enums/SwitchBotBLEModel.html +++ b/docs/enums/SwitchBotBLEModel.html @@ -1,4 +1,4 @@ -SwitchBotBLEModel | node-switchbot

    Enumeration SwitchBotBLEModel

    Enumeration Members

    BlindTilt +SwitchBotBLEModel | node-switchbot

    Enumeration SwitchBotBLEModel

    Enumeration Members

    BlindTilt: "x"
    Bot: "H"
    CeilingLight: "q"
    CeilingLightPro: "n"
    ColorBulb: "u"
    ContactSensor: "d"
    Curtain: "c"
    Curtain3: "{"
    Hub2: "v"
    Humidifier: "e"
    Humidifier2: "E"
    Keypad: "y"
    Leak: "&"
    Lock: "o"
    LockPro: "$"
    Meter: "T"
    MeterPlus: "i"
    MeterPro: "4"
    MeterProCO2: "5"
    MotionSensor: "s"
    OutdoorMeter: "w"
    PlugMiniJP: "j"
    PlugMiniUS: "g"
    RelaySwitch1: ";"
    RelaySwitch1PM: "<"
    StripLight: "r"
    Unknown: "Unknown"
    +

    Enumeration Members

    BlindTilt: "x"
    Bot: "H"
    CeilingLight: "q"
    CeilingLightPro: "n"
    ColorBulb: "u"
    ContactSensor: "d"
    Curtain: "c"
    Curtain3: "{"
    Hub2: "v"
    Humidifier: "e"
    Humidifier2: "#"
    Keypad: "y"
    Leak: "&"
    Lock: "o"
    LockPro: "$"
    Meter: "T"
    MeterPlus: "i"
    MeterPro: "4"
    MeterProCO2: "5"
    MotionSensor: "s"
    OutdoorMeter: "w"
    PlugMiniJP: "j"
    PlugMiniUS: "g"
    RelaySwitch1: ";"
    RelaySwitch1PM: "<"
    StripLight: "r"
    Unknown: "Unknown"
    diff --git a/docs/enums/SwitchBotBLEModelFriendlyName.html b/docs/enums/SwitchBotBLEModelFriendlyName.html index 2da72b21..490b6d00 100644 --- a/docs/enums/SwitchBotBLEModelFriendlyName.html +++ b/docs/enums/SwitchBotBLEModelFriendlyName.html @@ -1,4 +1,4 @@ -SwitchBotBLEModelFriendlyName | node-switchbot

    Enumeration SwitchBotBLEModelFriendlyName

    Enumeration Members

    BatteryCirculatorFan +SwitchBotBLEModelFriendlyName | node-switchbot

    Enumeration SwitchBotBLEModelFriendlyName

    Enumeration Members

    BatteryCirculatorFan: "Battery Circulator Fan"
    BlindTilt: "Blind Tilt"
    Bot: "Bot"
    CeilingLight: "Ceiling Light"
    CeilingLightPro: "Ceiling Light Pro"
    CirculatorFan: "Circulator Fan"
    ColorBulb: "Color Bulb"
    ContactSensor: "Contact Sensor"
    Curtain: "Curtain"
    Curtain3: "Curtain 3"
    Hub2: "Hub 2"
    Humidifier: "Humidifier"
    Humidifier2: "Humidifier2"
    Keypad: "Keypad"
    Leak: "Water Detector"
    Lock: "Lock"
    LockPro: "Lock Pro"
    Meter: "Meter"
    MeterPlus: "Meter Plus"
    MeterPro: "Meter Pro"
    MeterProCO2: "Meter Pro CO2"
    MotionSensor: "Motion Sensor"
    OutdoorMeter: "Outdoor Meter"
    PlugMini: "Plug Mini"
    RelaySwitch1: "Relay Switch 1"
    RelaySwitch1PM: "Relay Switch 1PM"
    StripLight: "Strip Light"
    Unknown: "Unknown"
    +

    Enumeration Members

    BatteryCirculatorFan: "Battery Circulator Fan"
    BlindTilt: "Blind Tilt"
    Bot: "Bot"
    CeilingLight: "Ceiling Light"
    CeilingLightPro: "Ceiling Light Pro"
    CirculatorFan: "Circulator Fan"
    ColorBulb: "Color Bulb"
    ContactSensor: "Contact Sensor"
    Curtain: "Curtain"
    Curtain3: "Curtain 3"
    Hub2: "Hub 2"
    Humidifier: "Humidifier"
    Humidifier2: "Humidifier2"
    Keypad: "Keypad"
    Leak: "Water Detector"
    Lock: "Lock"
    LockPro: "Lock Pro"
    Meter: "Meter"
    MeterPlus: "Meter Plus"
    MeterPro: "Meter Pro"
    MeterProCO2: "Meter Pro CO2"
    MotionSensor: "Motion Sensor"
    OutdoorMeter: "Outdoor Meter"
    PlugMini: "Plug Mini"
    RelaySwitch1: "Relay Switch 1"
    RelaySwitch1PM: "Relay Switch 1PM"
    StripLight: "Strip Light"
    Unknown: "Unknown"
    diff --git a/docs/enums/SwitchBotBLEModelName.html b/docs/enums/SwitchBotBLEModelName.html index f630edb1..94ae2acd 100644 --- a/docs/enums/SwitchBotBLEModelName.html +++ b/docs/enums/SwitchBotBLEModelName.html @@ -1,4 +1,4 @@ -SwitchBotBLEModelName | node-switchbot

    Enumeration SwitchBotBLEModelName

    Enumeration Members

    BlindTilt +SwitchBotBLEModelName | node-switchbot

    Enumeration SwitchBotBLEModelName

    Enumeration Members

    BlindTilt: "WoBlindTilt"
    Bot: "WoHand"
    CeilingLight: "WoCeilingLight"
    CeilingLightPro: "WoCeilingLightPro"
    ColorBulb: "WoBulb"
    ContactSensor: "WoContact"
    Curtain: "WoCurtain"
    Curtain3: "WoCurtain3"
    Hub2: "WoHub2"
    Humidifier: "WoHumi"
    Humidifier2: "WoHumi2"
    Keypad: "WoKeypad"
    Leak: "WoLeakDetector"
    Lock: "WoSmartLock"
    LockPro: "WoSmartLockPro"
    Meter: "WoSensorTH"
    MeterPlus: "WoSensorTHPlus"
    MeterPro: "WoSensorTHP"
    MeterProCO2: "WoSensorTHPc"
    MotionSensor: "WoMotion"
    OutdoorMeter: "WoIOSensorTH"
    PlugMini: "WoPlugMini"
    RelaySwitch1: "WoRelaySwitch1Plus"
    RelaySwitch1PM: "WoRelaySwitch1PM"
    StripLight: "WoStrip"
    Unknown: "Unknown"
    +

    Enumeration Members

    BlindTilt: "WoBlindTilt"
    Bot: "WoHand"
    CeilingLight: "WoCeilingLight"
    CeilingLightPro: "WoCeilingLightPro"
    ColorBulb: "WoBulb"
    ContactSensor: "WoContact"
    Curtain: "WoCurtain"
    Curtain3: "WoCurtain3"
    Hub2: "WoHub2"
    Humidifier: "WoHumi"
    Humidifier2: "WoHumi2"
    Keypad: "WoKeypad"
    Leak: "WoLeakDetector"
    Lock: "WoSmartLock"
    LockPro: "WoSmartLockPro"
    Meter: "WoSensorTH"
    MeterPlus: "WoSensorTHPlus"
    MeterPro: "WoSensorTHP"
    MeterProCO2: "WoSensorTHPc"
    MotionSensor: "WoMotion"
    OutdoorMeter: "WoIOSensorTH"
    PlugMini: "WoPlugMini"
    RelaySwitch1: "WoRelaySwitch1Plus"
    RelaySwitch1PM: "WoRelaySwitch1PM"
    StripLight: "WoStrip"
    Unknown: "Unknown"
    diff --git a/docs/enums/SwitchBotModel.html b/docs/enums/SwitchBotModel.html index 1b4b69be..f0fba368 100644 --- a/docs/enums/SwitchBotModel.html +++ b/docs/enums/SwitchBotModel.html @@ -1,4 +1,4 @@ -SwitchBotModel | node-switchbot

    Enumeration SwitchBotModel

    Enumeration Members

    BatteryCirculatorFan +SwitchBotModel | node-switchbot

    Enumeration SwitchBotModel

    Enumeration Members

    BatteryCirculatorFan: "W3800510"
    BlindTilt: "W2701600"
    Bot: "SwitchBot S1"
    CeilingLight: "W2612230/W2612240"
    CeilingLightPro: "W2612210/W2612220"
    CirculatorFan: "W3800511"
    ColorBulb: "W1401400"
    ContactSensor: "W1201500"
    Curtain: "W0701600"
    Curtain3: "W2400000"
    Hub2: "W3202100"
    HubMini: "W0202200"
    HubPlus: "SwitchBot Hub S1"
    Humidifier: "W0801800"
    Humidifier2: "WXXXXXXX"
    IndoorCam: "W1301200"
    K10: "K10+"
    K10Pro: "K10+ Pro"
    Keypad: "W2500010"
    KeypadTouch: "W2500020"
    Lock: "W1601700"
    LockPro: "W3500000"
    Meter: "SwitchBot MeterTH S1"
    MeterPlusJP: "W2201500"
    MeterPlusUS: "W2301500"
    MeterPro: "W4900000"
    MeterProCO2: "W4900010"
    MotionSensor: "W1101500"
    OutdoorMeter: "W3400010"
    PanTiltCam: "W1801200"
    PanTiltCam2K: "W3101100"
    Plug: "SP11"
    PlugMiniJP: "W2001400/W2001401"
    PlugMiniUS: "W1901400/W1901401"
    Remote: "Remote"
    RobotVacuumCleanerS1: "W3011000"
    RobotVacuumCleanerS10: "W3211800"
    RobotVacuumCleanerS1Plus: "W3011010"
    StripLight: "W1701100"
    UniversalRemote: "UniversalRemote"
    Unknown: "Unknown"
    WaterDetector: "W4402000"
    WoSweeper: "WoSweeper"
    WoSweeperMini: "WoSweeperMini"
    +

    Enumeration Members

    BatteryCirculatorFan: "W3800510"
    BlindTilt: "W2701600"
    Bot: "SwitchBot S1"
    CeilingLight: "W2612230/W2612240"
    CeilingLightPro: "W2612210/W2612220"
    CirculatorFan: "W3800511"
    ColorBulb: "W1401400"
    ContactSensor: "W1201500"
    Curtain: "W0701600"
    Curtain3: "W2400000"
    Hub2: "W3202100"
    HubMini: "W0202200"
    HubPlus: "SwitchBot Hub S1"
    Humidifier: "W0801800"
    Humidifier2: "WXXXXXXX"
    IndoorCam: "W1301200"
    K10: "K10+"
    K10Pro: "K10+ Pro"
    Keypad: "W2500010"
    KeypadTouch: "W2500020"
    Lock: "W1601700"
    LockPro: "W3500000"
    Meter: "SwitchBot MeterTH S1"
    MeterPlusJP: "W2201500"
    MeterPlusUS: "W2301500"
    MeterPro: "W4900000"
    MeterProCO2: "W4900010"
    MotionSensor: "W1101500"
    OutdoorMeter: "W3400010"
    PanTiltCam: "W1801200"
    PanTiltCam2K: "W3101100"
    Plug: "SP11"
    PlugMiniJP: "W2001400/W2001401"
    PlugMiniUS: "W1901400/W1901401"
    Remote: "Remote"
    RobotVacuumCleanerS1: "W3011000"
    RobotVacuumCleanerS10: "W3211800"
    RobotVacuumCleanerS1Plus: "W3011010"
    StripLight: "W1701100"
    UniversalRemote: "UniversalRemote"
    Unknown: "Unknown"
    WaterDetector: "W4402000"
    WoSweeper: "WoSweeper"
    WoSweeperMini: "WoSweeperMini"
    diff --git a/docs/interfaces/AdvertisementData.html b/docs/interfaces/AdvertisementData.html index 41cc6645..12cb900e 100644 --- a/docs/interfaces/AdvertisementData.html +++ b/docs/interfaces/AdvertisementData.html @@ -1,3 +1,3 @@ -AdvertisementData | node-switchbot

    Interface AdvertisementData

    interface AdvertisementData {
        manufacturerData: null | Buffer;
        serviceData: null | Buffer;
    }

    Properties

    manufacturerData +AdvertisementData | node-switchbot

    Interface AdvertisementData

    interface AdvertisementData {
        manufacturerData: null | Buffer;
        serviceData: null | Buffer;
    }

    Properties

    manufacturerData: null | Buffer
    serviceData: null | Buffer
    +

    Properties

    manufacturerData: null | Buffer
    serviceData: null | Buffer
    diff --git a/docs/interfaces/Chars.html b/docs/interfaces/Chars.html index b7f13978..dd13ace5 100644 --- a/docs/interfaces/Chars.html +++ b/docs/interfaces/Chars.html @@ -1,4 +1,4 @@ -Chars | node-switchbot

    Interface Chars

    interface Chars {
        device: null | Characteristic;
        notify: null | Characteristic;
        write: null | Characteristic;
    }

    Properties

    device +Chars | node-switchbot

    Interface Chars

    interface Chars {
        device: null | Characteristic;
        notify: null | Characteristic;
        write: null | Characteristic;
    }

    Properties

    Properties

    device: null | Characteristic
    notify: null | Characteristic
    write: null | Characteristic
    +

    Properties

    device: null | Characteristic
    notify: null | Characteristic
    write: null | Characteristic
    diff --git a/docs/interfaces/ErrorObject.html b/docs/interfaces/ErrorObject.html index e722f419..7aa2d66e 100644 --- a/docs/interfaces/ErrorObject.html +++ b/docs/interfaces/ErrorObject.html @@ -1,3 +1,3 @@ -ErrorObject | node-switchbot

    Interface ErrorObject

    interface ErrorObject {
        code: string;
        message: string;
    }

    Properties

    code +ErrorObject | node-switchbot

    Interface ErrorObject

    interface ErrorObject {
        code: string;
        message: string;
    }

    Properties

    Properties

    code: string
    message: string
    +

    Properties

    code: string
    message: string
    diff --git a/docs/interfaces/NobleTypes.html b/docs/interfaces/NobleTypes.html index 8da309c6..95b6b727 100644 --- a/docs/interfaces/NobleTypes.html +++ b/docs/interfaces/NobleTypes.html @@ -1,4 +1,4 @@ -NobleTypes | node-switchbot

    Interface NobleTypes

    interface NobleTypes {
        noble: __module;
        peripheral: Peripheral;
        state:
            | "unknown"
            | "resetting"
            | "unsupported"
            | "unauthorized"
            | "poweredOff"
            | "poweredOn";
    }

    Properties

    noble +NobleTypes | node-switchbot

    Interface NobleTypes

    interface NobleTypes {
        noble: __module;
        peripheral: Peripheral;
        state:
            | "unknown"
            | "resetting"
            | "unsupported"
            | "unauthorized"
            | "poweredOff"
            | "poweredOn";
    }

    Properties

    Properties

    noble: __module
    peripheral: Peripheral
    state:
        | "unknown"
        | "resetting"
        | "unsupported"
        | "unauthorized"
        | "poweredOff"
        | "poweredOn"
    +

    Properties

    noble: __module
    peripheral: Peripheral
    state:
        | "unknown"
        | "resetting"
        | "unsupported"
        | "unauthorized"
        | "poweredOff"
        | "poweredOn"
    diff --git a/docs/interfaces/Params.html b/docs/interfaces/Params.html index a6675d90..784b79e2 100644 --- a/docs/interfaces/Params.html +++ b/docs/interfaces/Params.html @@ -1,6 +1,6 @@ -Params | node-switchbot

    Interface Params

    interface Params {
        duration?: number;
        id?: string;
        model?: string;
        noble?: __module;
        quick?: boolean;
    }

    Properties

    duration? +Params | node-switchbot

    Interface Params

    interface Params {
        duration?: number;
        id?: string;
        model?: string;
        noble?: __module;
        quick?: boolean;
    }

    Properties

    duration?: number
    id?: string
    model?: string
    noble?: __module
    quick?: boolean
    +

    Properties

    duration?: number
    id?: string
    model?: string
    noble?: __module
    quick?: boolean
    diff --git a/docs/interfaces/Rule.html b/docs/interfaces/Rule.html index bfec3716..8a89a743 100644 --- a/docs/interfaces/Rule.html +++ b/docs/interfaces/Rule.html @@ -1,4 +1,4 @@ -Rule | node-switchbot

    Interface Rule

    interface Rule {
        enum?: unknown[];
        max?: number;
        maxBytes?: number;
        min?: number;
        minBytes?: number;
        pattern?: RegExp;
        required?: boolean;
        type?: "string" | "boolean" | "object" | "float" | "integer" | "array";
    }

    Properties

    enum? +Rule | node-switchbot

    Interface Rule

    interface Rule {
        enum?: unknown[];
        max?: number;
        maxBytes?: number;
        min?: number;
        minBytes?: number;
        pattern?: RegExp;
        required?: boolean;
        type?: "string" | "boolean" | "object" | "float" | "integer" | "array";
    }

    Properties

    Properties

    enum?: unknown[]
    max?: number
    maxBytes?: number
    min?: number
    minBytes?: number
    pattern?: RegExp
    required?: boolean
    type?: "string" | "boolean" | "object" | "float" | "integer" | "array"
    +

    Properties

    enum?: unknown[]
    max?: number
    maxBytes?: number
    min?: number
    minBytes?: number
    pattern?: RegExp
    required?: boolean
    type?: "string" | "boolean" | "object" | "float" | "integer" | "array"
    diff --git a/docs/interfaces/ServiceData.html b/docs/interfaces/ServiceData.html index 78da6d37..b7e91cfc 100644 --- a/docs/interfaces/ServiceData.html +++ b/docs/interfaces/ServiceData.html @@ -1,2 +1,2 @@ -ServiceData | node-switchbot

    Interface ServiceData

    interface ServiceData {
        model: string;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    Properties

    model: string
    +ServiceData | node-switchbot

    Interface ServiceData

    interface ServiceData {
        model: string;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    Properties

    model: string
    diff --git a/docs/interfaces/SwitchBotBLEDevice.html b/docs/interfaces/SwitchBotBLEDevice.html index 3b0c1bc0..9c6b74fa 100644 --- a/docs/interfaces/SwitchBotBLEDevice.html +++ b/docs/interfaces/SwitchBotBLEDevice.html @@ -1,4 +1,4 @@ -SwitchBotBLEDevice | node-switchbot

    Interface SwitchBotBLEDevice

    interface SwitchBotBLEDevice {
        BlindTilt: DeviceInfo;
        Bot: DeviceInfo;
        CeilingLight: DeviceInfo;
        CeilingLightPro: DeviceInfo;
        ColorBulb: DeviceInfo;
        ContactSensor: DeviceInfo;
        Curtain: DeviceInfo;
        Curtain3: DeviceInfo;
        Hub2: DeviceInfo;
        Humidifier: DeviceInfo;
        Lock: DeviceInfo;
        LockPro: DeviceInfo;
        Meter: DeviceInfo;
        MeterPlus: DeviceInfo;
        MeterPro: DeviceInfo;
        MeterProCO2: DeviceInfo;
        MotionSensor: DeviceInfo;
        OutdoorMeter: DeviceInfo;
        PlugMiniJP: DeviceInfo;
        PlugMiniUS: DeviceInfo;
        StripLight: DeviceInfo;
        Unknown: DeviceInfo;
    }

    Properties

    BlindTilt +SwitchBotBLEDevice | node-switchbot

    Interface SwitchBotBLEDevice

    interface SwitchBotBLEDevice {
        BlindTilt: DeviceInfo;
        Bot: DeviceInfo;
        CeilingLight: DeviceInfo;
        CeilingLightPro: DeviceInfo;
        ColorBulb: DeviceInfo;
        ContactSensor: DeviceInfo;
        Curtain: DeviceInfo;
        Curtain3: DeviceInfo;
        Hub2: DeviceInfo;
        Humidifier: DeviceInfo;
        Lock: DeviceInfo;
        LockPro: DeviceInfo;
        Meter: DeviceInfo;
        MeterPlus: DeviceInfo;
        MeterPro: DeviceInfo;
        MeterProCO2: DeviceInfo;
        MotionSensor: DeviceInfo;
        OutdoorMeter: DeviceInfo;
        PlugMiniJP: DeviceInfo;
        PlugMiniUS: DeviceInfo;
        StripLight: DeviceInfo;
        Unknown: DeviceInfo;
    }

    Properties

    BlindTilt: DeviceInfo
    Bot: DeviceInfo
    CeilingLight: DeviceInfo
    CeilingLightPro: DeviceInfo
    ColorBulb: DeviceInfo
    ContactSensor: DeviceInfo
    Curtain: DeviceInfo
    Curtain3: DeviceInfo
    Hub2: DeviceInfo
    Humidifier: DeviceInfo
    Lock: DeviceInfo
    LockPro: DeviceInfo
    Meter: DeviceInfo
    MeterPlus: DeviceInfo
    MeterPro: DeviceInfo
    MeterProCO2: DeviceInfo
    MotionSensor: DeviceInfo
    OutdoorMeter: DeviceInfo
    PlugMiniJP: DeviceInfo
    PlugMiniUS: DeviceInfo
    StripLight: DeviceInfo
    Unknown: DeviceInfo
    +

    Properties

    BlindTilt: DeviceInfo
    Bot: DeviceInfo
    CeilingLight: DeviceInfo
    CeilingLightPro: DeviceInfo
    ColorBulb: DeviceInfo
    ContactSensor: DeviceInfo
    Curtain: DeviceInfo
    Curtain3: DeviceInfo
    Hub2: DeviceInfo
    Humidifier: DeviceInfo
    Lock: DeviceInfo
    LockPro: DeviceInfo
    Meter: DeviceInfo
    MeterPlus: DeviceInfo
    MeterPro: DeviceInfo
    MeterProCO2: DeviceInfo
    MotionSensor: DeviceInfo
    OutdoorMeter: DeviceInfo
    PlugMiniJP: DeviceInfo
    PlugMiniUS: DeviceInfo
    StripLight: DeviceInfo
    Unknown: DeviceInfo
    diff --git a/docs/interfaces/WebhookDetail.html b/docs/interfaces/WebhookDetail.html index 334e626c..3baea52c 100644 --- a/docs/interfaces/WebhookDetail.html +++ b/docs/interfaces/WebhookDetail.html @@ -1,6 +1,6 @@ -WebhookDetail | node-switchbot

    Interface WebhookDetail

    interface WebhookDetail {
        createTime: number;
        deviceList: string;
        enable: boolean;
        lastUpdateTime: number;
        url: string;
    }

    Properties

    createTime +WebhookDetail | node-switchbot

    Interface WebhookDetail

    interface WebhookDetail {
        createTime: number;
        deviceList: string;
        enable: boolean;
        lastUpdateTime: number;
        url: string;
    }

    Properties

    createTime: number
    deviceList: string
    enable: boolean
    lastUpdateTime: number
    url: string
    +

    Properties

    createTime: number
    deviceList: string
    enable: boolean
    lastUpdateTime: number
    url: string
    diff --git a/docs/interfaces/ad.html b/docs/interfaces/ad.html index dda8dca9..8a6c2ed6 100644 --- a/docs/interfaces/ad.html +++ b/docs/interfaces/ad.html @@ -1,5 +1,5 @@ -ad | node-switchbot

    Interface ad

    interface ad {
        address: string;
        id: string;
        rssi: number;
        serviceData:
            | botServiceData
            | colorBulbServiceData
            | contactSensorServiceData
            | curtainServiceData
            | curtain3ServiceData
            | stripLightServiceData
            | lockServiceData
            | lockProServiceData
            | meterServiceData
            | meterPlusServiceData
            | meterProServiceData
            | meterProCO2ServiceData
            | motionSensorServiceData
            | outdoorMeterServiceData
            | plugMiniUSServiceData
            | plugMiniJPServiceData
            | blindTiltServiceData
            | ceilingLightServiceData
            | ceilingLightProServiceData
            | hub2ServiceData
            | batteryCirculatorFanServiceData
            | waterLeakDetectorServiceData
            | humidifierServiceData
            | humidifier2ServiceData
            | robotVacuumCleanerServiceData
            | keypadDetectorServiceData
            | relaySwitch1PMServiceData
            | relaySwitch1ServiceData;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    address +ad | node-switchbot

    Interface ad

    interface ad {
        address: string;
        id: string;
        rssi: number;
        serviceData:
            | botServiceData
            | colorBulbServiceData
            | contactSensorServiceData
            | curtainServiceData
            | curtain3ServiceData
            | stripLightServiceData
            | lockServiceData
            | lockProServiceData
            | meterServiceData
            | meterPlusServiceData
            | meterProServiceData
            | meterProCO2ServiceData
            | motionSensorServiceData
            | outdoorMeterServiceData
            | plugMiniUSServiceData
            | plugMiniJPServiceData
            | blindTiltServiceData
            | ceilingLightServiceData
            | ceilingLightProServiceData
            | hub2ServiceData
            | batteryCirculatorFanServiceData
            | waterLeakDetectorServiceData
            | humidifierServiceData
            | humidifier2ServiceData
            | robotVacuumCleanerServiceData
            | keypadDetectorServiceData
            | relaySwitch1PMServiceData
            | relaySwitch1ServiceData;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown

    Properties

    address: string
    id: string
    rssi: number
    +

    Properties

    address: string
    id: string
    rssi: number
    diff --git a/docs/interfaces/body.html b/docs/interfaces/body.html index d299fe44..5c791aab 100644 --- a/docs/interfaces/body.html +++ b/docs/interfaces/body.html @@ -1,3 +1,3 @@ -body | node-switchbot

    Interface body

    interface body {
        deviceList: deviceList;
        infraredRemoteList: infraredRemoteList;
    }

    Properties

    deviceList +body | node-switchbot

    Interface body

    interface body {
        deviceList: deviceList;
        infraredRemoteList: infraredRemoteList;
    }

    Properties

    deviceList: deviceList
    infraredRemoteList: infraredRemoteList
    +

    Properties

    deviceList: deviceList
    infraredRemoteList: infraredRemoteList
    diff --git a/docs/interfaces/bodyChange.html b/docs/interfaces/bodyChange.html index 05a194b6..1f492a75 100644 --- a/docs/interfaces/bodyChange.html +++ b/docs/interfaces/bodyChange.html @@ -1,4 +1,4 @@ -bodyChange | node-switchbot

    Interface bodyChange

    interface bodyChange {
        command: string;
        commandType: string;
        parameter: string;
    }

    Properties

    command +bodyChange | node-switchbot

    Interface bodyChange

    interface bodyChange {
        command: string;
        commandType: string;
        parameter: string;
    }

    Properties

    command: string
    commandType: string
    parameter: string
    +

    Properties

    command: string
    commandType: string
    parameter: string
    diff --git a/docs/interfaces/deleteWebhookResponse.html b/docs/interfaces/deleteWebhookResponse.html index 0db27940..e2553ec5 100644 --- a/docs/interfaces/deleteWebhookResponse.html +++ b/docs/interfaces/deleteWebhookResponse.html @@ -1,4 +1,4 @@ -deleteWebhookResponse | node-switchbot

    Interface deleteWebhookResponse

    interface deleteWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    body +deleteWebhookResponse | node-switchbot

    Interface deleteWebhookResponse

    interface deleteWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: object
    message: string
    statusCode: number
    +

    Properties

    body: object
    message: string
    statusCode: number
    diff --git a/docs/interfaces/device.html b/docs/interfaces/device.html index 9a6cd58d..54e375cb 100644 --- a/docs/interfaces/device.html +++ b/docs/interfaces/device.html @@ -1,7 +1,7 @@ -device | node-switchbot

    Interface device

    interface device {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version?: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId +device | node-switchbot

    Interface device

    interface device {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version?: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version?: number
    +

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version?: number
    diff --git a/docs/interfaces/deviceList.html b/docs/interfaces/deviceList.html index 34f3767b..611af680 100644 --- a/docs/interfaces/deviceList.html +++ b/docs/interfaces/deviceList.html @@ -1,2 +1,2 @@ -deviceList | node-switchbot

    Interface deviceList

    interface deviceList {
        device: device[];
    }

    Properties

    Properties

    device: device[]
    +deviceList | node-switchbot

    Interface deviceList

    interface deviceList {
        device: device[];
    }

    Properties

    Properties

    device: device[]
    diff --git a/docs/interfaces/deviceStatus.html b/docs/interfaces/deviceStatus.html index ec5d8b85..511fee34 100644 --- a/docs/interfaces/deviceStatus.html +++ b/docs/interfaces/deviceStatus.html @@ -1,7 +1,7 @@ -deviceStatus | node-switchbot

    Interface deviceStatus

    interface deviceStatus {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId +deviceStatus | node-switchbot

    Interface deviceStatus

    interface deviceStatus {
        deviceId: string;
        deviceName: string;
        deviceType: string;
        enableCloudService: boolean;
        hubDeviceId: string;
        version: number;
    }

    Hierarchy (View Summary)

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version: number
    +

    Properties

    deviceId: string
    deviceName: string
    deviceType: string
    enableCloudService: boolean
    hubDeviceId: string
    version: number
    diff --git a/docs/interfaces/deviceStatusRequest.html b/docs/interfaces/deviceStatusRequest.html index 3688e347..c40ad340 100644 --- a/docs/interfaces/deviceStatusRequest.html +++ b/docs/interfaces/deviceStatusRequest.html @@ -1,4 +1,4 @@ -deviceStatusRequest | node-switchbot

    Interface deviceStatusRequest

    interface deviceStatusRequest {
        body: deviceStatus;
        message: string;
        statusCode: number;
    }

    Properties

    body +deviceStatusRequest | node-switchbot

    Interface deviceStatusRequest

    interface deviceStatusRequest {
        body: deviceStatus;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    message: string
    statusCode: number
    +

    Properties

    message: string
    statusCode: number
    diff --git a/docs/interfaces/deviceWebhook.html b/docs/interfaces/deviceWebhook.html index a56bfd34..78d20065 100644 --- a/docs/interfaces/deviceWebhook.html +++ b/docs/interfaces/deviceWebhook.html @@ -1,4 +1,4 @@ -deviceWebhook | node-switchbot

    Interface deviceWebhook

    interface deviceWebhook {
        context: deviceWebhookContext;
        eventType: string;
        eventVersion: string;
    }

    Properties

    context +deviceWebhook | node-switchbot

    Interface deviceWebhook

    interface deviceWebhook {
        context: deviceWebhookContext;
        eventType: string;
        eventVersion: string;
    }

    Properties

    eventType: string
    eventVersion: string
    +

    Properties

    eventType: string
    eventVersion: string
    diff --git a/docs/interfaces/deviceWebhookContext.html b/docs/interfaces/deviceWebhookContext.html index 3068fc1d..3adb4a34 100644 --- a/docs/interfaces/deviceWebhookContext.html +++ b/docs/interfaces/deviceWebhookContext.html @@ -1,4 +1,4 @@ -deviceWebhookContext | node-switchbot

    Interface deviceWebhookContext

    interface deviceWebhookContext {
        deviceMac: string;
        deviceType: string;
        timeOfSample: number;
    }

    Properties

    deviceMac +deviceWebhookContext | node-switchbot

    Interface deviceWebhookContext

    interface deviceWebhookContext {
        deviceMac: string;
        deviceType: string;
        timeOfSample: number;
    }

    Properties

    deviceMac: string
    deviceType: string
    timeOfSample: number
    +

    Properties

    deviceMac: string
    deviceType: string
    timeOfSample: number
    diff --git a/docs/interfaces/devices.html b/docs/interfaces/devices.html index 922e3743..be0d6f60 100644 --- a/docs/interfaces/devices.html +++ b/docs/interfaces/devices.html @@ -1,4 +1,4 @@ -devices | node-switchbot

    Interface devices

    interface devices {
        body: body;
        message: string;
        statusCode: number;
    }

    Properties

    body +devices | node-switchbot

    Interface devices

    interface devices {
        body: body;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: body
    message: string
    statusCode: number
    +

    Properties

    body: body
    message: string
    statusCode: number
    diff --git a/docs/interfaces/infraredRemoteList.html b/docs/interfaces/infraredRemoteList.html index 56545731..407482ad 100644 --- a/docs/interfaces/infraredRemoteList.html +++ b/docs/interfaces/infraredRemoteList.html @@ -1,2 +1,2 @@ -infraredRemoteList | node-switchbot

    Interface infraredRemoteList

    interface infraredRemoteList {
        device: irdevice[];
    }

    Properties

    Properties

    device: irdevice[]
    +infraredRemoteList | node-switchbot

    Interface infraredRemoteList

    interface infraredRemoteList {
        device: irdevice[];
    }

    Properties

    Properties

    device: irdevice[]
    diff --git a/docs/interfaces/irdevice.html b/docs/interfaces/irdevice.html index 2615eb5c..dc96b8d9 100644 --- a/docs/interfaces/irdevice.html +++ b/docs/interfaces/irdevice.html @@ -1,5 +1,5 @@ -irdevice | node-switchbot

    Interface irdevice

    interface irdevice {
        deviceId?: string;
        deviceName: string;
        hubDeviceId: string;
        remoteType: string;
    }

    Properties

    deviceId? +irdevice | node-switchbot

    Interface irdevice

    interface irdevice {
        deviceId?: string;
        deviceName: string;
        hubDeviceId: string;
        remoteType: string;
    }

    Properties

    deviceId?: string
    deviceName: string
    hubDeviceId: string
    remoteType: string
    +

    Properties

    deviceId?: string
    deviceName: string
    hubDeviceId: string
    remoteType: string
    diff --git a/docs/interfaces/pushResponse.html b/docs/interfaces/pushResponse.html index aa11207b..dc810dab 100644 --- a/docs/interfaces/pushResponse.html +++ b/docs/interfaces/pushResponse.html @@ -1,4 +1,4 @@ -pushResponse | node-switchbot

    Interface pushResponse

    interface pushResponse {
        body: { commandId: string };
        message: string;
        statusCode: number;
    }

    Properties

    body +pushResponse | node-switchbot

    Interface pushResponse

    interface pushResponse {
        body: { commandId: string };
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: { commandId: string }
    message: string
    statusCode: number
    +

    Properties

    body: { commandId: string }
    message: string
    statusCode: number
    diff --git a/docs/interfaces/queryWebhookResponse.html b/docs/interfaces/queryWebhookResponse.html index 2165beb8..d942cedb 100644 --- a/docs/interfaces/queryWebhookResponse.html +++ b/docs/interfaces/queryWebhookResponse.html @@ -1,4 +1,4 @@ -queryWebhookResponse | node-switchbot

    Interface queryWebhookResponse

    interface queryWebhookResponse {
        body: WebhookDetail[];
        message: string;
        statusCode: number;
    }

    Properties

    body +queryWebhookResponse | node-switchbot

    Interface queryWebhookResponse

    interface queryWebhookResponse {
        body: WebhookDetail[];
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    message: string
    statusCode: number
    +

    Properties

    message: string
    statusCode: number
    diff --git a/docs/interfaces/setupWebhookResponse.html b/docs/interfaces/setupWebhookResponse.html index 481a7aa2..8dec7143 100644 --- a/docs/interfaces/setupWebhookResponse.html +++ b/docs/interfaces/setupWebhookResponse.html @@ -1,4 +1,4 @@ -setupWebhookResponse | node-switchbot

    Interface setupWebhookResponse

    interface setupWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    body +setupWebhookResponse | node-switchbot

    Interface setupWebhookResponse

    interface setupWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: object
    message: string
    statusCode: number
    +

    Properties

    body: object
    message: string
    statusCode: number
    diff --git a/docs/interfaces/switchbot.html b/docs/interfaces/switchbot.html index 823d9360..81611dee 100644 --- a/docs/interfaces/switchbot.html +++ b/docs/interfaces/switchbot.html @@ -1,3 +1,3 @@ -switchbot | node-switchbot

    Interface switchbot

    interface switchbot {
        discover: (
            arg0: { duration?: any; id?: string; model: string; quick: boolean },
        ) => Promise<any>;
        wait: (arg0: number) => any;
    }

    Properties

    discover +switchbot | node-switchbot

    Interface switchbot

    interface switchbot {
        discover: (
            arg0: { duration?: any; id?: string; model: string; quick: boolean },
        ) => Promise<any>;
        wait: (arg0: number) => any;
    }

    Properties

    Properties

    discover: (
        arg0: { duration?: any; id?: string; model: string; quick: boolean },
    ) => Promise<any>
    wait: (arg0: number) => any
    +

    Properties

    discover: (
        arg0: { duration?: any; id?: string; model: string; quick: boolean },
    ) => Promise<any>
    wait: (arg0: number) => any
    diff --git a/docs/interfaces/updateWebhookResponse.html b/docs/interfaces/updateWebhookResponse.html index 8ea23ee3..cddcb6ea 100644 --- a/docs/interfaces/updateWebhookResponse.html +++ b/docs/interfaces/updateWebhookResponse.html @@ -1,4 +1,4 @@ -updateWebhookResponse | node-switchbot

    Interface updateWebhookResponse

    interface updateWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    body +updateWebhookResponse | node-switchbot

    Interface updateWebhookResponse

    interface updateWebhookResponse {
        body: object;
        message: string;
        statusCode: number;
    }

    Properties

    Properties

    body: object
    message: string
    statusCode: number
    +

    Properties

    body: object
    message: string
    statusCode: number
    diff --git a/docs/interfaces/webhookRequest.html b/docs/interfaces/webhookRequest.html index 6f943cfe..8fa12099 100644 --- a/docs/interfaces/webhookRequest.html +++ b/docs/interfaces/webhookRequest.html @@ -1,4 +1,4 @@ -webhookRequest | node-switchbot

    Interface webhookRequest

    interface webhookRequest {
        action: string;
        deviceList: string;
        url: string;
    }

    Properties

    action +webhookRequest | node-switchbot

    Interface webhookRequest

    interface webhookRequest {
        action: string;
        deviceList: string;
        url: string;
    }

    Properties

    Properties

    action: string
    deviceList: string
    url: string
    +

    Properties

    action: string
    deviceList: string
    url: string
    diff --git a/docs/types/MacAddress.html b/docs/types/MacAddress.html index f1a8d355..8c35e06d 100644 --- a/docs/types/MacAddress.html +++ b/docs/types/MacAddress.html @@ -1 +1 @@ -MacAddress | node-switchbot

    Type Alias MacAddress

    MacAddress: string
    +MacAddress | node-switchbot

    Type Alias MacAddress

    MacAddress: string
    diff --git a/docs/types/batteryCirculatorFan.html b/docs/types/batteryCirculatorFan.html index ddbc6dcf..50bc5af6 100644 --- a/docs/types/batteryCirculatorFan.html +++ b/docs/types/batteryCirculatorFan.html @@ -1 +1 @@ -batteryCirculatorFan | node-switchbot

    Type Alias batteryCirculatorFan

    batteryCirculatorFan: device & {}
    +batteryCirculatorFan | node-switchbot

    Type Alias batteryCirculatorFan

    batteryCirculatorFan: device & {}
    diff --git a/docs/types/batteryCirculatorFanServiceData.html b/docs/types/batteryCirculatorFanServiceData.html index d46f190a..2ce3b86d 100644 --- a/docs/types/batteryCirculatorFanServiceData.html +++ b/docs/types/batteryCirculatorFanServiceData.html @@ -1 +1 @@ -batteryCirculatorFanServiceData | node-switchbot

    Type Alias batteryCirculatorFanServiceData

    batteryCirculatorFanServiceData: serviceData & {
        fanSpeed: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    +batteryCirculatorFanServiceData | node-switchbot

    Type Alias batteryCirculatorFanServiceData

    batteryCirculatorFanServiceData: serviceData & {
        fanSpeed: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    diff --git a/docs/types/batteryCirculatorFanStatus.html b/docs/types/batteryCirculatorFanStatus.html index 43a1d8de..3d4b116a 100644 --- a/docs/types/batteryCirculatorFanStatus.html +++ b/docs/types/batteryCirculatorFanStatus.html @@ -1 +1 @@ -batteryCirculatorFanStatus | node-switchbot

    Type Alias batteryCirculatorFanStatus

    batteryCirculatorFanStatus: deviceStatus & {
        battery: number;
        chargingStatus: string;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    +batteryCirculatorFanStatus | node-switchbot

    Type Alias batteryCirculatorFanStatus

    batteryCirculatorFanStatus: deviceStatus & {
        battery: number;
        chargingStatus: string;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    diff --git a/docs/types/batteryCirculatorFanWebhookContext.html b/docs/types/batteryCirculatorFanWebhookContext.html index c626ae67..8395c0a6 100644 --- a/docs/types/batteryCirculatorFanWebhookContext.html +++ b/docs/types/batteryCirculatorFanWebhookContext.html @@ -1 +1 @@ -batteryCirculatorFanWebhookContext | node-switchbot

    Type Alias batteryCirculatorFanWebhookContext

    batteryCirculatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        chargingStatus: "charging" | "uncharged";
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    +batteryCirculatorFanWebhookContext | node-switchbot

    Type Alias batteryCirculatorFanWebhookContext

    batteryCirculatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        chargingStatus: "charging" | "uncharged";
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    diff --git a/docs/types/blindTilt.html b/docs/types/blindTilt.html index a2e6bd0b..b5b6812c 100644 --- a/docs/types/blindTilt.html +++ b/docs/types/blindTilt.html @@ -1 +1 @@ -blindTilt | node-switchbot

    Type Alias blindTilt

    blindTilt: device & {
        blindTiltDevicesIds: string[];
        calibrate: boolean;
        direction: string;
        group: boolean;
        master: boolean;
        slidePosition: number;
    }
    +blindTilt | node-switchbot

    Type Alias blindTilt

    blindTilt: device & {
        blindTiltDevicesIds: string[];
        calibrate: boolean;
        direction: string;
        group: boolean;
        master: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/blindTiltServiceData.html b/docs/types/blindTiltServiceData.html index 52e1ef2f..59fc8a49 100644 --- a/docs/types/blindTiltServiceData.html +++ b/docs/types/blindTiltServiceData.html @@ -1 +1 @@ -blindTiltServiceData | node-switchbot

    Type Alias blindTiltServiceData

    blindTiltServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        inMotion: boolean;
        lightLevel: number;
        model: BlindTilt;
        modelFriendlyName: BlindTilt;
        modelName: BlindTilt;
        sequenceNumber: number;
        tilt: number;
    }
    +blindTiltServiceData | node-switchbot

    Type Alias blindTiltServiceData

    blindTiltServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        inMotion: boolean;
        lightLevel: number;
        model: BlindTilt;
        modelFriendlyName: BlindTilt;
        modelName: BlindTilt;
        sequenceNumber: number;
        tilt: number;
    }
    diff --git a/docs/types/blindTiltStatus.html b/docs/types/blindTiltStatus.html index 7973018b..8d86731a 100644 --- a/docs/types/blindTiltStatus.html +++ b/docs/types/blindTiltStatus.html @@ -1 +1 @@ -blindTiltStatus | node-switchbot

    Type Alias blindTiltStatus

    blindTiltStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        direction: string;
        lightLevel?: "bright" | "dim";
        slidePosition: string;
    }
    +blindTiltStatus | node-switchbot

    Type Alias blindTiltStatus

    blindTiltStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        direction: string;
        lightLevel?: "bright" | "dim";
        slidePosition: string;
    }
    diff --git a/docs/types/blindTiltWebhookContext.html b/docs/types/blindTiltWebhookContext.html index 25ba1b0d..6d46e7b2 100644 --- a/docs/types/blindTiltWebhookContext.html +++ b/docs/types/blindTiltWebhookContext.html @@ -1 +1 @@ -blindTiltWebhookContext | node-switchbot

    Type Alias blindTiltWebhookContext

    blindTiltWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        direction: string;
        group: boolean;
        slidePosition: number;
        version: string;
    }
    +blindTiltWebhookContext | node-switchbot

    Type Alias blindTiltWebhookContext

    blindTiltWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        direction: string;
        group: boolean;
        slidePosition: number;
        version: string;
    }
    diff --git a/docs/types/bot.html b/docs/types/bot.html index ef2dcc91..d77c81b2 100644 --- a/docs/types/bot.html +++ b/docs/types/bot.html @@ -1 +1 @@ -bot | node-switchbot

    Type Alias bot

    bot: device & {}
    +bot | node-switchbot

    Type Alias bot

    bot: device & {}
    diff --git a/docs/types/botServiceData.html b/docs/types/botServiceData.html index a9b59501..2af530c3 100644 --- a/docs/types/botServiceData.html +++ b/docs/types/botServiceData.html @@ -1 +1 @@ -botServiceData | node-switchbot

    Type Alias botServiceData

    botServiceData: serviceData & {
        battery: number;
        mode: boolean;
        model: Bot;
        modelFriendlyName: Bot;
        modelName: Bot;
        state: boolean;
    }
    +botServiceData | node-switchbot

    Type Alias botServiceData

    botServiceData: serviceData & {
        battery: number;
        mode: boolean;
        model: Bot;
        modelFriendlyName: Bot;
        modelName: Bot;
        state: boolean;
    }
    diff --git a/docs/types/botStatus.html b/docs/types/botStatus.html index 6efff0c4..092928da 100644 --- a/docs/types/botStatus.html +++ b/docs/types/botStatus.html @@ -1 +1 @@ -botStatus | node-switchbot

    Type Alias botStatus

    botStatus: deviceStatus & {
        battery: number;
        mode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    +botStatus | node-switchbot

    Type Alias botStatus

    botStatus: deviceStatus & {
        battery: number;
        mode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    diff --git a/docs/types/botWebhookContext.html b/docs/types/botWebhookContext.html index 1484abb0..bdcf84e0 100644 --- a/docs/types/botWebhookContext.html +++ b/docs/types/botWebhookContext.html @@ -1 +1 @@ -botWebhookContext | node-switchbot

    Type Alias botWebhookContext

    botWebhookContext: deviceWebhookContext & {
        battery: number;
        deviceMode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    +botWebhookContext | node-switchbot

    Type Alias botWebhookContext

    botWebhookContext: deviceWebhookContext & {
        battery: number;
        deviceMode: "pressMode" | "switchMode" | "customizeMode";
        power: string;
    }
    diff --git a/docs/types/ceilingLight.html b/docs/types/ceilingLight.html index 39e0361b..022b8bc6 100644 --- a/docs/types/ceilingLight.html +++ b/docs/types/ceilingLight.html @@ -1 +1 @@ -ceilingLight | node-switchbot

    Type Alias ceilingLight

    ceilingLight: device & {}
    +ceilingLight | node-switchbot

    Type Alias ceilingLight

    ceilingLight: device & {}
    diff --git a/docs/types/ceilingLightPro.html b/docs/types/ceilingLightPro.html index ce6d8f0e..c56f0ebb 100644 --- a/docs/types/ceilingLightPro.html +++ b/docs/types/ceilingLightPro.html @@ -1 +1 @@ -ceilingLightPro | node-switchbot

    Type Alias ceilingLightPro

    ceilingLightPro: device & {}
    +ceilingLightPro | node-switchbot

    Type Alias ceilingLightPro

    ceilingLightPro: device & {}
    diff --git a/docs/types/ceilingLightProServiceData.html b/docs/types/ceilingLightProServiceData.html index 678fcb2a..697562ce 100644 --- a/docs/types/ceilingLightProServiceData.html +++ b/docs/types/ceilingLightProServiceData.html @@ -1 +1 @@ -ceilingLightProServiceData | node-switchbot

    Type Alias ceilingLightProServiceData

    ceilingLightProServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLightPro;
        modelFriendlyName: CeilingLightPro;
        modelName: CeilingLightPro;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +ceilingLightProServiceData | node-switchbot

    Type Alias ceilingLightProServiceData

    ceilingLightProServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLightPro;
        modelFriendlyName: CeilingLightPro;
        modelName: CeilingLightPro;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/ceilingLightProStatus.html b/docs/types/ceilingLightProStatus.html index 98c180e4..d2932969 100644 --- a/docs/types/ceilingLightProStatus.html +++ b/docs/types/ceilingLightProStatus.html @@ -1 +1 @@ -ceilingLightProStatus | node-switchbot

    Type Alias ceilingLightProStatus

    ceilingLightProStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    +ceilingLightProStatus | node-switchbot

    Type Alias ceilingLightProStatus

    ceilingLightProStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    diff --git a/docs/types/ceilingLightProWebhookContext.html b/docs/types/ceilingLightProWebhookContext.html index e866f802..a64c1d29 100644 --- a/docs/types/ceilingLightProWebhookContext.html +++ b/docs/types/ceilingLightProWebhookContext.html @@ -1 +1 @@ -ceilingLightProWebhookContext | node-switchbot

    Type Alias ceilingLightProWebhookContext

    ceilingLightProWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    +ceilingLightProWebhookContext | node-switchbot

    Type Alias ceilingLightProWebhookContext

    ceilingLightProWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/ceilingLightServiceData.html b/docs/types/ceilingLightServiceData.html index 86d156f8..4d69361b 100644 --- a/docs/types/ceilingLightServiceData.html +++ b/docs/types/ceilingLightServiceData.html @@ -1 +1 @@ -ceilingLightServiceData | node-switchbot

    Type Alias ceilingLightServiceData

    ceilingLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLight;
        modelFriendlyName: CeilingLight;
        modelName: CeilingLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +ceilingLightServiceData | node-switchbot

    Type Alias ceilingLightServiceData

    ceilingLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: CeilingLight;
        modelFriendlyName: CeilingLight;
        modelName: CeilingLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/ceilingLightStatus.html b/docs/types/ceilingLightStatus.html index 86735194..2a971e47 100644 --- a/docs/types/ceilingLightStatus.html +++ b/docs/types/ceilingLightStatus.html @@ -1 +1 @@ -ceilingLightStatus | node-switchbot

    Type Alias ceilingLightStatus

    ceilingLightStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    +ceilingLightStatus | node-switchbot

    Type Alias ceilingLightStatus

    ceilingLightStatus: deviceStatus & {
        brightness: number;
        colorTemperature: number;
        power: boolean;
    }
    diff --git a/docs/types/ceilingLightWebhookContext.html b/docs/types/ceilingLightWebhookContext.html index b2bee6b5..c48588df 100644 --- a/docs/types/ceilingLightWebhookContext.html +++ b/docs/types/ceilingLightWebhookContext.html @@ -1 +1 @@ -ceilingLightWebhookContext | node-switchbot

    Type Alias ceilingLightWebhookContext

    ceilingLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    +ceilingLightWebhookContext | node-switchbot

    Type Alias ceilingLightWebhookContext

    ceilingLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/circulatorFanStatus.html b/docs/types/circulatorFanStatus.html index dc7b297e..c70b445f 100644 --- a/docs/types/circulatorFanStatus.html +++ b/docs/types/circulatorFanStatus.html @@ -1 +1 @@ -circulatorFanStatus | node-switchbot

    Type Alias circulatorFanStatus

    circulatorFanStatus: deviceStatus & {
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    +circulatorFanStatus | node-switchbot

    Type Alias circulatorFanStatus

    circulatorFanStatus: deviceStatus & {
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: number;
        oscillation: string;
        power: string;
        version: string;
        verticalOscillation: string;
    }
    diff --git a/docs/types/circulatorFanWebhookContext.html b/docs/types/circulatorFanWebhookContext.html index 1976de8e..e2acb10a 100644 --- a/docs/types/circulatorFanWebhookContext.html +++ b/docs/types/circulatorFanWebhookContext.html @@ -1 +1 @@ -circulatorFanWebhookContext | node-switchbot

    Type Alias circulatorFanWebhookContext

    circulatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    +circulatorFanWebhookContext | node-switchbot

    Type Alias circulatorFanWebhookContext

    circulatorFanWebhookContext: deviceWebhookContext & {
        battery: number;
        fanSpeed: number;
        mode: "direct" | "natural" | "sleep" | "baby";
        nightStatus: "off" | 1 | 2;
        oscillation: "on" | "off";
        powerState: "ON" | "OFF";
        version: string;
        verticalOscillation: "on" | "off";
    }
    diff --git a/docs/types/colorBulb.html b/docs/types/colorBulb.html index 32605953..e60f250f 100644 --- a/docs/types/colorBulb.html +++ b/docs/types/colorBulb.html @@ -1 +1 @@ -colorBulb | node-switchbot

    Type Alias colorBulb

    colorBulb: device & {}
    +colorBulb | node-switchbot

    Type Alias colorBulb

    colorBulb: device & {}
    diff --git a/docs/types/colorBulbServiceData.html b/docs/types/colorBulbServiceData.html index bff0b100..8c142d48 100644 --- a/docs/types/colorBulbServiceData.html +++ b/docs/types/colorBulbServiceData.html @@ -1 +1 @@ -colorBulbServiceData | node-switchbot

    Type Alias colorBulbServiceData

    colorBulbServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: ColorBulb;
        modelFriendlyName: ColorBulb;
        modelName: ColorBulb;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +colorBulbServiceData | node-switchbot

    Type Alias colorBulbServiceData

    colorBulbServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        color_temperature: number;
        delay: number;
        green: number;
        loop_index: number;
        model: ColorBulb;
        modelFriendlyName: ColorBulb;
        modelName: ColorBulb;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/colorBulbStatus.html b/docs/types/colorBulbStatus.html index b18a6a9f..d57088c4 100644 --- a/docs/types/colorBulbStatus.html +++ b/docs/types/colorBulbStatus.html @@ -1 +1 @@ -colorBulbStatus | node-switchbot

    Type Alias colorBulbStatus

    colorBulbStatus: deviceStatus & {
        brightness: number;
        color: string;
        colorTemperature: number;
        power: string;
    }
    +colorBulbStatus | node-switchbot

    Type Alias colorBulbStatus

    colorBulbStatus: deviceStatus & {
        brightness: number;
        color: string;
        colorTemperature: number;
        power: string;
    }
    diff --git a/docs/types/colorBulbWebhookContext.html b/docs/types/colorBulbWebhookContext.html index a2d26f7b..86f02490 100644 --- a/docs/types/colorBulbWebhookContext.html +++ b/docs/types/colorBulbWebhookContext.html @@ -1 +1 @@ -colorBulbWebhookContext | node-switchbot

    Type Alias colorBulbWebhookContext

    colorBulbWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    +colorBulbWebhookContext | node-switchbot

    Type Alias colorBulbWebhookContext

    colorBulbWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        colorTemperature: number;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/contactSensor.html b/docs/types/contactSensor.html index a7dbc8aa..05a9172f 100644 --- a/docs/types/contactSensor.html +++ b/docs/types/contactSensor.html @@ -1 +1 @@ -contactSensor | node-switchbot

    Type Alias contactSensor

    contactSensor: device & {}
    +contactSensor | node-switchbot

    Type Alias contactSensor

    contactSensor: device & {}
    diff --git a/docs/types/contactSensorServiceData.html b/docs/types/contactSensorServiceData.html index 76c0f2dd..89ce6367 100644 --- a/docs/types/contactSensorServiceData.html +++ b/docs/types/contactSensorServiceData.html @@ -1 +1 @@ -contactSensorServiceData | node-switchbot

    Type Alias contactSensorServiceData

    contactSensorServiceData: serviceData & {
        battery: number;
        button_count: number;
        contact_open: boolean;
        contact_timeout: boolean;
        doorState: string;
        lightLevel: string;
        model: ContactSensor;
        modelFriendlyName: ContactSensor;
        modelName: ContactSensor;
        movement: boolean;
        tested: boolean;
    }
    +contactSensorServiceData | node-switchbot

    Type Alias contactSensorServiceData

    contactSensorServiceData: serviceData & {
        battery: number;
        button_count: number;
        contact_open: boolean;
        contact_timeout: boolean;
        doorState: string;
        lightLevel: string;
        model: ContactSensor;
        modelFriendlyName: ContactSensor;
        modelName: ContactSensor;
        movement: boolean;
        tested: boolean;
    }
    diff --git a/docs/types/contactSensorStatus.html b/docs/types/contactSensorStatus.html index e51b54bd..a7ab7e33 100644 --- a/docs/types/contactSensorStatus.html +++ b/docs/types/contactSensorStatus.html @@ -1 +1 @@ -contactSensorStatus | node-switchbot

    Type Alias contactSensorStatus

    contactSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
        openState: "open" | "close" | "timeOutNotClose";
    }
    +contactSensorStatus | node-switchbot

    Type Alias contactSensorStatus

    contactSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
        openState: "open" | "close" | "timeOutNotClose";
    }
    diff --git a/docs/types/contactSensorWebhookContext.html b/docs/types/contactSensorWebhookContext.html index a2ef17d1..095a6b08 100644 --- a/docs/types/contactSensorWebhookContext.html +++ b/docs/types/contactSensorWebhookContext.html @@ -1 +1 @@ -contactSensorWebhookContext | node-switchbot

    Type Alias contactSensorWebhookContext

    contactSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        brightness: "dim" | "bright";
        detectionState: "NOT_DETECTED" | "DETECTED";
        doorMode: "IN_DOOR" | "OUT_DOOR";
        openState: "open" | "close" | "timeOutNotClose";
    }
    +contactSensorWebhookContext | node-switchbot

    Type Alias contactSensorWebhookContext

    contactSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        brightness: "dim" | "bright";
        detectionState: "NOT_DETECTED" | "DETECTED";
        doorMode: "IN_DOOR" | "OUT_DOOR";
        openState: "open" | "close" | "timeOutNotClose";
    }
    diff --git a/docs/types/curtain.html b/docs/types/curtain.html index eb5dfbe8..a69436b2 100644 --- a/docs/types/curtain.html +++ b/docs/types/curtain.html @@ -1 +1 @@ -curtain | node-switchbot

    Type Alias curtain

    curtain: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection: string;
    }
    +curtain | node-switchbot

    Type Alias curtain

    curtain: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection: string;
    }
    diff --git a/docs/types/curtain3.html b/docs/types/curtain3.html index d58376d0..eb83509b 100644 --- a/docs/types/curtain3.html +++ b/docs/types/curtain3.html @@ -1 +1 @@ -curtain3 | node-switchbot

    Type Alias curtain3

    curtain3: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection?: string;
    }
    +curtain3 | node-switchbot

    Type Alias curtain3

    curtain3: device & {
        calibrate: boolean;
        curtainDevicesIds: string[];
        group: boolean;
        master: boolean;
        openDirection?: string;
    }
    diff --git a/docs/types/curtain3ServiceData.html b/docs/types/curtain3ServiceData.html index 580e6a9a..a27f148f 100644 --- a/docs/types/curtain3ServiceData.html +++ b/docs/types/curtain3ServiceData.html @@ -1 +1 @@ -curtain3ServiceData | node-switchbot

    Type Alias curtain3ServiceData

    curtain3ServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain3;
        modelFriendlyName: Curtain3;
        modelName: Curtain3;
        position: number;
    }
    +curtain3ServiceData | node-switchbot

    Type Alias curtain3ServiceData

    curtain3ServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain3;
        modelFriendlyName: Curtain3;
        modelName: Curtain3;
        position: number;
    }
    diff --git a/docs/types/curtain3WebhookContext.html b/docs/types/curtain3WebhookContext.html index 00298c0f..942276e7 100644 --- a/docs/types/curtain3WebhookContext.html +++ b/docs/types/curtain3WebhookContext.html @@ -1 +1 @@ -curtain3WebhookContext | node-switchbot

    Type Alias curtain3WebhookContext

    curtain3WebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    +curtain3WebhookContext | node-switchbot

    Type Alias curtain3WebhookContext

    curtain3WebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/curtainServiceData.html b/docs/types/curtainServiceData.html index bb0126ed..27e05240 100644 --- a/docs/types/curtainServiceData.html +++ b/docs/types/curtainServiceData.html @@ -1 +1 @@ -curtainServiceData | node-switchbot

    Type Alias curtainServiceData

    curtainServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain;
        modelFriendlyName: Curtain;
        modelName: Curtain;
        position: number;
    }
    +curtainServiceData | node-switchbot

    Type Alias curtainServiceData

    curtainServiceData: serviceData & {
        battery: number;
        calibration: boolean;
        deviceChain: number;
        inMotion: boolean;
        lightLevel: number;
        model: Curtain;
        modelFriendlyName: Curtain;
        modelName: Curtain;
        position: number;
    }
    diff --git a/docs/types/curtainStatus.html b/docs/types/curtainStatus.html index 4929628f..77bc84e2 100644 --- a/docs/types/curtainStatus.html +++ b/docs/types/curtainStatus.html @@ -1 +1 @@ -curtainStatus | node-switchbot

    Type Alias curtainStatus

    curtainStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        lightLevel?: "bright" | "dim";
        moving: boolean;
        slidePosition: number;
    }
    +curtainStatus | node-switchbot

    Type Alias curtainStatus

    curtainStatus: deviceStatus & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        lightLevel?: "bright" | "dim";
        moving: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/curtainWebhookContext.html b/docs/types/curtainWebhookContext.html index bb06d136..be133d5f 100644 --- a/docs/types/curtainWebhookContext.html +++ b/docs/types/curtainWebhookContext.html @@ -1 +1 @@ -curtainWebhookContext | node-switchbot

    Type Alias curtainWebhookContext

    curtainWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    +curtainWebhookContext | node-switchbot

    Type Alias curtainWebhookContext

    curtainWebhookContext: deviceWebhookContext & {
        battery: number;
        calibrate: boolean;
        group: boolean;
        slidePosition: number;
    }
    diff --git a/docs/types/floorCleaningRobotS10.html b/docs/types/floorCleaningRobotS10.html index 485fbc11..d88ec17d 100644 --- a/docs/types/floorCleaningRobotS10.html +++ b/docs/types/floorCleaningRobotS10.html @@ -1 +1 @@ -floorCleaningRobotS10 | node-switchbot

    Type Alias floorCleaningRobotS10

    floorCleaningRobotS10: device & {}
    +floorCleaningRobotS10 | node-switchbot

    Type Alias floorCleaningRobotS10

    floorCleaningRobotS10: device & {}
    diff --git a/docs/types/floorCleaningRobotS10Status.html b/docs/types/floorCleaningRobotS10Status.html index b27aec43..897c4249 100644 --- a/docs/types/floorCleaningRobotS10Status.html +++ b/docs/types/floorCleaningRobotS10Status.html @@ -1 +1 @@ -floorCleaningRobotS10Status | node-switchbot

    Type Alias floorCleaningRobotS10Status

    floorCleaningRobotS10Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        taskType: string;
        waterBaseBattery: number;
        workingStatus: string;
    }
    +floorCleaningRobotS10Status | node-switchbot

    Type Alias floorCleaningRobotS10Status

    floorCleaningRobotS10Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        taskType: string;
        waterBaseBattery: number;
        workingStatus: string;
    }
    diff --git a/docs/types/floorCleaningRobotS10WebhookContext.html b/docs/types/floorCleaningRobotS10WebhookContext.html index d6a640b3..54376e3d 100644 --- a/docs/types/floorCleaningRobotS10WebhookContext.html +++ b/docs/types/floorCleaningRobotS10WebhookContext.html @@ -1 +1 @@ -floorCleaningRobotS10WebhookContext | node-switchbot

    Type Alias floorCleaningRobotS10WebhookContext

    floorCleaningRobotS10WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        taskType:
            | "standBy"
            | "explore"
            | "cleanAll"
            | "cleanArea"
            | "cleanRoom"
            | "fillWater"
            | "deepWashing"
            | "backToCharge"
            | "markingWaterBase"
            | "drying"
            | "collectDust"
            | "remoteControl"
            | "cleanWithExplorer"
            | "fillWaterForHumi"
            | "markingHumi";
        waterBaseBattery: number;
        workingStatus: | "Standby"
        | "Clearing"
        | "Paused"
        | "GotoChargeBase"
        | "Charging"
        | "ChargeDone"
        | "Dormant"
        | "InTrouble"
        | "InRemoteControl"
        | "InDustCollecting";
    }
    +floorCleaningRobotS10WebhookContext | node-switchbot

    Type Alias floorCleaningRobotS10WebhookContext

    floorCleaningRobotS10WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        taskType:
            | "standBy"
            | "explore"
            | "cleanAll"
            | "cleanArea"
            | "cleanRoom"
            | "fillWater"
            | "deepWashing"
            | "backToCharge"
            | "markingWaterBase"
            | "drying"
            | "collectDust"
            | "remoteControl"
            | "cleanWithExplorer"
            | "fillWaterForHumi"
            | "markingHumi";
        waterBaseBattery: number;
        workingStatus: | "Standby"
        | "Clearing"
        | "Paused"
        | "GotoChargeBase"
        | "Charging"
        | "ChargeDone"
        | "Dormant"
        | "InTrouble"
        | "InRemoteControl"
        | "InDustCollecting";
    }
    diff --git a/docs/types/hub2.html b/docs/types/hub2.html index 7060cc5d..25c835bf 100644 --- a/docs/types/hub2.html +++ b/docs/types/hub2.html @@ -1 +1 @@ -hub2 | node-switchbot

    Type Alias hub2

    hub2: device & {}
    +hub2 | node-switchbot

    Type Alias hub2

    hub2: device & {}
    diff --git a/docs/types/hub2ServiceData.html b/docs/types/hub2ServiceData.html index 9b085a5f..0bcda1ec 100644 --- a/docs/types/hub2ServiceData.html +++ b/docs/types/hub2ServiceData.html @@ -1 +1 @@ -hub2ServiceData | node-switchbot

    Type Alias hub2ServiceData

    hub2ServiceData: serviceData & {
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        lightLevel: number;
        model: Hub2;
        modelFriendlyName: Hub2;
        modelName: Hub2;
    }
    +hub2ServiceData | node-switchbot

    Type Alias hub2ServiceData

    hub2ServiceData: serviceData & {
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        lightLevel: number;
        model: Hub2;
        modelFriendlyName: Hub2;
        modelName: Hub2;
    }
    diff --git a/docs/types/hub2Status.html b/docs/types/hub2Status.html index 7856087c..3042526b 100644 --- a/docs/types/hub2Status.html +++ b/docs/types/hub2Status.html @@ -1 +1 @@ -hub2Status | node-switchbot

    Type Alias hub2Status

    hub2Status: deviceStatus & {
        humidity: number;
        lightLevel: number;
        temperature: number;
    }
    +hub2Status | node-switchbot

    Type Alias hub2Status

    hub2Status: deviceStatus & {
        humidity: number;
        lightLevel: number;
        temperature: number;
    }
    diff --git a/docs/types/hub2WebhookContext.html b/docs/types/hub2WebhookContext.html index 513c1bd2..a18f4e08 100644 --- a/docs/types/hub2WebhookContext.html +++ b/docs/types/hub2WebhookContext.html @@ -1 +1 @@ -hub2WebhookContext | node-switchbot

    Type Alias hub2WebhookContext

    hub2WebhookContext: deviceWebhookContext & {
        humidity: number;
        lightLevel: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +hub2WebhookContext | node-switchbot

    Type Alias hub2WebhookContext

    hub2WebhookContext: deviceWebhookContext & {
        humidity: number;
        lightLevel: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/humidifier.html b/docs/types/humidifier.html index 5dbdff00..059b8b15 100644 --- a/docs/types/humidifier.html +++ b/docs/types/humidifier.html @@ -1 +1 @@ -humidifier | node-switchbot

    Type Alias humidifier

    humidifier: device & {}
    +humidifier | node-switchbot

    Type Alias humidifier

    humidifier: device & {}
    diff --git a/docs/types/humidifier2ServiceData.html b/docs/types/humidifier2ServiceData.html index 8b4d4e73..1e065e07 100644 --- a/docs/types/humidifier2ServiceData.html +++ b/docs/types/humidifier2ServiceData.html @@ -1 +1 @@ -humidifier2ServiceData | node-switchbot

    Type Alias humidifier2ServiceData

    humidifier2ServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier2;
        modelFriendlyName: Humidifier2;
        modelName: Humidifier2;
        onState: boolean;
        percentage: number;
    }
    +humidifier2ServiceData | node-switchbot

    Type Alias humidifier2ServiceData

    humidifier2ServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier2;
        modelFriendlyName: Humidifier2;
        modelName: Humidifier2;
        onState: boolean;
        percentage: number;
    }
    diff --git a/docs/types/humidifier2Status.html b/docs/types/humidifier2Status.html index ac5383a8..484c4bce 100644 --- a/docs/types/humidifier2Status.html +++ b/docs/types/humidifier2Status.html @@ -1 +1 @@ -humidifier2Status | node-switchbot

    Type Alias humidifier2Status

    humidifier2Status: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    +humidifier2Status | node-switchbot

    Type Alias humidifier2Status

    humidifier2Status: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    diff --git a/docs/types/humidifier2WebhookContext.html b/docs/types/humidifier2WebhookContext.html index 810591ee..fca16f0c 100644 --- a/docs/types/humidifier2WebhookContext.html +++ b/docs/types/humidifier2WebhookContext.html @@ -1 +1 @@ -humidifier2WebhookContext | node-switchbot

    Type Alias humidifier2WebhookContext

    humidifier2WebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +humidifier2WebhookContext | node-switchbot

    Type Alias humidifier2WebhookContext

    humidifier2WebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/humidifierServiceData.html b/docs/types/humidifierServiceData.html index 04f7d7c3..b71d25fa 100644 --- a/docs/types/humidifierServiceData.html +++ b/docs/types/humidifierServiceData.html @@ -1 +1 @@ -humidifierServiceData | node-switchbot

    Type Alias humidifierServiceData

    humidifierServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier;
        modelFriendlyName: Humidifier;
        modelName: Humidifier;
        onState: boolean;
        percentage: number;
    }
    +humidifierServiceData | node-switchbot

    Type Alias humidifierServiceData

    humidifierServiceData: serviceData & {
        autoMode: boolean;
        humidity: number;
        model: Humidifier;
        modelFriendlyName: Humidifier;
        modelName: Humidifier;
        onState: boolean;
        percentage: number;
    }
    diff --git a/docs/types/humidifierStatus.html b/docs/types/humidifierStatus.html index c4364c75..81aaae0b 100644 --- a/docs/types/humidifierStatus.html +++ b/docs/types/humidifierStatus.html @@ -1 +1 @@ -humidifierStatus | node-switchbot

    Type Alias humidifierStatus

    humidifierStatus: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    +humidifierStatus | node-switchbot

    Type Alias humidifierStatus

    humidifierStatus: deviceStatus & {
        auto: boolean;
        childLock: boolean;
        humidity: number;
        lackWater: boolean;
        nebulizationEfficiency: number;
        power: string;
        sound: boolean;
        temperature: number;
    }
    diff --git a/docs/types/humidifierWebhookContext.html b/docs/types/humidifierWebhookContext.html index 1231bbbc..30cd67fd 100644 --- a/docs/types/humidifierWebhookContext.html +++ b/docs/types/humidifierWebhookContext.html @@ -1 +1 @@ -humidifierWebhookContext | node-switchbot

    Type Alias humidifierWebhookContext

    humidifierWebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +humidifierWebhookContext | node-switchbot

    Type Alias humidifierWebhookContext

    humidifierWebhookContext: deviceWebhookContext & {
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/indoorCam.html b/docs/types/indoorCam.html index 1fce0f08..b139e9cb 100644 --- a/docs/types/indoorCam.html +++ b/docs/types/indoorCam.html @@ -1 +1 @@ -indoorCam | node-switchbot

    Type Alias indoorCam

    indoorCam: device & {}
    +indoorCam | node-switchbot

    Type Alias indoorCam

    indoorCam: device & {}
    diff --git a/docs/types/indoorCameraWebhookContext.html b/docs/types/indoorCameraWebhookContext.html index 469c4aa2..1be87d95 100644 --- a/docs/types/indoorCameraWebhookContext.html +++ b/docs/types/indoorCameraWebhookContext.html @@ -1 +1 @@ -indoorCameraWebhookContext | node-switchbot

    Type Alias indoorCameraWebhookContext

    indoorCameraWebhookContext: deviceWebhookContext & {
        detectionState: "DETECTED";
    }
    +indoorCameraWebhookContext | node-switchbot

    Type Alias indoorCameraWebhookContext

    indoorCameraWebhookContext: deviceWebhookContext & {
        detectionState: "DETECTED";
    }
    diff --git a/docs/types/keypad.html b/docs/types/keypad.html index 26feaed3..ef61598d 100644 --- a/docs/types/keypad.html +++ b/docs/types/keypad.html @@ -1 +1 @@ -keypad | node-switchbot

    Type Alias keypad

    keypad: device & { keyList: keyList; lockDeviceId: string; remoteType: string }
    +keypad | node-switchbot

    Type Alias keypad

    keypad: device & { keyList: keyList; lockDeviceId: string; remoteType: string }
    diff --git a/docs/types/keypadDetectorServiceData.html b/docs/types/keypadDetectorServiceData.html index b06aee1a..faf8142e 100644 --- a/docs/types/keypadDetectorServiceData.html +++ b/docs/types/keypadDetectorServiceData.html @@ -1 +1 @@ -keypadDetectorServiceData | node-switchbot

    Type Alias keypadDetectorServiceData

    keypadDetectorServiceData: serviceData & {
        battery: number;
        event: boolean;
        low_battery: boolean;
        model: Keypad;
        modelFriendlyName: Keypad;
        modelName: Keypad;
        tampered: boolean;
    }
    +keypadDetectorServiceData | node-switchbot

    Type Alias keypadDetectorServiceData

    keypadDetectorServiceData: serviceData & {
        battery: number;
        event: boolean;
        low_battery: boolean;
        model: Keypad;
        modelFriendlyName: Keypad;
        modelName: Keypad;
        tampered: boolean;
    }
    diff --git a/docs/types/keypadTouch.html b/docs/types/keypadTouch.html index 69088e58..82d0f9d7 100644 --- a/docs/types/keypadTouch.html +++ b/docs/types/keypadTouch.html @@ -1 +1 @@ -keypadTouch | node-switchbot

    Type Alias keypadTouch

    keypadTouch: device & {
        keyList: keyList;
        lockDeviceId: string;
        remoteType: string;
    }
    +keypadTouch | node-switchbot

    Type Alias keypadTouch

    keypadTouch: device & {
        keyList: keyList;
        lockDeviceId: string;
        remoteType: string;
    }
    diff --git a/docs/types/keypadTouchWebhookContext.html b/docs/types/keypadTouchWebhookContext.html index 25df0d37..c0f25de2 100644 --- a/docs/types/keypadTouchWebhookContext.html +++ b/docs/types/keypadTouchWebhookContext.html @@ -1 +1 @@ -keypadTouchWebhookContext | node-switchbot

    Type Alias keypadTouchWebhookContext

    keypadTouchWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    +keypadTouchWebhookContext | node-switchbot

    Type Alias keypadTouchWebhookContext

    keypadTouchWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    diff --git a/docs/types/keypadWebhookContext.html b/docs/types/keypadWebhookContext.html index eaef1de1..414237be 100644 --- a/docs/types/keypadWebhookContext.html +++ b/docs/types/keypadWebhookContext.html @@ -1 +1 @@ -keypadWebhookContext | node-switchbot

    Type Alias keypadWebhookContext

    keypadWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    +keypadWebhookContext | node-switchbot

    Type Alias keypadWebhookContext

    keypadWebhookContext: deviceWebhookContext & {
        commandId: string;
        eventName: "createKey" | "deleteKey";
        result: "success" | "failed" | "timeout";
    }
    diff --git a/docs/types/lock.html b/docs/types/lock.html index ba543265..5b353065 100644 --- a/docs/types/lock.html +++ b/docs/types/lock.html @@ -1 +1 @@ -lock | node-switchbot

    Type Alias lock

    lock: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    +lock | node-switchbot

    Type Alias lock

    lock: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    diff --git a/docs/types/lockPro.html b/docs/types/lockPro.html index a62e8e6e..eeb10f70 100644 --- a/docs/types/lockPro.html +++ b/docs/types/lockPro.html @@ -1 +1 @@ -lockPro | node-switchbot

    Type Alias lockPro

    lockPro: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    +lockPro | node-switchbot

    Type Alias lockPro

    lockPro: device & {
        group: boolean;
        groupName: string;
        lockDevicesIds: string[];
        master: boolean;
    }
    diff --git a/docs/types/lockProServiceData.html b/docs/types/lockProServiceData.html index d5ce22f4..a827d91e 100644 --- a/docs/types/lockProServiceData.html +++ b/docs/types/lockProServiceData.html @@ -1 +1 @@ -lockProServiceData | node-switchbot

    Type Alias lockProServiceData

    lockProServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: LockPro;
        modelFriendlyName: LockPro;
        modelName: LockPro;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    +lockProServiceData | node-switchbot

    Type Alias lockProServiceData

    lockProServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: LockPro;
        modelFriendlyName: LockPro;
        modelName: LockPro;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    diff --git a/docs/types/lockProStatus.html b/docs/types/lockProStatus.html index 371d8524..6e9035d9 100644 --- a/docs/types/lockProStatus.html +++ b/docs/types/lockProStatus.html @@ -1 +1 @@ -lockProStatus | node-switchbot

    Type Alias lockProStatus

    lockProStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    +lockProStatus | node-switchbot

    Type Alias lockProStatus

    lockProStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    diff --git a/docs/types/lockProWebhookContext.html b/docs/types/lockProWebhookContext.html index 81d34d6d..968751f9 100644 --- a/docs/types/lockProWebhookContext.html +++ b/docs/types/lockProWebhookContext.html @@ -1 +1 @@ -lockProWebhookContext | node-switchbot

    Type Alias lockProWebhookContext

    lockProWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    +lockProWebhookContext | node-switchbot

    Type Alias lockProWebhookContext

    lockProWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    diff --git a/docs/types/lockServiceData.html b/docs/types/lockServiceData.html index 897662a1..2035a3d8 100644 --- a/docs/types/lockServiceData.html +++ b/docs/types/lockServiceData.html @@ -1 +1 @@ -lockServiceData | node-switchbot

    Type Alias lockServiceData

    lockServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: Lock;
        modelFriendlyName: Lock;
        modelName: Lock;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    +lockServiceData | node-switchbot

    Type Alias lockServiceData

    lockServiceData: serviceData & {
        auto_lock_paused: boolean;
        battery: number;
        calibration: boolean;
        door_open: boolean;
        double_lock_mode: boolean;
        model: Lock;
        modelFriendlyName: Lock;
        modelName: Lock;
        night_latch: boolean;
        status: string;
        unclosed_alarm: boolean;
        unlocked_alarm: boolean;
        update_from_secondary_lock: boolean;
    }
    diff --git a/docs/types/lockStatus.html b/docs/types/lockStatus.html index 45a71c9d..d992fedd 100644 --- a/docs/types/lockStatus.html +++ b/docs/types/lockStatus.html @@ -1 +1 @@ -lockStatus | node-switchbot

    Type Alias lockStatus

    lockStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    +lockStatus | node-switchbot

    Type Alias lockStatus

    lockStatus: deviceStatus & {
        battery: number;
        doorState: string;
        lockState: string;
        moveDetected: boolean;
    }
    diff --git a/docs/types/lockWebhookContext.html b/docs/types/lockWebhookContext.html index f9ba205c..f1442e5b 100644 --- a/docs/types/lockWebhookContext.html +++ b/docs/types/lockWebhookContext.html @@ -1 +1 @@ -lockWebhookContext | node-switchbot

    Type Alias lockWebhookContext

    lockWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    +lockWebhookContext | node-switchbot

    Type Alias lockWebhookContext

    lockWebhookContext: deviceWebhookContext & {
        battery: number;
        lockState: "UNLOCKED" | "LOCKED" | "JAMMED";
    }
    diff --git a/docs/types/meter.html b/docs/types/meter.html index e621abed..20a7900a 100644 --- a/docs/types/meter.html +++ b/docs/types/meter.html @@ -1 +1 @@ -meter | node-switchbot

    Type Alias meter

    meter: device & {}
    +meter | node-switchbot

    Type Alias meter

    meter: device & {}
    diff --git a/docs/types/meterPlus.html b/docs/types/meterPlus.html index f5c5c7d7..56e6f022 100644 --- a/docs/types/meterPlus.html +++ b/docs/types/meterPlus.html @@ -1 +1 @@ -meterPlus | node-switchbot

    Type Alias meterPlus

    meterPlus: device & {}
    +meterPlus | node-switchbot

    Type Alias meterPlus

    meterPlus: device & {}
    diff --git a/docs/types/meterPlusServiceData.html b/docs/types/meterPlusServiceData.html index 11b4659e..aeba405c 100644 --- a/docs/types/meterPlusServiceData.html +++ b/docs/types/meterPlusServiceData.html @@ -1 +1 @@ -meterPlusServiceData | node-switchbot

    Type Alias meterPlusServiceData

    meterPlusServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPlus;
        modelFriendlyName: MeterPlus;
        modelName: MeterPlus;
    }
    +meterPlusServiceData | node-switchbot

    Type Alias meterPlusServiceData

    meterPlusServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPlus;
        modelFriendlyName: MeterPlus;
        modelName: MeterPlus;
    }
    diff --git a/docs/types/meterPlusStatus.html b/docs/types/meterPlusStatus.html index ba6419d7..6d001ec8 100644 --- a/docs/types/meterPlusStatus.html +++ b/docs/types/meterPlusStatus.html @@ -1 +1 @@ -meterPlusStatus | node-switchbot

    Type Alias meterPlusStatus

    meterPlusStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    +meterPlusStatus | node-switchbot

    Type Alias meterPlusStatus

    meterPlusStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    diff --git a/docs/types/meterPlusWebhookContext.html b/docs/types/meterPlusWebhookContext.html index b9fbcf30..07d22799 100644 --- a/docs/types/meterPlusWebhookContext.html +++ b/docs/types/meterPlusWebhookContext.html @@ -1 +1 @@ -meterPlusWebhookContext | node-switchbot

    Type Alias meterPlusWebhookContext

    meterPlusWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterPlusWebhookContext | node-switchbot

    Type Alias meterPlusWebhookContext

    meterPlusWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/meterPro.html b/docs/types/meterPro.html index 8cadbac9..46fe5bcd 100644 --- a/docs/types/meterPro.html +++ b/docs/types/meterPro.html @@ -1 +1 @@ -meterPro | node-switchbot

    Type Alias meterPro

    meterPro: device & {}
    +meterPro | node-switchbot

    Type Alias meterPro

    meterPro: device & {}
    diff --git a/docs/types/meterProCO2ServiceData.html b/docs/types/meterProCO2ServiceData.html index 6b125747..88f1711b 100644 --- a/docs/types/meterProCO2ServiceData.html +++ b/docs/types/meterProCO2ServiceData.html @@ -1 +1 @@ -meterProCO2ServiceData | node-switchbot

    Type Alias meterProCO2ServiceData

    meterProCO2ServiceData: serviceData & {
        battery: number;
        celsius: number;
        co2: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterProCO2;
        modelFriendlyName: MeterProCO2;
        modelName: MeterProCO2;
    }
    +meterProCO2ServiceData | node-switchbot

    Type Alias meterProCO2ServiceData

    meterProCO2ServiceData: serviceData & {
        battery: number;
        celsius: number;
        co2: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterProCO2;
        modelFriendlyName: MeterProCO2;
        modelName: MeterProCO2;
    }
    diff --git a/docs/types/meterProCO2Status.html b/docs/types/meterProCO2Status.html index 067c9257..53956c73 100644 --- a/docs/types/meterProCO2Status.html +++ b/docs/types/meterProCO2Status.html @@ -1 +1 @@ -meterProCO2Status | node-switchbot

    Type Alias meterProCO2Status

    meterProCO2Status: deviceStatus & {
        battery: number;
        CO2: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    +meterProCO2Status | node-switchbot

    Type Alias meterProCO2Status

    meterProCO2Status: deviceStatus & {
        battery: number;
        CO2: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    diff --git a/docs/types/meterProCO2WebhookContext.html b/docs/types/meterProCO2WebhookContext.html index 41491e03..1ba03ee1 100644 --- a/docs/types/meterProCO2WebhookContext.html +++ b/docs/types/meterProCO2WebhookContext.html @@ -1 +1 @@ -meterProCO2WebhookContext | node-switchbot

    Type Alias meterProCO2WebhookContext

    meterProCO2WebhookContext: deviceWebhookContext & {
        battery: number;
        CO2: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterProCO2WebhookContext | node-switchbot

    Type Alias meterProCO2WebhookContext

    meterProCO2WebhookContext: deviceWebhookContext & {
        battery: number;
        CO2: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/meterProServiceData.html b/docs/types/meterProServiceData.html index 92081ec4..1f1e1d70 100644 --- a/docs/types/meterProServiceData.html +++ b/docs/types/meterProServiceData.html @@ -1 +1 @@ -meterProServiceData | node-switchbot

    Type Alias meterProServiceData

    meterProServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPro;
        modelFriendlyName: MeterPro;
        modelName: MeterPro;
    }
    +meterProServiceData | node-switchbot

    Type Alias meterProServiceData

    meterProServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: MeterPro;
        modelFriendlyName: MeterPro;
        modelName: MeterPro;
    }
    diff --git a/docs/types/meterProStatus.html b/docs/types/meterProStatus.html index b7b1f2b9..e1d98a6b 100644 --- a/docs/types/meterProStatus.html +++ b/docs/types/meterProStatus.html @@ -1 +1 @@ -meterProStatus | node-switchbot

    Type Alias meterProStatus

    meterProStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    +meterProStatus | node-switchbot

    Type Alias meterProStatus

    meterProStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
        version: string;
    }
    diff --git a/docs/types/meterProWebhookContext.html b/docs/types/meterProWebhookContext.html index 9d02ccf3..f827b59a 100644 --- a/docs/types/meterProWebhookContext.html +++ b/docs/types/meterProWebhookContext.html @@ -1 +1 @@ -meterProWebhookContext | node-switchbot

    Type Alias meterProWebhookContext

    meterProWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterProWebhookContext | node-switchbot

    Type Alias meterProWebhookContext

    meterProWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/meterServiceData.html b/docs/types/meterServiceData.html index a77bff6b..5fa9ad93 100644 --- a/docs/types/meterServiceData.html +++ b/docs/types/meterServiceData.html @@ -1 +1 @@ -meterServiceData | node-switchbot

    Type Alias meterServiceData

    meterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: Meter;
        modelFriendlyName: Meter;
        modelName: Meter;
    }
    +meterServiceData | node-switchbot

    Type Alias meterServiceData

    meterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: Meter;
        modelFriendlyName: Meter;
        modelName: Meter;
    }
    diff --git a/docs/types/meterStatus.html b/docs/types/meterStatus.html index 71832eb1..81d44205 100644 --- a/docs/types/meterStatus.html +++ b/docs/types/meterStatus.html @@ -1 +1 @@ -meterStatus | node-switchbot

    Type Alias meterStatus

    meterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    +meterStatus | node-switchbot

    Type Alias meterStatus

    meterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    diff --git a/docs/types/meterWebhookContext.html b/docs/types/meterWebhookContext.html index 5c59375f..370e0eff 100644 --- a/docs/types/meterWebhookContext.html +++ b/docs/types/meterWebhookContext.html @@ -1 +1 @@ -meterWebhookContext | node-switchbot

    Type Alias meterWebhookContext

    meterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +meterWebhookContext | node-switchbot

    Type Alias meterWebhookContext

    meterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/motionSensor.html b/docs/types/motionSensor.html index 52cbfc24..bb58a8a0 100644 --- a/docs/types/motionSensor.html +++ b/docs/types/motionSensor.html @@ -1 +1 @@ -motionSensor | node-switchbot

    Type Alias motionSensor

    motionSensor: device & {}
    +motionSensor | node-switchbot

    Type Alias motionSensor

    motionSensor: device & {}
    diff --git a/docs/types/motionSensorServiceData.html b/docs/types/motionSensorServiceData.html index 56fe293a..e1e929a6 100644 --- a/docs/types/motionSensorServiceData.html +++ b/docs/types/motionSensorServiceData.html @@ -1 +1 @@ -motionSensorServiceData | node-switchbot

    Type Alias motionSensorServiceData

    motionSensorServiceData: serviceData & {
        battery: number;
        iot: number;
        is_light: boolean;
        led: number;
        lightLevel: string;
        model: MotionSensor;
        modelFriendlyName: MotionSensor;
        modelName: MotionSensor;
        movement: boolean;
        sense_distance: number;
        tested: boolean;
    }
    +motionSensorServiceData | node-switchbot

    Type Alias motionSensorServiceData

    motionSensorServiceData: serviceData & {
        battery: number;
        iot: number;
        is_light: boolean;
        led: number;
        lightLevel: string;
        model: MotionSensor;
        modelFriendlyName: MotionSensor;
        modelName: MotionSensor;
        movement: boolean;
        sense_distance: number;
        tested: boolean;
    }
    diff --git a/docs/types/motionSensorStatus.html b/docs/types/motionSensorStatus.html index 8d808464..6debc574 100644 --- a/docs/types/motionSensorStatus.html +++ b/docs/types/motionSensorStatus.html @@ -1 +1 @@ -motionSensorStatus | node-switchbot

    Type Alias motionSensorStatus

    motionSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
    }
    +motionSensorStatus | node-switchbot

    Type Alias motionSensorStatus

    motionSensorStatus: deviceStatus & {
        battery: number;
        brightness: "bright" | "dim";
        moveDetected: boolean;
    }
    diff --git a/docs/types/motionSensorWebhookContext.html b/docs/types/motionSensorWebhookContext.html index ee0b31be..70f3764b 100644 --- a/docs/types/motionSensorWebhookContext.html +++ b/docs/types/motionSensorWebhookContext.html @@ -1 +1 @@ -motionSensorWebhookContext | node-switchbot

    Type Alias motionSensorWebhookContext

    motionSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: "NOT_DETECTED" | "DETECTED";
    }
    +motionSensorWebhookContext | node-switchbot

    Type Alias motionSensorWebhookContext

    motionSensorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: "NOT_DETECTED" | "DETECTED";
    }
    diff --git a/docs/types/onadvertisement.html b/docs/types/onadvertisement.html index ba0c8b22..435364e6 100644 --- a/docs/types/onadvertisement.html +++ b/docs/types/onadvertisement.html @@ -1 +1 @@ -onadvertisement | node-switchbot

    Type Alias onadvertisement

    onadvertisement: (ad: ad) => Promise<void> | void

    Type declaration

      • (ad: ad): Promise<void> | void
      • Parameters

        Returns Promise<void> | void

    +onadvertisement | node-switchbot

    Type Alias onadvertisement

    onadvertisement: (ad: ad) => Promise<void> | void

    Type declaration

      • (ad: ad): Promise<void> | void
      • Parameters

        Returns Promise<void> | void

    diff --git a/docs/types/ondiscover.html b/docs/types/ondiscover.html index 693c3b7c..43f8bc31 100644 --- a/docs/types/ondiscover.html +++ b/docs/types/ondiscover.html @@ -1 +1 @@ -ondiscover | node-switchbot

    Type Alias ondiscover

    ondiscover: (device: SwitchbotDevice) => Promise<void> | void

    Type declaration

    +ondiscover | node-switchbot

    Type Alias ondiscover

    ondiscover: (device: SwitchbotDevice) => Promise<void> | void

    Type declaration

    diff --git a/docs/types/outdoorMeter.html b/docs/types/outdoorMeter.html index 46872003..01e72cb5 100644 --- a/docs/types/outdoorMeter.html +++ b/docs/types/outdoorMeter.html @@ -1 +1 @@ -outdoorMeter | node-switchbot

    Type Alias outdoorMeter

    outdoorMeter: device & {}
    +outdoorMeter | node-switchbot

    Type Alias outdoorMeter

    outdoorMeter: device & {}
    diff --git a/docs/types/outdoorMeterServiceData.html b/docs/types/outdoorMeterServiceData.html index 523e46b7..caf3356b 100644 --- a/docs/types/outdoorMeterServiceData.html +++ b/docs/types/outdoorMeterServiceData.html @@ -1 +1 @@ -outdoorMeterServiceData | node-switchbot

    Type Alias outdoorMeterServiceData

    outdoorMeterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: OutdoorMeter;
        modelFriendlyName: OutdoorMeter;
        modelName: OutdoorMeter;
    }
    +outdoorMeterServiceData | node-switchbot

    Type Alias outdoorMeterServiceData

    outdoorMeterServiceData: serviceData & {
        battery: number;
        celsius: number;
        fahrenheit: number;
        fahrenheit_mode: boolean;
        humidity: number;
        model: OutdoorMeter;
        modelFriendlyName: OutdoorMeter;
        modelName: OutdoorMeter;
    }
    diff --git a/docs/types/outdoorMeterStatus.html b/docs/types/outdoorMeterStatus.html index 3e27789a..b907afe2 100644 --- a/docs/types/outdoorMeterStatus.html +++ b/docs/types/outdoorMeterStatus.html @@ -1 +1 @@ -outdoorMeterStatus | node-switchbot

    Type Alias outdoorMeterStatus

    outdoorMeterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    +outdoorMeterStatus | node-switchbot

    Type Alias outdoorMeterStatus

    outdoorMeterStatus: deviceStatus & {
        battery: number;
        humidity: number;
        temperature: number;
    }
    diff --git a/docs/types/outdoorMeterWebhookContext.html b/docs/types/outdoorMeterWebhookContext.html index 3a3a6573..46e39447 100644 --- a/docs/types/outdoorMeterWebhookContext.html +++ b/docs/types/outdoorMeterWebhookContext.html @@ -1 +1 @@ -outdoorMeterWebhookContext | node-switchbot

    Type Alias outdoorMeterWebhookContext

    outdoorMeterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    +outdoorMeterWebhookContext | node-switchbot

    Type Alias outdoorMeterWebhookContext

    outdoorMeterWebhookContext: deviceWebhookContext & {
        battery: number;
        humidity: number;
        scale: "CELSIUS" | "FAHRENHEIT";
        temperature: number;
    }
    diff --git a/docs/types/panTiltCamWebhookContext.html b/docs/types/panTiltCamWebhookContext.html index 4fd94c42..92b8a19c 100644 --- a/docs/types/panTiltCamWebhookContext.html +++ b/docs/types/panTiltCamWebhookContext.html @@ -1 +1 @@ -panTiltCamWebhookContext | node-switchbot

    Type Alias panTiltCamWebhookContext

    panTiltCamWebhookContext: deviceWebhookContext & { detectionState: "DETECTED" }
    +panTiltCamWebhookContext | node-switchbot

    Type Alias panTiltCamWebhookContext

    panTiltCamWebhookContext: deviceWebhookContext & { detectionState: "DETECTED" }
    diff --git a/docs/types/pantiltCam.html b/docs/types/pantiltCam.html index ec41f12d..90aa45cf 100644 --- a/docs/types/pantiltCam.html +++ b/docs/types/pantiltCam.html @@ -1 +1 @@ -pantiltCam | node-switchbot

    Type Alias pantiltCam

    pantiltCam: device & {}
    +pantiltCam | node-switchbot

    Type Alias pantiltCam

    pantiltCam: device & {}
    diff --git a/docs/types/pantiltCam2k.html b/docs/types/pantiltCam2k.html index 354b716f..adb8c88d 100644 --- a/docs/types/pantiltCam2k.html +++ b/docs/types/pantiltCam2k.html @@ -1 +1 @@ -pantiltCam2k | node-switchbot

    Type Alias pantiltCam2k

    pantiltCam2k: device & {}
    +pantiltCam2k | node-switchbot

    Type Alias pantiltCam2k

    pantiltCam2k: device & {}
    diff --git a/docs/types/plug.html b/docs/types/plug.html index 2aeda068..4f98607b 100644 --- a/docs/types/plug.html +++ b/docs/types/plug.html @@ -1 +1 @@ -plug | node-switchbot

    Type Alias plug

    plug: device & {}
    +plug | node-switchbot

    Type Alias plug

    plug: device & {}
    diff --git a/docs/types/plugMini.html b/docs/types/plugMini.html index e6b987d6..c8fcd24e 100644 --- a/docs/types/plugMini.html +++ b/docs/types/plugMini.html @@ -1 +1 @@ -plugMini | node-switchbot

    Type Alias plugMini

    plugMini: device & {}
    +plugMini | node-switchbot

    Type Alias plugMini

    plugMini: device & {}
    diff --git a/docs/types/plugMiniJPServiceData.html b/docs/types/plugMiniJPServiceData.html index e8c817c7..5bdf7815 100644 --- a/docs/types/plugMiniJPServiceData.html +++ b/docs/types/plugMiniJPServiceData.html @@ -1 +1 @@ -plugMiniJPServiceData | node-switchbot

    Type Alias plugMiniJPServiceData

    plugMiniJPServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniJP;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    +plugMiniJPServiceData | node-switchbot

    Type Alias plugMiniJPServiceData

    plugMiniJPServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniJP;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    diff --git a/docs/types/plugMiniJPWebhookContext.html b/docs/types/plugMiniJPWebhookContext.html index e586af29..e3a71adc 100644 --- a/docs/types/plugMiniJPWebhookContext.html +++ b/docs/types/plugMiniJPWebhookContext.html @@ -1 +1 @@ -plugMiniJPWebhookContext | node-switchbot

    Type Alias plugMiniJPWebhookContext

    plugMiniJPWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    +plugMiniJPWebhookContext | node-switchbot

    Type Alias plugMiniJPWebhookContext

    plugMiniJPWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    diff --git a/docs/types/plugMiniStatus.html b/docs/types/plugMiniStatus.html index 6cb0bb43..dee384ac 100644 --- a/docs/types/plugMiniStatus.html +++ b/docs/types/plugMiniStatus.html @@ -1 +1 @@ -plugMiniStatus | node-switchbot

    Type Alias plugMiniStatus

    plugMiniStatus: deviceStatus & {
        electricCurrent: Float64Array;
        electricityOfDay: number;
        power: string;
        voltage: Float64Array;
        weight: Float64Array;
    }
    +plugMiniStatus | node-switchbot

    Type Alias plugMiniStatus

    plugMiniStatus: deviceStatus & {
        electricCurrent: Float64Array;
        electricityOfDay: number;
        power: string;
        voltage: Float64Array;
        weight: Float64Array;
    }
    diff --git a/docs/types/plugMiniUSServiceData.html b/docs/types/plugMiniUSServiceData.html index 171a5f56..df061116 100644 --- a/docs/types/plugMiniUSServiceData.html +++ b/docs/types/plugMiniUSServiceData.html @@ -1 +1 @@ -plugMiniUSServiceData | node-switchbot

    Type Alias plugMiniUSServiceData

    plugMiniUSServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniUS;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    +plugMiniUSServiceData | node-switchbot

    Type Alias plugMiniUSServiceData

    plugMiniUSServiceData: serviceData & {
        currentPower: number;
        delay: boolean;
        model: PlugMiniUS;
        modelFriendlyName: PlugMini;
        modelName: PlugMini;
        overload: boolean;
        state: string;
        syncUtcTime: boolean;
        timer: boolean;
        wifiRssi: number;
    }
    diff --git a/docs/types/plugMiniUSWebhookContext.html b/docs/types/plugMiniUSWebhookContext.html index a68bae3a..66f0ba86 100644 --- a/docs/types/plugMiniUSWebhookContext.html +++ b/docs/types/plugMiniUSWebhookContext.html @@ -1 +1 @@ -plugMiniUSWebhookContext | node-switchbot

    Type Alias plugMiniUSWebhookContext

    plugMiniUSWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    +plugMiniUSWebhookContext | node-switchbot

    Type Alias plugMiniUSWebhookContext

    plugMiniUSWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    diff --git a/docs/types/plugStatus.html b/docs/types/plugStatus.html index b155ea31..6df80273 100644 --- a/docs/types/plugStatus.html +++ b/docs/types/plugStatus.html @@ -1 +1 @@ -plugStatus | node-switchbot

    Type Alias plugStatus

    plugStatus: deviceStatus & { power: string; version: string }
    +plugStatus | node-switchbot

    Type Alias plugStatus

    plugStatus: deviceStatus & { power: string; version: string }
    diff --git a/docs/types/plugWebhookContext.html b/docs/types/plugWebhookContext.html index 6e344923..5f813524 100644 --- a/docs/types/plugWebhookContext.html +++ b/docs/types/plugWebhookContext.html @@ -1 +1 @@ -plugWebhookContext | node-switchbot

    Type Alias plugWebhookContext

    plugWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    +plugWebhookContext | node-switchbot

    Type Alias plugWebhookContext

    plugWebhookContext: deviceWebhookContext & { powerState: "ON" | "OFF" }
    diff --git a/docs/types/relaySwitch1PMServiceData.html b/docs/types/relaySwitch1PMServiceData.html index 3323ef42..bb165f77 100644 --- a/docs/types/relaySwitch1PMServiceData.html +++ b/docs/types/relaySwitch1PMServiceData.html @@ -1 +1 @@ -relaySwitch1PMServiceData | node-switchbot

    Type Alias relaySwitch1PMServiceData

    relaySwitch1PMServiceData: serviceData & {
        current: number;
        mode: boolean;
        model: RelaySwitch1PM;
        modelFriendlyName: RelaySwitch1PM;
        modelName: RelaySwitch1PM;
        power: number;
        sequence_number: number;
        state: boolean;
        voltage: number;
    }
    +relaySwitch1PMServiceData | node-switchbot

    Type Alias relaySwitch1PMServiceData

    relaySwitch1PMServiceData: serviceData & {
        current: number;
        mode: boolean;
        model: RelaySwitch1PM;
        modelFriendlyName: RelaySwitch1PM;
        modelName: RelaySwitch1PM;
        power: number;
        sequence_number: number;
        state: boolean;
        voltage: number;
    }
    diff --git a/docs/types/relaySwitch1ServiceData.html b/docs/types/relaySwitch1ServiceData.html index 951f9e9a..a4c5e665 100644 --- a/docs/types/relaySwitch1ServiceData.html +++ b/docs/types/relaySwitch1ServiceData.html @@ -1 +1 @@ -relaySwitch1ServiceData | node-switchbot

    Type Alias relaySwitch1ServiceData

    relaySwitch1ServiceData: serviceData & {
        mode: boolean;
        model: RelaySwitch1;
        modelFriendlyName: RelaySwitch1;
        modelName: RelaySwitch1;
        sequence_number: number;
        state: boolean;
    }
    +relaySwitch1ServiceData | node-switchbot

    Type Alias relaySwitch1ServiceData

    relaySwitch1ServiceData: serviceData & {
        mode: boolean;
        model: RelaySwitch1;
        modelFriendlyName: RelaySwitch1;
        modelName: RelaySwitch1;
        sequence_number: number;
        state: boolean;
    }
    diff --git a/docs/types/remote.html b/docs/types/remote.html index f94c00b9..663b771a 100644 --- a/docs/types/remote.html +++ b/docs/types/remote.html @@ -1 +1 @@ -remote | node-switchbot

    Type Alias remote

    remote: device & {}
    +remote | node-switchbot

    Type Alias remote

    remote: device & {}
    diff --git a/docs/types/robotVacuumCleanerS1.html b/docs/types/robotVacuumCleanerS1.html index 443ca9c8..7e67b0e6 100644 --- a/docs/types/robotVacuumCleanerS1.html +++ b/docs/types/robotVacuumCleanerS1.html @@ -1 +1 @@ -robotVacuumCleanerS1 | node-switchbot

    Type Alias robotVacuumCleanerS1

    robotVacuumCleanerS1: device & {}
    +robotVacuumCleanerS1 | node-switchbot

    Type Alias robotVacuumCleanerS1

    robotVacuumCleanerS1: device & {}
    diff --git a/docs/types/robotVacuumCleanerS1Plus.html b/docs/types/robotVacuumCleanerS1Plus.html index 154e290e..898f80fe 100644 --- a/docs/types/robotVacuumCleanerS1Plus.html +++ b/docs/types/robotVacuumCleanerS1Plus.html @@ -1 +1 @@ -robotVacuumCleanerS1Plus | node-switchbot

    Type Alias robotVacuumCleanerS1Plus

    robotVacuumCleanerS1Plus: device & {}
    +robotVacuumCleanerS1Plus | node-switchbot

    Type Alias robotVacuumCleanerS1Plus

    robotVacuumCleanerS1Plus: device & {}
    diff --git a/docs/types/robotVacuumCleanerS1PlusStatus.html b/docs/types/robotVacuumCleanerS1PlusStatus.html index fd882c31..28d71b26 100644 --- a/docs/types/robotVacuumCleanerS1PlusStatus.html +++ b/docs/types/robotVacuumCleanerS1PlusStatus.html @@ -1 +1 @@ -robotVacuumCleanerS1PlusStatus | node-switchbot

    Type Alias robotVacuumCleanerS1PlusStatus

    robotVacuumCleanerS1PlusStatus: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    +robotVacuumCleanerS1PlusStatus | node-switchbot

    Type Alias robotVacuumCleanerS1PlusStatus

    robotVacuumCleanerS1PlusStatus: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    diff --git a/docs/types/robotVacuumCleanerS1PlusWebhookContext.html b/docs/types/robotVacuumCleanerS1PlusWebhookContext.html index 86892893..83680b7a 100644 --- a/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +++ b/docs/types/robotVacuumCleanerS1PlusWebhookContext.html @@ -1 +1 @@ -robotVacuumCleanerS1PlusWebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1PlusWebhookContext

    robotVacuumCleanerS1PlusWebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    +robotVacuumCleanerS1PlusWebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1PlusWebhookContext

    robotVacuumCleanerS1PlusWebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    diff --git a/docs/types/robotVacuumCleanerS1Status.html b/docs/types/robotVacuumCleanerS1Status.html index 8e2a83d8..b75c2ab3 100644 --- a/docs/types/robotVacuumCleanerS1Status.html +++ b/docs/types/robotVacuumCleanerS1Status.html @@ -1 +1 @@ -robotVacuumCleanerS1Status | node-switchbot

    Type Alias robotVacuumCleanerS1Status

    robotVacuumCleanerS1Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    +robotVacuumCleanerS1Status | node-switchbot

    Type Alias robotVacuumCleanerS1Status

    robotVacuumCleanerS1Status: deviceStatus & {
        battery: number;
        onlineStatus: string;
        workingStatus: string;
    }
    diff --git a/docs/types/robotVacuumCleanerS1WebhookContext.html b/docs/types/robotVacuumCleanerS1WebhookContext.html index 92da438a..645c1c85 100644 --- a/docs/types/robotVacuumCleanerS1WebhookContext.html +++ b/docs/types/robotVacuumCleanerS1WebhookContext.html @@ -1 +1 @@ -robotVacuumCleanerS1WebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1WebhookContext

    robotVacuumCleanerS1WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    +robotVacuumCleanerS1WebhookContext | node-switchbot

    Type Alias robotVacuumCleanerS1WebhookContext

    robotVacuumCleanerS1WebhookContext: deviceWebhookContext & {
        battery: number;
        onlineStatus: "online" | "offline";
        workingStatus:
            | "Standby"
            | "Clearing"
            | "Paused"
            | "GotoChargeBase"
            | "Charging"
            | "ChargeDone"
            | "Dormant"
            | "InTrouble"
            | "InRemoteControl"
            | "InDustCollecting";
    }
    diff --git a/docs/types/robotVacuumCleanerServiceData.html b/docs/types/robotVacuumCleanerServiceData.html index b335eca6..bfc2162e 100644 --- a/docs/types/robotVacuumCleanerServiceData.html +++ b/docs/types/robotVacuumCleanerServiceData.html @@ -1 +1 @@ -robotVacuumCleanerServiceData | node-switchbot

    Type Alias robotVacuumCleanerServiceData

    robotVacuumCleanerServiceData: serviceData & {
        battery: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    +robotVacuumCleanerServiceData | node-switchbot

    Type Alias robotVacuumCleanerServiceData

    robotVacuumCleanerServiceData: serviceData & {
        battery: number;
        model: Unknown;
        modelFriendlyName: Unknown;
        modelName: Unknown;
        state: string;
    }
    diff --git a/docs/types/stripLight.html b/docs/types/stripLight.html index 16d7c046..27238c5c 100644 --- a/docs/types/stripLight.html +++ b/docs/types/stripLight.html @@ -1 +1 @@ -stripLight | node-switchbot

    Type Alias stripLight

    stripLight: device & {}
    +stripLight | node-switchbot

    Type Alias stripLight

    stripLight: device & {}
    diff --git a/docs/types/stripLightServiceData.html b/docs/types/stripLightServiceData.html index 1680b0af..b2ad56f1 100644 --- a/docs/types/stripLightServiceData.html +++ b/docs/types/stripLightServiceData.html @@ -1 +1 @@ -stripLightServiceData | node-switchbot

    Type Alias stripLightServiceData

    stripLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        delay: number;
        green: number;
        loop_index: number;
        model: StripLight;
        modelFriendlyName: StripLight;
        modelName: StripLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    +stripLightServiceData | node-switchbot

    Type Alias stripLightServiceData

    stripLightServiceData: serviceData & {
        blue: number;
        brightness: number;
        color_mode: number;
        delay: number;
        green: number;
        loop_index: number;
        model: StripLight;
        modelFriendlyName: StripLight;
        modelName: StripLight;
        power: boolean;
        preset: number;
        red: number;
        speed: number;
        state: boolean;
    }
    diff --git a/docs/types/stripLightStatus.html b/docs/types/stripLightStatus.html index 9a6222dc..2f396ea1 100644 --- a/docs/types/stripLightStatus.html +++ b/docs/types/stripLightStatus.html @@ -1 +1 @@ -stripLightStatus | node-switchbot

    Type Alias stripLightStatus

    stripLightStatus: deviceStatus & {
        brightness: number;
        color: string;
        power: string;
    }
    +stripLightStatus | node-switchbot

    Type Alias stripLightStatus

    stripLightStatus: deviceStatus & {
        brightness: number;
        color: string;
        power: string;
    }
    diff --git a/docs/types/stripLightWebhookContext.html b/docs/types/stripLightWebhookContext.html index d18e2d9a..bc0ad6c7 100644 --- a/docs/types/stripLightWebhookContext.html +++ b/docs/types/stripLightWebhookContext.html @@ -1 +1 @@ -stripLightWebhookContext | node-switchbot

    Type Alias stripLightWebhookContext

    stripLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        powerState: "ON" | "OFF";
    }
    +stripLightWebhookContext | node-switchbot

    Type Alias stripLightWebhookContext

    stripLightWebhookContext: deviceWebhookContext & {
        brightness: number;
        color: string;
        powerState: "ON" | "OFF";
    }
    diff --git a/docs/types/waterLeakDetector.html b/docs/types/waterLeakDetector.html index b190aed3..ac9fc618 100644 --- a/docs/types/waterLeakDetector.html +++ b/docs/types/waterLeakDetector.html @@ -1 +1 @@ -waterLeakDetector | node-switchbot

    Type Alias waterLeakDetector

    waterLeakDetector: device & {}
    +waterLeakDetector | node-switchbot

    Type Alias waterLeakDetector

    waterLeakDetector: device & {}
    diff --git a/docs/types/waterLeakDetectorServiceData.html b/docs/types/waterLeakDetectorServiceData.html index 73f53d5b..44512224 100644 --- a/docs/types/waterLeakDetectorServiceData.html +++ b/docs/types/waterLeakDetectorServiceData.html @@ -1 +1 @@ -waterLeakDetectorServiceData | node-switchbot

    Type Alias waterLeakDetectorServiceData

    waterLeakDetectorServiceData: serviceData & {
        battery: number;
        leak: boolean;
        low_battery: boolean;
        model: Leak;
        modelFriendlyName: Leak;
        modelName: Leak;
        tampered: boolean;
    }
    +waterLeakDetectorServiceData | node-switchbot

    Type Alias waterLeakDetectorServiceData

    waterLeakDetectorServiceData: serviceData & {
        battery: number;
        leak: boolean;
        low_battery: boolean;
        model: Leak;
        modelFriendlyName: Leak;
        modelName: Leak;
        tampered: boolean;
    }
    diff --git a/docs/types/waterLeakDetectorStatus.html b/docs/types/waterLeakDetectorStatus.html index 1843ae74..f3985e0a 100644 --- a/docs/types/waterLeakDetectorStatus.html +++ b/docs/types/waterLeakDetectorStatus.html @@ -1 +1 @@ -waterLeakDetectorStatus | node-switchbot

    Type Alias waterLeakDetectorStatus

    waterLeakDetectorStatus: deviceStatus & { battery: number; status: 0 | 1 }
    +waterLeakDetectorStatus | node-switchbot

    Type Alias waterLeakDetectorStatus

    waterLeakDetectorStatus: deviceStatus & { battery: number; status: 0 | 1 }
    diff --git a/docs/types/waterLeakDetectorWebhookContext.html b/docs/types/waterLeakDetectorWebhookContext.html index 690be109..000793cf 100644 --- a/docs/types/waterLeakDetectorWebhookContext.html +++ b/docs/types/waterLeakDetectorWebhookContext.html @@ -1 +1 @@ -waterLeakDetectorWebhookContext | node-switchbot

    Type Alias waterLeakDetectorWebhookContext

    waterLeakDetectorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: 0 | 1;
    }
    +waterLeakDetectorWebhookContext | node-switchbot

    Type Alias waterLeakDetectorWebhookContext

    waterLeakDetectorWebhookContext: deviceWebhookContext & {
        battery: number;
        detectionState: 0 | 1;
    }
    diff --git a/package-lock.json b/package-lock.json index 7bd80b0a..73f34258 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,18 +11,18 @@ "dependencies": { "@stoprocent/noble": "^1.18.2", "async-mutex": "^0.5.0", - "undici": "7.2.1" + "undici": "7.3.0" }, "devDependencies": { - "@antfu/eslint-config": "^3.14.0", + "@antfu/eslint-config": "^3.16.0", "@types/aes-js": "^3.1.4", "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", "@types/mdast": "^4.0.4", - "@types/node": "^22.10.5", + "@types/node": "^22.10.10", "@types/semver": "^7.5.8", "@types/source-map-support": "^0.5.10", - "@vitest/coverage-v8": "^2.1.8", + "@vitest/coverage-v8": "^3.0.4", "eslint": "^9.18.0", "eslint-plugin-format": "^1.0.1", "nodemon": "^3.1.9", @@ -30,7 +30,7 @@ "ts-node": "^10.9.2", "typedoc": "^0.27.6", "typescript": "^5.7.3", - "vitest": "^2.1.8" + "vitest": "^3.0.4" }, "engines": { "node": "^20 || ^22" @@ -54,9 +54,9 @@ } }, "node_modules/@antfu/eslint-config": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.14.0.tgz", - "integrity": "sha512-SBQOFrF/d2aqsVhxcHZ6g5DAoUaNyaV3Vd+lGNJx4CfSuwk9EuC8sRUF819GkNdCMbH5wNdFoJ4+Tsd9sr/NBw==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.16.0.tgz", + "integrity": "sha512-g6RAXUMeow9vexoOMYwCpByY2xSDpAD78q+rvQLvVpY6MFcxFD/zmdrZGYa/yt7LizK86m17kIYKOGLJ3L8P0w==", "dev": true, "license": "MIT", "dependencies": { @@ -65,20 +65,20 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/markdown": "^6.2.1", "@stylistic/eslint-plugin": "^2.13.0", - "@typescript-eslint/eslint-plugin": "^8.19.1", - "@typescript-eslint/parser": "^8.19.1", + "@typescript-eslint/eslint-plugin": "^8.21.0", + "@typescript-eslint/parser": "^8.21.0", "@vitest/eslint-plugin": "^1.1.25", "eslint-config-flat-gitignore": "^1.0.0", - "eslint-flat-config-utils": "^1.0.0", + "eslint-flat-config-utils": "^1.1.0", "eslint-merge-processors": "^1.0.0", "eslint-plugin-antfu": "^2.7.0", "eslint-plugin-command": "^2.1.0", "eslint-plugin-import-x": "^4.6.1", - "eslint-plugin-jsdoc": "^50.6.1", + "eslint-plugin-jsdoc": "^50.6.2", "eslint-plugin-jsonc": "^2.18.2", "eslint-plugin-n": "^17.15.1", "eslint-plugin-no-only-tests": "^3.3.0", - "eslint-plugin-perfectionist": "^4.6.0", + "eslint-plugin-perfectionist": "^4.7.0", "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-toml": "^0.12.0", "eslint-plugin-unicorn": "^56.0.1", @@ -250,11 +250,14 @@ } }, "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/@clack/core": { "version": "0.4.1", @@ -340,9 +343,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -353,13 +356,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -370,13 +373,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -387,13 +390,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -404,13 +407,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -421,13 +424,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -438,13 +441,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -455,13 +458,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -472,13 +475,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -489,13 +492,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -506,13 +509,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -523,13 +526,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -540,13 +543,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -557,13 +560,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -574,13 +577,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -591,13 +594,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -608,13 +611,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -625,13 +628,30 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -642,13 +662,30 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -659,13 +696,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -676,13 +713,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -693,13 +730,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -710,13 +747,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -727,7 +764,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-plugin-eslint-comments": { @@ -1280,9 +1317,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", - "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", + "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", "cpu": [ "arm" ], @@ -1294,9 +1331,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", - "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", + "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", "cpu": [ "arm64" ], @@ -1308,9 +1345,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", - "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", + "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", "cpu": [ "arm64" ], @@ -1322,9 +1359,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", - "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", + "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", "cpu": [ "x64" ], @@ -1336,9 +1373,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", - "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", + "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", "cpu": [ "arm64" ], @@ -1350,9 +1387,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", - "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", + "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", "cpu": [ "x64" ], @@ -1364,9 +1401,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", - "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", + "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", "cpu": [ "arm" ], @@ -1378,9 +1415,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", - "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", + "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", "cpu": [ "arm" ], @@ -1392,9 +1429,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", - "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", + "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", "cpu": [ "arm64" ], @@ -1406,9 +1443,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", - "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", + "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", "cpu": [ "arm64" ], @@ -1419,10 +1456,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", + "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", - "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", + "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", "cpu": [ "ppc64" ], @@ -1434,9 +1485,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", - "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", + "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", "cpu": [ "riscv64" ], @@ -1448,9 +1499,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", - "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", + "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", "cpu": [ "s390x" ], @@ -1462,9 +1513,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", - "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", + "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", "cpu": [ "x64" ], @@ -1476,9 +1527,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", - "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", + "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", "cpu": [ "x64" ], @@ -1490,9 +1541,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", - "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", + "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", "cpu": [ "arm64" ], @@ -1504,9 +1555,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", - "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", + "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", "cpu": [ "ia32" ], @@ -1518,9 +1569,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", - "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", + "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", "cpu": [ "x64" ], @@ -2041,9 +2092,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", - "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "version": "22.10.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", + "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", "dev": true, "license": "MIT", "dependencies": { @@ -2089,17 +2140,17 @@ "optional": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", - "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", + "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/type-utils": "8.19.1", - "@typescript-eslint/utils": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2119,16 +2170,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", - "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", + "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4" }, "engines": { @@ -2144,14 +2195,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", - "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", + "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1" + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2162,14 +2213,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", - "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", + "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.0" }, @@ -2186,9 +2237,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", - "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", + "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", "dev": true, "license": "MIT", "engines": { @@ -2200,14 +2251,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", - "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", + "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2227,16 +2278,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", - "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", + "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1" + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2251,13 +2302,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", - "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", + "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/types": "8.21.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2269,31 +2320,31 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.8.tgz", - "integrity": "sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.4.tgz", + "integrity": "sha512-f0twgRCHgbs24Dp8cLWagzcObXMcuKtAwgxjJV/nnysPAJJk1JiKu/W0gIehZLmkljhJXU/E0/dmuQzsA/4jhA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", - "@bcoe/v8-coverage": "^0.2.3", - "debug": "^4.3.7", + "@bcoe/v8-coverage": "^1.0.2", + "debug": "^4.4.0", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.12", + "magic-string": "^0.30.17", "magicast": "^0.3.5", "std-env": "^3.8.0", "test-exclude": "^7.0.1", - "tinyrainbow": "^1.2.0" + "tinyrainbow": "^2.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "2.1.8", - "vitest": "2.1.8" + "@vitest/browser": "3.0.4", + "vitest": "3.0.4" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -2323,38 +2374,38 @@ } }, "node_modules/@vitest/expect": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", - "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.4.tgz", + "integrity": "sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.8", - "@vitest/utils": "2.1.8", + "@vitest/spy": "3.0.4", + "@vitest/utils": "3.0.4", "chai": "^5.1.2", - "tinyrainbow": "^1.2.0" + "tinyrainbow": "^2.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/mocker": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", - "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.4.tgz", + "integrity": "sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.8", + "@vitest/spy": "3.0.4", "estree-walker": "^3.0.3", - "magic-string": "^0.30.12" + "magic-string": "^0.30.17" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0" + "vite": "^5.0.0 || ^6.0.0" }, "peerDependenciesMeta": { "msw": { @@ -2376,51 +2427,65 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.4.tgz", + "integrity": "sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^1.2.0" + "tinyrainbow": "^2.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", - "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.4.tgz", + "integrity": "sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "2.1.8", - "pathe": "^1.1.2" + "@vitest/utils": "3.0.4", + "pathe": "^2.0.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/runner/node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true, + "license": "MIT" + }, "node_modules/@vitest/snapshot": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", - "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.4.tgz", + "integrity": "sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.8", - "magic-string": "^0.30.12", - "pathe": "^1.1.2" + "@vitest/pretty-format": "3.0.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/snapshot/node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true, + "license": "MIT" + }, "node_modules/@vitest/spy": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", - "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.4.tgz", + "integrity": "sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2431,15 +2496,15 @@ } }, "node_modules/@vitest/utils": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", - "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.4.tgz", + "integrity": "sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.8", + "@vitest/pretty-format": "3.0.4", "loupe": "^3.1.2", - "tinyrainbow": "^1.2.0" + "tinyrainbow": "^2.0.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -3093,9 +3158,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3277,16 +3342,16 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true, "license": "MIT" }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3294,32 +3359,34 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { @@ -3439,9 +3506,9 @@ } }, "node_modules/eslint-flat-config-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-flat-config-utils/-/eslint-flat-config-utils-1.0.0.tgz", - "integrity": "sha512-tmzcXeCsa24/u3glyw1Mo7KfC/r9a5Vsu1nPCkX7uefD7C5Z4x922Q2KP/drhTLbOI5lcFHYpfXjKhqqnUWObw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-flat-config-utils/-/eslint-flat-config-utils-1.1.0.tgz", + "integrity": "sha512-W49wz7yQJGRfg4QSV3nwdO/fYcWetiSKhLV5YykfQMcqnIATNpoS7EPdINhLB9P3fmdjNmFtOgZjiKnCndWAnw==", "dev": true, "license": "MIT", "dependencies": { @@ -3452,9 +3519,9 @@ } }, "node_modules/eslint-flat-config-utils/node_modules/pathe": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.1.tgz", - "integrity": "sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", "dev": true, "license": "MIT" }, @@ -3661,9 +3728,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.1.tgz", - "integrity": "sha512-UWyaYi6iURdSfdVVqvfOs2vdCVz0J40O/z/HTsv2sFjdjmdlUI/qlKLOTmwbPQ2tAfQnE5F9vqx+B+poF71DBQ==", + "version": "50.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.2.tgz", + "integrity": "sha512-n7GNZ4czMAAbDg7DsDA7PvHo1IPIUwAXYmxTx6j/hTlXbt5V0x5q/kGkiJ7s4wA9SpB/yaiK8jF7CO237lOLew==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3809,14 +3876,14 @@ } }, "node_modules/eslint-plugin-perfectionist": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.6.0.tgz", - "integrity": "sha512-kOswTebUK0LlYExRwqz7YQtvyTUIRsKfp8XrwBBeHGh2e8MBOS6K+7VvG6HpmNckyKySi1I96uPeAlptMFGcRQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.7.0.tgz", + "integrity": "sha512-e2ODzm2SsAztFWY3ZRJd1K702vyl8Sapacjc3JluOW294CfA3+jfjin+UxjcrK48EvlNIMOp+JJB9N54YR2LRw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "^8.19.0", - "@typescript-eslint/utils": "^8.19.0", + "@typescript-eslint/types": "^8.21.0", + "@typescript-eslint/utils": "^8.21.0", "natural-orderby": "^5.0.0" }, "engines": { @@ -5206,9 +5273,9 @@ "license": "MIT" }, "node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -7155,9 +7222,9 @@ } }, "node_modules/rollup": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", - "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", + "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", "dev": true, "license": "MIT", "dependencies": { @@ -7171,24 +7238,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.28.0", - "@rollup/rollup-android-arm64": "4.28.0", - "@rollup/rollup-darwin-arm64": "4.28.0", - "@rollup/rollup-darwin-x64": "4.28.0", - "@rollup/rollup-freebsd-arm64": "4.28.0", - "@rollup/rollup-freebsd-x64": "4.28.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", - "@rollup/rollup-linux-arm-musleabihf": "4.28.0", - "@rollup/rollup-linux-arm64-gnu": "4.28.0", - "@rollup/rollup-linux-arm64-musl": "4.28.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", - "@rollup/rollup-linux-riscv64-gnu": "4.28.0", - "@rollup/rollup-linux-s390x-gnu": "4.28.0", - "@rollup/rollup-linux-x64-gnu": "4.28.0", - "@rollup/rollup-linux-x64-musl": "4.28.0", - "@rollup/rollup-win32-arm64-msvc": "4.28.0", - "@rollup/rollup-win32-ia32-msvc": "4.28.0", - "@rollup/rollup-win32-x64-msvc": "4.28.0", + "@rollup/rollup-android-arm-eabi": "4.31.0", + "@rollup/rollup-android-arm64": "4.31.0", + "@rollup/rollup-darwin-arm64": "4.31.0", + "@rollup/rollup-darwin-x64": "4.31.0", + "@rollup/rollup-freebsd-arm64": "4.31.0", + "@rollup/rollup-freebsd-x64": "4.31.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", + "@rollup/rollup-linux-arm-musleabihf": "4.31.0", + "@rollup/rollup-linux-arm64-gnu": "4.31.0", + "@rollup/rollup-linux-arm64-musl": "4.31.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", + "@rollup/rollup-linux-riscv64-gnu": "4.31.0", + "@rollup/rollup-linux-s390x-gnu": "4.31.0", + "@rollup/rollup-linux-x64-gnu": "4.31.0", + "@rollup/rollup-linux-x64-musl": "4.31.0", + "@rollup/rollup-win32-arm64-msvc": "4.31.0", + "@rollup/rollup-win32-ia32-msvc": "4.31.0", + "@rollup/rollup-win32-x64-msvc": "4.31.0", "fsevents": "~2.3.2" } }, @@ -7684,9 +7752,9 @@ "license": "MIT" }, "node_modules/tinypool": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", - "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", "dev": true, "license": "MIT", "engines": { @@ -7694,9 +7762,9 @@ } }, "node_modules/tinyrainbow": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", - "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", "dev": true, "license": "MIT", "engines": { @@ -7923,9 +7991,9 @@ "license": "MIT" }, "node_modules/undici": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.2.1.tgz", - "integrity": "sha512-U2k0XHLJfaciARRxDcqTk2AZQsGXerHzdvfCZcy1hNhSf5KCAF4jIQQxL+apQviOekhRFPqED6Of5/+LcUSLzQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.3.0.tgz", + "integrity": "sha512-Qy96NND4Dou5jKoSJ2gm8ax8AJM/Ey9o9mz7KN1bb9GP+G0l20Zw8afxTnY2f4b7hmhn/z8aC2kfArVQlAhFBw==", "license": "MIT", "engines": { "node": ">=20.18.1" @@ -8101,21 +8169,21 @@ } }, "node_modules/vite": { - "version": "5.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", - "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", + "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -8124,19 +8192,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -8157,74 +8231,88 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vite-node": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", - "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.4.tgz", + "integrity": "sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==", "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.7", - "es-module-lexer": "^1.5.4", - "pathe": "^1.1.2", - "vite": "^5.0.0" + "debug": "^4.4.0", + "es-module-lexer": "^1.6.0", + "pathe": "^2.0.2", + "vite": "^5.0.0 || ^6.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-node/node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true, + "license": "MIT" + }, "node_modules/vitest": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", - "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.4.tgz", + "integrity": "sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "2.1.8", - "@vitest/mocker": "2.1.8", - "@vitest/pretty-format": "^2.1.8", - "@vitest/runner": "2.1.8", - "@vitest/snapshot": "2.1.8", - "@vitest/spy": "2.1.8", - "@vitest/utils": "2.1.8", + "@vitest/expect": "3.0.4", + "@vitest/mocker": "3.0.4", + "@vitest/pretty-format": "^3.0.4", + "@vitest/runner": "3.0.4", + "@vitest/snapshot": "3.0.4", + "@vitest/spy": "3.0.4", + "@vitest/utils": "3.0.4", "chai": "^5.1.2", - "debug": "^4.3.7", + "debug": "^4.4.0", "expect-type": "^1.1.0", - "magic-string": "^0.30.12", - "pathe": "^1.1.2", + "magic-string": "^0.30.17", + "pathe": "^2.0.2", "std-env": "^3.8.0", "tinybench": "^2.9.0", - "tinyexec": "^0.3.1", - "tinypool": "^1.0.1", - "tinyrainbow": "^1.2.0", - "vite": "^5.0.0", - "vite-node": "2.1.8", + "tinyexec": "^0.3.2", + "tinypool": "^1.0.2", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0", + "vite-node": "3.0.4", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.8", - "@vitest/ui": "2.1.8", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.0.4", + "@vitest/ui": "3.0.4", "happy-dom": "*", "jsdom": "*" }, @@ -8232,6 +8320,9 @@ "@edge-runtime/vm": { "optional": true }, + "@types/debug": { + "optional": true + }, "@types/node": { "optional": true }, @@ -8249,6 +8340,13 @@ } } }, + "node_modules/vitest/node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true, + "license": "MIT" + }, "node_modules/vue-eslint-parser": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", diff --git a/package.json b/package.json index 4c7e8ad9..63b90001 100644 --- a/package.json +++ b/package.json @@ -53,21 +53,21 @@ "dependencies": { "@stoprocent/noble": "^1.18.2", "async-mutex": "^0.5.0", - "undici": "7.2.1" + "undici": "7.3.0" }, "optionalDependencies": { "@stoprocent/bluetooth-hci-socket": "^1.4.4" }, "devDependencies": { - "@antfu/eslint-config": "^3.14.0", + "@antfu/eslint-config": "^3.16.0", "@types/aes-js": "^3.1.4", "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", "@types/mdast": "^4.0.4", - "@types/node": "^22.10.5", + "@types/node": "^22.10.10", "@types/semver": "^7.5.8", "@types/source-map-support": "^0.5.10", - "@vitest/coverage-v8": "^2.1.8", + "@vitest/coverage-v8": "^3.0.4", "eslint": "^9.18.0", "eslint-plugin-format": "^1.0.1", "nodemon": "^3.1.9", @@ -75,6 +75,6 @@ "ts-node": "^10.9.2", "typedoc": "^0.27.6", "typescript": "^5.7.3", - "vitest": "^2.1.8" + "vitest": "^3.0.4" } }