From e4a0ad2a53a2f839d94e2187656af9685eebe5d5 Mon Sep 17 00:00:00 2001 From: Daniel Padrino Date: Thu, 15 Feb 2024 21:06:33 -0300 Subject: [PATCH 1/3] Simple Earn module --- .../simpleEarn/getCollateralRecord.test.js | 28 + .../getFlexiblePersonalLeftQuota.test.js | 28 + .../simpleEarn/getFlexibleProductList.test.js | 28 + .../getFlexibleProductPosition.test.js | 29 + .../getFlexibleRedemptionRecord.test.js | 29 + .../getFlexibleRewardsRecord.test.js | 30 + .../getFlexibleSubscriptionPreview.test.js | 36 ++ .../getFlexibleSubscriptionRecord.test.js | 29 + .../getLockedPersonalLeftQuota.test.js | 28 + .../simpleEarn/getLockedProductList.test.js | 28 + .../getLockedProductPosition.test.js | 29 + .../getLockedRedemptionRecord.test.js | 29 + .../simpleEarn/getLockedRewardsRecord.test.js | 29 + .../getLockedSubscriptionPreview.test.js | 36 ++ .../getLockedSubscriptionRecord.test.js | 29 + .../spot/simpleEarn/getRateHistory.test.js | 28 + .../spot/simpleEarn/getSimpleAccount.test.js | 26 + .../simpleEarn/redeemFlexibleProduct.test.js | 28 + .../simpleEarn/redeemLockedProduct.test.js | 28 + .../setFlexibleAutoSubscribe.test.js | 36 ++ .../simpleEarn/setLockedAutoSubscribe.test.js | 36 ++ .../subscribeFlexibleProduct.test.js | 36 ++ .../simpleEarn/subscribeLockedProduct.test.js | 36 ++ src/modules/restful/index.js | 1 + src/modules/restful/simpleEarn.js | 545 ++++++++++++++++++ 25 files changed, 1245 insertions(+) create mode 100644 __tests__/spot/simpleEarn/getCollateralRecord.test.js create mode 100644 __tests__/spot/simpleEarn/getFlexiblePersonalLeftQuota.test.js create mode 100644 __tests__/spot/simpleEarn/getFlexibleProductList.test.js create mode 100644 __tests__/spot/simpleEarn/getFlexibleProductPosition.test.js create mode 100644 __tests__/spot/simpleEarn/getFlexibleRedemptionRecord.test.js create mode 100644 __tests__/spot/simpleEarn/getFlexibleRewardsRecord.test.js create mode 100644 __tests__/spot/simpleEarn/getFlexibleSubscriptionPreview.test.js create mode 100644 __tests__/spot/simpleEarn/getFlexibleSubscriptionRecord.test.js create mode 100644 __tests__/spot/simpleEarn/getLockedPersonalLeftQuota.test.js create mode 100644 __tests__/spot/simpleEarn/getLockedProductList.test.js create mode 100644 __tests__/spot/simpleEarn/getLockedProductPosition.test.js create mode 100644 __tests__/spot/simpleEarn/getLockedRedemptionRecord.test.js create mode 100644 __tests__/spot/simpleEarn/getLockedRewardsRecord.test.js create mode 100644 __tests__/spot/simpleEarn/getLockedSubscriptionPreview.test.js create mode 100644 __tests__/spot/simpleEarn/getLockedSubscriptionRecord.test.js create mode 100644 __tests__/spot/simpleEarn/getRateHistory.test.js create mode 100644 __tests__/spot/simpleEarn/getSimpleAccount.test.js create mode 100644 __tests__/spot/simpleEarn/redeemFlexibleProduct.test.js create mode 100644 __tests__/spot/simpleEarn/redeemLockedProduct.test.js create mode 100644 __tests__/spot/simpleEarn/setFlexibleAutoSubscribe.test.js create mode 100644 __tests__/spot/simpleEarn/setLockedAutoSubscribe.test.js create mode 100644 __tests__/spot/simpleEarn/subscribeFlexibleProduct.test.js create mode 100644 __tests__/spot/simpleEarn/subscribeLockedProduct.test.js create mode 100644 src/modules/restful/simpleEarn.js diff --git a/__tests__/spot/simpleEarn/getCollateralRecord.test.js b/__tests__/spot/simpleEarn/getCollateralRecord.test.js new file mode 100644 index 0000000..a8f325e --- /dev/null +++ b/__tests__/spot/simpleEarn/getCollateralRecord.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' + +describe('#getCollateralRecord', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.getCollateralRecord('') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe locked product', () => { + const parameters = { + productId + } + nockMock(`/sapi/v1/simple-earn/flexible/history/collateralRecord?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getCollateralRecord(productId).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getFlexiblePersonalLeftQuota.test.js b/__tests__/spot/simpleEarn/getFlexiblePersonalLeftQuota.test.js new file mode 100644 index 0000000..7e740f4 --- /dev/null +++ b/__tests__/spot/simpleEarn/getFlexiblePersonalLeftQuota.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' + +describe('#getFlexiblePersonalLeftQuota', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.getFlexiblePersonalLeftQuota('') + }).toThrow(MissingParameterError) + }) + }) + it('should redeem flexible product', () => { + const parameters = { + productId + } + nockMock(`/sapi/v1/simple-earn/flexible/personalLeftQuota?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.getFlexiblePersonalLeftQuota(productId).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getFlexibleProductList.test.js b/__tests__/spot/simpleEarn/getFlexibleProductList.test.js new file mode 100644 index 0000000..c340033 --- /dev/null +++ b/__tests__/spot/simpleEarn/getFlexibleProductList.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getFlexibleProductList', () => { + it('should return flexible product list', () => { + nockMock('/sapi/v1/simple-earn/flexible/list')(mockResponse) + + return SpotClient.getFlexibleProductList().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return flexible product list with params', () => { + const parameters = { + asset: 'USDT', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/flexible/list?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getFlexibleProductList(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getFlexibleProductPosition.test.js b/__tests__/spot/simpleEarn/getFlexibleProductPosition.test.js new file mode 100644 index 0000000..2e78696 --- /dev/null +++ b/__tests__/spot/simpleEarn/getFlexibleProductPosition.test.js @@ -0,0 +1,29 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getFlexibleProductPosition', () => { + it('should return flexible product position', () => { + nockMock('/sapi/v1/simple-earn/flexible/position')(mockResponse) + + return SpotClient.getFlexibleProductPosition().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return flexible product position with params', () => { + const parameters = { + asset: 'USDT', + productId: '1', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/flexible/position?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getFlexibleProductPosition(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getFlexibleRedemptionRecord.test.js b/__tests__/spot/simpleEarn/getFlexibleRedemptionRecord.test.js new file mode 100644 index 0000000..a064a29 --- /dev/null +++ b/__tests__/spot/simpleEarn/getFlexibleRedemptionRecord.test.js @@ -0,0 +1,29 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getFlexibleRedemptionRecord', () => { + it('should return flexible redemption records', () => { + nockMock('/sapi/v1/simple-earn/flexible/history/redemptionRecord')(mockResponse) + + return SpotClient.getFlexibleRedemptionRecord().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return flexible redemption records with params', () => { + const parameters = { + asset: 'USDT', + productId: '1', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/flexible/history/redemptionRecord?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getFlexibleRedemptionRecord(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getFlexibleRewardsRecord.test.js b/__tests__/spot/simpleEarn/getFlexibleRewardsRecord.test.js new file mode 100644 index 0000000..117cb11 --- /dev/null +++ b/__tests__/spot/simpleEarn/getFlexibleRewardsRecord.test.js @@ -0,0 +1,30 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') +const MissingParameterError = require('../../../src/error/missingParameterError') + +const type = 'FLEXIBLE' + +describe('#getFlexibleRewardsRecord', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.getFlexibleRewardsRecord('') + }).toThrow(MissingParameterError) + }) + }) + + it('should return locked records history with params', () => { + const parameters = { + type, + productId: '1', + asset: 'USDT' + } + nockMock(`/sapi/v1/simple-earn/flexible/history/rewardsRecord?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getFlexibleRewardsRecord(type, parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getFlexibleSubscriptionPreview.test.js b/__tests__/spot/simpleEarn/getFlexibleSubscriptionPreview.test.js new file mode 100644 index 0000000..3def1ae --- /dev/null +++ b/__tests__/spot/simpleEarn/getFlexibleSubscriptionPreview.test.js @@ -0,0 +1,36 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' +const amount = 10 + +describe('#getFlexibleSubscriptionPreview', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.getFlexibleSubscriptionPreview('', amount) + }).toThrow(MissingParameterError) + }) + + it('missing amount', () => { + expect(() => { + SpotClient.getFlexibleSubscriptionPreview(productId, '') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe locked product', () => { + const parameters = { + productId, + amount + } + nockMock(`/sapi/v1/simple-earn/flexible/subscriptionPreview?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.getFlexibleSubscriptionPreview(productId, amount).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getFlexibleSubscriptionRecord.test.js b/__tests__/spot/simpleEarn/getFlexibleSubscriptionRecord.test.js new file mode 100644 index 0000000..1edbac7 --- /dev/null +++ b/__tests__/spot/simpleEarn/getFlexibleSubscriptionRecord.test.js @@ -0,0 +1,29 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getFlexibleSubscriptionRecord', () => { + it('should return flexible subscription records', () => { + nockMock('/sapi/v1/simple-earn/flexible/history/subscriptionRecord')(mockResponse) + + return SpotClient.getFlexibleSubscriptionRecord().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return flexible subscription records with params', () => { + const parameters = { + asset: 'USDT', + purchaseId: '1', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/flexible/history/subscriptionRecord?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getFlexibleSubscriptionRecord(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getLockedPersonalLeftQuota.test.js b/__tests__/spot/simpleEarn/getLockedPersonalLeftQuota.test.js new file mode 100644 index 0000000..ed17e8a --- /dev/null +++ b/__tests__/spot/simpleEarn/getLockedPersonalLeftQuota.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' + +describe('#getLockedPersonalLeftQuota', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.getLockedPersonalLeftQuota('') + }).toThrow(MissingParameterError) + }) + }) + it('should redeem flexible product', () => { + const parameters = { + productId + } + nockMock(`/sapi/v1/simple-earn/locked/personalLeftQuota?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.getLockedPersonalLeftQuota(productId).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getLockedProductList.test.js b/__tests__/spot/simpleEarn/getLockedProductList.test.js new file mode 100644 index 0000000..4251382 --- /dev/null +++ b/__tests__/spot/simpleEarn/getLockedProductList.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getLockedProductList', () => { + it('should return locked product list', () => { + nockMock('/sapi/v1/simple-earn/locked/list')(mockResponse) + + return SpotClient.getLockedProductList().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return locked product list with params', () => { + const parameters = { + asset: 'USDT', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/locked/list?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getLockedProductList(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getLockedProductPosition.test.js b/__tests__/spot/simpleEarn/getLockedProductPosition.test.js new file mode 100644 index 0000000..fded184 --- /dev/null +++ b/__tests__/spot/simpleEarn/getLockedProductPosition.test.js @@ -0,0 +1,29 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getLockedProductPosition', () => { + it('should return locked product position', () => { + nockMock('/sapi/v1/simple-earn/locked/position')(mockResponse) + + return SpotClient.getLockedProductPosition().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return locked product position with params', () => { + const parameters = { + asset: 'USDT', + productId: '1', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/locked/position?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getLockedProductPosition(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getLockedRedemptionRecord.test.js b/__tests__/spot/simpleEarn/getLockedRedemptionRecord.test.js new file mode 100644 index 0000000..53e6f71 --- /dev/null +++ b/__tests__/spot/simpleEarn/getLockedRedemptionRecord.test.js @@ -0,0 +1,29 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getLockedRedemptionRecord', () => { + it('should return locked redemption records', () => { + nockMock('/sapi/v1/simple-earn/locked/history/redemptionRecord')(mockResponse) + + return SpotClient.getLockedRedemptionRecord().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return locked redemption records with params', () => { + const parameters = { + asset: 'USDT', + productId: '1', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/locked/history/redemptionRecord?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getLockedRedemptionRecord(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getLockedRewardsRecord.test.js b/__tests__/spot/simpleEarn/getLockedRewardsRecord.test.js new file mode 100644 index 0000000..30dff36 --- /dev/null +++ b/__tests__/spot/simpleEarn/getLockedRewardsRecord.test.js @@ -0,0 +1,29 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getLockedRewardsRecord', () => { + it('should return locked records history', () => { + nockMock('/sapi/v1/simple-earn/locked/history/rewardsRecord')(mockResponse) + + return SpotClient.getLockedRewardsRecord().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return locked records history with params', () => { + const parameters = { + asset: 'USDT', + positionId: '1', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/locked/history/rewardsRecord?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getLockedRewardsRecord(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getLockedSubscriptionPreview.test.js b/__tests__/spot/simpleEarn/getLockedSubscriptionPreview.test.js new file mode 100644 index 0000000..22e5e97 --- /dev/null +++ b/__tests__/spot/simpleEarn/getLockedSubscriptionPreview.test.js @@ -0,0 +1,36 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' +const amount = 10 + +describe('#getLockedSubscriptionPreview', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.getLockedSubscriptionPreview('', amount) + }).toThrow(MissingParameterError) + }) + + it('missing amount', () => { + expect(() => { + SpotClient.getLockedSubscriptionPreview(productId, '') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe locked product', () => { + const parameters = { + productId, + amount + } + nockMock(`/sapi/v1/simple-earn/locked/subscriptionPreview?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.getLockedSubscriptionPreview(productId, amount).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getLockedSubscriptionRecord.test.js b/__tests__/spot/simpleEarn/getLockedSubscriptionRecord.test.js new file mode 100644 index 0000000..85537d3 --- /dev/null +++ b/__tests__/spot/simpleEarn/getLockedSubscriptionRecord.test.js @@ -0,0 +1,29 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getLockedSubscriptionRecord', () => { + it('should return locked subscription records', () => { + nockMock('/sapi/v1/simple-earn/locked/history/subscriptionRecord')(mockResponse) + + return SpotClient.getLockedSubscriptionRecord().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return locked subscription records with params', () => { + const parameters = { + asset: 'USDT', + purchaseId: '1', + current: 5, + size: 10 + } + nockMock(`/sapi/v1/simple-earn/locked/history/subscriptionRecord?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getLockedSubscriptionRecord(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getRateHistory.test.js b/__tests__/spot/simpleEarn/getRateHistory.test.js new file mode 100644 index 0000000..4cbdabf --- /dev/null +++ b/__tests__/spot/simpleEarn/getRateHistory.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' + +describe('#getRateHistory', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.getRateHistory('') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe locked product', () => { + const parameters = { + productId + } + nockMock(`/sapi/v1/simple-earn/flexible/history/rateHistory?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getRateHistory(productId).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/getSimpleAccount.test.js b/__tests__/spot/simpleEarn/getSimpleAccount.test.js new file mode 100644 index 0000000..f4f093e --- /dev/null +++ b/__tests__/spot/simpleEarn/getSimpleAccount.test.js @@ -0,0 +1,26 @@ +/* global describe, it, expect */ +const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') +const { mockResponse } = require('../../testUtils/mockData') + +describe('#getSimpleAccount', () => { + it('should return simple account details', () => { + nockMock('/sapi/v1/simple-earn/account')(mockResponse) + + return SpotClient.getSimpleAccount().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) + + it('should return simple account details with params', () => { + const parameters = { + recvWindow: 1000 + } + nockMock(`/sapi/v1/simple-earn/account?${buildQueryString(parameters)}`)(mockResponse) + + return SpotClient.getSimpleAccount(parameters).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/redeemFlexibleProduct.test.js b/__tests__/spot/simpleEarn/redeemFlexibleProduct.test.js new file mode 100644 index 0000000..e2c0a76 --- /dev/null +++ b/__tests__/spot/simpleEarn/redeemFlexibleProduct.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' + +describe('#redeemFlexibleProduct', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.redeemFlexibleProduct('') + }).toThrow(MissingParameterError) + }) + }) + it('should redeem flexible product', () => { + const parameters = { + productId + } + nockPostMock(`/sapi/v1/simple-earn/flexible/redeem?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.redeemFlexibleProduct(productId).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/redeemLockedProduct.test.js b/__tests__/spot/simpleEarn/redeemLockedProduct.test.js new file mode 100644 index 0000000..b4db459 --- /dev/null +++ b/__tests__/spot/simpleEarn/redeemLockedProduct.test.js @@ -0,0 +1,28 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' + +describe('#redeemFlexibleProduct', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.redeemFlexibleProduct('') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe flexible product', () => { + const parameters = { + productId + } + nockPostMock(`/sapi/v1/simple-earn/flexible/redeem?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.redeemFlexibleProduct(productId).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/setFlexibleAutoSubscribe.test.js b/__tests__/spot/simpleEarn/setFlexibleAutoSubscribe.test.js new file mode 100644 index 0000000..31757ba --- /dev/null +++ b/__tests__/spot/simpleEarn/setFlexibleAutoSubscribe.test.js @@ -0,0 +1,36 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' +const autoSubscribe = true + +describe('#setFlexibleAutoSubscribe', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.setFlexibleAutoSubscribe('', autoSubscribe) + }).toThrow(MissingParameterError) + }) + + it('missing autoSubscribe', () => { + expect(() => { + SpotClient.setFlexibleAutoSubscribe(productId, '') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe flexible product', () => { + const parameters = { + productId, + autoSubscribe + } + nockPostMock(`/sapi/v1/simple-earn/flexible/setAutoSubscribe?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.setFlexibleAutoSubscribe(productId, autoSubscribe).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/setLockedAutoSubscribe.test.js b/__tests__/spot/simpleEarn/setLockedAutoSubscribe.test.js new file mode 100644 index 0000000..decea8d --- /dev/null +++ b/__tests__/spot/simpleEarn/setLockedAutoSubscribe.test.js @@ -0,0 +1,36 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' +const autoSubscribe = true + +describe('#setLockedAutoSubscribe', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.setLockedAutoSubscribe('', autoSubscribe) + }).toThrow(MissingParameterError) + }) + + it('missing autoSubscribe', () => { + expect(() => { + SpotClient.setLockedAutoSubscribe(productId, '') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe flexible product', () => { + const parameters = { + productId, + autoSubscribe + } + nockPostMock(`/sapi/v1/simple-earn/locked/setAutoSubscribe?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.setLockedAutoSubscribe(productId, autoSubscribe).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/subscribeFlexibleProduct.test.js b/__tests__/spot/simpleEarn/subscribeFlexibleProduct.test.js new file mode 100644 index 0000000..fd420fd --- /dev/null +++ b/__tests__/spot/simpleEarn/subscribeFlexibleProduct.test.js @@ -0,0 +1,36 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' +const amount = 10 + +describe('#subscribeFlexibleProduct', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.subscribeFlexibleProduct('', amount) + }).toThrow(MissingParameterError) + }) + + it('missing amount', () => { + expect(() => { + SpotClient.subscribeFlexibleProduct(productId, '') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe flexible product', () => { + const parameters = { + productId, + amount + } + nockPostMock(`/sapi/v1/simple-earn/flexible/subscribe?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.subscribeFlexibleProduct(productId, amount).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/__tests__/spot/simpleEarn/subscribeLockedProduct.test.js b/__tests__/spot/simpleEarn/subscribeLockedProduct.test.js new file mode 100644 index 0000000..a1c2e18 --- /dev/null +++ b/__tests__/spot/simpleEarn/subscribeLockedProduct.test.js @@ -0,0 +1,36 @@ +/* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') +const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') + +const { mockResponse } = require('../../testUtils/mockData') + +const productId = '1' +const amount = 10 + +describe('#subscribeLockedProduct', () => { + describe('throw MissingParameterError', () => { + it('missing productId', () => { + expect(() => { + SpotClient.subscribeLockedProduct('', amount) + }).toThrow(MissingParameterError) + }) + + it('missing amount', () => { + expect(() => { + SpotClient.subscribeLockedProduct(productId, '') + }).toThrow(MissingParameterError) + }) + }) + it('should suscribe locked product', () => { + const parameters = { + productId, + amount + } + nockPostMock(`/sapi/v1/simple-earn/locked/subscribe?${buildQueryString({ ...parameters })}`)(mockResponse) + + return SpotClient.subscribeLockedProduct(productId, amount).then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) + }) + }) +}) diff --git a/src/modules/restful/index.js b/src/modules/restful/index.js index aa17535..64de468 100644 --- a/src/modules/restful/index.js +++ b/src/modules/restful/index.js @@ -19,3 +19,4 @@ module.exports.Rebate = require('./rebate') module.exports.NFT = require('./nft') module.exports.GiftCard = require('./giftCard') module.exports.PortfolioMargin = require('./portfolioMargin') +module.exports.SimpleEarn = require('./simpleEarn') diff --git a/src/modules/restful/simpleEarn.js b/src/modules/restful/simpleEarn.js new file mode 100644 index 0000000..3e057f7 --- /dev/null +++ b/src/modules/restful/simpleEarn.js @@ -0,0 +1,545 @@ +'use strict' + +const { validateRequiredParameters } = require('../../helpers/validation') + +/** + * API Simple Earn endpoints + * @module SimpleEarn + * @param {*} superclass + */ +const SimpleEarn = superclass => class extends superclass { + /** + * Get Simple Earn Flexible Product List (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/list
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-simple-earn-flexible-product-list-user_data} + * + * @param {object} [options] + * @param {string} [options.asset] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getFlexibleProductList (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/list', + options + ) + } + + /** + * Get Simple Earn Locked Product List (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/locked/list
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-simple-earn-locked-product-list-user_data} + * + * @param {object} [options] + * @param {string} [options.asset] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getLockedProductList (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/locked/list', + options + ) + } + + /** + * Subscribe Flexible Product (TRADE)
+ * + * POST /sapi/v1/simple-earn/flexible/subscribe
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-simple-earn-locked-product-list-user_data} + * + * @param {string} productId + * @param {number} amount + * @param {object} options + * @param {boolean} [options.autoSubscribe] + * @param {string} [options.sourceAccount] + * @param {number} [options.recvWindow] + * + */ + subscribeFlexibleProduct (productId, amount, options = {}) { + validateRequiredParameters({ productId, amount }) + return this.signRequest( + 'POST', + '/sapi/v1/simple-earn/flexible/subscribe', + Object.assign(options, { productId, amount }) + ) + } + + /** + * Subscribe Locked Product (TRADE)
+ * + * POST /sapi/v1/simple-earn/locked/subscribe
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#subscribe-locked-product-trade} + * + * @param {string} productId + * @param {number} amount + * @param {object} options + * @param {boolean} [options.autoSubscribe] + * @param {string} [options.sourceAccount] + * @param {number} [options.recvWindow] + * + */ + subscribeLockedProduct (productId, amount, options = {}) { + validateRequiredParameters({ productId, amount }) + return this.signRequest( + 'POST', + '/sapi/v1/simple-earn/locked/subscribe', + Object.assign(options, { productId, amount }) + ) + } + + /** + * Redeem Flexible Product (TRADE)
+ * + * POST /sapi/v1/simple-earn/flexible/redeem
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#redeem-flexible-product-trade} + * + * @param {string} productId + * @param {object} options + * @param {boolean} [options.redeemAll] // true or false, default to false + * @param {number} [options.amount] // if redeemAll is false, amount is mandatory + * @param {string} [options.destAccount] + * @param {number} [options.recvWindow] + * + */ + redeemFlexibleProduct (productId, options = {}) { + validateRequiredParameters({ productId }) + return this.signRequest( + 'POST', + '/sapi/v1/simple-earn/flexible/redeem', + Object.assign(options, { productId }) + ) + } + + /** + * Redeem Locked Product (TRADE)
+ * + * POST /sapi/v1/simple-earn/locked/redeem
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#redeem-locked-product-trade} + * + * @param {string} productId + * @param {object} options + * @param {number} [options.recvWindow] + * + */ + redeemLockedProduct (productId, options = {}) { + validateRequiredParameters({ productId }) + return this.signRequest( + 'POST', + '/sapi/v1/simple-earn/locked/redeem', + Object.assign(options, { productId }) + ) + } + + /** + * Get Flexible Product Position (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/position
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-product-position-user_data} + * + * + * @param {object} options + * @param {string} [options.asset] + * @param {string} [options.productId] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getFlexibleProductPosition (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/position', + options + ) + } + + /** + * Get Locked Product Position (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/locked/position
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-product-position-user_data} + * + * + * @param {object} options + * @param {string} [options.asset] + * @param {string} [options.productId] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getLockedProductPosition (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/locked/position', + options + ) + } + + /** + * Get Simple Account (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/account
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-simple-account-user_data} + * + * @param {object} options + * @param {number} [options.recvWindow] + * + */ + getSimpleAccount (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/account', + options + ) + } + + /** + * Get Flexible Subscription Record (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/history/subscriptionRecord
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-subscription-record-user_data} + * + * @param {object} options + * @param {string} [options.productId] + * @param {string} [options.purchaseId] + * @param {string} [options.asset] + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getFlexibleSubscriptionRecord (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/history/subscriptionRecord', + options + ) + } + + /** + * Get Locked Subscription Record (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/locked/history/subscriptionRecord
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-subscription-record-user_data} + * + * @param {object} options + * @param {string} [options.purchaseId] + * @param {string} [options.asset] + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getLockedSubscriptionRecord (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/locked/history/subscriptionRecord', + options + ) + } + + /** + * Get Flexible Redemption Record (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/history/redemptionRecord
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-redemption-record-user_data} + * + * @param {object} options + * @param {string} [options.productId] + * @param {string} [options.redeemId] + * @param {string} [options.asset] + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getFlexibleRedemptionRecord (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/history/redemptionRecord', + options + ) + } + + /** + * Get Locked Redemption Record (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/locked/history/redemptionRecord
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-redemption-record-user_data} + * + * @param {object} options + * @param {string} [options.redeemId] + * @param {string} [options.asset] + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getLockedRedemptionRecord (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/locked/history/redemptionRecord', + options + ) + } + + /** + * Get Flexible Rewards History (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/history/rewardsRecord
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-rewards-history-user_data} + * + * @param {object} options + * @param {string} type + * @param {string} [options.productId] + * @param {string} [options.asset] + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getFlexibleRewardsRecord (type, options = {}) { + validateRequiredParameters({ type }) + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/history/rewardsRecord', + Object.assign(options, { type }) + ) + } + + /** + * Get Locked Rewards History (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/locked/history/rewardsRecord
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-rewards-history-user_data} + * + * @param {object} options + * @param {string} [options.positionId] + * @param {string} [options.asset] + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getLockedRewardsRecord (options = {}) { + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/locked/history/rewardsRecord', + options + ) + } + + /** + * Set Flexible Auto Subscribe (USER_DATA)
+ * + * POST /sapi/v1/simple-earn/flexible/setAutoSubscribe
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#set-flexible-auto-subscribe-user_data} + * + * @param {string} productId + * @param {boolean} autoSubscribe + * @param {object} [options] + * @param {number} [options.recvWindow] + * + */ + setFlexibleAutoSubscribe (productId, autoSubscribe, options = {}) { + validateRequiredParameters({ productId, autoSubscribe }) + return this.signRequest( + 'POST', + '/sapi/v1/simple-earn/flexible/setAutoSubscribe', + Object.assign(options, { productId, autoSubscribe }) + ) + } + + /** + * Set Locked Auto Subscribe (USER_DATA)
+ * + * POST /sapi/v1/simple-earn/locked/setAutoSubscribe
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#set-locked-auto-subscribe-user_data} + * + * @param {string} productId + * @param {boolean} autoSubscribe + * @param {object} [options] + * @param {number} [options.recvWindow] + * + */ + setLockedAutoSubscribe (productId, autoSubscribe, options = {}) { + validateRequiredParameters({ productId, autoSubscribe }) + return this.signRequest( + 'POST', + '/sapi/v1/simple-earn/locked/setAutoSubscribe', + Object.assign(options, { productId, autoSubscribe }) + ) + } + + /** + * Get Flexible Personal Left Quota (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/personalLeftQuota
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-personal-left-quota-user_data} + * + * @param {string} productId + * @param {number} [options.recvWindow] + * + */ + getFlexiblePersonalLeftQuota (productId, options = {}) { + validateRequiredParameters({ productId }) + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/personalLeftQuota', + Object.assign(options, { productId }) + ) + } + + /** + * Get Locked Personal Left Quota (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/locked/personalLeftQuota
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-personal-left-quota-user_data} + * + * @param {string} productId + * @param {number} [options.recvWindow] + * + */ + getLockedPersonalLeftQuota (productId, options = {}) { + validateRequiredParameters({ productId }) + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/locked/personalLeftQuota', + Object.assign(options, { productId }) + ) + } + + /** + * Get Flexible Subscription Preview (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/subscriptionPreview
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-subscription-preview-user_data} + * + * @param {string} productId + * @param {number} amount + * @param {object} [options] + * @param {number} [options.recvWindow] + * + */ + getFlexibleSubscriptionPreview (productId, amount, options = {}) { + validateRequiredParameters({ productId, amount }) + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/subscriptionPreview', + Object.assign(options, { productId, amount }) + ) + } + + /** + * Get Locked Subscription Preview (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/locked/subscriptionPreview
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-subscription-preview-user_data} + * + * @param {string} productId + * @param {number} amount + * @param {object} [options] + * @param {number} [options.recvWindow] + * + */ + getLockedSubscriptionPreview (productId, amount, options = {}) { + validateRequiredParameters({ productId, amount }) + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/locked/subscriptionPreview', + Object.assign(options, { productId, amount }) + ) + } + + /** + * Get Rate History (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/history/rateHistory
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-rate-history-user_data} + * + * @param {string} productId + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getRateHistory (productId, options = {}) { + validateRequiredParameters({ productId }) + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/history/rateHistory', + Object.assign(options, { productId }) + ) + } + + /** + * Get Collateral Record (USER_DATA)
+ * + * GET /sapi/v1/simple-earn/flexible/history/collateralRecord
+ * + * {@link https://binance-docs.github.io/apidocs/spot/en/#get-collateral-record-user_data} + * + * @param {string} productId + * @param {number} [options.startTime] + * @param {number} [options.endTime] + * @param {number} [options.current] + * @param {number} [options.size] + * @param {number} [options.recvWindow] + * + */ + getCollateralRecord (productId, options = {}) { + validateRequiredParameters({ productId }) + return this.signRequest( + 'GET', + '/sapi/v1/simple-earn/flexible/history/collateralRecord', + Object.assign(options, { productId }) + ) + } +} +module.exports = SimpleEarn From cdc35d1361b3da60727fe6a9a161fb7b37f8c15b Mon Sep 17 00:00:00 2001 From: alplabin <122352306+alplabin@users.noreply.github.com> Date: Thu, 4 Apr 2024 18:01:12 +0900 Subject: [PATCH 2/3] v3.3.0 --- CHANGELOG.md | 5 + package-lock.json | 1400 +++++++++++++++++++++++++-------------------- package.json | 2 +- 3 files changed, 782 insertions(+), 625 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 654d35c..dcdf420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 3.3.0 - 2024-04-04 + +### Changed +- Update dependencies + ## 3.2.0 - 2024-01-23 ### Changed diff --git a/package-lock.json b/package-lock.json index 73a9435..f631983 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@binance/connector", - "version": "3.2.0", + "version": "3.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@binance/connector", - "version": "3.2.0", + "version": "3.3.0", "license": "MIT", "dependencies": { "axios": "^1.6", @@ -36,127 +36,56 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", - "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.5", - "@babel/parser": "^7.23.5", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -172,14 +101,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", "dev": true, "dependencies": { - "@babel/types": "^7.23.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -187,14 +116,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -237,12 +166,12 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -268,9 +197,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -301,9 +230,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -328,28 +257,29 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", - "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -427,9 +357,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -499,12 +429,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -601,12 +531,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -616,34 +546,34 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -651,9 +581,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", @@ -695,9 +625,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -724,9 +654,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -763,22 +693,22 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -799,9 +729,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -1108,45 +1038,45 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "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, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "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, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "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, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { @@ -1156,9 +1086,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1166,9 +1096,9 @@ } }, "node_modules/@jsdoc/salty": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.6.tgz", - "integrity": "sha512-aA+awb5yoml8TQ3CzI5Ue7sM3VMRC4l1zJJW4fgZ8OCL1wshJZhNzaf0PL85DSnOUw6QuFgeHGD/eq/xwwAF2g==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.7.tgz", + "integrity": "sha512-mh8LbS9d4Jq84KLw8pzho7XC2q2/IJGiJss3xwRoLD1A+EE16SjN4PfaG4jRCzKegTFLlN0Zd8SdUPE6XdoPFg==", "dev": true, "dependencies": { "lodash": "^4.17.21" @@ -1219,9 +1149,9 @@ "dev": true }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -1250,9 +1180,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "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, "dependencies": { "@babel/types": "^7.0.0" @@ -1269,9 +1199,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" @@ -1339,9 +1269,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.1.tgz", - "integrity": "sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==", + "version": "20.12.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.4.tgz", + "integrity": "sha512-E+Fa9z3wSQpzgYQdYmme5X3OTuejnnTx88A6p6vkkJosR3KBz+HpE3kqNm98VE6cfLFcISx7zW7MsJkH6KwbTw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1375,9 +1305,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1473,28 +1403,32 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -1504,17 +1438,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -1559,31 +1514,44 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { + "node_modules/array.prototype.toreversed": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -1593,25 +1561,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -1620,11 +1582,11 @@ } }, "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -1771,9 +1733,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -1790,9 +1752,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -1839,9 +1801,9 @@ } }, "node_modules/builtins/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1860,14 +1822,19 @@ "dev": true }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1902,9 +1869,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001565", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", - "integrity": "sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==", + "version": "1.0.30001605", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", + "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", "dev": true, "funding": [ { @@ -1980,9 +1947,9 @@ "dev": true }, "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -1992,9 +1959,9 @@ } }, "node_modules/clean-jsdoc-theme": { - "version": "4.2.17", - "resolved": "https://registry.npmjs.org/clean-jsdoc-theme/-/clean-jsdoc-theme-4.2.17.tgz", - "integrity": "sha512-5SbJNXcQHUXd7N13g+3OpGFiBQdxz36xwEP3p1r1vbo/apLcDRtugaFdUZ56H6Rvlb68Q33EChoBkajSlnD11w==", + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/clean-jsdoc-theme/-/clean-jsdoc-theme-4.2.18.tgz", + "integrity": "sha512-iPz34GEhTZGW33Oi25IUgW1suGFuQZoDoCjn82BEI7Ck83CvJisrrxYv3WLjHA/wz8g82wy8WsUyRiTGajUZdw==", "dev": true, "dependencies": { "@jsdoc/salty": "^0.2.4", @@ -2123,6 +2090,57 @@ "node": ">= 8" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2170,17 +2188,20 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -2249,9 +2270,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.597", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.597.tgz", - "integrity": "sha512-0XOQNqHhg2YgRVRUrS4M4vWjFCFIP2ETXcXe/0KIQBjXE9Cpy+tgzzYfuq6HGai3hWq0YywtG+5XK8fyG08EjA==", + "version": "1.4.726", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.726.tgz", + "integrity": "sha512-xtjfBXn53RORwkbyKvDfTajtnTp0OJoPOIBzXvkNbb7+YYvCHJflba3L7Txyx/6Fov3ov2bGPr/n5MTixmPhdQ==", "dev": true }, "node_modules/emittery": { @@ -2294,50 +2315,57 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -2346,37 +2374,73 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", "dev": true, "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", + "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -2409,9 +2473,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -2427,16 +2491,16 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -2555,9 +2619,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -2624,9 +2688,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", @@ -2645,7 +2709,7 @@ "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -2713,9 +2777,9 @@ } }, "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2746,27 +2810,29 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" @@ -2894,9 +2960,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3101,9 +3167,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -3170,15 +3236,15 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -3305,16 +3371,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3353,13 +3423,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -3467,21 +3538,21 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -3503,12 +3574,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -3518,9 +3589,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -3578,9 +3649,9 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -3656,12 +3727,12 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -3670,14 +3741,16 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3756,6 +3829,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -3838,18 +3926,21 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -3908,21 +3999,27 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3971,12 +4068,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -3986,10 +4083,13 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4007,13 +4107,16 @@ } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4041,14 +4144,14 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@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" }, @@ -4069,9 +4172,9 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4118,9 +4221,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4616,9 +4719,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5077,9 +5180,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5268,9 +5371,9 @@ } }, "node_modules/nock": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.4.0.tgz", - "integrity": "sha512-W8NVHjO/LCTNA64yxAPHV/K47LpGYcVzgKd3Q0n6owhwvD0Dgoterc25R4rnZbckJEb6Loxz1f5QMuJpJnbSyQ==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", + "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -5288,9 +5391,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-path": { @@ -5342,13 +5445,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -5360,28 +5463,29 @@ } }, "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -5391,39 +5495,45 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "dev": true, "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -5729,6 +5839,15 @@ "node": ">=8" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -5818,9 +5937,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -5860,15 +5979,16 @@ "dev": true }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -5880,14 +6000,15 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -6031,13 +6152,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -6049,15 +6170,18 @@ } }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6072,29 +6196,32 @@ } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6147,14 +6274,18 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6312,34 +6443,41 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6349,28 +6487,31 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6443,9 +6584,9 @@ } }, "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "version": "5.30.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", + "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -6524,9 +6665,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -6596,29 +6737,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6628,16 +6770,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6647,14 +6790,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6831,31 +6980,34 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6901,9 +7053,9 @@ } }, "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "engines": { "node": ">=10.0.0" }, diff --git a/package.json b/package.json index 817fe6a..3faeeea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@binance/connector", - "version": "3.2.0", + "version": "3.3.0", "description": "This is a lightweight library that works as a connector to the Binance public API.", "main": "src/index.js", "scripts": { From 2367915a8bc2f73e8af1e416116c7536a9b4126c Mon Sep 17 00:00:00 2001 From: alplabin <122352306+alplabin@users.noreply.github.com> Date: Thu, 4 Apr 2024 18:22:01 +0900 Subject: [PATCH 3/3] v3.3.0 --- CHANGELOG.md | 26 ++++++ .../getCollateralRecord.test.js | 21 ++--- .../getFlexiblePersonalLeftQuota.test.js | 2 +- .../getFlexibleProductList.test.js | 0 .../getFlexibleProductPosition.test.js | 0 .../getFlexibleRedemptionRecord.test.js | 0 .../getFlexibleRewardsRecord.test.js | 6 +- .../getFlexibleSubscriptionPreview.test.js | 3 +- .../getFlexibleSubscriptionRecord.test.js | 0 .../getLockedPersonalLeftQuota.test.js | 11 ++- .../getLockedProductList.test.js | 0 .../getLockedProductPosition.test.js | 2 +- .../getLockedRedemptionRecord.test.js | 2 +- .../getLockedRewardsRecord.test.js | 0 .../getLockedSubscriptionPreview.test.js | 13 ++- .../getLockedSubscriptionRecord.test.js | 0 .../getRateHistory.test.js | 3 +- .../getSimpleAccount.test.js | 0 .../redeemFlexibleProduct.test.js | 1 - .../redeemLockedProduct.test.js | 17 ++-- .../setFlexibleAutoSubscribe.test.js | 1 - .../setLockedAutoSubscribe.test.js | 13 ++- .../subscribeFlexibleProduct.test.js | 3 +- .../subscribeLockedProduct.test.js | 13 ++- .../spot/simple_earn/getCollateralRecord.js | 9 ++ .../getFlexiblePersonalLeftQuota.js | 9 ++ .../simple_earn/getFlexibleProductList.js | 9 ++ .../simple_earn/getFlexibleProductPosition.js | 9 ++ .../getFlexibleRedemptionRecord.js | 9 ++ .../simple_earn/getFlexibleRewardsRecord.js | 9 ++ .../getFlexibleSubscriptionPreview.js | 9 ++ .../getFlexibleSubscriptionRecord.js | 9 ++ .../simple_earn/getLockedPersonalLeftQuota.js | 9 ++ .../spot/simple_earn/getLockedProductList.js | 9 ++ .../simple_earn/getLockedProductPosition.js | 9 ++ .../simple_earn/getLockedRedemptionRecord.js | 9 ++ .../simple_earn/getLockedRewardsRecord.js | 9 ++ .../getLockedSubscriptionPreview.js | 9 ++ .../getLockedSubscriptionRecord.js | 9 ++ examples/spot/simple_earn/getRateHistory.js | 9 ++ examples/spot/simple_earn/getSimpleAccount.js | 9 ++ .../spot/simple_earn/redeemFlexibleProduct.js | 9 ++ .../spot/simple_earn/redeemLockedProduct.js | 9 ++ .../simple_earn/setFlexibleAutoSubscribe.js | 9 ++ .../simple_earn/setLockedAutoSubscribe.js | 9 ++ .../simple_earn/subscribeFlexibleProduct.js | 9 ++ .../simple_earn/subscribeLockedProduct.js | 9 ++ src/modules/restful/simpleEarn.js | 89 ++++++++++--------- 48 files changed, 329 insertions(+), 104 deletions(-) rename __tests__/spot/{simpleEarn => simple_earn}/getCollateralRecord.test.js (52%) rename __tests__/spot/{simpleEarn => simple_earn}/getFlexiblePersonalLeftQuota.test.js (93%) rename __tests__/spot/{simpleEarn => simple_earn}/getFlexibleProductList.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/getFlexibleProductPosition.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/getFlexibleRedemptionRecord.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/getFlexibleRewardsRecord.test.js (91%) rename __tests__/spot/{simpleEarn => simple_earn}/getFlexibleSubscriptionPreview.test.js (94%) rename __tests__/spot/{simpleEarn => simple_earn}/getFlexibleSubscriptionRecord.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/getLockedPersonalLeftQuota.test.js (79%) rename __tests__/spot/{simpleEarn => simple_earn}/getLockedProductList.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/getLockedProductPosition.test.js (97%) rename __tests__/spot/{simpleEarn => simple_earn}/getLockedRedemptionRecord.test.js (97%) rename __tests__/spot/{simpleEarn => simple_earn}/getLockedRewardsRecord.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/getLockedSubscriptionPreview.test.js (77%) rename __tests__/spot/{simpleEarn => simple_earn}/getLockedSubscriptionRecord.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/getRateHistory.test.js (94%) rename __tests__/spot/{simpleEarn => simple_earn}/getSimpleAccount.test.js (100%) rename __tests__/spot/{simpleEarn => simple_earn}/redeemFlexibleProduct.test.js (99%) rename __tests__/spot/{simpleEarn => simple_earn}/redeemLockedProduct.test.js (57%) rename __tests__/spot/{simpleEarn => simple_earn}/setFlexibleAutoSubscribe.test.js (99%) rename __tests__/spot/{simpleEarn => simple_earn}/setLockedAutoSubscribe.test.js (76%) rename __tests__/spot/{simpleEarn => simple_earn}/subscribeFlexibleProduct.test.js (95%) rename __tests__/spot/{simpleEarn => simple_earn}/subscribeLockedProduct.test.js (78%) create mode 100644 examples/spot/simple_earn/getCollateralRecord.js create mode 100644 examples/spot/simple_earn/getFlexiblePersonalLeftQuota.js create mode 100644 examples/spot/simple_earn/getFlexibleProductList.js create mode 100644 examples/spot/simple_earn/getFlexibleProductPosition.js create mode 100644 examples/spot/simple_earn/getFlexibleRedemptionRecord.js create mode 100644 examples/spot/simple_earn/getFlexibleRewardsRecord.js create mode 100644 examples/spot/simple_earn/getFlexibleSubscriptionPreview.js create mode 100644 examples/spot/simple_earn/getFlexibleSubscriptionRecord.js create mode 100644 examples/spot/simple_earn/getLockedPersonalLeftQuota.js create mode 100644 examples/spot/simple_earn/getLockedProductList.js create mode 100644 examples/spot/simple_earn/getLockedProductPosition.js create mode 100644 examples/spot/simple_earn/getLockedRedemptionRecord.js create mode 100644 examples/spot/simple_earn/getLockedRewardsRecord.js create mode 100644 examples/spot/simple_earn/getLockedSubscriptionPreview.js create mode 100644 examples/spot/simple_earn/getLockedSubscriptionRecord.js create mode 100644 examples/spot/simple_earn/getRateHistory.js create mode 100644 examples/spot/simple_earn/getSimpleAccount.js create mode 100644 examples/spot/simple_earn/redeemFlexibleProduct.js create mode 100644 examples/spot/simple_earn/redeemLockedProduct.js create mode 100644 examples/spot/simple_earn/setFlexibleAutoSubscribe.js create mode 100644 examples/spot/simple_earn/setLockedAutoSubscribe.js create mode 100644 examples/spot/simple_earn/subscribeFlexibleProduct.js create mode 100644 examples/spot/simple_earn/subscribeLockedProduct.js diff --git a/CHANGELOG.md b/CHANGELOG.md index dcdf420..0f8fb5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,32 @@ ## 3.3.0 - 2024-04-04 +### Added +- Add Simple Earn endpoints: + - `GET /sapi/v1/simple-earn/flexible/list` to query available Simple Earn flexible product list + - `GET /sapi/v1/simple-earn/locked/list` to query available Simple Earn locked product list + - `POST /sapi/v1/simple-earn/flexible/subscribe` to subscribe to a flexible product + - `POST /sapi/v1/simple-earn/locked/subscribe` to subscribe to a locked product + - `POST /sapi/v1/simple-earn/flexible/redeem` to redeem a flexible product + - `POST /sapi/v1/simple-earn/locked/redeem` to redeem a locked product + - `GET /sapi/v1/simple-earn/flexible/position` to get a flexible product position + - `GET /sapi/v1/simple-earn/locked/position` to get a locked product position + - `GET /sapi/v1/simple-earn/account ` to get a simple account balances + - `GET /sapi/v1/simple-earn/flexible/history/subscriptionRecord` to get flexible subscription records + - `GET /sapi/v1/simple-earn/locked/history/subscriptionRecord ` to get locked subscription records + - `GET /sapi/v1/simple-earn/flexible/history/redemptionRecord ` to retrieve flexible redemption records + - `GET /sapi/v1/simple-earn/locked/history/redemptionRecord ` to retrieve locked redemption records + - `GET /sapi/v1/simple-earn/flexible/history/rewardsRecord ` to get flexible rewards history + - `GET /sapi/v1/simple-earn/locked/history/rewardsRecord ` to get locked rewards history + - `POST /sapi/v1/simple-earn/flexible/setAutoSubscribe` to set an auto-subscription to a flexible product + - `POST /sapi/v1/simple-earn/locked/setAutoSubscribe` to set an auto-subscription to a locked product + - `GET /sapi/v1/simple-earn/flexible/personalLeftQuota` to get flexible personal left quota + - `GET /sapi/v1/simple-earn/locked/personalLeftQuota` to get locked personal left quota + - `GET /sapi/v1/simple-earn/flexible/subscriptionPreview` to get flexible subscription preview + - `GET /sapi/v1/simple-earn/locked/subscriptionPreview` to get locked subscription previews + - `GET /sapi/v1/simple-earn/flexible/history/rateHistory` to get a rate history + - `GET /sapi/v1/simple-earn/flexible/history/collateralRecord` to get collateral records + ### Changed - Update dependencies diff --git a/__tests__/spot/simpleEarn/getCollateralRecord.test.js b/__tests__/spot/simple_earn/getCollateralRecord.test.js similarity index 52% rename from __tests__/spot/simpleEarn/getCollateralRecord.test.js rename to __tests__/spot/simple_earn/getCollateralRecord.test.js index a8f325e..5b103c0 100644 --- a/__tests__/spot/simpleEarn/getCollateralRecord.test.js +++ b/__tests__/spot/simple_earn/getCollateralRecord.test.js @@ -1,26 +1,23 @@ /* global describe, it, expect */ -const MissingParameterError = require('../../../src/error/missingParameterError') const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') -const productId = '1' - describe('#getCollateralRecord', () => { - describe('throw MissingParameterError', () => { - it('missing productId', () => { - expect(() => { - SpotClient.getCollateralRecord('') - }).toThrow(MissingParameterError) + it('should return collateral records', () => { + nockMock('/sapi/v1/simple-earn/flexible/history/collateralRecord')(mockResponse) + + return SpotClient.getCollateralRecord().then(response => { + expect(response).toBeDefined() + expect(response.data).toEqual(mockResponse) }) }) - it('should suscribe locked product', () => { + it('should return collateral records with params', () => { const parameters = { - productId + productId: '1' } nockMock(`/sapi/v1/simple-earn/flexible/history/collateralRecord?${buildQueryString(parameters)}`)(mockResponse) - return SpotClient.getCollateralRecord(productId).then(response => { + return SpotClient.getCollateralRecord(parameters).then(response => { expect(response).toBeDefined() expect(response.data).toEqual(mockResponse) }) diff --git a/__tests__/spot/simpleEarn/getFlexiblePersonalLeftQuota.test.js b/__tests__/spot/simple_earn/getFlexiblePersonalLeftQuota.test.js similarity index 93% rename from __tests__/spot/simpleEarn/getFlexiblePersonalLeftQuota.test.js rename to __tests__/spot/simple_earn/getFlexiblePersonalLeftQuota.test.js index 7e740f4..123a71d 100644 --- a/__tests__/spot/simpleEarn/getFlexiblePersonalLeftQuota.test.js +++ b/__tests__/spot/simple_earn/getFlexiblePersonalLeftQuota.test.js @@ -14,7 +14,7 @@ describe('#getFlexiblePersonalLeftQuota', () => { }).toThrow(MissingParameterError) }) }) - it('should redeem flexible product', () => { + it('should return flexible personal left quota', () => { const parameters = { productId } diff --git a/__tests__/spot/simpleEarn/getFlexibleProductList.test.js b/__tests__/spot/simple_earn/getFlexibleProductList.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getFlexibleProductList.test.js rename to __tests__/spot/simple_earn/getFlexibleProductList.test.js diff --git a/__tests__/spot/simpleEarn/getFlexibleProductPosition.test.js b/__tests__/spot/simple_earn/getFlexibleProductPosition.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getFlexibleProductPosition.test.js rename to __tests__/spot/simple_earn/getFlexibleProductPosition.test.js diff --git a/__tests__/spot/simpleEarn/getFlexibleRedemptionRecord.test.js b/__tests__/spot/simple_earn/getFlexibleRedemptionRecord.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getFlexibleRedemptionRecord.test.js rename to __tests__/spot/simple_earn/getFlexibleRedemptionRecord.test.js diff --git a/__tests__/spot/simpleEarn/getFlexibleRewardsRecord.test.js b/__tests__/spot/simple_earn/getFlexibleRewardsRecord.test.js similarity index 91% rename from __tests__/spot/simpleEarn/getFlexibleRewardsRecord.test.js rename to __tests__/spot/simple_earn/getFlexibleRewardsRecord.test.js index 117cb11..c124c96 100644 --- a/__tests__/spot/simpleEarn/getFlexibleRewardsRecord.test.js +++ b/__tests__/spot/simple_earn/getFlexibleRewardsRecord.test.js @@ -1,9 +1,9 @@ /* global describe, it, expect */ +const MissingParameterError = require('../../../src/error/missingParameterError') const { nockMock, SpotClient, buildQueryString } = require('../../testUtils/testSetup') const { mockResponse } = require('../../testUtils/mockData') -const MissingParameterError = require('../../../src/error/missingParameterError') -const type = 'FLEXIBLE' +const type = 'REALTIME' describe('#getFlexibleRewardsRecord', () => { describe('throw MissingParameterError', () => { @@ -14,7 +14,7 @@ describe('#getFlexibleRewardsRecord', () => { }) }) - it('should return locked records history with params', () => { + it('should return flexible reward records', () => { const parameters = { type, productId: '1', diff --git a/__tests__/spot/simpleEarn/getFlexibleSubscriptionPreview.test.js b/__tests__/spot/simple_earn/getFlexibleSubscriptionPreview.test.js similarity index 94% rename from __tests__/spot/simpleEarn/getFlexibleSubscriptionPreview.test.js rename to __tests__/spot/simple_earn/getFlexibleSubscriptionPreview.test.js index 3def1ae..cbf9b32 100644 --- a/__tests__/spot/simpleEarn/getFlexibleSubscriptionPreview.test.js +++ b/__tests__/spot/simple_earn/getFlexibleSubscriptionPreview.test.js @@ -1,7 +1,6 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') const productId = '1' @@ -21,7 +20,7 @@ describe('#getFlexibleSubscriptionPreview', () => { }).toThrow(MissingParameterError) }) }) - it('should suscribe locked product', () => { + it('should return flexible subscription previews', () => { const parameters = { productId, amount diff --git a/__tests__/spot/simpleEarn/getFlexibleSubscriptionRecord.test.js b/__tests__/spot/simple_earn/getFlexibleSubscriptionRecord.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getFlexibleSubscriptionRecord.test.js rename to __tests__/spot/simple_earn/getFlexibleSubscriptionRecord.test.js diff --git a/__tests__/spot/simpleEarn/getLockedPersonalLeftQuota.test.js b/__tests__/spot/simple_earn/getLockedPersonalLeftQuota.test.js similarity index 79% rename from __tests__/spot/simpleEarn/getLockedPersonalLeftQuota.test.js rename to __tests__/spot/simple_earn/getLockedPersonalLeftQuota.test.js index ed17e8a..3375369 100644 --- a/__tests__/spot/simpleEarn/getLockedPersonalLeftQuota.test.js +++ b/__tests__/spot/simple_earn/getLockedPersonalLeftQuota.test.js @@ -1,26 +1,25 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') -const productId = '1' +const projectId = '1' describe('#getLockedPersonalLeftQuota', () => { describe('throw MissingParameterError', () => { - it('missing productId', () => { + it('missing projectId', () => { expect(() => { SpotClient.getLockedPersonalLeftQuota('') }).toThrow(MissingParameterError) }) }) - it('should redeem flexible product', () => { + it('should return locked personal left quota', () => { const parameters = { - productId + projectId } nockMock(`/sapi/v1/simple-earn/locked/personalLeftQuota?${buildQueryString({ ...parameters })}`)(mockResponse) - return SpotClient.getLockedPersonalLeftQuota(productId).then(response => { + return SpotClient.getLockedPersonalLeftQuota(projectId).then(response => { expect(response).toBeDefined() expect(response.data).toEqual(mockResponse) }) diff --git a/__tests__/spot/simpleEarn/getLockedProductList.test.js b/__tests__/spot/simple_earn/getLockedProductList.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getLockedProductList.test.js rename to __tests__/spot/simple_earn/getLockedProductList.test.js diff --git a/__tests__/spot/simpleEarn/getLockedProductPosition.test.js b/__tests__/spot/simple_earn/getLockedProductPosition.test.js similarity index 97% rename from __tests__/spot/simpleEarn/getLockedProductPosition.test.js rename to __tests__/spot/simple_earn/getLockedProductPosition.test.js index fded184..535eeb7 100644 --- a/__tests__/spot/simpleEarn/getLockedProductPosition.test.js +++ b/__tests__/spot/simple_earn/getLockedProductPosition.test.js @@ -15,7 +15,7 @@ describe('#getLockedProductPosition', () => { it('should return locked product position with params', () => { const parameters = { asset: 'USDT', - productId: '1', + positionId: '1', current: 5, size: 10 } diff --git a/__tests__/spot/simpleEarn/getLockedRedemptionRecord.test.js b/__tests__/spot/simple_earn/getLockedRedemptionRecord.test.js similarity index 97% rename from __tests__/spot/simpleEarn/getLockedRedemptionRecord.test.js rename to __tests__/spot/simple_earn/getLockedRedemptionRecord.test.js index 53e6f71..874df69 100644 --- a/__tests__/spot/simpleEarn/getLockedRedemptionRecord.test.js +++ b/__tests__/spot/simple_earn/getLockedRedemptionRecord.test.js @@ -15,7 +15,7 @@ describe('#getLockedRedemptionRecord', () => { it('should return locked redemption records with params', () => { const parameters = { asset: 'USDT', - productId: '1', + positionId: '1', current: 5, size: 10 } diff --git a/__tests__/spot/simpleEarn/getLockedRewardsRecord.test.js b/__tests__/spot/simple_earn/getLockedRewardsRecord.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getLockedRewardsRecord.test.js rename to __tests__/spot/simple_earn/getLockedRewardsRecord.test.js diff --git a/__tests__/spot/simpleEarn/getLockedSubscriptionPreview.test.js b/__tests__/spot/simple_earn/getLockedSubscriptionPreview.test.js similarity index 77% rename from __tests__/spot/simpleEarn/getLockedSubscriptionPreview.test.js rename to __tests__/spot/simple_earn/getLockedSubscriptionPreview.test.js index 22e5e97..5748034 100644 --- a/__tests__/spot/simpleEarn/getLockedSubscriptionPreview.test.js +++ b/__tests__/spot/simple_earn/getLockedSubscriptionPreview.test.js @@ -1,15 +1,14 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') -const productId = '1' +const projectId = '1' const amount = 10 describe('#getLockedSubscriptionPreview', () => { describe('throw MissingParameterError', () => { - it('missing productId', () => { + it('missing projectId', () => { expect(() => { SpotClient.getLockedSubscriptionPreview('', amount) }).toThrow(MissingParameterError) @@ -17,18 +16,18 @@ describe('#getLockedSubscriptionPreview', () => { it('missing amount', () => { expect(() => { - SpotClient.getLockedSubscriptionPreview(productId, '') + SpotClient.getLockedSubscriptionPreview(projectId, '') }).toThrow(MissingParameterError) }) }) - it('should suscribe locked product', () => { + it('should return locked subscription preview', () => { const parameters = { - productId, + projectId, amount } nockMock(`/sapi/v1/simple-earn/locked/subscriptionPreview?${buildQueryString({ ...parameters })}`)(mockResponse) - return SpotClient.getLockedSubscriptionPreview(productId, amount).then(response => { + return SpotClient.getLockedSubscriptionPreview(projectId, amount).then(response => { expect(response).toBeDefined() expect(response.data).toEqual(mockResponse) }) diff --git a/__tests__/spot/simpleEarn/getLockedSubscriptionRecord.test.js b/__tests__/spot/simple_earn/getLockedSubscriptionRecord.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getLockedSubscriptionRecord.test.js rename to __tests__/spot/simple_earn/getLockedSubscriptionRecord.test.js diff --git a/__tests__/spot/simpleEarn/getRateHistory.test.js b/__tests__/spot/simple_earn/getRateHistory.test.js similarity index 94% rename from __tests__/spot/simpleEarn/getRateHistory.test.js rename to __tests__/spot/simple_earn/getRateHistory.test.js index 4cbdabf..ba26e66 100644 --- a/__tests__/spot/simpleEarn/getRateHistory.test.js +++ b/__tests__/spot/simple_earn/getRateHistory.test.js @@ -1,7 +1,6 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') const productId = '1' @@ -14,7 +13,7 @@ describe('#getRateHistory', () => { }).toThrow(MissingParameterError) }) }) - it('should suscribe locked product', () => { + it('should return rate history', () => { const parameters = { productId } diff --git a/__tests__/spot/simpleEarn/getSimpleAccount.test.js b/__tests__/spot/simple_earn/getSimpleAccount.test.js similarity index 100% rename from __tests__/spot/simpleEarn/getSimpleAccount.test.js rename to __tests__/spot/simple_earn/getSimpleAccount.test.js diff --git a/__tests__/spot/simpleEarn/redeemFlexibleProduct.test.js b/__tests__/spot/simple_earn/redeemFlexibleProduct.test.js similarity index 99% rename from __tests__/spot/simpleEarn/redeemFlexibleProduct.test.js rename to __tests__/spot/simple_earn/redeemFlexibleProduct.test.js index e2c0a76..b4d1c75 100644 --- a/__tests__/spot/simpleEarn/redeemFlexibleProduct.test.js +++ b/__tests__/spot/simple_earn/redeemFlexibleProduct.test.js @@ -1,7 +1,6 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') const productId = '1' diff --git a/__tests__/spot/simpleEarn/redeemLockedProduct.test.js b/__tests__/spot/simple_earn/redeemLockedProduct.test.js similarity index 57% rename from __tests__/spot/simpleEarn/redeemLockedProduct.test.js rename to __tests__/spot/simple_earn/redeemLockedProduct.test.js index b4db459..f9413f9 100644 --- a/__tests__/spot/simpleEarn/redeemLockedProduct.test.js +++ b/__tests__/spot/simple_earn/redeemLockedProduct.test.js @@ -1,26 +1,25 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') -const productId = '1' +const positionId = '1' -describe('#redeemFlexibleProduct', () => { +describe('#redeemLockedProduct', () => { describe('throw MissingParameterError', () => { - it('missing productId', () => { + it('missing positionId', () => { expect(() => { - SpotClient.redeemFlexibleProduct('') + SpotClient.redeemLockedProduct('') }).toThrow(MissingParameterError) }) }) - it('should suscribe flexible product', () => { + it('should redeem locked product', () => { const parameters = { - productId + positionId } - nockPostMock(`/sapi/v1/simple-earn/flexible/redeem?${buildQueryString({ ...parameters })}`)(mockResponse) + nockPostMock(`/sapi/v1/simple-earn/locked/redeem?${buildQueryString({ ...parameters })}`)(mockResponse) - return SpotClient.redeemFlexibleProduct(productId).then(response => { + return SpotClient.redeemLockedProduct(positionId).then(response => { expect(response).toBeDefined() expect(response.data).toEqual(mockResponse) }) diff --git a/__tests__/spot/simpleEarn/setFlexibleAutoSubscribe.test.js b/__tests__/spot/simple_earn/setFlexibleAutoSubscribe.test.js similarity index 99% rename from __tests__/spot/simpleEarn/setFlexibleAutoSubscribe.test.js rename to __tests__/spot/simple_earn/setFlexibleAutoSubscribe.test.js index 31757ba..d7110e8 100644 --- a/__tests__/spot/simpleEarn/setFlexibleAutoSubscribe.test.js +++ b/__tests__/spot/simple_earn/setFlexibleAutoSubscribe.test.js @@ -1,7 +1,6 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') const productId = '1' diff --git a/__tests__/spot/simpleEarn/setLockedAutoSubscribe.test.js b/__tests__/spot/simple_earn/setLockedAutoSubscribe.test.js similarity index 76% rename from __tests__/spot/simpleEarn/setLockedAutoSubscribe.test.js rename to __tests__/spot/simple_earn/setLockedAutoSubscribe.test.js index decea8d..81b40cf 100644 --- a/__tests__/spot/simpleEarn/setLockedAutoSubscribe.test.js +++ b/__tests__/spot/simple_earn/setLockedAutoSubscribe.test.js @@ -1,15 +1,14 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') -const productId = '1' +const positionId = '1' const autoSubscribe = true describe('#setLockedAutoSubscribe', () => { describe('throw MissingParameterError', () => { - it('missing productId', () => { + it('missing positionId', () => { expect(() => { SpotClient.setLockedAutoSubscribe('', autoSubscribe) }).toThrow(MissingParameterError) @@ -17,18 +16,18 @@ describe('#setLockedAutoSubscribe', () => { it('missing autoSubscribe', () => { expect(() => { - SpotClient.setLockedAutoSubscribe(productId, '') + SpotClient.setLockedAutoSubscribe(positionId, '') }).toThrow(MissingParameterError) }) }) - it('should suscribe flexible product', () => { + it('should suscribe locked product', () => { const parameters = { - productId, + positionId, autoSubscribe } nockPostMock(`/sapi/v1/simple-earn/locked/setAutoSubscribe?${buildQueryString({ ...parameters })}`)(mockResponse) - return SpotClient.setLockedAutoSubscribe(productId, autoSubscribe).then(response => { + return SpotClient.setLockedAutoSubscribe(positionId, autoSubscribe).then(response => { expect(response).toBeDefined() expect(response.data).toEqual(mockResponse) }) diff --git a/__tests__/spot/simpleEarn/subscribeFlexibleProduct.test.js b/__tests__/spot/simple_earn/subscribeFlexibleProduct.test.js similarity index 95% rename from __tests__/spot/simpleEarn/subscribeFlexibleProduct.test.js rename to __tests__/spot/simple_earn/subscribeFlexibleProduct.test.js index fd420fd..73cacd4 100644 --- a/__tests__/spot/simpleEarn/subscribeFlexibleProduct.test.js +++ b/__tests__/spot/simple_earn/subscribeFlexibleProduct.test.js @@ -1,7 +1,6 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') const productId = '1' @@ -21,7 +20,7 @@ describe('#subscribeFlexibleProduct', () => { }).toThrow(MissingParameterError) }) }) - it('should suscribe flexible product', () => { + it('should subscribe flexible product', () => { const parameters = { productId, amount diff --git a/__tests__/spot/simpleEarn/subscribeLockedProduct.test.js b/__tests__/spot/simple_earn/subscribeLockedProduct.test.js similarity index 78% rename from __tests__/spot/simpleEarn/subscribeLockedProduct.test.js rename to __tests__/spot/simple_earn/subscribeLockedProduct.test.js index a1c2e18..0ec5fed 100644 --- a/__tests__/spot/simpleEarn/subscribeLockedProduct.test.js +++ b/__tests__/spot/simple_earn/subscribeLockedProduct.test.js @@ -1,15 +1,14 @@ /* global describe, it, expect */ const MissingParameterError = require('../../../src/error/missingParameterError') const { nockPostMock, buildQueryString, SpotClient } = require('../../testUtils/testSetup') - const { mockResponse } = require('../../testUtils/mockData') -const productId = '1' +const projectId = '1' const amount = 10 describe('#subscribeLockedProduct', () => { describe('throw MissingParameterError', () => { - it('missing productId', () => { + it('missing projectId', () => { expect(() => { SpotClient.subscribeLockedProduct('', amount) }).toThrow(MissingParameterError) @@ -17,18 +16,18 @@ describe('#subscribeLockedProduct', () => { it('missing amount', () => { expect(() => { - SpotClient.subscribeLockedProduct(productId, '') + SpotClient.subscribeLockedProduct(projectId, '') }).toThrow(MissingParameterError) }) }) - it('should suscribe locked product', () => { + it('should subscribe locked product', () => { const parameters = { - productId, + projectId, amount } nockPostMock(`/sapi/v1/simple-earn/locked/subscribe?${buildQueryString({ ...parameters })}`)(mockResponse) - return SpotClient.subscribeLockedProduct(productId, amount).then(response => { + return SpotClient.subscribeLockedProduct(projectId, amount).then(response => { expect(response).toBeDefined() expect(response.data).toEqual(mockResponse) }) diff --git a/examples/spot/simple_earn/getCollateralRecord.js b/examples/spot/simple_earn/getCollateralRecord.js new file mode 100644 index 0000000..524d81b --- /dev/null +++ b/examples/spot/simple_earn/getCollateralRecord.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getCollateralRecord() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getFlexiblePersonalLeftQuota.js b/examples/spot/simple_earn/getFlexiblePersonalLeftQuota.js new file mode 100644 index 0000000..a836a2f --- /dev/null +++ b/examples/spot/simple_earn/getFlexiblePersonalLeftQuota.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getFlexiblePersonalLeftQuota('BTC001') + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getFlexibleProductList.js b/examples/spot/simple_earn/getFlexibleProductList.js new file mode 100644 index 0000000..12ad9c3 --- /dev/null +++ b/examples/spot/simple_earn/getFlexibleProductList.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getFlexibleProductList() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getFlexibleProductPosition.js b/examples/spot/simple_earn/getFlexibleProductPosition.js new file mode 100644 index 0000000..01321a0 --- /dev/null +++ b/examples/spot/simple_earn/getFlexibleProductPosition.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getFlexibleProductPosition() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getFlexibleRedemptionRecord.js b/examples/spot/simple_earn/getFlexibleRedemptionRecord.js new file mode 100644 index 0000000..30fd3e8 --- /dev/null +++ b/examples/spot/simple_earn/getFlexibleRedemptionRecord.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getFlexibleRedemptionRecord() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getFlexibleRewardsRecord.js b/examples/spot/simple_earn/getFlexibleRewardsRecord.js new file mode 100644 index 0000000..7e22335 --- /dev/null +++ b/examples/spot/simple_earn/getFlexibleRewardsRecord.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getFlexibleRewardsRecord('REALTIME') + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getFlexibleSubscriptionPreview.js b/examples/spot/simple_earn/getFlexibleSubscriptionPreview.js new file mode 100644 index 0000000..c1b031b --- /dev/null +++ b/examples/spot/simple_earn/getFlexibleSubscriptionPreview.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getFlexibleSubscriptionPreview('BTC001', 1.0) + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getFlexibleSubscriptionRecord.js b/examples/spot/simple_earn/getFlexibleSubscriptionRecord.js new file mode 100644 index 0000000..4a50351 --- /dev/null +++ b/examples/spot/simple_earn/getFlexibleSubscriptionRecord.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getFlexibleSubscriptionRecord() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getLockedPersonalLeftQuota.js b/examples/spot/simple_earn/getLockedPersonalLeftQuota.js new file mode 100644 index 0000000..424da8e --- /dev/null +++ b/examples/spot/simple_earn/getLockedPersonalLeftQuota.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getLockedPersonalLeftQuota('Bnb*120') + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getLockedProductList.js b/examples/spot/simple_earn/getLockedProductList.js new file mode 100644 index 0000000..beef1dd --- /dev/null +++ b/examples/spot/simple_earn/getLockedProductList.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getLockedProductList() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getLockedProductPosition.js b/examples/spot/simple_earn/getLockedProductPosition.js new file mode 100644 index 0000000..48738aa --- /dev/null +++ b/examples/spot/simple_earn/getLockedProductPosition.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getLockedProductPosition() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getLockedRedemptionRecord.js b/examples/spot/simple_earn/getLockedRedemptionRecord.js new file mode 100644 index 0000000..deecaa0 --- /dev/null +++ b/examples/spot/simple_earn/getLockedRedemptionRecord.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getLockedRedemptionRecord() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getLockedRewardsRecord.js b/examples/spot/simple_earn/getLockedRewardsRecord.js new file mode 100644 index 0000000..97b106e --- /dev/null +++ b/examples/spot/simple_earn/getLockedRewardsRecord.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getLockedRewardsRecord() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getLockedSubscriptionPreview.js b/examples/spot/simple_earn/getLockedSubscriptionPreview.js new file mode 100644 index 0000000..3f698e2 --- /dev/null +++ b/examples/spot/simple_earn/getLockedSubscriptionPreview.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getLockedSubscriptionPreview('Bnb*120', 1.0) + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getLockedSubscriptionRecord.js b/examples/spot/simple_earn/getLockedSubscriptionRecord.js new file mode 100644 index 0000000..904ed21 --- /dev/null +++ b/examples/spot/simple_earn/getLockedSubscriptionRecord.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getLockedSubscriptionRecord() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getRateHistory.js b/examples/spot/simple_earn/getRateHistory.js new file mode 100644 index 0000000..43dd896 --- /dev/null +++ b/examples/spot/simple_earn/getRateHistory.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getRateHistory('BTC001') + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/getSimpleAccount.js b/examples/spot/simple_earn/getSimpleAccount.js new file mode 100644 index 0000000..54cc775 --- /dev/null +++ b/examples/spot/simple_earn/getSimpleAccount.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.getSimpleAccount() + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/redeemFlexibleProduct.js b/examples/spot/simple_earn/redeemFlexibleProduct.js new file mode 100644 index 0000000..796d9c5 --- /dev/null +++ b/examples/spot/simple_earn/redeemFlexibleProduct.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.redeemFlexibleProduct('BTC001') + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/redeemLockedProduct.js b/examples/spot/simple_earn/redeemLockedProduct.js new file mode 100644 index 0000000..817f7f7 --- /dev/null +++ b/examples/spot/simple_earn/redeemLockedProduct.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.redeemLockedProduct('1234') + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/setFlexibleAutoSubscribe.js b/examples/spot/simple_earn/setFlexibleAutoSubscribe.js new file mode 100644 index 0000000..f6855e8 --- /dev/null +++ b/examples/spot/simple_earn/setFlexibleAutoSubscribe.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.setFlexibleAutoSubscribe('1234', true) + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/setLockedAutoSubscribe.js b/examples/spot/simple_earn/setLockedAutoSubscribe.js new file mode 100644 index 0000000..2032d1b --- /dev/null +++ b/examples/spot/simple_earn/setLockedAutoSubscribe.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.setLockedAutoSubscribe('1234', true) + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/subscribeFlexibleProduct.js b/examples/spot/simple_earn/subscribeFlexibleProduct.js new file mode 100644 index 0000000..22021ce --- /dev/null +++ b/examples/spot/simple_earn/subscribeFlexibleProduct.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.subscribeFlexibleProduct('BTC001', 0.01) + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/examples/spot/simple_earn/subscribeLockedProduct.js b/examples/spot/simple_earn/subscribeLockedProduct.js new file mode 100644 index 0000000..e394652 --- /dev/null +++ b/examples/spot/simple_earn/subscribeLockedProduct.js @@ -0,0 +1,9 @@ +const Spot = require('../../../src/spot') + +const apiKey = '' +const apiSecret = '' +const client = new Spot(apiKey, apiSecret) + +client.subscribeLockedProduct('Bnb*120', 1.0) + .then(response => client.logger.log(response.data)) + .catch(error => client.logger.error(error)) diff --git a/src/modules/restful/simpleEarn.js b/src/modules/restful/simpleEarn.js index 3e057f7..454ed1f 100644 --- a/src/modules/restful/simpleEarn.js +++ b/src/modules/restful/simpleEarn.js @@ -57,11 +57,11 @@ const SimpleEarn = superclass => class extends superclass { * * POST /sapi/v1/simple-earn/flexible/subscribe
* - * {@link https://binance-docs.github.io/apidocs/spot/en/#get-simple-earn-locked-product-list-user_data} + * {@link https://binance-docs.github.io/apidocs/spot/en/#subscribe-flexible-product-trade} * * @param {string} productId * @param {number} amount - * @param {object} options + * @param {object} [options] * @param {boolean} [options.autoSubscribe] * @param {string} [options.sourceAccount] * @param {number} [options.recvWindow] @@ -83,20 +83,20 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#subscribe-locked-product-trade} * - * @param {string} productId + * @param {string} projectId * @param {number} amount - * @param {object} options + * @param {object} [options] * @param {boolean} [options.autoSubscribe] * @param {string} [options.sourceAccount] * @param {number} [options.recvWindow] * */ - subscribeLockedProduct (productId, amount, options = {}) { - validateRequiredParameters({ productId, amount }) + subscribeLockedProduct (projectId, amount, options = {}) { + validateRequiredParameters({ projectId, amount }) return this.signRequest( 'POST', '/sapi/v1/simple-earn/locked/subscribe', - Object.assign(options, { productId, amount }) + Object.assign(options, { projectId, amount }) ) } @@ -108,7 +108,7 @@ const SimpleEarn = superclass => class extends superclass { * {@link https://binance-docs.github.io/apidocs/spot/en/#redeem-flexible-product-trade} * * @param {string} productId - * @param {object} options + * @param {object} [options] * @param {boolean} [options.redeemAll] // true or false, default to false * @param {number} [options.amount] // if redeemAll is false, amount is mandatory * @param {string} [options.destAccount] @@ -131,17 +131,17 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#redeem-locked-product-trade} * - * @param {string} productId - * @param {object} options + * @param {string} positionId + * @param {object} [options] * @param {number} [options.recvWindow] * */ - redeemLockedProduct (productId, options = {}) { - validateRequiredParameters({ productId }) + redeemLockedProduct (positionId, options = {}) { + validateRequiredParameters({ positionId }) return this.signRequest( 'POST', '/sapi/v1/simple-earn/locked/redeem', - Object.assign(options, { productId }) + Object.assign(options, { positionId }) ) } @@ -152,8 +152,7 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-product-position-user_data} * - * - * @param {object} options + * @param {object} [options] * @param {string} [options.asset] * @param {string} [options.productId] * @param {number} [options.current] @@ -176,10 +175,10 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-product-position-user_data} * - * - * @param {object} options + * @param {object} [options] * @param {string} [options.asset] - * @param {string} [options.productId] + * @param {string} [options.positionId] + * @param {string} [options.projectId] * @param {number} [options.current] * @param {number} [options.size] * @param {number} [options.recvWindow] @@ -198,9 +197,9 @@ const SimpleEarn = superclass => class extends superclass { * * GET /sapi/v1/simple-earn/account
* - * {@link https://binance-docs.github.io/apidocs/spot/en/#get-simple-account-user_data} + * {@link https://binance-docs.github.io/apidocs/spot/en/#simple-account-user_data} * - * @param {object} options + * @param {object} [options] * @param {number} [options.recvWindow] * */ @@ -219,7 +218,7 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-subscription-record-user_data} * - * @param {object} options + * @param {object} [options] * @param {string} [options.productId] * @param {string} [options.purchaseId] * @param {string} [options.asset] @@ -245,7 +244,7 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-subscription-record-user_data} * - * @param {object} options + * @param {object} [options] * @param {string} [options.purchaseId] * @param {string} [options.asset] * @param {number} [options.startTime] @@ -270,7 +269,7 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-redemption-record-user_data} * - * @param {object} options + * @param {object} [options] * @param {string} [options.productId] * @param {string} [options.redeemId] * @param {string} [options.asset] @@ -296,7 +295,8 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-redemption-record-user_data} * - * @param {object} options + * @param {object} [options] + * @param {string} [options.positionId] * @param {string} [options.redeemId] * @param {string} [options.asset] * @param {number} [options.startTime] @@ -321,8 +321,8 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-rewards-history-user_data} * - * @param {object} options * @param {string} type + * @param {object} [options] * @param {string} [options.productId] * @param {string} [options.asset] * @param {number} [options.startTime] @@ -348,7 +348,7 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-rewards-history-user_data} * - * @param {object} options + * @param {object} [options] * @param {string} [options.positionId] * @param {string} [options.asset] * @param {number} [options.startTime] @@ -395,18 +395,18 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#set-locked-auto-subscribe-user_data} * - * @param {string} productId + * @param {string} positionId * @param {boolean} autoSubscribe * @param {object} [options] * @param {number} [options.recvWindow] * */ - setLockedAutoSubscribe (productId, autoSubscribe, options = {}) { - validateRequiredParameters({ productId, autoSubscribe }) + setLockedAutoSubscribe (positionId, autoSubscribe, options = {}) { + validateRequiredParameters({ positionId, autoSubscribe }) return this.signRequest( 'POST', '/sapi/v1/simple-earn/locked/setAutoSubscribe', - Object.assign(options, { productId, autoSubscribe }) + Object.assign(options, { positionId, autoSubscribe }) ) } @@ -418,6 +418,7 @@ const SimpleEarn = superclass => class extends superclass { * {@link https://binance-docs.github.io/apidocs/spot/en/#get-flexible-personal-left-quota-user_data} * * @param {string} productId + * @param {object} [options] * @param {number} [options.recvWindow] * */ @@ -437,16 +438,17 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-personal-left-quota-user_data} * - * @param {string} productId + * @param {string} projectId + * @param {object} [options] * @param {number} [options.recvWindow] * */ - getLockedPersonalLeftQuota (productId, options = {}) { - validateRequiredParameters({ productId }) + getLockedPersonalLeftQuota (projectId, options = {}) { + validateRequiredParameters({ projectId }) return this.signRequest( 'GET', '/sapi/v1/simple-earn/locked/personalLeftQuota', - Object.assign(options, { productId }) + Object.assign(options, { projectId }) ) } @@ -479,18 +481,19 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-locked-subscription-preview-user_data} * - * @param {string} productId + * @param {string} projectId * @param {number} amount * @param {object} [options] + * @param {boolean} [options.autoSubscribe] * @param {number} [options.recvWindow] * */ - getLockedSubscriptionPreview (productId, amount, options = {}) { - validateRequiredParameters({ productId, amount }) + getLockedSubscriptionPreview (projectId, amount, options = {}) { + validateRequiredParameters({ projectId, amount }) return this.signRequest( 'GET', '/sapi/v1/simple-earn/locked/subscriptionPreview', - Object.assign(options, { productId, amount }) + Object.assign(options, { projectId, amount }) ) } @@ -502,6 +505,7 @@ const SimpleEarn = superclass => class extends superclass { * {@link https://binance-docs.github.io/apidocs/spot/en/#get-rate-history-user_data} * * @param {string} productId + * @param {object} [options] * @param {number} [options.startTime] * @param {number} [options.endTime] * @param {number} [options.current] @@ -525,7 +529,8 @@ const SimpleEarn = superclass => class extends superclass { * * {@link https://binance-docs.github.io/apidocs/spot/en/#get-collateral-record-user_data} * - * @param {string} productId + * @param {object} [options] + * @param {string} [options.productId] * @param {number} [options.startTime] * @param {number} [options.endTime] * @param {number} [options.current] @@ -533,13 +538,13 @@ const SimpleEarn = superclass => class extends superclass { * @param {number} [options.recvWindow] * */ - getCollateralRecord (productId, options = {}) { - validateRequiredParameters({ productId }) + getCollateralRecord (options = {}) { return this.signRequest( 'GET', '/sapi/v1/simple-earn/flexible/history/collateralRecord', - Object.assign(options, { productId }) + options ) } } + module.exports = SimpleEarn