aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package.json2
-rw-r--r--routes/invoices.js9
-rw-r--r--routes/liquid/receive.js176
-rw-r--r--routes/liquid/send.js1
-rw-r--r--routes/swaps.js81
-rw-r--r--yarn.lock104
6 files changed, 231 insertions, 142 deletions
diff --git a/package.json b/package.json
index 00f3e213..746e4c6a 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"bcrypt": "^5.0.0",
"bip32": "^2.0.5",
"bip39": "^3.0.2",
- "bitcoin-core": "https://github.com/asoltys/bitcoin-core",
+ "bitcoin-core": "asoltys/bitcoin-core",
"bitcoinjs-lib": "^5.1.8",
"body-parser": "^1.19.0",
"bolt11": "^1.2.5",
diff --git a/routes/invoices.js b/routes/invoices.js
index 11d62eb6..59adb862 100644
--- a/routes/invoices.js
+++ b/routes/invoices.js
@@ -17,6 +17,8 @@ app.get("/invoice", auth, ah(async (req, res, next) => {
app.post("/invoice", ah(async (req, res, next) => {
try {
let { invoice, user } = req.body;
+ let { blindkey } = invoice;
+
if (!user) ({ user } = req);
else {
user = await db.User.findOne({
@@ -38,7 +40,7 @@ app.post("/invoice", ah(async (req, res, next) => {
invoice.currency,
);
- if (invoice.network === "liquid") {
+ if (invoice.network === "liquid" && !invoice.unconfidential) {
invoice.unconfidential = (
await lq.getAddressInfo(invoice.address)
).unconfidential;
@@ -58,7 +60,10 @@ app.post("/invoice", ah(async (req, res, next) => {
invoice = exists ? await exists.update(invoice) : await db.Invoice.create(invoice);
addresses[invoice.address] = user.username;
- if (invoice.unconfidential) addresses[invoice.unconfidential] = user.username;
+ if (invoice.unconfidential) {
+ addresses[invoice.unconfidential] = user.username;
+ // await lq.importBlindingKey(invoice.address, blindkey);
+ }
res.send(invoice);
} catch(e) {
l.error(e.message, e.stack);
diff --git a/routes/liquid/receive.js b/routes/liquid/receive.js
index 097dc53a..2976bf57 100644
--- a/routes/liquid/receive.js
+++ b/routes/liquid/receive.js
@@ -12,16 +12,15 @@ const network =
config.liquid.network === "mainnet" ? "liquid" : config.liquid.network
];
-const getAccount = async (params) => {
+const getAccount = async params => {
let account = await db.Account.findOne({
where: params
});
-
if (account) {
l.info("found account", params, account.asset, account.id);
return account;
- }
+ }
let { asset, pubkey } = params;
let name = asset.substr(0, 6);
@@ -29,7 +28,7 @@ const getAccount = async (params) => {
let ticker = asset.substr(0, 3).toUpperCase();
let precision = 8;
- const assets = app.get('assets');
+ const assets = app.get("assets");
if (assets[asset]) {
({ domain, ticker, precision, name } = assets[asset]);
@@ -37,10 +36,10 @@ const getAccount = async (params) => {
const existing = await db.Account.findOne({
where: {
asset,
- pubkey,
+ pubkey
},
order: [["id", "ASC"]],
- limit: 1,
+ limit: 1
});
if (existing) {
@@ -51,7 +50,7 @@ const getAccount = async (params) => {
params = { ...params, ...{ domain, ticker, precision, name } };
params.balance = 0;
- params.network = 'liquid';
+ params.network = "liquid";
return db.Account.create(params);
};
@@ -71,88 +70,93 @@ zmqRawTx.on("message", async (topic, message, sequence) => {
if (payments.includes(blinded.txid)) return;
Promise.all(
- tx.vout.map(async (o) => {
- if (!(o.scriptPubKey && o.scriptPubKey.addresses)) return;
+ tx.vout.map(async o => {
+ try {
+ if (!(o.scriptPubKey && o.scriptPubKey.addresses)) return;
- const { asset } = o;
- const value = toSats(o.value);
- const address = o.scriptPubKey.addresses[0];
+ const { asset } = o;
+ const value = toSats(o.value);
+ const address = o.scriptPubKey.addresses[0];
- if (
- Object.keys(addresses).includes(address) &&
- !change.includes(address)
- ) {
- let user = await getUser(addresses[address]);
+ if (
+ Object.keys(addresses).includes(address) &&
+ !change.includes(address)
+ ) {
+ let user = await getUser(addresses[address]);
- let invoice = await db.Invoice.findOne({
- where: {
- unconfidential: address,
- user_id: user.id,
- network: "liquid",
- },
- order: [["id", "DESC"]],
- include: {
- model: db.Account,
- as: "account",
- },
- });
+ let invoice = await db.Invoice.findOne({
+ where: {
+ unconfidential: address,
+ user_id: user.id,
+ network: "liquid"
+ },
+ order: [["id", "DESC"]],
+ include: {
+ model: db.Account,
+ as: "account"
+ }
+ });
- if (!invoice) return;
+ if (!invoice) return;
- let confirmed = 0;
+ let confirmed = 0;
- let { account } = invoice;
+ let { account } = invoice;
- if (account.asset === asset && (!account.pubkey || account.network === 'liquid')) {
- account.pending += value;
- await account.save();
- } else {
- account = await getAccount(
- {
+ if (
+ account.asset === asset &&
+ (!account.pubkey || account.network === "liquid")
+ ) {
+ account.pending += value;
+ await account.save();
+ } else {
+ account = await getAccount({
seed: account.seed,
path: account.path,
user_id: user.id,
asset,
pubkey: account.pubkey,
pending: value,
- index: 0,
- },
- );
- }
+ index: 0
+ });
+ }
- if (config.liquid.walletpass)
- await lq.walletPassphrase(config.liquid.walletpass, 300);
+ if (config.liquid.walletpass)
+ await lq.walletPassphrase(config.liquid.walletpass, 300);
- await user.save();
+ await user.save();
- const currency = invoice ? invoice.currency : user.currency;
- const rate = invoice ? invoice.rate : app.get("rates")[user.currency];
- const tip = invoice ? invoice.tip : 0;
- const memo = invoice ? invoice.memo : "";
+ const currency = invoice ? invoice.currency : user.currency;
+ const rate = invoice ? invoice.rate : app.get("rates")[user.currency];
+ const tip = invoice ? invoice.tip : 0;
+ const memo = invoice ? invoice.memo : "";
- let payment = await db.Payment.create({
- account_id: account.id,
- user_id: user.id,
- hash: blinded.txid,
- amount: value - tip,
- currency,
- memo,
- rate,
- received: true,
- tip,
- confirmed,
- address,
- network: "liquid",
- });
+ let payment = await db.Payment.create({
+ account_id: account.id,
+ user_id: user.id,
+ hash: blinded.txid,
+ amount: value - tip,
+ currency,
+ memo,
+ rate,
+ received: true,
+ tip,
+ confirmed,
+ address,
+ network: "liquid"
+ });
- payments.push(blinded.txid);
- payment = payment.get({ plain: true });
- payment.account = account.get({ plain: true });
+ payments.push(blinded.txid);
+ payment = payment.get({ plain: true });
+ payment.account = account.get({ plain: true });
- emit(user.username, "payment", payment);
- emit(user.username, "account", payment.account);
- l.info("liquid detected", address, user.username, asset, value);
- notify(user, `${value} SAT payment detected`);
+ emit(user.username, "payment", payment);
+ emit(user.username, "account", payment.account);
+ l.info("liquid detected", address, user.username, asset, value);
+ notify(user, `${value} SAT payment detected`);
+ }
+ } catch (e) {
+ l.error("Problem processing transaction", e.message, e.stack);
}
})
);
@@ -162,16 +166,16 @@ let queue = {};
zmqRawBlock.on("message", async (topic, message, sequence) => {
const payments = await db.Payment.findAll({
- where: { confirmed: 0 },
+ where: { confirmed: 0 }
});
const block = elements.Block.fromHex(message.toString("hex"), true);
const hash = await lq.getBlockHash(block.height);
const json = await lq.getBlock(hash, 2);
- json.tx.map(async (tx) => {
+ json.tx.map(async tx => {
if (issuances[tx.txid]) {
- await db.transaction(async (transaction) => {
+ await db.transaction(async transaction => {
const {
user_id,
asset,
@@ -179,7 +183,7 @@ zmqRawBlock.on("message", async (topic, message, sequence) => {
asset_payment_id,
token,
token_amount,
- token_payment_id,
+ token_payment_id
} = issuances[tx.txid];
const user = await getUserById(user_id);
@@ -187,7 +191,7 @@ zmqRawBlock.on("message", async (topic, message, sequence) => {
let account = await db.Account.findOne({
where: { user_id, asset },
lock: transaction.LOCK.UPDATE,
- transaction,
+ transaction
});
account.balance = asset_amount * SATS;
account.pending = 0;
@@ -197,10 +201,10 @@ zmqRawBlock.on("message", async (topic, message, sequence) => {
where: { id: asset_payment_id },
include: {
model: db.Account,
- as: "account",
+ as: "account"
},
lock: transaction.LOCK.UPDATE,
- transaction,
+ transaction
});
payment.confirmed = true;
@@ -215,7 +219,7 @@ zmqRawBlock.on("message", async (topic, message, sequence) => {
account = await db.Account.findOne({
where: { user_id, asset: token },
lock: transaction.LOCK.UPDATE,
- transaction,
+ transaction
});
account.balance = token_amount * SATS;
account.pending = 0;
@@ -225,10 +229,10 @@ zmqRawBlock.on("message", async (topic, message, sequence) => {
where: { id: token_payment_id },
include: {
model: db.Account,
- as: "account",
+ as: "account"
},
lock: transaction.LOCK.UPDATE,
- transaction,
+ transaction
});
payment.confirmed = true;
@@ -241,7 +245,7 @@ zmqRawBlock.on("message", async (topic, message, sequence) => {
emit(user.username, "payment", payment);
}
});
- } else if (payments.find((p) => p.hash === tx.txid)) queue[tx.txid] = 1;
+ } else if (payments.find(p => p.hash === tx.txid)) queue[tx.txid] = 1;
});
});
@@ -253,21 +257,21 @@ setInterval(async () => {
for (let i = 0; i < arr.length; i++) {
const hash = arr[i];
- await db.transaction(async (transaction) => {
+ await db.transaction(async transaction => {
let p = await db.Payment.findOne({
where: { hash, confirmed: 0, received: 1 },
include: [
{
model: db.Account,
- as: "account",
+ as: "account"
},
{
model: db.User,
- as: "user",
- },
+ as: "user"
+ }
],
lock: transaction.LOCK.UPDATE,
- transaction,
+ transaction
});
const { user } = p;
diff --git a/routes/liquid/send.js b/routes/liquid/send.js
index ebda5723..a04bc007 100644
--- a/routes/liquid/send.js
+++ b/routes/liquid/send.js
@@ -1,4 +1,5 @@
const btc = config.liquid.btcasset;
+const lcad = config.liquid.cadasset;
module.exports = ah(async (req, res) => {
let { user } = req;
diff --git a/routes/swaps.js b/routes/swaps.js
index b25e6550..a75be910 100644
--- a/routes/swaps.js
+++ b/routes/swaps.js
@@ -509,7 +509,7 @@ app.post(
include: [
{
model: db.User,
- as: "user",
+ as: "user"
},
{
model: db.Account,
@@ -592,8 +592,21 @@ app.post(
addresses[u_address_p] = order.user.username;
- console.log("new math", order.v2, Math.round(order.v2 * remaining / amount), amount, remaining, order.v1 - remaining);
- order.decrement({ v1: remaining, v2: Math.round(order.v2 * remaining / amount) }, { transaction });
+ console.log(
+ "new math",
+ order.v2,
+ Math.round((order.v2 * remaining) / amount),
+ amount,
+ remaining,
+ order.v1 - remaining
+ );
+ order.decrement(
+ {
+ v1: remaining,
+ v2: Math.round((order.v2 * remaining) / amount)
+ },
+ { transaction }
+ );
await order.save({ transaction });
await order.reload({ transaction });
@@ -835,10 +848,8 @@ app.post(
setInterval(async () => {
if (!app.get("rates")) return;
const amount = 0.0001;
- const btc =
- config.liquid.btcasset;
- const lcad =
- config.liquid.cadasset;
+ const btc = config.liquid.btcasset;
+ const lcad = config.liquid.cadasset;
const { CAD, USD } = app.get("rates");
const user = await db.User.findOne({
where: {
@@ -902,7 +913,10 @@ setInterval(async () => {
},
{ transaction }
);
- if (!bestBid || (params.v2 / params.v1 > bestBid.rate && p.acc2.balance >= params.v2)) {
+ if (
+ !bestBid ||
+ (params.v2 / params.v1 > bestBid.rate && p.acc2.balance >= params.v2)
+ ) {
p.v1 = params.v1;
p.v2 = params.v2;
await p.save();
@@ -950,16 +964,47 @@ setInterval(async () => {
v2: amount * SATS
};
- if (p && p.acc1.balance >= p.v1) {
- p.v1 = params.v1;
- p.v2 = params.v2;
- await p.save();
- p = p.get({ plain: true });
- p.a1 = params.a1;
- p.a2 = params.a2;
- p.rate = p.v2 / p.v1;
+ if (p) {
+ let bestAsk = await db.Order.findOne(
+ {
+ where: {
+ "$acc1.asset$": btc,
+ "$acc2.asset$": lcad,
+ accepted: false,
+ id: {
+ [Op.ne]: p.id
+ }
+ },
+ include: [
+ {
+ model: db.Account,
+ as: "acc1"
+ },
+ {
+ model: db.Account,
+ as: "acc2"
+ }
+ ],
+ order: [["rate", "ASC"]],
+ limit: 1
+ },
+ { transaction }
+ );
+
+ if (
+ !bestAsk ||
+ (params.v1 / params.v2 < bestAsk.rate && p.acc1.balance >= params.v1)
+ ) {
+ p.v1 = params.v1;
+ p.v2 = params.v2;
+ await p.save();
+ p = p.get({ plain: true });
+ p.a1 = params.a1;
+ p.a2 = params.a2;
+ p.rate = p.v2 / p.v1;
- broadcast("order", shallow(p));
+ broadcast("order", shallow(p));
+ }
} else {
try {
await swap(user, params);
@@ -968,4 +1013,4 @@ setInterval(async () => {
}
}
});
-}, 10000);
+}, 20000);
diff --git a/yarn.lock b/yarn.lock
index 68ac9637..d42edd09 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -358,10 +358,10 @@ [email protected]:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
-ansi-colors@^3.2.1:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
- integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
+ansi-colors@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
ansi-regex@^2.0.0:
version "2.1.1"
@@ -704,9 +704,9 @@ bip66@^1.1.0, bip66@^1.1.5:
dependencies:
safe-buffer "^5.0.1"
-"bitcoin-core@https://github.com/asoltys/bitcoin-core":
+bitcoin-core@asoltys/bitcoin-core:
version "3.0.0"
- resolved "https://github.com/asoltys/bitcoin-core#207a9f68c7297f05549f68dcebac01524f34061f"
+ resolved "https://codeload.github.com/asoltys/bitcoin-core/tar.gz/66d2bc079b542926fcd0c8587af8c46e4f48ace9"
dependencies:
"@uphold/request-logger" "^2.0.0"
debugnyan "^1.0.0"
@@ -1445,6 +1445,13 @@ debug@4, [email protected], debug@^4.1.0, debug@^4.1.1, debug@~4.1.1:
dependencies:
ms "^2.1.1"
+debug@^4.2, debug@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
+ integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
+ dependencies:
+ ms "2.1.2"
+
debugnyan@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/debugnyan/-/debugnyan-1.0.0.tgz#90386d5ebc2c63588f17f272be5c2a93b7665d83"
@@ -1721,12 +1728,12 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1:
dependencies:
once "^1.4.0"
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381"
- integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+ integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
dependencies:
- ansi-colors "^3.2.1"
+ ansi-colors "^4.1.1"
errno@~0.1.1:
version "0.1.7"
@@ -1805,6 +1812,11 @@ [email protected], escape-string-regexp@^1.0.5:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
version "1.14.3"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
@@ -3638,11 +3650,16 @@ moment-timezone@^0.5.21, moment-timezone@^0.5.31, moment-timezone@^0.5.x:
dependencies:
moment ">= 2.9.0"
-"moment@>= 2.9.0", moment@^2.19.3, moment@^2.24.0:
+"moment@>= 2.9.0", moment@^2.24.0:
version "2.27.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d"
integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==
+moment@^2.19.3:
+ version "2.29.1"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
+ integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
+
version "1.1.4"
resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a"
@@ -3658,7 +3675,7 @@ [email protected]:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
-ms@^2.1.1:
[email protected], ms@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
@@ -4261,12 +4278,12 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
- version "2.0.18"
- resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-2.0.18.tgz#9ccef35df5508a5a4b0838c712ea9b79609aff34"
- integrity sha512-Y/VfKfh3poHjMEINxU+gJTeVOBjiThQeFAmzR7z56HSNiMx+etl+yBhk42nRPciPYt/VZl8DQLVXNC6P5vH11A==
+ version "2.0.21"
+ resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-2.0.21.tgz#7068967b3d952baea73e57668c98b9eaa876894e"
+ integrity sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==
dependencies:
- safe-buffer "^5.1.2"
+ safe-buffer "^5.2.1"
pino-pretty@^3.6.1:
version "3.6.1"
@@ -4309,14 +4326,31 @@ please-upgrade-node@^3.2.0:
dependencies:
semver-compare "^1.0.0"
[email protected], pm2-axon-rpc@^0.5.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/pm2-axon-rpc/-/pm2-axon-rpc-0.6.0.tgz#ff7ec2627334e5de1bcc1181e532499a708ab9f8"
+ integrity sha512-xjYR0y1HpOopJ09VL2Qd5H1LajVN+QLPVZ1G+GesbORJDAZiStMhwECtOzm/Gx5ANQxL0usW8WZsElMfQq2hbw==
+ dependencies:
+ debug "^3.0"
+
+pm2-axon-rpc@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/pm2-axon-rpc/-/pm2-axon-rpc-0.5.1.tgz#ad3c43c43811c71f13e5eee2821194d03ceb03fe"
integrity sha512-hT8gN3/j05895QLXpwg+Ws8PjO4AVID6Uf9StWpud9HB2homjc1KKCcI0vg9BNOt56FmrqKDT1NQgheIz35+sA==
dependencies:
debug "^3.0"
[email protected], pm2-axon@^3.2.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/pm2-axon/-/pm2-axon-4.0.0.tgz#70925e9835e9156f278a843f27a8c94a6c22b1bc"
+ integrity sha512-A8dy0C57cRIm+kX58HrMcnvUdg8EdwCuCmavDdmFE4eoUE+5zfwGbDfZKCBVLNpDwjXPuXQQYZi3wQt/5xC8DQ==
+ dependencies:
+ amp "~0.3.1"
+ amp-message "~0.1.1"
+ debug "^4.2"
+ escape-string-regexp "^4.0.0"
+
+pm2-axon@^3.2.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/pm2-axon/-/pm2-axon-3.3.0.tgz#a9badfdb8e083fbd5d7d24317b4a21eb708f0735"
integrity sha512-dAFlFYRuFbFjX7oAk41zT+dx86EuaFX/TgOp5QpUKRKwxb946IM6ydnoH5sSTkdI2pHSVZ+3Am8n/l0ocr7jdQ==
@@ -4341,10 +4375,10 @@ pm2-multimeter@^0.1.2:
dependencies:
charm "~0.1.1"
-pm2@^4.4.0:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/pm2/-/pm2-4.4.1.tgz#a96bf6d4c75cf97612de5940835e792899845b54"
- integrity sha512-ece2zqVvSg29tIGdznKqk07IwVaO4mX7zLBMVxbJQMfvxpQUotLLERDW0v/RYMHtzj1bX8MLsDUsmPiIbEszKg==
+pm2@^4.4.1:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/pm2/-/pm2-4.5.0.tgz#5cabba66beed866aa1fb1a7eaa904b06ca9df93d"
+ integrity sha512-sXKn0Qsrqj++qgsdGTASEsWfURhM6vSPIqFPwSwk3bK5/QPLxuRmVDW1y82M9wEnlgEjiIryaLhZUp5saLuhPA==
dependencies:
"@pm2/agent" "~1.0.2"
"@pm2/io" "~4.3.5"
@@ -4358,21 +4392,21 @@ pm2@^4.4.0:
commander "2.15.1"
cron "1.8.2"
dayjs "~1.8.25"
- debug "4.1.1"
- enquirer "2.3.5"
+ debug "^4.2.0"
+ enquirer "2.3.6"
eventemitter2 "5.0.1"
fclone "1.0.11"
mkdirp "1.0.4"
needle "2.4.0"
- pidusage "2.0.18"
- pm2-axon "3.3.0"
- pm2-axon-rpc "0.5.1"
+ pidusage "2.0.21"
+ pm2-axon "4.0.0"
+ pm2-axon-rpc "0.6.0"
pm2-deploy "~1.0.2"
pm2-multimeter "^0.1.2"
promptly "^2"
ps-list "6.3.0"
semver "^7.2"
- source-map-support "0.5.16"
+ source-map-support "0.5.19"
sprintf-js "1.1.2"
vizion "0.2.13"
yamljs "0.3.0"
@@ -4869,7 +4903,7 @@ [email protected]:
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.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -5131,10 +5165,10 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
- version "0.5.16"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
- integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
+ version "0.5.19"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"