@lightsparkdev/lightspark-sdk 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +4 -5
- package/dist/index.cjs +22 -21
- package/dist/index.d.ts +2 -3
- package/dist/index.js +21 -19
- package/package.json +12 -11
- package/src/__tests__/webhooks.test.ts +3 -3
- package/src/webhooks.ts +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @lightsparkdev/lightspark-sdk
|
|
2
2
|
|
|
3
|
+
## 0.3.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- cf73a38: Upgrade yarn to latest
|
|
8
|
+
- 9c0a2fe: Move typedoc into dev deps for sdks
|
|
9
|
+
- 9c0a2fe: Declare shared deps in workspaces that require them
|
|
10
|
+
- 9c0a2fe: Fix importing TextDecoder when not available
|
|
11
|
+
- 9c0a2fe: Fix webhook JS docs and function names
|
|
12
|
+
- Updated dependencies [cf73a38]
|
|
13
|
+
- Updated dependencies [9c0a2fe]
|
|
14
|
+
- @lightsparkdev/core@0.3.2
|
|
15
|
+
|
|
3
16
|
## 0.3.2
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -123,15 +123,14 @@ $ ts-node createInvoice.ts -a "100" -m "Whasssupppp"
|
|
|
123
123
|
|
|
124
124
|
### Streaming Wallet Extension
|
|
125
125
|
|
|
126
|
-
This example is meant to be used in conjunction with the [Lightspark streaming sats demo](https://app.lightspark.com/demos/streaming). It can be built and installed as a Chrome extension by running:
|
|
126
|
+
This example is meant to be used in conjunction with the [Lightspark streaming sats demo](https://app.lightspark.com/demos/streaming). It can be built and installed as a Chrome extension by running (from root js-sdk directory):
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
$
|
|
130
|
-
$
|
|
131
|
-
$ npm run build
|
|
129
|
+
$ yarn
|
|
130
|
+
$ yarn build
|
|
132
131
|
```
|
|
133
132
|
|
|
134
|
-
Then, go to `chrome://extensions` and click "Load unpacked" and select the `streaming-wallet-extension/build` directory.
|
|
133
|
+
Then, go to `chrome://extensions` and click "Load unpacked" and select the `apps/examples/streaming-wallet-extension/build` directory.
|
|
135
134
|
|
|
136
135
|
When the extension is installed, it will automatically open the streaming sats demo page. You can then click extension icon to open the extension popup, which will give you the ability to create a test account with 2 nodes - a viewer node (which acts as your wallet for the demo), and a creator node, which simulates the wallet of the creator of the streaming content. The page will reload and you'll be able to start streaming sats as the video plays!
|
|
137
136
|
|
package/dist/index.cjs
CHANGED
|
@@ -35,7 +35,7 @@ var require_package = __commonJS({
|
|
|
35
35
|
"package.json"(exports, module2) {
|
|
36
36
|
module2.exports = {
|
|
37
37
|
name: "@lightsparkdev/lightspark-sdk",
|
|
38
|
-
version: "0.3.
|
|
38
|
+
version: "0.3.3",
|
|
39
39
|
description: "Lightspark JS SDK",
|
|
40
40
|
author: "Lightspark Inc.",
|
|
41
41
|
keywords: [
|
|
@@ -92,25 +92,25 @@ var require_package = __commonJS({
|
|
|
92
92
|
],
|
|
93
93
|
scripts: {
|
|
94
94
|
build: "tsup --entry src/index.ts --entry src/objects/index.ts --format cjs,esm --dts",
|
|
95
|
-
clean: "rm -rf .turbo && rm -rf
|
|
95
|
+
clean: "rm -rf .turbo && rm -rf dist",
|
|
96
96
|
dev: "yarn build -- --watch",
|
|
97
97
|
docs: "typedoc src",
|
|
98
|
-
format: "
|
|
99
|
-
|
|
98
|
+
format: "prettier src --check",
|
|
99
|
+
"format:fix": "prettier src --write",
|
|
100
|
+
lint: "prettier --check ./src",
|
|
100
101
|
postversion: "yarn build",
|
|
101
102
|
test: "jest --no-cache --runInBand --bail",
|
|
102
|
-
|
|
103
|
+
types: "tsc"
|
|
103
104
|
},
|
|
104
105
|
license: "Apache-2.0",
|
|
105
106
|
dependencies: {
|
|
106
|
-
"@lightsparkdev/core": "0.3.
|
|
107
|
+
"@lightsparkdev/core": "0.3.2",
|
|
107
108
|
"auto-bind": "^5.0.1",
|
|
108
109
|
crypto: "^1.0.1",
|
|
109
110
|
"crypto-browserify": "^3.12.0",
|
|
110
111
|
dayjs: "^1.11.7",
|
|
111
112
|
graphql: "^16.6.0",
|
|
112
113
|
"graphql-ws": "^5.11.3",
|
|
113
|
-
typedoc: "^0.24.7",
|
|
114
114
|
ws: "^8.12.1",
|
|
115
115
|
"zen-observable-ts": "^1.1.0"
|
|
116
116
|
},
|
|
@@ -118,12 +118,13 @@ var require_package = __commonJS({
|
|
|
118
118
|
"@types/crypto-js": "^4.1.1",
|
|
119
119
|
"@types/jest": "^29.5.2",
|
|
120
120
|
"@types/ws": "^8.5.4",
|
|
121
|
-
jest: "^29.
|
|
122
|
-
prettier: "
|
|
123
|
-
"
|
|
124
|
-
"ts-jest": "^29.1.0",
|
|
121
|
+
jest: "^29.4.1",
|
|
122
|
+
prettier: "2.8.7",
|
|
123
|
+
"ts-jest": "^29.0.5",
|
|
125
124
|
"ts-node": "^10.9.1",
|
|
126
125
|
tsconfig: "*",
|
|
126
|
+
tsup: "^6.7.0",
|
|
127
|
+
typedoc: "^0.24.7",
|
|
127
128
|
typescript: "^4.9.5"
|
|
128
129
|
}
|
|
129
130
|
};
|
|
@@ -1983,8 +1984,7 @@ __export(src_exports, {
|
|
|
1983
1984
|
getRoutingTransactionQuery: () => getRoutingTransactionQuery,
|
|
1984
1985
|
getTransactionQuery: () => getTransactionQuery,
|
|
1985
1986
|
getWithdrawalQuery: () => getWithdrawalQuery,
|
|
1986
|
-
|
|
1987
|
-
verify_and_parse_webhook: () => verify_and_parse_webhook
|
|
1987
|
+
verifyAndParseWebhook: () => verifyAndParseWebhook
|
|
1988
1988
|
});
|
|
1989
1989
|
module.exports = __toCommonJS(src_exports);
|
|
1990
1990
|
|
|
@@ -8855,18 +8855,20 @@ ${FRAGMENT28}
|
|
|
8855
8855
|
// src/webhooks.ts
|
|
8856
8856
|
var import_crypto = require("crypto");
|
|
8857
8857
|
var WEBHOOKS_SIGNATURE_HEADER = "lightspark-signature";
|
|
8858
|
-
var
|
|
8858
|
+
var verifyAndParseWebhook = (data, hexdigest, webhook_secret) => {
|
|
8859
8859
|
const sig = (0, import_crypto.createHmac)("sha256", webhook_secret).update(data).digest("hex");
|
|
8860
8860
|
if (sig.toLowerCase() !== hexdigest.toLowerCase()) {
|
|
8861
8861
|
throw new Error("Webhook message hash does not match signature");
|
|
8862
8862
|
}
|
|
8863
|
-
return
|
|
8863
|
+
return parseWebhook(data);
|
|
8864
8864
|
};
|
|
8865
|
-
var
|
|
8866
|
-
|
|
8867
|
-
|
|
8865
|
+
var parseWebhook = async (data) => {
|
|
8866
|
+
let td = TextDecoder;
|
|
8867
|
+
if (typeof td === "undefined") {
|
|
8868
|
+
const tdModule = await Promise.resolve().then(() => __toESM(require_text_encoding(), 1));
|
|
8869
|
+
td = tdModule.TextDecoder;
|
|
8868
8870
|
}
|
|
8869
|
-
const dataStr = new
|
|
8871
|
+
const dataStr = new td().decode(data);
|
|
8870
8872
|
const event = JSON.parse(dataStr);
|
|
8871
8873
|
return {
|
|
8872
8874
|
event_type: WebhookEventType[event.event_type],
|
|
@@ -8923,6 +8925,5 @@ var parse_webhook = async (data) => {
|
|
|
8923
8925
|
getRoutingTransactionQuery,
|
|
8924
8926
|
getTransactionQuery,
|
|
8925
8927
|
getWithdrawalQuery,
|
|
8926
|
-
|
|
8927
|
-
verify_and_parse_webhook
|
|
8928
|
+
verifyAndParseWebhook
|
|
8928
8929
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -20,7 +20,6 @@ interface WebhookEvent {
|
|
|
20
20
|
timestamp: Date;
|
|
21
21
|
entity_id: string;
|
|
22
22
|
}
|
|
23
|
-
declare const
|
|
24
|
-
declare const parse_webhook: (data: Uint8Array) => Promise<WebhookEvent>;
|
|
23
|
+
declare const verifyAndParseWebhook: (data: Uint8Array, hexdigest: string, webhook_secret: string) => Promise<WebhookEvent>;
|
|
25
24
|
|
|
26
|
-
export { AccountTokenAuthProvider, WEBHOOKS_SIGNATURE_HEADER, WebhookEvent, WebhookEventType,
|
|
25
|
+
export { AccountTokenAuthProvider, WEBHOOKS_SIGNATURE_HEADER, WebhookEvent, WebhookEventType, verifyAndParseWebhook };
|
package/dist/index.js
CHANGED
|
@@ -70,7 +70,7 @@ var require_package = __commonJS({
|
|
|
70
70
|
"package.json"(exports, module) {
|
|
71
71
|
module.exports = {
|
|
72
72
|
name: "@lightsparkdev/lightspark-sdk",
|
|
73
|
-
version: "0.3.
|
|
73
|
+
version: "0.3.3",
|
|
74
74
|
description: "Lightspark JS SDK",
|
|
75
75
|
author: "Lightspark Inc.",
|
|
76
76
|
keywords: [
|
|
@@ -127,25 +127,25 @@ var require_package = __commonJS({
|
|
|
127
127
|
],
|
|
128
128
|
scripts: {
|
|
129
129
|
build: "tsup --entry src/index.ts --entry src/objects/index.ts --format cjs,esm --dts",
|
|
130
|
-
clean: "rm -rf .turbo && rm -rf
|
|
130
|
+
clean: "rm -rf .turbo && rm -rf dist",
|
|
131
131
|
dev: "yarn build -- --watch",
|
|
132
132
|
docs: "typedoc src",
|
|
133
|
-
format: "
|
|
134
|
-
|
|
133
|
+
format: "prettier src --check",
|
|
134
|
+
"format:fix": "prettier src --write",
|
|
135
|
+
lint: "prettier --check ./src",
|
|
135
136
|
postversion: "yarn build",
|
|
136
137
|
test: "jest --no-cache --runInBand --bail",
|
|
137
|
-
|
|
138
|
+
types: "tsc"
|
|
138
139
|
},
|
|
139
140
|
license: "Apache-2.0",
|
|
140
141
|
dependencies: {
|
|
141
|
-
"@lightsparkdev/core": "0.3.
|
|
142
|
+
"@lightsparkdev/core": "0.3.2",
|
|
142
143
|
"auto-bind": "^5.0.1",
|
|
143
144
|
crypto: "^1.0.1",
|
|
144
145
|
"crypto-browserify": "^3.12.0",
|
|
145
146
|
dayjs: "^1.11.7",
|
|
146
147
|
graphql: "^16.6.0",
|
|
147
148
|
"graphql-ws": "^5.11.3",
|
|
148
|
-
typedoc: "^0.24.7",
|
|
149
149
|
ws: "^8.12.1",
|
|
150
150
|
"zen-observable-ts": "^1.1.0"
|
|
151
151
|
},
|
|
@@ -153,12 +153,13 @@ var require_package = __commonJS({
|
|
|
153
153
|
"@types/crypto-js": "^4.1.1",
|
|
154
154
|
"@types/jest": "^29.5.2",
|
|
155
155
|
"@types/ws": "^8.5.4",
|
|
156
|
-
jest: "^29.
|
|
157
|
-
prettier: "
|
|
158
|
-
"
|
|
159
|
-
"ts-jest": "^29.1.0",
|
|
156
|
+
jest: "^29.4.1",
|
|
157
|
+
prettier: "2.8.7",
|
|
158
|
+
"ts-jest": "^29.0.5",
|
|
160
159
|
"ts-node": "^10.9.1",
|
|
161
160
|
tsconfig: "*",
|
|
161
|
+
tsup: "^6.7.0",
|
|
162
|
+
typedoc: "^0.24.7",
|
|
162
163
|
typescript: "^4.9.5"
|
|
163
164
|
}
|
|
164
165
|
};
|
|
@@ -1352,18 +1353,20 @@ var client_default = LightsparkClient;
|
|
|
1352
1353
|
// src/webhooks.ts
|
|
1353
1354
|
import { createHmac } from "crypto";
|
|
1354
1355
|
var WEBHOOKS_SIGNATURE_HEADER = "lightspark-signature";
|
|
1355
|
-
var
|
|
1356
|
+
var verifyAndParseWebhook = (data, hexdigest, webhook_secret) => {
|
|
1356
1357
|
const sig = createHmac("sha256", webhook_secret).update(data).digest("hex");
|
|
1357
1358
|
if (sig.toLowerCase() !== hexdigest.toLowerCase()) {
|
|
1358
1359
|
throw new Error("Webhook message hash does not match signature");
|
|
1359
1360
|
}
|
|
1360
|
-
return
|
|
1361
|
+
return parseWebhook(data);
|
|
1361
1362
|
};
|
|
1362
|
-
var
|
|
1363
|
-
|
|
1364
|
-
|
|
1363
|
+
var parseWebhook = async (data) => {
|
|
1364
|
+
let td = TextDecoder;
|
|
1365
|
+
if (typeof td === "undefined") {
|
|
1366
|
+
const tdModule = await import("./text-encoding-MDIPJAHL.js");
|
|
1367
|
+
td = tdModule.TextDecoder;
|
|
1365
1368
|
}
|
|
1366
|
-
const dataStr = new
|
|
1369
|
+
const dataStr = new td().decode(data);
|
|
1367
1370
|
const event = JSON.parse(dataStr);
|
|
1368
1371
|
return {
|
|
1369
1372
|
event_type: WebhookEventType[event.event_type],
|
|
@@ -1419,6 +1422,5 @@ export {
|
|
|
1419
1422
|
getRoutingTransactionQuery,
|
|
1420
1423
|
getTransactionQuery,
|
|
1421
1424
|
getWithdrawalQuery,
|
|
1422
|
-
|
|
1423
|
-
verify_and_parse_webhook
|
|
1425
|
+
verifyAndParseWebhook
|
|
1424
1426
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightsparkdev/lightspark-sdk",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Lightspark JS SDK",
|
|
5
5
|
"author": "Lightspark Inc.",
|
|
6
6
|
"keywords": [
|
|
@@ -57,25 +57,25 @@
|
|
|
57
57
|
],
|
|
58
58
|
"scripts": {
|
|
59
59
|
"build": "tsup --entry src/index.ts --entry src/objects/index.ts --format cjs,esm --dts",
|
|
60
|
-
"clean": "rm -rf .turbo && rm -rf
|
|
60
|
+
"clean": "rm -rf .turbo && rm -rf dist",
|
|
61
61
|
"dev": "yarn build -- --watch",
|
|
62
62
|
"docs": "typedoc src",
|
|
63
|
-
"format": "
|
|
64
|
-
"
|
|
63
|
+
"format": "prettier src --check",
|
|
64
|
+
"format:fix": "prettier src --write",
|
|
65
|
+
"lint": "prettier --check ./src",
|
|
65
66
|
"postversion": "yarn build",
|
|
66
67
|
"test": "jest --no-cache --runInBand --bail",
|
|
67
|
-
"
|
|
68
|
+
"types": "tsc"
|
|
68
69
|
},
|
|
69
70
|
"license": "Apache-2.0",
|
|
70
71
|
"dependencies": {
|
|
71
|
-
"@lightsparkdev/core": "0.3.
|
|
72
|
+
"@lightsparkdev/core": "0.3.2",
|
|
72
73
|
"auto-bind": "^5.0.1",
|
|
73
74
|
"crypto": "^1.0.1",
|
|
74
75
|
"crypto-browserify": "^3.12.0",
|
|
75
76
|
"dayjs": "^1.11.7",
|
|
76
77
|
"graphql": "^16.6.0",
|
|
77
78
|
"graphql-ws": "^5.11.3",
|
|
78
|
-
"typedoc": "^0.24.7",
|
|
79
79
|
"ws": "^8.12.1",
|
|
80
80
|
"zen-observable-ts": "^1.1.0"
|
|
81
81
|
},
|
|
@@ -83,12 +83,13 @@
|
|
|
83
83
|
"@types/crypto-js": "^4.1.1",
|
|
84
84
|
"@types/jest": "^29.5.2",
|
|
85
85
|
"@types/ws": "^8.5.4",
|
|
86
|
-
"jest": "^29.
|
|
87
|
-
"prettier": "
|
|
88
|
-
"
|
|
89
|
-
"ts-jest": "^29.1.0",
|
|
86
|
+
"jest": "^29.4.1",
|
|
87
|
+
"prettier": "2.8.7",
|
|
88
|
+
"ts-jest": "^29.0.5",
|
|
90
89
|
"ts-node": "^10.9.1",
|
|
91
90
|
"tsconfig": "*",
|
|
91
|
+
"tsup": "^6.7.0",
|
|
92
|
+
"typedoc": "^0.24.7",
|
|
92
93
|
"typescript": "^4.9.5"
|
|
93
94
|
}
|
|
94
95
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import WebhookEventType from "../objects/WebhookEventType.js";
|
|
2
|
-
import {
|
|
2
|
+
import { verifyAndParseWebhook } from "../webhooks.js";
|
|
3
3
|
|
|
4
4
|
describe("Webhooks", () => {
|
|
5
5
|
test("should verify and parse webhook data", async () => {
|
|
@@ -12,8 +12,8 @@ describe("Webhooks", () => {
|
|
|
12
12
|
"62a8829aeb48b4142533520b1f7f86cdb1ee7d718bf3ea15bc1c662d4c453b74";
|
|
13
13
|
const webhookSecret = "3gZ5oQQUASYmqQNuEk0KambNMVkOADDItIJjzUlAWjX";
|
|
14
14
|
|
|
15
|
-
const webhook = await
|
|
16
|
-
|
|
15
|
+
const webhook = await verifyAndParseWebhook(
|
|
16
|
+
Buffer.from(data, "utf-8"),
|
|
17
17
|
hexdigest,
|
|
18
18
|
webhookSecret
|
|
19
19
|
);
|
package/src/webhooks.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface WebhookEvent {
|
|
|
10
10
|
entity_id: string;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const verifyAndParseWebhook = (
|
|
14
14
|
data: Uint8Array,
|
|
15
15
|
hexdigest: string,
|
|
16
16
|
webhook_secret: string
|
|
@@ -21,16 +21,16 @@ export const verify_and_parse_webhook = (
|
|
|
21
21
|
throw new Error("Webhook message hash does not match signature");
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
return
|
|
24
|
+
return parseWebhook(data);
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const parseWebhook = async (data: Uint8Array): Promise<WebhookEvent> => {
|
|
28
|
+
let td = TextDecoder;
|
|
29
|
+
if (typeof td === "undefined") {
|
|
30
|
+
const tdModule = await import("text-encoding");
|
|
31
|
+
td = tdModule.TextDecoder;
|
|
32
32
|
}
|
|
33
|
-
const dataStr = new
|
|
33
|
+
const dataStr = new td().decode(data);
|
|
34
34
|
const event = JSON.parse(dataStr);
|
|
35
35
|
|
|
36
36
|
return {
|