Merge branch 'master' into feature/schema
This commit is contained in:
commit
752c36c8f2
8 changed files with 631 additions and 366 deletions
33
.vscode/snippets.code-snippets
vendored
Normal file
33
.vscode/snippets.code-snippets
vendored
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
// Place your api workspace snippets here. Each snippet is defined under a
|
||||
// snippet name and has a scope, prefix, body and description. Add comma
|
||||
// separated ids of the languages where the snippet is applicable in the scope
|
||||
// field. If scope is left empty or omitted, the snippet gets applied to all
|
||||
// languages. The prefix is what is used to trigger the snippet and the body
|
||||
// will be expanded and inserted. Possible variables are: $1, $2 for tab
|
||||
// stops, $0 for the final cursor position, and ${1:label}, ${2:another} for
|
||||
// placeholders. Placeholders with the same ids are connected. Example: "Print
|
||||
// to console": {"scope": "javascript,typescript", "prefix": "log", "body":
|
||||
// ["console.log('$1');", "$2"
|
||||
// ],
|
||||
// "description": "Log output to console"
|
||||
// }
|
||||
|
||||
"Route Body": {
|
||||
"body": [
|
||||
"try {",
|
||||
" return res.json({",
|
||||
"",
|
||||
" })",
|
||||
"} catch (e) {",
|
||||
" console.log(e)",
|
||||
" return res.status(500).json({",
|
||||
" errorMessage: e.message",
|
||||
" })",
|
||||
"}"
|
||||
],
|
||||
"description": "Route Body",
|
||||
"prefix": "rbody",
|
||||
"scope": "javascript"
|
||||
}
|
||||
}
|
||||
19
package.json
19
package.json
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "shockapi",
|
||||
"version": "1.0.0",
|
||||
"version": "2021.1.04",
|
||||
"description": "",
|
||||
"main": "src/server.js",
|
||||
"scripts": {
|
||||
|
|
@ -17,8 +17,8 @@
|
|||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@grpc/grpc-js": "^1.2.2",
|
||||
"@grpc/proto-loader": "^0.5.1",
|
||||
"axios": "^0.20.0",
|
||||
"@grpc/proto-loader": "^0.5.5",
|
||||
"axios": "^0.21.1",
|
||||
"basic-auth": "^2.0.0",
|
||||
"big.js": "^5.2.2",
|
||||
"bitcore-lib": "^0.15.0",
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
"debug": "^3.1.0",
|
||||
"dotenv": "^8.1.0",
|
||||
"express": "^4.14.1",
|
||||
"express-session": "^1.15.1",
|
||||
"express-session": "^1.17.1",
|
||||
"google-proto-files": "^1.0.3",
|
||||
"graphviz": "0.0.8",
|
||||
"grpc": "1.24.4",
|
||||
|
|
@ -44,13 +44,13 @@
|
|||
"lodash": "^4.17.20",
|
||||
"method-override": "^2.3.7",
|
||||
"node-persist": "^3.1.0",
|
||||
"promise": "^8.0.1",
|
||||
"promise": "^8.1.0",
|
||||
"ramda": "^0.27.1",
|
||||
"request": "^2.88.2",
|
||||
"request-promise": "^4.2.2",
|
||||
"request-promise": "^4.2.6",
|
||||
"response-time": "^2.3.2",
|
||||
"shelljs": "^0.8.2",
|
||||
"shock-common": "24.x.x",
|
||||
"shock-common": "29.1.0",
|
||||
"socket.io": "2.1.1",
|
||||
"text-encoding": "^0.7.0",
|
||||
"tingodb": "^0.6.1",
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
"winston-daily-rotate-file": "^4.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
||||
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
||||
"@types/bluebird": "^3.5.32",
|
||||
"@types/dotenv": "^6.1.1",
|
||||
"@types/express": "^4.17.1",
|
||||
|
|
@ -67,9 +67,10 @@
|
|||
"@types/jsonwebtoken": "^8.3.7",
|
||||
"@types/lodash": "^4.14.141",
|
||||
"@types/ramda": "types/npm-ramda#dist",
|
||||
"@types/react": "16.x.x",
|
||||
"@types/socket.io": "^2.1.11",
|
||||
"@types/uuid": "^3.4.5",
|
||||
"babel-eslint": "^10.0.3",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
|
||||
"eslint": "^6.6.0",
|
||||
"eslint-config-prettier": "^6.5.0",
|
||||
|
|
|
|||
|
|
@ -1283,8 +1283,7 @@ const createPostNew = async (tags, title, content) => {
|
|||
status: 'publish',
|
||||
tags: tags.join('-'),
|
||||
title,
|
||||
contentItems: {},
|
||||
tipCounter: 0
|
||||
contentItems: {}
|
||||
}
|
||||
|
||||
content.forEach(c => {
|
||||
|
|
|
|||
284
src/routes.js
284
src/routes.js
|
|
@ -30,11 +30,7 @@ const {
|
|||
const GunActions = require('../services/gunDB/contact-api/actions')
|
||||
const GunGetters = require('../services/gunDB/contact-api/getters')
|
||||
const GunKey = require('../services/gunDB/contact-api/key')
|
||||
const {
|
||||
sendPaymentV2Keysend,
|
||||
sendPaymentV2Invoice,
|
||||
listPayments
|
||||
} = require('../utils/lightningServices/v2')
|
||||
const LV2 = require('../utils/lightningServices/v2')
|
||||
const GunWriteRPC = require('../services/gunDB/rpc')
|
||||
|
||||
const DEFAULT_MAX_NUM_ROUTES_TO_QUERY = 10
|
||||
|
|
@ -1024,30 +1020,15 @@ module.exports = async (
|
|||
)
|
||||
})
|
||||
// get lnd chan info
|
||||
app.post('/api/lnd/getchaninfo', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
|
||||
lightning.getChanInfo(
|
||||
{ chan_id: req.body.chan_id },
|
||||
async (err, response) => {
|
||||
if (err) {
|
||||
logger.debug('GetChanInfo Error:', err)
|
||||
const health = await checkHealth()
|
||||
if (health.LNDStatus.success) {
|
||||
res.status(400)
|
||||
res.json({
|
||||
field: 'getChanInfo',
|
||||
errorMessage: sanitizeLNDError(err.message)
|
||||
})
|
||||
} else {
|
||||
res.status(500)
|
||||
res.json({ errorMessage: 'LND is down' })
|
||||
}
|
||||
}
|
||||
logger.debug('GetChanInfo:', response)
|
||||
res.json(response)
|
||||
}
|
||||
)
|
||||
app.post('/api/lnd/getchaninfo', async (req, res) => {
|
||||
try {
|
||||
return res.json(await LV2.getChanInfo(req.body.chan_id))
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return res.status(500).json({
|
||||
errorMessage: e.message
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
app.get('/api/lnd/getnetworkinfo', (req, res) => {
|
||||
|
|
@ -1072,47 +1053,30 @@ module.exports = async (
|
|||
})
|
||||
|
||||
// get lnd node active channels list
|
||||
app.get('/api/lnd/listpeers', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
lightning.listPeers({}, async (err, response) => {
|
||||
if (err) {
|
||||
logger.debug('ListPeers Error:', err)
|
||||
const health = await checkHealth()
|
||||
if (health.LNDStatus.success) {
|
||||
res.status(400).json({
|
||||
field: 'listPeers',
|
||||
errorMessage: sanitizeLNDError(err.message)
|
||||
})
|
||||
} else {
|
||||
res.status(500)
|
||||
res.json({ errorMessage: 'LND is down' })
|
||||
}
|
||||
}
|
||||
logger.debug('ListPeers:', response)
|
||||
res.json(response)
|
||||
})
|
||||
app.get('/api/lnd/listpeers', async (req, res) => {
|
||||
try {
|
||||
return res.json({
|
||||
peers: await LV2.listPeers(req.body.latestError)
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return res.status(500).json({
|
||||
errorMessage: e.message
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
// newaddress
|
||||
app.post('/api/lnd/newaddress', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
lightning.newAddress({ type: req.body.type }, async (err, response) => {
|
||||
if (err) {
|
||||
logger.debug('NewAddress Error:', err)
|
||||
const health = await checkHealth()
|
||||
if (health.LNDStatus.success) {
|
||||
res.status(400).json({
|
||||
field: 'newAddress',
|
||||
errorMessage: sanitizeLNDError(err.message)
|
||||
})
|
||||
} else {
|
||||
res.status(500)
|
||||
res.json({ errorMessage: 'LND is down' })
|
||||
}
|
||||
}
|
||||
logger.debug('NewAddress:', response)
|
||||
res.json(response)
|
||||
})
|
||||
app.post('/api/lnd/newaddress', async (req, res) => {
|
||||
try {
|
||||
return res.json({
|
||||
address: await LV2.newAddress(req.body.type)
|
||||
})
|
||||
} catch (e) {
|
||||
return res.status(500).json({
|
||||
errorMessage: e.message
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
// connect peer to lnd node
|
||||
|
|
@ -1157,47 +1121,28 @@ module.exports = async (
|
|||
})
|
||||
|
||||
// get lnd node opened channels list
|
||||
app.get('/api/lnd/listchannels', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
lightning.listChannels({}, async (err, response) => {
|
||||
if (err) {
|
||||
logger.debug('ListChannels Error:', err)
|
||||
const health = await checkHealth()
|
||||
if (health.LNDStatus.success) {
|
||||
res.status(400).json({
|
||||
field: 'listChannels',
|
||||
errorMessage: sanitizeLNDError(err.message)
|
||||
})
|
||||
} else {
|
||||
res.status(500)
|
||||
res.json({ errorMessage: 'LND is down' })
|
||||
}
|
||||
}
|
||||
logger.debug('ListChannels:', response)
|
||||
res.json(response)
|
||||
})
|
||||
app.get('/api/lnd/listchannels', async (_, res) => {
|
||||
try {
|
||||
return res.json({
|
||||
channels: await LV2.listChannels()
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return res.status(500).json({
|
||||
errorMessage: e.message
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
// get lnd node pending channels list
|
||||
app.get('/api/lnd/pendingchannels', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
lightning.pendingChannels({}, async (err, response) => {
|
||||
if (err) {
|
||||
logger.debug('PendingChannels Error:', err)
|
||||
const health = await checkHealth()
|
||||
if (health.LNDStatus.success) {
|
||||
res.status(400).json({
|
||||
field: 'pendingChannels',
|
||||
errorMessage: sanitizeLNDError(err.message)
|
||||
})
|
||||
} else {
|
||||
res.status(500)
|
||||
res.json({ errorMessage: 'LND is down' })
|
||||
}
|
||||
}
|
||||
logger.debug('PendingChannels:', response)
|
||||
res.json(response)
|
||||
})
|
||||
app.get('/api/lnd/pendingchannels', async (req, res) => {
|
||||
try {
|
||||
return res.json(await LV2.pendingChannels())
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return res.status(500).json({
|
||||
errorMessage: e.message
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
app.get('/api/lnd/unifiedTrx', (req, res) => {
|
||||
|
|
@ -1375,7 +1320,7 @@ module.exports = async (
|
|||
}
|
||||
|
||||
return res.status(200).json(
|
||||
await listPayments({
|
||||
await LV2.listPayments({
|
||||
include_incomplete,
|
||||
index_offset,
|
||||
max_payments,
|
||||
|
|
@ -1662,7 +1607,7 @@ module.exports = async (
|
|||
})
|
||||
}
|
||||
|
||||
const payment = await sendPaymentV2Keysend({
|
||||
const payment = await LV2.sendPaymentV2Keysend({
|
||||
amt,
|
||||
dest,
|
||||
feeLimit,
|
||||
|
|
@ -1675,7 +1620,7 @@ module.exports = async (
|
|||
}
|
||||
const { payreq } = req.body
|
||||
|
||||
const payment = await sendPaymentV2Invoice({
|
||||
const payment = await LV2.sendPaymentV2Invoice({
|
||||
feeLimit,
|
||||
payment_request: payreq,
|
||||
amt: req.body.amt,
|
||||
|
|
@ -1764,64 +1709,32 @@ module.exports = async (
|
|||
})
|
||||
|
||||
// addinvoice
|
||||
app.post('/api/lnd/addinvoice', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
const invoiceRequest = { memo: req.body.memo, private: true }
|
||||
if (req.body.value) {
|
||||
invoiceRequest.value = req.body.value
|
||||
}
|
||||
if (req.body.expiry) {
|
||||
invoiceRequest.expiry = req.body.expiry
|
||||
}
|
||||
lightning.addInvoice(invoiceRequest, async (err, newInvoice) => {
|
||||
if (err) {
|
||||
logger.debug('AddInvoice Error:', err)
|
||||
const health = await checkHealth()
|
||||
if (health.LNDStatus.success) {
|
||||
res.status(400).json({
|
||||
field: 'addInvoice',
|
||||
errorMessage: sanitizeLNDError(err.message)
|
||||
})
|
||||
} else {
|
||||
res.status(500)
|
||||
res.json({ errorMessage: 'LND is down' })
|
||||
app.post('/api/lnd/addinvoice', async (req, res) => {
|
||||
const { expiry, value, memo } = req.body
|
||||
const addInvoiceRes = await LV2.addInvoice(value, memo, true, expiry)
|
||||
|
||||
if (value) {
|
||||
const channelsList = await LV2.listChannels({ active_only: true })
|
||||
let remoteBalance = Big(0)
|
||||
channelsList.forEach(element => {
|
||||
const remB = Big(element.remote_balance)
|
||||
if (remB.gt(remoteBalance)) {
|
||||
remoteBalance = remB
|
||||
}
|
||||
return err
|
||||
}
|
||||
logger.debug('AddInvoice:', newInvoice)
|
||||
if (req.body.value) {
|
||||
logger.debug('AddInvoice liquidity check:')
|
||||
lightning.listChannels({ active_only: true }, async (err, response) => {
|
||||
if (err) {
|
||||
logger.debug('ListChannels Error:', err)
|
||||
const health = await checkHealth()
|
||||
if (health.LNDStatus.success) {
|
||||
res.status(400).json({
|
||||
field: 'listChannels',
|
||||
errorMessage: sanitizeLNDError(err.message)
|
||||
})
|
||||
} else {
|
||||
res.status(500)
|
||||
res.json({ errorMessage: 'LND is down' })
|
||||
}
|
||||
}
|
||||
logger.debug('ListChannels:', response)
|
||||
const channelsList = response.channels
|
||||
let remoteBalance = Big(0)
|
||||
channelsList.forEach(element => {
|
||||
const remB = Big(element.remote_balance)
|
||||
if (remB.gt(remoteBalance)) {
|
||||
remoteBalance = remB
|
||||
}
|
||||
})
|
||||
newInvoice.liquidityCheck = remoteBalance > req.body.value
|
||||
//newInvoice.remoteBalance = remoteBalance
|
||||
res.json(newInvoice)
|
||||
})
|
||||
} else {
|
||||
res.json(newInvoice)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
addInvoiceRes.liquidityCheck = remoteBalance > value
|
||||
//newInvoice.remoteBalance = remoteBalance
|
||||
}
|
||||
|
||||
try {
|
||||
return res.json(addInvoiceRes)
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return res.status(500).json({
|
||||
errorMessage: e.message
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
// signmessage
|
||||
|
|
@ -1880,7 +1793,8 @@ module.exports = async (
|
|||
const sendCoinsRequest = {
|
||||
addr: req.body.addr,
|
||||
amount: req.body.amount,
|
||||
sat_per_byte: req.body.satPerByte
|
||||
sat_per_byte: req.body.satPerByte,
|
||||
send_all: req.body.send_all === true
|
||||
}
|
||||
logger.debug('SendCoins', sendCoinsRequest)
|
||||
lightning.sendCoins(sendCoinsRequest, async (err, response) => {
|
||||
|
|
@ -1958,23 +1872,25 @@ module.exports = async (
|
|||
)
|
||||
})
|
||||
|
||||
app.post('/api/lnd/listunspent', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
const { minConfirmations = 3, maxConfirmations = 6 } = req.body
|
||||
lightning.listUnspent(
|
||||
{
|
||||
min_confs: minConfirmations,
|
||||
max_confs: maxConfirmations
|
||||
},
|
||||
(err, unspent) => {
|
||||
if (err) {
|
||||
return handleError(res, err)
|
||||
}
|
||||
logger.debug('ListUnspent:', unspent)
|
||||
res.json(unspent)
|
||||
}
|
||||
)
|
||||
})
|
||||
const listunspent = async (req, res) => {
|
||||
try {
|
||||
return res.status(200).json({
|
||||
utxos: await LV2.listUnspent(
|
||||
req.body.minConfirmations,
|
||||
req.body.maxConfirmations
|
||||
)
|
||||
})
|
||||
} catch (e) {
|
||||
return res.status(500).json({
|
||||
errorMessage: e.message
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
app.get('/api/lnd/listunspent', listunspent)
|
||||
|
||||
// TODO: should be GET
|
||||
app.post('/api/lnd/listunspent', listunspent)
|
||||
|
||||
app.get('/api/lnd/transactions', (req, res) => {
|
||||
const { lightning } = LightningServices.services
|
||||
|
|
|
|||
|
|
@ -74,6 +74,13 @@ class LightningServices {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {import('./types').Services}
|
||||
*/
|
||||
getServices() {
|
||||
return this.services
|
||||
}
|
||||
|
||||
get servicesData() {
|
||||
return this.lnServicesData
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
/**
|
||||
* @format
|
||||
*/
|
||||
import * as Common from 'shock-common'
|
||||
|
||||
export interface PaymentV2 {
|
||||
payment_hash: string
|
||||
|
|
@ -106,3 +107,90 @@ export interface SendPaymentInvoiceParams {
|
|||
payment_request: string
|
||||
timeoutSeconds?: number
|
||||
}
|
||||
|
||||
type StreamListener = (data: any) => void
|
||||
|
||||
/**
|
||||
* Caution: Not all methods return an stream.
|
||||
*/
|
||||
interface LightningStream {
|
||||
on(ev: 'data' | 'end' | 'error' | 'status', listener: StreamListener): void
|
||||
}
|
||||
|
||||
type LightningCB = (err: Error, data: Record<string, any>) => void
|
||||
|
||||
type LightningMethod = (
|
||||
args: Record<string, any>,
|
||||
cb?: LightningCB
|
||||
) => LightningStream
|
||||
|
||||
/**
|
||||
* Makes it easier for code calling services.
|
||||
*/
|
||||
export interface Services {
|
||||
lightning: Record<string, LightningMethod>
|
||||
walletUnlocker: Record<string, LightningMethod>
|
||||
router: Record<string, LightningMethod>
|
||||
}
|
||||
|
||||
export interface ListChannelsReq {
|
||||
active_only: boolean
|
||||
inactive_only: boolean
|
||||
public_only: boolean
|
||||
private_only: boolean
|
||||
/**
|
||||
* Filters the response for channels with a target peer's pubkey. If peer is
|
||||
* empty, all channels will be returned.
|
||||
*/
|
||||
peer: Common.Bytes
|
||||
}
|
||||
|
||||
/**
|
||||
* https://api.lightning.community/#pendingchannels
|
||||
*/
|
||||
export interface PendingChannelsRes {
|
||||
/**
|
||||
* The balance in satoshis encumbered in pending channels.
|
||||
*/
|
||||
total_limbo_balance: string
|
||||
/**
|
||||
* Channels pending opening.
|
||||
*/
|
||||
pending_open_channels: Common.PendingOpenChannel[]
|
||||
/**
|
||||
* Channels pending force closing.
|
||||
*/
|
||||
pending_force_closing_channels: Common.ForceClosedChannel[]
|
||||
/**
|
||||
* Channels waiting for closing tx to confirm.
|
||||
*/
|
||||
waiting_close_channels: Common.WaitingCloseChannel[]
|
||||
}
|
||||
|
||||
/**
|
||||
* https://github.com/lightningnetwork/lnd/blob/daf7c8a85420fc67fffa18fa5f7d08c2040946e4/lnrpc/rpc.proto#L2948
|
||||
*/
|
||||
export interface AddInvoiceRes {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
r_hash: Common.Bytes
|
||||
/**
|
||||
* A bare-bones invoice for a payment within the Lightning Network. With the
|
||||
* details of the invoice, the sender has all the data necessary to send a
|
||||
* payment to the recipient.
|
||||
*/
|
||||
payment_request: string
|
||||
/**
|
||||
* The "add" index of this invoice. Each newly created invoice will increment
|
||||
* this index making it monotonically increasing. Callers to the
|
||||
* SubscribeInvoices call can use this to instantly get notified of all added
|
||||
* invoices with an add_index greater than this one.
|
||||
*/
|
||||
add_index: string
|
||||
/**
|
||||
* The payment address of the generated invoice. This value should be used in
|
||||
* all payments for this invoice as we require it for end to end security.
|
||||
*/
|
||||
payment_addr: Common.Bytes
|
||||
}
|
||||
|
|
|
|||
|
|
@ -402,9 +402,185 @@ const decodePayReq = payReq =>
|
|||
)
|
||||
})
|
||||
|
||||
/**
|
||||
* @param {0|1} type
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
const newAddress = (type = 0) => {
|
||||
const { lightning } = lightningServices.getServices()
|
||||
|
||||
return Common.Utils.makePromise((res, rej) => {
|
||||
lightning.newAddress({ type }, (err, response) => {
|
||||
if (err) {
|
||||
rej(new Error(err.message))
|
||||
} else {
|
||||
res(response.address)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} minConfs
|
||||
* @param {number} maxConfs
|
||||
* @returns {Promise<Common.Utxo[]>}
|
||||
*/
|
||||
const listUnspent = (minConfs = 3, maxConfs = 6) =>
|
||||
Common.makePromise((res, rej) => {
|
||||
const { lightning } = lightningServices.getServices()
|
||||
|
||||
lightning.listUnspent(
|
||||
{
|
||||
min_confs: minConfs,
|
||||
max_confs: maxConfs
|
||||
},
|
||||
(err, unspent) => {
|
||||
if (err) {
|
||||
rej(new Error(err.message))
|
||||
} else {
|
||||
res(unspent.utxos)
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
/**
|
||||
* @typedef {import('./types').ListChannelsReq} ListChannelsReq
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {ListChannelsReq} req
|
||||
* @returns {Promise<Common.Channel[]>}
|
||||
*/
|
||||
const listChannels = req =>
|
||||
Common.makePromise((res, rej) => {
|
||||
const { lightning } = lightningServices.getServices()
|
||||
|
||||
lightning.listChannels(req, (err, resp) => {
|
||||
if (err) {
|
||||
rej(new Error(err.message))
|
||||
} else {
|
||||
res(resp.channels)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
/**
|
||||
* https://api.lightning.community/#getchaninfo
|
||||
* @param {string} chanID
|
||||
* @returns {Promise<Common.ChannelEdge>}
|
||||
*/
|
||||
const getChanInfo = chanID =>
|
||||
Common.makePromise((res, rej) => {
|
||||
const { lightning } = lightningServices.getServices()
|
||||
|
||||
lightning.getChanInfo(
|
||||
{
|
||||
chan_id: chanID
|
||||
},
|
||||
(err, resp) => {
|
||||
if (err) {
|
||||
rej(new Error(err.message))
|
||||
} else {
|
||||
// Needs cast because typescript refuses to assign Record<string, any>
|
||||
// to an actual object :shrugs
|
||||
res(/** @type {Common.ChannelEdge} */ (resp))
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
/**
|
||||
* https://api.lightning.community/#listpeers
|
||||
* @param {boolean=} latestError If true, only the last error that our peer sent
|
||||
* us will be returned with the peer's information, rather than the full set of
|
||||
* historic errors we have stored.
|
||||
* @returns {Promise<Common.Peer[]>}
|
||||
*/
|
||||
const listPeers = latestError =>
|
||||
Common.makePromise((res, rej) => {
|
||||
const { lightning } = lightningServices.getServices()
|
||||
|
||||
lightning.listPeers(
|
||||
{
|
||||
latest_error: latestError
|
||||
},
|
||||
(err, resp) => {
|
||||
if (err) {
|
||||
rej(new Error(err.message))
|
||||
} else {
|
||||
res(resp.peers)
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
/**
|
||||
* @typedef {import('./types').PendingChannelsRes} PendingChannelsRes
|
||||
*/
|
||||
|
||||
/**
|
||||
* @returns {Promise<PendingChannelsRes>}
|
||||
*/
|
||||
const pendingChannels = () =>
|
||||
Common.makePromise((res, rej) => {
|
||||
const { lightning } = lightningServices.getServices()
|
||||
|
||||
lightning.pendingChannels({}, (err, resp) => {
|
||||
if (err) {
|
||||
rej(new Error(err.message))
|
||||
} else {
|
||||
// Needs cast because typescript refuses to assign Record<string, any>
|
||||
// to an actual object :shrugs
|
||||
res(/** @type {PendingChannelsRes} */ (resp))
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
/**
|
||||
* @typedef {import('./types').AddInvoiceRes} AddInvoiceRes
|
||||
*/
|
||||
/**
|
||||
* https://api.lightning.community/#addinvoice
|
||||
* @param {number} value
|
||||
* @param {string=} memo
|
||||
* @param {boolean=} confidential Alias for `private`.
|
||||
* @param {number=} expiry
|
||||
* @returns {Promise<AddInvoiceRes>}
|
||||
*/
|
||||
const addInvoice = (value, memo = '', confidential = true, expiry = 180) =>
|
||||
Common.makePromise((res, rej) => {
|
||||
const { lightning } = lightningServices.getServices()
|
||||
|
||||
lightning.addInvoice(
|
||||
{
|
||||
value,
|
||||
memo,
|
||||
private: confidential,
|
||||
expiry
|
||||
},
|
||||
(err, resp) => {
|
||||
if (err) {
|
||||
rej(new Error(err.message))
|
||||
} else {
|
||||
// Needs cast because typescript refuses to assign Record<string, any>
|
||||
// to an actual object :shrugs
|
||||
res(/** @type {AddInvoiceRes} */ (resp))
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
module.exports = {
|
||||
sendPaymentV2Keysend,
|
||||
sendPaymentV2Invoice,
|
||||
listPayments,
|
||||
decodePayReq
|
||||
decodePayReq,
|
||||
newAddress,
|
||||
listUnspent,
|
||||
listChannels,
|
||||
getChanInfo,
|
||||
listPeers,
|
||||
pendingChannels,
|
||||
addInvoice
|
||||
}
|
||||
|
|
|
|||
385
yarn.lock
385
yarn.lock
|
|
@ -2,12 +2,12 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
|
||||
version "7.5.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
|
||||
integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
|
||||
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11", "@babel/code-frame@^7.5.5":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
|
||||
integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
|
||||
dependencies:
|
||||
"@babel/highlight" "^7.0.0"
|
||||
"@babel/highlight" "^7.10.4"
|
||||
|
||||
"@babel/core@^7.1.0":
|
||||
version "7.6.2"
|
||||
|
|
@ -29,6 +29,15 @@
|
|||
semver "^5.4.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af"
|
||||
integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.12.11"
|
||||
jsesc "^2.5.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.4.0", "@babel/generator@^7.6.2":
|
||||
version "7.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03"
|
||||
|
|
@ -39,79 +48,101 @@
|
|||
lodash "^4.17.13"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.6.3":
|
||||
version "7.6.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671"
|
||||
integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==
|
||||
"@babel/helper-create-class-features-plugin@^7.12.1":
|
||||
version "7.12.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e"
|
||||
integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==
|
||||
dependencies:
|
||||
"@babel/types" "^7.6.3"
|
||||
jsesc "^2.5.1"
|
||||
lodash "^4.17.13"
|
||||
source-map "^0.5.0"
|
||||
"@babel/helper-function-name" "^7.10.4"
|
||||
"@babel/helper-member-expression-to-functions" "^7.12.1"
|
||||
"@babel/helper-optimise-call-expression" "^7.10.4"
|
||||
"@babel/helper-replace-supers" "^7.12.1"
|
||||
"@babel/helper-split-export-declaration" "^7.10.4"
|
||||
|
||||
"@babel/helper-create-class-features-plugin@^7.5.5":
|
||||
version "7.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f"
|
||||
integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==
|
||||
"@babel/helper-function-name@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
|
||||
integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
|
||||
dependencies:
|
||||
"@babel/helper-function-name" "^7.1.0"
|
||||
"@babel/helper-member-expression-to-functions" "^7.5.5"
|
||||
"@babel/helper-optimise-call-expression" "^7.0.0"
|
||||
"@babel/helper-plugin-utils" "^7.0.0"
|
||||
"@babel/helper-replace-supers" "^7.5.5"
|
||||
"@babel/helper-split-export-declaration" "^7.4.4"
|
||||
"@babel/helper-get-function-arity" "^7.10.4"
|
||||
"@babel/template" "^7.10.4"
|
||||
"@babel/types" "^7.10.4"
|
||||
|
||||
"@babel/helper-function-name@^7.1.0":
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
|
||||
integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
|
||||
"@babel/helper-function-name@^7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42"
|
||||
integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==
|
||||
dependencies:
|
||||
"@babel/helper-get-function-arity" "^7.0.0"
|
||||
"@babel/template" "^7.1.0"
|
||||
"@babel/types" "^7.0.0"
|
||||
"@babel/helper-get-function-arity" "^7.12.10"
|
||||
"@babel/template" "^7.12.7"
|
||||
"@babel/types" "^7.12.11"
|
||||
|
||||
"@babel/helper-get-function-arity@^7.0.0":
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
|
||||
integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
|
||||
"@babel/helper-get-function-arity@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
|
||||
integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==
|
||||
dependencies:
|
||||
"@babel/types" "^7.0.0"
|
||||
"@babel/types" "^7.10.4"
|
||||
|
||||
"@babel/helper-member-expression-to-functions@^7.5.5":
|
||||
version "7.5.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
|
||||
integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==
|
||||
"@babel/helper-get-function-arity@^7.12.10":
|
||||
version "7.12.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf"
|
||||
integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==
|
||||
dependencies:
|
||||
"@babel/types" "^7.5.5"
|
||||
"@babel/types" "^7.12.10"
|
||||
|
||||
"@babel/helper-optimise-call-expression@^7.0.0":
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
|
||||
integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
|
||||
"@babel/helper-member-expression-to-functions@^7.12.1":
|
||||
version "7.12.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c"
|
||||
integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==
|
||||
dependencies:
|
||||
"@babel/types" "^7.0.0"
|
||||
"@babel/types" "^7.12.1"
|
||||
|
||||
"@babel/helper-plugin-utils@^7.0.0":
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
|
||||
integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
|
||||
|
||||
"@babel/helper-replace-supers@^7.5.5":
|
||||
version "7.5.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
|
||||
integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==
|
||||
"@babel/helper-optimise-call-expression@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
|
||||
integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==
|
||||
dependencies:
|
||||
"@babel/helper-member-expression-to-functions" "^7.5.5"
|
||||
"@babel/helper-optimise-call-expression" "^7.0.0"
|
||||
"@babel/traverse" "^7.5.5"
|
||||
"@babel/types" "^7.5.5"
|
||||
"@babel/types" "^7.10.4"
|
||||
|
||||
"@babel/helper-split-export-declaration@^7.4.4":
|
||||
version "7.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
|
||||
integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
|
||||
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
|
||||
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
|
||||
|
||||
"@babel/helper-replace-supers@^7.12.1":
|
||||
version "7.12.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9"
|
||||
integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.4.4"
|
||||
"@babel/helper-member-expression-to-functions" "^7.12.1"
|
||||
"@babel/helper-optimise-call-expression" "^7.10.4"
|
||||
"@babel/traverse" "^7.12.5"
|
||||
"@babel/types" "^7.12.5"
|
||||
|
||||
"@babel/helper-split-export-declaration@^7.10.4":
|
||||
version "7.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
|
||||
integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
|
||||
dependencies:
|
||||
"@babel/types" "^7.11.0"
|
||||
|
||||
"@babel/helper-split-export-declaration@^7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a"
|
||||
integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==
|
||||
dependencies:
|
||||
"@babel/types" "^7.12.11"
|
||||
|
||||
"@babel/helper-validator-identifier@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
|
||||
integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
|
||||
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
||||
|
||||
"@babel/helpers@^7.6.2":
|
||||
version "7.6.2"
|
||||
|
|
@ -122,32 +153,27 @@
|
|||
"@babel/traverse" "^7.6.2"
|
||||
"@babel/types" "^7.6.0"
|
||||
|
||||
"@babel/highlight@^7.0.0":
|
||||
version "7.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
|
||||
integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
|
||||
"@babel/highlight@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
|
||||
integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.10.4"
|
||||
chalk "^2.0.0"
|
||||
esutils "^2.0.2"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@^7.0.0", "@babel/parser@^7.6.3":
|
||||
version "7.6.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81"
|
||||
integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==
|
||||
"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.2", "@babel/parser@^7.7.0":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
|
||||
integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==
|
||||
|
||||
"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.2":
|
||||
version "7.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1"
|
||||
integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==
|
||||
|
||||
"@babel/plugin-proposal-class-properties@^7.5.5":
|
||||
version "7.5.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
|
||||
integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==
|
||||
"@babel/plugin-proposal-class-properties@^7.12.1":
|
||||
version "7.12.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de"
|
||||
integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==
|
||||
dependencies:
|
||||
"@babel/helper-create-class-features-plugin" "^7.5.5"
|
||||
"@babel/helper-plugin-utils" "^7.0.0"
|
||||
"@babel/helper-create-class-features-plugin" "^7.12.1"
|
||||
"@babel/helper-plugin-utils" "^7.10.4"
|
||||
|
||||
"@babel/plugin-syntax-object-rest-spread@^7.0.0":
|
||||
version "7.2.0"
|
||||
|
|
@ -163,7 +189,25 @@
|
|||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.6.0":
|
||||
"@babel/template@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
|
||||
integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.10.4"
|
||||
"@babel/parser" "^7.10.4"
|
||||
"@babel/types" "^7.10.4"
|
||||
|
||||
"@babel/template@^7.12.7":
|
||||
version "7.12.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
|
||||
integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.10.4"
|
||||
"@babel/parser" "^7.12.7"
|
||||
"@babel/types" "^7.12.7"
|
||||
|
||||
"@babel/template@^7.4.0", "@babel/template@^7.6.0":
|
||||
version "7.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
|
||||
integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==
|
||||
|
|
@ -172,52 +216,28 @@
|
|||
"@babel/parser" "^7.6.0"
|
||||
"@babel/types" "^7.6.0"
|
||||
|
||||
"@babel/traverse@^7.0.0":
|
||||
version "7.6.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9"
|
||||
integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==
|
||||
"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.2", "@babel/traverse@^7.7.0":
|
||||
version "7.12.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376"
|
||||
integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.5.5"
|
||||
"@babel/generator" "^7.6.3"
|
||||
"@babel/helper-function-name" "^7.1.0"
|
||||
"@babel/helper-split-export-declaration" "^7.4.4"
|
||||
"@babel/parser" "^7.6.3"
|
||||
"@babel/types" "^7.6.3"
|
||||
"@babel/code-frame" "^7.12.11"
|
||||
"@babel/generator" "^7.12.11"
|
||||
"@babel/helper-function-name" "^7.12.11"
|
||||
"@babel/helper-split-export-declaration" "^7.12.11"
|
||||
"@babel/parser" "^7.12.11"
|
||||
"@babel/types" "^7.12.12"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
lodash "^4.17.13"
|
||||
lodash "^4.17.19"
|
||||
|
||||
"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2":
|
||||
version "7.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c"
|
||||
integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==
|
||||
"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.6.0", "@babel/types@^7.7.0":
|
||||
version "7.12.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
|
||||
integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.5.5"
|
||||
"@babel/generator" "^7.6.2"
|
||||
"@babel/helper-function-name" "^7.1.0"
|
||||
"@babel/helper-split-export-declaration" "^7.4.4"
|
||||
"@babel/parser" "^7.6.2"
|
||||
"@babel/types" "^7.6.0"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
lodash "^4.17.13"
|
||||
|
||||
"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0":
|
||||
version "7.6.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648"
|
||||
integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
lodash "^4.17.13"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@babel/types@^7.6.3":
|
||||
version "7.6.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09"
|
||||
integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
lodash "^4.17.13"
|
||||
"@babel/helper-validator-identifier" "^7.12.11"
|
||||
lodash "^4.17.19"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@cnakazawa/watch@^1.0.3":
|
||||
|
|
@ -246,10 +266,10 @@
|
|||
google-auth-library "^6.1.1"
|
||||
semver "^6.2.0"
|
||||
|
||||
"@grpc/proto-loader@^0.5.1":
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.2.tgz#c84f83be962f518bc303ca2d5e6ef2239439786c"
|
||||
integrity sha512-eBKD/FPxQoY1x6QONW2nBd54QUEyzcFP9FenujmoeDPy1rutVSHki1s/wR68F6O1QfCNDx+ayBH1O2CVNMzyyw==
|
||||
"@grpc/proto-loader@^0.5.5":
|
||||
version "0.5.5"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.5.tgz#6725e7a1827bdf8e92e29fbf4e9ef0203c0906a9"
|
||||
integrity sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ==
|
||||
dependencies:
|
||||
lodash.camelcase "^4.3.0"
|
||||
protobufjs "^6.8.6"
|
||||
|
|
@ -722,6 +742,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
|
||||
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
|
||||
|
||||
"@types/prop-types@*":
|
||||
version "15.7.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
|
||||
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
|
||||
|
||||
"@types/pvutils@*":
|
||||
version "0.0.2"
|
||||
resolved "https://registry.npmjs.org/@types/pvutils/-/pvutils-0.0.2.tgz#e21684962cfa58ac920fd576d90556032dc86009"
|
||||
|
|
@ -736,6 +761,14 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
|
||||
integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
|
||||
|
||||
"@types/react@16.x.x":
|
||||
version "16.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.2.tgz#85dcc0947d0645349923c04ccef6018a1ab7538c"
|
||||
integrity sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ==
|
||||
dependencies:
|
||||
"@types/prop-types" "*"
|
||||
csstype "^3.0.2"
|
||||
|
||||
"@types/serve-static@*":
|
||||
version "1.13.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1"
|
||||
|
|
@ -1130,10 +1163,10 @@ axios@0.19.0:
|
|||
follow-redirects "1.5.10"
|
||||
is-buffer "^2.0.2"
|
||||
|
||||
axios@^0.20.0:
|
||||
version "0.20.0"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-0.20.0.tgz#057ba30f04884694993a8cd07fa394cff11c50bd"
|
||||
integrity sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==
|
||||
axios@^0.21.1:
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
|
||||
integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
|
||||
dependencies:
|
||||
follow-redirects "^1.10.0"
|
||||
|
||||
|
|
@ -1146,15 +1179,15 @@ babel-code-frame@^6.26.0:
|
|||
esutils "^2.0.2"
|
||||
js-tokens "^3.0.2"
|
||||
|
||||
babel-eslint@^10.0.3:
|
||||
version "10.0.3"
|
||||
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a"
|
||||
integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==
|
||||
babel-eslint@^10.1.0:
|
||||
version "10.1.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
|
||||
integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.0.0"
|
||||
"@babel/parser" "^7.0.0"
|
||||
"@babel/traverse" "^7.0.0"
|
||||
"@babel/types" "^7.0.0"
|
||||
"@babel/parser" "^7.7.0"
|
||||
"@babel/traverse" "^7.7.0"
|
||||
"@babel/types" "^7.7.0"
|
||||
eslint-visitor-keys "^1.0.0"
|
||||
resolve "^1.12.0"
|
||||
|
||||
|
|
@ -1373,12 +1406,7 @@ blob@0.0.5:
|
|||
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
|
||||
integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
|
||||
|
||||
bluebird@^3.5.0:
|
||||
version "3.5.5"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
|
||||
integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
|
||||
|
||||
bluebird@^3.7.2:
|
||||
bluebird@^3.5.0, bluebird@^3.7.2:
|
||||
version "3.7.2"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
||||
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
|
||||
|
|
@ -2010,6 +2038,11 @@ cssstyle@^1.0.0:
|
|||
dependencies:
|
||||
cssom "0.3.x"
|
||||
|
||||
csstype@^3.0.2:
|
||||
version "3.0.6"
|
||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef"
|
||||
integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==
|
||||
|
||||
dashdash@^1.12.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
||||
|
|
@ -2033,14 +2066,14 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
|
|||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@4:
|
||||
debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
|
||||
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
|
||||
debug@4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
|
||||
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
|
||||
|
|
@ -2614,18 +2647,18 @@ expect@^24.9.0:
|
|||
jest-message-util "^24.9.0"
|
||||
jest-regex-util "^24.9.0"
|
||||
|
||||
express-session@^1.15.1:
|
||||
version "1.16.2"
|
||||
resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.16.2.tgz#59f36d7770e94872d19b163b6708a2d16aa6848c"
|
||||
integrity sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw==
|
||||
express-session@^1.17.1:
|
||||
version "1.17.1"
|
||||
resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.1.tgz#36ecbc7034566d38c8509885c044d461c11bf357"
|
||||
integrity sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==
|
||||
dependencies:
|
||||
cookie "0.3.1"
|
||||
cookie "0.4.0"
|
||||
cookie-signature "1.0.6"
|
||||
debug "2.6.9"
|
||||
depd "~2.0.0"
|
||||
on-headers "~1.0.2"
|
||||
parseurl "~1.3.3"
|
||||
safe-buffer "5.1.2"
|
||||
safe-buffer "5.2.0"
|
||||
uid-safe "~2.1.5"
|
||||
|
||||
express@^4.14.1:
|
||||
|
|
@ -3467,9 +3500,9 @@ inherits@=2.0.1:
|
|||
integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
|
||||
|
||||
ini@^1.3.4, ini@~1.3.0:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
|
||||
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
|
||||
version "1.3.8"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
||||
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
||||
|
||||
inquirer@^7.0.0:
|
||||
version "7.0.0"
|
||||
|
|
@ -5570,10 +5603,10 @@ progress@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||
|
||||
promise@^8.0.1:
|
||||
version "8.0.3"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.3.tgz#f592e099c6cddc000d538ee7283bb190452b0bf6"
|
||||
integrity sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==
|
||||
promise@^8.1.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
|
||||
integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==
|
||||
dependencies:
|
||||
asap "~2.0.6"
|
||||
|
||||
|
|
@ -5889,6 +5922,13 @@ request-promise-core@1.1.2:
|
|||
dependencies:
|
||||
lodash "^4.17.11"
|
||||
|
||||
request-promise-core@1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
|
||||
integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
|
||||
dependencies:
|
||||
lodash "^4.17.19"
|
||||
|
||||
request-promise-native@^1.0.5:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59"
|
||||
|
|
@ -5898,13 +5938,13 @@ request-promise-native@^1.0.5:
|
|||
stealthy-require "^1.1.1"
|
||||
tough-cookie "^2.3.3"
|
||||
|
||||
request-promise@^4.2.2:
|
||||
version "4.2.4"
|
||||
resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.4.tgz#1c5ed0d71441e38ad58c7ce4ea4ea5b06d54b310"
|
||||
integrity sha512-8wgMrvE546PzbR5WbYxUQogUnUDfM0S7QIFZMID+J73vdFARkFy+HElj4T+MWYhpXwlLp0EQ8Zoj8xUA0he4Vg==
|
||||
request-promise@^4.2.6:
|
||||
version "4.2.6"
|
||||
resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.6.tgz#7e7e5b9578630e6f598e3813c0f8eb342a27f0a2"
|
||||
integrity sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==
|
||||
dependencies:
|
||||
bluebird "^3.5.0"
|
||||
request-promise-core "1.1.2"
|
||||
request-promise-core "1.1.4"
|
||||
stealthy-require "^1.1.1"
|
||||
tough-cookie "^2.3.3"
|
||||
|
||||
|
|
@ -6049,6 +6089,11 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
|||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||
|
||||
safe-buffer@5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
|
||||
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
|
||||
|
||||
safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||
|
|
@ -6210,10 +6255,10 @@ shellwords@^0.1.1:
|
|||
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
|
||||
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
|
||||
|
||||
shock-common@24.x.x:
|
||||
version "24.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shock-common/-/shock-common-24.0.0.tgz#4307846515c49ab78720ef59df07486fcae15fd6"
|
||||
integrity sha512-bCaxSZcK6Lb6e4+KTXU9bSKKu9b+SEf+n10NG6X/9NjMZQgKF/hUZUVVgsslsRfiobJbSUBK3uIzBsU7a0pMAA==
|
||||
shock-common@29.1.0:
|
||||
version "29.1.0"
|
||||
resolved "https://registry.yarnpkg.com/shock-common/-/shock-common-29.1.0.tgz#3b6d8613fb7c73b8b76c98293a14ec168a9dc888"
|
||||
integrity sha512-O2tK+TShF3ioAdP4K33MB5QUDTmMqzz+pZe/HnSbi9q1DyX/zQ2Uluzol1NDE/6Z2SSnVFA7/2vJKGaCEdMKoQ==
|
||||
dependencies:
|
||||
immer "^6.0.6"
|
||||
lodash "^4.17.19"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue