Socket
Socket
Sign inDemoInstall

lnurl-pay

Package Overview
Dependencies
90
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.2.2 to 2.3.0

dist/umd/lnurl-pay.js

37

dist/cjs/utils.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.decipherAES = exports.isValidPreimage = exports.getHashFromInvoice = exports.decodeInvoice = exports.sha256 = exports.getJson = exports.isValidAmount = exports.toSats = exports.checkedToSats = exports.isOnionUrl = exports.isUrl = exports.parseLightningAddress = exports.isLightningAddress = exports.isLnurl = exports.parseLnUrl = exports.decodeUrlOrAddress = void 0;
exports.decipherAES = exports.isValidPreimage = exports.getHashFromInvoice = exports.decodeInvoice = exports.sha256 = exports.getJson = exports.isValidAmount = exports.toSats = exports.checkedToSats = exports.isOnionUrl = exports.isUrl = exports.parseLnurlp = exports.isLnurlp = exports.parseLightningAddress = exports.isLightningAddress = exports.isLnurl = exports.parseLnUrl = exports.decodeUrlOrAddress = void 0;
var tslib_1 = require("tslib");

@@ -15,7 +15,8 @@ var is_url_1 = tslib_1.__importDefault(require("is-url"));

var ONION_REGEX = /^(http:\/\/[^/:@]+\.onion(?::\d{1,5})?)(\/.*)?$/;
var LNURLP_REGEX = /^lnurlp:\/\/([\w-]+\.)+[\w-]+(:\d{1,5})?(\/[\w-.\/?%&=]*)?$/;
/**
* Decode a bech32 encoded url (lnurl) or lightning address and return a url
* Decode a bech32 encoded url (lnurl), lightning address or lnurlp url and return a url
* @method decodeUrlOrAddress
* @param lnUrlOrAddress string to decode
* @return plain url or null if is an invalid url or lightning address
* @return plain url or null if is an invalid url, lightning address or lnurlp
*/

@@ -34,3 +35,3 @@ var decodeUrlOrAddress = function (lnUrlOrAddress) {

}
return null;
return (0, exports.parseLnurlp)(lnUrlOrAddress);
};

@@ -89,2 +90,30 @@ exports.decodeUrlOrAddress = decodeUrlOrAddress;

/**
* Verify if a string is a lnurlp url
* @method isLnurlp
* @param url string to validate
* @return true if is a lnurlp url
*/
var isLnurlp = function (url) {
if (!url)
return false;
return LNURLP_REGEX.test(url);
};
exports.isLnurlp = isLnurlp;
/**
* Parse a lnurlp url and return an url with the proper protocol
* @method parseLnurlp
* @param url string to parse
* @return url (http or https) or null if is an invalid lnurlp
*/
var parseLnurlp = function (url) {
if (!url)
return null;
var parsedUrl = url.toLowerCase();
if (!LNURLP_REGEX.test(parsedUrl))
return null;
var protocol = parsedUrl.includes('.onion') ? 'http://' : 'https://';
return parsedUrl.replace('lnurlp://', protocol);
};
exports.parseLnurlp = parseLnurlp;
/**
* Verify if a string is an url

@@ -91,0 +120,0 @@ * @method isUrl

@@ -12,7 +12,8 @@ import { __awaiter, __generator } from "tslib";

var ONION_REGEX = /^(http:\/\/[^/:@]+\.onion(?::\d{1,5})?)(\/.*)?$/;
var LNURLP_REGEX = /^lnurlp:\/\/([\w-]+\.)+[\w-]+(:\d{1,5})?(\/[\w-.\/?%&=]*)?$/;
/**
* Decode a bech32 encoded url (lnurl) or lightning address and return a url
* Decode a bech32 encoded url (lnurl), lightning address or lnurlp url and return a url
* @method decodeUrlOrAddress
* @param lnUrlOrAddress string to decode
* @return plain url or null if is an invalid url or lightning address
* @return plain url or null if is an invalid url, lightning address or lnurlp
*/

@@ -31,3 +32,3 @@ export var decodeUrlOrAddress = function (lnUrlOrAddress) {

}
return null;
return parseLnurlp(lnUrlOrAddress);
};

@@ -81,2 +82,28 @@ /**

/**
* Verify if a string is a lnurlp url
* @method isLnurlp
* @param url string to validate
* @return true if is a lnurlp url
*/
export var isLnurlp = function (url) {
if (!url)
return false;
return LNURLP_REGEX.test(url);
};
/**
* Parse a lnurlp url and return an url with the proper protocol
* @method parseLnurlp
* @param url string to parse
* @return url (http or https) or null if is an invalid lnurlp
*/
export var parseLnurlp = function (url) {
if (!url)
return null;
var parsedUrl = url.toLowerCase();
if (!LNURLP_REGEX.test(parsedUrl))
return null;
var protocol = parsedUrl.includes('.onion') ? 'http://' : 'https://';
return parsedUrl.replace('lnurlp://', protocol);
};
/**
* Verify if a string is an url

@@ -83,0 +110,0 @@ * @method isUrl

@@ -5,6 +5,6 @@ /// <reference types="node" />

/**
* Decode a bech32 encoded url (lnurl) or lightning address and return a url
* Decode a bech32 encoded url (lnurl), lightning address or lnurlp url and return a url
* @method decodeUrlOrAddress
* @param lnUrlOrAddress string to decode
* @return plain url or null if is an invalid url or lightning address
* @return plain url or null if is an invalid url, lightning address or lnurlp
*/

@@ -41,2 +41,16 @@ export declare const decodeUrlOrAddress: (lnUrlOrAddress: string) => string | null;

/**
* Verify if a string is a lnurlp url
* @method isLnurlp
* @param url string to validate
* @return true if is a lnurlp url
*/
export declare const isLnurlp: (url: string) => boolean;
/**
* Parse a lnurlp url and return an url with the proper protocol
* @method parseLnurlp
* @param url string to parse
* @return url (http or https) or null if is an invalid lnurlp
*/
export declare const parseLnurlp: (url: string) => string | null;
/**
* Verify if a string is an url

@@ -43,0 +57,0 @@ * @method isUrl

21

package.json
{
"name": "lnurl-pay",
"version": "2.2.2",
"version": "2.3.0",
"description": "Client library for lnurl-pay and lightning address",

@@ -66,13 +66,12 @@ "main": "dist/cjs/index.js",

"stream-http": "^3.2.0",
"tslib": "^2.5.2",
"url": "^0.11.0"
"tslib": "^2.5.2"
},
"devDependencies": {
"@commitlint/cli": "^17.6.3",
"@commitlint/config-conventional": "^17.6.3",
"@commitlint/cli": "^17.6.5",
"@commitlint/config-conventional": "^17.6.5",
"@types/aes-js": "^3.1.1",
"@types/is-url": "^1.2.30",
"@types/jest": "^29.5.1",
"@typescript-eslint/eslint-plugin": "^5.59.6",
"@typescript-eslint/parser": "^5.59.6",
"@types/jest": "^29.5.2",
"@typescript-eslint/eslint-plugin": "^5.59.8",
"@typescript-eslint/parser": "^5.59.8",
"eslint": "^8.41.0",

@@ -87,7 +86,7 @@ "eslint-config-prettier": "^8.8.0",

"ts-jest": "^29.1.0",
"ts-loader": "^9.4.2",
"typescript": "^4.9.5",
"webpack": "^5.78.0",
"ts-loader": "^9.4.3",
"typescript": "^5.0.4",
"webpack": "^5.85.0",
"webpack-cli": "^4.9.2"
}
}

@@ -20,10 +20,16 @@ # Lnurl-pay

```js
import { requestInvoice } from 'lnurl-pay'
import { requestInvoice, utils } from 'lnurl-pay'
const { invoice, params, successAction, validatePreimage } =
await requestInvoice({
lnUrlOrAddress:
'lnurl1dp68gurn8ghj7urp0yh8xarpva5kueewvaskcmme9e5k7tewwajkcmpdddhx7amw9akxuatjd3cz7atnv4erqgfuvv5',
tokens: 333, // satoshis
})
const {
invoice,
params,
successAction,
hasValidAmount,
hasValidDescriptionHash,
validatePreimage,
} = await requestInvoice({
lnUrlOrAddress:
'lnurl1dp68gurn8ghj7urp0yh8xarpva5kueewvaskcmme9e5k7tewwajkcmpdddhx7amw9akxuatjd3cz7atnv4erqgfuvv5',
tokens: 333, // in TS you can use utils.checkedToSats or utils.toSats
})
```

@@ -34,11 +40,35 @@

```js
import { requestInvoice } from 'lnurl-pay'
import { requestInvoice, utils } from 'lnurl-pay'
const { invoice, params, successAction, validatePreimage } =
await requestInvoice({
lnUrlOrAddress: 'user@domain.com',
tokens: 333, // satoshis
})
const {
invoice,
params,
successAction,
hasValidAmount,
hasValidDescriptionHash,
validatePreimage,
} = await requestInvoice({
lnUrlOrAddress: 'user@domain.com',
tokens: 333, // in TS you can use utils.checkedToSats or utils.toSats
})
```
### Lnurlp / [LUD-17](https://github.com/lnurl/luds/blob/luds/17.md)
```js
import { requestInvoice, utils } from 'lnurl-pay'
const {
invoice,
params,
successAction,
hasValidAmount,
hasValidDescriptionHash,
validatePreimage,
} = await requestInvoice({
lnUrlOrAddress: 'lnurlp://domain.com/path',
tokens: 333, // in TS you can use utils.checkedToSats or utils.toSats
})
```
## Methods

@@ -201,3 +231,5 @@

- [isLnurl](#isLnurl) - Verify if a string is a valid lnurl value
- [isLnurlp](#isLnurlp) - Verify if a string is a valid lnurlp url
- [parseLnUrl](#parseLnUrl) - Parse an url and return a bech32 encoded url (lnurl)
- [parseLnurlp](#parseLnurlp) - Parse a lnurlp url and return an url with the proper protocol
- [isLightningAddress](#isLightningAddress) - Verify if a string is a lightning adress

@@ -204,0 +236,0 @@ - [parseLightningAddress](#parseLightningAddress) - Parse an address and return username and domain

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc